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