Counter Strike : Global Offensive Source Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2641 lines
79 KiB

  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 7.00.0550 */
  3. /* Compiler settings for dxgi.idl:
  4. Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0550
  5. protocol : all , ms_ext, c_ext, robust
  6. error checks: allocation ref bounds_check enum stub_data
  7. VC __declspec() decoration level:
  8. __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  9. DECLSPEC_UUID(), MIDL_INTERFACE()
  10. */
  11. /* @@MIDL_FILE_HEADING( ) */
  12. #pragma warning( disable: 4049 ) /* more than 64k source lines */
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. /* verify that the <rpcsal.h> version is high enough to compile this file*/
  18. #ifndef __REQUIRED_RPCSAL_H_VERSION__
  19. #define __REQUIRED_RPCSAL_H_VERSION__ 100
  20. #endif
  21. #include "rpc.h"
  22. #include "rpcndr.h"
  23. #ifndef __RPCNDR_H_VERSION__
  24. #error this stub requires an updated version of <rpcndr.h>
  25. #endif // __RPCNDR_H_VERSION__
  26. #ifndef COM_NO_WINDOWS_H
  27. #include "windows.h"
  28. #include "ole2.h"
  29. #endif /*COM_NO_WINDOWS_H*/
  30. #ifndef __dxgi_h__
  31. #define __dxgi_h__
  32. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  33. #pragma once
  34. #endif
  35. /* Forward Declarations */
  36. #ifndef __IDXGIObject_FWD_DEFINED__
  37. #define __IDXGIObject_FWD_DEFINED__
  38. typedef interface IDXGIObject IDXGIObject;
  39. #endif /* __IDXGIObject_FWD_DEFINED__ */
  40. #ifndef __IDXGIDeviceSubObject_FWD_DEFINED__
  41. #define __IDXGIDeviceSubObject_FWD_DEFINED__
  42. typedef interface IDXGIDeviceSubObject IDXGIDeviceSubObject;
  43. #endif /* __IDXGIDeviceSubObject_FWD_DEFINED__ */
  44. #ifndef __IDXGIResource_FWD_DEFINED__
  45. #define __IDXGIResource_FWD_DEFINED__
  46. typedef interface IDXGIResource IDXGIResource;
  47. #endif /* __IDXGIResource_FWD_DEFINED__ */
  48. #ifndef __IDXGIKeyedMutex_FWD_DEFINED__
  49. #define __IDXGIKeyedMutex_FWD_DEFINED__
  50. typedef interface IDXGIKeyedMutex IDXGIKeyedMutex;
  51. #endif /* __IDXGIKeyedMutex_FWD_DEFINED__ */
  52. #ifndef __IDXGISurface_FWD_DEFINED__
  53. #define __IDXGISurface_FWD_DEFINED__
  54. typedef interface IDXGISurface IDXGISurface;
  55. #endif /* __IDXGISurface_FWD_DEFINED__ */
  56. #ifndef __IDXGISurface1_FWD_DEFINED__
  57. #define __IDXGISurface1_FWD_DEFINED__
  58. typedef interface IDXGISurface1 IDXGISurface1;
  59. #endif /* __IDXGISurface1_FWD_DEFINED__ */
  60. #ifndef __IDXGIAdapter_FWD_DEFINED__
  61. #define __IDXGIAdapter_FWD_DEFINED__
  62. typedef interface IDXGIAdapter IDXGIAdapter;
  63. #endif /* __IDXGIAdapter_FWD_DEFINED__ */
  64. #ifndef __IDXGIOutput_FWD_DEFINED__
  65. #define __IDXGIOutput_FWD_DEFINED__
  66. typedef interface IDXGIOutput IDXGIOutput;
  67. #endif /* __IDXGIOutput_FWD_DEFINED__ */
  68. #ifndef __IDXGISwapChain_FWD_DEFINED__
  69. #define __IDXGISwapChain_FWD_DEFINED__
  70. typedef interface IDXGISwapChain IDXGISwapChain;
  71. #endif /* __IDXGISwapChain_FWD_DEFINED__ */
  72. #ifndef __IDXGIFactory_FWD_DEFINED__
  73. #define __IDXGIFactory_FWD_DEFINED__
  74. typedef interface IDXGIFactory IDXGIFactory;
  75. #endif /* __IDXGIFactory_FWD_DEFINED__ */
  76. #ifndef __IDXGIDevice_FWD_DEFINED__
  77. #define __IDXGIDevice_FWD_DEFINED__
  78. typedef interface IDXGIDevice IDXGIDevice;
  79. #endif /* __IDXGIDevice_FWD_DEFINED__ */
  80. #ifndef __IDXGIFactory1_FWD_DEFINED__
  81. #define __IDXGIFactory1_FWD_DEFINED__
  82. typedef interface IDXGIFactory1 IDXGIFactory1;
  83. #endif /* __IDXGIFactory1_FWD_DEFINED__ */
  84. #ifndef __IDXGIAdapter1_FWD_DEFINED__
  85. #define __IDXGIAdapter1_FWD_DEFINED__
  86. typedef interface IDXGIAdapter1 IDXGIAdapter1;
  87. #endif /* __IDXGIAdapter1_FWD_DEFINED__ */
  88. #ifndef __IDXGIDevice1_FWD_DEFINED__
  89. #define __IDXGIDevice1_FWD_DEFINED__
  90. typedef interface IDXGIDevice1 IDXGIDevice1;
  91. #endif /* __IDXGIDevice1_FWD_DEFINED__ */
  92. /* header files for imported files */
  93. #include "oaidl.h"
  94. #include "ocidl.h"
  95. #include "dxgitype.h"
  96. #ifdef __cplusplus
  97. extern "C"{
  98. #endif
  99. /* interface __MIDL_itf_dxgi_0000_0000 */
  100. /* [local] */
  101. #define DXGI_CPU_ACCESS_NONE ( 0 )
  102. #define DXGI_CPU_ACCESS_DYNAMIC ( 1 )
  103. #define DXGI_CPU_ACCESS_READ_WRITE ( 2 )
  104. #define DXGI_CPU_ACCESS_SCRATCH ( 3 )
  105. #define DXGI_CPU_ACCESS_FIELD 15
  106. #define DXGI_USAGE_SHADER_INPUT ( 1L << (0 + 4) )
  107. #define DXGI_USAGE_RENDER_TARGET_OUTPUT ( 1L << (1 + 4) )
  108. #define DXGI_USAGE_BACK_BUFFER ( 1L << (2 + 4) )
  109. #define DXGI_USAGE_SHARED ( 1L << (3 + 4) )
  110. #define DXGI_USAGE_READ_ONLY ( 1L << (4 + 4) )
  111. #define DXGI_USAGE_DISCARD_ON_PRESENT ( 1L << (5 + 4) )
  112. #define DXGI_USAGE_UNORDERED_ACCESS ( 1L << (6 + 4) )
  113. typedef UINT DXGI_USAGE;
  114. typedef struct DXGI_FRAME_STATISTICS
  115. {
  116. UINT PresentCount;
  117. UINT PresentRefreshCount;
  118. UINT SyncRefreshCount;
  119. LARGE_INTEGER SyncQPCTime;
  120. LARGE_INTEGER SyncGPUTime;
  121. } DXGI_FRAME_STATISTICS;
  122. typedef struct DXGI_MAPPED_RECT
  123. {
  124. INT Pitch;
  125. BYTE *pBits;
  126. } DXGI_MAPPED_RECT;
  127. #ifdef __midl
  128. typedef struct _LUID
  129. {
  130. DWORD LowPart;
  131. LONG HighPart;
  132. } LUID;
  133. typedef struct _LUID *PLUID;
  134. #endif
  135. typedef struct DXGI_ADAPTER_DESC
  136. {
  137. WCHAR Description[ 128 ];
  138. UINT VendorId;
  139. UINT DeviceId;
  140. UINT SubSysId;
  141. UINT Revision;
  142. SIZE_T DedicatedVideoMemory;
  143. SIZE_T DedicatedSystemMemory;
  144. SIZE_T SharedSystemMemory;
  145. LUID AdapterLuid;
  146. } DXGI_ADAPTER_DESC;
  147. #if !defined(HMONITOR_DECLARED) && !defined(HMONITOR) && (WINVER < 0x0500)
  148. #define HMONITOR_DECLARED
  149. #if 0
  150. typedef HANDLE HMONITOR;
  151. #endif
  152. DECLARE_HANDLE(HMONITOR);
  153. #endif
  154. typedef struct DXGI_OUTPUT_DESC
  155. {
  156. WCHAR DeviceName[ 32 ];
  157. RECT DesktopCoordinates;
  158. BOOL AttachedToDesktop;
  159. DXGI_MODE_ROTATION Rotation;
  160. HMONITOR Monitor;
  161. } DXGI_OUTPUT_DESC;
  162. typedef struct DXGI_SHARED_RESOURCE
  163. {
  164. HANDLE Handle;
  165. } DXGI_SHARED_RESOURCE;
  166. #define DXGI_RESOURCE_PRIORITY_MINIMUM ( 0x28000000 )
  167. #define DXGI_RESOURCE_PRIORITY_LOW ( 0x50000000 )
  168. #define DXGI_RESOURCE_PRIORITY_NORMAL ( 0x78000000 )
  169. #define DXGI_RESOURCE_PRIORITY_HIGH ( 0xa0000000 )
  170. #define DXGI_RESOURCE_PRIORITY_MAXIMUM ( 0xc8000000 )
  171. typedef
  172. enum DXGI_RESIDENCY
  173. { DXGI_RESIDENCY_FULLY_RESIDENT = 1,
  174. DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY = 2,
  175. DXGI_RESIDENCY_EVICTED_TO_DISK = 3
  176. } DXGI_RESIDENCY;
  177. typedef struct DXGI_SURFACE_DESC
  178. {
  179. UINT Width;
  180. UINT Height;
  181. DXGI_FORMAT Format;
  182. DXGI_SAMPLE_DESC SampleDesc;
  183. } DXGI_SURFACE_DESC;
  184. typedef
  185. enum DXGI_SWAP_EFFECT
  186. { DXGI_SWAP_EFFECT_DISCARD = 0,
  187. DXGI_SWAP_EFFECT_SEQUENTIAL = 1
  188. } DXGI_SWAP_EFFECT;
  189. typedef
  190. enum DXGI_SWAP_CHAIN_FLAG
  191. { DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1,
  192. DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2,
  193. DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 4
  194. } DXGI_SWAP_CHAIN_FLAG;
  195. typedef struct DXGI_SWAP_CHAIN_DESC
  196. {
  197. DXGI_MODE_DESC BufferDesc;
  198. DXGI_SAMPLE_DESC SampleDesc;
  199. DXGI_USAGE BufferUsage;
  200. UINT BufferCount;
  201. HWND OutputWindow;
  202. BOOL Windowed;
  203. DXGI_SWAP_EFFECT SwapEffect;
  204. UINT Flags;
  205. } DXGI_SWAP_CHAIN_DESC;
  206. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0000_v0_0_c_ifspec;
  207. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0000_v0_0_s_ifspec;
  208. #ifndef __IDXGIObject_INTERFACE_DEFINED__
  209. #define __IDXGIObject_INTERFACE_DEFINED__
  210. /* interface IDXGIObject */
  211. /* [unique][local][uuid][object] */
  212. EXTERN_C const IID IID_IDXGIObject;
  213. #if defined(__cplusplus) && !defined(CINTERFACE)
  214. MIDL_INTERFACE("aec22fb8-76f3-4639-9be0-28eb43a67a2e")
  215. IDXGIObject : public IUnknown
  216. {
  217. public:
  218. virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
  219. /* [in] */ REFGUID Name,
  220. /* [in] */ UINT DataSize,
  221. /* [in] */ const void *pData) = 0;
  222. virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
  223. /* [in] */ REFGUID Name,
  224. /* [in] */ const IUnknown *pUnknown) = 0;
  225. virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
  226. /* [in] */ REFGUID Name,
  227. /* [out][in] */ UINT *pDataSize,
  228. /* [out] */ void *pData) = 0;
  229. virtual HRESULT STDMETHODCALLTYPE GetParent(
  230. /* [in] */ REFIID riid,
  231. /* [retval][out] */ void **ppParent) = 0;
  232. };
  233. #else /* C style interface */
  234. typedef struct IDXGIObjectVtbl
  235. {
  236. BEGIN_INTERFACE
  237. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  238. IDXGIObject * This,
  239. /* [in] */ REFIID riid,
  240. /* [annotation][iid_is][out] */
  241. __RPC__deref_out void **ppvObject);
  242. ULONG ( STDMETHODCALLTYPE *AddRef )(
  243. IDXGIObject * This);
  244. ULONG ( STDMETHODCALLTYPE *Release )(
  245. IDXGIObject * This);
  246. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  247. IDXGIObject * This,
  248. /* [in] */ REFGUID Name,
  249. /* [in] */ UINT DataSize,
  250. /* [in] */ const void *pData);
  251. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  252. IDXGIObject * This,
  253. /* [in] */ REFGUID Name,
  254. /* [in] */ const IUnknown *pUnknown);
  255. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  256. IDXGIObject * This,
  257. /* [in] */ REFGUID Name,
  258. /* [out][in] */ UINT *pDataSize,
  259. /* [out] */ void *pData);
  260. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  261. IDXGIObject * This,
  262. /* [in] */ REFIID riid,
  263. /* [retval][out] */ void **ppParent);
  264. END_INTERFACE
  265. } IDXGIObjectVtbl;
  266. interface IDXGIObject
  267. {
  268. CONST_VTBL struct IDXGIObjectVtbl *lpVtbl;
  269. };
  270. #ifdef COBJMACROS
  271. #define IDXGIObject_QueryInterface(This,riid,ppvObject) \
  272. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  273. #define IDXGIObject_AddRef(This) \
  274. ( (This)->lpVtbl -> AddRef(This) )
  275. #define IDXGIObject_Release(This) \
  276. ( (This)->lpVtbl -> Release(This) )
  277. #define IDXGIObject_SetPrivateData(This,Name,DataSize,pData) \
  278. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  279. #define IDXGIObject_SetPrivateDataInterface(This,Name,pUnknown) \
  280. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  281. #define IDXGIObject_GetPrivateData(This,Name,pDataSize,pData) \
  282. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  283. #define IDXGIObject_GetParent(This,riid,ppParent) \
  284. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  285. #endif /* COBJMACROS */
  286. #endif /* C style interface */
  287. #endif /* __IDXGIObject_INTERFACE_DEFINED__ */
  288. #ifndef __IDXGIDeviceSubObject_INTERFACE_DEFINED__
  289. #define __IDXGIDeviceSubObject_INTERFACE_DEFINED__
  290. /* interface IDXGIDeviceSubObject */
  291. /* [unique][local][uuid][object] */
  292. EXTERN_C const IID IID_IDXGIDeviceSubObject;
  293. #if defined(__cplusplus) && !defined(CINTERFACE)
  294. MIDL_INTERFACE("3d3e0379-f9de-4d58-bb6c-18d62992f1a6")
  295. IDXGIDeviceSubObject : public IDXGIObject
  296. {
  297. public:
  298. virtual HRESULT STDMETHODCALLTYPE GetDevice(
  299. /* [in] */ REFIID riid,
  300. /* [retval][out] */ void **ppDevice) = 0;
  301. };
  302. #else /* C style interface */
  303. typedef struct IDXGIDeviceSubObjectVtbl
  304. {
  305. BEGIN_INTERFACE
  306. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  307. IDXGIDeviceSubObject * This,
  308. /* [in] */ REFIID riid,
  309. /* [annotation][iid_is][out] */
  310. __RPC__deref_out void **ppvObject);
  311. ULONG ( STDMETHODCALLTYPE *AddRef )(
  312. IDXGIDeviceSubObject * This);
  313. ULONG ( STDMETHODCALLTYPE *Release )(
  314. IDXGIDeviceSubObject * This);
  315. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  316. IDXGIDeviceSubObject * This,
  317. /* [in] */ REFGUID Name,
  318. /* [in] */ UINT DataSize,
  319. /* [in] */ const void *pData);
  320. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  321. IDXGIDeviceSubObject * This,
  322. /* [in] */ REFGUID Name,
  323. /* [in] */ const IUnknown *pUnknown);
  324. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  325. IDXGIDeviceSubObject * This,
  326. /* [in] */ REFGUID Name,
  327. /* [out][in] */ UINT *pDataSize,
  328. /* [out] */ void *pData);
  329. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  330. IDXGIDeviceSubObject * This,
  331. /* [in] */ REFIID riid,
  332. /* [retval][out] */ void **ppParent);
  333. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  334. IDXGIDeviceSubObject * This,
  335. /* [in] */ REFIID riid,
  336. /* [retval][out] */ void **ppDevice);
  337. END_INTERFACE
  338. } IDXGIDeviceSubObjectVtbl;
  339. interface IDXGIDeviceSubObject
  340. {
  341. CONST_VTBL struct IDXGIDeviceSubObjectVtbl *lpVtbl;
  342. };
  343. #ifdef COBJMACROS
  344. #define IDXGIDeviceSubObject_QueryInterface(This,riid,ppvObject) \
  345. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  346. #define IDXGIDeviceSubObject_AddRef(This) \
  347. ( (This)->lpVtbl -> AddRef(This) )
  348. #define IDXGIDeviceSubObject_Release(This) \
  349. ( (This)->lpVtbl -> Release(This) )
  350. #define IDXGIDeviceSubObject_SetPrivateData(This,Name,DataSize,pData) \
  351. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  352. #define IDXGIDeviceSubObject_SetPrivateDataInterface(This,Name,pUnknown) \
  353. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  354. #define IDXGIDeviceSubObject_GetPrivateData(This,Name,pDataSize,pData) \
  355. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  356. #define IDXGIDeviceSubObject_GetParent(This,riid,ppParent) \
  357. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  358. #define IDXGIDeviceSubObject_GetDevice(This,riid,ppDevice) \
  359. ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
  360. #endif /* COBJMACROS */
  361. #endif /* C style interface */
  362. #endif /* __IDXGIDeviceSubObject_INTERFACE_DEFINED__ */
  363. #ifndef __IDXGIResource_INTERFACE_DEFINED__
  364. #define __IDXGIResource_INTERFACE_DEFINED__
  365. /* interface IDXGIResource */
  366. /* [unique][local][uuid][object] */
  367. EXTERN_C const IID IID_IDXGIResource;
  368. #if defined(__cplusplus) && !defined(CINTERFACE)
  369. MIDL_INTERFACE("035f3ab4-482e-4e50-b41f-8a7f8bd8960b")
  370. IDXGIResource : public IDXGIDeviceSubObject
  371. {
  372. public:
  373. virtual HRESULT STDMETHODCALLTYPE GetSharedHandle(
  374. /* [out] */ HANDLE *pSharedHandle) = 0;
  375. virtual HRESULT STDMETHODCALLTYPE GetUsage(
  376. /* [out] */ DXGI_USAGE *pUsage) = 0;
  377. virtual HRESULT STDMETHODCALLTYPE SetEvictionPriority(
  378. /* [in] */ UINT EvictionPriority) = 0;
  379. virtual HRESULT STDMETHODCALLTYPE GetEvictionPriority(
  380. /* [retval][out] */ UINT *pEvictionPriority) = 0;
  381. };
  382. #else /* C style interface */
  383. typedef struct IDXGIResourceVtbl
  384. {
  385. BEGIN_INTERFACE
  386. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  387. IDXGIResource * This,
  388. /* [in] */ REFIID riid,
  389. /* [annotation][iid_is][out] */
  390. __RPC__deref_out void **ppvObject);
  391. ULONG ( STDMETHODCALLTYPE *AddRef )(
  392. IDXGIResource * This);
  393. ULONG ( STDMETHODCALLTYPE *Release )(
  394. IDXGIResource * This);
  395. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  396. IDXGIResource * This,
  397. /* [in] */ REFGUID Name,
  398. /* [in] */ UINT DataSize,
  399. /* [in] */ const void *pData);
  400. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  401. IDXGIResource * This,
  402. /* [in] */ REFGUID Name,
  403. /* [in] */ const IUnknown *pUnknown);
  404. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  405. IDXGIResource * This,
  406. /* [in] */ REFGUID Name,
  407. /* [out][in] */ UINT *pDataSize,
  408. /* [out] */ void *pData);
  409. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  410. IDXGIResource * This,
  411. /* [in] */ REFIID riid,
  412. /* [retval][out] */ void **ppParent);
  413. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  414. IDXGIResource * This,
  415. /* [in] */ REFIID riid,
  416. /* [retval][out] */ void **ppDevice);
  417. HRESULT ( STDMETHODCALLTYPE *GetSharedHandle )(
  418. IDXGIResource * This,
  419. /* [out] */ HANDLE *pSharedHandle);
  420. HRESULT ( STDMETHODCALLTYPE *GetUsage )(
  421. IDXGIResource * This,
  422. /* [out] */ DXGI_USAGE *pUsage);
  423. HRESULT ( STDMETHODCALLTYPE *SetEvictionPriority )(
  424. IDXGIResource * This,
  425. /* [in] */ UINT EvictionPriority);
  426. HRESULT ( STDMETHODCALLTYPE *GetEvictionPriority )(
  427. IDXGIResource * This,
  428. /* [retval][out] */ UINT *pEvictionPriority);
  429. END_INTERFACE
  430. } IDXGIResourceVtbl;
  431. interface IDXGIResource
  432. {
  433. CONST_VTBL struct IDXGIResourceVtbl *lpVtbl;
  434. };
  435. #ifdef COBJMACROS
  436. #define IDXGIResource_QueryInterface(This,riid,ppvObject) \
  437. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  438. #define IDXGIResource_AddRef(This) \
  439. ( (This)->lpVtbl -> AddRef(This) )
  440. #define IDXGIResource_Release(This) \
  441. ( (This)->lpVtbl -> Release(This) )
  442. #define IDXGIResource_SetPrivateData(This,Name,DataSize,pData) \
  443. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  444. #define IDXGIResource_SetPrivateDataInterface(This,Name,pUnknown) \
  445. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  446. #define IDXGIResource_GetPrivateData(This,Name,pDataSize,pData) \
  447. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  448. #define IDXGIResource_GetParent(This,riid,ppParent) \
  449. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  450. #define IDXGIResource_GetDevice(This,riid,ppDevice) \
  451. ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
  452. #define IDXGIResource_GetSharedHandle(This,pSharedHandle) \
  453. ( (This)->lpVtbl -> GetSharedHandle(This,pSharedHandle) )
  454. #define IDXGIResource_GetUsage(This,pUsage) \
  455. ( (This)->lpVtbl -> GetUsage(This,pUsage) )
  456. #define IDXGIResource_SetEvictionPriority(This,EvictionPriority) \
  457. ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
  458. #define IDXGIResource_GetEvictionPriority(This,pEvictionPriority) \
  459. ( (This)->lpVtbl -> GetEvictionPriority(This,pEvictionPriority) )
  460. #endif /* COBJMACROS */
  461. #endif /* C style interface */
  462. #endif /* __IDXGIResource_INTERFACE_DEFINED__ */
  463. #ifndef __IDXGIKeyedMutex_INTERFACE_DEFINED__
  464. #define __IDXGIKeyedMutex_INTERFACE_DEFINED__
  465. /* interface IDXGIKeyedMutex */
  466. /* [unique][local][uuid][object] */
  467. EXTERN_C const IID IID_IDXGIKeyedMutex;
  468. #if defined(__cplusplus) && !defined(CINTERFACE)
  469. MIDL_INTERFACE("9d8e1289-d7b3-465f-8126-250e349af85d")
  470. IDXGIKeyedMutex : public IDXGIDeviceSubObject
  471. {
  472. public:
  473. virtual HRESULT STDMETHODCALLTYPE AcquireSync(
  474. /* [in] */ UINT64 Key,
  475. /* [in] */ DWORD dwMilliseconds) = 0;
  476. virtual HRESULT STDMETHODCALLTYPE ReleaseSync(
  477. /* [in] */ UINT64 Key) = 0;
  478. };
  479. #else /* C style interface */
  480. typedef struct IDXGIKeyedMutexVtbl
  481. {
  482. BEGIN_INTERFACE
  483. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  484. IDXGIKeyedMutex * This,
  485. /* [in] */ REFIID riid,
  486. /* [annotation][iid_is][out] */
  487. __RPC__deref_out void **ppvObject);
  488. ULONG ( STDMETHODCALLTYPE *AddRef )(
  489. IDXGIKeyedMutex * This);
  490. ULONG ( STDMETHODCALLTYPE *Release )(
  491. IDXGIKeyedMutex * This);
  492. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  493. IDXGIKeyedMutex * This,
  494. /* [in] */ REFGUID Name,
  495. /* [in] */ UINT DataSize,
  496. /* [in] */ const void *pData);
  497. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  498. IDXGIKeyedMutex * This,
  499. /* [in] */ REFGUID Name,
  500. /* [in] */ const IUnknown *pUnknown);
  501. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  502. IDXGIKeyedMutex * This,
  503. /* [in] */ REFGUID Name,
  504. /* [out][in] */ UINT *pDataSize,
  505. /* [out] */ void *pData);
  506. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  507. IDXGIKeyedMutex * This,
  508. /* [in] */ REFIID riid,
  509. /* [retval][out] */ void **ppParent);
  510. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  511. IDXGIKeyedMutex * This,
  512. /* [in] */ REFIID riid,
  513. /* [retval][out] */ void **ppDevice);
  514. HRESULT ( STDMETHODCALLTYPE *AcquireSync )(
  515. IDXGIKeyedMutex * This,
  516. /* [in] */ UINT64 Key,
  517. /* [in] */ DWORD dwMilliseconds);
  518. HRESULT ( STDMETHODCALLTYPE *ReleaseSync )(
  519. IDXGIKeyedMutex * This,
  520. /* [in] */ UINT64 Key);
  521. END_INTERFACE
  522. } IDXGIKeyedMutexVtbl;
  523. interface IDXGIKeyedMutex
  524. {
  525. CONST_VTBL struct IDXGIKeyedMutexVtbl *lpVtbl;
  526. };
  527. #ifdef COBJMACROS
  528. #define IDXGIKeyedMutex_QueryInterface(This,riid,ppvObject) \
  529. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  530. #define IDXGIKeyedMutex_AddRef(This) \
  531. ( (This)->lpVtbl -> AddRef(This) )
  532. #define IDXGIKeyedMutex_Release(This) \
  533. ( (This)->lpVtbl -> Release(This) )
  534. #define IDXGIKeyedMutex_SetPrivateData(This,Name,DataSize,pData) \
  535. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  536. #define IDXGIKeyedMutex_SetPrivateDataInterface(This,Name,pUnknown) \
  537. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  538. #define IDXGIKeyedMutex_GetPrivateData(This,Name,pDataSize,pData) \
  539. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  540. #define IDXGIKeyedMutex_GetParent(This,riid,ppParent) \
  541. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  542. #define IDXGIKeyedMutex_GetDevice(This,riid,ppDevice) \
  543. ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
  544. #define IDXGIKeyedMutex_AcquireSync(This,Key,dwMilliseconds) \
  545. ( (This)->lpVtbl -> AcquireSync(This,Key,dwMilliseconds) )
  546. #define IDXGIKeyedMutex_ReleaseSync(This,Key) \
  547. ( (This)->lpVtbl -> ReleaseSync(This,Key) )
  548. #endif /* COBJMACROS */
  549. #endif /* C style interface */
  550. #endif /* __IDXGIKeyedMutex_INTERFACE_DEFINED__ */
  551. /* interface __MIDL_itf_dxgi_0000_0004 */
  552. /* [local] */
  553. #define DXGI_MAP_READ ( 1UL )
  554. #define DXGI_MAP_WRITE ( 2UL )
  555. #define DXGI_MAP_DISCARD ( 4UL )
  556. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0004_v0_0_c_ifspec;
  557. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0004_v0_0_s_ifspec;
  558. #ifndef __IDXGISurface_INTERFACE_DEFINED__
  559. #define __IDXGISurface_INTERFACE_DEFINED__
  560. /* interface IDXGISurface */
  561. /* [unique][local][uuid][object] */
  562. EXTERN_C const IID IID_IDXGISurface;
  563. #if defined(__cplusplus) && !defined(CINTERFACE)
  564. MIDL_INTERFACE("cafcb56c-6ac3-4889-bf47-9e23bbd260ec")
  565. IDXGISurface : public IDXGIDeviceSubObject
  566. {
  567. public:
  568. virtual HRESULT STDMETHODCALLTYPE GetDesc(
  569. /* [out] */ DXGI_SURFACE_DESC *pDesc) = 0;
  570. virtual HRESULT STDMETHODCALLTYPE Map(
  571. /* [out] */ DXGI_MAPPED_RECT *pLockedRect,
  572. /* [in] */ UINT MapFlags) = 0;
  573. virtual HRESULT STDMETHODCALLTYPE Unmap( void) = 0;
  574. };
  575. #else /* C style interface */
  576. typedef struct IDXGISurfaceVtbl
  577. {
  578. BEGIN_INTERFACE
  579. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  580. IDXGISurface * This,
  581. /* [in] */ REFIID riid,
  582. /* [annotation][iid_is][out] */
  583. __RPC__deref_out void **ppvObject);
  584. ULONG ( STDMETHODCALLTYPE *AddRef )(
  585. IDXGISurface * This);
  586. ULONG ( STDMETHODCALLTYPE *Release )(
  587. IDXGISurface * This);
  588. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  589. IDXGISurface * This,
  590. /* [in] */ REFGUID Name,
  591. /* [in] */ UINT DataSize,
  592. /* [in] */ const void *pData);
  593. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  594. IDXGISurface * This,
  595. /* [in] */ REFGUID Name,
  596. /* [in] */ const IUnknown *pUnknown);
  597. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  598. IDXGISurface * This,
  599. /* [in] */ REFGUID Name,
  600. /* [out][in] */ UINT *pDataSize,
  601. /* [out] */ void *pData);
  602. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  603. IDXGISurface * This,
  604. /* [in] */ REFIID riid,
  605. /* [retval][out] */ void **ppParent);
  606. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  607. IDXGISurface * This,
  608. /* [in] */ REFIID riid,
  609. /* [retval][out] */ void **ppDevice);
  610. HRESULT ( STDMETHODCALLTYPE *GetDesc )(
  611. IDXGISurface * This,
  612. /* [out] */ DXGI_SURFACE_DESC *pDesc);
  613. HRESULT ( STDMETHODCALLTYPE *Map )(
  614. IDXGISurface * This,
  615. /* [out] */ DXGI_MAPPED_RECT *pLockedRect,
  616. /* [in] */ UINT MapFlags);
  617. HRESULT ( STDMETHODCALLTYPE *Unmap )(
  618. IDXGISurface * This);
  619. END_INTERFACE
  620. } IDXGISurfaceVtbl;
  621. interface IDXGISurface
  622. {
  623. CONST_VTBL struct IDXGISurfaceVtbl *lpVtbl;
  624. };
  625. #ifdef COBJMACROS
  626. #define IDXGISurface_QueryInterface(This,riid,ppvObject) \
  627. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  628. #define IDXGISurface_AddRef(This) \
  629. ( (This)->lpVtbl -> AddRef(This) )
  630. #define IDXGISurface_Release(This) \
  631. ( (This)->lpVtbl -> Release(This) )
  632. #define IDXGISurface_SetPrivateData(This,Name,DataSize,pData) \
  633. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  634. #define IDXGISurface_SetPrivateDataInterface(This,Name,pUnknown) \
  635. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  636. #define IDXGISurface_GetPrivateData(This,Name,pDataSize,pData) \
  637. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  638. #define IDXGISurface_GetParent(This,riid,ppParent) \
  639. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  640. #define IDXGISurface_GetDevice(This,riid,ppDevice) \
  641. ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
  642. #define IDXGISurface_GetDesc(This,pDesc) \
  643. ( (This)->lpVtbl -> GetDesc(This,pDesc) )
  644. #define IDXGISurface_Map(This,pLockedRect,MapFlags) \
  645. ( (This)->lpVtbl -> Map(This,pLockedRect,MapFlags) )
  646. #define IDXGISurface_Unmap(This) \
  647. ( (This)->lpVtbl -> Unmap(This) )
  648. #endif /* COBJMACROS */
  649. #endif /* C style interface */
  650. #endif /* __IDXGISurface_INTERFACE_DEFINED__ */
  651. #ifndef __IDXGISurface1_INTERFACE_DEFINED__
  652. #define __IDXGISurface1_INTERFACE_DEFINED__
  653. /* interface IDXGISurface1 */
  654. /* [unique][local][uuid][object] */
  655. EXTERN_C const IID IID_IDXGISurface1;
  656. #if defined(__cplusplus) && !defined(CINTERFACE)
  657. MIDL_INTERFACE("4AE63092-6327-4c1b-80AE-BFE12EA32B86")
  658. IDXGISurface1 : public IDXGISurface
  659. {
  660. public:
  661. virtual HRESULT STDMETHODCALLTYPE GetDC(
  662. /* [in] */ BOOL Discard,
  663. /* [out] */ HDC *phdc) = 0;
  664. virtual HRESULT STDMETHODCALLTYPE ReleaseDC(
  665. /* [in] */ RECT *pDirtyRect) = 0;
  666. };
  667. #else /* C style interface */
  668. typedef struct IDXGISurface1Vtbl
  669. {
  670. BEGIN_INTERFACE
  671. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  672. IDXGISurface1 * This,
  673. /* [in] */ REFIID riid,
  674. /* [annotation][iid_is][out] */
  675. __RPC__deref_out void **ppvObject);
  676. ULONG ( STDMETHODCALLTYPE *AddRef )(
  677. IDXGISurface1 * This);
  678. ULONG ( STDMETHODCALLTYPE *Release )(
  679. IDXGISurface1 * This);
  680. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  681. IDXGISurface1 * This,
  682. /* [in] */ REFGUID Name,
  683. /* [in] */ UINT DataSize,
  684. /* [in] */ const void *pData);
  685. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  686. IDXGISurface1 * This,
  687. /* [in] */ REFGUID Name,
  688. /* [in] */ const IUnknown *pUnknown);
  689. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  690. IDXGISurface1 * This,
  691. /* [in] */ REFGUID Name,
  692. /* [out][in] */ UINT *pDataSize,
  693. /* [out] */ void *pData);
  694. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  695. IDXGISurface1 * This,
  696. /* [in] */ REFIID riid,
  697. /* [retval][out] */ void **ppParent);
  698. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  699. IDXGISurface1 * This,
  700. /* [in] */ REFIID riid,
  701. /* [retval][out] */ void **ppDevice);
  702. HRESULT ( STDMETHODCALLTYPE *GetDesc )(
  703. IDXGISurface1 * This,
  704. /* [out] */ DXGI_SURFACE_DESC *pDesc);
  705. HRESULT ( STDMETHODCALLTYPE *Map )(
  706. IDXGISurface1 * This,
  707. /* [out] */ DXGI_MAPPED_RECT *pLockedRect,
  708. /* [in] */ UINT MapFlags);
  709. HRESULT ( STDMETHODCALLTYPE *Unmap )(
  710. IDXGISurface1 * This);
  711. HRESULT ( STDMETHODCALLTYPE *GetDC )(
  712. IDXGISurface1 * This,
  713. /* [in] */ BOOL Discard,
  714. /* [out] */ HDC *phdc);
  715. HRESULT ( STDMETHODCALLTYPE *ReleaseDC )(
  716. IDXGISurface1 * This,
  717. /* [in] */ RECT *pDirtyRect);
  718. END_INTERFACE
  719. } IDXGISurface1Vtbl;
  720. interface IDXGISurface1
  721. {
  722. CONST_VTBL struct IDXGISurface1Vtbl *lpVtbl;
  723. };
  724. #ifdef COBJMACROS
  725. #define IDXGISurface1_QueryInterface(This,riid,ppvObject) \
  726. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  727. #define IDXGISurface1_AddRef(This) \
  728. ( (This)->lpVtbl -> AddRef(This) )
  729. #define IDXGISurface1_Release(This) \
  730. ( (This)->lpVtbl -> Release(This) )
  731. #define IDXGISurface1_SetPrivateData(This,Name,DataSize,pData) \
  732. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  733. #define IDXGISurface1_SetPrivateDataInterface(This,Name,pUnknown) \
  734. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  735. #define IDXGISurface1_GetPrivateData(This,Name,pDataSize,pData) \
  736. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  737. #define IDXGISurface1_GetParent(This,riid,ppParent) \
  738. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  739. #define IDXGISurface1_GetDevice(This,riid,ppDevice) \
  740. ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
  741. #define IDXGISurface1_GetDesc(This,pDesc) \
  742. ( (This)->lpVtbl -> GetDesc(This,pDesc) )
  743. #define IDXGISurface1_Map(This,pLockedRect,MapFlags) \
  744. ( (This)->lpVtbl -> Map(This,pLockedRect,MapFlags) )
  745. #define IDXGISurface1_Unmap(This) \
  746. ( (This)->lpVtbl -> Unmap(This) )
  747. #define IDXGISurface1_GetDC(This,Discard,phdc) \
  748. ( (This)->lpVtbl -> GetDC(This,Discard,phdc) )
  749. #define IDXGISurface1_ReleaseDC(This,pDirtyRect) \
  750. ( (This)->lpVtbl -> ReleaseDC(This,pDirtyRect) )
  751. #endif /* COBJMACROS */
  752. #endif /* C style interface */
  753. #endif /* __IDXGISurface1_INTERFACE_DEFINED__ */
  754. /* interface __MIDL_itf_dxgi_0000_0006 */
  755. /* [local] */
  756. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0006_v0_0_c_ifspec;
  757. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0006_v0_0_s_ifspec;
  758. #ifndef __IDXGIAdapter_INTERFACE_DEFINED__
  759. #define __IDXGIAdapter_INTERFACE_DEFINED__
  760. /* interface IDXGIAdapter */
  761. /* [unique][local][uuid][object] */
  762. EXTERN_C const IID IID_IDXGIAdapter;
  763. #if defined(__cplusplus) && !defined(CINTERFACE)
  764. MIDL_INTERFACE("2411e7e1-12ac-4ccf-bd14-9798e8534dc0")
  765. IDXGIAdapter : public IDXGIObject
  766. {
  767. public:
  768. virtual HRESULT STDMETHODCALLTYPE EnumOutputs(
  769. /* [in] */ UINT Output,
  770. /* [out][in] */ IDXGIOutput **ppOutput) = 0;
  771. virtual HRESULT STDMETHODCALLTYPE GetDesc(
  772. /* [out] */ DXGI_ADAPTER_DESC *pDesc) = 0;
  773. virtual HRESULT STDMETHODCALLTYPE CheckInterfaceSupport(
  774. /* [in] */ REFGUID InterfaceName,
  775. /* [out] */ LARGE_INTEGER *pUMDVersion) = 0;
  776. };
  777. #else /* C style interface */
  778. typedef struct IDXGIAdapterVtbl
  779. {
  780. BEGIN_INTERFACE
  781. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  782. IDXGIAdapter * This,
  783. /* [in] */ REFIID riid,
  784. /* [annotation][iid_is][out] */
  785. __RPC__deref_out void **ppvObject);
  786. ULONG ( STDMETHODCALLTYPE *AddRef )(
  787. IDXGIAdapter * This);
  788. ULONG ( STDMETHODCALLTYPE *Release )(
  789. IDXGIAdapter * This);
  790. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  791. IDXGIAdapter * This,
  792. /* [in] */ REFGUID Name,
  793. /* [in] */ UINT DataSize,
  794. /* [in] */ const void *pData);
  795. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  796. IDXGIAdapter * This,
  797. /* [in] */ REFGUID Name,
  798. /* [in] */ const IUnknown *pUnknown);
  799. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  800. IDXGIAdapter * This,
  801. /* [in] */ REFGUID Name,
  802. /* [out][in] */ UINT *pDataSize,
  803. /* [out] */ void *pData);
  804. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  805. IDXGIAdapter * This,
  806. /* [in] */ REFIID riid,
  807. /* [retval][out] */ void **ppParent);
  808. HRESULT ( STDMETHODCALLTYPE *EnumOutputs )(
  809. IDXGIAdapter * This,
  810. /* [in] */ UINT Output,
  811. /* [out][in] */ IDXGIOutput **ppOutput);
  812. HRESULT ( STDMETHODCALLTYPE *GetDesc )(
  813. IDXGIAdapter * This,
  814. /* [out] */ DXGI_ADAPTER_DESC *pDesc);
  815. HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )(
  816. IDXGIAdapter * This,
  817. /* [in] */ REFGUID InterfaceName,
  818. /* [out] */ LARGE_INTEGER *pUMDVersion);
  819. END_INTERFACE
  820. } IDXGIAdapterVtbl;
  821. interface IDXGIAdapter
  822. {
  823. CONST_VTBL struct IDXGIAdapterVtbl *lpVtbl;
  824. };
  825. #ifdef COBJMACROS
  826. #define IDXGIAdapter_QueryInterface(This,riid,ppvObject) \
  827. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  828. #define IDXGIAdapter_AddRef(This) \
  829. ( (This)->lpVtbl -> AddRef(This) )
  830. #define IDXGIAdapter_Release(This) \
  831. ( (This)->lpVtbl -> Release(This) )
  832. #define IDXGIAdapter_SetPrivateData(This,Name,DataSize,pData) \
  833. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  834. #define IDXGIAdapter_SetPrivateDataInterface(This,Name,pUnknown) \
  835. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  836. #define IDXGIAdapter_GetPrivateData(This,Name,pDataSize,pData) \
  837. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  838. #define IDXGIAdapter_GetParent(This,riid,ppParent) \
  839. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  840. #define IDXGIAdapter_EnumOutputs(This,Output,ppOutput) \
  841. ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) )
  842. #define IDXGIAdapter_GetDesc(This,pDesc) \
  843. ( (This)->lpVtbl -> GetDesc(This,pDesc) )
  844. #define IDXGIAdapter_CheckInterfaceSupport(This,InterfaceName,pUMDVersion) \
  845. ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) )
  846. #endif /* COBJMACROS */
  847. #endif /* C style interface */
  848. #endif /* __IDXGIAdapter_INTERFACE_DEFINED__ */
  849. /* interface __MIDL_itf_dxgi_0000_0007 */
  850. /* [local] */
  851. #define DXGI_ENUM_MODES_INTERLACED ( 1UL )
  852. #define DXGI_ENUM_MODES_SCALING ( 2UL )
  853. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0007_v0_0_c_ifspec;
  854. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0007_v0_0_s_ifspec;
  855. #ifndef __IDXGIOutput_INTERFACE_DEFINED__
  856. #define __IDXGIOutput_INTERFACE_DEFINED__
  857. /* interface IDXGIOutput */
  858. /* [unique][local][uuid][object] */
  859. EXTERN_C const IID IID_IDXGIOutput;
  860. #if defined(__cplusplus) && !defined(CINTERFACE)
  861. MIDL_INTERFACE("ae02eedb-c735-4690-8d52-5a8dc20213aa")
  862. IDXGIOutput : public IDXGIObject
  863. {
  864. public:
  865. virtual HRESULT STDMETHODCALLTYPE GetDesc(
  866. /* [out] */ DXGI_OUTPUT_DESC *pDesc) = 0;
  867. virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList(
  868. /* [in] */ DXGI_FORMAT EnumFormat,
  869. /* [in] */ UINT Flags,
  870. /* [out][in] */ UINT *pNumModes,
  871. /* [out] */ DXGI_MODE_DESC *pDesc) = 0;
  872. virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode(
  873. /* [in] */ const DXGI_MODE_DESC *pModeToMatch,
  874. /* [out] */ DXGI_MODE_DESC *pClosestMatch,
  875. /* [in] */ IUnknown *pConcernedDevice) = 0;
  876. virtual HRESULT STDMETHODCALLTYPE WaitForVBlank( void) = 0;
  877. virtual HRESULT STDMETHODCALLTYPE TakeOwnership(
  878. /* [in] */ IUnknown *pDevice,
  879. BOOL Exclusive) = 0;
  880. virtual void STDMETHODCALLTYPE ReleaseOwnership( void) = 0;
  881. virtual HRESULT STDMETHODCALLTYPE GetGammaControlCapabilities(
  882. /* [out] */ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps) = 0;
  883. virtual HRESULT STDMETHODCALLTYPE SetGammaControl(
  884. /* [in] */ const DXGI_GAMMA_CONTROL *pArray) = 0;
  885. virtual HRESULT STDMETHODCALLTYPE GetGammaControl(
  886. /* [out] */ DXGI_GAMMA_CONTROL *pArray) = 0;
  887. virtual HRESULT STDMETHODCALLTYPE SetDisplaySurface(
  888. /* [in] */ IDXGISurface *pScanoutSurface) = 0;
  889. virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData(
  890. /* [in] */ IDXGISurface *pDestination) = 0;
  891. virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics(
  892. /* [out] */ DXGI_FRAME_STATISTICS *pStats) = 0;
  893. };
  894. #else /* C style interface */
  895. typedef struct IDXGIOutputVtbl
  896. {
  897. BEGIN_INTERFACE
  898. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  899. IDXGIOutput * This,
  900. /* [in] */ REFIID riid,
  901. /* [annotation][iid_is][out] */
  902. __RPC__deref_out void **ppvObject);
  903. ULONG ( STDMETHODCALLTYPE *AddRef )(
  904. IDXGIOutput * This);
  905. ULONG ( STDMETHODCALLTYPE *Release )(
  906. IDXGIOutput * This);
  907. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  908. IDXGIOutput * This,
  909. /* [in] */ REFGUID Name,
  910. /* [in] */ UINT DataSize,
  911. /* [in] */ const void *pData);
  912. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  913. IDXGIOutput * This,
  914. /* [in] */ REFGUID Name,
  915. /* [in] */ const IUnknown *pUnknown);
  916. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  917. IDXGIOutput * This,
  918. /* [in] */ REFGUID Name,
  919. /* [out][in] */ UINT *pDataSize,
  920. /* [out] */ void *pData);
  921. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  922. IDXGIOutput * This,
  923. /* [in] */ REFIID riid,
  924. /* [retval][out] */ void **ppParent);
  925. HRESULT ( STDMETHODCALLTYPE *GetDesc )(
  926. IDXGIOutput * This,
  927. /* [out] */ DXGI_OUTPUT_DESC *pDesc);
  928. HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )(
  929. IDXGIOutput * This,
  930. /* [in] */ DXGI_FORMAT EnumFormat,
  931. /* [in] */ UINT Flags,
  932. /* [out][in] */ UINT *pNumModes,
  933. /* [out] */ DXGI_MODE_DESC *pDesc);
  934. HRESULT ( STDMETHODCALLTYPE *FindClosestMatchingMode )(
  935. IDXGIOutput * This,
  936. /* [in] */ const DXGI_MODE_DESC *pModeToMatch,
  937. /* [out] */ DXGI_MODE_DESC *pClosestMatch,
  938. /* [in] */ IUnknown *pConcernedDevice);
  939. HRESULT ( STDMETHODCALLTYPE *WaitForVBlank )(
  940. IDXGIOutput * This);
  941. HRESULT ( STDMETHODCALLTYPE *TakeOwnership )(
  942. IDXGIOutput * This,
  943. /* [in] */ IUnknown *pDevice,
  944. BOOL Exclusive);
  945. void ( STDMETHODCALLTYPE *ReleaseOwnership )(
  946. IDXGIOutput * This);
  947. HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )(
  948. IDXGIOutput * This,
  949. /* [out] */ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps);
  950. HRESULT ( STDMETHODCALLTYPE *SetGammaControl )(
  951. IDXGIOutput * This,
  952. /* [in] */ const DXGI_GAMMA_CONTROL *pArray);
  953. HRESULT ( STDMETHODCALLTYPE *GetGammaControl )(
  954. IDXGIOutput * This,
  955. /* [out] */ DXGI_GAMMA_CONTROL *pArray);
  956. HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )(
  957. IDXGIOutput * This,
  958. /* [in] */ IDXGISurface *pScanoutSurface);
  959. HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )(
  960. IDXGIOutput * This,
  961. /* [in] */ IDXGISurface *pDestination);
  962. HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )(
  963. IDXGIOutput * This,
  964. /* [out] */ DXGI_FRAME_STATISTICS *pStats);
  965. END_INTERFACE
  966. } IDXGIOutputVtbl;
  967. interface IDXGIOutput
  968. {
  969. CONST_VTBL struct IDXGIOutputVtbl *lpVtbl;
  970. };
  971. #ifdef COBJMACROS
  972. #define IDXGIOutput_QueryInterface(This,riid,ppvObject) \
  973. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  974. #define IDXGIOutput_AddRef(This) \
  975. ( (This)->lpVtbl -> AddRef(This) )
  976. #define IDXGIOutput_Release(This) \
  977. ( (This)->lpVtbl -> Release(This) )
  978. #define IDXGIOutput_SetPrivateData(This,Name,DataSize,pData) \
  979. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  980. #define IDXGIOutput_SetPrivateDataInterface(This,Name,pUnknown) \
  981. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  982. #define IDXGIOutput_GetPrivateData(This,Name,pDataSize,pData) \
  983. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  984. #define IDXGIOutput_GetParent(This,riid,ppParent) \
  985. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  986. #define IDXGIOutput_GetDesc(This,pDesc) \
  987. ( (This)->lpVtbl -> GetDesc(This,pDesc) )
  988. #define IDXGIOutput_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) \
  989. ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) )
  990. #define IDXGIOutput_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) \
  991. ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) )
  992. #define IDXGIOutput_WaitForVBlank(This) \
  993. ( (This)->lpVtbl -> WaitForVBlank(This) )
  994. #define IDXGIOutput_TakeOwnership(This,pDevice,Exclusive) \
  995. ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) )
  996. #define IDXGIOutput_ReleaseOwnership(This) \
  997. ( (This)->lpVtbl -> ReleaseOwnership(This) )
  998. #define IDXGIOutput_GetGammaControlCapabilities(This,pGammaCaps) \
  999. ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) )
  1000. #define IDXGIOutput_SetGammaControl(This,pArray) \
  1001. ( (This)->lpVtbl -> SetGammaControl(This,pArray) )
  1002. #define IDXGIOutput_GetGammaControl(This,pArray) \
  1003. ( (This)->lpVtbl -> GetGammaControl(This,pArray) )
  1004. #define IDXGIOutput_SetDisplaySurface(This,pScanoutSurface) \
  1005. ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) )
  1006. #define IDXGIOutput_GetDisplaySurfaceData(This,pDestination) \
  1007. ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) )
  1008. #define IDXGIOutput_GetFrameStatistics(This,pStats) \
  1009. ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) )
  1010. #endif /* COBJMACROS */
  1011. #endif /* C style interface */
  1012. #endif /* __IDXGIOutput_INTERFACE_DEFINED__ */
  1013. /* interface __MIDL_itf_dxgi_0000_0008 */
  1014. /* [local] */
  1015. #define DXGI_MAX_SWAP_CHAIN_BUFFERS ( 16 )
  1016. #define DXGI_PRESENT_TEST 0x00000001UL
  1017. #define DXGI_PRESENT_DO_NOT_SEQUENCE 0x00000002UL
  1018. #define DXGI_PRESENT_RESTART 0x00000004UL
  1019. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_c_ifspec;
  1020. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_s_ifspec;
  1021. #ifndef __IDXGISwapChain_INTERFACE_DEFINED__
  1022. #define __IDXGISwapChain_INTERFACE_DEFINED__
  1023. /* interface IDXGISwapChain */
  1024. /* [unique][local][uuid][object] */
  1025. EXTERN_C const IID IID_IDXGISwapChain;
  1026. #if defined(__cplusplus) && !defined(CINTERFACE)
  1027. MIDL_INTERFACE("310d36a0-d2e7-4c0a-aa04-6a9d23b8886a")
  1028. IDXGISwapChain : public IDXGIDeviceSubObject
  1029. {
  1030. public:
  1031. virtual HRESULT STDMETHODCALLTYPE Present(
  1032. /* [in] */ UINT SyncInterval,
  1033. /* [in] */ UINT Flags) = 0;
  1034. virtual HRESULT STDMETHODCALLTYPE GetBuffer(
  1035. /* [in] */ UINT Buffer,
  1036. /* [in] */ REFIID riid,
  1037. /* [out][in] */ void **ppSurface) = 0;
  1038. virtual HRESULT STDMETHODCALLTYPE SetFullscreenState(
  1039. /* [in] */ BOOL Fullscreen,
  1040. /* [in] */ IDXGIOutput *pTarget) = 0;
  1041. virtual HRESULT STDMETHODCALLTYPE GetFullscreenState(
  1042. /* [out] */ BOOL *pFullscreen,
  1043. /* [out] */ IDXGIOutput **ppTarget) = 0;
  1044. virtual HRESULT STDMETHODCALLTYPE GetDesc(
  1045. /* [out] */ DXGI_SWAP_CHAIN_DESC *pDesc) = 0;
  1046. virtual HRESULT STDMETHODCALLTYPE ResizeBuffers(
  1047. /* [in] */ UINT BufferCount,
  1048. /* [in] */ UINT Width,
  1049. /* [in] */ UINT Height,
  1050. /* [in] */ DXGI_FORMAT NewFormat,
  1051. /* [in] */ UINT SwapChainFlags) = 0;
  1052. virtual HRESULT STDMETHODCALLTYPE ResizeTarget(
  1053. /* [in] */ const DXGI_MODE_DESC *pNewTargetParameters) = 0;
  1054. virtual HRESULT STDMETHODCALLTYPE GetContainingOutput(
  1055. IDXGIOutput **ppOutput) = 0;
  1056. virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics(
  1057. /* [out] */ DXGI_FRAME_STATISTICS *pStats) = 0;
  1058. virtual HRESULT STDMETHODCALLTYPE GetLastPresentCount(
  1059. /* [out] */ UINT *pLastPresentCount) = 0;
  1060. };
  1061. #else /* C style interface */
  1062. typedef struct IDXGISwapChainVtbl
  1063. {
  1064. BEGIN_INTERFACE
  1065. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1066. IDXGISwapChain * This,
  1067. /* [in] */ REFIID riid,
  1068. /* [annotation][iid_is][out] */
  1069. __RPC__deref_out void **ppvObject);
  1070. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1071. IDXGISwapChain * This);
  1072. ULONG ( STDMETHODCALLTYPE *Release )(
  1073. IDXGISwapChain * This);
  1074. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  1075. IDXGISwapChain * This,
  1076. /* [in] */ REFGUID Name,
  1077. /* [in] */ UINT DataSize,
  1078. /* [in] */ const void *pData);
  1079. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  1080. IDXGISwapChain * This,
  1081. /* [in] */ REFGUID Name,
  1082. /* [in] */ const IUnknown *pUnknown);
  1083. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  1084. IDXGISwapChain * This,
  1085. /* [in] */ REFGUID Name,
  1086. /* [out][in] */ UINT *pDataSize,
  1087. /* [out] */ void *pData);
  1088. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  1089. IDXGISwapChain * This,
  1090. /* [in] */ REFIID riid,
  1091. /* [retval][out] */ void **ppParent);
  1092. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  1093. IDXGISwapChain * This,
  1094. /* [in] */ REFIID riid,
  1095. /* [retval][out] */ void **ppDevice);
  1096. HRESULT ( STDMETHODCALLTYPE *Present )(
  1097. IDXGISwapChain * This,
  1098. /* [in] */ UINT SyncInterval,
  1099. /* [in] */ UINT Flags);
  1100. HRESULT ( STDMETHODCALLTYPE *GetBuffer )(
  1101. IDXGISwapChain * This,
  1102. /* [in] */ UINT Buffer,
  1103. /* [in] */ REFIID riid,
  1104. /* [out][in] */ void **ppSurface);
  1105. HRESULT ( STDMETHODCALLTYPE *SetFullscreenState )(
  1106. IDXGISwapChain * This,
  1107. /* [in] */ BOOL Fullscreen,
  1108. /* [in] */ IDXGIOutput *pTarget);
  1109. HRESULT ( STDMETHODCALLTYPE *GetFullscreenState )(
  1110. IDXGISwapChain * This,
  1111. /* [out] */ BOOL *pFullscreen,
  1112. /* [out] */ IDXGIOutput **ppTarget);
  1113. HRESULT ( STDMETHODCALLTYPE *GetDesc )(
  1114. IDXGISwapChain * This,
  1115. /* [out] */ DXGI_SWAP_CHAIN_DESC *pDesc);
  1116. HRESULT ( STDMETHODCALLTYPE *ResizeBuffers )(
  1117. IDXGISwapChain * This,
  1118. /* [in] */ UINT BufferCount,
  1119. /* [in] */ UINT Width,
  1120. /* [in] */ UINT Height,
  1121. /* [in] */ DXGI_FORMAT NewFormat,
  1122. /* [in] */ UINT SwapChainFlags);
  1123. HRESULT ( STDMETHODCALLTYPE *ResizeTarget )(
  1124. IDXGISwapChain * This,
  1125. /* [in] */ const DXGI_MODE_DESC *pNewTargetParameters);
  1126. HRESULT ( STDMETHODCALLTYPE *GetContainingOutput )(
  1127. IDXGISwapChain * This,
  1128. IDXGIOutput **ppOutput);
  1129. HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )(
  1130. IDXGISwapChain * This,
  1131. /* [out] */ DXGI_FRAME_STATISTICS *pStats);
  1132. HRESULT ( STDMETHODCALLTYPE *GetLastPresentCount )(
  1133. IDXGISwapChain * This,
  1134. /* [out] */ UINT *pLastPresentCount);
  1135. END_INTERFACE
  1136. } IDXGISwapChainVtbl;
  1137. interface IDXGISwapChain
  1138. {
  1139. CONST_VTBL struct IDXGISwapChainVtbl *lpVtbl;
  1140. };
  1141. #ifdef COBJMACROS
  1142. #define IDXGISwapChain_QueryInterface(This,riid,ppvObject) \
  1143. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1144. #define IDXGISwapChain_AddRef(This) \
  1145. ( (This)->lpVtbl -> AddRef(This) )
  1146. #define IDXGISwapChain_Release(This) \
  1147. ( (This)->lpVtbl -> Release(This) )
  1148. #define IDXGISwapChain_SetPrivateData(This,Name,DataSize,pData) \
  1149. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  1150. #define IDXGISwapChain_SetPrivateDataInterface(This,Name,pUnknown) \
  1151. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  1152. #define IDXGISwapChain_GetPrivateData(This,Name,pDataSize,pData) \
  1153. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  1154. #define IDXGISwapChain_GetParent(This,riid,ppParent) \
  1155. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  1156. #define IDXGISwapChain_GetDevice(This,riid,ppDevice) \
  1157. ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
  1158. #define IDXGISwapChain_Present(This,SyncInterval,Flags) \
  1159. ( (This)->lpVtbl -> Present(This,SyncInterval,Flags) )
  1160. #define IDXGISwapChain_GetBuffer(This,Buffer,riid,ppSurface) \
  1161. ( (This)->lpVtbl -> GetBuffer(This,Buffer,riid,ppSurface) )
  1162. #define IDXGISwapChain_SetFullscreenState(This,Fullscreen,pTarget) \
  1163. ( (This)->lpVtbl -> SetFullscreenState(This,Fullscreen,pTarget) )
  1164. #define IDXGISwapChain_GetFullscreenState(This,pFullscreen,ppTarget) \
  1165. ( (This)->lpVtbl -> GetFullscreenState(This,pFullscreen,ppTarget) )
  1166. #define IDXGISwapChain_GetDesc(This,pDesc) \
  1167. ( (This)->lpVtbl -> GetDesc(This,pDesc) )
  1168. #define IDXGISwapChain_ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) \
  1169. ( (This)->lpVtbl -> ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) )
  1170. #define IDXGISwapChain_ResizeTarget(This,pNewTargetParameters) \
  1171. ( (This)->lpVtbl -> ResizeTarget(This,pNewTargetParameters) )
  1172. #define IDXGISwapChain_GetContainingOutput(This,ppOutput) \
  1173. ( (This)->lpVtbl -> GetContainingOutput(This,ppOutput) )
  1174. #define IDXGISwapChain_GetFrameStatistics(This,pStats) \
  1175. ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) )
  1176. #define IDXGISwapChain_GetLastPresentCount(This,pLastPresentCount) \
  1177. ( (This)->lpVtbl -> GetLastPresentCount(This,pLastPresentCount) )
  1178. #endif /* COBJMACROS */
  1179. #endif /* C style interface */
  1180. #endif /* __IDXGISwapChain_INTERFACE_DEFINED__ */
  1181. /* interface __MIDL_itf_dxgi_0000_0009 */
  1182. /* [local] */
  1183. #define DXGI_MWA_NO_WINDOW_CHANGES ( 1 << 0 )
  1184. #define DXGI_MWA_NO_ALT_ENTER ( 1 << 1 )
  1185. #define DXGI_MWA_NO_PRINT_SCREEN ( 1 << 2 )
  1186. #define DXGI_MWA_VALID ( 0x7 )
  1187. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0009_v0_0_c_ifspec;
  1188. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0009_v0_0_s_ifspec;
  1189. #ifndef __IDXGIFactory_INTERFACE_DEFINED__
  1190. #define __IDXGIFactory_INTERFACE_DEFINED__
  1191. /* interface IDXGIFactory */
  1192. /* [unique][local][uuid][object] */
  1193. EXTERN_C const IID IID_IDXGIFactory;
  1194. #if defined(__cplusplus) && !defined(CINTERFACE)
  1195. MIDL_INTERFACE("7b7166ec-21c7-44ae-b21a-c9ae321ae369")
  1196. IDXGIFactory : public IDXGIObject
  1197. {
  1198. public:
  1199. virtual HRESULT STDMETHODCALLTYPE EnumAdapters(
  1200. /* [in] */ UINT Adapter,
  1201. /* [out] */ IDXGIAdapter **ppAdapter) = 0;
  1202. virtual HRESULT STDMETHODCALLTYPE MakeWindowAssociation(
  1203. HWND WindowHandle,
  1204. UINT Flags) = 0;
  1205. virtual HRESULT STDMETHODCALLTYPE GetWindowAssociation(
  1206. HWND *pWindowHandle) = 0;
  1207. virtual HRESULT STDMETHODCALLTYPE CreateSwapChain(
  1208. IUnknown *pDevice,
  1209. DXGI_SWAP_CHAIN_DESC *pDesc,
  1210. IDXGISwapChain **ppSwapChain) = 0;
  1211. virtual HRESULT STDMETHODCALLTYPE CreateSoftwareAdapter(
  1212. /* [in] */ HMODULE Module,
  1213. /* [out] */ IDXGIAdapter **ppAdapter) = 0;
  1214. };
  1215. #else /* C style interface */
  1216. typedef struct IDXGIFactoryVtbl
  1217. {
  1218. BEGIN_INTERFACE
  1219. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1220. IDXGIFactory * This,
  1221. /* [in] */ REFIID riid,
  1222. /* [annotation][iid_is][out] */
  1223. __RPC__deref_out void **ppvObject);
  1224. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1225. IDXGIFactory * This);
  1226. ULONG ( STDMETHODCALLTYPE *Release )(
  1227. IDXGIFactory * This);
  1228. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  1229. IDXGIFactory * This,
  1230. /* [in] */ REFGUID Name,
  1231. /* [in] */ UINT DataSize,
  1232. /* [in] */ const void *pData);
  1233. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  1234. IDXGIFactory * This,
  1235. /* [in] */ REFGUID Name,
  1236. /* [in] */ const IUnknown *pUnknown);
  1237. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  1238. IDXGIFactory * This,
  1239. /* [in] */ REFGUID Name,
  1240. /* [out][in] */ UINT *pDataSize,
  1241. /* [out] */ void *pData);
  1242. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  1243. IDXGIFactory * This,
  1244. /* [in] */ REFIID riid,
  1245. /* [retval][out] */ void **ppParent);
  1246. HRESULT ( STDMETHODCALLTYPE *EnumAdapters )(
  1247. IDXGIFactory * This,
  1248. /* [in] */ UINT Adapter,
  1249. /* [out] */ IDXGIAdapter **ppAdapter);
  1250. HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )(
  1251. IDXGIFactory * This,
  1252. HWND WindowHandle,
  1253. UINT Flags);
  1254. HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )(
  1255. IDXGIFactory * This,
  1256. HWND *pWindowHandle);
  1257. HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )(
  1258. IDXGIFactory * This,
  1259. IUnknown *pDevice,
  1260. DXGI_SWAP_CHAIN_DESC *pDesc,
  1261. IDXGISwapChain **ppSwapChain);
  1262. HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )(
  1263. IDXGIFactory * This,
  1264. /* [in] */ HMODULE Module,
  1265. /* [out] */ IDXGIAdapter **ppAdapter);
  1266. END_INTERFACE
  1267. } IDXGIFactoryVtbl;
  1268. interface IDXGIFactory
  1269. {
  1270. CONST_VTBL struct IDXGIFactoryVtbl *lpVtbl;
  1271. };
  1272. #ifdef COBJMACROS
  1273. #define IDXGIFactory_QueryInterface(This,riid,ppvObject) \
  1274. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1275. #define IDXGIFactory_AddRef(This) \
  1276. ( (This)->lpVtbl -> AddRef(This) )
  1277. #define IDXGIFactory_Release(This) \
  1278. ( (This)->lpVtbl -> Release(This) )
  1279. #define IDXGIFactory_SetPrivateData(This,Name,DataSize,pData) \
  1280. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  1281. #define IDXGIFactory_SetPrivateDataInterface(This,Name,pUnknown) \
  1282. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  1283. #define IDXGIFactory_GetPrivateData(This,Name,pDataSize,pData) \
  1284. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  1285. #define IDXGIFactory_GetParent(This,riid,ppParent) \
  1286. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  1287. #define IDXGIFactory_EnumAdapters(This,Adapter,ppAdapter) \
  1288. ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) )
  1289. #define IDXGIFactory_MakeWindowAssociation(This,WindowHandle,Flags) \
  1290. ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) )
  1291. #define IDXGIFactory_GetWindowAssociation(This,pWindowHandle) \
  1292. ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) )
  1293. #define IDXGIFactory_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \
  1294. ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) )
  1295. #define IDXGIFactory_CreateSoftwareAdapter(This,Module,ppAdapter) \
  1296. ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) )
  1297. #endif /* COBJMACROS */
  1298. #endif /* C style interface */
  1299. #endif /* __IDXGIFactory_INTERFACE_DEFINED__ */
  1300. /* interface __MIDL_itf_dxgi_0000_0010 */
  1301. /* [local] */
  1302. HRESULT WINAPI CreateDXGIFactory(REFIID riid, void **ppFactory);
  1303. HRESULT WINAPI CreateDXGIFactory1(REFIID riid, void **ppFactory);
  1304. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0010_v0_0_c_ifspec;
  1305. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0010_v0_0_s_ifspec;
  1306. #ifndef __IDXGIDevice_INTERFACE_DEFINED__
  1307. #define __IDXGIDevice_INTERFACE_DEFINED__
  1308. /* interface IDXGIDevice */
  1309. /* [unique][local][uuid][object] */
  1310. EXTERN_C const IID IID_IDXGIDevice;
  1311. #if defined(__cplusplus) && !defined(CINTERFACE)
  1312. MIDL_INTERFACE("54ec77fa-1377-44e6-8c32-88fd5f44c84c")
  1313. IDXGIDevice : public IDXGIObject
  1314. {
  1315. public:
  1316. virtual HRESULT STDMETHODCALLTYPE GetAdapter(
  1317. /* [out] */ IDXGIAdapter **pAdapter) = 0;
  1318. virtual HRESULT STDMETHODCALLTYPE CreateSurface(
  1319. /* [in] */ const DXGI_SURFACE_DESC *pDesc,
  1320. /* [in] */ UINT NumSurfaces,
  1321. /* [in] */ DXGI_USAGE Usage,
  1322. /* [in] */ const DXGI_SHARED_RESOURCE *pSharedResource,
  1323. /* [out] */ IDXGISurface **ppSurface) = 0;
  1324. virtual HRESULT STDMETHODCALLTYPE QueryResourceResidency(
  1325. /* [size_is][in] */ IUnknown *const *ppResources,
  1326. /* [size_is][out] */ DXGI_RESIDENCY *pResidencyStatus,
  1327. /* [in] */ UINT NumResources) = 0;
  1328. virtual HRESULT STDMETHODCALLTYPE SetGPUThreadPriority(
  1329. /* [in] */ INT Priority) = 0;
  1330. virtual HRESULT STDMETHODCALLTYPE GetGPUThreadPriority(
  1331. /* [retval][out] */ INT *pPriority) = 0;
  1332. };
  1333. #else /* C style interface */
  1334. typedef struct IDXGIDeviceVtbl
  1335. {
  1336. BEGIN_INTERFACE
  1337. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1338. IDXGIDevice * This,
  1339. /* [in] */ REFIID riid,
  1340. /* [annotation][iid_is][out] */
  1341. __RPC__deref_out void **ppvObject);
  1342. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1343. IDXGIDevice * This);
  1344. ULONG ( STDMETHODCALLTYPE *Release )(
  1345. IDXGIDevice * This);
  1346. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  1347. IDXGIDevice * This,
  1348. /* [in] */ REFGUID Name,
  1349. /* [in] */ UINT DataSize,
  1350. /* [in] */ const void *pData);
  1351. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  1352. IDXGIDevice * This,
  1353. /* [in] */ REFGUID Name,
  1354. /* [in] */ const IUnknown *pUnknown);
  1355. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  1356. IDXGIDevice * This,
  1357. /* [in] */ REFGUID Name,
  1358. /* [out][in] */ UINT *pDataSize,
  1359. /* [out] */ void *pData);
  1360. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  1361. IDXGIDevice * This,
  1362. /* [in] */ REFIID riid,
  1363. /* [retval][out] */ void **ppParent);
  1364. HRESULT ( STDMETHODCALLTYPE *GetAdapter )(
  1365. IDXGIDevice * This,
  1366. /* [out] */ IDXGIAdapter **pAdapter);
  1367. HRESULT ( STDMETHODCALLTYPE *CreateSurface )(
  1368. IDXGIDevice * This,
  1369. /* [in] */ const DXGI_SURFACE_DESC *pDesc,
  1370. /* [in] */ UINT NumSurfaces,
  1371. /* [in] */ DXGI_USAGE Usage,
  1372. /* [in] */ const DXGI_SHARED_RESOURCE *pSharedResource,
  1373. /* [out] */ IDXGISurface **ppSurface);
  1374. HRESULT ( STDMETHODCALLTYPE *QueryResourceResidency )(
  1375. IDXGIDevice * This,
  1376. /* [size_is][in] */ IUnknown *const *ppResources,
  1377. /* [size_is][out] */ DXGI_RESIDENCY *pResidencyStatus,
  1378. /* [in] */ UINT NumResources);
  1379. HRESULT ( STDMETHODCALLTYPE *SetGPUThreadPriority )(
  1380. IDXGIDevice * This,
  1381. /* [in] */ INT Priority);
  1382. HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )(
  1383. IDXGIDevice * This,
  1384. /* [retval][out] */ INT *pPriority);
  1385. END_INTERFACE
  1386. } IDXGIDeviceVtbl;
  1387. interface IDXGIDevice
  1388. {
  1389. CONST_VTBL struct IDXGIDeviceVtbl *lpVtbl;
  1390. };
  1391. #ifdef COBJMACROS
  1392. #define IDXGIDevice_QueryInterface(This,riid,ppvObject) \
  1393. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1394. #define IDXGIDevice_AddRef(This) \
  1395. ( (This)->lpVtbl -> AddRef(This) )
  1396. #define IDXGIDevice_Release(This) \
  1397. ( (This)->lpVtbl -> Release(This) )
  1398. #define IDXGIDevice_SetPrivateData(This,Name,DataSize,pData) \
  1399. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  1400. #define IDXGIDevice_SetPrivateDataInterface(This,Name,pUnknown) \
  1401. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  1402. #define IDXGIDevice_GetPrivateData(This,Name,pDataSize,pData) \
  1403. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  1404. #define IDXGIDevice_GetParent(This,riid,ppParent) \
  1405. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  1406. #define IDXGIDevice_GetAdapter(This,pAdapter) \
  1407. ( (This)->lpVtbl -> GetAdapter(This,pAdapter) )
  1408. #define IDXGIDevice_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) \
  1409. ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) )
  1410. #define IDXGIDevice_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) \
  1411. ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) )
  1412. #define IDXGIDevice_SetGPUThreadPriority(This,Priority) \
  1413. ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) )
  1414. #define IDXGIDevice_GetGPUThreadPriority(This,pPriority) \
  1415. ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) )
  1416. #endif /* COBJMACROS */
  1417. #endif /* C style interface */
  1418. #endif /* __IDXGIDevice_INTERFACE_DEFINED__ */
  1419. /* interface __MIDL_itf_dxgi_0000_0011 */
  1420. /* [local] */
  1421. typedef
  1422. enum DXGI_ADAPTER_FLAG
  1423. { DXGI_ADAPTER_FLAG_NONE = 0,
  1424. DXGI_ADAPTER_FLAG_REMOTE = 1,
  1425. DXGI_ADAPTER_FLAG_FORCE_DWORD = 0xffffffff
  1426. } DXGI_ADAPTER_FLAG;
  1427. typedef struct DXGI_ADAPTER_DESC1
  1428. {
  1429. WCHAR Description[ 128 ];
  1430. UINT VendorId;
  1431. UINT DeviceId;
  1432. UINT SubSysId;
  1433. UINT Revision;
  1434. SIZE_T DedicatedVideoMemory;
  1435. SIZE_T DedicatedSystemMemory;
  1436. SIZE_T SharedSystemMemory;
  1437. LUID AdapterLuid;
  1438. UINT Flags;
  1439. } DXGI_ADAPTER_DESC1;
  1440. typedef struct DXGI_DISPLAY_COLOR_SPACE
  1441. {
  1442. FLOAT PrimaryCoordinates[ 8 ][ 2 ];
  1443. FLOAT WhitePoints[ 16 ][ 2 ];
  1444. } DXGI_DISPLAY_COLOR_SPACE;
  1445. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0011_v0_0_c_ifspec;
  1446. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0011_v0_0_s_ifspec;
  1447. #ifndef __IDXGIFactory1_INTERFACE_DEFINED__
  1448. #define __IDXGIFactory1_INTERFACE_DEFINED__
  1449. /* interface IDXGIFactory1 */
  1450. /* [unique][local][uuid][object] */
  1451. EXTERN_C const IID IID_IDXGIFactory1;
  1452. #if defined(__cplusplus) && !defined(CINTERFACE)
  1453. MIDL_INTERFACE("770aae78-f26f-4dba-a829-253c83d1b387")
  1454. IDXGIFactory1 : public IDXGIFactory
  1455. {
  1456. public:
  1457. virtual HRESULT STDMETHODCALLTYPE EnumAdapters1(
  1458. /* [in] */ UINT Adapter,
  1459. /* [out] */ IDXGIAdapter1 **ppAdapter) = 0;
  1460. virtual BOOL STDMETHODCALLTYPE IsCurrent( void) = 0;
  1461. };
  1462. #else /* C style interface */
  1463. typedef struct IDXGIFactory1Vtbl
  1464. {
  1465. BEGIN_INTERFACE
  1466. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1467. IDXGIFactory1 * This,
  1468. /* [in] */ REFIID riid,
  1469. /* [annotation][iid_is][out] */
  1470. __RPC__deref_out void **ppvObject);
  1471. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1472. IDXGIFactory1 * This);
  1473. ULONG ( STDMETHODCALLTYPE *Release )(
  1474. IDXGIFactory1 * This);
  1475. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  1476. IDXGIFactory1 * This,
  1477. /* [in] */ REFGUID Name,
  1478. /* [in] */ UINT DataSize,
  1479. /* [in] */ const void *pData);
  1480. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  1481. IDXGIFactory1 * This,
  1482. /* [in] */ REFGUID Name,
  1483. /* [in] */ const IUnknown *pUnknown);
  1484. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  1485. IDXGIFactory1 * This,
  1486. /* [in] */ REFGUID Name,
  1487. /* [out][in] */ UINT *pDataSize,
  1488. /* [out] */ void *pData);
  1489. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  1490. IDXGIFactory1 * This,
  1491. /* [in] */ REFIID riid,
  1492. /* [retval][out] */ void **ppParent);
  1493. HRESULT ( STDMETHODCALLTYPE *EnumAdapters )(
  1494. IDXGIFactory1 * This,
  1495. /* [in] */ UINT Adapter,
  1496. /* [out] */ IDXGIAdapter **ppAdapter);
  1497. HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )(
  1498. IDXGIFactory1 * This,
  1499. HWND WindowHandle,
  1500. UINT Flags);
  1501. HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )(
  1502. IDXGIFactory1 * This,
  1503. HWND *pWindowHandle);
  1504. HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )(
  1505. IDXGIFactory1 * This,
  1506. IUnknown *pDevice,
  1507. DXGI_SWAP_CHAIN_DESC *pDesc,
  1508. IDXGISwapChain **ppSwapChain);
  1509. HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )(
  1510. IDXGIFactory1 * This,
  1511. /* [in] */ HMODULE Module,
  1512. /* [out] */ IDXGIAdapter **ppAdapter);
  1513. HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )(
  1514. IDXGIFactory1 * This,
  1515. /* [in] */ UINT Adapter,
  1516. /* [out] */ IDXGIAdapter1 **ppAdapter);
  1517. BOOL ( STDMETHODCALLTYPE *IsCurrent )(
  1518. IDXGIFactory1 * This);
  1519. END_INTERFACE
  1520. } IDXGIFactory1Vtbl;
  1521. interface IDXGIFactory1
  1522. {
  1523. CONST_VTBL struct IDXGIFactory1Vtbl *lpVtbl;
  1524. };
  1525. #ifdef COBJMACROS
  1526. #define IDXGIFactory1_QueryInterface(This,riid,ppvObject) \
  1527. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1528. #define IDXGIFactory1_AddRef(This) \
  1529. ( (This)->lpVtbl -> AddRef(This) )
  1530. #define IDXGIFactory1_Release(This) \
  1531. ( (This)->lpVtbl -> Release(This) )
  1532. #define IDXGIFactory1_SetPrivateData(This,Name,DataSize,pData) \
  1533. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  1534. #define IDXGIFactory1_SetPrivateDataInterface(This,Name,pUnknown) \
  1535. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  1536. #define IDXGIFactory1_GetPrivateData(This,Name,pDataSize,pData) \
  1537. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  1538. #define IDXGIFactory1_GetParent(This,riid,ppParent) \
  1539. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  1540. #define IDXGIFactory1_EnumAdapters(This,Adapter,ppAdapter) \
  1541. ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) )
  1542. #define IDXGIFactory1_MakeWindowAssociation(This,WindowHandle,Flags) \
  1543. ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) )
  1544. #define IDXGIFactory1_GetWindowAssociation(This,pWindowHandle) \
  1545. ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) )
  1546. #define IDXGIFactory1_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \
  1547. ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) )
  1548. #define IDXGIFactory1_CreateSoftwareAdapter(This,Module,ppAdapter) \
  1549. ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) )
  1550. #define IDXGIFactory1_EnumAdapters1(This,Adapter,ppAdapter) \
  1551. ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) )
  1552. #define IDXGIFactory1_IsCurrent(This) \
  1553. ( (This)->lpVtbl -> IsCurrent(This) )
  1554. #endif /* COBJMACROS */
  1555. #endif /* C style interface */
  1556. #endif /* __IDXGIFactory1_INTERFACE_DEFINED__ */
  1557. #ifndef __IDXGIAdapter1_INTERFACE_DEFINED__
  1558. #define __IDXGIAdapter1_INTERFACE_DEFINED__
  1559. /* interface IDXGIAdapter1 */
  1560. /* [unique][local][uuid][object] */
  1561. EXTERN_C const IID IID_IDXGIAdapter1;
  1562. #if defined(__cplusplus) && !defined(CINTERFACE)
  1563. MIDL_INTERFACE("29038f61-3839-4626-91fd-086879011a05")
  1564. IDXGIAdapter1 : public IDXGIAdapter
  1565. {
  1566. public:
  1567. virtual HRESULT STDMETHODCALLTYPE GetDesc1(
  1568. /* [out] */ DXGI_ADAPTER_DESC1 *pDesc) = 0;
  1569. };
  1570. #else /* C style interface */
  1571. typedef struct IDXGIAdapter1Vtbl
  1572. {
  1573. BEGIN_INTERFACE
  1574. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1575. IDXGIAdapter1 * This,
  1576. /* [in] */ REFIID riid,
  1577. /* [annotation][iid_is][out] */
  1578. __RPC__deref_out void **ppvObject);
  1579. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1580. IDXGIAdapter1 * This);
  1581. ULONG ( STDMETHODCALLTYPE *Release )(
  1582. IDXGIAdapter1 * This);
  1583. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  1584. IDXGIAdapter1 * This,
  1585. /* [in] */ REFGUID Name,
  1586. /* [in] */ UINT DataSize,
  1587. /* [in] */ const void *pData);
  1588. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  1589. IDXGIAdapter1 * This,
  1590. /* [in] */ REFGUID Name,
  1591. /* [in] */ const IUnknown *pUnknown);
  1592. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  1593. IDXGIAdapter1 * This,
  1594. /* [in] */ REFGUID Name,
  1595. /* [out][in] */ UINT *pDataSize,
  1596. /* [out] */ void *pData);
  1597. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  1598. IDXGIAdapter1 * This,
  1599. /* [in] */ REFIID riid,
  1600. /* [retval][out] */ void **ppParent);
  1601. HRESULT ( STDMETHODCALLTYPE *EnumOutputs )(
  1602. IDXGIAdapter1 * This,
  1603. /* [in] */ UINT Output,
  1604. /* [out][in] */ IDXGIOutput **ppOutput);
  1605. HRESULT ( STDMETHODCALLTYPE *GetDesc )(
  1606. IDXGIAdapter1 * This,
  1607. /* [out] */ DXGI_ADAPTER_DESC *pDesc);
  1608. HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )(
  1609. IDXGIAdapter1 * This,
  1610. /* [in] */ REFGUID InterfaceName,
  1611. /* [out] */ LARGE_INTEGER *pUMDVersion);
  1612. HRESULT ( STDMETHODCALLTYPE *GetDesc1 )(
  1613. IDXGIAdapter1 * This,
  1614. /* [out] */ DXGI_ADAPTER_DESC1 *pDesc);
  1615. END_INTERFACE
  1616. } IDXGIAdapter1Vtbl;
  1617. interface IDXGIAdapter1
  1618. {
  1619. CONST_VTBL struct IDXGIAdapter1Vtbl *lpVtbl;
  1620. };
  1621. #ifdef COBJMACROS
  1622. #define IDXGIAdapter1_QueryInterface(This,riid,ppvObject) \
  1623. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1624. #define IDXGIAdapter1_AddRef(This) \
  1625. ( (This)->lpVtbl -> AddRef(This) )
  1626. #define IDXGIAdapter1_Release(This) \
  1627. ( (This)->lpVtbl -> Release(This) )
  1628. #define IDXGIAdapter1_SetPrivateData(This,Name,DataSize,pData) \
  1629. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  1630. #define IDXGIAdapter1_SetPrivateDataInterface(This,Name,pUnknown) \
  1631. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  1632. #define IDXGIAdapter1_GetPrivateData(This,Name,pDataSize,pData) \
  1633. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  1634. #define IDXGIAdapter1_GetParent(This,riid,ppParent) \
  1635. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  1636. #define IDXGIAdapter1_EnumOutputs(This,Output,ppOutput) \
  1637. ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) )
  1638. #define IDXGIAdapter1_GetDesc(This,pDesc) \
  1639. ( (This)->lpVtbl -> GetDesc(This,pDesc) )
  1640. #define IDXGIAdapter1_CheckInterfaceSupport(This,InterfaceName,pUMDVersion) \
  1641. ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) )
  1642. #define IDXGIAdapter1_GetDesc1(This,pDesc) \
  1643. ( (This)->lpVtbl -> GetDesc1(This,pDesc) )
  1644. #endif /* COBJMACROS */
  1645. #endif /* C style interface */
  1646. #endif /* __IDXGIAdapter1_INTERFACE_DEFINED__ */
  1647. #ifndef __IDXGIDevice1_INTERFACE_DEFINED__
  1648. #define __IDXGIDevice1_INTERFACE_DEFINED__
  1649. /* interface IDXGIDevice1 */
  1650. /* [unique][local][uuid][object] */
  1651. EXTERN_C const IID IID_IDXGIDevice1;
  1652. #if defined(__cplusplus) && !defined(CINTERFACE)
  1653. MIDL_INTERFACE("77db970f-6276-48ba-ba28-070143b4392c")
  1654. IDXGIDevice1 : public IDXGIDevice
  1655. {
  1656. public:
  1657. virtual HRESULT STDMETHODCALLTYPE SetMaximumFrameLatency(
  1658. /* [in] */ UINT MaxLatency) = 0;
  1659. virtual HRESULT STDMETHODCALLTYPE GetMaximumFrameLatency(
  1660. /* [out] */ UINT *pMaxLatency) = 0;
  1661. };
  1662. #else /* C style interface */
  1663. typedef struct IDXGIDevice1Vtbl
  1664. {
  1665. BEGIN_INTERFACE
  1666. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1667. IDXGIDevice1 * This,
  1668. /* [in] */ REFIID riid,
  1669. /* [annotation][iid_is][out] */
  1670. __RPC__deref_out void **ppvObject);
  1671. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1672. IDXGIDevice1 * This);
  1673. ULONG ( STDMETHODCALLTYPE *Release )(
  1674. IDXGIDevice1 * This);
  1675. HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
  1676. IDXGIDevice1 * This,
  1677. /* [in] */ REFGUID Name,
  1678. /* [in] */ UINT DataSize,
  1679. /* [in] */ const void *pData);
  1680. HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
  1681. IDXGIDevice1 * This,
  1682. /* [in] */ REFGUID Name,
  1683. /* [in] */ const IUnknown *pUnknown);
  1684. HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
  1685. IDXGIDevice1 * This,
  1686. /* [in] */ REFGUID Name,
  1687. /* [out][in] */ UINT *pDataSize,
  1688. /* [out] */ void *pData);
  1689. HRESULT ( STDMETHODCALLTYPE *GetParent )(
  1690. IDXGIDevice1 * This,
  1691. /* [in] */ REFIID riid,
  1692. /* [retval][out] */ void **ppParent);
  1693. HRESULT ( STDMETHODCALLTYPE *GetAdapter )(
  1694. IDXGIDevice1 * This,
  1695. /* [out] */ IDXGIAdapter **pAdapter);
  1696. HRESULT ( STDMETHODCALLTYPE *CreateSurface )(
  1697. IDXGIDevice1 * This,
  1698. /* [in] */ const DXGI_SURFACE_DESC *pDesc,
  1699. /* [in] */ UINT NumSurfaces,
  1700. /* [in] */ DXGI_USAGE Usage,
  1701. /* [in] */ const DXGI_SHARED_RESOURCE *pSharedResource,
  1702. /* [out] */ IDXGISurface **ppSurface);
  1703. HRESULT ( STDMETHODCALLTYPE *QueryResourceResidency )(
  1704. IDXGIDevice1 * This,
  1705. /* [size_is][in] */ IUnknown *const *ppResources,
  1706. /* [size_is][out] */ DXGI_RESIDENCY *pResidencyStatus,
  1707. /* [in] */ UINT NumResources);
  1708. HRESULT ( STDMETHODCALLTYPE *SetGPUThreadPriority )(
  1709. IDXGIDevice1 * This,
  1710. /* [in] */ INT Priority);
  1711. HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )(
  1712. IDXGIDevice1 * This,
  1713. /* [retval][out] */ INT *pPriority);
  1714. HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )(
  1715. IDXGIDevice1 * This,
  1716. /* [in] */ UINT MaxLatency);
  1717. HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )(
  1718. IDXGIDevice1 * This,
  1719. /* [out] */ UINT *pMaxLatency);
  1720. END_INTERFACE
  1721. } IDXGIDevice1Vtbl;
  1722. interface IDXGIDevice1
  1723. {
  1724. CONST_VTBL struct IDXGIDevice1Vtbl *lpVtbl;
  1725. };
  1726. #ifdef COBJMACROS
  1727. #define IDXGIDevice1_QueryInterface(This,riid,ppvObject) \
  1728. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1729. #define IDXGIDevice1_AddRef(This) \
  1730. ( (This)->lpVtbl -> AddRef(This) )
  1731. #define IDXGIDevice1_Release(This) \
  1732. ( (This)->lpVtbl -> Release(This) )
  1733. #define IDXGIDevice1_SetPrivateData(This,Name,DataSize,pData) \
  1734. ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
  1735. #define IDXGIDevice1_SetPrivateDataInterface(This,Name,pUnknown) \
  1736. ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
  1737. #define IDXGIDevice1_GetPrivateData(This,Name,pDataSize,pData) \
  1738. ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
  1739. #define IDXGIDevice1_GetParent(This,riid,ppParent) \
  1740. ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
  1741. #define IDXGIDevice1_GetAdapter(This,pAdapter) \
  1742. ( (This)->lpVtbl -> GetAdapter(This,pAdapter) )
  1743. #define IDXGIDevice1_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) \
  1744. ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) )
  1745. #define IDXGIDevice1_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) \
  1746. ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) )
  1747. #define IDXGIDevice1_SetGPUThreadPriority(This,Priority) \
  1748. ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) )
  1749. #define IDXGIDevice1_GetGPUThreadPriority(This,pPriority) \
  1750. ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) )
  1751. #define IDXGIDevice1_SetMaximumFrameLatency(This,MaxLatency) \
  1752. ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) )
  1753. #define IDXGIDevice1_GetMaximumFrameLatency(This,pMaxLatency) \
  1754. ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) )
  1755. #endif /* COBJMACROS */
  1756. #endif /* C style interface */
  1757. #endif /* __IDXGIDevice1_INTERFACE_DEFINED__ */
  1758. /* interface __MIDL_itf_dxgi_0000_0014 */
  1759. /* [local] */
  1760. #ifdef __cplusplus
  1761. #endif /*__cplusplus*/
  1762. DEFINE_GUID(IID_IDXGIObject,0xaec22fb8,0x76f3,0x4639,0x9b,0xe0,0x28,0xeb,0x43,0xa6,0x7a,0x2e);
  1763. DEFINE_GUID(IID_IDXGIDeviceSubObject,0x3d3e0379,0xf9de,0x4d58,0xbb,0x6c,0x18,0xd6,0x29,0x92,0xf1,0xa6);
  1764. DEFINE_GUID(IID_IDXGIResource,0x035f3ab4,0x482e,0x4e50,0xb4,0x1f,0x8a,0x7f,0x8b,0xd8,0x96,0x0b);
  1765. DEFINE_GUID(IID_IDXGIKeyedMutex,0x9d8e1289,0xd7b3,0x465f,0x81,0x26,0x25,0x0e,0x34,0x9a,0xf8,0x5d);
  1766. DEFINE_GUID(IID_IDXGISurface,0xcafcb56c,0x6ac3,0x4889,0xbf,0x47,0x9e,0x23,0xbb,0xd2,0x60,0xec);
  1767. DEFINE_GUID(IID_IDXGISurface1,0x4AE63092,0x6327,0x4c1b,0x80,0xAE,0xBF,0xE1,0x2E,0xA3,0x2B,0x86);
  1768. DEFINE_GUID(IID_IDXGIAdapter,0x2411e7e1,0x12ac,0x4ccf,0xbd,0x14,0x97,0x98,0xe8,0x53,0x4d,0xc0);
  1769. DEFINE_GUID(IID_IDXGIOutput,0xae02eedb,0xc735,0x4690,0x8d,0x52,0x5a,0x8d,0xc2,0x02,0x13,0xaa);
  1770. DEFINE_GUID(IID_IDXGISwapChain,0x310d36a0,0xd2e7,0x4c0a,0xaa,0x04,0x6a,0x9d,0x23,0xb8,0x88,0x6a);
  1771. DEFINE_GUID(IID_IDXGIFactory,0x7b7166ec,0x21c7,0x44ae,0xb2,0x1a,0xc9,0xae,0x32,0x1a,0xe3,0x69);
  1772. DEFINE_GUID(IID_IDXGIDevice,0x54ec77fa,0x1377,0x44e6,0x8c,0x32,0x88,0xfd,0x5f,0x44,0xc8,0x4c);
  1773. DEFINE_GUID(IID_IDXGIFactory1,0x770aae78,0xf26f,0x4dba,0xa8,0x29,0x25,0x3c,0x83,0xd1,0xb3,0x87);
  1774. DEFINE_GUID(IID_IDXGIAdapter1,0x29038f61,0x3839,0x4626,0x91,0xfd,0x08,0x68,0x79,0x01,0x1a,0x05);
  1775. DEFINE_GUID(IID_IDXGIDevice1,0x77db970f,0x6276,0x48ba,0xba,0x28,0x07,0x01,0x43,0xb4,0x39,0x2c);
  1776. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0014_v0_0_c_ifspec;
  1777. extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0014_v0_0_s_ifspec;
  1778. /* Additional Prototypes for ALL interfaces */
  1779. /* end of Additional Prototypes */
  1780. #ifdef __cplusplus
  1781. }
  1782. #endif
  1783. #endif