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 __dxgi1_4_h__ 34 #define __dxgi1_4_h__ 35 36 #if defined(_MSC_VER) && (_MSC_VER >= 1020) 37 #pragma once 38 #endif 39 40 /* Forward Declarations */ 41 42 #ifndef __IDXGISwapChain3_FWD_DEFINED__ 43 #define __IDXGISwapChain3_FWD_DEFINED__ 44 typedef interface IDXGISwapChain3 IDXGISwapChain3; 45 46 #endif /* __IDXGISwapChain3_FWD_DEFINED__ */ 47 48 49 #ifndef __IDXGIOutput4_FWD_DEFINED__ 50 #define __IDXGIOutput4_FWD_DEFINED__ 51 typedef interface IDXGIOutput4 IDXGIOutput4; 52 53 #endif /* __IDXGIOutput4_FWD_DEFINED__ */ 54 55 56 #ifndef __IDXGIFactory4_FWD_DEFINED__ 57 #define __IDXGIFactory4_FWD_DEFINED__ 58 typedef interface IDXGIFactory4 IDXGIFactory4; 59 60 #endif /* __IDXGIFactory4_FWD_DEFINED__ */ 61 62 63 #ifndef __IDXGIAdapter3_FWD_DEFINED__ 64 #define __IDXGIAdapter3_FWD_DEFINED__ 65 typedef interface IDXGIAdapter3 IDXGIAdapter3; 66 67 #endif /* __IDXGIAdapter3_FWD_DEFINED__ */ 68 69 70 /* header files for imported files */ 71 #include "dxgi1_3.h" 72 73 #ifdef __cplusplus 74 extern "C"{ 75 #endif 76 77 78 /* interface __MIDL_itf_dxgi1_4_0000_0000 */ 79 /* [local] */ 80 81 #include <winapifamily.h> 82 // BK - pragma region App Family 83 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) 84 typedef 85 enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG 86 { 87 DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1, 88 DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x2 89 } DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG; 90 91 92 93 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0000_v0_0_c_ifspec; 94 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0000_v0_0_s_ifspec; 95 96 #ifndef __IDXGISwapChain3_INTERFACE_DEFINED__ 97 #define __IDXGISwapChain3_INTERFACE_DEFINED__ 98 99 /* interface IDXGISwapChain3 */ 100 /* [unique][local][uuid][object] */ 101 102 103 EXTERN_C const IID IID_IDXGISwapChain3; 104 105 #if defined(__cplusplus) && !defined(CINTERFACE) 106 107 MIDL_INTERFACE("94d99bdb-f1f8-4ab0-b236-7da0170edab1") 108 IDXGISwapChain3 : public IDXGISwapChain2 109 { 110 public: 111 virtual UINT STDMETHODCALLTYPE GetCurrentBackBufferIndex( void) = 0; 112 113 virtual HRESULT STDMETHODCALLTYPE CheckColorSpaceSupport( 114 /* [annotation][in] */ 115 _In_ DXGI_COLOR_SPACE_TYPE ColorSpace, 116 /* [annotation][out] */ 117 _Out_ UINT *pColorSpaceSupport) = 0; 118 119 virtual HRESULT STDMETHODCALLTYPE SetColorSpace1( 120 /* [annotation][in] */ 121 _In_ DXGI_COLOR_SPACE_TYPE ColorSpace) = 0; 122 123 virtual HRESULT STDMETHODCALLTYPE ResizeBuffers1( 124 /* [annotation][in] */ 125 _In_ UINT BufferCount, 126 /* [annotation][in] */ 127 _In_ UINT Width, 128 /* [annotation][in] */ 129 _In_ UINT Height, 130 /* [annotation][in] */ 131 _In_ DXGI_FORMAT Format, 132 /* [annotation][in] */ 133 _In_ UINT SwapChainFlags, 134 /* [annotation][in] */ 135 _In_reads_(BufferCount) const UINT *pCreationNodeMask, 136 /* [annotation][in] */ 137 _In_reads_(BufferCount) IUnknown *const *ppPresentQueue) = 0; 138 139 }; 140 141 142 #else /* C style interface */ 143 144 typedef struct IDXGISwapChain3Vtbl 145 { 146 BEGIN_INTERFACE 147 148 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 149 IDXGISwapChain3 * This, 150 /* [in] */ REFIID riid, 151 /* [annotation][iid_is][out] */ 152 _COM_Outptr_ void **ppvObject); 153 154 ULONG ( STDMETHODCALLTYPE *AddRef )( 155 IDXGISwapChain3 * This); 156 157 ULONG ( STDMETHODCALLTYPE *Release )( 158 IDXGISwapChain3 * This); 159 160 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 161 IDXGISwapChain3 * This, 162 /* [annotation][in] */ 163 _In_ REFGUID Name, 164 /* [in] */ UINT DataSize, 165 /* [annotation][in] */ 166 _In_reads_bytes_(DataSize) const void *pData); 167 168 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 169 IDXGISwapChain3 * This, 170 /* [annotation][in] */ 171 _In_ REFGUID Name, 172 /* [annotation][in] */ 173 _In_opt_ const IUnknown *pUnknown); 174 175 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 176 IDXGISwapChain3 * This, 177 /* [annotation][in] */ 178 _In_ REFGUID Name, 179 /* [annotation][out][in] */ 180 _Inout_ UINT *pDataSize, 181 /* [annotation][out] */ 182 _Out_writes_bytes_(*pDataSize) void *pData); 183 184 HRESULT ( STDMETHODCALLTYPE *GetParent )( 185 IDXGISwapChain3 * This, 186 /* [annotation][in] */ 187 _In_ REFIID riid, 188 /* [annotation][retval][out] */ 189 _COM_Outptr_ void **ppParent); 190 191 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 192 IDXGISwapChain3 * This, 193 /* [annotation][in] */ 194 _In_ REFIID riid, 195 /* [annotation][retval][out] */ 196 _COM_Outptr_ void **ppDevice); 197 198 HRESULT ( STDMETHODCALLTYPE *Present )( 199 IDXGISwapChain3 * This, 200 /* [in] */ UINT SyncInterval, 201 /* [in] */ UINT Flags); 202 203 HRESULT ( STDMETHODCALLTYPE *GetBuffer )( 204 IDXGISwapChain3 * This, 205 /* [in] */ UINT Buffer, 206 /* [annotation][in] */ 207 _In_ REFIID riid, 208 /* [annotation][out][in] */ 209 _COM_Outptr_ void **ppSurface); 210 211 HRESULT ( STDMETHODCALLTYPE *SetFullscreenState )( 212 IDXGISwapChain3 * This, 213 /* [in] */ BOOL Fullscreen, 214 /* [annotation][in] */ 215 _In_opt_ IDXGIOutput *pTarget); 216 217 HRESULT ( STDMETHODCALLTYPE *GetFullscreenState )( 218 IDXGISwapChain3 * This, 219 /* [annotation][out] */ 220 _Out_opt_ BOOL *pFullscreen, 221 /* [annotation][out] */ 222 _COM_Outptr_opt_result_maybenull_ IDXGIOutput **ppTarget); 223 224 HRESULT ( STDMETHODCALLTYPE *GetDesc )( 225 IDXGISwapChain3 * This, 226 /* [annotation][out] */ 227 _Out_ DXGI_SWAP_CHAIN_DESC *pDesc); 228 229 HRESULT ( STDMETHODCALLTYPE *ResizeBuffers )( 230 IDXGISwapChain3 * This, 231 /* [in] */ UINT BufferCount, 232 /* [in] */ UINT Width, 233 /* [in] */ UINT Height, 234 /* [in] */ DXGI_FORMAT NewFormat, 235 /* [in] */ UINT SwapChainFlags); 236 237 HRESULT ( STDMETHODCALLTYPE *ResizeTarget )( 238 IDXGISwapChain3 * This, 239 /* [annotation][in] */ 240 _In_ const DXGI_MODE_DESC *pNewTargetParameters); 241 242 HRESULT ( STDMETHODCALLTYPE *GetContainingOutput )( 243 IDXGISwapChain3 * This, 244 /* [annotation][out] */ 245 _COM_Outptr_ IDXGIOutput **ppOutput); 246 247 HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( 248 IDXGISwapChain3 * This, 249 /* [annotation][out] */ 250 _Out_ DXGI_FRAME_STATISTICS *pStats); 251 252 HRESULT ( STDMETHODCALLTYPE *GetLastPresentCount )( 253 IDXGISwapChain3 * This, 254 /* [annotation][out] */ 255 _Out_ UINT *pLastPresentCount); 256 257 HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( 258 IDXGISwapChain3 * This, 259 /* [annotation][out] */ 260 _Out_ DXGI_SWAP_CHAIN_DESC1 *pDesc); 261 262 HRESULT ( STDMETHODCALLTYPE *GetFullscreenDesc )( 263 IDXGISwapChain3 * This, 264 /* [annotation][out] */ 265 _Out_ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc); 266 267 HRESULT ( STDMETHODCALLTYPE *GetHwnd )( 268 IDXGISwapChain3 * This, 269 /* [annotation][out] */ 270 _Out_ HWND *pHwnd); 271 272 HRESULT ( STDMETHODCALLTYPE *GetCoreWindow )( 273 IDXGISwapChain3 * This, 274 /* [annotation][in] */ 275 _In_ REFIID refiid, 276 /* [annotation][out] */ 277 _COM_Outptr_ void **ppUnk); 278 279 HRESULT ( STDMETHODCALLTYPE *Present1 )( 280 IDXGISwapChain3 * This, 281 /* [in] */ UINT SyncInterval, 282 /* [in] */ UINT PresentFlags, 283 /* [annotation][in] */ 284 _In_ const DXGI_PRESENT_PARAMETERS *pPresentParameters); 285 286 BOOL ( STDMETHODCALLTYPE *IsTemporaryMonoSupported )( 287 IDXGISwapChain3 * This); 288 289 HRESULT ( STDMETHODCALLTYPE *GetRestrictToOutput )( 290 IDXGISwapChain3 * This, 291 /* [annotation][out] */ 292 _Out_ IDXGIOutput **ppRestrictToOutput); 293 294 HRESULT ( STDMETHODCALLTYPE *SetBackgroundColor )( 295 IDXGISwapChain3 * This, 296 /* [annotation][in] */ 297 _In_ const DXGI_RGBA *pColor); 298 299 HRESULT ( STDMETHODCALLTYPE *GetBackgroundColor )( 300 IDXGISwapChain3 * This, 301 /* [annotation][out] */ 302 _Out_ DXGI_RGBA *pColor); 303 304 HRESULT ( STDMETHODCALLTYPE *SetRotation )( 305 IDXGISwapChain3 * This, 306 /* [annotation][in] */ 307 _In_ DXGI_MODE_ROTATION Rotation); 308 309 HRESULT ( STDMETHODCALLTYPE *GetRotation )( 310 IDXGISwapChain3 * This, 311 /* [annotation][out] */ 312 _Out_ DXGI_MODE_ROTATION *pRotation); 313 314 HRESULT ( STDMETHODCALLTYPE *SetSourceSize )( 315 IDXGISwapChain3 * This, 316 UINT Width, 317 UINT Height); 318 319 HRESULT ( STDMETHODCALLTYPE *GetSourceSize )( 320 IDXGISwapChain3 * This, 321 /* [annotation][out] */ 322 _Out_ UINT *pWidth, 323 /* [annotation][out] */ 324 _Out_ UINT *pHeight); 325 326 HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )( 327 IDXGISwapChain3 * This, 328 UINT MaxLatency); 329 330 HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )( 331 IDXGISwapChain3 * This, 332 /* [annotation][out] */ 333 _Out_ UINT *pMaxLatency); 334 335 HANDLE ( STDMETHODCALLTYPE *GetFrameLatencyWaitableObject )( 336 IDXGISwapChain3 * This); 337 338 HRESULT ( STDMETHODCALLTYPE *SetMatrixTransform )( 339 IDXGISwapChain3 * This, 340 const DXGI_MATRIX_3X2_F *pMatrix); 341 342 HRESULT ( STDMETHODCALLTYPE *GetMatrixTransform )( 343 IDXGISwapChain3 * This, 344 /* [annotation][out] */ 345 _Out_ DXGI_MATRIX_3X2_F *pMatrix); 346 347 UINT ( STDMETHODCALLTYPE *GetCurrentBackBufferIndex )( 348 IDXGISwapChain3 * This); 349 350 HRESULT ( STDMETHODCALLTYPE *CheckColorSpaceSupport )( 351 IDXGISwapChain3 * This, 352 /* [annotation][in] */ 353 _In_ DXGI_COLOR_SPACE_TYPE ColorSpace, 354 /* [annotation][out] */ 355 _Out_ UINT *pColorSpaceSupport); 356 357 HRESULT ( STDMETHODCALLTYPE *SetColorSpace1 )( 358 IDXGISwapChain3 * This, 359 /* [annotation][in] */ 360 _In_ DXGI_COLOR_SPACE_TYPE ColorSpace); 361 362 HRESULT ( STDMETHODCALLTYPE *ResizeBuffers1 )( 363 IDXGISwapChain3 * This, 364 /* [annotation][in] */ 365 _In_ UINT BufferCount, 366 /* [annotation][in] */ 367 _In_ UINT Width, 368 /* [annotation][in] */ 369 _In_ UINT Height, 370 /* [annotation][in] */ 371 _In_ DXGI_FORMAT Format, 372 /* [annotation][in] */ 373 _In_ UINT SwapChainFlags, 374 /* [annotation][in] */ 375 _In_reads_(BufferCount) const UINT *pCreationNodeMask, 376 /* [annotation][in] */ 377 _In_reads_(BufferCount) IUnknown *const *ppPresentQueue); 378 379 END_INTERFACE 380 } IDXGISwapChain3Vtbl; 381 382 interface IDXGISwapChain3 383 { 384 CONST_VTBL struct IDXGISwapChain3Vtbl *lpVtbl; 385 }; 386 387 388 389 #ifdef COBJMACROS 390 391 392 #define IDXGISwapChain3_QueryInterface(This,riid,ppvObject) \ 393 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 394 395 #define IDXGISwapChain3_AddRef(This) \ 396 ( (This)->lpVtbl -> AddRef(This) ) 397 398 #define IDXGISwapChain3_Release(This) \ 399 ( (This)->lpVtbl -> Release(This) ) 400 401 402 #define IDXGISwapChain3_SetPrivateData(This,Name,DataSize,pData) \ 403 ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 404 405 #define IDXGISwapChain3_SetPrivateDataInterface(This,Name,pUnknown) \ 406 ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 407 408 #define IDXGISwapChain3_GetPrivateData(This,Name,pDataSize,pData) \ 409 ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 410 411 #define IDXGISwapChain3_GetParent(This,riid,ppParent) \ 412 ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 413 414 415 #define IDXGISwapChain3_GetDevice(This,riid,ppDevice) \ 416 ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) 417 418 419 #define IDXGISwapChain3_Present(This,SyncInterval,Flags) \ 420 ( (This)->lpVtbl -> Present(This,SyncInterval,Flags) ) 421 422 #define IDXGISwapChain3_GetBuffer(This,Buffer,riid,ppSurface) \ 423 ( (This)->lpVtbl -> GetBuffer(This,Buffer,riid,ppSurface) ) 424 425 #define IDXGISwapChain3_SetFullscreenState(This,Fullscreen,pTarget) \ 426 ( (This)->lpVtbl -> SetFullscreenState(This,Fullscreen,pTarget) ) 427 428 #define IDXGISwapChain3_GetFullscreenState(This,pFullscreen,ppTarget) \ 429 ( (This)->lpVtbl -> GetFullscreenState(This,pFullscreen,ppTarget) ) 430 431 #define IDXGISwapChain3_GetDesc(This,pDesc) \ 432 ( (This)->lpVtbl -> GetDesc(This,pDesc) ) 433 434 #define IDXGISwapChain3_ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) \ 435 ( (This)->lpVtbl -> ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) ) 436 437 #define IDXGISwapChain3_ResizeTarget(This,pNewTargetParameters) \ 438 ( (This)->lpVtbl -> ResizeTarget(This,pNewTargetParameters) ) 439 440 #define IDXGISwapChain3_GetContainingOutput(This,ppOutput) \ 441 ( (This)->lpVtbl -> GetContainingOutput(This,ppOutput) ) 442 443 #define IDXGISwapChain3_GetFrameStatistics(This,pStats) \ 444 ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) 445 446 #define IDXGISwapChain3_GetLastPresentCount(This,pLastPresentCount) \ 447 ( (This)->lpVtbl -> GetLastPresentCount(This,pLastPresentCount) ) 448 449 450 #define IDXGISwapChain3_GetDesc1(This,pDesc) \ 451 ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) 452 453 #define IDXGISwapChain3_GetFullscreenDesc(This,pDesc) \ 454 ( (This)->lpVtbl -> GetFullscreenDesc(This,pDesc) ) 455 456 #define IDXGISwapChain3_GetHwnd(This,pHwnd) \ 457 ( (This)->lpVtbl -> GetHwnd(This,pHwnd) ) 458 459 #define IDXGISwapChain3_GetCoreWindow(This,refiid,ppUnk) \ 460 ( (This)->lpVtbl -> GetCoreWindow(This,refiid,ppUnk) ) 461 462 #define IDXGISwapChain3_Present1(This,SyncInterval,PresentFlags,pPresentParameters) \ 463 ( (This)->lpVtbl -> Present1(This,SyncInterval,PresentFlags,pPresentParameters) ) 464 465 #define IDXGISwapChain3_IsTemporaryMonoSupported(This) \ 466 ( (This)->lpVtbl -> IsTemporaryMonoSupported(This) ) 467 468 #define IDXGISwapChain3_GetRestrictToOutput(This,ppRestrictToOutput) \ 469 ( (This)->lpVtbl -> GetRestrictToOutput(This,ppRestrictToOutput) ) 470 471 #define IDXGISwapChain3_SetBackgroundColor(This,pColor) \ 472 ( (This)->lpVtbl -> SetBackgroundColor(This,pColor) ) 473 474 #define IDXGISwapChain3_GetBackgroundColor(This,pColor) \ 475 ( (This)->lpVtbl -> GetBackgroundColor(This,pColor) ) 476 477 #define IDXGISwapChain3_SetRotation(This,Rotation) \ 478 ( (This)->lpVtbl -> SetRotation(This,Rotation) ) 479 480 #define IDXGISwapChain3_GetRotation(This,pRotation) \ 481 ( (This)->lpVtbl -> GetRotation(This,pRotation) ) 482 483 484 #define IDXGISwapChain3_SetSourceSize(This,Width,Height) \ 485 ( (This)->lpVtbl -> SetSourceSize(This,Width,Height) ) 486 487 #define IDXGISwapChain3_GetSourceSize(This,pWidth,pHeight) \ 488 ( (This)->lpVtbl -> GetSourceSize(This,pWidth,pHeight) ) 489 490 #define IDXGISwapChain3_SetMaximumFrameLatency(This,MaxLatency) \ 491 ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) ) 492 493 #define IDXGISwapChain3_GetMaximumFrameLatency(This,pMaxLatency) \ 494 ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) ) 495 496 #define IDXGISwapChain3_GetFrameLatencyWaitableObject(This) \ 497 ( (This)->lpVtbl -> GetFrameLatencyWaitableObject(This) ) 498 499 #define IDXGISwapChain3_SetMatrixTransform(This,pMatrix) \ 500 ( (This)->lpVtbl -> SetMatrixTransform(This,pMatrix) ) 501 502 #define IDXGISwapChain3_GetMatrixTransform(This,pMatrix) \ 503 ( (This)->lpVtbl -> GetMatrixTransform(This,pMatrix) ) 504 505 506 #define IDXGISwapChain3_GetCurrentBackBufferIndex(This) \ 507 ( (This)->lpVtbl -> GetCurrentBackBufferIndex(This) ) 508 509 #define IDXGISwapChain3_CheckColorSpaceSupport(This,ColorSpace,pColorSpaceSupport) \ 510 ( (This)->lpVtbl -> CheckColorSpaceSupport(This,ColorSpace,pColorSpaceSupport) ) 511 512 #define IDXGISwapChain3_SetColorSpace1(This,ColorSpace) \ 513 ( (This)->lpVtbl -> SetColorSpace1(This,ColorSpace) ) 514 515 #define IDXGISwapChain3_ResizeBuffers1(This,BufferCount,Width,Height,Format,SwapChainFlags,pCreationNodeMask,ppPresentQueue) \ 516 ( (This)->lpVtbl -> ResizeBuffers1(This,BufferCount,Width,Height,Format,SwapChainFlags,pCreationNodeMask,ppPresentQueue) ) 517 518 #endif /* COBJMACROS */ 519 520 521 #endif /* C style interface */ 522 523 524 525 526 #endif /* __IDXGISwapChain3_INTERFACE_DEFINED__ */ 527 528 529 /* interface __MIDL_itf_dxgi1_4_0000_0001 */ 530 /* [local] */ 531 532 typedef 533 enum DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG 534 { 535 DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1 536 } DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG; 537 538 539 540 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0001_v0_0_c_ifspec; 541 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0001_v0_0_s_ifspec; 542 543 #ifndef __IDXGIOutput4_INTERFACE_DEFINED__ 544 #define __IDXGIOutput4_INTERFACE_DEFINED__ 545 546 /* interface IDXGIOutput4 */ 547 /* [unique][local][uuid][object] */ 548 549 550 EXTERN_C const IID IID_IDXGIOutput4; 551 552 #if defined(__cplusplus) && !defined(CINTERFACE) 553 554 MIDL_INTERFACE("dc7dca35-2196-414d-9F53-617884032a60") 555 IDXGIOutput4 : public IDXGIOutput3 556 { 557 public: 558 virtual HRESULT STDMETHODCALLTYPE CheckOverlayColorSpaceSupport( 559 /* [annotation][in] */ 560 _In_ DXGI_FORMAT Format, 561 /* [annotation][in] */ 562 _In_ DXGI_COLOR_SPACE_TYPE ColorSpace, 563 /* [annotation][in] */ 564 _In_ IUnknown *pConcernedDevice, 565 /* [annotation][out] */ 566 _Out_ UINT *pFlags) = 0; 567 568 }; 569 570 571 #else /* C style interface */ 572 573 typedef struct IDXGIOutput4Vtbl 574 { 575 BEGIN_INTERFACE 576 577 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 578 IDXGIOutput4 * This, 579 /* [in] */ REFIID riid, 580 /* [annotation][iid_is][out] */ 581 _COM_Outptr_ void **ppvObject); 582 583 ULONG ( STDMETHODCALLTYPE *AddRef )( 584 IDXGIOutput4 * This); 585 586 ULONG ( STDMETHODCALLTYPE *Release )( 587 IDXGIOutput4 * This); 588 589 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 590 IDXGIOutput4 * This, 591 /* [annotation][in] */ 592 _In_ REFGUID Name, 593 /* [in] */ UINT DataSize, 594 /* [annotation][in] */ 595 _In_reads_bytes_(DataSize) const void *pData); 596 597 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 598 IDXGIOutput4 * This, 599 /* [annotation][in] */ 600 _In_ REFGUID Name, 601 /* [annotation][in] */ 602 _In_opt_ const IUnknown *pUnknown); 603 604 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 605 IDXGIOutput4 * This, 606 /* [annotation][in] */ 607 _In_ REFGUID Name, 608 /* [annotation][out][in] */ 609 _Inout_ UINT *pDataSize, 610 /* [annotation][out] */ 611 _Out_writes_bytes_(*pDataSize) void *pData); 612 613 HRESULT ( STDMETHODCALLTYPE *GetParent )( 614 IDXGIOutput4 * This, 615 /* [annotation][in] */ 616 _In_ REFIID riid, 617 /* [annotation][retval][out] */ 618 _COM_Outptr_ void **ppParent); 619 620 HRESULT ( STDMETHODCALLTYPE *GetDesc )( 621 IDXGIOutput4 * This, 622 /* [annotation][out] */ 623 _Out_ DXGI_OUTPUT_DESC *pDesc); 624 625 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )( 626 IDXGIOutput4 * This, 627 /* [in] */ DXGI_FORMAT EnumFormat, 628 /* [in] */ UINT Flags, 629 /* [annotation][out][in] */ 630 _Inout_ UINT *pNumModes, 631 /* [annotation][out] */ 632 _Out_writes_to_opt_(*pNumModes,*pNumModes) DXGI_MODE_DESC *pDesc); 633 634 HRESULT ( STDMETHODCALLTYPE *FindClosestMatchingMode )( 635 IDXGIOutput4 * This, 636 /* [annotation][in] */ 637 _In_ const DXGI_MODE_DESC *pModeToMatch, 638 /* [annotation][out] */ 639 _Out_ DXGI_MODE_DESC *pClosestMatch, 640 /* [annotation][in] */ 641 _In_opt_ IUnknown *pConcernedDevice); 642 643 HRESULT ( STDMETHODCALLTYPE *WaitForVBlank )( 644 IDXGIOutput4 * This); 645 646 HRESULT ( STDMETHODCALLTYPE *TakeOwnership )( 647 IDXGIOutput4 * This, 648 /* [annotation][in] */ 649 _In_ IUnknown *pDevice, 650 BOOL Exclusive); 651 652 void ( STDMETHODCALLTYPE *ReleaseOwnership )( 653 IDXGIOutput4 * This); 654 655 HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )( 656 IDXGIOutput4 * This, 657 /* [annotation][out] */ 658 _Out_ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps); 659 660 HRESULT ( STDMETHODCALLTYPE *SetGammaControl )( 661 IDXGIOutput4 * This, 662 /* [annotation][in] */ 663 _In_ const DXGI_GAMMA_CONTROL *pArray); 664 665 HRESULT ( STDMETHODCALLTYPE *GetGammaControl )( 666 IDXGIOutput4 * This, 667 /* [annotation][out] */ 668 _Out_ DXGI_GAMMA_CONTROL *pArray); 669 670 HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )( 671 IDXGIOutput4 * This, 672 /* [annotation][in] */ 673 _In_ IDXGISurface *pScanoutSurface); 674 675 HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )( 676 IDXGIOutput4 * This, 677 /* [annotation][in] */ 678 _In_ IDXGISurface *pDestination); 679 680 HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( 681 IDXGIOutput4 * This, 682 /* [annotation][out] */ 683 _Out_ DXGI_FRAME_STATISTICS *pStats); 684 685 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList1 )( 686 IDXGIOutput4 * This, 687 /* [in] */ DXGI_FORMAT EnumFormat, 688 /* [in] */ UINT Flags, 689 /* [annotation][out][in] */ 690 _Inout_ UINT *pNumModes, 691 /* [annotation][out] */ 692 _Out_writes_to_opt_(*pNumModes,*pNumModes) DXGI_MODE_DESC1 *pDesc); 693 694 HRESULT ( STDMETHODCALLTYPE *FindClosestMatchingMode1 )( 695 IDXGIOutput4 * This, 696 /* [annotation][in] */ 697 _In_ const DXGI_MODE_DESC1 *pModeToMatch, 698 /* [annotation][out] */ 699 _Out_ DXGI_MODE_DESC1 *pClosestMatch, 700 /* [annotation][in] */ 701 _In_opt_ IUnknown *pConcernedDevice); 702 703 HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData1 )( 704 IDXGIOutput4 * This, 705 /* [annotation][in] */ 706 _In_ IDXGIResource *pDestination); 707 708 HRESULT ( STDMETHODCALLTYPE *DuplicateOutput )( 709 IDXGIOutput4 * This, 710 /* [annotation][in] */ 711 _In_ IUnknown *pDevice, 712 /* [annotation][out] */ 713 _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication); 714 715 BOOL ( STDMETHODCALLTYPE *SupportsOverlays )( 716 IDXGIOutput4 * This); 717 718 HRESULT ( STDMETHODCALLTYPE *CheckOverlaySupport )( 719 IDXGIOutput4 * This, 720 /* [annotation][in] */ 721 _In_ DXGI_FORMAT EnumFormat, 722 /* [annotation][out] */ 723 _In_ IUnknown *pConcernedDevice, 724 /* [annotation][out] */ 725 _Out_ UINT *pFlags); 726 727 HRESULT ( STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport )( 728 IDXGIOutput4 * This, 729 /* [annotation][in] */ 730 _In_ DXGI_FORMAT Format, 731 /* [annotation][in] */ 732 _In_ DXGI_COLOR_SPACE_TYPE ColorSpace, 733 /* [annotation][in] */ 734 _In_ IUnknown *pConcernedDevice, 735 /* [annotation][out] */ 736 _Out_ UINT *pFlags); 737 738 END_INTERFACE 739 } IDXGIOutput4Vtbl; 740 741 interface IDXGIOutput4 742 { 743 CONST_VTBL struct IDXGIOutput4Vtbl *lpVtbl; 744 }; 745 746 747 748 #ifdef COBJMACROS 749 750 751 #define IDXGIOutput4_QueryInterface(This,riid,ppvObject) \ 752 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 753 754 #define IDXGIOutput4_AddRef(This) \ 755 ( (This)->lpVtbl -> AddRef(This) ) 756 757 #define IDXGIOutput4_Release(This) \ 758 ( (This)->lpVtbl -> Release(This) ) 759 760 761 #define IDXGIOutput4_SetPrivateData(This,Name,DataSize,pData) \ 762 ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 763 764 #define IDXGIOutput4_SetPrivateDataInterface(This,Name,pUnknown) \ 765 ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 766 767 #define IDXGIOutput4_GetPrivateData(This,Name,pDataSize,pData) \ 768 ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 769 770 #define IDXGIOutput4_GetParent(This,riid,ppParent) \ 771 ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 772 773 774 #define IDXGIOutput4_GetDesc(This,pDesc) \ 775 ( (This)->lpVtbl -> GetDesc(This,pDesc) ) 776 777 #define IDXGIOutput4_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) \ 778 ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) ) 779 780 #define IDXGIOutput4_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ 781 ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) 782 783 #define IDXGIOutput4_WaitForVBlank(This) \ 784 ( (This)->lpVtbl -> WaitForVBlank(This) ) 785 786 #define IDXGIOutput4_TakeOwnership(This,pDevice,Exclusive) \ 787 ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) ) 788 789 #define IDXGIOutput4_ReleaseOwnership(This) \ 790 ( (This)->lpVtbl -> ReleaseOwnership(This) ) 791 792 #define IDXGIOutput4_GetGammaControlCapabilities(This,pGammaCaps) \ 793 ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) ) 794 795 #define IDXGIOutput4_SetGammaControl(This,pArray) \ 796 ( (This)->lpVtbl -> SetGammaControl(This,pArray) ) 797 798 #define IDXGIOutput4_GetGammaControl(This,pArray) \ 799 ( (This)->lpVtbl -> GetGammaControl(This,pArray) ) 800 801 #define IDXGIOutput4_SetDisplaySurface(This,pScanoutSurface) \ 802 ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) ) 803 804 #define IDXGIOutput4_GetDisplaySurfaceData(This,pDestination) \ 805 ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) ) 806 807 #define IDXGIOutput4_GetFrameStatistics(This,pStats) \ 808 ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) 809 810 811 #define IDXGIOutput4_GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) \ 812 ( (This)->lpVtbl -> GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) ) 813 814 #define IDXGIOutput4_FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ 815 ( (This)->lpVtbl -> FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) 816 817 #define IDXGIOutput4_GetDisplaySurfaceData1(This,pDestination) \ 818 ( (This)->lpVtbl -> GetDisplaySurfaceData1(This,pDestination) ) 819 820 #define IDXGIOutput4_DuplicateOutput(This,pDevice,ppOutputDuplication) \ 821 ( (This)->lpVtbl -> DuplicateOutput(This,pDevice,ppOutputDuplication) ) 822 823 824 #define IDXGIOutput4_SupportsOverlays(This) \ 825 ( (This)->lpVtbl -> SupportsOverlays(This) ) 826 827 828 #define IDXGIOutput4_CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) \ 829 ( (This)->lpVtbl -> CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) ) 830 831 832 #define IDXGIOutput4_CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) \ 833 ( (This)->lpVtbl -> CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) ) 834 835 #endif /* COBJMACROS */ 836 837 838 #endif /* C style interface */ 839 840 841 842 843 #endif /* __IDXGIOutput4_INTERFACE_DEFINED__ */ 844 845 846 #ifndef __IDXGIFactory4_INTERFACE_DEFINED__ 847 #define __IDXGIFactory4_INTERFACE_DEFINED__ 848 849 /* interface IDXGIFactory4 */ 850 /* [unique][local][uuid][object] */ 851 852 853 EXTERN_C const IID IID_IDXGIFactory4; 854 855 #if defined(__cplusplus) && !defined(CINTERFACE) 856 857 MIDL_INTERFACE("1bc6ea02-ef36-464f-bf0c-21ca39e5168a") 858 IDXGIFactory4 : public IDXGIFactory3 859 { 860 public: 861 virtual HRESULT STDMETHODCALLTYPE EnumAdapterByLuid( 862 /* [annotation] */ 863 _In_ LUID AdapterLuid, 864 /* [annotation] */ 865 _In_ REFIID riid, 866 /* [annotation] */ 867 _COM_Outptr_ void **ppvAdapter) = 0; 868 869 virtual HRESULT STDMETHODCALLTYPE EnumWarpAdapter( 870 /* [annotation] */ 871 _In_ REFIID riid, 872 /* [annotation] */ 873 _COM_Outptr_ void **ppvAdapter) = 0; 874 875 }; 876 877 878 #else /* C style interface */ 879 880 typedef struct IDXGIFactory4Vtbl 881 { 882 BEGIN_INTERFACE 883 884 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 885 IDXGIFactory4 * This, 886 /* [in] */ REFIID riid, 887 /* [annotation][iid_is][out] */ 888 _COM_Outptr_ void **ppvObject); 889 890 ULONG ( STDMETHODCALLTYPE *AddRef )( 891 IDXGIFactory4 * This); 892 893 ULONG ( STDMETHODCALLTYPE *Release )( 894 IDXGIFactory4 * This); 895 896 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 897 IDXGIFactory4 * This, 898 /* [annotation][in] */ 899 _In_ REFGUID Name, 900 /* [in] */ UINT DataSize, 901 /* [annotation][in] */ 902 _In_reads_bytes_(DataSize) const void *pData); 903 904 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 905 IDXGIFactory4 * This, 906 /* [annotation][in] */ 907 _In_ REFGUID Name, 908 /* [annotation][in] */ 909 _In_opt_ const IUnknown *pUnknown); 910 911 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 912 IDXGIFactory4 * This, 913 /* [annotation][in] */ 914 _In_ REFGUID Name, 915 /* [annotation][out][in] */ 916 _Inout_ UINT *pDataSize, 917 /* [annotation][out] */ 918 _Out_writes_bytes_(*pDataSize) void *pData); 919 920 HRESULT ( STDMETHODCALLTYPE *GetParent )( 921 IDXGIFactory4 * This, 922 /* [annotation][in] */ 923 _In_ REFIID riid, 924 /* [annotation][retval][out] */ 925 _COM_Outptr_ void **ppParent); 926 927 HRESULT ( STDMETHODCALLTYPE *EnumAdapters )( 928 IDXGIFactory4 * This, 929 /* [in] */ UINT Adapter, 930 /* [annotation][out] */ 931 _COM_Outptr_ IDXGIAdapter **ppAdapter); 932 933 HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )( 934 IDXGIFactory4 * This, 935 HWND WindowHandle, 936 UINT Flags); 937 938 HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )( 939 IDXGIFactory4 * This, 940 /* [annotation][out] */ 941 _Out_ HWND *pWindowHandle); 942 943 HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )( 944 IDXGIFactory4 * This, 945 /* [annotation][in] */ 946 _In_ IUnknown *pDevice, 947 /* [annotation][in] */ 948 _In_ DXGI_SWAP_CHAIN_DESC *pDesc, 949 /* [annotation][out] */ 950 _COM_Outptr_ IDXGISwapChain **ppSwapChain); 951 952 HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )( 953 IDXGIFactory4 * This, 954 /* [in] */ HMODULE Module, 955 /* [annotation][out] */ 956 _COM_Outptr_ IDXGIAdapter **ppAdapter); 957 958 HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )( 959 IDXGIFactory4 * This, 960 /* [in] */ UINT Adapter, 961 /* [annotation][out] */ 962 _COM_Outptr_ IDXGIAdapter1 **ppAdapter); 963 964 BOOL ( STDMETHODCALLTYPE *IsCurrent )( 965 IDXGIFactory4 * This); 966 967 BOOL ( STDMETHODCALLTYPE *IsWindowedStereoEnabled )( 968 IDXGIFactory4 * This); 969 970 HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForHwnd )( 971 IDXGIFactory4 * This, 972 /* [annotation][in] */ 973 _In_ IUnknown *pDevice, 974 /* [annotation][in] */ 975 _In_ HWND hWnd, 976 /* [annotation][in] */ 977 _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc, 978 /* [annotation][in] */ 979 _In_opt_ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc, 980 /* [annotation][in] */ 981 _In_opt_ IDXGIOutput *pRestrictToOutput, 982 /* [annotation][out] */ 983 _COM_Outptr_ IDXGISwapChain1 **ppSwapChain); 984 985 HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForCoreWindow )( 986 IDXGIFactory4 * This, 987 /* [annotation][in] */ 988 _In_ IUnknown *pDevice, 989 /* [annotation][in] */ 990 _In_ IUnknown *pWindow, 991 /* [annotation][in] */ 992 _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc, 993 /* [annotation][in] */ 994 _In_opt_ IDXGIOutput *pRestrictToOutput, 995 /* [annotation][out] */ 996 _COM_Outptr_ IDXGISwapChain1 **ppSwapChain); 997 998 HRESULT ( STDMETHODCALLTYPE *GetSharedResourceAdapterLuid )( 999 IDXGIFactory4 * This, 1000 /* [annotation] */ 1001 _In_ HANDLE hResource, 1002 /* [annotation] */ 1003 _Out_ LUID *pLuid); 1004 1005 HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusWindow )( 1006 IDXGIFactory4 * This, 1007 /* [annotation][in] */ 1008 _In_ HWND WindowHandle, 1009 /* [annotation][in] */ 1010 _In_ UINT wMsg, 1011 /* [annotation][out] */ 1012 _Out_ DWORD *pdwCookie); 1013 1014 HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusEvent )( 1015 IDXGIFactory4 * This, 1016 /* [annotation][in] */ 1017 _In_ HANDLE hEvent, 1018 /* [annotation][out] */ 1019 _Out_ DWORD *pdwCookie); 1020 1021 void ( STDMETHODCALLTYPE *UnregisterStereoStatus )( 1022 IDXGIFactory4 * This, 1023 /* [annotation][in] */ 1024 _In_ DWORD dwCookie); 1025 1026 HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusWindow )( 1027 IDXGIFactory4 * This, 1028 /* [annotation][in] */ 1029 _In_ HWND WindowHandle, 1030 /* [annotation][in] */ 1031 _In_ UINT wMsg, 1032 /* [annotation][out] */ 1033 _Out_ DWORD *pdwCookie); 1034 1035 HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusEvent )( 1036 IDXGIFactory4 * This, 1037 /* [annotation][in] */ 1038 _In_ HANDLE hEvent, 1039 /* [annotation][out] */ 1040 _Out_ DWORD *pdwCookie); 1041 1042 void ( STDMETHODCALLTYPE *UnregisterOcclusionStatus )( 1043 IDXGIFactory4 * This, 1044 /* [annotation][in] */ 1045 _In_ DWORD dwCookie); 1046 1047 HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForComposition )( 1048 IDXGIFactory4 * This, 1049 /* [annotation][in] */ 1050 _In_ IUnknown *pDevice, 1051 /* [annotation][in] */ 1052 _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc, 1053 /* [annotation][in] */ 1054 _In_opt_ IDXGIOutput *pRestrictToOutput, 1055 /* [annotation][out] */ 1056 _COM_Outptr_ IDXGISwapChain1 **ppSwapChain); 1057 1058 UINT ( STDMETHODCALLTYPE *GetCreationFlags )( 1059 IDXGIFactory4 * This); 1060 1061 HRESULT ( STDMETHODCALLTYPE *EnumAdapterByLuid )( 1062 IDXGIFactory4 * This, 1063 /* [annotation] */ 1064 _In_ LUID AdapterLuid, 1065 /* [annotation] */ 1066 _In_ REFIID riid, 1067 /* [annotation] */ 1068 _COM_Outptr_ void **ppvAdapter); 1069 1070 HRESULT ( STDMETHODCALLTYPE *EnumWarpAdapter )( 1071 IDXGIFactory4 * This, 1072 /* [annotation] */ 1073 _In_ REFIID riid, 1074 /* [annotation] */ 1075 _COM_Outptr_ void **ppvAdapter); 1076 1077 END_INTERFACE 1078 } IDXGIFactory4Vtbl; 1079 1080 interface IDXGIFactory4 1081 { 1082 CONST_VTBL struct IDXGIFactory4Vtbl *lpVtbl; 1083 }; 1084 1085 1086 1087 #ifdef COBJMACROS 1088 1089 1090 #define IDXGIFactory4_QueryInterface(This,riid,ppvObject) \ 1091 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 1092 1093 #define IDXGIFactory4_AddRef(This) \ 1094 ( (This)->lpVtbl -> AddRef(This) ) 1095 1096 #define IDXGIFactory4_Release(This) \ 1097 ( (This)->lpVtbl -> Release(This) ) 1098 1099 1100 #define IDXGIFactory4_SetPrivateData(This,Name,DataSize,pData) \ 1101 ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 1102 1103 #define IDXGIFactory4_SetPrivateDataInterface(This,Name,pUnknown) \ 1104 ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 1105 1106 #define IDXGIFactory4_GetPrivateData(This,Name,pDataSize,pData) \ 1107 ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 1108 1109 #define IDXGIFactory4_GetParent(This,riid,ppParent) \ 1110 ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 1111 1112 1113 #define IDXGIFactory4_EnumAdapters(This,Adapter,ppAdapter) \ 1114 ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) ) 1115 1116 #define IDXGIFactory4_MakeWindowAssociation(This,WindowHandle,Flags) \ 1117 ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) ) 1118 1119 #define IDXGIFactory4_GetWindowAssociation(This,pWindowHandle) \ 1120 ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) ) 1121 1122 #define IDXGIFactory4_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \ 1123 ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) ) 1124 1125 #define IDXGIFactory4_CreateSoftwareAdapter(This,Module,ppAdapter) \ 1126 ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) ) 1127 1128 1129 #define IDXGIFactory4_EnumAdapters1(This,Adapter,ppAdapter) \ 1130 ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) ) 1131 1132 #define IDXGIFactory4_IsCurrent(This) \ 1133 ( (This)->lpVtbl -> IsCurrent(This) ) 1134 1135 1136 #define IDXGIFactory4_IsWindowedStereoEnabled(This) \ 1137 ( (This)->lpVtbl -> IsWindowedStereoEnabled(This) ) 1138 1139 #define IDXGIFactory4_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) \ 1140 ( (This)->lpVtbl -> CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) ) 1141 1142 #define IDXGIFactory4_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) \ 1143 ( (This)->lpVtbl -> CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) ) 1144 1145 #define IDXGIFactory4_GetSharedResourceAdapterLuid(This,hResource,pLuid) \ 1146 ( (This)->lpVtbl -> GetSharedResourceAdapterLuid(This,hResource,pLuid) ) 1147 1148 #define IDXGIFactory4_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) \ 1149 ( (This)->lpVtbl -> RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) ) 1150 1151 #define IDXGIFactory4_RegisterStereoStatusEvent(This,hEvent,pdwCookie) \ 1152 ( (This)->lpVtbl -> RegisterStereoStatusEvent(This,hEvent,pdwCookie) ) 1153 1154 #define IDXGIFactory4_UnregisterStereoStatus(This,dwCookie) \ 1155 ( (This)->lpVtbl -> UnregisterStereoStatus(This,dwCookie) ) 1156 1157 #define IDXGIFactory4_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) \ 1158 ( (This)->lpVtbl -> RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) ) 1159 1160 #define IDXGIFactory4_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) \ 1161 ( (This)->lpVtbl -> RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) ) 1162 1163 #define IDXGIFactory4_UnregisterOcclusionStatus(This,dwCookie) \ 1164 ( (This)->lpVtbl -> UnregisterOcclusionStatus(This,dwCookie) ) 1165 1166 #define IDXGIFactory4_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) \ 1167 ( (This)->lpVtbl -> CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) ) 1168 1169 1170 #define IDXGIFactory4_GetCreationFlags(This) \ 1171 ( (This)->lpVtbl -> GetCreationFlags(This) ) 1172 1173 1174 #define IDXGIFactory4_EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) \ 1175 ( (This)->lpVtbl -> EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) ) 1176 1177 #define IDXGIFactory4_EnumWarpAdapter(This,riid,ppvAdapter) \ 1178 ( (This)->lpVtbl -> EnumWarpAdapter(This,riid,ppvAdapter) ) 1179 1180 #endif /* COBJMACROS */ 1181 1182 1183 #endif /* C style interface */ 1184 1185 1186 1187 1188 #endif /* __IDXGIFactory4_INTERFACE_DEFINED__ */ 1189 1190 1191 /* interface __MIDL_itf_dxgi1_4_0000_0003 */ 1192 /* [local] */ 1193 1194 typedef 1195 enum DXGI_MEMORY_SEGMENT_GROUP 1196 { 1197 DXGI_MEMORY_SEGMENT_GROUP_LOCAL = 0, 1198 DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL = 1 1199 } DXGI_MEMORY_SEGMENT_GROUP; 1200 1201 typedef struct DXGI_QUERY_VIDEO_MEMORY_INFO 1202 { 1203 UINT64 Budget; 1204 UINT64 CurrentUsage; 1205 UINT64 AvailableForReservation; 1206 UINT64 CurrentReservation; 1207 } DXGI_QUERY_VIDEO_MEMORY_INFO; 1208 1209 1210 1211 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0003_v0_0_c_ifspec; 1212 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0003_v0_0_s_ifspec; 1213 1214 #ifndef __IDXGIAdapter3_INTERFACE_DEFINED__ 1215 #define __IDXGIAdapter3_INTERFACE_DEFINED__ 1216 1217 /* interface IDXGIAdapter3 */ 1218 /* [unique][local][uuid][object] */ 1219 1220 1221 EXTERN_C const IID IID_IDXGIAdapter3; 1222 1223 #if defined(__cplusplus) && !defined(CINTERFACE) 1224 1225 MIDL_INTERFACE("645967A4-1392-4310-A798-8053CE3E93FD") 1226 IDXGIAdapter3 : public IDXGIAdapter2 1227 { 1228 public: 1229 virtual HRESULT STDMETHODCALLTYPE RegisterHardwareContentProtectionTeardownStatusEvent( 1230 /* [annotation][in] */ 1231 _In_ HANDLE hEvent, 1232 /* [annotation][out] */ 1233 _Out_ DWORD *pdwCookie) = 0; 1234 1235 virtual void STDMETHODCALLTYPE UnregisterHardwareContentProtectionTeardownStatus( 1236 /* [annotation][in] */ 1237 _In_ DWORD dwCookie) = 0; 1238 1239 virtual HRESULT STDMETHODCALLTYPE QueryVideoMemoryInfo( 1240 /* [annotation][in] */ 1241 _In_ UINT NodeIndex, 1242 /* [annotation][in] */ 1243 _In_ DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, 1244 /* [annotation][out] */ 1245 _Out_ DXGI_QUERY_VIDEO_MEMORY_INFO *pVideoMemoryInfo) = 0; 1246 1247 virtual HRESULT STDMETHODCALLTYPE SetVideoMemoryReservation( 1248 /* [annotation][in] */ 1249 _In_ UINT NodeIndex, 1250 /* [annotation][in] */ 1251 _In_ DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, 1252 /* [annotation][in] */ 1253 _In_ UINT64 Reservation) = 0; 1254 1255 virtual HRESULT STDMETHODCALLTYPE RegisterVideoMemoryBudgetChangeNotificationEvent( 1256 /* [annotation][in] */ 1257 _In_ HANDLE hEvent, 1258 /* [annotation][out] */ 1259 _Out_ DWORD *pdwCookie) = 0; 1260 1261 virtual void STDMETHODCALLTYPE UnregisterVideoMemoryBudgetChangeNotification( 1262 /* [annotation][in] */ 1263 _In_ DWORD dwCookie) = 0; 1264 1265 }; 1266 1267 1268 #else /* C style interface */ 1269 1270 typedef struct IDXGIAdapter3Vtbl 1271 { 1272 BEGIN_INTERFACE 1273 1274 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 1275 IDXGIAdapter3 * This, 1276 /* [in] */ REFIID riid, 1277 /* [annotation][iid_is][out] */ 1278 _COM_Outptr_ void **ppvObject); 1279 1280 ULONG ( STDMETHODCALLTYPE *AddRef )( 1281 IDXGIAdapter3 * This); 1282 1283 ULONG ( STDMETHODCALLTYPE *Release )( 1284 IDXGIAdapter3 * This); 1285 1286 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 1287 IDXGIAdapter3 * This, 1288 /* [annotation][in] */ 1289 _In_ REFGUID Name, 1290 /* [in] */ UINT DataSize, 1291 /* [annotation][in] */ 1292 _In_reads_bytes_(DataSize) const void *pData); 1293 1294 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 1295 IDXGIAdapter3 * This, 1296 /* [annotation][in] */ 1297 _In_ REFGUID Name, 1298 /* [annotation][in] */ 1299 _In_opt_ const IUnknown *pUnknown); 1300 1301 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 1302 IDXGIAdapter3 * This, 1303 /* [annotation][in] */ 1304 _In_ REFGUID Name, 1305 /* [annotation][out][in] */ 1306 _Inout_ UINT *pDataSize, 1307 /* [annotation][out] */ 1308 _Out_writes_bytes_(*pDataSize) void *pData); 1309 1310 HRESULT ( STDMETHODCALLTYPE *GetParent )( 1311 IDXGIAdapter3 * This, 1312 /* [annotation][in] */ 1313 _In_ REFIID riid, 1314 /* [annotation][retval][out] */ 1315 _COM_Outptr_ void **ppParent); 1316 1317 HRESULT ( STDMETHODCALLTYPE *EnumOutputs )( 1318 IDXGIAdapter3 * This, 1319 /* [in] */ UINT Output, 1320 /* [annotation][out][in] */ 1321 _COM_Outptr_ IDXGIOutput **ppOutput); 1322 1323 HRESULT ( STDMETHODCALLTYPE *GetDesc )( 1324 IDXGIAdapter3 * This, 1325 /* [annotation][out] */ 1326 _Out_ DXGI_ADAPTER_DESC *pDesc); 1327 1328 HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )( 1329 IDXGIAdapter3 * This, 1330 /* [annotation][in] */ 1331 _In_ REFGUID InterfaceName, 1332 /* [annotation][out] */ 1333 _Out_ LARGE_INTEGER *pUMDVersion); 1334 1335 HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( 1336 IDXGIAdapter3 * This, 1337 /* [annotation][out] */ 1338 _Out_ DXGI_ADAPTER_DESC1 *pDesc); 1339 1340 HRESULT ( STDMETHODCALLTYPE *GetDesc2 )( 1341 IDXGIAdapter3 * This, 1342 /* [annotation][out] */ 1343 _Out_ DXGI_ADAPTER_DESC2 *pDesc); 1344 1345 HRESULT ( STDMETHODCALLTYPE *RegisterHardwareContentProtectionTeardownStatusEvent )( 1346 IDXGIAdapter3 * This, 1347 /* [annotation][in] */ 1348 _In_ HANDLE hEvent, 1349 /* [annotation][out] */ 1350 _Out_ DWORD *pdwCookie); 1351 1352 void ( STDMETHODCALLTYPE *UnregisterHardwareContentProtectionTeardownStatus )( 1353 IDXGIAdapter3 * This, 1354 /* [annotation][in] */ 1355 _In_ DWORD dwCookie); 1356 1357 HRESULT ( STDMETHODCALLTYPE *QueryVideoMemoryInfo )( 1358 IDXGIAdapter3 * This, 1359 /* [annotation][in] */ 1360 _In_ UINT NodeIndex, 1361 /* [annotation][in] */ 1362 _In_ DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, 1363 /* [annotation][out] */ 1364 _Out_ DXGI_QUERY_VIDEO_MEMORY_INFO *pVideoMemoryInfo); 1365 1366 HRESULT ( STDMETHODCALLTYPE *SetVideoMemoryReservation )( 1367 IDXGIAdapter3 * This, 1368 /* [annotation][in] */ 1369 _In_ UINT NodeIndex, 1370 /* [annotation][in] */ 1371 _In_ DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, 1372 /* [annotation][in] */ 1373 _In_ UINT64 Reservation); 1374 1375 HRESULT ( STDMETHODCALLTYPE *RegisterVideoMemoryBudgetChangeNotificationEvent )( 1376 IDXGIAdapter3 * This, 1377 /* [annotation][in] */ 1378 _In_ HANDLE hEvent, 1379 /* [annotation][out] */ 1380 _Out_ DWORD *pdwCookie); 1381 1382 void ( STDMETHODCALLTYPE *UnregisterVideoMemoryBudgetChangeNotification )( 1383 IDXGIAdapter3 * This, 1384 /* [annotation][in] */ 1385 _In_ DWORD dwCookie); 1386 1387 END_INTERFACE 1388 } IDXGIAdapter3Vtbl; 1389 1390 interface IDXGIAdapter3 1391 { 1392 CONST_VTBL struct IDXGIAdapter3Vtbl *lpVtbl; 1393 }; 1394 1395 1396 1397 #ifdef COBJMACROS 1398 1399 1400 #define IDXGIAdapter3_QueryInterface(This,riid,ppvObject) \ 1401 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 1402 1403 #define IDXGIAdapter3_AddRef(This) \ 1404 ( (This)->lpVtbl -> AddRef(This) ) 1405 1406 #define IDXGIAdapter3_Release(This) \ 1407 ( (This)->lpVtbl -> Release(This) ) 1408 1409 1410 #define IDXGIAdapter3_SetPrivateData(This,Name,DataSize,pData) \ 1411 ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 1412 1413 #define IDXGIAdapter3_SetPrivateDataInterface(This,Name,pUnknown) \ 1414 ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 1415 1416 #define IDXGIAdapter3_GetPrivateData(This,Name,pDataSize,pData) \ 1417 ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 1418 1419 #define IDXGIAdapter3_GetParent(This,riid,ppParent) \ 1420 ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 1421 1422 1423 #define IDXGIAdapter3_EnumOutputs(This,Output,ppOutput) \ 1424 ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) ) 1425 1426 #define IDXGIAdapter3_GetDesc(This,pDesc) \ 1427 ( (This)->lpVtbl -> GetDesc(This,pDesc) ) 1428 1429 #define IDXGIAdapter3_CheckInterfaceSupport(This,InterfaceName,pUMDVersion) \ 1430 ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) ) 1431 1432 1433 #define IDXGIAdapter3_GetDesc1(This,pDesc) \ 1434 ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) 1435 1436 1437 #define IDXGIAdapter3_GetDesc2(This,pDesc) \ 1438 ( (This)->lpVtbl -> GetDesc2(This,pDesc) ) 1439 1440 1441 #define IDXGIAdapter3_RegisterHardwareContentProtectionTeardownStatusEvent(This,hEvent,pdwCookie) \ 1442 ( (This)->lpVtbl -> RegisterHardwareContentProtectionTeardownStatusEvent(This,hEvent,pdwCookie) ) 1443 1444 #define IDXGIAdapter3_UnregisterHardwareContentProtectionTeardownStatus(This,dwCookie) \ 1445 ( (This)->lpVtbl -> UnregisterHardwareContentProtectionTeardownStatus(This,dwCookie) ) 1446 1447 #define IDXGIAdapter3_QueryVideoMemoryInfo(This,NodeIndex,MemorySegmentGroup,pVideoMemoryInfo) \ 1448 ( (This)->lpVtbl -> QueryVideoMemoryInfo(This,NodeIndex,MemorySegmentGroup,pVideoMemoryInfo) ) 1449 1450 #define IDXGIAdapter3_SetVideoMemoryReservation(This,NodeIndex,MemorySegmentGroup,Reservation) \ 1451 ( (This)->lpVtbl -> SetVideoMemoryReservation(This,NodeIndex,MemorySegmentGroup,Reservation) ) 1452 1453 #define IDXGIAdapter3_RegisterVideoMemoryBudgetChangeNotificationEvent(This,hEvent,pdwCookie) \ 1454 ( (This)->lpVtbl -> RegisterVideoMemoryBudgetChangeNotificationEvent(This,hEvent,pdwCookie) ) 1455 1456 #define IDXGIAdapter3_UnregisterVideoMemoryBudgetChangeNotification(This,dwCookie) \ 1457 ( (This)->lpVtbl -> UnregisterVideoMemoryBudgetChangeNotification(This,dwCookie) ) 1458 1459 #endif /* COBJMACROS */ 1460 1461 1462 #endif /* C style interface */ 1463 1464 1465 1466 1467 #endif /* __IDXGIAdapter3_INTERFACE_DEFINED__ */ 1468 1469 1470 /* interface __MIDL_itf_dxgi1_4_0000_0004 */ 1471 /* [local] */ 1472 1473 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ 1474 // BK - pragma endregion 1475 DEFINE_GUID(IID_IDXGISwapChain3,0x94d99bdb,0xf1f8,0x4ab0,0xb2,0x36,0x7d,0xa0,0x17,0x0e,0xda,0xb1); 1476 DEFINE_GUID(IID_IDXGIOutput4,0xdc7dca35,0x2196,0x414d,0x9F,0x53,0x61,0x78,0x84,0x03,0x2a,0x60); 1477 DEFINE_GUID(IID_IDXGIFactory4,0x1bc6ea02,0xef36,0x464f,0xbf,0x0c,0x21,0xca,0x39,0xe5,0x16,0x8a); 1478 DEFINE_GUID(IID_IDXGIAdapter3,0x645967A4,0x1392,0x4310,0xA7,0x98,0x80,0x53,0xCE,0x3E,0x93,0xFD); 1479 1480 1481 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0004_v0_0_c_ifspec; 1482 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0004_v0_0_s_ifspec; 1483 1484 /* Additional Prototypes for ALL interfaces */ 1485 1486 /* end of Additional Prototypes */ 1487 1488 #ifdef __cplusplus 1489 } 1490 #endif 1491 1492 #endif 1493 1494 1495