Subversion Repositories Games.Chess Giants

Rev

Blame | Last modification | View Log | Download | RSS feed

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