dxgi1_6.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727
  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 8.01.0622 */
  3. /* @@MIDL_FILE_HEADING( ) */
  4. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  5. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  6. #define __REQUIRED_RPCNDR_H_VERSION__ 500
  7. #endif
  8. /* verify that the <rpcsal.h> version is high enough to compile this file*/
  9. #ifndef __REQUIRED_RPCSAL_H_VERSION__
  10. #define __REQUIRED_RPCSAL_H_VERSION__ 100
  11. #endif
  12. #include "rpc.h"
  13. #include "rpcndr.h"
  14. #ifndef __RPCNDR_H_VERSION__
  15. #error this stub requires an updated version of <rpcndr.h>
  16. #endif /* __RPCNDR_H_VERSION__ */
  17. #ifndef COM_NO_WINDOWS_H
  18. #include "windows.h"
  19. #include "ole2.h"
  20. #endif /*COM_NO_WINDOWS_H*/
  21. #ifndef __dxgi1_6_h__
  22. #define __dxgi1_6_h__
  23. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  24. #pragma once
  25. #endif
  26. /* Forward Declarations */
  27. #ifndef __IDXGIAdapter4_FWD_DEFINED__
  28. #define __IDXGIAdapter4_FWD_DEFINED__
  29. typedef interface IDXGIAdapter4 IDXGIAdapter4;
  30. #endif /* __IDXGIAdapter4_FWD_DEFINED__ */
  31. #ifndef __IDXGIOutput6_FWD_DEFINED__
  32. #define __IDXGIOutput6_FWD_DEFINED__
  33. typedef interface IDXGIOutput6 IDXGIOutput6;
  34. #endif /* __IDXGIOutput6_FWD_DEFINED__ */
  35. /* header files for imported files */
  36. #include "dxgi1_5.h"
  37. #ifdef __cplusplus
  38. extern "C"{
  39. #endif
  40. /* interface __MIDL_itf_dxgi1_6_0000_0000 */
  41. /* [local] */
  42. // Copyright (c) Microsoft Corporation. All Rights Reserved
  43. #include <winapifamily.h>
  44. #pragma region App Family
  45. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  46. typedef
  47. enum DXGI_ADAPTER_FLAG3
  48. {
  49. DXGI_ADAPTER_FLAG3_NONE = 0,
  50. DXGI_ADAPTER_FLAG3_REMOTE = 1,
  51. DXGI_ADAPTER_FLAG3_SOFTWARE = 2,
  52. DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 4,
  53. DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xffffffff
  54. } DXGI_ADAPTER_FLAG3;
  55. DEFINE_ENUM_FLAG_OPERATORS( DXGI_ADAPTER_FLAG3 );
  56. typedef struct DXGI_ADAPTER_DESC3
  57. {
  58. WCHAR Description[ 128 ];
  59. UINT VendorId;
  60. UINT DeviceId;
  61. UINT SubSysId;
  62. UINT Revision;
  63. SIZE_T DedicatedVideoMemory;
  64. SIZE_T DedicatedSystemMemory;
  65. SIZE_T SharedSystemMemory;
  66. LUID AdapterLuid;
  67. DXGI_ADAPTER_FLAG3 Flags;
  68. DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
  69. DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
  70. } DXGI_ADAPTER_DESC3;
  71. extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0000_v0_0_c_ifspec;
  72. extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0000_v0_0_s_ifspec;
  73. #ifndef __IDXGIAdapter4_INTERFACE_DEFINED__
  74. #define __IDXGIAdapter4_INTERFACE_DEFINED__
  75. /* interface IDXGIAdapter4 */
  76. /* [unique][local][uuid][object] */
  77. EXTERN_C const IID IID_IDXGIAdapter4;
  78. #if defined(__cplusplus) && !defined(CINTERFACE)
  79. MIDL_INTERFACE("3c8d99d1-4fbf-4181-a82c-af66bf7bd24e")
  80. IDXGIAdapter4 : public IDXGIAdapter3
  81. {
  82. public:
  83. virtual HRESULT STDMETHODCALLTYPE GetDesc3(
  84. /* [annotation][out] */
  85. _Out_ DXGI_ADAPTER_DESC3 *pDesc) = 0;
  86. };
  87. #else /* C style interface */
  88. typedef struct IDXGIAdapter4Vtbl
  89. {
  90. BEGIN_INTERFACE
  91. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  92. IDXGIAdapter4 * This,
  93. /* [in] */ REFIID riid,
  94. /* [annotation][iid_is][out] */
  95. _COM_Outptr_ void **ppvObject);
  96. ULONG ( STDMETHODCALLTYPE *AddRef )(
  97. IDXGIAdapter4 * This);
  98. ULONG ( STDMETHODCALLTYPE *Release )(
  99. IDXGIAdapter4 * This);
  100. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  101. IDXGIAdapter4 * This,
  102. /* [annotation][in] */
  103. _In_ REFGUID Name,
  104. /* [in] */ UINT DataSize,
  105. /* [annotation][in] */
  106. _In_reads_bytes_(DataSize) const void *pData);
  107. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  108. IDXGIAdapter4 * This,
  109. /* [annotation][in] */
  110. _In_ REFGUID Name,
  111. /* [annotation][in] */
  112. _In_opt_ const IUnknown *pUnknown);
  113. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  114. IDXGIAdapter4 * This,
  115. /* [annotation][in] */
  116. _In_ REFGUID Name,
  117. /* [annotation][out][in] */
  118. _Inout_ UINT *pDataSize,
  119. /* [annotation][out] */
  120. _Out_writes_bytes_(*pDataSize) void *pData);
  121. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  122. IDXGIAdapter4 * This,
  123. /* [annotation][in] */
  124. _In_ REFIID riid,
  125. /* [annotation][retval][out] */
  126. _COM_Outptr_ void **ppParent);
  127. HRESULT ( STDMETHODCALLTYPE *EnumOutputs )(
  128. IDXGIAdapter4 * This,
  129. /* [in] */ UINT Output,
  130. /* [annotation][out][in] */
  131. _COM_Outptr_ IDXGIOutput **ppOutput);
  132. HRESULT ( STDMETHODCALLTYPE *GetDesc )(
  133. IDXGIAdapter4 * This,
  134. /* [annotation][out] */
  135. _Out_ DXGI_ADAPTER_DESC *pDesc);
  136. HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )(
  137. IDXGIAdapter4 * This,
  138. /* [annotation][in] */
  139. _In_ REFGUID InterfaceName,
  140. /* [annotation][out] */
  141. _Out_ LARGE_INTEGER *pUMDVersion);
  142. HRESULT ( STDMETHODCALLTYPE *GetDesc1 )(
  143. IDXGIAdapter4 * This,
  144. /* [annotation][out] */
  145. _Out_ DXGI_ADAPTER_DESC1 *pDesc);
  146. HRESULT ( STDMETHODCALLTYPE *GetDesc2 )(
  147. IDXGIAdapter4 * This,
  148. /* [annotation][out] */
  149. _Out_ DXGI_ADAPTER_DESC2 *pDesc);
  150. HRESULT ( STDMETHODCALLTYPE *RegisterHardwareContentProtectionTeardownStatusEvent )(
  151. IDXGIAdapter4 * This,
  152. /* [annotation][in] */
  153. _In_ HANDLE hEvent,
  154. /* [annotation][out] */
  155. _Out_ DWORD *pdwCookie);
  156. void ( STDMETHODCALLTYPE *UnregisterHardwareContentProtectionTeardownStatus )(
  157. IDXGIAdapter4 * This,
  158. /* [annotation][in] */
  159. _In_ DWORD dwCookie);
  160. HRESULT ( STDMETHODCALLTYPE *QueryVideoMemoryInfo )(
  161. IDXGIAdapter4 * This,
  162. /* [annotation][in] */
  163. _In_ UINT NodeIndex,
  164. /* [annotation][in] */
  165. _In_ DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup,
  166. /* [annotation][out] */
  167. _Out_ DXGI_QUERY_VIDEO_MEMORY_INFO *pVideoMemoryInfo);
  168. HRESULT ( STDMETHODCALLTYPE *SetVideoMemoryReservation )(
  169. IDXGIAdapter4 * This,
  170. /* [annotation][in] */
  171. _In_ UINT NodeIndex,
  172. /* [annotation][in] */
  173. _In_ DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup,
  174. /* [annotation][in] */
  175. _In_ UINT64 Reservation);
  176. HRESULT ( STDMETHODCALLTYPE *RegisterVideoMemoryBudgetChangeNotificationEvent )(
  177. IDXGIAdapter4 * This,
  178. /* [annotation][in] */
  179. _In_ HANDLE hEvent,
  180. /* [annotation][out] */
  181. _Out_ DWORD *pdwCookie);
  182. void ( STDMETHODCALLTYPE *UnregisterVideoMemoryBudgetChangeNotification )(
  183. IDXGIAdapter4 * This,
  184. /* [annotation][in] */
  185. _In_ DWORD dwCookie);
  186. HRESULT ( STDMETHODCALLTYPE *GetDesc3 )(
  187. IDXGIAdapter4 * This,
  188. /* [annotation][out] */
  189. _Out_ DXGI_ADAPTER_DESC3 *pDesc);
  190. END_INTERFACE
  191. } IDXGIAdapter4Vtbl;
  192. interface IDXGIAdapter4
  193. {
  194. CONST_VTBL struct IDXGIAdapter4Vtbl *lpVtbl;
  195. };
  196. #ifdef COBJMACROS
  197. #define IDXGIAdapter4_QueryInterface(This,riid,ppvObject) \
  198. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  199. #define IDXGIAdapter4_AddRef(This) \
  200. ( (This)->lpVtbl -> AddRef(This) )
  201. #define IDXGIAdapter4_Release(This) \
  202. ( (This)->lpVtbl -> Release(This) )
  203. #define IDXGIAdapter4_SetPrivateData(This,Name,DataSize,pData) \
  204. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  205. #define IDXGIAdapter4_SetPrivateDataInterface(This,Name,pUnknown) \
  206. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  207. #define IDXGIAdapter4_GetPrivateData(This,Name,pDataSize,pData) \
  208. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  209. #define IDXGIAdapter4_GetParent(This,riid,ppParent) \
  210. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  211. #define IDXGIAdapter4_EnumOutputs(This,Output,ppOutput) \
  212. ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) )
  213. #define IDXGIAdapter4_GetDesc(This,pDesc) \
  214. ( (This)->lpVtbl -> GetDesc(This,pDesc) )
  215. #define IDXGIAdapter4_CheckInterfaceSupport(This,InterfaceName,pUMDVersion) \
  216. ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) )
  217. #define IDXGIAdapter4_GetDesc1(This,pDesc) \
  218. ( (This)->lpVtbl -> GetDesc1(This,pDesc) )
  219. #define IDXGIAdapter4_GetDesc2(This,pDesc) \
  220. ( (This)->lpVtbl -> GetDesc2(This,pDesc) )
  221. #define IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(This,hEvent,pdwCookie) \
  222. ( (This)->lpVtbl -> RegisterHardwareContentProtectionTeardownStatusEvent(This,hEvent,pdwCookie) )
  223. #define IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(This,dwCookie) \
  224. ( (This)->lpVtbl -> UnregisterHardwareContentProtectionTeardownStatus(This,dwCookie) )
  225. #define IDXGIAdapter4_QueryVideoMemoryInfo(This,NodeIndex,MemorySegmentGroup,pVideoMemoryInfo) \
  226. ( (This)->lpVtbl -> QueryVideoMemoryInfo(This,NodeIndex,MemorySegmentGroup,pVideoMemoryInfo) )
  227. #define IDXGIAdapter4_SetVideoMemoryReservation(This,NodeIndex,MemorySegmentGroup,Reservation) \
  228. ( (This)->lpVtbl -> SetVideoMemoryReservation(This,NodeIndex,MemorySegmentGroup,Reservation) )
  229. #define IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(This,hEvent,pdwCookie) \
  230. ( (This)->lpVtbl -> RegisterVideoMemoryBudgetChangeNotificationEvent(This,hEvent,pdwCookie) )
  231. #define IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(This,dwCookie) \
  232. ( (This)->lpVtbl -> UnregisterVideoMemoryBudgetChangeNotification(This,dwCookie) )
  233. #define IDXGIAdapter4_GetDesc3(This,pDesc) \
  234. ( (This)->lpVtbl -> GetDesc3(This,pDesc) )
  235. #endif /* COBJMACROS */
  236. #endif /* C style interface */
  237. #endif /* __IDXGIAdapter4_INTERFACE_DEFINED__ */
  238. /* interface __MIDL_itf_dxgi1_6_0000_0001 */
  239. /* [local] */
  240. typedef struct DXGI_OUTPUT_DESC1
  241. {
  242. WCHAR DeviceName[ 32 ];
  243. RECT DesktopCoordinates;
  244. BOOL AttachedToDesktop;
  245. DXGI_MODE_ROTATION Rotation;
  246. HMONITOR Monitor;
  247. UINT BitsPerColor;
  248. DXGI_COLOR_SPACE_TYPE ColorSpace;
  249. FLOAT RedPrimary[ 2 ];
  250. FLOAT GreenPrimary[ 2 ];
  251. FLOAT BluePrimary[ 2 ];
  252. FLOAT WhitePoint[ 2 ];
  253. FLOAT MinLuminance;
  254. FLOAT MaxLuminance;
  255. FLOAT MaxFullFrameLuminance;
  256. } DXGI_OUTPUT_DESC1;
  257. typedef
  258. enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS
  259. {
  260. DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 1,
  261. DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 2,
  262. DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 4
  263. } DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS;
  264. DEFINE_ENUM_FLAG_OPERATORS( DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS );
  265. extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0001_v0_0_c_ifspec;
  266. extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0001_v0_0_s_ifspec;
  267. #ifndef __IDXGIOutput6_INTERFACE_DEFINED__
  268. #define __IDXGIOutput6_INTERFACE_DEFINED__
  269. /* interface IDXGIOutput6 */
  270. /* [unique][local][uuid][object] */
  271. EXTERN_C const IID IID_IDXGIOutput6;
  272. #if defined(__cplusplus) && !defined(CINTERFACE)
  273. MIDL_INTERFACE("068346e8-aaec-4b84-add7-137f513f77a1")
  274. IDXGIOutput6 : public IDXGIOutput5
  275. {
  276. public:
  277. virtual HRESULT STDMETHODCALLTYPE GetDesc1(
  278. /* [annotation][out] */
  279. _Out_ DXGI_OUTPUT_DESC1 *pDesc) = 0;
  280. virtual HRESULT STDMETHODCALLTYPE CheckHardwareCompositionSupport(
  281. /* [annotation][out] */
  282. _Out_ UINT *pFlags) = 0;
  283. };
  284. #else /* C style interface */
  285. typedef struct IDXGIOutput6Vtbl
  286. {
  287. BEGIN_INTERFACE
  288. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  289. IDXGIOutput6 * This,
  290. /* [in] */ REFIID riid,
  291. /* [annotation][iid_is][out] */
  292. _COM_Outptr_ void **ppvObject);
  293. ULONG ( STDMETHODCALLTYPE *AddRef )(
  294. IDXGIOutput6 * This);
  295. ULONG ( STDMETHODCALLTYPE *Release )(
  296. IDXGIOutput6 * This);
  297. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  298. IDXGIOutput6 * This,
  299. /* [annotation][in] */
  300. _In_ REFGUID Name,
  301. /* [in] */ UINT DataSize,
  302. /* [annotation][in] */
  303. _In_reads_bytes_(DataSize) const void *pData);
  304. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  305. IDXGIOutput6 * This,
  306. /* [annotation][in] */
  307. _In_ REFGUID Name,
  308. /* [annotation][in] */
  309. _In_opt_ const IUnknown *pUnknown);
  310. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  311. IDXGIOutput6 * This,
  312. /* [annotation][in] */
  313. _In_ REFGUID Name,
  314. /* [annotation][out][in] */
  315. _Inout_ UINT *pDataSize,
  316. /* [annotation][out] */
  317. _Out_writes_bytes_(*pDataSize) void *pData);
  318. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  319. IDXGIOutput6 * This,
  320. /* [annotation][in] */
  321. _In_ REFIID riid,
  322. /* [annotation][retval][out] */
  323. _COM_Outptr_ void **ppParent);
  324. HRESULT ( STDMETHODCALLTYPE *GetDesc )(
  325. IDXGIOutput6 * This,
  326. /* [annotation][out] */
  327. _Out_ DXGI_OUTPUT_DESC *pDesc);
  328. HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )(
  329. IDXGIOutput6 * This,
  330. /* [in] */ DXGI_FORMAT EnumFormat,
  331. /* [in] */ UINT Flags,
  332. /* [annotation][out][in] */
  333. _Inout_ UINT *pNumModes,
  334. /* [annotation][out] */
  335. _Out_writes_to_opt_(*pNumModes,*pNumModes) DXGI_MODE_DESC *pDesc);
  336. HRESULT ( STDMETHODCALLTYPE *FindClosestMatchingMode )(
  337. IDXGIOutput6 * This,
  338. /* [annotation][in] */
  339. _In_ const DXGI_MODE_DESC *pModeToMatch,
  340. /* [annotation][out] */
  341. _Out_ DXGI_MODE_DESC *pClosestMatch,
  342. /* [annotation][in] */
  343. _In_opt_ IUnknown *pConcernedDevice);
  344. HRESULT ( STDMETHODCALLTYPE *WaitForVBlank )(
  345. IDXGIOutput6 * This);
  346. HRESULT ( STDMETHODCALLTYPE *TakeOwnership )(
  347. IDXGIOutput6 * This,
  348. /* [annotation][in] */
  349. _In_ IUnknown *pDevice,
  350. BOOL Exclusive);
  351. void ( STDMETHODCALLTYPE *ReleaseOwnership )(
  352. IDXGIOutput6 * This);
  353. HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )(
  354. IDXGIOutput6 * This,
  355. /* [annotation][out] */
  356. _Out_ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps);
  357. HRESULT ( STDMETHODCALLTYPE *SetGammaControl )(
  358. IDXGIOutput6 * This,
  359. /* [annotation][in] */
  360. _In_ const DXGI_GAMMA_CONTROL *pArray);
  361. HRESULT ( STDMETHODCALLTYPE *GetGammaControl )(
  362. IDXGIOutput6 * This,
  363. /* [annotation][out] */
  364. _Out_ DXGI_GAMMA_CONTROL *pArray);
  365. HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )(
  366. IDXGIOutput6 * This,
  367. /* [annotation][in] */
  368. _In_ IDXGISurface *pScanoutSurface);
  369. HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )(
  370. IDXGIOutput6 * This,
  371. /* [annotation][in] */
  372. _In_ IDXGISurface *pDestination);
  373. HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )(
  374. IDXGIOutput6 * This,
  375. /* [annotation][out] */
  376. _Out_ DXGI_FRAME_STATISTICS *pStats);
  377. HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList1 )(
  378. IDXGIOutput6 * This,
  379. /* [in] */ DXGI_FORMAT EnumFormat,
  380. /* [in] */ UINT Flags,
  381. /* [annotation][out][in] */
  382. _Inout_ UINT *pNumModes,
  383. /* [annotation][out] */
  384. _Out_writes_to_opt_(*pNumModes,*pNumModes) DXGI_MODE_DESC1 *pDesc);
  385. HRESULT ( STDMETHODCALLTYPE *FindClosestMatchingMode1 )(
  386. IDXGIOutput6 * This,
  387. /* [annotation][in] */
  388. _In_ const DXGI_MODE_DESC1 *pModeToMatch,
  389. /* [annotation][out] */
  390. _Out_ DXGI_MODE_DESC1 *pClosestMatch,
  391. /* [annotation][in] */
  392. _In_opt_ IUnknown *pConcernedDevice);
  393. HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData1 )(
  394. IDXGIOutput6 * This,
  395. /* [annotation][in] */
  396. _In_ IDXGIResource *pDestination);
  397. HRESULT ( STDMETHODCALLTYPE *DuplicateOutput )(
  398. IDXGIOutput6 * This,
  399. /* [annotation][in] */
  400. _In_ IUnknown *pDevice,
  401. /* [annotation][out] */
  402. _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication);
  403. BOOL ( STDMETHODCALLTYPE *SupportsOverlays )(
  404. IDXGIOutput6 * This);
  405. HRESULT ( STDMETHODCALLTYPE *CheckOverlaySupport )(
  406. IDXGIOutput6 * This,
  407. /* [annotation][in] */
  408. _In_ DXGI_FORMAT EnumFormat,
  409. /* [annotation][out] */
  410. _In_ IUnknown *pConcernedDevice,
  411. /* [annotation][out] */
  412. _Out_ UINT *pFlags);
  413. HRESULT ( STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport )(
  414. IDXGIOutput6 * This,
  415. /* [annotation][in] */
  416. _In_ DXGI_FORMAT Format,
  417. /* [annotation][in] */
  418. _In_ DXGI_COLOR_SPACE_TYPE ColorSpace,
  419. /* [annotation][in] */
  420. _In_ IUnknown *pConcernedDevice,
  421. /* [annotation][out] */
  422. _Out_ UINT *pFlags);
  423. HRESULT ( STDMETHODCALLTYPE *DuplicateOutput1 )(
  424. IDXGIOutput6 * This,
  425. /* [annotation][in] */
  426. _In_ IUnknown *pDevice,
  427. /* [in] */ UINT Flags,
  428. /* [annotation][in] */
  429. _In_ UINT SupportedFormatsCount,
  430. /* [annotation][in] */
  431. _In_reads_(SupportedFormatsCount) const DXGI_FORMAT *pSupportedFormats,
  432. /* [annotation][out] */
  433. _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication);
  434. HRESULT ( STDMETHODCALLTYPE *GetDesc1 )(
  435. IDXGIOutput6 * This,
  436. /* [annotation][out] */
  437. _Out_ DXGI_OUTPUT_DESC1 *pDesc);
  438. HRESULT ( STDMETHODCALLTYPE *CheckHardwareCompositionSupport )(
  439. IDXGIOutput6 * This,
  440. /* [annotation][out] */
  441. _Out_ UINT *pFlags);
  442. END_INTERFACE
  443. } IDXGIOutput6Vtbl;
  444. interface IDXGIOutput6
  445. {
  446. CONST_VTBL struct IDXGIOutput6Vtbl *lpVtbl;
  447. };
  448. #ifdef COBJMACROS
  449. #define IDXGIOutput6_QueryInterface(This,riid,ppvObject) \
  450. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  451. #define IDXGIOutput6_AddRef(This) \
  452. ( (This)->lpVtbl -> AddRef(This) )
  453. #define IDXGIOutput6_Release(This) \
  454. ( (This)->lpVtbl -> Release(This) )
  455. #define IDXGIOutput6_SetPrivateData(This,Name,DataSize,pData) \
  456. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  457. #define IDXGIOutput6_SetPrivateDataInterface(This,Name,pUnknown) \
  458. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  459. #define IDXGIOutput6_GetPrivateData(This,Name,pDataSize,pData) \
  460. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  461. #define IDXGIOutput6_GetParent(This,riid,ppParent) \
  462. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  463. #define IDXGIOutput6_GetDesc(This,pDesc) \
  464. ( (This)->lpVtbl -> GetDesc(This,pDesc) )
  465. #define IDXGIOutput6_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) \
  466. ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) )
  467. #define IDXGIOutput6_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) \
  468. ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) )
  469. #define IDXGIOutput6_WaitForVBlank(This) \
  470. ( (This)->lpVtbl -> WaitForVBlank(This) )
  471. #define IDXGIOutput6_TakeOwnership(This,pDevice,Exclusive) \
  472. ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) )
  473. #define IDXGIOutput6_ReleaseOwnership(This) \
  474. ( (This)->lpVtbl -> ReleaseOwnership(This) )
  475. #define IDXGIOutput6_GetGammaControlCapabilities(This,pGammaCaps) \
  476. ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) )
  477. #define IDXGIOutput6_SetGammaControl(This,pArray) \
  478. ( (This)->lpVtbl -> SetGammaControl(This,pArray) )
  479. #define IDXGIOutput6_GetGammaControl(This,pArray) \
  480. ( (This)->lpVtbl -> GetGammaControl(This,pArray) )
  481. #define IDXGIOutput6_SetDisplaySurface(This,pScanoutSurface) \
  482. ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) )
  483. #define IDXGIOutput6_GetDisplaySurfaceData(This,pDestination) \
  484. ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) )
  485. #define IDXGIOutput6_GetFrameStatistics(This,pStats) \
  486. ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) )
  487. #define IDXGIOutput6_GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) \
  488. ( (This)->lpVtbl -> GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) )
  489. #define IDXGIOutput6_FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) \
  490. ( (This)->lpVtbl -> FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) )
  491. #define IDXGIOutput6_GetDisplaySurfaceData1(This,pDestination) \
  492. ( (This)->lpVtbl -> GetDisplaySurfaceData1(This,pDestination) )
  493. #define IDXGIOutput6_DuplicateOutput(This,pDevice,ppOutputDuplication) \
  494. ( (This)->lpVtbl -> DuplicateOutput(This,pDevice,ppOutputDuplication) )
  495. #define IDXGIOutput6_SupportsOverlays(This) \
  496. ( (This)->lpVtbl -> SupportsOverlays(This) )
  497. #define IDXGIOutput6_CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) \
  498. ( (This)->lpVtbl -> CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) )
  499. #define IDXGIOutput6_CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) \
  500. ( (This)->lpVtbl -> CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) )
  501. #define IDXGIOutput6_DuplicateOutput1(This,pDevice,Flags,SupportedFormatsCount,pSupportedFormats,ppOutputDuplication) \
  502. ( (This)->lpVtbl -> DuplicateOutput1(This,pDevice,Flags,SupportedFormatsCount,pSupportedFormats,ppOutputDuplication) )
  503. #define IDXGIOutput6_GetDesc1(This,pDesc) \
  504. ( (This)->lpVtbl -> GetDesc1(This,pDesc) )
  505. #define IDXGIOutput6_CheckHardwareCompositionSupport(This,pFlags) \
  506. ( (This)->lpVtbl -> CheckHardwareCompositionSupport(This,pFlags) )
  507. #endif /* COBJMACROS */
  508. #endif /* C style interface */
  509. #endif /* __IDXGIOutput6_INTERFACE_DEFINED__ */
  510. /* interface __MIDL_itf_dxgi1_6_0000_0002 */
  511. /* [local] */
  512. #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
  513. #pragma endregion
  514. DEFINE_GUID(IID_IDXGIAdapter4,0x3c8d99d1,0x4fbf,0x4181,0xa8,0x2c,0xaf,0x66,0xbf,0x7b,0xd2,0x4e);
  515. DEFINE_GUID(IID_IDXGIOutput6,0x068346e8,0xaaec,0x4b84,0xad,0xd7,0x13,0x7f,0x51,0x3f,0x77,0xa1);
  516. extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0002_v0_0_c_ifspec;
  517. extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0002_v0_0_s_ifspec;
  518. /* Additional Prototypes for ALL interfaces */
  519. /* end of Additional Prototypes */
  520. #ifdef __cplusplus
  521. }
  522. #endif
  523. #endif