1 /*** Autogenerated by WIDL 1.6 from direct-x/include/dxgi.idl - Do not edit ***/ 2 3 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 4 #define __REQUIRED_RPCNDR_H_VERSION__ 475 5 #endif 6 7 #include <rpc.h> 8 #include <rpcndr.h> 9 10 #ifndef COM_NO_WINDOWS_H 11 #include <windows.h> 12 #include <ole2.h> 13 #endif 14 15 #ifndef __dxgi_h__ 16 #define __dxgi_h__ 17 18 /* Forward declarations */ 19 20 #ifndef __IDXGIObject_FWD_DEFINED__ 21 #define __IDXGIObject_FWD_DEFINED__ 22 typedef interface IDXGIObject IDXGIObject; 23 #endif 24 25 #ifndef __IDXGIDeviceSubObject_FWD_DEFINED__ 26 #define __IDXGIDeviceSubObject_FWD_DEFINED__ 27 typedef interface IDXGIDeviceSubObject IDXGIDeviceSubObject; 28 #endif 29 30 #ifndef __IDXGIResource_FWD_DEFINED__ 31 #define __IDXGIResource_FWD_DEFINED__ 32 typedef interface IDXGIResource IDXGIResource; 33 #endif 34 35 #ifndef __IDXGIKeyedMutex_FWD_DEFINED__ 36 #define __IDXGIKeyedMutex_FWD_DEFINED__ 37 typedef interface IDXGIKeyedMutex IDXGIKeyedMutex; 38 #endif 39 40 #ifndef __IDXGISurface_FWD_DEFINED__ 41 #define __IDXGISurface_FWD_DEFINED__ 42 typedef interface IDXGISurface IDXGISurface; 43 #endif 44 45 #ifndef __IDXGIOutput_FWD_DEFINED__ 46 #define __IDXGIOutput_FWD_DEFINED__ 47 typedef interface IDXGIOutput IDXGIOutput; 48 #endif 49 50 #ifndef __IDXGIAdapter_FWD_DEFINED__ 51 #define __IDXGIAdapter_FWD_DEFINED__ 52 typedef interface IDXGIAdapter IDXGIAdapter; 53 #endif 54 55 #ifndef __IDXGISwapChain_FWD_DEFINED__ 56 #define __IDXGISwapChain_FWD_DEFINED__ 57 typedef interface IDXGISwapChain IDXGISwapChain; 58 #endif 59 60 #ifndef __IDXGIFactory_FWD_DEFINED__ 61 #define __IDXGIFactory_FWD_DEFINED__ 62 typedef interface IDXGIFactory IDXGIFactory; 63 #endif 64 65 #ifndef __IDXGIDevice_FWD_DEFINED__ 66 #define __IDXGIDevice_FWD_DEFINED__ 67 typedef interface IDXGIDevice IDXGIDevice; 68 #endif 69 70 #ifndef __IDXGIAdapter1_FWD_DEFINED__ 71 #define __IDXGIAdapter1_FWD_DEFINED__ 72 typedef interface IDXGIAdapter1 IDXGIAdapter1; 73 #endif 74 75 #ifndef __IDXGIDevice1_FWD_DEFINED__ 76 #define __IDXGIDevice1_FWD_DEFINED__ 77 typedef interface IDXGIDevice1 IDXGIDevice1; 78 #endif 79 80 #ifndef __IDXGIFactory1_FWD_DEFINED__ 81 #define __IDXGIFactory1_FWD_DEFINED__ 82 typedef interface IDXGIFactory1 IDXGIFactory1; 83 #endif 84 85 /* Headers for imported files */ 86 87 #include <oaidl.h> 88 #include <ocidl.h> 89 #include <dxgitype.h> 90 91 #ifdef __cplusplus 92 extern "C" { 93 #endif 94 95 #define _FACDXGI (0x87a) 96 97 #define MAKE_DXGI_STATUS(x) MAKE_HRESULT(0, _FACDXGI, x) 98 #define DXGI_STATUS_OCCLUDED MAKE_DXGI_STATUS(1) 99 #define DXGI_STATUS_CLIPPED MAKE_DXGI_STATUS(2) 100 #define DXGI_STATUS_NO_REDIRECTION MAKE_DXGI_STATUS(4) 101 #define DXGI_STATUS_NO_DESKTOP_ACCESS MAKE_DXGI_STATUS(5) 102 #define DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE MAKE_DXGI_STATUS(6) 103 #define DXGI_STATUS_MODE_CHANGED MAKE_DXGI_STATUS(7) 104 #define DXGI_STATUS_MODE_CHANGE_IN_PROGRESS MAKE_DXGI_STATUS(8) 105 #define MAKE_DXGI_HRESULT(x) MAKE_HRESULT(1, _FACDXGI, x) 106 #define DXGI_ERROR_INVALID_CALL MAKE_DXGI_HRESULT(1) 107 #define DXGI_ERROR_NOT_FOUND MAKE_DXGI_HRESULT(2) 108 #define DXGI_ERROR_MORE_DATA MAKE_DXGI_HRESULT(3) 109 #define DXGI_ERROR_UNSUPPORTED MAKE_DXGI_HRESULT(4) 110 #define DXGI_ERROR_DEVICE_REMOVED MAKE_DXGI_HRESULT(5) 111 #define DXGI_ERROR_DEVICE_HUNG MAKE_DXGI_HRESULT(6) 112 #define DXGI_ERROR_DEVICE_RESET MAKE_DXGI_HRESULT(7) 113 #define DXGI_ERROR_WAS_STILL_DRAWING MAKE_DXGI_HRESULT(10) 114 #define DXGI_ERROR_FRAME_STATISTICS_DISJOINT MAKE_DXGI_HRESULT(11) 115 #define DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE MAKE_DXGI_HRESULT(12) 116 #define DXGI_ERROR_DRIVER_INTERNAL_ERROR MAKE_DXGI_HRESULT(32) 117 #define DXGI_ERROR_NONEXCLUSIVE MAKE_DXGI_HRESULT(33) 118 #define DXGI_ERROR_NOT_CURRENTLY_AVAILABLE MAKE_DXGI_HRESULT(34) 119 #if 0 120 typedef HANDLE HMONITOR; 121 typedef struct _LUID { 122 DWORD LowPart; 123 LONG HighPart; 124 } LUID; 125 typedef struct _LUID *PLUID; 126 #endif 127 typedef UINT DXGI_USAGE; 128 #define DXGI_USAGE_SHADER_INPUT (0x10) 129 130 #define DXGI_USAGE_RENDER_TARGET_OUTPUT (0x20) 131 132 #define DXGI_USAGE_BACK_BUFFER (0x40) 133 134 #define DXGI_USAGE_SHARED (0x80) 135 136 #define DXGI_USAGE_READ_ONLY (0x100) 137 138 #define DXGI_USAGE_DISCARD_ON_PRESENT (0x200) 139 140 #define DXGI_USAGE_UNORDERED_ACCESS (0x400) 141 142 #define DXGI_ENUM_MODES_INTERLACED (1) 143 144 #define DXGI_ENUM_MODES_SCALING (2) 145 146 typedef enum DXGI_SWAP_EFFECT { 147 DXGI_SWAP_EFFECT_DISCARD = 0, 148 DXGI_SWAP_EFFECT_SEQUENTIAL = 1, 149 DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL = 3, 150 DXGI_SWAP_EFFECT_FLIP_DISCARD = 4 151 } DXGI_SWAP_EFFECT; 152 typedef enum DXGI_RESIDENCY { 153 DXGI_RESIDENCY_FULLY_RESIDENT = 1, 154 DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY = 2, 155 DXGI_RESIDENCY_EVICTED_TO_DISK = 3 156 } DXGI_RESIDENCY; 157 typedef struct DXGI_SURFACE_DESC { 158 UINT Width; 159 UINT Height; 160 DXGI_FORMAT Format; 161 DXGI_SAMPLE_DESC SampleDesc; 162 } DXGI_SURFACE_DESC; 163 typedef struct DXGI_MAPPED_RECT { 164 INT Pitch; 165 BYTE *pBits; 166 } DXGI_MAPPED_RECT; 167 typedef struct DXGI_OUTPUT_DESC { 168 WCHAR DeviceName[32]; 169 RECT DesktopCoordinates; 170 WINBOOL AttachedToDesktop; 171 DXGI_MODE_ROTATION Rotation; 172 HMONITOR Monitor; 173 } DXGI_OUTPUT_DESC; 174 typedef struct DXGI_FRAME_STATISTICS { 175 UINT PresentCount; 176 UINT PresentRefreshCount; 177 UINT SyncRefreshCount; 178 LARGE_INTEGER SyncQPCTime; 179 LARGE_INTEGER SyncGPUTime; 180 } DXGI_FRAME_STATISTICS; 181 typedef struct DXGI_ADAPTER_DESC { 182 WCHAR Description[128]; 183 UINT VendorId; 184 UINT DeviceId; 185 UINT SubSysId; 186 UINT Revision; 187 SIZE_T DedicatedVideoMemory; 188 SIZE_T DedicatedSystemMemory; 189 SIZE_T SharedSystemMemory; 190 LUID AdapterLuid; 191 } DXGI_ADAPTER_DESC; 192 typedef enum DXGI_SWAP_CHAIN_FLAG { 193 DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1, 194 DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2, 195 DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 4 196 } DXGI_SWAP_CHAIN_FLAG; 197 typedef struct DXGI_SWAP_CHAIN_DESC { 198 DXGI_MODE_DESC BufferDesc; 199 DXGI_SAMPLE_DESC SampleDesc; 200 DXGI_USAGE BufferUsage; 201 UINT BufferCount; 202 HWND OutputWindow; 203 WINBOOL Windowed; 204 DXGI_SWAP_EFFECT SwapEffect; 205 UINT Flags; 206 } DXGI_SWAP_CHAIN_DESC; 207 typedef struct DXGI_SHARED_RESOURCE { 208 HANDLE Handle; 209 } DXGI_SHARED_RESOURCE; 210 /***************************************************************************** 211 * IDXGIObject interface 212 */ 213 #ifndef __IDXGIObject_INTERFACE_DEFINED__ 214 #define __IDXGIObject_INTERFACE_DEFINED__ 215 216 DEFINE_GUID(IID_IDXGIObject, 0xaec22fb8, 0x76f3, 0x4639, 0x9b,0xe0, 0x28,0xeb,0x43,0xa6,0x7a,0x2e); 217 #if defined(__cplusplus) && !defined(CINTERFACE) 218 MIDL_INTERFACE("aec22fb8-76f3-4639-9be0-28eb43a67a2e") 219 IDXGIObject : public IUnknown 220 { 221 virtual HRESULT STDMETHODCALLTYPE SetPrivateData( 222 REFGUID guid, 223 UINT data_size, 224 const void *data) = 0; 225 226 virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( 227 REFGUID guid, 228 const IUnknown *object) = 0; 229 230 virtual HRESULT STDMETHODCALLTYPE GetPrivateData( 231 REFGUID guid, 232 UINT *data_size, 233 void *data) = 0; 234 235 virtual HRESULT STDMETHODCALLTYPE GetParent( 236 REFIID riid, 237 void **parent) = 0; 238 239 }; 240 #ifdef __CRT_UUID_DECL 241 __CRT_UUID_DECL(IDXGIObject, 0xaec22fb8, 0x76f3, 0x4639, 0x9b,0xe0, 0x28,0xeb,0x43,0xa6,0x7a,0x2e) 242 #endif 243 #else 244 typedef struct IDXGIObjectVtbl { 245 BEGIN_INTERFACE 246 247 /*** IUnknown methods ***/ 248 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 249 IDXGIObject* This, 250 REFIID riid, 251 void **ppvObject); 252 253 ULONG (STDMETHODCALLTYPE *AddRef)( 254 IDXGIObject* This); 255 256 ULONG (STDMETHODCALLTYPE *Release)( 257 IDXGIObject* This); 258 259 /*** IDXGIObject methods ***/ 260 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 261 IDXGIObject* This, 262 REFGUID guid, 263 UINT data_size, 264 const void *data); 265 266 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 267 IDXGIObject* This, 268 REFGUID guid, 269 const IUnknown *object); 270 271 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 272 IDXGIObject* This, 273 REFGUID guid, 274 UINT *data_size, 275 void *data); 276 277 HRESULT (STDMETHODCALLTYPE *GetParent)( 278 IDXGIObject* This, 279 REFIID riid, 280 void **parent); 281 282 END_INTERFACE 283 } IDXGIObjectVtbl; 284 interface IDXGIObject { 285 CONST_VTBL IDXGIObjectVtbl* lpVtbl; 286 }; 287 288 #ifdef COBJMACROS 289 #ifndef WIDL_C_INLINE_WRAPPERS 290 /*** IUnknown methods ***/ 291 #define IDXGIObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 292 #define IDXGIObject_AddRef(This) (This)->lpVtbl->AddRef(This) 293 #define IDXGIObject_Release(This) (This)->lpVtbl->Release(This) 294 /*** IDXGIObject methods ***/ 295 #define IDXGIObject_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 296 #define IDXGIObject_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 297 #define IDXGIObject_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 298 #define IDXGIObject_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 299 #else 300 /*** IUnknown methods ***/ 301 static FORCEINLINE HRESULT IDXGIObject_QueryInterface(IDXGIObject* This,REFIID riid,void **ppvObject) { 302 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 303 } 304 static FORCEINLINE ULONG IDXGIObject_AddRef(IDXGIObject* This) { 305 return This->lpVtbl->AddRef(This); 306 } 307 static FORCEINLINE ULONG IDXGIObject_Release(IDXGIObject* This) { 308 return This->lpVtbl->Release(This); 309 } 310 /*** IDXGIObject methods ***/ 311 static FORCEINLINE HRESULT IDXGIObject_SetPrivateData(IDXGIObject* This,REFGUID guid,UINT data_size,const void *data) { 312 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 313 } 314 static FORCEINLINE HRESULT IDXGIObject_SetPrivateDataInterface(IDXGIObject* This,REFGUID guid,const IUnknown *object) { 315 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 316 } 317 static FORCEINLINE HRESULT IDXGIObject_GetPrivateData(IDXGIObject* This,REFGUID guid,UINT *data_size,void *data) { 318 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 319 } 320 static FORCEINLINE HRESULT IDXGIObject_GetParent(IDXGIObject* This,REFIID riid,void **parent) { 321 return This->lpVtbl->GetParent(This,riid,parent); 322 } 323 #endif 324 #endif 325 326 #endif 327 328 HRESULT STDMETHODCALLTYPE IDXGIObject_SetPrivateData_Proxy( 329 IDXGIObject* This, 330 REFGUID guid, 331 UINT data_size, 332 const void *data); 333 void __RPC_STUB IDXGIObject_SetPrivateData_Stub( 334 IRpcStubBuffer* This, 335 IRpcChannelBuffer* pRpcChannelBuffer, 336 PRPC_MESSAGE pRpcMessage, 337 DWORD* pdwStubPhase); 338 HRESULT STDMETHODCALLTYPE IDXGIObject_SetPrivateDataInterface_Proxy( 339 IDXGIObject* This, 340 REFGUID guid, 341 const IUnknown *object); 342 void __RPC_STUB IDXGIObject_SetPrivateDataInterface_Stub( 343 IRpcStubBuffer* This, 344 IRpcChannelBuffer* pRpcChannelBuffer, 345 PRPC_MESSAGE pRpcMessage, 346 DWORD* pdwStubPhase); 347 HRESULT STDMETHODCALLTYPE IDXGIObject_GetPrivateData_Proxy( 348 IDXGIObject* This, 349 REFGUID guid, 350 UINT *data_size, 351 void *data); 352 void __RPC_STUB IDXGIObject_GetPrivateData_Stub( 353 IRpcStubBuffer* This, 354 IRpcChannelBuffer* pRpcChannelBuffer, 355 PRPC_MESSAGE pRpcMessage, 356 DWORD* pdwStubPhase); 357 HRESULT STDMETHODCALLTYPE IDXGIObject_GetParent_Proxy( 358 IDXGIObject* This, 359 REFIID riid, 360 void **parent); 361 void __RPC_STUB IDXGIObject_GetParent_Stub( 362 IRpcStubBuffer* This, 363 IRpcChannelBuffer* pRpcChannelBuffer, 364 PRPC_MESSAGE pRpcMessage, 365 DWORD* pdwStubPhase); 366 367 #endif /* __IDXGIObject_INTERFACE_DEFINED__ */ 368 369 /***************************************************************************** 370 * IDXGIDeviceSubObject interface 371 */ 372 #ifndef __IDXGIDeviceSubObject_INTERFACE_DEFINED__ 373 #define __IDXGIDeviceSubObject_INTERFACE_DEFINED__ 374 375 DEFINE_GUID(IID_IDXGIDeviceSubObject, 0x3d3e0379, 0xf9de, 0x4d58, 0xbb,0x6c, 0x18,0xd6,0x29,0x92,0xf1,0xa6); 376 #if defined(__cplusplus) && !defined(CINTERFACE) 377 MIDL_INTERFACE("3d3e0379-f9de-4d58-bb6c-18d62992f1a6") 378 IDXGIDeviceSubObject : public IDXGIObject 379 { 380 virtual HRESULT STDMETHODCALLTYPE GetDevice( 381 REFIID riid, 382 void **device) = 0; 383 384 }; 385 #ifdef __CRT_UUID_DECL 386 __CRT_UUID_DECL(IDXGIDeviceSubObject, 0x3d3e0379, 0xf9de, 0x4d58, 0xbb,0x6c, 0x18,0xd6,0x29,0x92,0xf1,0xa6) 387 #endif 388 #else 389 typedef struct IDXGIDeviceSubObjectVtbl { 390 BEGIN_INTERFACE 391 392 /*** IUnknown methods ***/ 393 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 394 IDXGIDeviceSubObject* This, 395 REFIID riid, 396 void **ppvObject); 397 398 ULONG (STDMETHODCALLTYPE *AddRef)( 399 IDXGIDeviceSubObject* This); 400 401 ULONG (STDMETHODCALLTYPE *Release)( 402 IDXGIDeviceSubObject* This); 403 404 /*** IDXGIObject methods ***/ 405 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 406 IDXGIDeviceSubObject* This, 407 REFGUID guid, 408 UINT data_size, 409 const void *data); 410 411 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 412 IDXGIDeviceSubObject* This, 413 REFGUID guid, 414 const IUnknown *object); 415 416 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 417 IDXGIDeviceSubObject* This, 418 REFGUID guid, 419 UINT *data_size, 420 void *data); 421 422 HRESULT (STDMETHODCALLTYPE *GetParent)( 423 IDXGIDeviceSubObject* This, 424 REFIID riid, 425 void **parent); 426 427 /*** IDXGIDeviceSubObject methods ***/ 428 HRESULT (STDMETHODCALLTYPE *GetDevice)( 429 IDXGIDeviceSubObject* This, 430 REFIID riid, 431 void **device); 432 433 END_INTERFACE 434 } IDXGIDeviceSubObjectVtbl; 435 interface IDXGIDeviceSubObject { 436 CONST_VTBL IDXGIDeviceSubObjectVtbl* lpVtbl; 437 }; 438 439 #ifdef COBJMACROS 440 #ifndef WIDL_C_INLINE_WRAPPERS 441 /*** IUnknown methods ***/ 442 #define IDXGIDeviceSubObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 443 #define IDXGIDeviceSubObject_AddRef(This) (This)->lpVtbl->AddRef(This) 444 #define IDXGIDeviceSubObject_Release(This) (This)->lpVtbl->Release(This) 445 /*** IDXGIObject methods ***/ 446 #define IDXGIDeviceSubObject_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 447 #define IDXGIDeviceSubObject_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 448 #define IDXGIDeviceSubObject_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 449 #define IDXGIDeviceSubObject_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 450 /*** IDXGIDeviceSubObject methods ***/ 451 #define IDXGIDeviceSubObject_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 452 #else 453 /*** IUnknown methods ***/ 454 static FORCEINLINE HRESULT IDXGIDeviceSubObject_QueryInterface(IDXGIDeviceSubObject* This,REFIID riid,void **ppvObject) { 455 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 456 } 457 static FORCEINLINE ULONG IDXGIDeviceSubObject_AddRef(IDXGIDeviceSubObject* This) { 458 return This->lpVtbl->AddRef(This); 459 } 460 static FORCEINLINE ULONG IDXGIDeviceSubObject_Release(IDXGIDeviceSubObject* This) { 461 return This->lpVtbl->Release(This); 462 } 463 /*** IDXGIObject methods ***/ 464 static FORCEINLINE HRESULT IDXGIDeviceSubObject_SetPrivateData(IDXGIDeviceSubObject* This,REFGUID guid,UINT data_size,const void *data) { 465 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 466 } 467 static FORCEINLINE HRESULT IDXGIDeviceSubObject_SetPrivateDataInterface(IDXGIDeviceSubObject* This,REFGUID guid,const IUnknown *object) { 468 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 469 } 470 static FORCEINLINE HRESULT IDXGIDeviceSubObject_GetPrivateData(IDXGIDeviceSubObject* This,REFGUID guid,UINT *data_size,void *data) { 471 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 472 } 473 static FORCEINLINE HRESULT IDXGIDeviceSubObject_GetParent(IDXGIDeviceSubObject* This,REFIID riid,void **parent) { 474 return This->lpVtbl->GetParent(This,riid,parent); 475 } 476 /*** IDXGIDeviceSubObject methods ***/ 477 static FORCEINLINE HRESULT IDXGIDeviceSubObject_GetDevice(IDXGIDeviceSubObject* This,REFIID riid,void **device) { 478 return This->lpVtbl->GetDevice(This,riid,device); 479 } 480 #endif 481 #endif 482 483 #endif 484 485 HRESULT STDMETHODCALLTYPE IDXGIDeviceSubObject_GetDevice_Proxy( 486 IDXGIDeviceSubObject* This, 487 REFIID riid, 488 void **device); 489 void __RPC_STUB IDXGIDeviceSubObject_GetDevice_Stub( 490 IRpcStubBuffer* This, 491 IRpcChannelBuffer* pRpcChannelBuffer, 492 PRPC_MESSAGE pRpcMessage, 493 DWORD* pdwStubPhase); 494 495 #endif /* __IDXGIDeviceSubObject_INTERFACE_DEFINED__ */ 496 497 /***************************************************************************** 498 * IDXGIResource interface 499 */ 500 #ifndef __IDXGIResource_INTERFACE_DEFINED__ 501 #define __IDXGIResource_INTERFACE_DEFINED__ 502 503 DEFINE_GUID(IID_IDXGIResource, 0x035f3ab4, 0x482e, 0x4e50, 0xb4,0x1f, 0x8a,0x7f,0x8b,0xd8,0x96,0x0b); 504 #if defined(__cplusplus) && !defined(CINTERFACE) 505 MIDL_INTERFACE("035f3ab4-482e-4e50-b41f-8a7f8bd8960b") 506 IDXGIResource : public IDXGIDeviceSubObject 507 { 508 virtual HRESULT STDMETHODCALLTYPE GetSharedHandle( 509 HANDLE *pSharedHandle) = 0; 510 511 virtual HRESULT STDMETHODCALLTYPE GetUsage( 512 DXGI_USAGE *pUsage) = 0; 513 514 virtual HRESULT STDMETHODCALLTYPE SetEvictionPriority( 515 UINT EvictionPriority) = 0; 516 517 virtual HRESULT STDMETHODCALLTYPE GetEvictionPriority( 518 UINT *pEvictionPriority) = 0; 519 520 }; 521 #ifdef __CRT_UUID_DECL 522 __CRT_UUID_DECL(IDXGIResource, 0x035f3ab4, 0x482e, 0x4e50, 0xb4,0x1f, 0x8a,0x7f,0x8b,0xd8,0x96,0x0b) 523 #endif 524 #else 525 typedef struct IDXGIResourceVtbl { 526 BEGIN_INTERFACE 527 528 /*** IUnknown methods ***/ 529 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 530 IDXGIResource* This, 531 REFIID riid, 532 void **ppvObject); 533 534 ULONG (STDMETHODCALLTYPE *AddRef)( 535 IDXGIResource* This); 536 537 ULONG (STDMETHODCALLTYPE *Release)( 538 IDXGIResource* This); 539 540 /*** IDXGIObject methods ***/ 541 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 542 IDXGIResource* This, 543 REFGUID guid, 544 UINT data_size, 545 const void *data); 546 547 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 548 IDXGIResource* This, 549 REFGUID guid, 550 const IUnknown *object); 551 552 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 553 IDXGIResource* This, 554 REFGUID guid, 555 UINT *data_size, 556 void *data); 557 558 HRESULT (STDMETHODCALLTYPE *GetParent)( 559 IDXGIResource* This, 560 REFIID riid, 561 void **parent); 562 563 /*** IDXGIDeviceSubObject methods ***/ 564 HRESULT (STDMETHODCALLTYPE *GetDevice)( 565 IDXGIResource* This, 566 REFIID riid, 567 void **device); 568 569 /*** IDXGIResource methods ***/ 570 HRESULT (STDMETHODCALLTYPE *GetSharedHandle)( 571 IDXGIResource* This, 572 HANDLE *pSharedHandle); 573 574 HRESULT (STDMETHODCALLTYPE *GetUsage)( 575 IDXGIResource* This, 576 DXGI_USAGE *pUsage); 577 578 HRESULT (STDMETHODCALLTYPE *SetEvictionPriority)( 579 IDXGIResource* This, 580 UINT EvictionPriority); 581 582 HRESULT (STDMETHODCALLTYPE *GetEvictionPriority)( 583 IDXGIResource* This, 584 UINT *pEvictionPriority); 585 586 END_INTERFACE 587 } IDXGIResourceVtbl; 588 interface IDXGIResource { 589 CONST_VTBL IDXGIResourceVtbl* lpVtbl; 590 }; 591 592 #ifdef COBJMACROS 593 #ifndef WIDL_C_INLINE_WRAPPERS 594 /*** IUnknown methods ***/ 595 #define IDXGIResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 596 #define IDXGIResource_AddRef(This) (This)->lpVtbl->AddRef(This) 597 #define IDXGIResource_Release(This) (This)->lpVtbl->Release(This) 598 /*** IDXGIObject methods ***/ 599 #define IDXGIResource_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 600 #define IDXGIResource_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 601 #define IDXGIResource_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 602 #define IDXGIResource_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 603 /*** IDXGIDeviceSubObject methods ***/ 604 #define IDXGIResource_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 605 /*** IDXGIResource methods ***/ 606 #define IDXGIResource_GetSharedHandle(This,pSharedHandle) (This)->lpVtbl->GetSharedHandle(This,pSharedHandle) 607 #define IDXGIResource_GetUsage(This,pUsage) (This)->lpVtbl->GetUsage(This,pUsage) 608 #define IDXGIResource_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority) 609 #define IDXGIResource_GetEvictionPriority(This,pEvictionPriority) (This)->lpVtbl->GetEvictionPriority(This,pEvictionPriority) 610 #else 611 /*** IUnknown methods ***/ 612 static FORCEINLINE HRESULT IDXGIResource_QueryInterface(IDXGIResource* This,REFIID riid,void **ppvObject) { 613 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 614 } 615 static FORCEINLINE ULONG IDXGIResource_AddRef(IDXGIResource* This) { 616 return This->lpVtbl->AddRef(This); 617 } 618 static FORCEINLINE ULONG IDXGIResource_Release(IDXGIResource* This) { 619 return This->lpVtbl->Release(This); 620 } 621 /*** IDXGIObject methods ***/ 622 static FORCEINLINE HRESULT IDXGIResource_SetPrivateData(IDXGIResource* This,REFGUID guid,UINT data_size,const void *data) { 623 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 624 } 625 static FORCEINLINE HRESULT IDXGIResource_SetPrivateDataInterface(IDXGIResource* This,REFGUID guid,const IUnknown *object) { 626 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 627 } 628 static FORCEINLINE HRESULT IDXGIResource_GetPrivateData(IDXGIResource* This,REFGUID guid,UINT *data_size,void *data) { 629 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 630 } 631 static FORCEINLINE HRESULT IDXGIResource_GetParent(IDXGIResource* This,REFIID riid,void **parent) { 632 return This->lpVtbl->GetParent(This,riid,parent); 633 } 634 /*** IDXGIDeviceSubObject methods ***/ 635 static FORCEINLINE HRESULT IDXGIResource_GetDevice(IDXGIResource* This,REFIID riid,void **device) { 636 return This->lpVtbl->GetDevice(This,riid,device); 637 } 638 /*** IDXGIResource methods ***/ 639 static FORCEINLINE HRESULT IDXGIResource_GetSharedHandle(IDXGIResource* This,HANDLE *pSharedHandle) { 640 return This->lpVtbl->GetSharedHandle(This,pSharedHandle); 641 } 642 static FORCEINLINE HRESULT IDXGIResource_GetUsage(IDXGIResource* This,DXGI_USAGE *pUsage) { 643 return This->lpVtbl->GetUsage(This,pUsage); 644 } 645 static FORCEINLINE HRESULT IDXGIResource_SetEvictionPriority(IDXGIResource* This,UINT EvictionPriority) { 646 return This->lpVtbl->SetEvictionPriority(This,EvictionPriority); 647 } 648 static FORCEINLINE HRESULT IDXGIResource_GetEvictionPriority(IDXGIResource* This,UINT *pEvictionPriority) { 649 return This->lpVtbl->GetEvictionPriority(This,pEvictionPriority); 650 } 651 #endif 652 #endif 653 654 #endif 655 656 HRESULT STDMETHODCALLTYPE IDXGIResource_GetSharedHandle_Proxy( 657 IDXGIResource* This, 658 HANDLE *pSharedHandle); 659 void __RPC_STUB IDXGIResource_GetSharedHandle_Stub( 660 IRpcStubBuffer* This, 661 IRpcChannelBuffer* pRpcChannelBuffer, 662 PRPC_MESSAGE pRpcMessage, 663 DWORD* pdwStubPhase); 664 HRESULT STDMETHODCALLTYPE IDXGIResource_GetUsage_Proxy( 665 IDXGIResource* This, 666 DXGI_USAGE *pUsage); 667 void __RPC_STUB IDXGIResource_GetUsage_Stub( 668 IRpcStubBuffer* This, 669 IRpcChannelBuffer* pRpcChannelBuffer, 670 PRPC_MESSAGE pRpcMessage, 671 DWORD* pdwStubPhase); 672 HRESULT STDMETHODCALLTYPE IDXGIResource_SetEvictionPriority_Proxy( 673 IDXGIResource* This, 674 UINT EvictionPriority); 675 void __RPC_STUB IDXGIResource_SetEvictionPriority_Stub( 676 IRpcStubBuffer* This, 677 IRpcChannelBuffer* pRpcChannelBuffer, 678 PRPC_MESSAGE pRpcMessage, 679 DWORD* pdwStubPhase); 680 HRESULT STDMETHODCALLTYPE IDXGIResource_GetEvictionPriority_Proxy( 681 IDXGIResource* This, 682 UINT *pEvictionPriority); 683 void __RPC_STUB IDXGIResource_GetEvictionPriority_Stub( 684 IRpcStubBuffer* This, 685 IRpcChannelBuffer* pRpcChannelBuffer, 686 PRPC_MESSAGE pRpcMessage, 687 DWORD* pdwStubPhase); 688 689 #endif /* __IDXGIResource_INTERFACE_DEFINED__ */ 690 691 /***************************************************************************** 692 * IDXGIKeyedMutex interface 693 */ 694 #ifndef __IDXGIKeyedMutex_INTERFACE_DEFINED__ 695 #define __IDXGIKeyedMutex_INTERFACE_DEFINED__ 696 697 DEFINE_GUID(IID_IDXGIKeyedMutex, 0x9d8e1289, 0xd7b3, 0x465f, 0x81,0x26, 0x25,0x0e,0x34,0x9a,0xf8,0x5d); 698 #if defined(__cplusplus) && !defined(CINTERFACE) 699 MIDL_INTERFACE("9d8e1289-d7b3-465f-8126-250e349af85d") 700 IDXGIKeyedMutex : public IDXGIDeviceSubObject 701 { 702 virtual HRESULT STDMETHODCALLTYPE AcquireSync( 703 UINT64 Key, 704 DWORD dwMilliseconds) = 0; 705 706 virtual HRESULT STDMETHODCALLTYPE ReleaseSync( 707 UINT64 Key) = 0; 708 709 }; 710 #ifdef __CRT_UUID_DECL 711 __CRT_UUID_DECL(IDXGIKeyedMutex, 0x9d8e1289, 0xd7b3, 0x465f, 0x81,0x26, 0x25,0x0e,0x34,0x9a,0xf8,0x5d) 712 #endif 713 #else 714 typedef struct IDXGIKeyedMutexVtbl { 715 BEGIN_INTERFACE 716 717 /*** IUnknown methods ***/ 718 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 719 IDXGIKeyedMutex* This, 720 REFIID riid, 721 void **ppvObject); 722 723 ULONG (STDMETHODCALLTYPE *AddRef)( 724 IDXGIKeyedMutex* This); 725 726 ULONG (STDMETHODCALLTYPE *Release)( 727 IDXGIKeyedMutex* This); 728 729 /*** IDXGIObject methods ***/ 730 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 731 IDXGIKeyedMutex* This, 732 REFGUID guid, 733 UINT data_size, 734 const void *data); 735 736 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 737 IDXGIKeyedMutex* This, 738 REFGUID guid, 739 const IUnknown *object); 740 741 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 742 IDXGIKeyedMutex* This, 743 REFGUID guid, 744 UINT *data_size, 745 void *data); 746 747 HRESULT (STDMETHODCALLTYPE *GetParent)( 748 IDXGIKeyedMutex* This, 749 REFIID riid, 750 void **parent); 751 752 /*** IDXGIDeviceSubObject methods ***/ 753 HRESULT (STDMETHODCALLTYPE *GetDevice)( 754 IDXGIKeyedMutex* This, 755 REFIID riid, 756 void **device); 757 758 /*** IDXGIKeyedMutex methods ***/ 759 HRESULT (STDMETHODCALLTYPE *AcquireSync)( 760 IDXGIKeyedMutex* This, 761 UINT64 Key, 762 DWORD dwMilliseconds); 763 764 HRESULT (STDMETHODCALLTYPE *ReleaseSync)( 765 IDXGIKeyedMutex* This, 766 UINT64 Key); 767 768 END_INTERFACE 769 } IDXGIKeyedMutexVtbl; 770 interface IDXGIKeyedMutex { 771 CONST_VTBL IDXGIKeyedMutexVtbl* lpVtbl; 772 }; 773 774 #ifdef COBJMACROS 775 #ifndef WIDL_C_INLINE_WRAPPERS 776 /*** IUnknown methods ***/ 777 #define IDXGIKeyedMutex_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 778 #define IDXGIKeyedMutex_AddRef(This) (This)->lpVtbl->AddRef(This) 779 #define IDXGIKeyedMutex_Release(This) (This)->lpVtbl->Release(This) 780 /*** IDXGIObject methods ***/ 781 #define IDXGIKeyedMutex_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 782 #define IDXGIKeyedMutex_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 783 #define IDXGIKeyedMutex_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 784 #define IDXGIKeyedMutex_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 785 /*** IDXGIDeviceSubObject methods ***/ 786 #define IDXGIKeyedMutex_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 787 /*** IDXGIKeyedMutex methods ***/ 788 #define IDXGIKeyedMutex_AcquireSync(This,Key,dwMilliseconds) (This)->lpVtbl->AcquireSync(This,Key,dwMilliseconds) 789 #define IDXGIKeyedMutex_ReleaseSync(This,Key) (This)->lpVtbl->ReleaseSync(This,Key) 790 #else 791 /*** IUnknown methods ***/ 792 static FORCEINLINE HRESULT IDXGIKeyedMutex_QueryInterface(IDXGIKeyedMutex* This,REFIID riid,void **ppvObject) { 793 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 794 } 795 static FORCEINLINE ULONG IDXGIKeyedMutex_AddRef(IDXGIKeyedMutex* This) { 796 return This->lpVtbl->AddRef(This); 797 } 798 static FORCEINLINE ULONG IDXGIKeyedMutex_Release(IDXGIKeyedMutex* This) { 799 return This->lpVtbl->Release(This); 800 } 801 /*** IDXGIObject methods ***/ 802 static FORCEINLINE HRESULT IDXGIKeyedMutex_SetPrivateData(IDXGIKeyedMutex* This,REFGUID guid,UINT data_size,const void *data) { 803 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 804 } 805 static FORCEINLINE HRESULT IDXGIKeyedMutex_SetPrivateDataInterface(IDXGIKeyedMutex* This,REFGUID guid,const IUnknown *object) { 806 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 807 } 808 static FORCEINLINE HRESULT IDXGIKeyedMutex_GetPrivateData(IDXGIKeyedMutex* This,REFGUID guid,UINT *data_size,void *data) { 809 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 810 } 811 static FORCEINLINE HRESULT IDXGIKeyedMutex_GetParent(IDXGIKeyedMutex* This,REFIID riid,void **parent) { 812 return This->lpVtbl->GetParent(This,riid,parent); 813 } 814 /*** IDXGIDeviceSubObject methods ***/ 815 static FORCEINLINE HRESULT IDXGIKeyedMutex_GetDevice(IDXGIKeyedMutex* This,REFIID riid,void **device) { 816 return This->lpVtbl->GetDevice(This,riid,device); 817 } 818 /*** IDXGIKeyedMutex methods ***/ 819 static FORCEINLINE HRESULT IDXGIKeyedMutex_AcquireSync(IDXGIKeyedMutex* This,UINT64 Key,DWORD dwMilliseconds) { 820 return This->lpVtbl->AcquireSync(This,Key,dwMilliseconds); 821 } 822 static FORCEINLINE HRESULT IDXGIKeyedMutex_ReleaseSync(IDXGIKeyedMutex* This,UINT64 Key) { 823 return This->lpVtbl->ReleaseSync(This,Key); 824 } 825 #endif 826 #endif 827 828 #endif 829 830 HRESULT STDMETHODCALLTYPE IDXGIKeyedMutex_AcquireSync_Proxy( 831 IDXGIKeyedMutex* This, 832 UINT64 Key, 833 DWORD dwMilliseconds); 834 void __RPC_STUB IDXGIKeyedMutex_AcquireSync_Stub( 835 IRpcStubBuffer* This, 836 IRpcChannelBuffer* pRpcChannelBuffer, 837 PRPC_MESSAGE pRpcMessage, 838 DWORD* pdwStubPhase); 839 HRESULT STDMETHODCALLTYPE IDXGIKeyedMutex_ReleaseSync_Proxy( 840 IDXGIKeyedMutex* This, 841 UINT64 Key); 842 void __RPC_STUB IDXGIKeyedMutex_ReleaseSync_Stub( 843 IRpcStubBuffer* This, 844 IRpcChannelBuffer* pRpcChannelBuffer, 845 PRPC_MESSAGE pRpcMessage, 846 DWORD* pdwStubPhase); 847 848 #endif /* __IDXGIKeyedMutex_INTERFACE_DEFINED__ */ 849 850 /***************************************************************************** 851 * IDXGISurface interface 852 */ 853 #ifndef __IDXGISurface_INTERFACE_DEFINED__ 854 #define __IDXGISurface_INTERFACE_DEFINED__ 855 856 DEFINE_GUID(IID_IDXGISurface, 0xcafcb56c, 0x6ac3, 0x4889, 0xbf,0x47, 0x9e,0x23,0xbb,0xd2,0x60,0xec); 857 #if defined(__cplusplus) && !defined(CINTERFACE) 858 MIDL_INTERFACE("cafcb56c-6ac3-4889-bf47-9e23bbd260ec") 859 IDXGISurface : public IDXGIDeviceSubObject 860 { 861 virtual HRESULT STDMETHODCALLTYPE GetDesc( 862 DXGI_SURFACE_DESC *desc) = 0; 863 864 virtual HRESULT STDMETHODCALLTYPE Map( 865 DXGI_MAPPED_RECT *mapped_rect, 866 UINT flags) = 0; 867 868 virtual HRESULT STDMETHODCALLTYPE Unmap( 869 ) = 0; 870 871 }; 872 #ifdef __CRT_UUID_DECL 873 __CRT_UUID_DECL(IDXGISurface, 0xcafcb56c, 0x6ac3, 0x4889, 0xbf,0x47, 0x9e,0x23,0xbb,0xd2,0x60,0xec) 874 #endif 875 #else 876 typedef struct IDXGISurfaceVtbl { 877 BEGIN_INTERFACE 878 879 /*** IUnknown methods ***/ 880 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 881 IDXGISurface* This, 882 REFIID riid, 883 void **ppvObject); 884 885 ULONG (STDMETHODCALLTYPE *AddRef)( 886 IDXGISurface* This); 887 888 ULONG (STDMETHODCALLTYPE *Release)( 889 IDXGISurface* This); 890 891 /*** IDXGIObject methods ***/ 892 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 893 IDXGISurface* This, 894 REFGUID guid, 895 UINT data_size, 896 const void *data); 897 898 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 899 IDXGISurface* This, 900 REFGUID guid, 901 const IUnknown *object); 902 903 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 904 IDXGISurface* This, 905 REFGUID guid, 906 UINT *data_size, 907 void *data); 908 909 HRESULT (STDMETHODCALLTYPE *GetParent)( 910 IDXGISurface* This, 911 REFIID riid, 912 void **parent); 913 914 /*** IDXGIDeviceSubObject methods ***/ 915 HRESULT (STDMETHODCALLTYPE *GetDevice)( 916 IDXGISurface* This, 917 REFIID riid, 918 void **device); 919 920 /*** IDXGISurface methods ***/ 921 HRESULT (STDMETHODCALLTYPE *GetDesc)( 922 IDXGISurface* This, 923 DXGI_SURFACE_DESC *desc); 924 925 HRESULT (STDMETHODCALLTYPE *Map)( 926 IDXGISurface* This, 927 DXGI_MAPPED_RECT *mapped_rect, 928 UINT flags); 929 930 HRESULT (STDMETHODCALLTYPE *Unmap)( 931 IDXGISurface* This); 932 933 END_INTERFACE 934 } IDXGISurfaceVtbl; 935 interface IDXGISurface { 936 CONST_VTBL IDXGISurfaceVtbl* lpVtbl; 937 }; 938 939 #ifdef COBJMACROS 940 #ifndef WIDL_C_INLINE_WRAPPERS 941 /*** IUnknown methods ***/ 942 #define IDXGISurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 943 #define IDXGISurface_AddRef(This) (This)->lpVtbl->AddRef(This) 944 #define IDXGISurface_Release(This) (This)->lpVtbl->Release(This) 945 /*** IDXGIObject methods ***/ 946 #define IDXGISurface_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 947 #define IDXGISurface_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 948 #define IDXGISurface_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 949 #define IDXGISurface_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 950 /*** IDXGIDeviceSubObject methods ***/ 951 #define IDXGISurface_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 952 /*** IDXGISurface methods ***/ 953 #define IDXGISurface_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) 954 #define IDXGISurface_Map(This,mapped_rect,flags) (This)->lpVtbl->Map(This,mapped_rect,flags) 955 #define IDXGISurface_Unmap(This) (This)->lpVtbl->Unmap(This) 956 #else 957 /*** IUnknown methods ***/ 958 static FORCEINLINE HRESULT IDXGISurface_QueryInterface(IDXGISurface* This,REFIID riid,void **ppvObject) { 959 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 960 } 961 static FORCEINLINE ULONG IDXGISurface_AddRef(IDXGISurface* This) { 962 return This->lpVtbl->AddRef(This); 963 } 964 static FORCEINLINE ULONG IDXGISurface_Release(IDXGISurface* This) { 965 return This->lpVtbl->Release(This); 966 } 967 /*** IDXGIObject methods ***/ 968 static FORCEINLINE HRESULT IDXGISurface_SetPrivateData(IDXGISurface* This,REFGUID guid,UINT data_size,const void *data) { 969 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 970 } 971 static FORCEINLINE HRESULT IDXGISurface_SetPrivateDataInterface(IDXGISurface* This,REFGUID guid,const IUnknown *object) { 972 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 973 } 974 static FORCEINLINE HRESULT IDXGISurface_GetPrivateData(IDXGISurface* This,REFGUID guid,UINT *data_size,void *data) { 975 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 976 } 977 static FORCEINLINE HRESULT IDXGISurface_GetParent(IDXGISurface* This,REFIID riid,void **parent) { 978 return This->lpVtbl->GetParent(This,riid,parent); 979 } 980 /*** IDXGIDeviceSubObject methods ***/ 981 static FORCEINLINE HRESULT IDXGISurface_GetDevice(IDXGISurface* This,REFIID riid,void **device) { 982 return This->lpVtbl->GetDevice(This,riid,device); 983 } 984 /*** IDXGISurface methods ***/ 985 static FORCEINLINE HRESULT IDXGISurface_GetDesc(IDXGISurface* This,DXGI_SURFACE_DESC *desc) { 986 return This->lpVtbl->GetDesc(This,desc); 987 } 988 static FORCEINLINE HRESULT IDXGISurface_Map(IDXGISurface* This,DXGI_MAPPED_RECT *mapped_rect,UINT flags) { 989 return This->lpVtbl->Map(This,mapped_rect,flags); 990 } 991 static FORCEINLINE HRESULT IDXGISurface_Unmap(IDXGISurface* This) { 992 return This->lpVtbl->Unmap(This); 993 } 994 #endif 995 #endif 996 997 #endif 998 999 HRESULT STDMETHODCALLTYPE IDXGISurface_GetDesc_Proxy( 1000 IDXGISurface* This, 1001 DXGI_SURFACE_DESC *desc); 1002 void __RPC_STUB IDXGISurface_GetDesc_Stub( 1003 IRpcStubBuffer* This, 1004 IRpcChannelBuffer* pRpcChannelBuffer, 1005 PRPC_MESSAGE pRpcMessage, 1006 DWORD* pdwStubPhase); 1007 HRESULT STDMETHODCALLTYPE IDXGISurface_Map_Proxy( 1008 IDXGISurface* This, 1009 DXGI_MAPPED_RECT *mapped_rect, 1010 UINT flags); 1011 void __RPC_STUB IDXGISurface_Map_Stub( 1012 IRpcStubBuffer* This, 1013 IRpcChannelBuffer* pRpcChannelBuffer, 1014 PRPC_MESSAGE pRpcMessage, 1015 DWORD* pdwStubPhase); 1016 HRESULT STDMETHODCALLTYPE IDXGISurface_Unmap_Proxy( 1017 IDXGISurface* This); 1018 void __RPC_STUB IDXGISurface_Unmap_Stub( 1019 IRpcStubBuffer* This, 1020 IRpcChannelBuffer* pRpcChannelBuffer, 1021 PRPC_MESSAGE pRpcMessage, 1022 DWORD* pdwStubPhase); 1023 1024 #endif /* __IDXGISurface_INTERFACE_DEFINED__ */ 1025 1026 /***************************************************************************** 1027 * IDXGIOutput interface 1028 */ 1029 #ifndef __IDXGIOutput_INTERFACE_DEFINED__ 1030 #define __IDXGIOutput_INTERFACE_DEFINED__ 1031 1032 DEFINE_GUID(IID_IDXGIOutput, 0xae02eedb, 0xc735, 0x4690, 0x8d,0x52, 0x5a,0x8d,0xc2,0x02,0x13,0xaa); 1033 #if defined(__cplusplus) && !defined(CINTERFACE) 1034 MIDL_INTERFACE("ae02eedb-c735-4690-8d52-5a8dc20213aa") 1035 IDXGIOutput : public IDXGIObject 1036 { 1037 virtual HRESULT STDMETHODCALLTYPE GetDesc( 1038 DXGI_OUTPUT_DESC *desc) = 0; 1039 1040 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList( 1041 DXGI_FORMAT format, 1042 UINT flags, 1043 UINT *mode_count, 1044 DXGI_MODE_DESC *desc) = 0; 1045 1046 virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode( 1047 const DXGI_MODE_DESC *mode, 1048 DXGI_MODE_DESC *closest_match, 1049 IUnknown *device) = 0; 1050 1051 virtual HRESULT STDMETHODCALLTYPE WaitForVBlank( 1052 ) = 0; 1053 1054 virtual HRESULT STDMETHODCALLTYPE TakeOwnership( 1055 IUnknown *device, 1056 WINBOOL exclusive) = 0; 1057 1058 virtual void STDMETHODCALLTYPE ReleaseOwnership( 1059 ) = 0; 1060 1061 virtual HRESULT STDMETHODCALLTYPE GetGammaControlCapabilities( 1062 DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) = 0; 1063 1064 virtual HRESULT STDMETHODCALLTYPE SetGammaControl( 1065 const DXGI_GAMMA_CONTROL *gamma_control) = 0; 1066 1067 virtual HRESULT STDMETHODCALLTYPE GetGammaControl( 1068 DXGI_GAMMA_CONTROL *gamma_control) = 0; 1069 1070 virtual HRESULT STDMETHODCALLTYPE SetDisplaySurface( 1071 IDXGISurface *surface) = 0; 1072 1073 virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData( 1074 IDXGISurface *surface) = 0; 1075 1076 virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics( 1077 DXGI_FRAME_STATISTICS *stats) = 0; 1078 1079 }; 1080 #ifdef __CRT_UUID_DECL 1081 __CRT_UUID_DECL(IDXGIOutput, 0xae02eedb, 0xc735, 0x4690, 0x8d,0x52, 0x5a,0x8d,0xc2,0x02,0x13,0xaa) 1082 #endif 1083 #else 1084 typedef struct IDXGIOutputVtbl { 1085 BEGIN_INTERFACE 1086 1087 /*** IUnknown methods ***/ 1088 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1089 IDXGIOutput* This, 1090 REFIID riid, 1091 void **ppvObject); 1092 1093 ULONG (STDMETHODCALLTYPE *AddRef)( 1094 IDXGIOutput* This); 1095 1096 ULONG (STDMETHODCALLTYPE *Release)( 1097 IDXGIOutput* This); 1098 1099 /*** IDXGIObject methods ***/ 1100 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 1101 IDXGIOutput* This, 1102 REFGUID guid, 1103 UINT data_size, 1104 const void *data); 1105 1106 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 1107 IDXGIOutput* This, 1108 REFGUID guid, 1109 const IUnknown *object); 1110 1111 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 1112 IDXGIOutput* This, 1113 REFGUID guid, 1114 UINT *data_size, 1115 void *data); 1116 1117 HRESULT (STDMETHODCALLTYPE *GetParent)( 1118 IDXGIOutput* This, 1119 REFIID riid, 1120 void **parent); 1121 1122 /*** IDXGIOutput methods ***/ 1123 HRESULT (STDMETHODCALLTYPE *GetDesc)( 1124 IDXGIOutput* This, 1125 DXGI_OUTPUT_DESC *desc); 1126 1127 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)( 1128 IDXGIOutput* This, 1129 DXGI_FORMAT format, 1130 UINT flags, 1131 UINT *mode_count, 1132 DXGI_MODE_DESC *desc); 1133 1134 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)( 1135 IDXGIOutput* This, 1136 const DXGI_MODE_DESC *mode, 1137 DXGI_MODE_DESC *closest_match, 1138 IUnknown *device); 1139 1140 HRESULT (STDMETHODCALLTYPE *WaitForVBlank)( 1141 IDXGIOutput* This); 1142 1143 HRESULT (STDMETHODCALLTYPE *TakeOwnership)( 1144 IDXGIOutput* This, 1145 IUnknown *device, 1146 WINBOOL exclusive); 1147 1148 void (STDMETHODCALLTYPE *ReleaseOwnership)( 1149 IDXGIOutput* This); 1150 1151 HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)( 1152 IDXGIOutput* This, 1153 DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps); 1154 1155 HRESULT (STDMETHODCALLTYPE *SetGammaControl)( 1156 IDXGIOutput* This, 1157 const DXGI_GAMMA_CONTROL *gamma_control); 1158 1159 HRESULT (STDMETHODCALLTYPE *GetGammaControl)( 1160 IDXGIOutput* This, 1161 DXGI_GAMMA_CONTROL *gamma_control); 1162 1163 HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)( 1164 IDXGIOutput* This, 1165 IDXGISurface *surface); 1166 1167 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)( 1168 IDXGIOutput* This, 1169 IDXGISurface *surface); 1170 1171 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)( 1172 IDXGIOutput* This, 1173 DXGI_FRAME_STATISTICS *stats); 1174 1175 END_INTERFACE 1176 } IDXGIOutputVtbl; 1177 interface IDXGIOutput { 1178 CONST_VTBL IDXGIOutputVtbl* lpVtbl; 1179 }; 1180 1181 #ifdef COBJMACROS 1182 #ifndef WIDL_C_INLINE_WRAPPERS 1183 /*** IUnknown methods ***/ 1184 #define IDXGIOutput_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1185 #define IDXGIOutput_AddRef(This) (This)->lpVtbl->AddRef(This) 1186 #define IDXGIOutput_Release(This) (This)->lpVtbl->Release(This) 1187 /*** IDXGIObject methods ***/ 1188 #define IDXGIOutput_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 1189 #define IDXGIOutput_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 1190 #define IDXGIOutput_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 1191 #define IDXGIOutput_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 1192 /*** IDXGIOutput methods ***/ 1193 #define IDXGIOutput_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) 1194 #define IDXGIOutput_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc) 1195 #define IDXGIOutput_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device) 1196 #define IDXGIOutput_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This) 1197 #define IDXGIOutput_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive) 1198 #define IDXGIOutput_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This) 1199 #define IDXGIOutput_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps) 1200 #define IDXGIOutput_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control) 1201 #define IDXGIOutput_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control) 1202 #define IDXGIOutput_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface) 1203 #define IDXGIOutput_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface) 1204 #define IDXGIOutput_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats) 1205 #else 1206 /*** IUnknown methods ***/ 1207 static FORCEINLINE HRESULT IDXGIOutput_QueryInterface(IDXGIOutput* This,REFIID riid,void **ppvObject) { 1208 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1209 } 1210 static FORCEINLINE ULONG IDXGIOutput_AddRef(IDXGIOutput* This) { 1211 return This->lpVtbl->AddRef(This); 1212 } 1213 static FORCEINLINE ULONG IDXGIOutput_Release(IDXGIOutput* This) { 1214 return This->lpVtbl->Release(This); 1215 } 1216 /*** IDXGIObject methods ***/ 1217 static FORCEINLINE HRESULT IDXGIOutput_SetPrivateData(IDXGIOutput* This,REFGUID guid,UINT data_size,const void *data) { 1218 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 1219 } 1220 static FORCEINLINE HRESULT IDXGIOutput_SetPrivateDataInterface(IDXGIOutput* This,REFGUID guid,const IUnknown *object) { 1221 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 1222 } 1223 static FORCEINLINE HRESULT IDXGIOutput_GetPrivateData(IDXGIOutput* This,REFGUID guid,UINT *data_size,void *data) { 1224 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 1225 } 1226 static FORCEINLINE HRESULT IDXGIOutput_GetParent(IDXGIOutput* This,REFIID riid,void **parent) { 1227 return This->lpVtbl->GetParent(This,riid,parent); 1228 } 1229 /*** IDXGIOutput methods ***/ 1230 static FORCEINLINE HRESULT IDXGIOutput_GetDesc(IDXGIOutput* This,DXGI_OUTPUT_DESC *desc) { 1231 return This->lpVtbl->GetDesc(This,desc); 1232 } 1233 static FORCEINLINE HRESULT IDXGIOutput_GetDisplayModeList(IDXGIOutput* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) { 1234 return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc); 1235 } 1236 static FORCEINLINE HRESULT IDXGIOutput_FindClosestMatchingMode(IDXGIOutput* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) { 1237 return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device); 1238 } 1239 static FORCEINLINE HRESULT IDXGIOutput_WaitForVBlank(IDXGIOutput* This) { 1240 return This->lpVtbl->WaitForVBlank(This); 1241 } 1242 static FORCEINLINE HRESULT IDXGIOutput_TakeOwnership(IDXGIOutput* This,IUnknown *device,WINBOOL exclusive) { 1243 return This->lpVtbl->TakeOwnership(This,device,exclusive); 1244 } 1245 static FORCEINLINE void IDXGIOutput_ReleaseOwnership(IDXGIOutput* This) { 1246 This->lpVtbl->ReleaseOwnership(This); 1247 } 1248 static FORCEINLINE HRESULT IDXGIOutput_GetGammaControlCapabilities(IDXGIOutput* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) { 1249 return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps); 1250 } 1251 static FORCEINLINE HRESULT IDXGIOutput_SetGammaControl(IDXGIOutput* This,const DXGI_GAMMA_CONTROL *gamma_control) { 1252 return This->lpVtbl->SetGammaControl(This,gamma_control); 1253 } 1254 static FORCEINLINE HRESULT IDXGIOutput_GetGammaControl(IDXGIOutput* This,DXGI_GAMMA_CONTROL *gamma_control) { 1255 return This->lpVtbl->GetGammaControl(This,gamma_control); 1256 } 1257 static FORCEINLINE HRESULT IDXGIOutput_SetDisplaySurface(IDXGIOutput* This,IDXGISurface *surface) { 1258 return This->lpVtbl->SetDisplaySurface(This,surface); 1259 } 1260 static FORCEINLINE HRESULT IDXGIOutput_GetDisplaySurfaceData(IDXGIOutput* This,IDXGISurface *surface) { 1261 return This->lpVtbl->GetDisplaySurfaceData(This,surface); 1262 } 1263 static FORCEINLINE HRESULT IDXGIOutput_GetFrameStatistics(IDXGIOutput* This,DXGI_FRAME_STATISTICS *stats) { 1264 return This->lpVtbl->GetFrameStatistics(This,stats); 1265 } 1266 #endif 1267 #endif 1268 1269 #endif 1270 1271 HRESULT STDMETHODCALLTYPE IDXGIOutput_GetDesc_Proxy( 1272 IDXGIOutput* This, 1273 DXGI_OUTPUT_DESC *desc); 1274 void __RPC_STUB IDXGIOutput_GetDesc_Stub( 1275 IRpcStubBuffer* This, 1276 IRpcChannelBuffer* pRpcChannelBuffer, 1277 PRPC_MESSAGE pRpcMessage, 1278 DWORD* pdwStubPhase); 1279 HRESULT STDMETHODCALLTYPE IDXGIOutput_GetDisplayModeList_Proxy( 1280 IDXGIOutput* This, 1281 DXGI_FORMAT format, 1282 UINT flags, 1283 UINT *mode_count, 1284 DXGI_MODE_DESC *desc); 1285 void __RPC_STUB IDXGIOutput_GetDisplayModeList_Stub( 1286 IRpcStubBuffer* This, 1287 IRpcChannelBuffer* pRpcChannelBuffer, 1288 PRPC_MESSAGE pRpcMessage, 1289 DWORD* pdwStubPhase); 1290 HRESULT STDMETHODCALLTYPE IDXGIOutput_FindClosestMatchingMode_Proxy( 1291 IDXGIOutput* This, 1292 const DXGI_MODE_DESC *mode, 1293 DXGI_MODE_DESC *closest_match, 1294 IUnknown *device); 1295 void __RPC_STUB IDXGIOutput_FindClosestMatchingMode_Stub( 1296 IRpcStubBuffer* This, 1297 IRpcChannelBuffer* pRpcChannelBuffer, 1298 PRPC_MESSAGE pRpcMessage, 1299 DWORD* pdwStubPhase); 1300 HRESULT STDMETHODCALLTYPE IDXGIOutput_WaitForVBlank_Proxy( 1301 IDXGIOutput* This); 1302 void __RPC_STUB IDXGIOutput_WaitForVBlank_Stub( 1303 IRpcStubBuffer* This, 1304 IRpcChannelBuffer* pRpcChannelBuffer, 1305 PRPC_MESSAGE pRpcMessage, 1306 DWORD* pdwStubPhase); 1307 HRESULT STDMETHODCALLTYPE IDXGIOutput_TakeOwnership_Proxy( 1308 IDXGIOutput* This, 1309 IUnknown *device, 1310 WINBOOL exclusive); 1311 void __RPC_STUB IDXGIOutput_TakeOwnership_Stub( 1312 IRpcStubBuffer* This, 1313 IRpcChannelBuffer* pRpcChannelBuffer, 1314 PRPC_MESSAGE pRpcMessage, 1315 DWORD* pdwStubPhase); 1316 void STDMETHODCALLTYPE IDXGIOutput_ReleaseOwnership_Proxy( 1317 IDXGIOutput* This); 1318 void __RPC_STUB IDXGIOutput_ReleaseOwnership_Stub( 1319 IRpcStubBuffer* This, 1320 IRpcChannelBuffer* pRpcChannelBuffer, 1321 PRPC_MESSAGE pRpcMessage, 1322 DWORD* pdwStubPhase); 1323 HRESULT STDMETHODCALLTYPE IDXGIOutput_GetGammaControlCapabilities_Proxy( 1324 IDXGIOutput* This, 1325 DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps); 1326 void __RPC_STUB IDXGIOutput_GetGammaControlCapabilities_Stub( 1327 IRpcStubBuffer* This, 1328 IRpcChannelBuffer* pRpcChannelBuffer, 1329 PRPC_MESSAGE pRpcMessage, 1330 DWORD* pdwStubPhase); 1331 HRESULT STDMETHODCALLTYPE IDXGIOutput_SetGammaControl_Proxy( 1332 IDXGIOutput* This, 1333 const DXGI_GAMMA_CONTROL *gamma_control); 1334 void __RPC_STUB IDXGIOutput_SetGammaControl_Stub( 1335 IRpcStubBuffer* This, 1336 IRpcChannelBuffer* pRpcChannelBuffer, 1337 PRPC_MESSAGE pRpcMessage, 1338 DWORD* pdwStubPhase); 1339 HRESULT STDMETHODCALLTYPE IDXGIOutput_GetGammaControl_Proxy( 1340 IDXGIOutput* This, 1341 DXGI_GAMMA_CONTROL *gamma_control); 1342 void __RPC_STUB IDXGIOutput_GetGammaControl_Stub( 1343 IRpcStubBuffer* This, 1344 IRpcChannelBuffer* pRpcChannelBuffer, 1345 PRPC_MESSAGE pRpcMessage, 1346 DWORD* pdwStubPhase); 1347 HRESULT STDMETHODCALLTYPE IDXGIOutput_SetDisplaySurface_Proxy( 1348 IDXGIOutput* This, 1349 IDXGISurface *surface); 1350 void __RPC_STUB IDXGIOutput_SetDisplaySurface_Stub( 1351 IRpcStubBuffer* This, 1352 IRpcChannelBuffer* pRpcChannelBuffer, 1353 PRPC_MESSAGE pRpcMessage, 1354 DWORD* pdwStubPhase); 1355 HRESULT STDMETHODCALLTYPE IDXGIOutput_GetDisplaySurfaceData_Proxy( 1356 IDXGIOutput* This, 1357 IDXGISurface *surface); 1358 void __RPC_STUB IDXGIOutput_GetDisplaySurfaceData_Stub( 1359 IRpcStubBuffer* This, 1360 IRpcChannelBuffer* pRpcChannelBuffer, 1361 PRPC_MESSAGE pRpcMessage, 1362 DWORD* pdwStubPhase); 1363 HRESULT STDMETHODCALLTYPE IDXGIOutput_GetFrameStatistics_Proxy( 1364 IDXGIOutput* This, 1365 DXGI_FRAME_STATISTICS *stats); 1366 void __RPC_STUB IDXGIOutput_GetFrameStatistics_Stub( 1367 IRpcStubBuffer* This, 1368 IRpcChannelBuffer* pRpcChannelBuffer, 1369 PRPC_MESSAGE pRpcMessage, 1370 DWORD* pdwStubPhase); 1371 1372 #endif /* __IDXGIOutput_INTERFACE_DEFINED__ */ 1373 1374 /***************************************************************************** 1375 * IDXGIAdapter interface 1376 */ 1377 #ifndef __IDXGIAdapter_INTERFACE_DEFINED__ 1378 #define __IDXGIAdapter_INTERFACE_DEFINED__ 1379 1380 DEFINE_GUID(IID_IDXGIAdapter, 0x2411e7e1, 0x12ac, 0x4ccf, 0xbd,0x14, 0x97,0x98,0xe8,0x53,0x4d,0xc0); 1381 #if defined(__cplusplus) && !defined(CINTERFACE) 1382 MIDL_INTERFACE("2411e7e1-12ac-4ccf-bd14-9798e8534dc0") 1383 IDXGIAdapter : public IDXGIObject 1384 { 1385 virtual HRESULT STDMETHODCALLTYPE EnumOutputs( 1386 UINT output_idx, 1387 IDXGIOutput **output) = 0; 1388 1389 virtual HRESULT STDMETHODCALLTYPE GetDesc( 1390 DXGI_ADAPTER_DESC *desc) = 0; 1391 1392 virtual HRESULT STDMETHODCALLTYPE CheckInterfaceSupport( 1393 REFGUID guid, 1394 LARGE_INTEGER *umd_version) = 0; 1395 1396 }; 1397 #ifdef __CRT_UUID_DECL 1398 __CRT_UUID_DECL(IDXGIAdapter, 0x2411e7e1, 0x12ac, 0x4ccf, 0xbd,0x14, 0x97,0x98,0xe8,0x53,0x4d,0xc0) 1399 #endif 1400 #else 1401 typedef struct IDXGIAdapterVtbl { 1402 BEGIN_INTERFACE 1403 1404 /*** IUnknown methods ***/ 1405 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1406 IDXGIAdapter* This, 1407 REFIID riid, 1408 void **ppvObject); 1409 1410 ULONG (STDMETHODCALLTYPE *AddRef)( 1411 IDXGIAdapter* This); 1412 1413 ULONG (STDMETHODCALLTYPE *Release)( 1414 IDXGIAdapter* This); 1415 1416 /*** IDXGIObject methods ***/ 1417 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 1418 IDXGIAdapter* This, 1419 REFGUID guid, 1420 UINT data_size, 1421 const void *data); 1422 1423 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 1424 IDXGIAdapter* This, 1425 REFGUID guid, 1426 const IUnknown *object); 1427 1428 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 1429 IDXGIAdapter* This, 1430 REFGUID guid, 1431 UINT *data_size, 1432 void *data); 1433 1434 HRESULT (STDMETHODCALLTYPE *GetParent)( 1435 IDXGIAdapter* This, 1436 REFIID riid, 1437 void **parent); 1438 1439 /*** IDXGIAdapter methods ***/ 1440 HRESULT (STDMETHODCALLTYPE *EnumOutputs)( 1441 IDXGIAdapter* This, 1442 UINT output_idx, 1443 IDXGIOutput **output); 1444 1445 HRESULT (STDMETHODCALLTYPE *GetDesc)( 1446 IDXGIAdapter* This, 1447 DXGI_ADAPTER_DESC *desc); 1448 1449 HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)( 1450 IDXGIAdapter* This, 1451 REFGUID guid, 1452 LARGE_INTEGER *umd_version); 1453 1454 END_INTERFACE 1455 } IDXGIAdapterVtbl; 1456 interface IDXGIAdapter { 1457 CONST_VTBL IDXGIAdapterVtbl* lpVtbl; 1458 }; 1459 1460 #ifdef COBJMACROS 1461 #ifndef WIDL_C_INLINE_WRAPPERS 1462 /*** IUnknown methods ***/ 1463 #define IDXGIAdapter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1464 #define IDXGIAdapter_AddRef(This) (This)->lpVtbl->AddRef(This) 1465 #define IDXGIAdapter_Release(This) (This)->lpVtbl->Release(This) 1466 /*** IDXGIObject methods ***/ 1467 #define IDXGIAdapter_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 1468 #define IDXGIAdapter_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 1469 #define IDXGIAdapter_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 1470 #define IDXGIAdapter_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 1471 /*** IDXGIAdapter methods ***/ 1472 #define IDXGIAdapter_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output) 1473 #define IDXGIAdapter_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) 1474 #define IDXGIAdapter_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version) 1475 #else 1476 /*** IUnknown methods ***/ 1477 static FORCEINLINE HRESULT IDXGIAdapter_QueryInterface(IDXGIAdapter* This,REFIID riid,void **ppvObject) { 1478 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1479 } 1480 static FORCEINLINE ULONG IDXGIAdapter_AddRef(IDXGIAdapter* This) { 1481 return This->lpVtbl->AddRef(This); 1482 } 1483 static FORCEINLINE ULONG IDXGIAdapter_Release(IDXGIAdapter* This) { 1484 return This->lpVtbl->Release(This); 1485 } 1486 /*** IDXGIObject methods ***/ 1487 static FORCEINLINE HRESULT IDXGIAdapter_SetPrivateData(IDXGIAdapter* This,REFGUID guid,UINT data_size,const void *data) { 1488 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 1489 } 1490 static FORCEINLINE HRESULT IDXGIAdapter_SetPrivateDataInterface(IDXGIAdapter* This,REFGUID guid,const IUnknown *object) { 1491 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 1492 } 1493 static FORCEINLINE HRESULT IDXGIAdapter_GetPrivateData(IDXGIAdapter* This,REFGUID guid,UINT *data_size,void *data) { 1494 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 1495 } 1496 static FORCEINLINE HRESULT IDXGIAdapter_GetParent(IDXGIAdapter* This,REFIID riid,void **parent) { 1497 return This->lpVtbl->GetParent(This,riid,parent); 1498 } 1499 /*** IDXGIAdapter methods ***/ 1500 static FORCEINLINE HRESULT IDXGIAdapter_EnumOutputs(IDXGIAdapter* This,UINT output_idx,IDXGIOutput **output) { 1501 return This->lpVtbl->EnumOutputs(This,output_idx,output); 1502 } 1503 static FORCEINLINE HRESULT IDXGIAdapter_GetDesc(IDXGIAdapter* This,DXGI_ADAPTER_DESC *desc) { 1504 return This->lpVtbl->GetDesc(This,desc); 1505 } 1506 static FORCEINLINE HRESULT IDXGIAdapter_CheckInterfaceSupport(IDXGIAdapter* This,REFGUID guid,LARGE_INTEGER *umd_version) { 1507 return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version); 1508 } 1509 #endif 1510 #endif 1511 1512 #endif 1513 1514 HRESULT STDMETHODCALLTYPE IDXGIAdapter_EnumOutputs_Proxy( 1515 IDXGIAdapter* This, 1516 UINT output_idx, 1517 IDXGIOutput **output); 1518 void __RPC_STUB IDXGIAdapter_EnumOutputs_Stub( 1519 IRpcStubBuffer* This, 1520 IRpcChannelBuffer* pRpcChannelBuffer, 1521 PRPC_MESSAGE pRpcMessage, 1522 DWORD* pdwStubPhase); 1523 HRESULT STDMETHODCALLTYPE IDXGIAdapter_GetDesc_Proxy( 1524 IDXGIAdapter* This, 1525 DXGI_ADAPTER_DESC *desc); 1526 void __RPC_STUB IDXGIAdapter_GetDesc_Stub( 1527 IRpcStubBuffer* This, 1528 IRpcChannelBuffer* pRpcChannelBuffer, 1529 PRPC_MESSAGE pRpcMessage, 1530 DWORD* pdwStubPhase); 1531 HRESULT STDMETHODCALLTYPE IDXGIAdapter_CheckInterfaceSupport_Proxy( 1532 IDXGIAdapter* This, 1533 REFGUID guid, 1534 LARGE_INTEGER *umd_version); 1535 void __RPC_STUB IDXGIAdapter_CheckInterfaceSupport_Stub( 1536 IRpcStubBuffer* This, 1537 IRpcChannelBuffer* pRpcChannelBuffer, 1538 PRPC_MESSAGE pRpcMessage, 1539 DWORD* pdwStubPhase); 1540 1541 #endif /* __IDXGIAdapter_INTERFACE_DEFINED__ */ 1542 1543 #define DXGI_MAX_SWAP_CHAIN_BUFFERS (16) 1544 #define DXGI_PRESENT_TEST __MSABI_LONG(0x00000001U) 1545 #define DXGI_PRESENT_DO_NOT_SEQUENCE __MSABI_LONG(0x00000002U) 1546 #define DXGI_PRESENT_RESTART __MSABI_LONG(0x00000004U) 1547 #define DXGI_PRESENT_DO_NOT_WAIT __MSABI_LONG(0x00000008U) 1548 #define DXGI_PRESENT_STEREO_PREFER_RIGHT __MSABI_LONG(0x00000010U) 1549 #define DXGI_PRESENT_STEREO_TEMPORARY_MONO __MSABI_LONG(0x00000020U) 1550 #define DXGI_PRESENT_RESTRICT_TO_OUTPUT __MSABI_LONG(0x00000040U) 1551 /***************************************************************************** 1552 * IDXGISwapChain interface 1553 */ 1554 #ifndef __IDXGISwapChain_INTERFACE_DEFINED__ 1555 #define __IDXGISwapChain_INTERFACE_DEFINED__ 1556 1557 DEFINE_GUID(IID_IDXGISwapChain, 0x310d36a0, 0xd2e7, 0x4c0a, 0xaa,0x04, 0x6a,0x9d,0x23,0xb8,0x88,0x6a); 1558 #if defined(__cplusplus) && !defined(CINTERFACE) 1559 MIDL_INTERFACE("310d36a0-d2e7-4c0a-aa04-6a9d23b8886a") 1560 IDXGISwapChain : public IDXGIDeviceSubObject 1561 { 1562 virtual HRESULT STDMETHODCALLTYPE Present( 1563 UINT sync_interval, 1564 UINT flags) = 0; 1565 1566 virtual HRESULT STDMETHODCALLTYPE GetBuffer( 1567 UINT buffer_idx, 1568 REFIID riid, 1569 void **surface) = 0; 1570 1571 virtual HRESULT STDMETHODCALLTYPE SetFullscreenState( 1572 WINBOOL fullscreen, 1573 IDXGIOutput *target) = 0; 1574 1575 virtual HRESULT STDMETHODCALLTYPE GetFullscreenState( 1576 WINBOOL *fullscreen, 1577 IDXGIOutput **target) = 0; 1578 1579 virtual HRESULT STDMETHODCALLTYPE GetDesc( 1580 DXGI_SWAP_CHAIN_DESC *desc) = 0; 1581 1582 virtual HRESULT STDMETHODCALLTYPE ResizeBuffers( 1583 UINT buffer_count, 1584 UINT width, 1585 UINT height, 1586 DXGI_FORMAT format, 1587 UINT flags) = 0; 1588 1589 virtual HRESULT STDMETHODCALLTYPE ResizeTarget( 1590 const DXGI_MODE_DESC *target_mode_desc) = 0; 1591 1592 virtual HRESULT STDMETHODCALLTYPE GetContainingOutput( 1593 IDXGIOutput **output) = 0; 1594 1595 virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics( 1596 DXGI_FRAME_STATISTICS *stats) = 0; 1597 1598 virtual HRESULT STDMETHODCALLTYPE GetLastPresentCount( 1599 UINT *last_present_count) = 0; 1600 1601 }; 1602 #ifdef __CRT_UUID_DECL 1603 __CRT_UUID_DECL(IDXGISwapChain, 0x310d36a0, 0xd2e7, 0x4c0a, 0xaa,0x04, 0x6a,0x9d,0x23,0xb8,0x88,0x6a) 1604 #endif 1605 #else 1606 typedef struct IDXGISwapChainVtbl { 1607 BEGIN_INTERFACE 1608 1609 /*** IUnknown methods ***/ 1610 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1611 IDXGISwapChain* This, 1612 REFIID riid, 1613 void **ppvObject); 1614 1615 ULONG (STDMETHODCALLTYPE *AddRef)( 1616 IDXGISwapChain* This); 1617 1618 ULONG (STDMETHODCALLTYPE *Release)( 1619 IDXGISwapChain* This); 1620 1621 /*** IDXGIObject methods ***/ 1622 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 1623 IDXGISwapChain* This, 1624 REFGUID guid, 1625 UINT data_size, 1626 const void *data); 1627 1628 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 1629 IDXGISwapChain* This, 1630 REFGUID guid, 1631 const IUnknown *object); 1632 1633 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 1634 IDXGISwapChain* This, 1635 REFGUID guid, 1636 UINT *data_size, 1637 void *data); 1638 1639 HRESULT (STDMETHODCALLTYPE *GetParent)( 1640 IDXGISwapChain* This, 1641 REFIID riid, 1642 void **parent); 1643 1644 /*** IDXGIDeviceSubObject methods ***/ 1645 HRESULT (STDMETHODCALLTYPE *GetDevice)( 1646 IDXGISwapChain* This, 1647 REFIID riid, 1648 void **device); 1649 1650 /*** IDXGISwapChain methods ***/ 1651 HRESULT (STDMETHODCALLTYPE *Present)( 1652 IDXGISwapChain* This, 1653 UINT sync_interval, 1654 UINT flags); 1655 1656 HRESULT (STDMETHODCALLTYPE *GetBuffer)( 1657 IDXGISwapChain* This, 1658 UINT buffer_idx, 1659 REFIID riid, 1660 void **surface); 1661 1662 HRESULT (STDMETHODCALLTYPE *SetFullscreenState)( 1663 IDXGISwapChain* This, 1664 WINBOOL fullscreen, 1665 IDXGIOutput *target); 1666 1667 HRESULT (STDMETHODCALLTYPE *GetFullscreenState)( 1668 IDXGISwapChain* This, 1669 WINBOOL *fullscreen, 1670 IDXGIOutput **target); 1671 1672 HRESULT (STDMETHODCALLTYPE *GetDesc)( 1673 IDXGISwapChain* This, 1674 DXGI_SWAP_CHAIN_DESC *desc); 1675 1676 HRESULT (STDMETHODCALLTYPE *ResizeBuffers)( 1677 IDXGISwapChain* This, 1678 UINT buffer_count, 1679 UINT width, 1680 UINT height, 1681 DXGI_FORMAT format, 1682 UINT flags); 1683 1684 HRESULT (STDMETHODCALLTYPE *ResizeTarget)( 1685 IDXGISwapChain* This, 1686 const DXGI_MODE_DESC *target_mode_desc); 1687 1688 HRESULT (STDMETHODCALLTYPE *GetContainingOutput)( 1689 IDXGISwapChain* This, 1690 IDXGIOutput **output); 1691 1692 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)( 1693 IDXGISwapChain* This, 1694 DXGI_FRAME_STATISTICS *stats); 1695 1696 HRESULT (STDMETHODCALLTYPE *GetLastPresentCount)( 1697 IDXGISwapChain* This, 1698 UINT *last_present_count); 1699 1700 END_INTERFACE 1701 } IDXGISwapChainVtbl; 1702 interface IDXGISwapChain { 1703 CONST_VTBL IDXGISwapChainVtbl* lpVtbl; 1704 }; 1705 1706 #ifdef COBJMACROS 1707 #ifndef WIDL_C_INLINE_WRAPPERS 1708 /*** IUnknown methods ***/ 1709 #define IDXGISwapChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1710 #define IDXGISwapChain_AddRef(This) (This)->lpVtbl->AddRef(This) 1711 #define IDXGISwapChain_Release(This) (This)->lpVtbl->Release(This) 1712 /*** IDXGIObject methods ***/ 1713 #define IDXGISwapChain_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 1714 #define IDXGISwapChain_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 1715 #define IDXGISwapChain_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 1716 #define IDXGISwapChain_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 1717 /*** IDXGIDeviceSubObject methods ***/ 1718 #define IDXGISwapChain_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device) 1719 /*** IDXGISwapChain methods ***/ 1720 #define IDXGISwapChain_Present(This,sync_interval,flags) (This)->lpVtbl->Present(This,sync_interval,flags) 1721 #define IDXGISwapChain_GetBuffer(This,buffer_idx,riid,surface) (This)->lpVtbl->GetBuffer(This,buffer_idx,riid,surface) 1722 #define IDXGISwapChain_SetFullscreenState(This,fullscreen,target) (This)->lpVtbl->SetFullscreenState(This,fullscreen,target) 1723 #define IDXGISwapChain_GetFullscreenState(This,fullscreen,target) (This)->lpVtbl->GetFullscreenState(This,fullscreen,target) 1724 #define IDXGISwapChain_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) 1725 #define IDXGISwapChain_ResizeBuffers(This,buffer_count,width,height,format,flags) (This)->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags) 1726 #define IDXGISwapChain_ResizeTarget(This,target_mode_desc) (This)->lpVtbl->ResizeTarget(This,target_mode_desc) 1727 #define IDXGISwapChain_GetContainingOutput(This,output) (This)->lpVtbl->GetContainingOutput(This,output) 1728 #define IDXGISwapChain_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats) 1729 #define IDXGISwapChain_GetLastPresentCount(This,last_present_count) (This)->lpVtbl->GetLastPresentCount(This,last_present_count) 1730 #else 1731 /*** IUnknown methods ***/ 1732 static FORCEINLINE HRESULT IDXGISwapChain_QueryInterface(IDXGISwapChain* This,REFIID riid,void **ppvObject) { 1733 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1734 } 1735 static FORCEINLINE ULONG IDXGISwapChain_AddRef(IDXGISwapChain* This) { 1736 return This->lpVtbl->AddRef(This); 1737 } 1738 static FORCEINLINE ULONG IDXGISwapChain_Release(IDXGISwapChain* This) { 1739 return This->lpVtbl->Release(This); 1740 } 1741 /*** IDXGIObject methods ***/ 1742 static FORCEINLINE HRESULT IDXGISwapChain_SetPrivateData(IDXGISwapChain* This,REFGUID guid,UINT data_size,const void *data) { 1743 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 1744 } 1745 static FORCEINLINE HRESULT IDXGISwapChain_SetPrivateDataInterface(IDXGISwapChain* This,REFGUID guid,const IUnknown *object) { 1746 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 1747 } 1748 static FORCEINLINE HRESULT IDXGISwapChain_GetPrivateData(IDXGISwapChain* This,REFGUID guid,UINT *data_size,void *data) { 1749 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 1750 } 1751 static FORCEINLINE HRESULT IDXGISwapChain_GetParent(IDXGISwapChain* This,REFIID riid,void **parent) { 1752 return This->lpVtbl->GetParent(This,riid,parent); 1753 } 1754 /*** IDXGIDeviceSubObject methods ***/ 1755 static FORCEINLINE HRESULT IDXGISwapChain_GetDevice(IDXGISwapChain* This,REFIID riid,void **device) { 1756 return This->lpVtbl->GetDevice(This,riid,device); 1757 } 1758 /*** IDXGISwapChain methods ***/ 1759 static FORCEINLINE HRESULT IDXGISwapChain_Present(IDXGISwapChain* This,UINT sync_interval,UINT flags) { 1760 return This->lpVtbl->Present(This,sync_interval,flags); 1761 } 1762 static FORCEINLINE HRESULT IDXGISwapChain_GetBuffer(IDXGISwapChain* This,UINT buffer_idx,REFIID riid,void **surface) { 1763 return This->lpVtbl->GetBuffer(This,buffer_idx,riid,surface); 1764 } 1765 static FORCEINLINE HRESULT IDXGISwapChain_SetFullscreenState(IDXGISwapChain* This,WINBOOL fullscreen,IDXGIOutput *target) { 1766 return This->lpVtbl->SetFullscreenState(This,fullscreen,target); 1767 } 1768 static FORCEINLINE HRESULT IDXGISwapChain_GetFullscreenState(IDXGISwapChain* This,WINBOOL *fullscreen,IDXGIOutput **target) { 1769 return This->lpVtbl->GetFullscreenState(This,fullscreen,target); 1770 } 1771 static FORCEINLINE HRESULT IDXGISwapChain_GetDesc(IDXGISwapChain* This,DXGI_SWAP_CHAIN_DESC *desc) { 1772 return This->lpVtbl->GetDesc(This,desc); 1773 } 1774 static FORCEINLINE HRESULT IDXGISwapChain_ResizeBuffers(IDXGISwapChain* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags) { 1775 return This->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags); 1776 } 1777 static FORCEINLINE HRESULT IDXGISwapChain_ResizeTarget(IDXGISwapChain* This,const DXGI_MODE_DESC *target_mode_desc) { 1778 return This->lpVtbl->ResizeTarget(This,target_mode_desc); 1779 } 1780 static FORCEINLINE HRESULT IDXGISwapChain_GetContainingOutput(IDXGISwapChain* This,IDXGIOutput **output) { 1781 return This->lpVtbl->GetContainingOutput(This,output); 1782 } 1783 static FORCEINLINE HRESULT IDXGISwapChain_GetFrameStatistics(IDXGISwapChain* This,DXGI_FRAME_STATISTICS *stats) { 1784 return This->lpVtbl->GetFrameStatistics(This,stats); 1785 } 1786 static FORCEINLINE HRESULT IDXGISwapChain_GetLastPresentCount(IDXGISwapChain* This,UINT *last_present_count) { 1787 return This->lpVtbl->GetLastPresentCount(This,last_present_count); 1788 } 1789 #endif 1790 #endif 1791 1792 #endif 1793 1794 HRESULT STDMETHODCALLTYPE IDXGISwapChain_Present_Proxy( 1795 IDXGISwapChain* This, 1796 UINT sync_interval, 1797 UINT flags); 1798 void __RPC_STUB IDXGISwapChain_Present_Stub( 1799 IRpcStubBuffer* This, 1800 IRpcChannelBuffer* pRpcChannelBuffer, 1801 PRPC_MESSAGE pRpcMessage, 1802 DWORD* pdwStubPhase); 1803 HRESULT STDMETHODCALLTYPE IDXGISwapChain_GetBuffer_Proxy( 1804 IDXGISwapChain* This, 1805 UINT buffer_idx, 1806 REFIID riid, 1807 void **surface); 1808 void __RPC_STUB IDXGISwapChain_GetBuffer_Stub( 1809 IRpcStubBuffer* This, 1810 IRpcChannelBuffer* pRpcChannelBuffer, 1811 PRPC_MESSAGE pRpcMessage, 1812 DWORD* pdwStubPhase); 1813 HRESULT STDMETHODCALLTYPE IDXGISwapChain_SetFullscreenState_Proxy( 1814 IDXGISwapChain* This, 1815 WINBOOL fullscreen, 1816 IDXGIOutput *target); 1817 void __RPC_STUB IDXGISwapChain_SetFullscreenState_Stub( 1818 IRpcStubBuffer* This, 1819 IRpcChannelBuffer* pRpcChannelBuffer, 1820 PRPC_MESSAGE pRpcMessage, 1821 DWORD* pdwStubPhase); 1822 HRESULT STDMETHODCALLTYPE IDXGISwapChain_GetFullscreenState_Proxy( 1823 IDXGISwapChain* This, 1824 WINBOOL *fullscreen, 1825 IDXGIOutput **target); 1826 void __RPC_STUB IDXGISwapChain_GetFullscreenState_Stub( 1827 IRpcStubBuffer* This, 1828 IRpcChannelBuffer* pRpcChannelBuffer, 1829 PRPC_MESSAGE pRpcMessage, 1830 DWORD* pdwStubPhase); 1831 HRESULT STDMETHODCALLTYPE IDXGISwapChain_GetDesc_Proxy( 1832 IDXGISwapChain* This, 1833 DXGI_SWAP_CHAIN_DESC *desc); 1834 void __RPC_STUB IDXGISwapChain_GetDesc_Stub( 1835 IRpcStubBuffer* This, 1836 IRpcChannelBuffer* pRpcChannelBuffer, 1837 PRPC_MESSAGE pRpcMessage, 1838 DWORD* pdwStubPhase); 1839 HRESULT STDMETHODCALLTYPE IDXGISwapChain_ResizeBuffers_Proxy( 1840 IDXGISwapChain* This, 1841 UINT buffer_count, 1842 UINT width, 1843 UINT height, 1844 DXGI_FORMAT format, 1845 UINT flags); 1846 void __RPC_STUB IDXGISwapChain_ResizeBuffers_Stub( 1847 IRpcStubBuffer* This, 1848 IRpcChannelBuffer* pRpcChannelBuffer, 1849 PRPC_MESSAGE pRpcMessage, 1850 DWORD* pdwStubPhase); 1851 HRESULT STDMETHODCALLTYPE IDXGISwapChain_ResizeTarget_Proxy( 1852 IDXGISwapChain* This, 1853 const DXGI_MODE_DESC *target_mode_desc); 1854 void __RPC_STUB IDXGISwapChain_ResizeTarget_Stub( 1855 IRpcStubBuffer* This, 1856 IRpcChannelBuffer* pRpcChannelBuffer, 1857 PRPC_MESSAGE pRpcMessage, 1858 DWORD* pdwStubPhase); 1859 HRESULT STDMETHODCALLTYPE IDXGISwapChain_GetContainingOutput_Proxy( 1860 IDXGISwapChain* This, 1861 IDXGIOutput **output); 1862 void __RPC_STUB IDXGISwapChain_GetContainingOutput_Stub( 1863 IRpcStubBuffer* This, 1864 IRpcChannelBuffer* pRpcChannelBuffer, 1865 PRPC_MESSAGE pRpcMessage, 1866 DWORD* pdwStubPhase); 1867 HRESULT STDMETHODCALLTYPE IDXGISwapChain_GetFrameStatistics_Proxy( 1868 IDXGISwapChain* This, 1869 DXGI_FRAME_STATISTICS *stats); 1870 void __RPC_STUB IDXGISwapChain_GetFrameStatistics_Stub( 1871 IRpcStubBuffer* This, 1872 IRpcChannelBuffer* pRpcChannelBuffer, 1873 PRPC_MESSAGE pRpcMessage, 1874 DWORD* pdwStubPhase); 1875 HRESULT STDMETHODCALLTYPE IDXGISwapChain_GetLastPresentCount_Proxy( 1876 IDXGISwapChain* This, 1877 UINT *last_present_count); 1878 void __RPC_STUB IDXGISwapChain_GetLastPresentCount_Stub( 1879 IRpcStubBuffer* This, 1880 IRpcChannelBuffer* pRpcChannelBuffer, 1881 PRPC_MESSAGE pRpcMessage, 1882 DWORD* pdwStubPhase); 1883 1884 #endif /* __IDXGISwapChain_INTERFACE_DEFINED__ */ 1885 1886 #define DXGI_MWA_NO_WINDOW_CHANGES 0x1 1887 #define DXGI_MWA_NO_ALT_ENTER 0x2 1888 #define DXGI_MWA_NO_PRINT_SCREEN 0x4 1889 #define DXGI_MWA_VALID 0x7 1890 /***************************************************************************** 1891 * IDXGIFactory interface 1892 */ 1893 #ifndef __IDXGIFactory_INTERFACE_DEFINED__ 1894 #define __IDXGIFactory_INTERFACE_DEFINED__ 1895 1896 DEFINE_GUID(IID_IDXGIFactory, 0x7b7166ec, 0x21c7, 0x44ae, 0xb2,0x1a, 0xc9,0xae,0x32,0x1a,0xe3,0x69); 1897 #if defined(__cplusplus) && !defined(CINTERFACE) 1898 MIDL_INTERFACE("7b7166ec-21c7-44ae-b21a-c9ae321ae369") 1899 IDXGIFactory : public IDXGIObject 1900 { 1901 virtual HRESULT STDMETHODCALLTYPE EnumAdapters( 1902 UINT adapter_idx, 1903 IDXGIAdapter **adapter) = 0; 1904 1905 virtual HRESULT STDMETHODCALLTYPE MakeWindowAssociation( 1906 HWND window, 1907 UINT flags) = 0; 1908 1909 virtual HRESULT STDMETHODCALLTYPE GetWindowAssociation( 1910 HWND *window) = 0; 1911 1912 virtual HRESULT STDMETHODCALLTYPE CreateSwapChain( 1913 IUnknown *device, 1914 DXGI_SWAP_CHAIN_DESC *desc, 1915 IDXGISwapChain **swapchain) = 0; 1916 1917 virtual HRESULT STDMETHODCALLTYPE CreateSoftwareAdapter( 1918 HMODULE swrast, 1919 IDXGIAdapter **adapter) = 0; 1920 1921 }; 1922 #ifdef __CRT_UUID_DECL 1923 __CRT_UUID_DECL(IDXGIFactory, 0x7b7166ec, 0x21c7, 0x44ae, 0xb2,0x1a, 0xc9,0xae,0x32,0x1a,0xe3,0x69) 1924 #endif 1925 #else 1926 typedef struct IDXGIFactoryVtbl { 1927 BEGIN_INTERFACE 1928 1929 /*** IUnknown methods ***/ 1930 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1931 IDXGIFactory* This, 1932 REFIID riid, 1933 void **ppvObject); 1934 1935 ULONG (STDMETHODCALLTYPE *AddRef)( 1936 IDXGIFactory* This); 1937 1938 ULONG (STDMETHODCALLTYPE *Release)( 1939 IDXGIFactory* This); 1940 1941 /*** IDXGIObject methods ***/ 1942 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 1943 IDXGIFactory* This, 1944 REFGUID guid, 1945 UINT data_size, 1946 const void *data); 1947 1948 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 1949 IDXGIFactory* This, 1950 REFGUID guid, 1951 const IUnknown *object); 1952 1953 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 1954 IDXGIFactory* This, 1955 REFGUID guid, 1956 UINT *data_size, 1957 void *data); 1958 1959 HRESULT (STDMETHODCALLTYPE *GetParent)( 1960 IDXGIFactory* This, 1961 REFIID riid, 1962 void **parent); 1963 1964 /*** IDXGIFactory methods ***/ 1965 HRESULT (STDMETHODCALLTYPE *EnumAdapters)( 1966 IDXGIFactory* This, 1967 UINT adapter_idx, 1968 IDXGIAdapter **adapter); 1969 1970 HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)( 1971 IDXGIFactory* This, 1972 HWND window, 1973 UINT flags); 1974 1975 HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)( 1976 IDXGIFactory* This, 1977 HWND *window); 1978 1979 HRESULT (STDMETHODCALLTYPE *CreateSwapChain)( 1980 IDXGIFactory* This, 1981 IUnknown *device, 1982 DXGI_SWAP_CHAIN_DESC *desc, 1983 IDXGISwapChain **swapchain); 1984 1985 HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)( 1986 IDXGIFactory* This, 1987 HMODULE swrast, 1988 IDXGIAdapter **adapter); 1989 1990 END_INTERFACE 1991 } IDXGIFactoryVtbl; 1992 interface IDXGIFactory { 1993 CONST_VTBL IDXGIFactoryVtbl* lpVtbl; 1994 }; 1995 1996 #ifdef COBJMACROS 1997 #ifndef WIDL_C_INLINE_WRAPPERS 1998 /*** IUnknown methods ***/ 1999 #define IDXGIFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2000 #define IDXGIFactory_AddRef(This) (This)->lpVtbl->AddRef(This) 2001 #define IDXGIFactory_Release(This) (This)->lpVtbl->Release(This) 2002 /*** IDXGIObject methods ***/ 2003 #define IDXGIFactory_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 2004 #define IDXGIFactory_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 2005 #define IDXGIFactory_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 2006 #define IDXGIFactory_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 2007 /*** IDXGIFactory methods ***/ 2008 #define IDXGIFactory_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter) 2009 #define IDXGIFactory_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags) 2010 #define IDXGIFactory_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window) 2011 #define IDXGIFactory_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain) 2012 #define IDXGIFactory_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter) 2013 #else 2014 /*** IUnknown methods ***/ 2015 static FORCEINLINE HRESULT IDXGIFactory_QueryInterface(IDXGIFactory* This,REFIID riid,void **ppvObject) { 2016 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2017 } 2018 static FORCEINLINE ULONG IDXGIFactory_AddRef(IDXGIFactory* This) { 2019 return This->lpVtbl->AddRef(This); 2020 } 2021 static FORCEINLINE ULONG IDXGIFactory_Release(IDXGIFactory* This) { 2022 return This->lpVtbl->Release(This); 2023 } 2024 /*** IDXGIObject methods ***/ 2025 static FORCEINLINE HRESULT IDXGIFactory_SetPrivateData(IDXGIFactory* This,REFGUID guid,UINT data_size,const void *data) { 2026 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 2027 } 2028 static FORCEINLINE HRESULT IDXGIFactory_SetPrivateDataInterface(IDXGIFactory* This,REFGUID guid,const IUnknown *object) { 2029 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 2030 } 2031 static FORCEINLINE HRESULT IDXGIFactory_GetPrivateData(IDXGIFactory* This,REFGUID guid,UINT *data_size,void *data) { 2032 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 2033 } 2034 static FORCEINLINE HRESULT IDXGIFactory_GetParent(IDXGIFactory* This,REFIID riid,void **parent) { 2035 return This->lpVtbl->GetParent(This,riid,parent); 2036 } 2037 /*** IDXGIFactory methods ***/ 2038 static FORCEINLINE HRESULT IDXGIFactory_EnumAdapters(IDXGIFactory* This,UINT adapter_idx,IDXGIAdapter **adapter) { 2039 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter); 2040 } 2041 static FORCEINLINE HRESULT IDXGIFactory_MakeWindowAssociation(IDXGIFactory* This,HWND window,UINT flags) { 2042 return This->lpVtbl->MakeWindowAssociation(This,window,flags); 2043 } 2044 static FORCEINLINE HRESULT IDXGIFactory_GetWindowAssociation(IDXGIFactory* This,HWND *window) { 2045 return This->lpVtbl->GetWindowAssociation(This,window); 2046 } 2047 static FORCEINLINE HRESULT IDXGIFactory_CreateSwapChain(IDXGIFactory* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) { 2048 return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain); 2049 } 2050 static FORCEINLINE HRESULT IDXGIFactory_CreateSoftwareAdapter(IDXGIFactory* This,HMODULE swrast,IDXGIAdapter **adapter) { 2051 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter); 2052 } 2053 #endif 2054 #endif 2055 2056 #endif 2057 2058 HRESULT STDMETHODCALLTYPE IDXGIFactory_EnumAdapters_Proxy( 2059 IDXGIFactory* This, 2060 UINT adapter_idx, 2061 IDXGIAdapter **adapter); 2062 void __RPC_STUB IDXGIFactory_EnumAdapters_Stub( 2063 IRpcStubBuffer* This, 2064 IRpcChannelBuffer* pRpcChannelBuffer, 2065 PRPC_MESSAGE pRpcMessage, 2066 DWORD* pdwStubPhase); 2067 HRESULT STDMETHODCALLTYPE IDXGIFactory_MakeWindowAssociation_Proxy( 2068 IDXGIFactory* This, 2069 HWND window, 2070 UINT flags); 2071 void __RPC_STUB IDXGIFactory_MakeWindowAssociation_Stub( 2072 IRpcStubBuffer* This, 2073 IRpcChannelBuffer* pRpcChannelBuffer, 2074 PRPC_MESSAGE pRpcMessage, 2075 DWORD* pdwStubPhase); 2076 HRESULT STDMETHODCALLTYPE IDXGIFactory_GetWindowAssociation_Proxy( 2077 IDXGIFactory* This, 2078 HWND *window); 2079 void __RPC_STUB IDXGIFactory_GetWindowAssociation_Stub( 2080 IRpcStubBuffer* This, 2081 IRpcChannelBuffer* pRpcChannelBuffer, 2082 PRPC_MESSAGE pRpcMessage, 2083 DWORD* pdwStubPhase); 2084 HRESULT STDMETHODCALLTYPE IDXGIFactory_CreateSwapChain_Proxy( 2085 IDXGIFactory* This, 2086 IUnknown *device, 2087 DXGI_SWAP_CHAIN_DESC *desc, 2088 IDXGISwapChain **swapchain); 2089 void __RPC_STUB IDXGIFactory_CreateSwapChain_Stub( 2090 IRpcStubBuffer* This, 2091 IRpcChannelBuffer* pRpcChannelBuffer, 2092 PRPC_MESSAGE pRpcMessage, 2093 DWORD* pdwStubPhase); 2094 HRESULT STDMETHODCALLTYPE IDXGIFactory_CreateSoftwareAdapter_Proxy( 2095 IDXGIFactory* This, 2096 HMODULE swrast, 2097 IDXGIAdapter **adapter); 2098 void __RPC_STUB IDXGIFactory_CreateSoftwareAdapter_Stub( 2099 IRpcStubBuffer* This, 2100 IRpcChannelBuffer* pRpcChannelBuffer, 2101 PRPC_MESSAGE pRpcMessage, 2102 DWORD* pdwStubPhase); 2103 2104 #endif /* __IDXGIFactory_INTERFACE_DEFINED__ */ 2105 2106 HRESULT __stdcall CreateDXGIFactory(REFIID riid,void **factory); 2107 2108 HRESULT __stdcall CreateDXGIFactory1(REFIID riid,void **factory); 2109 2110 /***************************************************************************** 2111 * IDXGIDevice interface 2112 */ 2113 #ifndef __IDXGIDevice_INTERFACE_DEFINED__ 2114 #define __IDXGIDevice_INTERFACE_DEFINED__ 2115 2116 DEFINE_GUID(IID_IDXGIDevice, 0x54ec77fa, 0x1377, 0x44e6, 0x8c,0x32, 0x88,0xfd,0x5f,0x44,0xc8,0x4c); 2117 #if defined(__cplusplus) && !defined(CINTERFACE) 2118 MIDL_INTERFACE("54ec77fa-1377-44e6-8c32-88fd5f44c84c") 2119 IDXGIDevice : public IDXGIObject 2120 { 2121 virtual HRESULT STDMETHODCALLTYPE GetAdapter( 2122 IDXGIAdapter **adapter) = 0; 2123 2124 virtual HRESULT STDMETHODCALLTYPE CreateSurface( 2125 const DXGI_SURFACE_DESC *desc, 2126 UINT surface_count, 2127 DXGI_USAGE usage, 2128 const DXGI_SHARED_RESOURCE *shared_resource, 2129 IDXGISurface **surface) = 0; 2130 2131 virtual HRESULT STDMETHODCALLTYPE QueryResourceResidency( 2132 IUnknown *const *resources, 2133 DXGI_RESIDENCY *residency, 2134 UINT resource_count) = 0; 2135 2136 virtual HRESULT STDMETHODCALLTYPE SetGPUThreadPriority( 2137 INT priority) = 0; 2138 2139 virtual HRESULT STDMETHODCALLTYPE GetGPUThreadPriority( 2140 INT *priority) = 0; 2141 2142 }; 2143 #ifdef __CRT_UUID_DECL 2144 __CRT_UUID_DECL(IDXGIDevice, 0x54ec77fa, 0x1377, 0x44e6, 0x8c,0x32, 0x88,0xfd,0x5f,0x44,0xc8,0x4c) 2145 #endif 2146 #else 2147 typedef struct IDXGIDeviceVtbl { 2148 BEGIN_INTERFACE 2149 2150 /*** IUnknown methods ***/ 2151 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2152 IDXGIDevice* This, 2153 REFIID riid, 2154 void **ppvObject); 2155 2156 ULONG (STDMETHODCALLTYPE *AddRef)( 2157 IDXGIDevice* This); 2158 2159 ULONG (STDMETHODCALLTYPE *Release)( 2160 IDXGIDevice* This); 2161 2162 /*** IDXGIObject methods ***/ 2163 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 2164 IDXGIDevice* This, 2165 REFGUID guid, 2166 UINT data_size, 2167 const void *data); 2168 2169 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 2170 IDXGIDevice* This, 2171 REFGUID guid, 2172 const IUnknown *object); 2173 2174 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 2175 IDXGIDevice* This, 2176 REFGUID guid, 2177 UINT *data_size, 2178 void *data); 2179 2180 HRESULT (STDMETHODCALLTYPE *GetParent)( 2181 IDXGIDevice* This, 2182 REFIID riid, 2183 void **parent); 2184 2185 /*** IDXGIDevice methods ***/ 2186 HRESULT (STDMETHODCALLTYPE *GetAdapter)( 2187 IDXGIDevice* This, 2188 IDXGIAdapter **adapter); 2189 2190 HRESULT (STDMETHODCALLTYPE *CreateSurface)( 2191 IDXGIDevice* This, 2192 const DXGI_SURFACE_DESC *desc, 2193 UINT surface_count, 2194 DXGI_USAGE usage, 2195 const DXGI_SHARED_RESOURCE *shared_resource, 2196 IDXGISurface **surface); 2197 2198 HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)( 2199 IDXGIDevice* This, 2200 IUnknown *const *resources, 2201 DXGI_RESIDENCY *residency, 2202 UINT resource_count); 2203 2204 HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)( 2205 IDXGIDevice* This, 2206 INT priority); 2207 2208 HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)( 2209 IDXGIDevice* This, 2210 INT *priority); 2211 2212 END_INTERFACE 2213 } IDXGIDeviceVtbl; 2214 interface IDXGIDevice { 2215 CONST_VTBL IDXGIDeviceVtbl* lpVtbl; 2216 }; 2217 2218 #ifdef COBJMACROS 2219 #ifndef WIDL_C_INLINE_WRAPPERS 2220 /*** IUnknown methods ***/ 2221 #define IDXGIDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2222 #define IDXGIDevice_AddRef(This) (This)->lpVtbl->AddRef(This) 2223 #define IDXGIDevice_Release(This) (This)->lpVtbl->Release(This) 2224 /*** IDXGIObject methods ***/ 2225 #define IDXGIDevice_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 2226 #define IDXGIDevice_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 2227 #define IDXGIDevice_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 2228 #define IDXGIDevice_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 2229 /*** IDXGIDevice methods ***/ 2230 #define IDXGIDevice_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter) 2231 #define IDXGIDevice_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface) 2232 #define IDXGIDevice_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count) 2233 #define IDXGIDevice_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority) 2234 #define IDXGIDevice_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority) 2235 #else 2236 /*** IUnknown methods ***/ 2237 static FORCEINLINE HRESULT IDXGIDevice_QueryInterface(IDXGIDevice* This,REFIID riid,void **ppvObject) { 2238 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2239 } 2240 static FORCEINLINE ULONG IDXGIDevice_AddRef(IDXGIDevice* This) { 2241 return This->lpVtbl->AddRef(This); 2242 } 2243 static FORCEINLINE ULONG IDXGIDevice_Release(IDXGIDevice* This) { 2244 return This->lpVtbl->Release(This); 2245 } 2246 /*** IDXGIObject methods ***/ 2247 static FORCEINLINE HRESULT IDXGIDevice_SetPrivateData(IDXGIDevice* This,REFGUID guid,UINT data_size,const void *data) { 2248 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 2249 } 2250 static FORCEINLINE HRESULT IDXGIDevice_SetPrivateDataInterface(IDXGIDevice* This,REFGUID guid,const IUnknown *object) { 2251 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 2252 } 2253 static FORCEINLINE HRESULT IDXGIDevice_GetPrivateData(IDXGIDevice* This,REFGUID guid,UINT *data_size,void *data) { 2254 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 2255 } 2256 static FORCEINLINE HRESULT IDXGIDevice_GetParent(IDXGIDevice* This,REFIID riid,void **parent) { 2257 return This->lpVtbl->GetParent(This,riid,parent); 2258 } 2259 /*** IDXGIDevice methods ***/ 2260 static FORCEINLINE HRESULT IDXGIDevice_GetAdapter(IDXGIDevice* This,IDXGIAdapter **adapter) { 2261 return This->lpVtbl->GetAdapter(This,adapter); 2262 } 2263 static FORCEINLINE HRESULT IDXGIDevice_CreateSurface(IDXGIDevice* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) { 2264 return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface); 2265 } 2266 static FORCEINLINE HRESULT IDXGIDevice_QueryResourceResidency(IDXGIDevice* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) { 2267 return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count); 2268 } 2269 static FORCEINLINE HRESULT IDXGIDevice_SetGPUThreadPriority(IDXGIDevice* This,INT priority) { 2270 return This->lpVtbl->SetGPUThreadPriority(This,priority); 2271 } 2272 static FORCEINLINE HRESULT IDXGIDevice_GetGPUThreadPriority(IDXGIDevice* This,INT *priority) { 2273 return This->lpVtbl->GetGPUThreadPriority(This,priority); 2274 } 2275 #endif 2276 #endif 2277 2278 #endif 2279 2280 HRESULT STDMETHODCALLTYPE IDXGIDevice_GetAdapter_Proxy( 2281 IDXGIDevice* This, 2282 IDXGIAdapter **adapter); 2283 void __RPC_STUB IDXGIDevice_GetAdapter_Stub( 2284 IRpcStubBuffer* This, 2285 IRpcChannelBuffer* pRpcChannelBuffer, 2286 PRPC_MESSAGE pRpcMessage, 2287 DWORD* pdwStubPhase); 2288 HRESULT STDMETHODCALLTYPE IDXGIDevice_CreateSurface_Proxy( 2289 IDXGIDevice* This, 2290 const DXGI_SURFACE_DESC *desc, 2291 UINT surface_count, 2292 DXGI_USAGE usage, 2293 const DXGI_SHARED_RESOURCE *shared_resource, 2294 IDXGISurface **surface); 2295 void __RPC_STUB IDXGIDevice_CreateSurface_Stub( 2296 IRpcStubBuffer* This, 2297 IRpcChannelBuffer* pRpcChannelBuffer, 2298 PRPC_MESSAGE pRpcMessage, 2299 DWORD* pdwStubPhase); 2300 HRESULT STDMETHODCALLTYPE IDXGIDevice_QueryResourceResidency_Proxy( 2301 IDXGIDevice* This, 2302 IUnknown *const *resources, 2303 DXGI_RESIDENCY *residency, 2304 UINT resource_count); 2305 void __RPC_STUB IDXGIDevice_QueryResourceResidency_Stub( 2306 IRpcStubBuffer* This, 2307 IRpcChannelBuffer* pRpcChannelBuffer, 2308 PRPC_MESSAGE pRpcMessage, 2309 DWORD* pdwStubPhase); 2310 HRESULT STDMETHODCALLTYPE IDXGIDevice_SetGPUThreadPriority_Proxy( 2311 IDXGIDevice* This, 2312 INT priority); 2313 void __RPC_STUB IDXGIDevice_SetGPUThreadPriority_Stub( 2314 IRpcStubBuffer* This, 2315 IRpcChannelBuffer* pRpcChannelBuffer, 2316 PRPC_MESSAGE pRpcMessage, 2317 DWORD* pdwStubPhase); 2318 HRESULT STDMETHODCALLTYPE IDXGIDevice_GetGPUThreadPriority_Proxy( 2319 IDXGIDevice* This, 2320 INT *priority); 2321 void __RPC_STUB IDXGIDevice_GetGPUThreadPriority_Stub( 2322 IRpcStubBuffer* This, 2323 IRpcChannelBuffer* pRpcChannelBuffer, 2324 PRPC_MESSAGE pRpcMessage, 2325 DWORD* pdwStubPhase); 2326 2327 #endif /* __IDXGIDevice_INTERFACE_DEFINED__ */ 2328 2329 typedef enum DXGI_ADAPTER_FLAG { 2330 DXGI_ADAPTER_FLAG_NONE = 0, 2331 DXGI_ADAPTER_FLAG_REMOTE = 1, 2332 DXGI_ADAPTER_FLAG_FORCE_DWORD = 0xffffffff 2333 } DXGI_ADAPTER_FLAG; 2334 typedef struct DXGI_ADAPTER_DESC1 { 2335 WCHAR Description[128]; 2336 UINT VendorId; 2337 UINT DeviceId; 2338 UINT SubSysId; 2339 UINT Revision; 2340 SIZE_T DedicatedVideoMemory; 2341 SIZE_T DedicatedSystemMemory; 2342 SIZE_T SharedSystemMemory; 2343 LUID AdapterLuid; 2344 UINT Flags; 2345 } DXGI_ADAPTER_DESC1; 2346 /***************************************************************************** 2347 * IDXGIAdapter1 interface 2348 */ 2349 #ifndef __IDXGIAdapter1_INTERFACE_DEFINED__ 2350 #define __IDXGIAdapter1_INTERFACE_DEFINED__ 2351 2352 DEFINE_GUID(IID_IDXGIAdapter1, 0x29038f61, 0x3839, 0x4626, 0x91,0xfd, 0x08,0x68,0x79,0x01,0x1a,0x05); 2353 #if defined(__cplusplus) && !defined(CINTERFACE) 2354 MIDL_INTERFACE("29038f61-3839-4626-91fd-086879011a05") 2355 IDXGIAdapter1 : public IDXGIAdapter 2356 { 2357 virtual HRESULT STDMETHODCALLTYPE GetDesc1( 2358 DXGI_ADAPTER_DESC1 *pDesc) = 0; 2359 2360 }; 2361 #ifdef __CRT_UUID_DECL 2362 __CRT_UUID_DECL(IDXGIAdapter1, 0x29038f61, 0x3839, 0x4626, 0x91,0xfd, 0x08,0x68,0x79,0x01,0x1a,0x05) 2363 #endif 2364 #else 2365 typedef struct IDXGIAdapter1Vtbl { 2366 BEGIN_INTERFACE 2367 2368 /*** IUnknown methods ***/ 2369 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2370 IDXGIAdapter1* This, 2371 REFIID riid, 2372 void **ppvObject); 2373 2374 ULONG (STDMETHODCALLTYPE *AddRef)( 2375 IDXGIAdapter1* This); 2376 2377 ULONG (STDMETHODCALLTYPE *Release)( 2378 IDXGIAdapter1* This); 2379 2380 /*** IDXGIObject methods ***/ 2381 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 2382 IDXGIAdapter1* This, 2383 REFGUID guid, 2384 UINT data_size, 2385 const void *data); 2386 2387 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 2388 IDXGIAdapter1* This, 2389 REFGUID guid, 2390 const IUnknown *object); 2391 2392 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 2393 IDXGIAdapter1* This, 2394 REFGUID guid, 2395 UINT *data_size, 2396 void *data); 2397 2398 HRESULT (STDMETHODCALLTYPE *GetParent)( 2399 IDXGIAdapter1* This, 2400 REFIID riid, 2401 void **parent); 2402 2403 /*** IDXGIAdapter methods ***/ 2404 HRESULT (STDMETHODCALLTYPE *EnumOutputs)( 2405 IDXGIAdapter1* This, 2406 UINT output_idx, 2407 IDXGIOutput **output); 2408 2409 HRESULT (STDMETHODCALLTYPE *GetDesc)( 2410 IDXGIAdapter1* This, 2411 DXGI_ADAPTER_DESC *desc); 2412 2413 HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)( 2414 IDXGIAdapter1* This, 2415 REFGUID guid, 2416 LARGE_INTEGER *umd_version); 2417 2418 /*** IDXGIAdapter1 methods ***/ 2419 HRESULT (STDMETHODCALLTYPE *GetDesc1)( 2420 IDXGIAdapter1* This, 2421 DXGI_ADAPTER_DESC1 *pDesc); 2422 2423 END_INTERFACE 2424 } IDXGIAdapter1Vtbl; 2425 interface IDXGIAdapter1 { 2426 CONST_VTBL IDXGIAdapter1Vtbl* lpVtbl; 2427 }; 2428 2429 #ifdef COBJMACROS 2430 #ifndef WIDL_C_INLINE_WRAPPERS 2431 /*** IUnknown methods ***/ 2432 #define IDXGIAdapter1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2433 #define IDXGIAdapter1_AddRef(This) (This)->lpVtbl->AddRef(This) 2434 #define IDXGIAdapter1_Release(This) (This)->lpVtbl->Release(This) 2435 /*** IDXGIObject methods ***/ 2436 #define IDXGIAdapter1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 2437 #define IDXGIAdapter1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 2438 #define IDXGIAdapter1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 2439 #define IDXGIAdapter1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 2440 /*** IDXGIAdapter methods ***/ 2441 #define IDXGIAdapter1_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output) 2442 #define IDXGIAdapter1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) 2443 #define IDXGIAdapter1_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version) 2444 /*** IDXGIAdapter1 methods ***/ 2445 #define IDXGIAdapter1_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc) 2446 #else 2447 /*** IUnknown methods ***/ 2448 static FORCEINLINE HRESULT IDXGIAdapter1_QueryInterface(IDXGIAdapter1* This,REFIID riid,void **ppvObject) { 2449 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2450 } 2451 static FORCEINLINE ULONG IDXGIAdapter1_AddRef(IDXGIAdapter1* This) { 2452 return This->lpVtbl->AddRef(This); 2453 } 2454 static FORCEINLINE ULONG IDXGIAdapter1_Release(IDXGIAdapter1* This) { 2455 return This->lpVtbl->Release(This); 2456 } 2457 /*** IDXGIObject methods ***/ 2458 static FORCEINLINE HRESULT IDXGIAdapter1_SetPrivateData(IDXGIAdapter1* This,REFGUID guid,UINT data_size,const void *data) { 2459 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 2460 } 2461 static FORCEINLINE HRESULT IDXGIAdapter1_SetPrivateDataInterface(IDXGIAdapter1* This,REFGUID guid,const IUnknown *object) { 2462 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 2463 } 2464 static FORCEINLINE HRESULT IDXGIAdapter1_GetPrivateData(IDXGIAdapter1* This,REFGUID guid,UINT *data_size,void *data) { 2465 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 2466 } 2467 static FORCEINLINE HRESULT IDXGIAdapter1_GetParent(IDXGIAdapter1* This,REFIID riid,void **parent) { 2468 return This->lpVtbl->GetParent(This,riid,parent); 2469 } 2470 /*** IDXGIAdapter methods ***/ 2471 static FORCEINLINE HRESULT IDXGIAdapter1_EnumOutputs(IDXGIAdapter1* This,UINT output_idx,IDXGIOutput **output) { 2472 return This->lpVtbl->EnumOutputs(This,output_idx,output); 2473 } 2474 static FORCEINLINE HRESULT IDXGIAdapter1_GetDesc(IDXGIAdapter1* This,DXGI_ADAPTER_DESC *desc) { 2475 return This->lpVtbl->GetDesc(This,desc); 2476 } 2477 static FORCEINLINE HRESULT IDXGIAdapter1_CheckInterfaceSupport(IDXGIAdapter1* This,REFGUID guid,LARGE_INTEGER *umd_version) { 2478 return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version); 2479 } 2480 /*** IDXGIAdapter1 methods ***/ 2481 static FORCEINLINE HRESULT IDXGIAdapter1_GetDesc1(IDXGIAdapter1* This,DXGI_ADAPTER_DESC1 *pDesc) { 2482 return This->lpVtbl->GetDesc1(This,pDesc); 2483 } 2484 #endif 2485 #endif 2486 2487 #endif 2488 2489 HRESULT STDMETHODCALLTYPE IDXGIAdapter1_GetDesc1_Proxy( 2490 IDXGIAdapter1* This, 2491 DXGI_ADAPTER_DESC1 *pDesc); 2492 void __RPC_STUB IDXGIAdapter1_GetDesc1_Stub( 2493 IRpcStubBuffer* This, 2494 IRpcChannelBuffer* pRpcChannelBuffer, 2495 PRPC_MESSAGE pRpcMessage, 2496 DWORD* pdwStubPhase); 2497 2498 #endif /* __IDXGIAdapter1_INTERFACE_DEFINED__ */ 2499 2500 /***************************************************************************** 2501 * IDXGIDevice1 interface 2502 */ 2503 #ifndef __IDXGIDevice1_INTERFACE_DEFINED__ 2504 #define __IDXGIDevice1_INTERFACE_DEFINED__ 2505 2506 DEFINE_GUID(IID_IDXGIDevice1, 0x77db970f, 0x6276, 0x48ba, 0xba,0x28, 0x07,0x01,0x43,0xb4,0x39,0x2c); 2507 #if defined(__cplusplus) && !defined(CINTERFACE) 2508 MIDL_INTERFACE("77db970f-6276-48ba-ba28-070143b4392c") 2509 IDXGIDevice1 : public IDXGIDevice 2510 { 2511 virtual HRESULT STDMETHODCALLTYPE SetMaximumFrameLatency( 2512 UINT MaxLatency) = 0; 2513 2514 virtual HRESULT STDMETHODCALLTYPE GetMaximumFrameLatency( 2515 UINT *pMaxLatency) = 0; 2516 2517 }; 2518 #ifdef __CRT_UUID_DECL 2519 __CRT_UUID_DECL(IDXGIDevice1, 0x77db970f, 0x6276, 0x48ba, 0xba,0x28, 0x07,0x01,0x43,0xb4,0x39,0x2c) 2520 #endif 2521 #else 2522 typedef struct IDXGIDevice1Vtbl { 2523 BEGIN_INTERFACE 2524 2525 /*** IUnknown methods ***/ 2526 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2527 IDXGIDevice1* This, 2528 REFIID riid, 2529 void **ppvObject); 2530 2531 ULONG (STDMETHODCALLTYPE *AddRef)( 2532 IDXGIDevice1* This); 2533 2534 ULONG (STDMETHODCALLTYPE *Release)( 2535 IDXGIDevice1* This); 2536 2537 /*** IDXGIObject methods ***/ 2538 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 2539 IDXGIDevice1* This, 2540 REFGUID guid, 2541 UINT data_size, 2542 const void *data); 2543 2544 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 2545 IDXGIDevice1* This, 2546 REFGUID guid, 2547 const IUnknown *object); 2548 2549 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 2550 IDXGIDevice1* This, 2551 REFGUID guid, 2552 UINT *data_size, 2553 void *data); 2554 2555 HRESULT (STDMETHODCALLTYPE *GetParent)( 2556 IDXGIDevice1* This, 2557 REFIID riid, 2558 void **parent); 2559 2560 /*** IDXGIDevice methods ***/ 2561 HRESULT (STDMETHODCALLTYPE *GetAdapter)( 2562 IDXGIDevice1* This, 2563 IDXGIAdapter **adapter); 2564 2565 HRESULT (STDMETHODCALLTYPE *CreateSurface)( 2566 IDXGIDevice1* This, 2567 const DXGI_SURFACE_DESC *desc, 2568 UINT surface_count, 2569 DXGI_USAGE usage, 2570 const DXGI_SHARED_RESOURCE *shared_resource, 2571 IDXGISurface **surface); 2572 2573 HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)( 2574 IDXGIDevice1* This, 2575 IUnknown *const *resources, 2576 DXGI_RESIDENCY *residency, 2577 UINT resource_count); 2578 2579 HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)( 2580 IDXGIDevice1* This, 2581 INT priority); 2582 2583 HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)( 2584 IDXGIDevice1* This, 2585 INT *priority); 2586 2587 /*** IDXGIDevice1 methods ***/ 2588 HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)( 2589 IDXGIDevice1* This, 2590 UINT MaxLatency); 2591 2592 HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)( 2593 IDXGIDevice1* This, 2594 UINT *pMaxLatency); 2595 2596 END_INTERFACE 2597 } IDXGIDevice1Vtbl; 2598 interface IDXGIDevice1 { 2599 CONST_VTBL IDXGIDevice1Vtbl* lpVtbl; 2600 }; 2601 2602 #ifdef COBJMACROS 2603 #ifndef WIDL_C_INLINE_WRAPPERS 2604 /*** IUnknown methods ***/ 2605 #define IDXGIDevice1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2606 #define IDXGIDevice1_AddRef(This) (This)->lpVtbl->AddRef(This) 2607 #define IDXGIDevice1_Release(This) (This)->lpVtbl->Release(This) 2608 /*** IDXGIObject methods ***/ 2609 #define IDXGIDevice1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 2610 #define IDXGIDevice1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 2611 #define IDXGIDevice1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 2612 #define IDXGIDevice1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 2613 /*** IDXGIDevice methods ***/ 2614 #define IDXGIDevice1_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter) 2615 #define IDXGIDevice1_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface) 2616 #define IDXGIDevice1_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count) 2617 #define IDXGIDevice1_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority) 2618 #define IDXGIDevice1_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority) 2619 /*** IDXGIDevice1 methods ***/ 2620 #define IDXGIDevice1_SetMaximumFrameLatency(This,MaxLatency) (This)->lpVtbl->SetMaximumFrameLatency(This,MaxLatency) 2621 #define IDXGIDevice1_GetMaximumFrameLatency(This,pMaxLatency) (This)->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency) 2622 #else 2623 /*** IUnknown methods ***/ 2624 static FORCEINLINE HRESULT IDXGIDevice1_QueryInterface(IDXGIDevice1* This,REFIID riid,void **ppvObject) { 2625 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2626 } 2627 static FORCEINLINE ULONG IDXGIDevice1_AddRef(IDXGIDevice1* This) { 2628 return This->lpVtbl->AddRef(This); 2629 } 2630 static FORCEINLINE ULONG IDXGIDevice1_Release(IDXGIDevice1* This) { 2631 return This->lpVtbl->Release(This); 2632 } 2633 /*** IDXGIObject methods ***/ 2634 static FORCEINLINE HRESULT IDXGIDevice1_SetPrivateData(IDXGIDevice1* This,REFGUID guid,UINT data_size,const void *data) { 2635 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 2636 } 2637 static FORCEINLINE HRESULT IDXGIDevice1_SetPrivateDataInterface(IDXGIDevice1* This,REFGUID guid,const IUnknown *object) { 2638 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 2639 } 2640 static FORCEINLINE HRESULT IDXGIDevice1_GetPrivateData(IDXGIDevice1* This,REFGUID guid,UINT *data_size,void *data) { 2641 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 2642 } 2643 static FORCEINLINE HRESULT IDXGIDevice1_GetParent(IDXGIDevice1* This,REFIID riid,void **parent) { 2644 return This->lpVtbl->GetParent(This,riid,parent); 2645 } 2646 /*** IDXGIDevice methods ***/ 2647 static FORCEINLINE HRESULT IDXGIDevice1_GetAdapter(IDXGIDevice1* This,IDXGIAdapter **adapter) { 2648 return This->lpVtbl->GetAdapter(This,adapter); 2649 } 2650 static FORCEINLINE HRESULT IDXGIDevice1_CreateSurface(IDXGIDevice1* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) { 2651 return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface); 2652 } 2653 static FORCEINLINE HRESULT IDXGIDevice1_QueryResourceResidency(IDXGIDevice1* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) { 2654 return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count); 2655 } 2656 static FORCEINLINE HRESULT IDXGIDevice1_SetGPUThreadPriority(IDXGIDevice1* This,INT priority) { 2657 return This->lpVtbl->SetGPUThreadPriority(This,priority); 2658 } 2659 static FORCEINLINE HRESULT IDXGIDevice1_GetGPUThreadPriority(IDXGIDevice1* This,INT *priority) { 2660 return This->lpVtbl->GetGPUThreadPriority(This,priority); 2661 } 2662 /*** IDXGIDevice1 methods ***/ 2663 static FORCEINLINE HRESULT IDXGIDevice1_SetMaximumFrameLatency(IDXGIDevice1* This,UINT MaxLatency) { 2664 return This->lpVtbl->SetMaximumFrameLatency(This,MaxLatency); 2665 } 2666 static FORCEINLINE HRESULT IDXGIDevice1_GetMaximumFrameLatency(IDXGIDevice1* This,UINT *pMaxLatency) { 2667 return This->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency); 2668 } 2669 #endif 2670 #endif 2671 2672 #endif 2673 2674 HRESULT STDMETHODCALLTYPE IDXGIDevice1_SetMaximumFrameLatency_Proxy( 2675 IDXGIDevice1* This, 2676 UINT MaxLatency); 2677 void __RPC_STUB IDXGIDevice1_SetMaximumFrameLatency_Stub( 2678 IRpcStubBuffer* This, 2679 IRpcChannelBuffer* pRpcChannelBuffer, 2680 PRPC_MESSAGE pRpcMessage, 2681 DWORD* pdwStubPhase); 2682 HRESULT STDMETHODCALLTYPE IDXGIDevice1_GetMaximumFrameLatency_Proxy( 2683 IDXGIDevice1* This, 2684 UINT *pMaxLatency); 2685 void __RPC_STUB IDXGIDevice1_GetMaximumFrameLatency_Stub( 2686 IRpcStubBuffer* This, 2687 IRpcChannelBuffer* pRpcChannelBuffer, 2688 PRPC_MESSAGE pRpcMessage, 2689 DWORD* pdwStubPhase); 2690 2691 #endif /* __IDXGIDevice1_INTERFACE_DEFINED__ */ 2692 2693 /***************************************************************************** 2694 * IDXGIFactory1 interface 2695 */ 2696 #ifndef __IDXGIFactory1_INTERFACE_DEFINED__ 2697 #define __IDXGIFactory1_INTERFACE_DEFINED__ 2698 2699 DEFINE_GUID(IID_IDXGIFactory1, 0x770aae78, 0xf26f, 0x4dba, 0xa8,0x29, 0x25,0x3c,0x83,0xd1,0xb3,0x87); 2700 #if defined(__cplusplus) && !defined(CINTERFACE) 2701 MIDL_INTERFACE("770aae78-f26f-4dba-a829-253c83d1b387") 2702 IDXGIFactory1 : public IDXGIFactory 2703 { 2704 virtual HRESULT STDMETHODCALLTYPE EnumAdapters1( 2705 UINT Adapter, 2706 IDXGIAdapter1 **ppAdapter) = 0; 2707 2708 virtual WINBOOL STDMETHODCALLTYPE IsCurrent( 2709 ) = 0; 2710 2711 }; 2712 #ifdef __CRT_UUID_DECL 2713 __CRT_UUID_DECL(IDXGIFactory1, 0x770aae78, 0xf26f, 0x4dba, 0xa8,0x29, 0x25,0x3c,0x83,0xd1,0xb3,0x87) 2714 #endif 2715 #else 2716 typedef struct IDXGIFactory1Vtbl { 2717 BEGIN_INTERFACE 2718 2719 /*** IUnknown methods ***/ 2720 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2721 IDXGIFactory1* This, 2722 REFIID riid, 2723 void **ppvObject); 2724 2725 ULONG (STDMETHODCALLTYPE *AddRef)( 2726 IDXGIFactory1* This); 2727 2728 ULONG (STDMETHODCALLTYPE *Release)( 2729 IDXGIFactory1* This); 2730 2731 /*** IDXGIObject methods ***/ 2732 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 2733 IDXGIFactory1* This, 2734 REFGUID guid, 2735 UINT data_size, 2736 const void *data); 2737 2738 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 2739 IDXGIFactory1* This, 2740 REFGUID guid, 2741 const IUnknown *object); 2742 2743 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 2744 IDXGIFactory1* This, 2745 REFGUID guid, 2746 UINT *data_size, 2747 void *data); 2748 2749 HRESULT (STDMETHODCALLTYPE *GetParent)( 2750 IDXGIFactory1* This, 2751 REFIID riid, 2752 void **parent); 2753 2754 /*** IDXGIFactory methods ***/ 2755 HRESULT (STDMETHODCALLTYPE *EnumAdapters)( 2756 IDXGIFactory1* This, 2757 UINT adapter_idx, 2758 IDXGIAdapter **adapter); 2759 2760 HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)( 2761 IDXGIFactory1* This, 2762 HWND window, 2763 UINT flags); 2764 2765 HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)( 2766 IDXGIFactory1* This, 2767 HWND *window); 2768 2769 HRESULT (STDMETHODCALLTYPE *CreateSwapChain)( 2770 IDXGIFactory1* This, 2771 IUnknown *device, 2772 DXGI_SWAP_CHAIN_DESC *desc, 2773 IDXGISwapChain **swapchain); 2774 2775 HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)( 2776 IDXGIFactory1* This, 2777 HMODULE swrast, 2778 IDXGIAdapter **adapter); 2779 2780 /*** IDXGIFactory1 methods ***/ 2781 HRESULT (STDMETHODCALLTYPE *EnumAdapters1)( 2782 IDXGIFactory1* This, 2783 UINT Adapter, 2784 IDXGIAdapter1 **ppAdapter); 2785 2786 WINBOOL (STDMETHODCALLTYPE *IsCurrent)( 2787 IDXGIFactory1* This); 2788 2789 END_INTERFACE 2790 } IDXGIFactory1Vtbl; 2791 interface IDXGIFactory1 { 2792 CONST_VTBL IDXGIFactory1Vtbl* lpVtbl; 2793 }; 2794 2795 #ifdef COBJMACROS 2796 #ifndef WIDL_C_INLINE_WRAPPERS 2797 /*** IUnknown methods ***/ 2798 #define IDXGIFactory1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2799 #define IDXGIFactory1_AddRef(This) (This)->lpVtbl->AddRef(This) 2800 #define IDXGIFactory1_Release(This) (This)->lpVtbl->Release(This) 2801 /*** IDXGIObject methods ***/ 2802 #define IDXGIFactory1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 2803 #define IDXGIFactory1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 2804 #define IDXGIFactory1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 2805 #define IDXGIFactory1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 2806 /*** IDXGIFactory methods ***/ 2807 #define IDXGIFactory1_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter) 2808 #define IDXGIFactory1_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags) 2809 #define IDXGIFactory1_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window) 2810 #define IDXGIFactory1_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain) 2811 #define IDXGIFactory1_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter) 2812 /*** IDXGIFactory1 methods ***/ 2813 #define IDXGIFactory1_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter) 2814 #define IDXGIFactory1_IsCurrent(This) (This)->lpVtbl->IsCurrent(This) 2815 #else 2816 /*** IUnknown methods ***/ 2817 static FORCEINLINE HRESULT IDXGIFactory1_QueryInterface(IDXGIFactory1* This,REFIID riid,void **ppvObject) { 2818 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2819 } 2820 static FORCEINLINE ULONG IDXGIFactory1_AddRef(IDXGIFactory1* This) { 2821 return This->lpVtbl->AddRef(This); 2822 } 2823 static FORCEINLINE ULONG IDXGIFactory1_Release(IDXGIFactory1* This) { 2824 return This->lpVtbl->Release(This); 2825 } 2826 /*** IDXGIObject methods ***/ 2827 static FORCEINLINE HRESULT IDXGIFactory1_SetPrivateData(IDXGIFactory1* This,REFGUID guid,UINT data_size,const void *data) { 2828 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 2829 } 2830 static FORCEINLINE HRESULT IDXGIFactory1_SetPrivateDataInterface(IDXGIFactory1* This,REFGUID guid,const IUnknown *object) { 2831 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 2832 } 2833 static FORCEINLINE HRESULT IDXGIFactory1_GetPrivateData(IDXGIFactory1* This,REFGUID guid,UINT *data_size,void *data) { 2834 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 2835 } 2836 static FORCEINLINE HRESULT IDXGIFactory1_GetParent(IDXGIFactory1* This,REFIID riid,void **parent) { 2837 return This->lpVtbl->GetParent(This,riid,parent); 2838 } 2839 /*** IDXGIFactory methods ***/ 2840 static FORCEINLINE HRESULT IDXGIFactory1_EnumAdapters(IDXGIFactory1* This,UINT adapter_idx,IDXGIAdapter **adapter) { 2841 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter); 2842 } 2843 static FORCEINLINE HRESULT IDXGIFactory1_MakeWindowAssociation(IDXGIFactory1* This,HWND window,UINT flags) { 2844 return This->lpVtbl->MakeWindowAssociation(This,window,flags); 2845 } 2846 static FORCEINLINE HRESULT IDXGIFactory1_GetWindowAssociation(IDXGIFactory1* This,HWND *window) { 2847 return This->lpVtbl->GetWindowAssociation(This,window); 2848 } 2849 static FORCEINLINE HRESULT IDXGIFactory1_CreateSwapChain(IDXGIFactory1* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) { 2850 return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain); 2851 } 2852 static FORCEINLINE HRESULT IDXGIFactory1_CreateSoftwareAdapter(IDXGIFactory1* This,HMODULE swrast,IDXGIAdapter **adapter) { 2853 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter); 2854 } 2855 /*** IDXGIFactory1 methods ***/ 2856 static FORCEINLINE HRESULT IDXGIFactory1_EnumAdapters1(IDXGIFactory1* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) { 2857 return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter); 2858 } 2859 static FORCEINLINE WINBOOL IDXGIFactory1_IsCurrent(IDXGIFactory1* This) { 2860 return This->lpVtbl->IsCurrent(This); 2861 } 2862 #endif 2863 #endif 2864 2865 #endif 2866 2867 HRESULT STDMETHODCALLTYPE IDXGIFactory1_EnumAdapters1_Proxy( 2868 IDXGIFactory1* This, 2869 UINT Adapter, 2870 IDXGIAdapter1 **ppAdapter); 2871 void __RPC_STUB IDXGIFactory1_EnumAdapters1_Stub( 2872 IRpcStubBuffer* This, 2873 IRpcChannelBuffer* pRpcChannelBuffer, 2874 PRPC_MESSAGE pRpcMessage, 2875 DWORD* pdwStubPhase); 2876 WINBOOL STDMETHODCALLTYPE IDXGIFactory1_IsCurrent_Proxy( 2877 IDXGIFactory1* This); 2878 void __RPC_STUB IDXGIFactory1_IsCurrent_Stub( 2879 IRpcStubBuffer* This, 2880 IRpcChannelBuffer* pRpcChannelBuffer, 2881 PRPC_MESSAGE pRpcMessage, 2882 DWORD* pdwStubPhase); 2883 2884 #endif /* __IDXGIFactory1_INTERFACE_DEFINED__ */ 2885 2886 /* Begin additional prototypes for all interfaces */ 2887 2888 2889 /* End additional prototypes */ 2890 2891 #ifdef __cplusplus 2892 } 2893 #endif 2894 2895 #endif /* __dxgi_h__ */ 2896