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