master
   1/*** Autogenerated by WIDL 10.4 from include/dxgi1_6.idl - Do not edit ***/
   2
   3#ifdef _WIN32
   4#ifndef __REQUIRED_RPCNDR_H_VERSION__
   5#define __REQUIRED_RPCNDR_H_VERSION__ 475
   6#endif
   7#include <rpc.h>
   8#include <rpcndr.h>
   9#endif
  10
  11#ifndef COM_NO_WINDOWS_H
  12#include <windows.h>
  13#include <ole2.h>
  14#endif
  15
  16#ifndef __dxgi1_6_h__
  17#define __dxgi1_6_h__
  18
  19/* Forward declarations */
  20
  21#ifndef __IDXGIAdapter4_FWD_DEFINED__
  22#define __IDXGIAdapter4_FWD_DEFINED__
  23typedef interface IDXGIAdapter4 IDXGIAdapter4;
  24#ifdef __cplusplus
  25interface IDXGIAdapter4;
  26#endif /* __cplusplus */
  27#endif
  28
  29#ifndef __IDXGIOutput6_FWD_DEFINED__
  30#define __IDXGIOutput6_FWD_DEFINED__
  31typedef interface IDXGIOutput6 IDXGIOutput6;
  32#ifdef __cplusplus
  33interface IDXGIOutput6;
  34#endif /* __cplusplus */
  35#endif
  36
  37#ifndef __IDXGIFactory6_FWD_DEFINED__
  38#define __IDXGIFactory6_FWD_DEFINED__
  39typedef interface IDXGIFactory6 IDXGIFactory6;
  40#ifdef __cplusplus
  41interface IDXGIFactory6;
  42#endif /* __cplusplus */
  43#endif
  44
  45#ifndef __IDXGIFactory7_FWD_DEFINED__
  46#define __IDXGIFactory7_FWD_DEFINED__
  47typedef interface IDXGIFactory7 IDXGIFactory7;
  48#ifdef __cplusplus
  49interface IDXGIFactory7;
  50#endif /* __cplusplus */
  51#endif
  52
  53/* Headers for imported files */
  54
  55#include <dxgi1_5.h>
  56
  57#ifdef __cplusplus
  58extern "C" {
  59#endif
  60
  61typedef enum DXGI_ADAPTER_FLAG3 {
  62    DXGI_ADAPTER_FLAG3_NONE = 0x0,
  63    DXGI_ADAPTER_FLAG3_REMOTE = 0x1,
  64    DXGI_ADAPTER_FLAG3_SOFTWARE = 0x2,
  65    DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 0x4,
  66    DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES = 0x8,
  67    DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES = 0x10,
  68    DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE = 0x20,
  69    DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xffffffff
  70} DXGI_ADAPTER_FLAG3;
  71typedef enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
  72    DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 0x1,
  73    DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 0x2,
  74    DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 0x4
  75} DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS;
  76typedef enum DXGI_GPU_PREFERENCE {
  77    DXGI_GPU_PREFERENCE_UNSPECIFIED = 0x0,
  78    DXGI_GPU_PREFERENCE_MINIMUM_POWER = 0x1,
  79    DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = 0x2
  80} DXGI_GPU_PREFERENCE;
  81typedef struct DXGI_ADAPTER_DESC3 {
  82    WCHAR Description[128];
  83    UINT VendorId;
  84    UINT DeviceId;
  85    UINT SubSysId;
  86    UINT Revision;
  87    SIZE_T DedicatedVideoMemory;
  88    SIZE_T DedicatedSystemMemory;
  89    SIZE_T SharedSystemMemory;
  90    LUID AdapterLuid;
  91    DXGI_ADAPTER_FLAG3 Flags;
  92    DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
  93    DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
  94} DXGI_ADAPTER_DESC3;
  95typedef struct DXGI_OUTPUT_DESC1 {
  96    WCHAR DeviceName[32];
  97    RECT DesktopCoordinates;
  98    WINBOOL AttachedToDesktop;
  99    DXGI_MODE_ROTATION Rotation;
 100    HMONITOR Monitor;
 101    UINT BitsPerColor;
 102    DXGI_COLOR_SPACE_TYPE ColorSpace;
 103    FLOAT RedPrimary[2];
 104    FLOAT GreenPrimary[2];
 105    FLOAT BluePrimary[2];
 106    FLOAT WhitePoint[2];
 107    FLOAT MinLuminance;
 108    FLOAT MaxLuminance;
 109    FLOAT MaxFullFrameLuminance;
 110} DXGI_OUTPUT_DESC1;
 111/*****************************************************************************
 112 * IDXGIAdapter4 interface
 113 */
 114#ifndef __IDXGIAdapter4_INTERFACE_DEFINED__
 115#define __IDXGIAdapter4_INTERFACE_DEFINED__
 116
 117DEFINE_GUID(IID_IDXGIAdapter4, 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8,0x2c, 0xaf,0x66,0xbf,0x7b,0xd2,0x4e);
 118#if defined(__cplusplus) && !defined(CINTERFACE)
 119MIDL_INTERFACE("3c8d99d1-4fbf-4181-a82c-af66bf7bd24e")
 120IDXGIAdapter4 : public IDXGIAdapter3
 121{
 122    virtual HRESULT STDMETHODCALLTYPE GetDesc3(
 123        DXGI_ADAPTER_DESC3 *desc) = 0;
 124
 125};
 126#ifdef __CRT_UUID_DECL
 127__CRT_UUID_DECL(IDXGIAdapter4, 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8,0x2c, 0xaf,0x66,0xbf,0x7b,0xd2,0x4e)
 128#endif
 129#else
 130typedef struct IDXGIAdapter4Vtbl {
 131    BEGIN_INTERFACE
 132
 133    /*** IUnknown methods ***/
 134    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 135        IDXGIAdapter4 *This,
 136        REFIID riid,
 137        void **ppvObject);
 138
 139    ULONG (STDMETHODCALLTYPE *AddRef)(
 140        IDXGIAdapter4 *This);
 141
 142    ULONG (STDMETHODCALLTYPE *Release)(
 143        IDXGIAdapter4 *This);
 144
 145    /*** IDXGIObject methods ***/
 146    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
 147        IDXGIAdapter4 *This,
 148        REFGUID guid,
 149        UINT data_size,
 150        const void *data);
 151
 152    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
 153        IDXGIAdapter4 *This,
 154        REFGUID guid,
 155        const IUnknown *object);
 156
 157    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
 158        IDXGIAdapter4 *This,
 159        REFGUID guid,
 160        UINT *data_size,
 161        void *data);
 162
 163    HRESULT (STDMETHODCALLTYPE *GetParent)(
 164        IDXGIAdapter4 *This,
 165        REFIID riid,
 166        void **parent);
 167
 168    /*** IDXGIAdapter methods ***/
 169    HRESULT (STDMETHODCALLTYPE *EnumOutputs)(
 170        IDXGIAdapter4 *This,
 171        UINT output_idx,
 172        IDXGIOutput **output);
 173
 174    HRESULT (STDMETHODCALLTYPE *GetDesc)(
 175        IDXGIAdapter4 *This,
 176        DXGI_ADAPTER_DESC *desc);
 177
 178    HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)(
 179        IDXGIAdapter4 *This,
 180        REFGUID guid,
 181        LARGE_INTEGER *umd_version);
 182
 183    /*** IDXGIAdapter1 methods ***/
 184    HRESULT (STDMETHODCALLTYPE *GetDesc1)(
 185        IDXGIAdapter4 *This,
 186        DXGI_ADAPTER_DESC1 *pDesc);
 187
 188    /*** IDXGIAdapter2 methods ***/
 189    HRESULT (STDMETHODCALLTYPE *GetDesc2)(
 190        IDXGIAdapter4 *This,
 191        DXGI_ADAPTER_DESC2 *pDesc);
 192
 193    /*** IDXGIAdapter3 methods ***/
 194    HRESULT (STDMETHODCALLTYPE *RegisterHardwareContentProtectionTeardownStatusEvent)(
 195        IDXGIAdapter4 *This,
 196        HANDLE event,
 197        DWORD *cookie);
 198
 199    void (STDMETHODCALLTYPE *UnregisterHardwareContentProtectionTeardownStatus)(
 200        IDXGIAdapter4 *This,
 201        DWORD cookie);
 202
 203    HRESULT (STDMETHODCALLTYPE *QueryVideoMemoryInfo)(
 204        IDXGIAdapter4 *This,
 205        UINT node_index,
 206        DXGI_MEMORY_SEGMENT_GROUP segment_group,
 207        DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info);
 208
 209    HRESULT (STDMETHODCALLTYPE *SetVideoMemoryReservation)(
 210        IDXGIAdapter4 *This,
 211        UINT node_index,
 212        DXGI_MEMORY_SEGMENT_GROUP segment_group,
 213        UINT64 reservation);
 214
 215    HRESULT (STDMETHODCALLTYPE *RegisterVideoMemoryBudgetChangeNotificationEvent)(
 216        IDXGIAdapter4 *This,
 217        HANDLE event,
 218        DWORD *cookie);
 219
 220    void (STDMETHODCALLTYPE *UnregisterVideoMemoryBudgetChangeNotification)(
 221        IDXGIAdapter4 *This,
 222        DWORD cookie);
 223
 224    /*** IDXGIAdapter4 methods ***/
 225    HRESULT (STDMETHODCALLTYPE *GetDesc3)(
 226        IDXGIAdapter4 *This,
 227        DXGI_ADAPTER_DESC3 *desc);
 228
 229    END_INTERFACE
 230} IDXGIAdapter4Vtbl;
 231
 232interface IDXGIAdapter4 {
 233    CONST_VTBL IDXGIAdapter4Vtbl* lpVtbl;
 234};
 235
 236#ifdef COBJMACROS
 237#ifndef WIDL_C_INLINE_WRAPPERS
 238/*** IUnknown methods ***/
 239#define IDXGIAdapter4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 240#define IDXGIAdapter4_AddRef(This) (This)->lpVtbl->AddRef(This)
 241#define IDXGIAdapter4_Release(This) (This)->lpVtbl->Release(This)
 242/*** IDXGIObject methods ***/
 243#define IDXGIAdapter4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
 244#define IDXGIAdapter4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
 245#define IDXGIAdapter4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
 246#define IDXGIAdapter4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
 247/*** IDXGIAdapter methods ***/
 248#define IDXGIAdapter4_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output)
 249#define IDXGIAdapter4_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
 250#define IDXGIAdapter4_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version)
 251/*** IDXGIAdapter1 methods ***/
 252#define IDXGIAdapter4_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
 253/*** IDXGIAdapter2 methods ***/
 254#define IDXGIAdapter4_GetDesc2(This,pDesc) (This)->lpVtbl->GetDesc2(This,pDesc)
 255/*** IDXGIAdapter3 methods ***/
 256#define IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie)
 257#define IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(This,cookie) (This)->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie)
 258#define IDXGIAdapter4_QueryVideoMemoryInfo(This,node_index,segment_group,memory_info) (This)->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info)
 259#define IDXGIAdapter4_SetVideoMemoryReservation(This,node_index,segment_group,reservation) (This)->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation)
 260#define IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie) (This)->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie)
 261#define IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(This,cookie) (This)->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie)
 262/*** IDXGIAdapter4 methods ***/
 263#define IDXGIAdapter4_GetDesc3(This,desc) (This)->lpVtbl->GetDesc3(This,desc)
 264#else
 265/*** IUnknown methods ***/
 266static inline HRESULT IDXGIAdapter4_QueryInterface(IDXGIAdapter4* This,REFIID riid,void **ppvObject) {
 267    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 268}
 269static inline ULONG IDXGIAdapter4_AddRef(IDXGIAdapter4* This) {
 270    return This->lpVtbl->AddRef(This);
 271}
 272static inline ULONG IDXGIAdapter4_Release(IDXGIAdapter4* This) {
 273    return This->lpVtbl->Release(This);
 274}
 275/*** IDXGIObject methods ***/
 276static inline HRESULT IDXGIAdapter4_SetPrivateData(IDXGIAdapter4* This,REFGUID guid,UINT data_size,const void *data) {
 277    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
 278}
 279static inline HRESULT IDXGIAdapter4_SetPrivateDataInterface(IDXGIAdapter4* This,REFGUID guid,const IUnknown *object) {
 280    return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
 281}
 282static inline HRESULT IDXGIAdapter4_GetPrivateData(IDXGIAdapter4* This,REFGUID guid,UINT *data_size,void *data) {
 283    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
 284}
 285static inline HRESULT IDXGIAdapter4_GetParent(IDXGIAdapter4* This,REFIID riid,void **parent) {
 286    return This->lpVtbl->GetParent(This,riid,parent);
 287}
 288/*** IDXGIAdapter methods ***/
 289static inline HRESULT IDXGIAdapter4_EnumOutputs(IDXGIAdapter4* This,UINT output_idx,IDXGIOutput **output) {
 290    return This->lpVtbl->EnumOutputs(This,output_idx,output);
 291}
 292static inline HRESULT IDXGIAdapter4_GetDesc(IDXGIAdapter4* This,DXGI_ADAPTER_DESC *desc) {
 293    return This->lpVtbl->GetDesc(This,desc);
 294}
 295static inline HRESULT IDXGIAdapter4_CheckInterfaceSupport(IDXGIAdapter4* This,REFGUID guid,LARGE_INTEGER *umd_version) {
 296    return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version);
 297}
 298/*** IDXGIAdapter1 methods ***/
 299static inline HRESULT IDXGIAdapter4_GetDesc1(IDXGIAdapter4* This,DXGI_ADAPTER_DESC1 *pDesc) {
 300    return This->lpVtbl->GetDesc1(This,pDesc);
 301}
 302/*** IDXGIAdapter2 methods ***/
 303static inline HRESULT IDXGIAdapter4_GetDesc2(IDXGIAdapter4* This,DXGI_ADAPTER_DESC2 *pDesc) {
 304    return This->lpVtbl->GetDesc2(This,pDesc);
 305}
 306/*** IDXGIAdapter3 methods ***/
 307static inline HRESULT IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) {
 308    return This->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie);
 309}
 310static inline void IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(IDXGIAdapter4* This,DWORD cookie) {
 311    This->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie);
 312}
 313static inline HRESULT IDXGIAdapter4_QueryVideoMemoryInfo(IDXGIAdapter4* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info) {
 314    return This->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info);
 315}
 316static inline HRESULT IDXGIAdapter4_SetVideoMemoryReservation(IDXGIAdapter4* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,UINT64 reservation) {
 317    return This->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation);
 318}
 319static inline HRESULT IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) {
 320    return This->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie);
 321}
 322static inline void IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(IDXGIAdapter4* This,DWORD cookie) {
 323    This->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie);
 324}
 325/*** IDXGIAdapter4 methods ***/
 326static inline HRESULT IDXGIAdapter4_GetDesc3(IDXGIAdapter4* This,DXGI_ADAPTER_DESC3 *desc) {
 327    return This->lpVtbl->GetDesc3(This,desc);
 328}
 329#endif
 330#endif
 331
 332#endif
 333
 334
 335#endif  /* __IDXGIAdapter4_INTERFACE_DEFINED__ */
 336
 337/*****************************************************************************
 338 * IDXGIOutput6 interface
 339 */
 340#ifndef __IDXGIOutput6_INTERFACE_DEFINED__
 341#define __IDXGIOutput6_INTERFACE_DEFINED__
 342
 343DEFINE_GUID(IID_IDXGIOutput6, 0x068346e8, 0xaaec, 0x4b84, 0xad,0xd7, 0x13,0x7f,0x51,0x3f,0x77,0xa1);
 344#if defined(__cplusplus) && !defined(CINTERFACE)
 345MIDL_INTERFACE("068346e8-aaec-4b84-add7-137f513f77a1")
 346IDXGIOutput6 : public IDXGIOutput5
 347{
 348    virtual HRESULT STDMETHODCALLTYPE GetDesc1(
 349        DXGI_OUTPUT_DESC1 *desc) = 0;
 350
 351    virtual HRESULT STDMETHODCALLTYPE CheckHardwareCompositionSupport(
 352        UINT *flags) = 0;
 353
 354};
 355#ifdef __CRT_UUID_DECL
 356__CRT_UUID_DECL(IDXGIOutput6, 0x068346e8, 0xaaec, 0x4b84, 0xad,0xd7, 0x13,0x7f,0x51,0x3f,0x77,0xa1)
 357#endif
 358#else
 359typedef struct IDXGIOutput6Vtbl {
 360    BEGIN_INTERFACE
 361
 362    /*** IUnknown methods ***/
 363    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 364        IDXGIOutput6 *This,
 365        REFIID riid,
 366        void **ppvObject);
 367
 368    ULONG (STDMETHODCALLTYPE *AddRef)(
 369        IDXGIOutput6 *This);
 370
 371    ULONG (STDMETHODCALLTYPE *Release)(
 372        IDXGIOutput6 *This);
 373
 374    /*** IDXGIObject methods ***/
 375    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
 376        IDXGIOutput6 *This,
 377        REFGUID guid,
 378        UINT data_size,
 379        const void *data);
 380
 381    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
 382        IDXGIOutput6 *This,
 383        REFGUID guid,
 384        const IUnknown *object);
 385
 386    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
 387        IDXGIOutput6 *This,
 388        REFGUID guid,
 389        UINT *data_size,
 390        void *data);
 391
 392    HRESULT (STDMETHODCALLTYPE *GetParent)(
 393        IDXGIOutput6 *This,
 394        REFIID riid,
 395        void **parent);
 396
 397    /*** IDXGIOutput methods ***/
 398    HRESULT (STDMETHODCALLTYPE *GetDesc)(
 399        IDXGIOutput6 *This,
 400        DXGI_OUTPUT_DESC *desc);
 401
 402    HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
 403        IDXGIOutput6 *This,
 404        DXGI_FORMAT format,
 405        UINT flags,
 406        UINT *mode_count,
 407        DXGI_MODE_DESC *desc);
 408
 409    HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
 410        IDXGIOutput6 *This,
 411        const DXGI_MODE_DESC *mode,
 412        DXGI_MODE_DESC *closest_match,
 413        IUnknown *device);
 414
 415    HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
 416        IDXGIOutput6 *This);
 417
 418    HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
 419        IDXGIOutput6 *This,
 420        IUnknown *device,
 421        WINBOOL exclusive);
 422
 423    void (STDMETHODCALLTYPE *ReleaseOwnership)(
 424        IDXGIOutput6 *This);
 425
 426    HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
 427        IDXGIOutput6 *This,
 428        DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
 429
 430    HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
 431        IDXGIOutput6 *This,
 432        const DXGI_GAMMA_CONTROL *gamma_control);
 433
 434    HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
 435        IDXGIOutput6 *This,
 436        DXGI_GAMMA_CONTROL *gamma_control);
 437
 438    HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
 439        IDXGIOutput6 *This,
 440        IDXGISurface *surface);
 441
 442    HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
 443        IDXGIOutput6 *This,
 444        IDXGISurface *surface);
 445
 446    HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
 447        IDXGIOutput6 *This,
 448        DXGI_FRAME_STATISTICS *stats);
 449
 450    /*** IDXGIOutput1 methods ***/
 451    HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
 452        IDXGIOutput6 *This,
 453        DXGI_FORMAT enum_format,
 454        UINT flags,
 455        UINT *num_modes,
 456        DXGI_MODE_DESC1 *desc);
 457
 458    HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
 459        IDXGIOutput6 *This,
 460        const DXGI_MODE_DESC1 *mode_to_match,
 461        DXGI_MODE_DESC1 *closest_match,
 462        IUnknown *concerned_device);
 463
 464    HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
 465        IDXGIOutput6 *This,
 466        IDXGIResource *destination);
 467
 468    HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
 469        IDXGIOutput6 *This,
 470        IUnknown *device,
 471        IDXGIOutputDuplication **output_duplication);
 472
 473    /*** IDXGIOutput2 methods ***/
 474    WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)(
 475        IDXGIOutput6 *This);
 476
 477    /*** IDXGIOutput3 methods ***/
 478    HRESULT (STDMETHODCALLTYPE *CheckOverlaySupport)(
 479        IDXGIOutput6 *This,
 480        DXGI_FORMAT enum_format,
 481        IUnknown *concerned_device,
 482        UINT *flags);
 483
 484    /*** IDXGIOutput4 methods ***/
 485    HRESULT (STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport)(
 486        IDXGIOutput6 *This,
 487        DXGI_FORMAT format,
 488        DXGI_COLOR_SPACE_TYPE colour_space,
 489        IUnknown *device,
 490        UINT *flags);
 491
 492    /*** IDXGIOutput5 methods ***/
 493    HRESULT (STDMETHODCALLTYPE *DuplicateOutput1)(
 494        IDXGIOutput6 *This,
 495        IUnknown *device,
 496        UINT flags,
 497        UINT format_count,
 498        const DXGI_FORMAT *formats,
 499        IDXGIOutputDuplication **duplication);
 500
 501    /*** IDXGIOutput6 methods ***/
 502    HRESULT (STDMETHODCALLTYPE *GetDesc1)(
 503        IDXGIOutput6 *This,
 504        DXGI_OUTPUT_DESC1 *desc);
 505
 506    HRESULT (STDMETHODCALLTYPE *CheckHardwareCompositionSupport)(
 507        IDXGIOutput6 *This,
 508        UINT *flags);
 509
 510    END_INTERFACE
 511} IDXGIOutput6Vtbl;
 512
 513interface IDXGIOutput6 {
 514    CONST_VTBL IDXGIOutput6Vtbl* lpVtbl;
 515};
 516
 517#ifdef COBJMACROS
 518#ifndef WIDL_C_INLINE_WRAPPERS
 519/*** IUnknown methods ***/
 520#define IDXGIOutput6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 521#define IDXGIOutput6_AddRef(This) (This)->lpVtbl->AddRef(This)
 522#define IDXGIOutput6_Release(This) (This)->lpVtbl->Release(This)
 523/*** IDXGIObject methods ***/
 524#define IDXGIOutput6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
 525#define IDXGIOutput6_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
 526#define IDXGIOutput6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
 527#define IDXGIOutput6_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
 528/*** IDXGIOutput methods ***/
 529#define IDXGIOutput6_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
 530#define IDXGIOutput6_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
 531#define IDXGIOutput6_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
 532#define IDXGIOutput6_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
 533#define IDXGIOutput6_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
 534#define IDXGIOutput6_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
 535#define IDXGIOutput6_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
 536#define IDXGIOutput6_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
 537#define IDXGIOutput6_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
 538#define IDXGIOutput6_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
 539#define IDXGIOutput6_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
 540#define IDXGIOutput6_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
 541/*** IDXGIOutput1 methods ***/
 542#define IDXGIOutput6_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
 543#define IDXGIOutput6_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
 544#define IDXGIOutput6_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
 545#define IDXGIOutput6_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
 546/*** IDXGIOutput2 methods ***/
 547#define IDXGIOutput6_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This)
 548/*** IDXGIOutput3 methods ***/
 549#define IDXGIOutput6_CheckOverlaySupport(This,enum_format,concerned_device,flags) (This)->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags)
 550/*** IDXGIOutput4 methods ***/
 551#define IDXGIOutput6_CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags) (This)->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags)
 552/*** IDXGIOutput5 methods ***/
 553#define IDXGIOutput6_DuplicateOutput1(This,device,flags,format_count,formats,duplication) (This)->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication)
 554/*** IDXGIOutput6 methods ***/
 555#define IDXGIOutput6_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc)
 556#define IDXGIOutput6_CheckHardwareCompositionSupport(This,flags) (This)->lpVtbl->CheckHardwareCompositionSupport(This,flags)
 557#else
 558/*** IUnknown methods ***/
 559static inline HRESULT IDXGIOutput6_QueryInterface(IDXGIOutput6* This,REFIID riid,void **ppvObject) {
 560    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 561}
 562static inline ULONG IDXGIOutput6_AddRef(IDXGIOutput6* This) {
 563    return This->lpVtbl->AddRef(This);
 564}
 565static inline ULONG IDXGIOutput6_Release(IDXGIOutput6* This) {
 566    return This->lpVtbl->Release(This);
 567}
 568/*** IDXGIObject methods ***/
 569static inline HRESULT IDXGIOutput6_SetPrivateData(IDXGIOutput6* This,REFGUID guid,UINT data_size,const void *data) {
 570    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
 571}
 572static inline HRESULT IDXGIOutput6_SetPrivateDataInterface(IDXGIOutput6* This,REFGUID guid,const IUnknown *object) {
 573    return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
 574}
 575static inline HRESULT IDXGIOutput6_GetPrivateData(IDXGIOutput6* This,REFGUID guid,UINT *data_size,void *data) {
 576    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
 577}
 578static inline HRESULT IDXGIOutput6_GetParent(IDXGIOutput6* This,REFIID riid,void **parent) {
 579    return This->lpVtbl->GetParent(This,riid,parent);
 580}
 581/*** IDXGIOutput methods ***/
 582static inline HRESULT IDXGIOutput6_GetDesc(IDXGIOutput6* This,DXGI_OUTPUT_DESC *desc) {
 583    return This->lpVtbl->GetDesc(This,desc);
 584}
 585static inline HRESULT IDXGIOutput6_GetDisplayModeList(IDXGIOutput6* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
 586    return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
 587}
 588static inline HRESULT IDXGIOutput6_FindClosestMatchingMode(IDXGIOutput6* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
 589    return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
 590}
 591static inline HRESULT IDXGIOutput6_WaitForVBlank(IDXGIOutput6* This) {
 592    return This->lpVtbl->WaitForVBlank(This);
 593}
 594static inline HRESULT IDXGIOutput6_TakeOwnership(IDXGIOutput6* This,IUnknown *device,WINBOOL exclusive) {
 595    return This->lpVtbl->TakeOwnership(This,device,exclusive);
 596}
 597static inline void IDXGIOutput6_ReleaseOwnership(IDXGIOutput6* This) {
 598    This->lpVtbl->ReleaseOwnership(This);
 599}
 600static inline HRESULT IDXGIOutput6_GetGammaControlCapabilities(IDXGIOutput6* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
 601    return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
 602}
 603static inline HRESULT IDXGIOutput6_SetGammaControl(IDXGIOutput6* This,const DXGI_GAMMA_CONTROL *gamma_control) {
 604    return This->lpVtbl->SetGammaControl(This,gamma_control);
 605}
 606static inline HRESULT IDXGIOutput6_GetGammaControl(IDXGIOutput6* This,DXGI_GAMMA_CONTROL *gamma_control) {
 607    return This->lpVtbl->GetGammaControl(This,gamma_control);
 608}
 609static inline HRESULT IDXGIOutput6_SetDisplaySurface(IDXGIOutput6* This,IDXGISurface *surface) {
 610    return This->lpVtbl->SetDisplaySurface(This,surface);
 611}
 612static inline HRESULT IDXGIOutput6_GetDisplaySurfaceData(IDXGIOutput6* This,IDXGISurface *surface) {
 613    return This->lpVtbl->GetDisplaySurfaceData(This,surface);
 614}
 615static inline HRESULT IDXGIOutput6_GetFrameStatistics(IDXGIOutput6* This,DXGI_FRAME_STATISTICS *stats) {
 616    return This->lpVtbl->GetFrameStatistics(This,stats);
 617}
 618/*** IDXGIOutput1 methods ***/
 619static inline HRESULT IDXGIOutput6_GetDisplayModeList1(IDXGIOutput6* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
 620    return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
 621}
 622static inline HRESULT IDXGIOutput6_FindClosestMatchingMode1(IDXGIOutput6* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
 623    return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
 624}
 625static inline HRESULT IDXGIOutput6_GetDisplaySurfaceData1(IDXGIOutput6* This,IDXGIResource *destination) {
 626    return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
 627}
 628static inline HRESULT IDXGIOutput6_DuplicateOutput(IDXGIOutput6* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
 629    return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
 630}
 631/*** IDXGIOutput2 methods ***/
 632static inline WINBOOL IDXGIOutput6_SupportsOverlays(IDXGIOutput6* This) {
 633    return This->lpVtbl->SupportsOverlays(This);
 634}
 635/*** IDXGIOutput3 methods ***/
 636static inline HRESULT IDXGIOutput6_CheckOverlaySupport(IDXGIOutput6* This,DXGI_FORMAT enum_format,IUnknown *concerned_device,UINT *flags) {
 637    return This->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags);
 638}
 639/*** IDXGIOutput4 methods ***/
 640static inline HRESULT IDXGIOutput6_CheckOverlayColorSpaceSupport(IDXGIOutput6* This,DXGI_FORMAT format,DXGI_COLOR_SPACE_TYPE colour_space,IUnknown *device,UINT *flags) {
 641    return This->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags);
 642}
 643/*** IDXGIOutput5 methods ***/
 644static inline HRESULT IDXGIOutput6_DuplicateOutput1(IDXGIOutput6* This,IUnknown *device,UINT flags,UINT format_count,const DXGI_FORMAT *formats,IDXGIOutputDuplication **duplication) {
 645    return This->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication);
 646}
 647/*** IDXGIOutput6 methods ***/
 648static inline HRESULT IDXGIOutput6_GetDesc1(IDXGIOutput6* This,DXGI_OUTPUT_DESC1 *desc) {
 649    return This->lpVtbl->GetDesc1(This,desc);
 650}
 651static inline HRESULT IDXGIOutput6_CheckHardwareCompositionSupport(IDXGIOutput6* This,UINT *flags) {
 652    return This->lpVtbl->CheckHardwareCompositionSupport(This,flags);
 653}
 654#endif
 655#endif
 656
 657#endif
 658
 659
 660#endif  /* __IDXGIOutput6_INTERFACE_DEFINED__ */
 661
 662/*****************************************************************************
 663 * IDXGIFactory6 interface
 664 */
 665#ifndef __IDXGIFactory6_INTERFACE_DEFINED__
 666#define __IDXGIFactory6_INTERFACE_DEFINED__
 667
 668DEFINE_GUID(IID_IDXGIFactory6, 0xc1b6694f, 0xff09, 0x44a9, 0xb0,0x3c, 0x77,0x90,0x0a,0x0a,0x1d,0x17);
 669#if defined(__cplusplus) && !defined(CINTERFACE)
 670MIDL_INTERFACE("c1b6694f-ff09-44a9-b03c-77900a0a1d17")
 671IDXGIFactory6 : public IDXGIFactory5
 672{
 673    virtual HRESULT STDMETHODCALLTYPE EnumAdapterByGpuPreference(
 674        UINT adapter_idx,
 675        DXGI_GPU_PREFERENCE gpu_preference,
 676        REFIID iid,
 677        void **adapter) = 0;
 678
 679};
 680#ifdef __CRT_UUID_DECL
 681__CRT_UUID_DECL(IDXGIFactory6, 0xc1b6694f, 0xff09, 0x44a9, 0xb0,0x3c, 0x77,0x90,0x0a,0x0a,0x1d,0x17)
 682#endif
 683#else
 684typedef struct IDXGIFactory6Vtbl {
 685    BEGIN_INTERFACE
 686
 687    /*** IUnknown methods ***/
 688    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 689        IDXGIFactory6 *This,
 690        REFIID riid,
 691        void **ppvObject);
 692
 693    ULONG (STDMETHODCALLTYPE *AddRef)(
 694        IDXGIFactory6 *This);
 695
 696    ULONG (STDMETHODCALLTYPE *Release)(
 697        IDXGIFactory6 *This);
 698
 699    /*** IDXGIObject methods ***/
 700    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
 701        IDXGIFactory6 *This,
 702        REFGUID guid,
 703        UINT data_size,
 704        const void *data);
 705
 706    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
 707        IDXGIFactory6 *This,
 708        REFGUID guid,
 709        const IUnknown *object);
 710
 711    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
 712        IDXGIFactory6 *This,
 713        REFGUID guid,
 714        UINT *data_size,
 715        void *data);
 716
 717    HRESULT (STDMETHODCALLTYPE *GetParent)(
 718        IDXGIFactory6 *This,
 719        REFIID riid,
 720        void **parent);
 721
 722    /*** IDXGIFactory methods ***/
 723    HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
 724        IDXGIFactory6 *This,
 725        UINT adapter_idx,
 726        IDXGIAdapter **adapter);
 727
 728    HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
 729        IDXGIFactory6 *This,
 730        HWND window,
 731        UINT flags);
 732
 733    HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
 734        IDXGIFactory6 *This,
 735        HWND *window);
 736
 737    HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
 738        IDXGIFactory6 *This,
 739        IUnknown *device,
 740        DXGI_SWAP_CHAIN_DESC *desc,
 741        IDXGISwapChain **swapchain);
 742
 743    HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
 744        IDXGIFactory6 *This,
 745        HMODULE swrast,
 746        IDXGIAdapter **adapter);
 747
 748    /*** IDXGIFactory1 methods ***/
 749    HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
 750        IDXGIFactory6 *This,
 751        UINT Adapter,
 752        IDXGIAdapter1 **ppAdapter);
 753
 754    WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
 755        IDXGIFactory6 *This);
 756
 757    /*** IDXGIFactory2 methods ***/
 758    WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
 759        IDXGIFactory6 *This);
 760
 761    HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
 762        IDXGIFactory6 *This,
 763        IUnknown *pDevice,
 764        HWND hWnd,
 765        const DXGI_SWAP_CHAIN_DESC1 *pDesc,
 766        const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
 767        IDXGIOutput *pRestrictToOutput,
 768        IDXGISwapChain1 **ppSwapChain);
 769
 770    HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
 771        IDXGIFactory6 *This,
 772        IUnknown *pDevice,
 773        IUnknown *pWindow,
 774        const DXGI_SWAP_CHAIN_DESC1 *pDesc,
 775        IDXGIOutput *pRestrictToOutput,
 776        IDXGISwapChain1 **ppSwapChain);
 777
 778    HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
 779        IDXGIFactory6 *This,
 780        HANDLE hResource,
 781        LUID *pLuid);
 782
 783    HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
 784        IDXGIFactory6 *This,
 785        HWND WindowHandle,
 786        UINT wMsg,
 787        DWORD *pdwCookie);
 788
 789    HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
 790        IDXGIFactory6 *This,
 791        HANDLE hEvent,
 792        DWORD *pdwCookie);
 793
 794    void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
 795        IDXGIFactory6 *This,
 796        DWORD dwCookie);
 797
 798    HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
 799        IDXGIFactory6 *This,
 800        HWND WindowHandle,
 801        UINT wMsg,
 802        DWORD *pdwCookie);
 803
 804    HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
 805        IDXGIFactory6 *This,
 806        HANDLE hEvent,
 807        DWORD *pdwCookie);
 808
 809    void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
 810        IDXGIFactory6 *This,
 811        DWORD dwCookie);
 812
 813    HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
 814        IDXGIFactory6 *This,
 815        IUnknown *pDevice,
 816        const DXGI_SWAP_CHAIN_DESC1 *pDesc,
 817        IDXGIOutput *pRestrictToOutput,
 818        IDXGISwapChain1 **ppSwapChain);
 819
 820    /*** IDXGIFactory3 methods ***/
 821    UINT (STDMETHODCALLTYPE *GetCreationFlags)(
 822        IDXGIFactory6 *This);
 823
 824    /*** IDXGIFactory4 methods ***/
 825    HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)(
 826        IDXGIFactory6 *This,
 827        LUID luid,
 828        REFIID iid,
 829        void **adapter);
 830
 831    HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)(
 832        IDXGIFactory6 *This,
 833        REFIID iid,
 834        void **adapter);
 835
 836    /*** IDXGIFactory5 methods ***/
 837    HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
 838        IDXGIFactory6 *This,
 839        DXGI_FEATURE feature,
 840        void *support_data,
 841        UINT support_data_size);
 842
 843    /*** IDXGIFactory6 methods ***/
 844    HRESULT (STDMETHODCALLTYPE *EnumAdapterByGpuPreference)(
 845        IDXGIFactory6 *This,
 846        UINT adapter_idx,
 847        DXGI_GPU_PREFERENCE gpu_preference,
 848        REFIID iid,
 849        void **adapter);
 850
 851    END_INTERFACE
 852} IDXGIFactory6Vtbl;
 853
 854interface IDXGIFactory6 {
 855    CONST_VTBL IDXGIFactory6Vtbl* lpVtbl;
 856};
 857
 858#ifdef COBJMACROS
 859#ifndef WIDL_C_INLINE_WRAPPERS
 860/*** IUnknown methods ***/
 861#define IDXGIFactory6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 862#define IDXGIFactory6_AddRef(This) (This)->lpVtbl->AddRef(This)
 863#define IDXGIFactory6_Release(This) (This)->lpVtbl->Release(This)
 864/*** IDXGIObject methods ***/
 865#define IDXGIFactory6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
 866#define IDXGIFactory6_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
 867#define IDXGIFactory6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
 868#define IDXGIFactory6_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
 869/*** IDXGIFactory methods ***/
 870#define IDXGIFactory6_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
 871#define IDXGIFactory6_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
 872#define IDXGIFactory6_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
 873#define IDXGIFactory6_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
 874#define IDXGIFactory6_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
 875/*** IDXGIFactory1 methods ***/
 876#define IDXGIFactory6_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
 877#define IDXGIFactory6_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
 878/*** IDXGIFactory2 methods ***/
 879#define IDXGIFactory6_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
 880#define IDXGIFactory6_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
 881#define IDXGIFactory6_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
 882#define IDXGIFactory6_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
 883#define IDXGIFactory6_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
 884#define IDXGIFactory6_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
 885#define IDXGIFactory6_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
 886#define IDXGIFactory6_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
 887#define IDXGIFactory6_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
 888#define IDXGIFactory6_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
 889#define IDXGIFactory6_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
 890/*** IDXGIFactory3 methods ***/
 891#define IDXGIFactory6_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
 892/*** IDXGIFactory4 methods ***/
 893#define IDXGIFactory6_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter)
 894#define IDXGIFactory6_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter)
 895/*** IDXGIFactory5 methods ***/
 896#define IDXGIFactory6_CheckFeatureSupport(This,feature,support_data,support_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size)
 897/*** IDXGIFactory6 methods ***/
 898#define IDXGIFactory6_EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter) (This)->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter)
 899#else
 900/*** IUnknown methods ***/
 901static inline HRESULT IDXGIFactory6_QueryInterface(IDXGIFactory6* This,REFIID riid,void **ppvObject) {
 902    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 903}
 904static inline ULONG IDXGIFactory6_AddRef(IDXGIFactory6* This) {
 905    return This->lpVtbl->AddRef(This);
 906}
 907static inline ULONG IDXGIFactory6_Release(IDXGIFactory6* This) {
 908    return This->lpVtbl->Release(This);
 909}
 910/*** IDXGIObject methods ***/
 911static inline HRESULT IDXGIFactory6_SetPrivateData(IDXGIFactory6* This,REFGUID guid,UINT data_size,const void *data) {
 912    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
 913}
 914static inline HRESULT IDXGIFactory6_SetPrivateDataInterface(IDXGIFactory6* This,REFGUID guid,const IUnknown *object) {
 915    return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
 916}
 917static inline HRESULT IDXGIFactory6_GetPrivateData(IDXGIFactory6* This,REFGUID guid,UINT *data_size,void *data) {
 918    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
 919}
 920static inline HRESULT IDXGIFactory6_GetParent(IDXGIFactory6* This,REFIID riid,void **parent) {
 921    return This->lpVtbl->GetParent(This,riid,parent);
 922}
 923/*** IDXGIFactory methods ***/
 924static inline HRESULT IDXGIFactory6_EnumAdapters(IDXGIFactory6* This,UINT adapter_idx,IDXGIAdapter **adapter) {
 925    return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
 926}
 927static inline HRESULT IDXGIFactory6_MakeWindowAssociation(IDXGIFactory6* This,HWND window,UINT flags) {
 928    return This->lpVtbl->MakeWindowAssociation(This,window,flags);
 929}
 930static inline HRESULT IDXGIFactory6_GetWindowAssociation(IDXGIFactory6* This,HWND *window) {
 931    return This->lpVtbl->GetWindowAssociation(This,window);
 932}
 933static inline HRESULT IDXGIFactory6_CreateSwapChain(IDXGIFactory6* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
 934    return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
 935}
 936static inline HRESULT IDXGIFactory6_CreateSoftwareAdapter(IDXGIFactory6* This,HMODULE swrast,IDXGIAdapter **adapter) {
 937    return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
 938}
 939/*** IDXGIFactory1 methods ***/
 940static inline HRESULT IDXGIFactory6_EnumAdapters1(IDXGIFactory6* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
 941    return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
 942}
 943static inline WINBOOL IDXGIFactory6_IsCurrent(IDXGIFactory6* This) {
 944    return This->lpVtbl->IsCurrent(This);
 945}
 946/*** IDXGIFactory2 methods ***/
 947static inline WINBOOL IDXGIFactory6_IsWindowedStereoEnabled(IDXGIFactory6* This) {
 948    return This->lpVtbl->IsWindowedStereoEnabled(This);
 949}
 950static inline HRESULT IDXGIFactory6_CreateSwapChainForHwnd(IDXGIFactory6* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
 951    return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
 952}
 953static inline HRESULT IDXGIFactory6_CreateSwapChainForCoreWindow(IDXGIFactory6* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
 954    return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
 955}
 956static inline HRESULT IDXGIFactory6_GetSharedResourceAdapterLuid(IDXGIFactory6* This,HANDLE hResource,LUID *pLuid) {
 957    return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
 958}
 959static inline HRESULT IDXGIFactory6_RegisterStereoStatusWindow(IDXGIFactory6* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
 960    return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
 961}
 962static inline HRESULT IDXGIFactory6_RegisterStereoStatusEvent(IDXGIFactory6* This,HANDLE hEvent,DWORD *pdwCookie) {
 963    return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
 964}
 965static inline void IDXGIFactory6_UnregisterStereoStatus(IDXGIFactory6* This,DWORD dwCookie) {
 966    This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
 967}
 968static inline HRESULT IDXGIFactory6_RegisterOcclusionStatusWindow(IDXGIFactory6* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
 969    return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
 970}
 971static inline HRESULT IDXGIFactory6_RegisterOcclusionStatusEvent(IDXGIFactory6* This,HANDLE hEvent,DWORD *pdwCookie) {
 972    return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
 973}
 974static inline void IDXGIFactory6_UnregisterOcclusionStatus(IDXGIFactory6* This,DWORD dwCookie) {
 975    This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
 976}
 977static inline HRESULT IDXGIFactory6_CreateSwapChainForComposition(IDXGIFactory6* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
 978    return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
 979}
 980/*** IDXGIFactory3 methods ***/
 981static inline UINT IDXGIFactory6_GetCreationFlags(IDXGIFactory6* This) {
 982    return This->lpVtbl->GetCreationFlags(This);
 983}
 984/*** IDXGIFactory4 methods ***/
 985static inline HRESULT IDXGIFactory6_EnumAdapterByLuid(IDXGIFactory6* This,LUID luid,REFIID iid,void **adapter) {
 986    return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
 987}
 988static inline HRESULT IDXGIFactory6_EnumWarpAdapter(IDXGIFactory6* This,REFIID iid,void **adapter) {
 989    return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
 990}
 991/*** IDXGIFactory5 methods ***/
 992static inline HRESULT IDXGIFactory6_CheckFeatureSupport(IDXGIFactory6* This,DXGI_FEATURE feature,void *support_data,UINT support_data_size) {
 993    return This->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size);
 994}
 995/*** IDXGIFactory6 methods ***/
 996static inline HRESULT IDXGIFactory6_EnumAdapterByGpuPreference(IDXGIFactory6* This,UINT adapter_idx,DXGI_GPU_PREFERENCE gpu_preference,REFIID iid,void **adapter) {
 997    return This->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter);
 998}
 999#endif
1000#endif
1001
1002#endif
1003
1004
1005#endif  /* __IDXGIFactory6_INTERFACE_DEFINED__ */
1006
1007/*****************************************************************************
1008 * IDXGIFactory7 interface
1009 */
1010#ifndef __IDXGIFactory7_INTERFACE_DEFINED__
1011#define __IDXGIFactory7_INTERFACE_DEFINED__
1012
1013DEFINE_GUID(IID_IDXGIFactory7, 0xa4966eed, 0x76db, 0x44da, 0x84,0xc1, 0xee,0x9a,0x7a,0xfb,0x20,0xa8);
1014#if defined(__cplusplus) && !defined(CINTERFACE)
1015MIDL_INTERFACE("a4966eed-76db-44da-84c1-ee9a7afb20a8")
1016IDXGIFactory7 : public IDXGIFactory6
1017{
1018    virtual HRESULT STDMETHODCALLTYPE RegisterAdaptersChangedEvent(
1019        HANDLE event,
1020        DWORD *cookie) = 0;
1021
1022    virtual HRESULT STDMETHODCALLTYPE UnregisterAdaptersChangedEvent(
1023        DWORD cookie) = 0;
1024
1025};
1026#ifdef __CRT_UUID_DECL
1027__CRT_UUID_DECL(IDXGIFactory7, 0xa4966eed, 0x76db, 0x44da, 0x84,0xc1, 0xee,0x9a,0x7a,0xfb,0x20,0xa8)
1028#endif
1029#else
1030typedef struct IDXGIFactory7Vtbl {
1031    BEGIN_INTERFACE
1032
1033    /*** IUnknown methods ***/
1034    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1035        IDXGIFactory7 *This,
1036        REFIID riid,
1037        void **ppvObject);
1038
1039    ULONG (STDMETHODCALLTYPE *AddRef)(
1040        IDXGIFactory7 *This);
1041
1042    ULONG (STDMETHODCALLTYPE *Release)(
1043        IDXGIFactory7 *This);
1044
1045    /*** IDXGIObject methods ***/
1046    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
1047        IDXGIFactory7 *This,
1048        REFGUID guid,
1049        UINT data_size,
1050        const void *data);
1051
1052    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
1053        IDXGIFactory7 *This,
1054        REFGUID guid,
1055        const IUnknown *object);
1056
1057    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
1058        IDXGIFactory7 *This,
1059        REFGUID guid,
1060        UINT *data_size,
1061        void *data);
1062
1063    HRESULT (STDMETHODCALLTYPE *GetParent)(
1064        IDXGIFactory7 *This,
1065        REFIID riid,
1066        void **parent);
1067
1068    /*** IDXGIFactory methods ***/
1069    HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
1070        IDXGIFactory7 *This,
1071        UINT adapter_idx,
1072        IDXGIAdapter **adapter);
1073
1074    HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
1075        IDXGIFactory7 *This,
1076        HWND window,
1077        UINT flags);
1078
1079    HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
1080        IDXGIFactory7 *This,
1081        HWND *window);
1082
1083    HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
1084        IDXGIFactory7 *This,
1085        IUnknown *device,
1086        DXGI_SWAP_CHAIN_DESC *desc,
1087        IDXGISwapChain **swapchain);
1088
1089    HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
1090        IDXGIFactory7 *This,
1091        HMODULE swrast,
1092        IDXGIAdapter **adapter);
1093
1094    /*** IDXGIFactory1 methods ***/
1095    HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
1096        IDXGIFactory7 *This,
1097        UINT Adapter,
1098        IDXGIAdapter1 **ppAdapter);
1099
1100    WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
1101        IDXGIFactory7 *This);
1102
1103    /*** IDXGIFactory2 methods ***/
1104    WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
1105        IDXGIFactory7 *This);
1106
1107    HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
1108        IDXGIFactory7 *This,
1109        IUnknown *pDevice,
1110        HWND hWnd,
1111        const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1112        const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
1113        IDXGIOutput *pRestrictToOutput,
1114        IDXGISwapChain1 **ppSwapChain);
1115
1116    HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
1117        IDXGIFactory7 *This,
1118        IUnknown *pDevice,
1119        IUnknown *pWindow,
1120        const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1121        IDXGIOutput *pRestrictToOutput,
1122        IDXGISwapChain1 **ppSwapChain);
1123
1124    HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
1125        IDXGIFactory7 *This,
1126        HANDLE hResource,
1127        LUID *pLuid);
1128
1129    HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
1130        IDXGIFactory7 *This,
1131        HWND WindowHandle,
1132        UINT wMsg,
1133        DWORD *pdwCookie);
1134
1135    HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
1136        IDXGIFactory7 *This,
1137        HANDLE hEvent,
1138        DWORD *pdwCookie);
1139
1140    void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
1141        IDXGIFactory7 *This,
1142        DWORD dwCookie);
1143
1144    HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
1145        IDXGIFactory7 *This,
1146        HWND WindowHandle,
1147        UINT wMsg,
1148        DWORD *pdwCookie);
1149
1150    HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
1151        IDXGIFactory7 *This,
1152        HANDLE hEvent,
1153        DWORD *pdwCookie);
1154
1155    void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
1156        IDXGIFactory7 *This,
1157        DWORD dwCookie);
1158
1159    HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
1160        IDXGIFactory7 *This,
1161        IUnknown *pDevice,
1162        const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1163        IDXGIOutput *pRestrictToOutput,
1164        IDXGISwapChain1 **ppSwapChain);
1165
1166    /*** IDXGIFactory3 methods ***/
1167    UINT (STDMETHODCALLTYPE *GetCreationFlags)(
1168        IDXGIFactory7 *This);
1169
1170    /*** IDXGIFactory4 methods ***/
1171    HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)(
1172        IDXGIFactory7 *This,
1173        LUID luid,
1174        REFIID iid,
1175        void **adapter);
1176
1177    HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)(
1178        IDXGIFactory7 *This,
1179        REFIID iid,
1180        void **adapter);
1181
1182    /*** IDXGIFactory5 methods ***/
1183    HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
1184        IDXGIFactory7 *This,
1185        DXGI_FEATURE feature,
1186        void *support_data,
1187        UINT support_data_size);
1188
1189    /*** IDXGIFactory6 methods ***/
1190    HRESULT (STDMETHODCALLTYPE *EnumAdapterByGpuPreference)(
1191        IDXGIFactory7 *This,
1192        UINT adapter_idx,
1193        DXGI_GPU_PREFERENCE gpu_preference,
1194        REFIID iid,
1195        void **adapter);
1196
1197    /*** IDXGIFactory7 methods ***/
1198    HRESULT (STDMETHODCALLTYPE *RegisterAdaptersChangedEvent)(
1199        IDXGIFactory7 *This,
1200        HANDLE event,
1201        DWORD *cookie);
1202
1203    HRESULT (STDMETHODCALLTYPE *UnregisterAdaptersChangedEvent)(
1204        IDXGIFactory7 *This,
1205        DWORD cookie);
1206
1207    END_INTERFACE
1208} IDXGIFactory7Vtbl;
1209
1210interface IDXGIFactory7 {
1211    CONST_VTBL IDXGIFactory7Vtbl* lpVtbl;
1212};
1213
1214#ifdef COBJMACROS
1215#ifndef WIDL_C_INLINE_WRAPPERS
1216/*** IUnknown methods ***/
1217#define IDXGIFactory7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1218#define IDXGIFactory7_AddRef(This) (This)->lpVtbl->AddRef(This)
1219#define IDXGIFactory7_Release(This) (This)->lpVtbl->Release(This)
1220/*** IDXGIObject methods ***/
1221#define IDXGIFactory7_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
1222#define IDXGIFactory7_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
1223#define IDXGIFactory7_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
1224#define IDXGIFactory7_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
1225/*** IDXGIFactory methods ***/
1226#define IDXGIFactory7_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
1227#define IDXGIFactory7_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
1228#define IDXGIFactory7_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
1229#define IDXGIFactory7_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
1230#define IDXGIFactory7_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
1231/*** IDXGIFactory1 methods ***/
1232#define IDXGIFactory7_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
1233#define IDXGIFactory7_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
1234/*** IDXGIFactory2 methods ***/
1235#define IDXGIFactory7_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
1236#define IDXGIFactory7_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
1237#define IDXGIFactory7_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
1238#define IDXGIFactory7_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
1239#define IDXGIFactory7_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1240#define IDXGIFactory7_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
1241#define IDXGIFactory7_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
1242#define IDXGIFactory7_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1243#define IDXGIFactory7_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
1244#define IDXGIFactory7_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
1245#define IDXGIFactory7_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
1246/*** IDXGIFactory3 methods ***/
1247#define IDXGIFactory7_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
1248/*** IDXGIFactory4 methods ***/
1249#define IDXGIFactory7_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter)
1250#define IDXGIFactory7_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter)
1251/*** IDXGIFactory5 methods ***/
1252#define IDXGIFactory7_CheckFeatureSupport(This,feature,support_data,support_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size)
1253/*** IDXGIFactory6 methods ***/
1254#define IDXGIFactory7_EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter) (This)->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter)
1255/*** IDXGIFactory7 methods ***/
1256#define IDXGIFactory7_RegisterAdaptersChangedEvent(This,event,cookie) (This)->lpVtbl->RegisterAdaptersChangedEvent(This,event,cookie)
1257#define IDXGIFactory7_UnregisterAdaptersChangedEvent(This,cookie) (This)->lpVtbl->UnregisterAdaptersChangedEvent(This,cookie)
1258#else
1259/*** IUnknown methods ***/
1260static inline HRESULT IDXGIFactory7_QueryInterface(IDXGIFactory7* This,REFIID riid,void **ppvObject) {
1261    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1262}
1263static inline ULONG IDXGIFactory7_AddRef(IDXGIFactory7* This) {
1264    return This->lpVtbl->AddRef(This);
1265}
1266static inline ULONG IDXGIFactory7_Release(IDXGIFactory7* This) {
1267    return This->lpVtbl->Release(This);
1268}
1269/*** IDXGIObject methods ***/
1270static inline HRESULT IDXGIFactory7_SetPrivateData(IDXGIFactory7* This,REFGUID guid,UINT data_size,const void *data) {
1271    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
1272}
1273static inline HRESULT IDXGIFactory7_SetPrivateDataInterface(IDXGIFactory7* This,REFGUID guid,const IUnknown *object) {
1274    return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1275}
1276static inline HRESULT IDXGIFactory7_GetPrivateData(IDXGIFactory7* This,REFGUID guid,UINT *data_size,void *data) {
1277    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1278}
1279static inline HRESULT IDXGIFactory7_GetParent(IDXGIFactory7* This,REFIID riid,void **parent) {
1280    return This->lpVtbl->GetParent(This,riid,parent);
1281}
1282/*** IDXGIFactory methods ***/
1283static inline HRESULT IDXGIFactory7_EnumAdapters(IDXGIFactory7* This,UINT adapter_idx,IDXGIAdapter **adapter) {
1284    return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
1285}
1286static inline HRESULT IDXGIFactory7_MakeWindowAssociation(IDXGIFactory7* This,HWND window,UINT flags) {
1287    return This->lpVtbl->MakeWindowAssociation(This,window,flags);
1288}
1289static inline HRESULT IDXGIFactory7_GetWindowAssociation(IDXGIFactory7* This,HWND *window) {
1290    return This->lpVtbl->GetWindowAssociation(This,window);
1291}
1292static inline HRESULT IDXGIFactory7_CreateSwapChain(IDXGIFactory7* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
1293    return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
1294}
1295static inline HRESULT IDXGIFactory7_CreateSoftwareAdapter(IDXGIFactory7* This,HMODULE swrast,IDXGIAdapter **adapter) {
1296    return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
1297}
1298/*** IDXGIFactory1 methods ***/
1299static inline HRESULT IDXGIFactory7_EnumAdapters1(IDXGIFactory7* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
1300    return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
1301}
1302static inline WINBOOL IDXGIFactory7_IsCurrent(IDXGIFactory7* This) {
1303    return This->lpVtbl->IsCurrent(This);
1304}
1305/*** IDXGIFactory2 methods ***/
1306static inline WINBOOL IDXGIFactory7_IsWindowedStereoEnabled(IDXGIFactory7* This) {
1307    return This->lpVtbl->IsWindowedStereoEnabled(This);
1308}
1309static inline HRESULT IDXGIFactory7_CreateSwapChainForHwnd(IDXGIFactory7* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1310    return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
1311}
1312static inline HRESULT IDXGIFactory7_CreateSwapChainForCoreWindow(IDXGIFactory7* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1313    return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
1314}
1315static inline HRESULT IDXGIFactory7_GetSharedResourceAdapterLuid(IDXGIFactory7* This,HANDLE hResource,LUID *pLuid) {
1316    return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
1317}
1318static inline HRESULT IDXGIFactory7_RegisterStereoStatusWindow(IDXGIFactory7* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1319    return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1320}
1321static inline HRESULT IDXGIFactory7_RegisterStereoStatusEvent(IDXGIFactory7* This,HANDLE hEvent,DWORD *pdwCookie) {
1322    return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
1323}
1324static inline void IDXGIFactory7_UnregisterStereoStatus(IDXGIFactory7* This,DWORD dwCookie) {
1325    This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
1326}
1327static inline HRESULT IDXGIFactory7_RegisterOcclusionStatusWindow(IDXGIFactory7* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1328    return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1329}
1330static inline HRESULT IDXGIFactory7_RegisterOcclusionStatusEvent(IDXGIFactory7* This,HANDLE hEvent,DWORD *pdwCookie) {
1331    return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
1332}
1333static inline void IDXGIFactory7_UnregisterOcclusionStatus(IDXGIFactory7* This,DWORD dwCookie) {
1334    This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
1335}
1336static inline HRESULT IDXGIFactory7_CreateSwapChainForComposition(IDXGIFactory7* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1337    return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
1338}
1339/*** IDXGIFactory3 methods ***/
1340static inline UINT IDXGIFactory7_GetCreationFlags(IDXGIFactory7* This) {
1341    return This->lpVtbl->GetCreationFlags(This);
1342}
1343/*** IDXGIFactory4 methods ***/
1344static inline HRESULT IDXGIFactory7_EnumAdapterByLuid(IDXGIFactory7* This,LUID luid,REFIID iid,void **adapter) {
1345    return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
1346}
1347static inline HRESULT IDXGIFactory7_EnumWarpAdapter(IDXGIFactory7* This,REFIID iid,void **adapter) {
1348    return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
1349}
1350/*** IDXGIFactory5 methods ***/
1351static inline HRESULT IDXGIFactory7_CheckFeatureSupport(IDXGIFactory7* This,DXGI_FEATURE feature,void *support_data,UINT support_data_size) {
1352    return This->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size);
1353}
1354/*** IDXGIFactory6 methods ***/
1355static inline HRESULT IDXGIFactory7_EnumAdapterByGpuPreference(IDXGIFactory7* This,UINT adapter_idx,DXGI_GPU_PREFERENCE gpu_preference,REFIID iid,void **adapter) {
1356    return This->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter);
1357}
1358/*** IDXGIFactory7 methods ***/
1359static inline HRESULT IDXGIFactory7_RegisterAdaptersChangedEvent(IDXGIFactory7* This,HANDLE event,DWORD *cookie) {
1360    return This->lpVtbl->RegisterAdaptersChangedEvent(This,event,cookie);
1361}
1362static inline HRESULT IDXGIFactory7_UnregisterAdaptersChangedEvent(IDXGIFactory7* This,DWORD cookie) {
1363    return This->lpVtbl->UnregisterAdaptersChangedEvent(This,cookie);
1364}
1365#endif
1366#endif
1367
1368#endif
1369
1370
1371#endif  /* __IDXGIFactory7_INTERFACE_DEFINED__ */
1372
1373/* Begin additional prototypes for all interfaces */
1374
1375
1376/* End additional prototypes */
1377
1378#ifdef __cplusplus
1379}
1380#endif
1381
1382#endif /* __dxgi1_6_h__ */