dxtrans.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:155k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for dxtrans.idl:
  5.     Oicf, W1, Zp8, env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext
  7.     error checks: allocation ref bounds_check enum stub_data 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __dxtrans_h__
  27. #define __dxtrans_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */ 
  32. #ifndef __IDXBaseObject_FWD_DEFINED__
  33. #define __IDXBaseObject_FWD_DEFINED__
  34. typedef interface IDXBaseObject IDXBaseObject;
  35. #endif  /* __IDXBaseObject_FWD_DEFINED__ */
  36. #ifndef __IDXTransformFactory_FWD_DEFINED__
  37. #define __IDXTransformFactory_FWD_DEFINED__
  38. typedef interface IDXTransformFactory IDXTransformFactory;
  39. #endif  /* __IDXTransformFactory_FWD_DEFINED__ */
  40. #ifndef __IDXTransform_FWD_DEFINED__
  41. #define __IDXTransform_FWD_DEFINED__
  42. typedef interface IDXTransform IDXTransform;
  43. #endif  /* __IDXTransform_FWD_DEFINED__ */
  44. #ifndef __IDXSurfacePick_FWD_DEFINED__
  45. #define __IDXSurfacePick_FWD_DEFINED__
  46. typedef interface IDXSurfacePick IDXSurfacePick;
  47. #endif  /* __IDXSurfacePick_FWD_DEFINED__ */
  48. #ifndef __IDXTBindHost_FWD_DEFINED__
  49. #define __IDXTBindHost_FWD_DEFINED__
  50. typedef interface IDXTBindHost IDXTBindHost;
  51. #endif  /* __IDXTBindHost_FWD_DEFINED__ */
  52. #ifndef __IDXTaskManager_FWD_DEFINED__
  53. #define __IDXTaskManager_FWD_DEFINED__
  54. typedef interface IDXTaskManager IDXTaskManager;
  55. #endif  /* __IDXTaskManager_FWD_DEFINED__ */
  56. #ifndef __IDXSurfaceFactory_FWD_DEFINED__
  57. #define __IDXSurfaceFactory_FWD_DEFINED__
  58. typedef interface IDXSurfaceFactory IDXSurfaceFactory;
  59. #endif  /* __IDXSurfaceFactory_FWD_DEFINED__ */
  60. #ifndef __IDXSurfaceModifier_FWD_DEFINED__
  61. #define __IDXSurfaceModifier_FWD_DEFINED__
  62. typedef interface IDXSurfaceModifier IDXSurfaceModifier;
  63. #endif  /* __IDXSurfaceModifier_FWD_DEFINED__ */
  64. #ifndef __IDXSurface_FWD_DEFINED__
  65. #define __IDXSurface_FWD_DEFINED__
  66. typedef interface IDXSurface IDXSurface;
  67. #endif  /* __IDXSurface_FWD_DEFINED__ */
  68. #ifndef __IDXSurfaceInit_FWD_DEFINED__
  69. #define __IDXSurfaceInit_FWD_DEFINED__
  70. typedef interface IDXSurfaceInit IDXSurfaceInit;
  71. #endif  /* __IDXSurfaceInit_FWD_DEFINED__ */
  72. #ifndef __IDXARGBSurfaceInit_FWD_DEFINED__
  73. #define __IDXARGBSurfaceInit_FWD_DEFINED__
  74. typedef interface IDXARGBSurfaceInit IDXARGBSurfaceInit;
  75. #endif  /* __IDXARGBSurfaceInit_FWD_DEFINED__ */
  76. #ifndef __IDXARGBReadPtr_FWD_DEFINED__
  77. #define __IDXARGBReadPtr_FWD_DEFINED__
  78. typedef interface IDXARGBReadPtr IDXARGBReadPtr;
  79. #endif  /* __IDXARGBReadPtr_FWD_DEFINED__ */
  80. #ifndef __IDXARGBReadWritePtr_FWD_DEFINED__
  81. #define __IDXARGBReadWritePtr_FWD_DEFINED__
  82. typedef interface IDXARGBReadWritePtr IDXARGBReadWritePtr;
  83. #endif  /* __IDXARGBReadWritePtr_FWD_DEFINED__ */
  84. #ifndef __IDXDCLock_FWD_DEFINED__
  85. #define __IDXDCLock_FWD_DEFINED__
  86. typedef interface IDXDCLock IDXDCLock;
  87. #endif  /* __IDXDCLock_FWD_DEFINED__ */
  88. #ifndef __IDXTScaleOutput_FWD_DEFINED__
  89. #define __IDXTScaleOutput_FWD_DEFINED__
  90. typedef interface IDXTScaleOutput IDXTScaleOutput;
  91. #endif  /* __IDXTScaleOutput_FWD_DEFINED__ */
  92. #ifndef __IDXGradient_FWD_DEFINED__
  93. #define __IDXGradient_FWD_DEFINED__
  94. typedef interface IDXGradient IDXGradient;
  95. #endif  /* __IDXGradient_FWD_DEFINED__ */
  96. #ifndef __IDXTScale_FWD_DEFINED__
  97. #define __IDXTScale_FWD_DEFINED__
  98. typedef interface IDXTScale IDXTScale;
  99. #endif  /* __IDXTScale_FWD_DEFINED__ */
  100. #ifndef __IDXEffect_FWD_DEFINED__
  101. #define __IDXEffect_FWD_DEFINED__
  102. typedef interface IDXEffect IDXEffect;
  103. #endif  /* __IDXEffect_FWD_DEFINED__ */
  104. #ifndef __IDXLookupTable_FWD_DEFINED__
  105. #define __IDXLookupTable_FWD_DEFINED__
  106. typedef interface IDXLookupTable IDXLookupTable;
  107. #endif  /* __IDXLookupTable_FWD_DEFINED__ */
  108. #ifndef __IDXRawSurface_FWD_DEFINED__
  109. #define __IDXRawSurface_FWD_DEFINED__
  110. typedef interface IDXRawSurface IDXRawSurface;
  111. #endif  /* __IDXRawSurface_FWD_DEFINED__ */
  112. #ifndef __IHTMLDXTransform_FWD_DEFINED__
  113. #define __IHTMLDXTransform_FWD_DEFINED__
  114. typedef interface IHTMLDXTransform IHTMLDXTransform;
  115. #endif  /* __IHTMLDXTransform_FWD_DEFINED__ */
  116. #ifndef __ICSSFilterDispatch_FWD_DEFINED__
  117. #define __ICSSFilterDispatch_FWD_DEFINED__
  118. typedef interface ICSSFilterDispatch ICSSFilterDispatch;
  119. #endif  /* __ICSSFilterDispatch_FWD_DEFINED__ */
  120. #ifndef __DXTransformFactory_FWD_DEFINED__
  121. #define __DXTransformFactory_FWD_DEFINED__
  122. #ifdef __cplusplus
  123. typedef class DXTransformFactory DXTransformFactory;
  124. #else
  125. typedef struct DXTransformFactory DXTransformFactory;
  126. #endif /* __cplusplus */
  127. #endif  /* __DXTransformFactory_FWD_DEFINED__ */
  128. #ifndef __DXTaskManager_FWD_DEFINED__
  129. #define __DXTaskManager_FWD_DEFINED__
  130. #ifdef __cplusplus
  131. typedef class DXTaskManager DXTaskManager;
  132. #else
  133. typedef struct DXTaskManager DXTaskManager;
  134. #endif /* __cplusplus */
  135. #endif  /* __DXTaskManager_FWD_DEFINED__ */
  136. #ifndef __DXTScale_FWD_DEFINED__
  137. #define __DXTScale_FWD_DEFINED__
  138. #ifdef __cplusplus
  139. typedef class DXTScale DXTScale;
  140. #else
  141. typedef struct DXTScale DXTScale;
  142. #endif /* __cplusplus */
  143. #endif  /* __DXTScale_FWD_DEFINED__ */
  144. #ifndef __DXSurface_FWD_DEFINED__
  145. #define __DXSurface_FWD_DEFINED__
  146. #ifdef __cplusplus
  147. typedef class DXSurface DXSurface;
  148. #else
  149. typedef struct DXSurface DXSurface;
  150. #endif /* __cplusplus */
  151. #endif  /* __DXSurface_FWD_DEFINED__ */
  152. #ifndef __DXSurfaceModifier_FWD_DEFINED__
  153. #define __DXSurfaceModifier_FWD_DEFINED__
  154. #ifdef __cplusplus
  155. typedef class DXSurfaceModifier DXSurfaceModifier;
  156. #else
  157. typedef struct DXSurfaceModifier DXSurfaceModifier;
  158. #endif /* __cplusplus */
  159. #endif  /* __DXSurfaceModifier_FWD_DEFINED__ */
  160. #ifndef __DXGradient_FWD_DEFINED__
  161. #define __DXGradient_FWD_DEFINED__
  162. #ifdef __cplusplus
  163. typedef class DXGradient DXGradient;
  164. #else
  165. typedef struct DXGradient DXGradient;
  166. #endif /* __cplusplus */
  167. #endif  /* __DXGradient_FWD_DEFINED__ */
  168. #ifndef __DXTFilter_FWD_DEFINED__
  169. #define __DXTFilter_FWD_DEFINED__
  170. #ifdef __cplusplus
  171. typedef class DXTFilter DXTFilter;
  172. #else
  173. typedef struct DXTFilter DXTFilter;
  174. #endif /* __cplusplus */
  175. #endif  /* __DXTFilter_FWD_DEFINED__ */
  176. /* header files for imported files */
  177. #include "oaidl.h"
  178. #include "ocidl.h"
  179. #include "comcat.h"
  180. #ifdef __cplusplus
  181. extern "C"{
  182. #endif 
  183. void * __RPC_USER MIDL_user_allocate(size_t);
  184. void __RPC_USER MIDL_user_free( void * ); 
  185. /* interface __MIDL_itf_dxtrans_0000 */
  186. /* [local] */ 
  187. #include <servprov.h>
  188. #include <ddraw.h>
  189. #include <d3d.h>
  190. #include <d3drm.h>
  191. #include <urlmon.h>
  192. #if 0
  193. // Bogus definition used to make MIDL compiler happy
  194. typedef void DDSURFACEDESC;
  195. typedef void D3DRMBOX;
  196. typedef void D3DVECTOR;
  197. typedef void D3DRMMATRIX4D;
  198. typedef void *LPSECURITY_ATTRIBUTES;
  199. #endif
  200. #ifdef _DXTRANSIMPL
  201.     #define _DXTRANS_IMPL_EXT _declspec(dllexport)
  202. #else
  203.     #define _DXTRANS_IMPL_EXT _declspec(dllimport)
  204. #endif
  205. //
  206. //   All GUIDs for DXTransform are declared in DXTGUID.C in the SDK include directory
  207. //
  208. EXTERN_C const GUID DDPF_RGB1;
  209. EXTERN_C const GUID DDPF_RGB2;
  210. EXTERN_C const GUID DDPF_RGB4;
  211. EXTERN_C const GUID DDPF_RGB8;
  212. EXTERN_C const GUID DDPF_RGB332;
  213. EXTERN_C const GUID DDPF_ARGB4444;
  214. EXTERN_C const GUID DDPF_RGB565;
  215. EXTERN_C const GUID DDPF_BGR565;
  216. EXTERN_C const GUID DDPF_RGB555;
  217. EXTERN_C const GUID DDPF_ARGB1555;
  218. EXTERN_C const GUID DDPF_RGB24;
  219. EXTERN_C const GUID DDPF_BGR24;
  220. EXTERN_C const GUID DDPF_RGB32;
  221. EXTERN_C const GUID DDPF_BGR32;
  222. EXTERN_C const GUID DDPF_ABGR32;
  223. EXTERN_C const GUID DDPF_ARGB32;
  224. EXTERN_C const GUID DDPF_PMARGB32;
  225. EXTERN_C const GUID DDPF_A1;
  226. EXTERN_C const GUID DDPF_A2;
  227. EXTERN_C const GUID DDPF_A4;
  228. EXTERN_C const GUID DDPF_A8;
  229. EXTERN_C const GUID DDPF_Z8;
  230. EXTERN_C const GUID DDPF_Z16;
  231. EXTERN_C const GUID DDPF_Z24;
  232. EXTERN_C const GUID DDPF_Z32;
  233. //
  234. //   Component categories
  235. //
  236. EXTERN_C const GUID CATID_DXImageTransform;
  237. EXTERN_C const GUID CATID_DX3DTransform;
  238. EXTERN_C const GUID CATID_DXAuthoringTransform;
  239. EXTERN_C const GUID CATID_DXSurface;
  240. //
  241. //   Service IDs
  242. //
  243. EXTERN_C const GUID SID_SDirectDraw;
  244. EXTERN_C const GUID SID_SDirect3DRM;
  245. #define SID_SDXTaskManager CLSID_DXTaskManager
  246. #define SID_SDXSurfaceFactory IID_IDXSurfaceFactory
  247. #define SID_SDXTransformFactory IID_IDXTransformFactory
  248. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0000_v0_0_c_ifspec;
  249. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0000_v0_0_s_ifspec;
  250. #ifndef __IDXBaseObject_INTERFACE_DEFINED__
  251. #define __IDXBaseObject_INTERFACE_DEFINED__
  252. /* interface IDXBaseObject */
  253. /* [local][unique][helpstring][uuid][object] */ 
  254. EXTERN_C const IID IID_IDXBaseObject;
  255. #if defined(__cplusplus) && !defined(CINTERFACE)
  256.     
  257.     MIDL_INTERFACE("17B59B2B-9CC8-11d1-9053-00C04FD9189D")
  258.     IDXBaseObject : public IUnknown
  259.     {
  260.     public:
  261.         virtual HRESULT STDMETHODCALLTYPE GetGenerationId( 
  262.             /* [out] */ ULONG *pID) = 0;
  263.         
  264.         virtual HRESULT STDMETHODCALLTYPE IncrementGenerationId( 
  265.             /* [in] */ BOOL bRefresh) = 0;
  266.         
  267.         virtual HRESULT STDMETHODCALLTYPE GetObjectSize( 
  268.             /* [out] */ ULONG *pcbSize) = 0;
  269.         
  270.     };
  271.     
  272. #else  /* C style interface */
  273.     typedef struct IDXBaseObjectVtbl
  274.     {
  275.         BEGIN_INTERFACE
  276.         
  277.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  278.             IDXBaseObject * This,
  279.             /* [in] */ REFIID riid,
  280.             /* [iid_is][out] */ void **ppvObject);
  281.         
  282.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  283.             IDXBaseObject * This);
  284.         
  285.         ULONG ( STDMETHODCALLTYPE *Release )( 
  286.             IDXBaseObject * This);
  287.         
  288.         HRESULT ( STDMETHODCALLTYPE *GetGenerationId )( 
  289.             IDXBaseObject * This,
  290.             /* [out] */ ULONG *pID);
  291.         
  292.         HRESULT ( STDMETHODCALLTYPE *IncrementGenerationId )( 
  293.             IDXBaseObject * This,
  294.             /* [in] */ BOOL bRefresh);
  295.         
  296.         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
  297.             IDXBaseObject * This,
  298.             /* [out] */ ULONG *pcbSize);
  299.         
  300.         END_INTERFACE
  301.     } IDXBaseObjectVtbl;
  302.     interface IDXBaseObject
  303.     {
  304.         CONST_VTBL struct IDXBaseObjectVtbl *lpVtbl;
  305.     };
  306.     
  307. #ifdef COBJMACROS
  308. #define IDXBaseObject_QueryInterface(This,riid,ppvObject)
  309.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  310. #define IDXBaseObject_AddRef(This)
  311.     (This)->lpVtbl -> AddRef(This)
  312. #define IDXBaseObject_Release(This)
  313.     (This)->lpVtbl -> Release(This)
  314. #define IDXBaseObject_GetGenerationId(This,pID)
  315.     (This)->lpVtbl -> GetGenerationId(This,pID)
  316. #define IDXBaseObject_IncrementGenerationId(This,bRefresh)
  317.     (This)->lpVtbl -> IncrementGenerationId(This,bRefresh)
  318. #define IDXBaseObject_GetObjectSize(This,pcbSize)
  319.     (This)->lpVtbl -> GetObjectSize(This,pcbSize)
  320. #endif /* COBJMACROS */
  321. #endif  /* C style interface */
  322. HRESULT STDMETHODCALLTYPE IDXBaseObject_GetGenerationId_Proxy( 
  323.     IDXBaseObject * This,
  324.     /* [out] */ ULONG *pID);
  325. void __RPC_STUB IDXBaseObject_GetGenerationId_Stub(
  326.     IRpcStubBuffer *This,
  327.     IRpcChannelBuffer *_pRpcChannelBuffer,
  328.     PRPC_MESSAGE _pRpcMessage,
  329.     DWORD *_pdwStubPhase);
  330. HRESULT STDMETHODCALLTYPE IDXBaseObject_IncrementGenerationId_Proxy( 
  331.     IDXBaseObject * This,
  332.     /* [in] */ BOOL bRefresh);
  333. void __RPC_STUB IDXBaseObject_IncrementGenerationId_Stub(
  334.     IRpcStubBuffer *This,
  335.     IRpcChannelBuffer *_pRpcChannelBuffer,
  336.     PRPC_MESSAGE _pRpcMessage,
  337.     DWORD *_pdwStubPhase);
  338. HRESULT STDMETHODCALLTYPE IDXBaseObject_GetObjectSize_Proxy( 
  339.     IDXBaseObject * This,
  340.     /* [out] */ ULONG *pcbSize);
  341. void __RPC_STUB IDXBaseObject_GetObjectSize_Stub(
  342.     IRpcStubBuffer *This,
  343.     IRpcChannelBuffer *_pRpcChannelBuffer,
  344.     PRPC_MESSAGE _pRpcMessage,
  345.     DWORD *_pdwStubPhase);
  346. #endif  /* __IDXBaseObject_INTERFACE_DEFINED__ */
  347. /* interface __MIDL_itf_dxtrans_0258 */
  348. /* [local] */ 
  349. typedef 
  350. enum DXBNDID
  351.     { DXB_X = 0,
  352. DXB_Y = 1,
  353. DXB_Z = 2,
  354. DXB_T = 3
  355.     }  DXBNDID;
  356. typedef 
  357. enum DXBNDTYPE
  358.     { DXBT_DISCRETE = 0,
  359. DXBT_DISCRETE64 = DXBT_DISCRETE + 1,
  360. DXBT_CONTINUOUS = DXBT_DISCRETE64 + 1,
  361. DXBT_CONTINUOUS64 = DXBT_CONTINUOUS + 1
  362.     }  DXBNDTYPE;
  363. typedef struct DXDBND
  364.     {
  365.     long Min;
  366.     long Max;
  367.     }  DXDBND;
  368. typedef DXDBND DXDBNDS[ 4 ];
  369. typedef struct DXDBND64
  370.     {
  371.     LONGLONG Min;
  372.     LONGLONG Max;
  373.     }  DXDBND64;
  374. typedef DXDBND64 DXDBNDS64[ 4 ];
  375. typedef struct DXCBND
  376.     {
  377.     float Min;
  378.     float Max;
  379.     }  DXCBND;
  380. typedef DXCBND DXCBNDS[ 4 ];
  381. typedef struct DXCBND64
  382.     {
  383.     double Min;
  384.     double Max;
  385.     }  DXCBND64;
  386. typedef DXCBND64 DXCBNDS64[ 4 ];
  387. typedef struct DXBNDS
  388.     {
  389.     DXBNDTYPE eType;
  390.     /* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_dxtrans_0258_0001
  391.         {
  392.         /* [case()] */ DXDBND D[ 4 ];
  393.         /* [case()] */ DXDBND64 LD[ 4 ];
  394.         /* [case()] */ DXCBND C[ 4 ];
  395.         /* [case()] */ DXCBND64 LC[ 4 ];
  396.         }  u;
  397.     }  DXBNDS;
  398. typedef long DXDVEC[ 4 ];
  399. typedef LONGLONG DXDVEC64[ 4 ];
  400. typedef float DXCVEC[ 4 ];
  401. typedef double DXCVEC64[ 4 ];
  402. typedef struct DXVEC
  403.     {
  404.     DXBNDTYPE eType;
  405.     /* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_dxtrans_0258_0002
  406.         {
  407.         /* [case()] */ long D[ 4 ];
  408.         /* [case()] */ LONGLONG LD[ 4 ];
  409.         /* [case()] */ float C[ 4 ];
  410.         /* [case()] */ double LC[ 4 ];
  411.         }  u;
  412.     }  DXVEC;
  413. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0258_v0_0_c_ifspec;
  414. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0258_v0_0_s_ifspec;
  415. #ifndef __IDXTransformFactory_INTERFACE_DEFINED__
  416. #define __IDXTransformFactory_INTERFACE_DEFINED__
  417. /* interface IDXTransformFactory */
  418. /* [local][unique][helpstring][uuid][object] */ 
  419. EXTERN_C const IID IID_IDXTransformFactory;
  420. #if defined(__cplusplus) && !defined(CINTERFACE)
  421.     
  422.     MIDL_INTERFACE("6A950B2B-A971-11d1-81C8-0000F87557DB")
  423.     IDXTransformFactory : public IServiceProvider
  424.     {
  425.     public:
  426.         virtual HRESULT STDMETHODCALLTYPE SetService( 
  427.             /* [in] */ REFGUID guidService,
  428.             /* [in] */ IUnknown *pUnkService,
  429.             /* [in] */ BOOL bWeakReference) = 0;
  430.         
  431.         virtual HRESULT STDMETHODCALLTYPE CreateTransform( 
  432.             /* [size_is][in] */ IUnknown **punkInputs,
  433.             /* [in] */ ULONG ulNumInputs,
  434.             /* [size_is][in] */ IUnknown **punkOutputs,
  435.             /* [in] */ ULONG ulNumOutputs,
  436.             /* [in] */ IPropertyBag *pInitProps,
  437.             /* [in] */ IErrorLog *pErrLog,
  438.             /* [in] */ REFCLSID TransCLSID,
  439.             /* [in] */ REFIID TransIID,
  440.             /* [iid_is][out] */ void **ppTransform) = 0;
  441.         
  442.         virtual HRESULT STDMETHODCALLTYPE InitializeTransform( 
  443.             /* [in] */ IDXTransform *pTransform,
  444.             /* [size_is][in] */ IUnknown **punkInputs,
  445.             /* [in] */ ULONG ulNumInputs,
  446.             /* [size_is][in] */ IUnknown **punkOutputs,
  447.             /* [in] */ ULONG ulNumOutputs,
  448.             /* [in] */ IPropertyBag *pInitProps,
  449.             /* [in] */ IErrorLog *pErrLog) = 0;
  450.         
  451.     };
  452.     
  453. #else  /* C style interface */
  454.     typedef struct IDXTransformFactoryVtbl
  455.     {
  456.         BEGIN_INTERFACE
  457.         
  458.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  459.             IDXTransformFactory * This,
  460.             /* [in] */ REFIID riid,
  461.             /* [iid_is][out] */ void **ppvObject);
  462.         
  463.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  464.             IDXTransformFactory * This);
  465.         
  466.         ULONG ( STDMETHODCALLTYPE *Release )( 
  467.             IDXTransformFactory * This);
  468.         
  469.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *QueryService )( 
  470.             IDXTransformFactory * This,
  471.             /* [in] */ REFGUID guidService,
  472.             /* [in] */ REFIID riid,
  473.             /* [out] */ void **ppvObject);
  474.         
  475.         HRESULT ( STDMETHODCALLTYPE *SetService )( 
  476.             IDXTransformFactory * This,
  477.             /* [in] */ REFGUID guidService,
  478.             /* [in] */ IUnknown *pUnkService,
  479.             /* [in] */ BOOL bWeakReference);
  480.         
  481.         HRESULT ( STDMETHODCALLTYPE *CreateTransform )( 
  482.             IDXTransformFactory * This,
  483.             /* [size_is][in] */ IUnknown **punkInputs,
  484.             /* [in] */ ULONG ulNumInputs,
  485.             /* [size_is][in] */ IUnknown **punkOutputs,
  486.             /* [in] */ ULONG ulNumOutputs,
  487.             /* [in] */ IPropertyBag *pInitProps,
  488.             /* [in] */ IErrorLog *pErrLog,
  489.             /* [in] */ REFCLSID TransCLSID,
  490.             /* [in] */ REFIID TransIID,
  491.             /* [iid_is][out] */ void **ppTransform);
  492.         
  493.         HRESULT ( STDMETHODCALLTYPE *InitializeTransform )( 
  494.             IDXTransformFactory * This,
  495.             /* [in] */ IDXTransform *pTransform,
  496.             /* [size_is][in] */ IUnknown **punkInputs,
  497.             /* [in] */ ULONG ulNumInputs,
  498.             /* [size_is][in] */ IUnknown **punkOutputs,
  499.             /* [in] */ ULONG ulNumOutputs,
  500.             /* [in] */ IPropertyBag *pInitProps,
  501.             /* [in] */ IErrorLog *pErrLog);
  502.         
  503.         END_INTERFACE
  504.     } IDXTransformFactoryVtbl;
  505.     interface IDXTransformFactory
  506.     {
  507.         CONST_VTBL struct IDXTransformFactoryVtbl *lpVtbl;
  508.     };
  509.     
  510. #ifdef COBJMACROS
  511. #define IDXTransformFactory_QueryInterface(This,riid,ppvObject)
  512.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  513. #define IDXTransformFactory_AddRef(This)
  514.     (This)->lpVtbl -> AddRef(This)
  515. #define IDXTransformFactory_Release(This)
  516.     (This)->lpVtbl -> Release(This)
  517. #define IDXTransformFactory_QueryService(This,guidService,riid,ppvObject)
  518.     (This)->lpVtbl -> QueryService(This,guidService,riid,ppvObject)
  519. #define IDXTransformFactory_SetService(This,guidService,pUnkService,bWeakReference)
  520.     (This)->lpVtbl -> SetService(This,guidService,pUnkService,bWeakReference)
  521. #define IDXTransformFactory_CreateTransform(This,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,pInitProps,pErrLog,TransCLSID,TransIID,ppTransform)
  522.     (This)->lpVtbl -> CreateTransform(This,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,pInitProps,pErrLog,TransCLSID,TransIID,ppTransform)
  523. #define IDXTransformFactory_InitializeTransform(This,pTransform,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,pInitProps,pErrLog)
  524.     (This)->lpVtbl -> InitializeTransform(This,pTransform,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,pInitProps,pErrLog)
  525. #endif /* COBJMACROS */
  526. #endif  /* C style interface */
  527. HRESULT STDMETHODCALLTYPE IDXTransformFactory_SetService_Proxy( 
  528.     IDXTransformFactory * This,
  529.     /* [in] */ REFGUID guidService,
  530.     /* [in] */ IUnknown *pUnkService,
  531.     /* [in] */ BOOL bWeakReference);
  532. void __RPC_STUB IDXTransformFactory_SetService_Stub(
  533.     IRpcStubBuffer *This,
  534.     IRpcChannelBuffer *_pRpcChannelBuffer,
  535.     PRPC_MESSAGE _pRpcMessage,
  536.     DWORD *_pdwStubPhase);
  537. HRESULT STDMETHODCALLTYPE IDXTransformFactory_CreateTransform_Proxy( 
  538.     IDXTransformFactory * This,
  539.     /* [size_is][in] */ IUnknown **punkInputs,
  540.     /* [in] */ ULONG ulNumInputs,
  541.     /* [size_is][in] */ IUnknown **punkOutputs,
  542.     /* [in] */ ULONG ulNumOutputs,
  543.     /* [in] */ IPropertyBag *pInitProps,
  544.     /* [in] */ IErrorLog *pErrLog,
  545.     /* [in] */ REFCLSID TransCLSID,
  546.     /* [in] */ REFIID TransIID,
  547.     /* [iid_is][out] */ void **ppTransform);
  548. void __RPC_STUB IDXTransformFactory_CreateTransform_Stub(
  549.     IRpcStubBuffer *This,
  550.     IRpcChannelBuffer *_pRpcChannelBuffer,
  551.     PRPC_MESSAGE _pRpcMessage,
  552.     DWORD *_pdwStubPhase);
  553. HRESULT STDMETHODCALLTYPE IDXTransformFactory_InitializeTransform_Proxy( 
  554.     IDXTransformFactory * This,
  555.     /* [in] */ IDXTransform *pTransform,
  556.     /* [size_is][in] */ IUnknown **punkInputs,
  557.     /* [in] */ ULONG ulNumInputs,
  558.     /* [size_is][in] */ IUnknown **punkOutputs,
  559.     /* [in] */ ULONG ulNumOutputs,
  560.     /* [in] */ IPropertyBag *pInitProps,
  561.     /* [in] */ IErrorLog *pErrLog);
  562. void __RPC_STUB IDXTransformFactory_InitializeTransform_Stub(
  563.     IRpcStubBuffer *This,
  564.     IRpcChannelBuffer *_pRpcChannelBuffer,
  565.     PRPC_MESSAGE _pRpcMessage,
  566.     DWORD *_pdwStubPhase);
  567. #endif  /* __IDXTransformFactory_INTERFACE_DEFINED__ */
  568. /* interface __MIDL_itf_dxtrans_0259 */
  569. /* [local] */ 
  570. typedef 
  571. enum DXTMISCFLAGS
  572.     { DXTMF_BLEND_WITH_OUTPUT = 1L << 0,
  573. DXTMF_DITHER_OUTPUT = 1L << 1,
  574. DXTMF_OPTION_MASK = 0xffff,
  575. DXTMF_VALID_OPTIONS = DXTMF_BLEND_WITH_OUTPUT | DXTMF_DITHER_OUTPUT,
  576. DXTMF_BLEND_SUPPORTED = 1L << 16,
  577. DXTMF_DITHER_SUPPORTED = 1L << 17,
  578. DXTMF_INPLACE_OPERATION = 1L << 24,
  579. DXTMF_BOUNDS_SUPPORTED = 1L << 25,
  580. DXTMF_PLACEMENT_SUPPORTED = 1L << 26,
  581. DXTMF_QUALITY_SUPPORTED = 1L << 27,
  582. DXTMF_OPAQUE_RESULT = 1L << 28
  583.     }  DXTMISCFLAGS;
  584. typedef 
  585. enum DXINOUTINFOFLAGS
  586.     { DXINOUTF_OPTIONAL = 1L << 0
  587.     }  DXINOUTINFOFLAGS;
  588. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0259_v0_0_c_ifspec;
  589. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0259_v0_0_s_ifspec;
  590. #ifndef __IDXTransform_INTERFACE_DEFINED__
  591. #define __IDXTransform_INTERFACE_DEFINED__
  592. /* interface IDXTransform */
  593. /* [local][unique][helpstring][uuid][object] */ 
  594. EXTERN_C const IID IID_IDXTransform;
  595. #if defined(__cplusplus) && !defined(CINTERFACE)
  596.     
  597.     MIDL_INTERFACE("30A5FB78-E11F-11d1-9064-00C04FD9189D")
  598.     IDXTransform : public IDXBaseObject
  599.     {
  600.     public:
  601.         virtual HRESULT STDMETHODCALLTYPE Setup( 
  602.             /* [size_is][in] */ IUnknown *const *punkInputs,
  603.             /* [in] */ ULONG ulNumInputs,
  604.             /* [size_is][in] */ IUnknown *const *punkOutputs,
  605.             /* [in] */ ULONG ulNumOutputs,
  606.             /* [in] */ DWORD dwFlags) = 0;
  607.         
  608.         virtual HRESULT STDMETHODCALLTYPE Execute( 
  609.             /* [in] */ const GUID *pRequestID,
  610.             /* [in] */ const DXBNDS *pClipBnds,
  611.             /* [in] */ const DXVEC *pPlacement) = 0;
  612.         
  613.         virtual HRESULT STDMETHODCALLTYPE MapBoundsIn2Out( 
  614.             /* [in] */ const DXBNDS *pInBounds,
  615.             /* [in] */ ULONG ulNumInBnds,
  616.             /* [in] */ ULONG ulOutIndex,
  617.             /* [out] */ DXBNDS *pOutBounds) = 0;
  618.         
  619.         virtual HRESULT STDMETHODCALLTYPE MapBoundsOut2In( 
  620.             /* [in] */ ULONG ulOutIndex,
  621.             /* [in] */ const DXBNDS *pOutBounds,
  622.             /* [in] */ ULONG ulInIndex,
  623.             /* [out] */ DXBNDS *pInBounds) = 0;
  624.         
  625.         virtual HRESULT STDMETHODCALLTYPE SetMiscFlags( 
  626.             /* [in] */ DWORD dwMiscFlags) = 0;
  627.         
  628.         virtual HRESULT STDMETHODCALLTYPE GetMiscFlags( 
  629.             /* [out] */ DWORD *pdwMiscFlags) = 0;
  630.         
  631.         virtual HRESULT STDMETHODCALLTYPE GetInOutInfo( 
  632.             /* [in] */ BOOL bIsOutput,
  633.             /* [in] */ ULONG ulIndex,
  634.             /* [out] */ DWORD *pdwFlags,
  635.             /* [size_is][out] */ GUID *pIDs,
  636.             /* [out][in] */ ULONG *pcIDs,
  637.             /* [out] */ IUnknown **ppUnkCurrentObject) = 0;
  638.         
  639.         virtual HRESULT STDMETHODCALLTYPE SetQuality( 
  640.             /* [in] */ float fQuality) = 0;
  641.         
  642.         virtual HRESULT STDMETHODCALLTYPE GetQuality( 
  643.             /* [out] */ float *fQuality) = 0;
  644.         
  645.     };
  646.     
  647. #else  /* C style interface */
  648.     typedef struct IDXTransformVtbl
  649.     {
  650.         BEGIN_INTERFACE
  651.         
  652.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  653.             IDXTransform * This,
  654.             /* [in] */ REFIID riid,
  655.             /* [iid_is][out] */ void **ppvObject);
  656.         
  657.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  658.             IDXTransform * This);
  659.         
  660.         ULONG ( STDMETHODCALLTYPE *Release )( 
  661.             IDXTransform * This);
  662.         
  663.         HRESULT ( STDMETHODCALLTYPE *GetGenerationId )( 
  664.             IDXTransform * This,
  665.             /* [out] */ ULONG *pID);
  666.         
  667.         HRESULT ( STDMETHODCALLTYPE *IncrementGenerationId )( 
  668.             IDXTransform * This,
  669.             /* [in] */ BOOL bRefresh);
  670.         
  671.         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
  672.             IDXTransform * This,
  673.             /* [out] */ ULONG *pcbSize);
  674.         
  675.         HRESULT ( STDMETHODCALLTYPE *Setup )( 
  676.             IDXTransform * This,
  677.             /* [size_is][in] */ IUnknown *const *punkInputs,
  678.             /* [in] */ ULONG ulNumInputs,
  679.             /* [size_is][in] */ IUnknown *const *punkOutputs,
  680.             /* [in] */ ULONG ulNumOutputs,
  681.             /* [in] */ DWORD dwFlags);
  682.         
  683.         HRESULT ( STDMETHODCALLTYPE *Execute )( 
  684.             IDXTransform * This,
  685.             /* [in] */ const GUID *pRequestID,
  686.             /* [in] */ const DXBNDS *pClipBnds,
  687.             /* [in] */ const DXVEC *pPlacement);
  688.         
  689.         HRESULT ( STDMETHODCALLTYPE *MapBoundsIn2Out )( 
  690.             IDXTransform * This,
  691.             /* [in] */ const DXBNDS *pInBounds,
  692.             /* [in] */ ULONG ulNumInBnds,
  693.             /* [in] */ ULONG ulOutIndex,
  694.             /* [out] */ DXBNDS *pOutBounds);
  695.         
  696.         HRESULT ( STDMETHODCALLTYPE *MapBoundsOut2In )( 
  697.             IDXTransform * This,
  698.             /* [in] */ ULONG ulOutIndex,
  699.             /* [in] */ const DXBNDS *pOutBounds,
  700.             /* [in] */ ULONG ulInIndex,
  701.             /* [out] */ DXBNDS *pInBounds);
  702.         
  703.         HRESULT ( STDMETHODCALLTYPE *SetMiscFlags )( 
  704.             IDXTransform * This,
  705.             /* [in] */ DWORD dwMiscFlags);
  706.         
  707.         HRESULT ( STDMETHODCALLTYPE *GetMiscFlags )( 
  708.             IDXTransform * This,
  709.             /* [out] */ DWORD *pdwMiscFlags);
  710.         
  711.         HRESULT ( STDMETHODCALLTYPE *GetInOutInfo )( 
  712.             IDXTransform * This,
  713.             /* [in] */ BOOL bIsOutput,
  714.             /* [in] */ ULONG ulIndex,
  715.             /* [out] */ DWORD *pdwFlags,
  716.             /* [size_is][out] */ GUID *pIDs,
  717.             /* [out][in] */ ULONG *pcIDs,
  718.             /* [out] */ IUnknown **ppUnkCurrentObject);
  719.         
  720.         HRESULT ( STDMETHODCALLTYPE *SetQuality )( 
  721.             IDXTransform * This,
  722.             /* [in] */ float fQuality);
  723.         
  724.         HRESULT ( STDMETHODCALLTYPE *GetQuality )( 
  725.             IDXTransform * This,
  726.             /* [out] */ float *fQuality);
  727.         
  728.         END_INTERFACE
  729.     } IDXTransformVtbl;
  730.     interface IDXTransform
  731.     {
  732.         CONST_VTBL struct IDXTransformVtbl *lpVtbl;
  733.     };
  734.     
  735. #ifdef COBJMACROS
  736. #define IDXTransform_QueryInterface(This,riid,ppvObject)
  737.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  738. #define IDXTransform_AddRef(This)
  739.     (This)->lpVtbl -> AddRef(This)
  740. #define IDXTransform_Release(This)
  741.     (This)->lpVtbl -> Release(This)
  742. #define IDXTransform_GetGenerationId(This,pID)
  743.     (This)->lpVtbl -> GetGenerationId(This,pID)
  744. #define IDXTransform_IncrementGenerationId(This,bRefresh)
  745.     (This)->lpVtbl -> IncrementGenerationId(This,bRefresh)
  746. #define IDXTransform_GetObjectSize(This,pcbSize)
  747.     (This)->lpVtbl -> GetObjectSize(This,pcbSize)
  748. #define IDXTransform_Setup(This,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,dwFlags)
  749.     (This)->lpVtbl -> Setup(This,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,dwFlags)
  750. #define IDXTransform_Execute(This,pRequestID,pClipBnds,pPlacement)
  751.     (This)->lpVtbl -> Execute(This,pRequestID,pClipBnds,pPlacement)
  752. #define IDXTransform_MapBoundsIn2Out(This,pInBounds,ulNumInBnds,ulOutIndex,pOutBounds)
  753.     (This)->lpVtbl -> MapBoundsIn2Out(This,pInBounds,ulNumInBnds,ulOutIndex,pOutBounds)
  754. #define IDXTransform_MapBoundsOut2In(This,ulOutIndex,pOutBounds,ulInIndex,pInBounds)
  755.     (This)->lpVtbl -> MapBoundsOut2In(This,ulOutIndex,pOutBounds,ulInIndex,pInBounds)
  756. #define IDXTransform_SetMiscFlags(This,dwMiscFlags)
  757.     (This)->lpVtbl -> SetMiscFlags(This,dwMiscFlags)
  758. #define IDXTransform_GetMiscFlags(This,pdwMiscFlags)
  759.     (This)->lpVtbl -> GetMiscFlags(This,pdwMiscFlags)
  760. #define IDXTransform_GetInOutInfo(This,bIsOutput,ulIndex,pdwFlags,pIDs,pcIDs,ppUnkCurrentObject)
  761.     (This)->lpVtbl -> GetInOutInfo(This,bIsOutput,ulIndex,pdwFlags,pIDs,pcIDs,ppUnkCurrentObject)
  762. #define IDXTransform_SetQuality(This,fQuality)
  763.     (This)->lpVtbl -> SetQuality(This,fQuality)
  764. #define IDXTransform_GetQuality(This,fQuality)
  765.     (This)->lpVtbl -> GetQuality(This,fQuality)
  766. #endif /* COBJMACROS */
  767. #endif  /* C style interface */
  768. HRESULT STDMETHODCALLTYPE IDXTransform_Setup_Proxy( 
  769.     IDXTransform * This,
  770.     /* [size_is][in] */ IUnknown *const *punkInputs,
  771.     /* [in] */ ULONG ulNumInputs,
  772.     /* [size_is][in] */ IUnknown *const *punkOutputs,
  773.     /* [in] */ ULONG ulNumOutputs,
  774.     /* [in] */ DWORD dwFlags);
  775. void __RPC_STUB IDXTransform_Setup_Stub(
  776.     IRpcStubBuffer *This,
  777.     IRpcChannelBuffer *_pRpcChannelBuffer,
  778.     PRPC_MESSAGE _pRpcMessage,
  779.     DWORD *_pdwStubPhase);
  780. HRESULT STDMETHODCALLTYPE IDXTransform_Execute_Proxy( 
  781.     IDXTransform * This,
  782.     /* [in] */ const GUID *pRequestID,
  783.     /* [in] */ const DXBNDS *pClipBnds,
  784.     /* [in] */ const DXVEC *pPlacement);
  785. void __RPC_STUB IDXTransform_Execute_Stub(
  786.     IRpcStubBuffer *This,
  787.     IRpcChannelBuffer *_pRpcChannelBuffer,
  788.     PRPC_MESSAGE _pRpcMessage,
  789.     DWORD *_pdwStubPhase);
  790. HRESULT STDMETHODCALLTYPE IDXTransform_MapBoundsIn2Out_Proxy( 
  791.     IDXTransform * This,
  792.     /* [in] */ const DXBNDS *pInBounds,
  793.     /* [in] */ ULONG ulNumInBnds,
  794.     /* [in] */ ULONG ulOutIndex,
  795.     /* [out] */ DXBNDS *pOutBounds);
  796. void __RPC_STUB IDXTransform_MapBoundsIn2Out_Stub(
  797.     IRpcStubBuffer *This,
  798.     IRpcChannelBuffer *_pRpcChannelBuffer,
  799.     PRPC_MESSAGE _pRpcMessage,
  800.     DWORD *_pdwStubPhase);
  801. HRESULT STDMETHODCALLTYPE IDXTransform_MapBoundsOut2In_Proxy( 
  802.     IDXTransform * This,
  803.     /* [in] */ ULONG ulOutIndex,
  804.     /* [in] */ const DXBNDS *pOutBounds,
  805.     /* [in] */ ULONG ulInIndex,
  806.     /* [out] */ DXBNDS *pInBounds);
  807. void __RPC_STUB IDXTransform_MapBoundsOut2In_Stub(
  808.     IRpcStubBuffer *This,
  809.     IRpcChannelBuffer *_pRpcChannelBuffer,
  810.     PRPC_MESSAGE _pRpcMessage,
  811.     DWORD *_pdwStubPhase);
  812. HRESULT STDMETHODCALLTYPE IDXTransform_SetMiscFlags_Proxy( 
  813.     IDXTransform * This,
  814.     /* [in] */ DWORD dwMiscFlags);
  815. void __RPC_STUB IDXTransform_SetMiscFlags_Stub(
  816.     IRpcStubBuffer *This,
  817.     IRpcChannelBuffer *_pRpcChannelBuffer,
  818.     PRPC_MESSAGE _pRpcMessage,
  819.     DWORD *_pdwStubPhase);
  820. HRESULT STDMETHODCALLTYPE IDXTransform_GetMiscFlags_Proxy( 
  821.     IDXTransform * This,
  822.     /* [out] */ DWORD *pdwMiscFlags);
  823. void __RPC_STUB IDXTransform_GetMiscFlags_Stub(
  824.     IRpcStubBuffer *This,
  825.     IRpcChannelBuffer *_pRpcChannelBuffer,
  826.     PRPC_MESSAGE _pRpcMessage,
  827.     DWORD *_pdwStubPhase);
  828. HRESULT STDMETHODCALLTYPE IDXTransform_GetInOutInfo_Proxy( 
  829.     IDXTransform * This,
  830.     /* [in] */ BOOL bIsOutput,
  831.     /* [in] */ ULONG ulIndex,
  832.     /* [out] */ DWORD *pdwFlags,
  833.     /* [size_is][out] */ GUID *pIDs,
  834.     /* [out][in] */ ULONG *pcIDs,
  835.     /* [out] */ IUnknown **ppUnkCurrentObject);
  836. void __RPC_STUB IDXTransform_GetInOutInfo_Stub(
  837.     IRpcStubBuffer *This,
  838.     IRpcChannelBuffer *_pRpcChannelBuffer,
  839.     PRPC_MESSAGE _pRpcMessage,
  840.     DWORD *_pdwStubPhase);
  841. HRESULT STDMETHODCALLTYPE IDXTransform_SetQuality_Proxy( 
  842.     IDXTransform * This,
  843.     /* [in] */ float fQuality);
  844. void __RPC_STUB IDXTransform_SetQuality_Stub(
  845.     IRpcStubBuffer *This,
  846.     IRpcChannelBuffer *_pRpcChannelBuffer,
  847.     PRPC_MESSAGE _pRpcMessage,
  848.     DWORD *_pdwStubPhase);
  849. HRESULT STDMETHODCALLTYPE IDXTransform_GetQuality_Proxy( 
  850.     IDXTransform * This,
  851.     /* [out] */ float *fQuality);
  852. void __RPC_STUB IDXTransform_GetQuality_Stub(
  853.     IRpcStubBuffer *This,
  854.     IRpcChannelBuffer *_pRpcChannelBuffer,
  855.     PRPC_MESSAGE _pRpcMessage,
  856.     DWORD *_pdwStubPhase);
  857. #endif  /* __IDXTransform_INTERFACE_DEFINED__ */
  858. #ifndef __IDXSurfacePick_INTERFACE_DEFINED__
  859. #define __IDXSurfacePick_INTERFACE_DEFINED__
  860. /* interface IDXSurfacePick */
  861. /* [local][unique][helpstring][uuid][object] */ 
  862. EXTERN_C const IID IID_IDXSurfacePick;
  863. #if defined(__cplusplus) && !defined(CINTERFACE)
  864.     
  865.     MIDL_INTERFACE("30A5FB79-E11F-11d1-9064-00C04FD9189D")
  866.     IDXSurfacePick : public IUnknown
  867.     {
  868.     public:
  869.         virtual HRESULT STDMETHODCALLTYPE PointPick( 
  870.             /* [in] */ const DXVEC *pPoint,
  871.             /* [out] */ ULONG *pulInputSurfaceIndex,
  872.             /* [out] */ DXVEC *pInputPoint) = 0;
  873.         
  874.     };
  875.     
  876. #else  /* C style interface */
  877.     typedef struct IDXSurfacePickVtbl
  878.     {
  879.         BEGIN_INTERFACE
  880.         
  881.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  882.             IDXSurfacePick * This,
  883.             /* [in] */ REFIID riid,
  884.             /* [iid_is][out] */ void **ppvObject);
  885.         
  886.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  887.             IDXSurfacePick * This);
  888.         
  889.         ULONG ( STDMETHODCALLTYPE *Release )( 
  890.             IDXSurfacePick * This);
  891.         
  892.         HRESULT ( STDMETHODCALLTYPE *PointPick )( 
  893.             IDXSurfacePick * This,
  894.             /* [in] */ const DXVEC *pPoint,
  895.             /* [out] */ ULONG *pulInputSurfaceIndex,
  896.             /* [out] */ DXVEC *pInputPoint);
  897.         
  898.         END_INTERFACE
  899.     } IDXSurfacePickVtbl;
  900.     interface IDXSurfacePick
  901.     {
  902.         CONST_VTBL struct IDXSurfacePickVtbl *lpVtbl;
  903.     };
  904.     
  905. #ifdef COBJMACROS
  906. #define IDXSurfacePick_QueryInterface(This,riid,ppvObject)
  907.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  908. #define IDXSurfacePick_AddRef(This)
  909.     (This)->lpVtbl -> AddRef(This)
  910. #define IDXSurfacePick_Release(This)
  911.     (This)->lpVtbl -> Release(This)
  912. #define IDXSurfacePick_PointPick(This,pPoint,pulInputSurfaceIndex,pInputPoint)
  913.     (This)->lpVtbl -> PointPick(This,pPoint,pulInputSurfaceIndex,pInputPoint)
  914. #endif /* COBJMACROS */
  915. #endif  /* C style interface */
  916. HRESULT STDMETHODCALLTYPE IDXSurfacePick_PointPick_Proxy( 
  917.     IDXSurfacePick * This,
  918.     /* [in] */ const DXVEC *pPoint,
  919.     /* [out] */ ULONG *pulInputSurfaceIndex,
  920.     /* [out] */ DXVEC *pInputPoint);
  921. void __RPC_STUB IDXSurfacePick_PointPick_Stub(
  922.     IRpcStubBuffer *This,
  923.     IRpcChannelBuffer *_pRpcChannelBuffer,
  924.     PRPC_MESSAGE _pRpcMessage,
  925.     DWORD *_pdwStubPhase);
  926. #endif  /* __IDXSurfacePick_INTERFACE_DEFINED__ */
  927. #ifndef __IDXTBindHost_INTERFACE_DEFINED__
  928. #define __IDXTBindHost_INTERFACE_DEFINED__
  929. /* interface IDXTBindHost */
  930. /* [local][unique][helpstring][uuid][object] */ 
  931. EXTERN_C const IID IID_IDXTBindHost;
  932. #if defined(__cplusplus) && !defined(CINTERFACE)
  933.     
  934.     MIDL_INTERFACE("D26BCE55-E9DC-11d1-9066-00C04FD9189D")
  935.     IDXTBindHost : public IUnknown
  936.     {
  937.     public:
  938.         virtual HRESULT STDMETHODCALLTYPE SetBindHost( 
  939.             /* [in] */ IBindHost *pBindHost) = 0;
  940.         
  941.     };
  942.     
  943. #else  /* C style interface */
  944.     typedef struct IDXTBindHostVtbl
  945.     {
  946.         BEGIN_INTERFACE
  947.         
  948.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  949.             IDXTBindHost * This,
  950.             /* [in] */ REFIID riid,
  951.             /* [iid_is][out] */ void **ppvObject);
  952.         
  953.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  954.             IDXTBindHost * This);
  955.         
  956.         ULONG ( STDMETHODCALLTYPE *Release )( 
  957.             IDXTBindHost * This);
  958.         
  959.         HRESULT ( STDMETHODCALLTYPE *SetBindHost )( 
  960.             IDXTBindHost * This,
  961.             /* [in] */ IBindHost *pBindHost);
  962.         
  963.         END_INTERFACE
  964.     } IDXTBindHostVtbl;
  965.     interface IDXTBindHost
  966.     {
  967.         CONST_VTBL struct IDXTBindHostVtbl *lpVtbl;
  968.     };
  969.     
  970. #ifdef COBJMACROS
  971. #define IDXTBindHost_QueryInterface(This,riid,ppvObject)
  972.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  973. #define IDXTBindHost_AddRef(This)
  974.     (This)->lpVtbl -> AddRef(This)
  975. #define IDXTBindHost_Release(This)
  976.     (This)->lpVtbl -> Release(This)
  977. #define IDXTBindHost_SetBindHost(This,pBindHost)
  978.     (This)->lpVtbl -> SetBindHost(This,pBindHost)
  979. #endif /* COBJMACROS */
  980. #endif  /* C style interface */
  981. HRESULT STDMETHODCALLTYPE IDXTBindHost_SetBindHost_Proxy( 
  982.     IDXTBindHost * This,
  983.     /* [in] */ IBindHost *pBindHost);
  984. void __RPC_STUB IDXTBindHost_SetBindHost_Stub(
  985.     IRpcStubBuffer *This,
  986.     IRpcChannelBuffer *_pRpcChannelBuffer,
  987.     PRPC_MESSAGE _pRpcMessage,
  988.     DWORD *_pdwStubPhase);
  989. #endif  /* __IDXTBindHost_INTERFACE_DEFINED__ */
  990. /* interface __MIDL_itf_dxtrans_0262 */
  991. /* [local] */ 
  992. typedef void __stdcall __stdcall DXTASKPROC( 
  993.     void *pTaskData,
  994.     BOOL *pbContinueProcessing);
  995. typedef DXTASKPROC *PFNDXTASKPROC;
  996. typedef void __stdcall __stdcall DXAPCPROC( 
  997.     DWORD dwData);
  998. typedef DXAPCPROC *PFNDXAPCPROC;
  999. #ifdef __cplusplus
  1000. typedef struct DXTMTASKINFO
  1001. {
  1002.     PFNDXTASKPROC pfnTaskProc;       // Pointer to function to execute
  1003.     PVOID         pTaskData;         // Pointer to argument data
  1004.     PFNDXAPCPROC  pfnCompletionAPC;  // Pointer to completion APC proc
  1005.     DWORD         dwCompletionData;  // Pointer to APC proc data
  1006.     const GUID*   pRequestID;        // Used to identify groups of tasks
  1007. } DXTMTASKINFO;
  1008. #else
  1009. typedef struct DXTMTASKINFO
  1010.     {
  1011.     PVOID pfnTaskProc;
  1012.     PVOID pTaskData;
  1013.     PVOID pfnCompletionAPC;
  1014.     DWORD dwCompletionData;
  1015.     const GUID *pRequestID;
  1016.     }  DXTMTASKINFO;
  1017. #endif
  1018. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0262_v0_0_c_ifspec;
  1019. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0262_v0_0_s_ifspec;
  1020. #ifndef __IDXTaskManager_INTERFACE_DEFINED__
  1021. #define __IDXTaskManager_INTERFACE_DEFINED__
  1022. /* interface IDXTaskManager */
  1023. /* [local][unique][helpstring][uuid][object] */ 
  1024. EXTERN_C const IID IID_IDXTaskManager;
  1025. #if defined(__cplusplus) && !defined(CINTERFACE)
  1026.     
  1027.     MIDL_INTERFACE("254DBBC1-F922-11d0-883A-3C8B00C10000")
  1028.     IDXTaskManager : public IUnknown
  1029.     {
  1030.     public:
  1031.         virtual HRESULT STDMETHODCALLTYPE QueryNumProcessors( 
  1032.             /* [out] */ ULONG *pulNumProc) = 0;
  1033.         
  1034.         virtual HRESULT STDMETHODCALLTYPE SetThreadPoolSize( 
  1035.             /* [in] */ ULONG ulNumThreads) = 0;
  1036.         
  1037.         virtual HRESULT STDMETHODCALLTYPE GetThreadPoolSize( 
  1038.             /* [out] */ ULONG *pulNumThreads) = 0;
  1039.         
  1040.         virtual HRESULT STDMETHODCALLTYPE SetConcurrencyLimit( 
  1041.             /* [in] */ ULONG ulNumThreads) = 0;
  1042.         
  1043.         virtual HRESULT STDMETHODCALLTYPE GetConcurrencyLimit( 
  1044.             /* [out] */ ULONG *pulNumThreads) = 0;
  1045.         
  1046.         virtual HRESULT STDMETHODCALLTYPE ScheduleTasks( 
  1047.             /* [in] */ DXTMTASKINFO TaskInfo[  ],
  1048.             /* [in] */ HANDLE Events[  ],
  1049.             /* [out] */ DWORD TaskIDs[  ],
  1050.             /* [in] */ ULONG ulNumTasks,
  1051.             /* [in] */ ULONG ulWaitPeriod) = 0;
  1052.         
  1053.         virtual HRESULT STDMETHODCALLTYPE TerminateTasks( 
  1054.             /* [in] */ DWORD TaskIDs[  ],
  1055.             /* [in] */ ULONG ulCount,
  1056.             /* [in] */ ULONG ulTimeOut) = 0;
  1057.         
  1058.         virtual HRESULT STDMETHODCALLTYPE TerminateRequest( 
  1059.             /* [in] */ REFIID RequestID,
  1060.             /* [in] */ ULONG ulTimeOut) = 0;
  1061.         
  1062.     };
  1063.     
  1064. #else  /* C style interface */
  1065.     typedef struct IDXTaskManagerVtbl
  1066.     {
  1067.         BEGIN_INTERFACE
  1068.         
  1069.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1070.             IDXTaskManager * This,
  1071.             /* [in] */ REFIID riid,
  1072.             /* [iid_is][out] */ void **ppvObject);
  1073.         
  1074.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1075.             IDXTaskManager * This);
  1076.         
  1077.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1078.             IDXTaskManager * This);
  1079.         
  1080.         HRESULT ( STDMETHODCALLTYPE *QueryNumProcessors )( 
  1081.             IDXTaskManager * This,
  1082.             /* [out] */ ULONG *pulNumProc);
  1083.         
  1084.         HRESULT ( STDMETHODCALLTYPE *SetThreadPoolSize )( 
  1085.             IDXTaskManager * This,
  1086.             /* [in] */ ULONG ulNumThreads);
  1087.         
  1088.         HRESULT ( STDMETHODCALLTYPE *GetThreadPoolSize )( 
  1089.             IDXTaskManager * This,
  1090.             /* [out] */ ULONG *pulNumThreads);
  1091.         
  1092.         HRESULT ( STDMETHODCALLTYPE *SetConcurrencyLimit )( 
  1093.             IDXTaskManager * This,
  1094.             /* [in] */ ULONG ulNumThreads);
  1095.         
  1096.         HRESULT ( STDMETHODCALLTYPE *GetConcurrencyLimit )( 
  1097.             IDXTaskManager * This,
  1098.             /* [out] */ ULONG *pulNumThreads);
  1099.         
  1100.         HRESULT ( STDMETHODCALLTYPE *ScheduleTasks )( 
  1101.             IDXTaskManager * This,
  1102.             /* [in] */ DXTMTASKINFO TaskInfo[  ],
  1103.             /* [in] */ HANDLE Events[  ],
  1104.             /* [out] */ DWORD TaskIDs[  ],
  1105.             /* [in] */ ULONG ulNumTasks,
  1106.             /* [in] */ ULONG ulWaitPeriod);
  1107.         
  1108.         HRESULT ( STDMETHODCALLTYPE *TerminateTasks )( 
  1109.             IDXTaskManager * This,
  1110.             /* [in] */ DWORD TaskIDs[  ],
  1111.             /* [in] */ ULONG ulCount,
  1112.             /* [in] */ ULONG ulTimeOut);
  1113.         
  1114.         HRESULT ( STDMETHODCALLTYPE *TerminateRequest )( 
  1115.             IDXTaskManager * This,
  1116.             /* [in] */ REFIID RequestID,
  1117.             /* [in] */ ULONG ulTimeOut);
  1118.         
  1119.         END_INTERFACE
  1120.     } IDXTaskManagerVtbl;
  1121.     interface IDXTaskManager
  1122.     {
  1123.         CONST_VTBL struct IDXTaskManagerVtbl *lpVtbl;
  1124.     };
  1125.     
  1126. #ifdef COBJMACROS
  1127. #define IDXTaskManager_QueryInterface(This,riid,ppvObject)
  1128.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1129. #define IDXTaskManager_AddRef(This)
  1130.     (This)->lpVtbl -> AddRef(This)
  1131. #define IDXTaskManager_Release(This)
  1132.     (This)->lpVtbl -> Release(This)
  1133. #define IDXTaskManager_QueryNumProcessors(This,pulNumProc)
  1134.     (This)->lpVtbl -> QueryNumProcessors(This,pulNumProc)
  1135. #define IDXTaskManager_SetThreadPoolSize(This,ulNumThreads)
  1136.     (This)->lpVtbl -> SetThreadPoolSize(This,ulNumThreads)
  1137. #define IDXTaskManager_GetThreadPoolSize(This,pulNumThreads)
  1138.     (This)->lpVtbl -> GetThreadPoolSize(This,pulNumThreads)
  1139. #define IDXTaskManager_SetConcurrencyLimit(This,ulNumThreads)
  1140.     (This)->lpVtbl -> SetConcurrencyLimit(This,ulNumThreads)
  1141. #define IDXTaskManager_GetConcurrencyLimit(This,pulNumThreads)
  1142.     (This)->lpVtbl -> GetConcurrencyLimit(This,pulNumThreads)
  1143. #define IDXTaskManager_ScheduleTasks(This,TaskInfo,Events,TaskIDs,ulNumTasks,ulWaitPeriod)
  1144.     (This)->lpVtbl -> ScheduleTasks(This,TaskInfo,Events,TaskIDs,ulNumTasks,ulWaitPeriod)
  1145. #define IDXTaskManager_TerminateTasks(This,TaskIDs,ulCount,ulTimeOut)
  1146.     (This)->lpVtbl -> TerminateTasks(This,TaskIDs,ulCount,ulTimeOut)
  1147. #define IDXTaskManager_TerminateRequest(This,RequestID,ulTimeOut)
  1148.     (This)->lpVtbl -> TerminateRequest(This,RequestID,ulTimeOut)
  1149. #endif /* COBJMACROS */
  1150. #endif  /* C style interface */
  1151. HRESULT STDMETHODCALLTYPE IDXTaskManager_QueryNumProcessors_Proxy( 
  1152.     IDXTaskManager * This,
  1153.     /* [out] */ ULONG *pulNumProc);
  1154. void __RPC_STUB IDXTaskManager_QueryNumProcessors_Stub(
  1155.     IRpcStubBuffer *This,
  1156.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1157.     PRPC_MESSAGE _pRpcMessage,
  1158.     DWORD *_pdwStubPhase);
  1159. HRESULT STDMETHODCALLTYPE IDXTaskManager_SetThreadPoolSize_Proxy( 
  1160.     IDXTaskManager * This,
  1161.     /* [in] */ ULONG ulNumThreads);
  1162. void __RPC_STUB IDXTaskManager_SetThreadPoolSize_Stub(
  1163.     IRpcStubBuffer *This,
  1164.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1165.     PRPC_MESSAGE _pRpcMessage,
  1166.     DWORD *_pdwStubPhase);
  1167. HRESULT STDMETHODCALLTYPE IDXTaskManager_GetThreadPoolSize_Proxy( 
  1168.     IDXTaskManager * This,
  1169.     /* [out] */ ULONG *pulNumThreads);
  1170. void __RPC_STUB IDXTaskManager_GetThreadPoolSize_Stub(
  1171.     IRpcStubBuffer *This,
  1172.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1173.     PRPC_MESSAGE _pRpcMessage,
  1174.     DWORD *_pdwStubPhase);
  1175. HRESULT STDMETHODCALLTYPE IDXTaskManager_SetConcurrencyLimit_Proxy( 
  1176.     IDXTaskManager * This,
  1177.     /* [in] */ ULONG ulNumThreads);
  1178. void __RPC_STUB IDXTaskManager_SetConcurrencyLimit_Stub(
  1179.     IRpcStubBuffer *This,
  1180.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1181.     PRPC_MESSAGE _pRpcMessage,
  1182.     DWORD *_pdwStubPhase);
  1183. HRESULT STDMETHODCALLTYPE IDXTaskManager_GetConcurrencyLimit_Proxy( 
  1184.     IDXTaskManager * This,
  1185.     /* [out] */ ULONG *pulNumThreads);
  1186. void __RPC_STUB IDXTaskManager_GetConcurrencyLimit_Stub(
  1187.     IRpcStubBuffer *This,
  1188.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1189.     PRPC_MESSAGE _pRpcMessage,
  1190.     DWORD *_pdwStubPhase);
  1191. HRESULT STDMETHODCALLTYPE IDXTaskManager_ScheduleTasks_Proxy( 
  1192.     IDXTaskManager * This,
  1193.     /* [in] */ DXTMTASKINFO TaskInfo[  ],
  1194.     /* [in] */ HANDLE Events[  ],
  1195.     /* [out] */ DWORD TaskIDs[  ],
  1196.     /* [in] */ ULONG ulNumTasks,
  1197.     /* [in] */ ULONG ulWaitPeriod);
  1198. void __RPC_STUB IDXTaskManager_ScheduleTasks_Stub(
  1199.     IRpcStubBuffer *This,
  1200.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1201.     PRPC_MESSAGE _pRpcMessage,
  1202.     DWORD *_pdwStubPhase);
  1203. HRESULT STDMETHODCALLTYPE IDXTaskManager_TerminateTasks_Proxy( 
  1204.     IDXTaskManager * This,
  1205.     /* [in] */ DWORD TaskIDs[  ],
  1206.     /* [in] */ ULONG ulCount,
  1207.     /* [in] */ ULONG ulTimeOut);
  1208. void __RPC_STUB IDXTaskManager_TerminateTasks_Stub(
  1209.     IRpcStubBuffer *This,
  1210.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1211.     PRPC_MESSAGE _pRpcMessage,
  1212.     DWORD *_pdwStubPhase);
  1213. HRESULT STDMETHODCALLTYPE IDXTaskManager_TerminateRequest_Proxy( 
  1214.     IDXTaskManager * This,
  1215.     /* [in] */ REFIID RequestID,
  1216.     /* [in] */ ULONG ulTimeOut);
  1217. void __RPC_STUB IDXTaskManager_TerminateRequest_Stub(
  1218.     IRpcStubBuffer *This,
  1219.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1220.     PRPC_MESSAGE _pRpcMessage,
  1221.     DWORD *_pdwStubPhase);
  1222. #endif  /* __IDXTaskManager_INTERFACE_DEFINED__ */
  1223. /* interface __MIDL_itf_dxtrans_0263 */
  1224. /* [local] */ 
  1225. #ifdef __cplusplus
  1226. /////////////////////////////////////////////////////
  1227. class DXBASESAMPLE;
  1228. class DXSAMPLE;
  1229. class DXPMSAMPLE;
  1230. /////////////////////////////////////////////////////
  1231. class DXBASESAMPLE
  1232. {
  1233. public:
  1234.     BYTE Blue;
  1235.     BYTE Green;
  1236.     BYTE Red;
  1237.     BYTE Alpha;
  1238.     DXBASESAMPLE() {}
  1239.     DXBASESAMPLE(const BYTE alpha, const BYTE red, const BYTE green, const BYTE blue) :
  1240.         Alpha(alpha),
  1241.         Red(red),
  1242.         Green(green),
  1243.         Blue(blue) {}
  1244.     DXBASESAMPLE(const DWORD val) { *this = (*(DXBASESAMPLE *)&val); }
  1245.     operator DWORD () const {return *((DWORD *)this); }
  1246.     DWORD operator=(const DWORD val) { return *this = *((DXBASESAMPLE *)&val); }
  1247. }; // DXBASESAMPLE
  1248. /////////////////////////////////////////////////////
  1249. class DXSAMPLE : public DXBASESAMPLE
  1250. {
  1251. public:
  1252.     DXSAMPLE() {}
  1253.     DXSAMPLE(const BYTE alpha, const BYTE red, const BYTE green, const BYTE blue) :
  1254.          DXBASESAMPLE(alpha, red, green, blue) {}
  1255.     DXSAMPLE(const DWORD val) { *this = (*(DXSAMPLE *)&val); }
  1256.     operator DWORD () const {return *((DWORD *)this); }
  1257.     DWORD operator=(const DWORD val) { return *this = *((DXSAMPLE *)&val); }
  1258.     operator DXPMSAMPLE() const;
  1259. }; // DXSAMPLE
  1260. /////////////////////////////////////////////////////
  1261. class DXPMSAMPLE : public DXBASESAMPLE
  1262. {
  1263. public:
  1264.     DXPMSAMPLE() {}
  1265.     DXPMSAMPLE(const BYTE alpha, const BYTE red, const BYTE green, const BYTE blue) :
  1266.          DXBASESAMPLE(alpha, red, green, blue) {}
  1267.     DXPMSAMPLE(const DWORD val) { *this = (*(DXPMSAMPLE *)&val); }
  1268.     operator DWORD () const {return *((DWORD *)this); }
  1269.     DWORD operator=(const DWORD val) { return *this = *((DXPMSAMPLE *)&val); }
  1270.     operator DXSAMPLE() const;
  1271. }; // DXPMSAMPLE
  1272. //
  1273. // The following cast operators are to prevent a direct assignment of a DXSAMPLE to a DXPMSAMPLE
  1274. //
  1275. inline DXSAMPLE::operator DXPMSAMPLE() const { return *((DXPMSAMPLE *)this); }
  1276. inline DXPMSAMPLE::operator DXSAMPLE() const { return *((DXSAMPLE *)this); }
  1277. #else // !__cplusplus
  1278. typedef struct DXBASESAMPLE
  1279.     {
  1280.     BYTE Blue;
  1281.     BYTE Green;
  1282.     BYTE Red;
  1283.     BYTE Alpha;
  1284.     }  DXBASESAMPLE;
  1285. typedef struct DXSAMPLE
  1286.     {
  1287.     BYTE Blue;
  1288.     BYTE Green;
  1289.     BYTE Red;
  1290.     BYTE Alpha;
  1291.     }  DXSAMPLE;
  1292. typedef struct DXPMSAMPLE
  1293.     {
  1294.     BYTE Blue;
  1295.     BYTE Green;
  1296.     BYTE Red;
  1297.     BYTE Alpha;
  1298.     }  DXPMSAMPLE;
  1299. #endif // !__cplusplus
  1300. typedef 
  1301. enum DXRUNTYPE
  1302.     { DXRUNTYPE_CLEAR = 0,
  1303. DXRUNTYPE_OPAQUE = 1,
  1304. DXRUNTYPE_TRANS = 2,
  1305. DXRUNTYPE_UNKNOWN = 3
  1306.     }  DXRUNTYPE;
  1307. #define DX_MAX_RUN_INFO_COUNT ( 128 )
  1308. // Ignore the definition used by MIDL for TLB generation
  1309. #if 0
  1310. typedef struct DXRUNINFO
  1311.     {
  1312.     ULONG Bitfields;
  1313.     }  DXRUNINFO;
  1314. #endif // 0
  1315. typedef struct DXRUNINFO
  1316. {
  1317.     ULONG   Type  : 2;   // Type
  1318.     ULONG   Count : 30;  // Number of samples in run
  1319. } DXRUNINFO;
  1320. typedef 
  1321. enum DXSFCREATE
  1322.     { DXSF_FORMAT_IS_CLSID = 1L << 0,
  1323. DXSF_NO_LAZY_DDRAW_LOCK = 1L << 1
  1324.     }  DXSFCREATE;
  1325. typedef 
  1326. enum DXBLTOPTIONS
  1327.     { DXBOF_DO_OVER = 1L << 0,
  1328. DXBOF_DITHER = 1L << 1
  1329.     }  DXBLTOPTIONS;
  1330. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0263_v0_0_c_ifspec;
  1331. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0263_v0_0_s_ifspec;
  1332. #ifndef __IDXSurfaceFactory_INTERFACE_DEFINED__
  1333. #define __IDXSurfaceFactory_INTERFACE_DEFINED__
  1334. /* interface IDXSurfaceFactory */
  1335. /* [local][unique][helpstring][uuid][object] */ 
  1336. EXTERN_C const IID IID_IDXSurfaceFactory;
  1337. #if defined(__cplusplus) && !defined(CINTERFACE)
  1338.     
  1339.     MIDL_INTERFACE("144946F5-C4D4-11d1-81D1-0000F87557DB")
  1340.     IDXSurfaceFactory : public IUnknown
  1341.     {
  1342.     public:
  1343.         virtual HRESULT STDMETHODCALLTYPE CreateSurface( 
  1344.             /* [in] */ IUnknown *pDirectDraw,
  1345.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1346.             /* [in] */ const GUID *pFormatID,
  1347.             /* [in] */ const DXBNDS *pBounds,
  1348.             /* [in] */ DWORD dwFlags,
  1349.             /* [in] */ IUnknown *punkOuter,
  1350.             /* [in] */ REFIID riid,
  1351.             /* [iid_is][out] */ void **ppDXSurface) = 0;
  1352.         
  1353.         virtual HRESULT STDMETHODCALLTYPE CreateFromDDSurface( 
  1354.             /* [in] */ IUnknown *pDDrawSurface,
  1355.             /* [in] */ const GUID *pFormatID,
  1356.             /* [in] */ DWORD dwFlags,
  1357.             /* [in] */ IUnknown *punkOuter,
  1358.             /* [in] */ REFIID riid,
  1359.             /* [iid_is][out] */ void **ppDXSurface) = 0;
  1360.         
  1361.         virtual HRESULT STDMETHODCALLTYPE LoadImage( 
  1362.             /* [in] */ const LPWSTR pszFileName,
  1363.             /* [in] */ IUnknown *pDirectDraw,
  1364.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1365.             /* [in] */ const GUID *pFormatID,
  1366.             /* [in] */ REFIID riid,
  1367.             /* [iid_is][out] */ void **ppDXSurface) = 0;
  1368.         
  1369.         virtual HRESULT STDMETHODCALLTYPE LoadImageFromStream( 
  1370.             /* [in] */ IStream *pStream,
  1371.             /* [in] */ IUnknown *pDirectDraw,
  1372.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1373.             /* [in] */ const GUID *pFormatID,
  1374.             /* [in] */ REFIID riid,
  1375.             /* [iid_is][out] */ void **ppDXSurface) = 0;
  1376.         
  1377.         virtual HRESULT STDMETHODCALLTYPE CopySurfaceToNewFormat( 
  1378.             /* [in] */ IDXSurface *pSrc,
  1379.             /* [in] */ IUnknown *pDirectDraw,
  1380.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1381.             /* [in] */ const GUID *pDestFormatID,
  1382.             /* [out] */ IDXSurface **ppNewSurface) = 0;
  1383.         
  1384.         virtual HRESULT STDMETHODCALLTYPE CreateD3DRMTexture( 
  1385.             /* [in] */ IDXSurface *pSrc,
  1386.             /* [in] */ IUnknown *pDirectDraw,
  1387.             /* [in] */ IUnknown *pD3DRM3,
  1388.             /* [in] */ REFIID riid,
  1389.             /* [iid_is][out] */ void **ppTexture3) = 0;
  1390.         
  1391.         virtual HRESULT STDMETHODCALLTYPE BitBlt( 
  1392.             /* [in] */ IDXSurface *pDest,
  1393.             /* [in] */ const DXVEC *pPlacement,
  1394.             /* [in] */ IDXSurface *pSrc,
  1395.             /* [in] */ const DXBNDS *pClipBounds,
  1396.             /* [in] */ DWORD dwFlags) = 0;
  1397.         
  1398.     };
  1399.     
  1400. #else  /* C style interface */
  1401.     typedef struct IDXSurfaceFactoryVtbl
  1402.     {
  1403.         BEGIN_INTERFACE
  1404.         
  1405.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1406.             IDXSurfaceFactory * This,
  1407.             /* [in] */ REFIID riid,
  1408.             /* [iid_is][out] */ void **ppvObject);
  1409.         
  1410.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1411.             IDXSurfaceFactory * This);
  1412.         
  1413.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1414.             IDXSurfaceFactory * This);
  1415.         
  1416.         HRESULT ( STDMETHODCALLTYPE *CreateSurface )( 
  1417.             IDXSurfaceFactory * This,
  1418.             /* [in] */ IUnknown *pDirectDraw,
  1419.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1420.             /* [in] */ const GUID *pFormatID,
  1421.             /* [in] */ const DXBNDS *pBounds,
  1422.             /* [in] */ DWORD dwFlags,
  1423.             /* [in] */ IUnknown *punkOuter,
  1424.             /* [in] */ REFIID riid,
  1425.             /* [iid_is][out] */ void **ppDXSurface);
  1426.         
  1427.         HRESULT ( STDMETHODCALLTYPE *CreateFromDDSurface )( 
  1428.             IDXSurfaceFactory * This,
  1429.             /* [in] */ IUnknown *pDDrawSurface,
  1430.             /* [in] */ const GUID *pFormatID,
  1431.             /* [in] */ DWORD dwFlags,
  1432.             /* [in] */ IUnknown *punkOuter,
  1433.             /* [in] */ REFIID riid,
  1434.             /* [iid_is][out] */ void **ppDXSurface);
  1435.         
  1436.         HRESULT ( STDMETHODCALLTYPE *LoadImage )( 
  1437.             IDXSurfaceFactory * This,
  1438.             /* [in] */ const LPWSTR pszFileName,
  1439.             /* [in] */ IUnknown *pDirectDraw,
  1440.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1441.             /* [in] */ const GUID *pFormatID,
  1442.             /* [in] */ REFIID riid,
  1443.             /* [iid_is][out] */ void **ppDXSurface);
  1444.         
  1445.         HRESULT ( STDMETHODCALLTYPE *LoadImageFromStream )( 
  1446.             IDXSurfaceFactory * This,
  1447.             /* [in] */ IStream *pStream,
  1448.             /* [in] */ IUnknown *pDirectDraw,
  1449.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1450.             /* [in] */ const GUID *pFormatID,
  1451.             /* [in] */ REFIID riid,
  1452.             /* [iid_is][out] */ void **ppDXSurface);
  1453.         
  1454.         HRESULT ( STDMETHODCALLTYPE *CopySurfaceToNewFormat )( 
  1455.             IDXSurfaceFactory * This,
  1456.             /* [in] */ IDXSurface *pSrc,
  1457.             /* [in] */ IUnknown *pDirectDraw,
  1458.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1459.             /* [in] */ const GUID *pDestFormatID,
  1460.             /* [out] */ IDXSurface **ppNewSurface);
  1461.         
  1462.         HRESULT ( STDMETHODCALLTYPE *CreateD3DRMTexture )( 
  1463.             IDXSurfaceFactory * This,
  1464.             /* [in] */ IDXSurface *pSrc,
  1465.             /* [in] */ IUnknown *pDirectDraw,
  1466.             /* [in] */ IUnknown *pD3DRM3,
  1467.             /* [in] */ REFIID riid,
  1468.             /* [iid_is][out] */ void **ppTexture3);
  1469.         
  1470.         HRESULT ( STDMETHODCALLTYPE *BitBlt )( 
  1471.             IDXSurfaceFactory * This,
  1472.             /* [in] */ IDXSurface *pDest,
  1473.             /* [in] */ const DXVEC *pPlacement,
  1474.             /* [in] */ IDXSurface *pSrc,
  1475.             /* [in] */ const DXBNDS *pClipBounds,
  1476.             /* [in] */ DWORD dwFlags);
  1477.         
  1478.         END_INTERFACE
  1479.     } IDXSurfaceFactoryVtbl;
  1480.     interface IDXSurfaceFactory
  1481.     {
  1482.         CONST_VTBL struct IDXSurfaceFactoryVtbl *lpVtbl;
  1483.     };
  1484.     
  1485. #ifdef COBJMACROS
  1486. #define IDXSurfaceFactory_QueryInterface(This,riid,ppvObject)
  1487.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1488. #define IDXSurfaceFactory_AddRef(This)
  1489.     (This)->lpVtbl -> AddRef(This)
  1490. #define IDXSurfaceFactory_Release(This)
  1491.     (This)->lpVtbl -> Release(This)
  1492. #define IDXSurfaceFactory_CreateSurface(This,pDirectDraw,pDDSurfaceDesc,pFormatID,pBounds,dwFlags,punkOuter,riid,ppDXSurface)
  1493.     (This)->lpVtbl -> CreateSurface(This,pDirectDraw,pDDSurfaceDesc,pFormatID,pBounds,dwFlags,punkOuter,riid,ppDXSurface)
  1494. #define IDXSurfaceFactory_CreateFromDDSurface(This,pDDrawSurface,pFormatID,dwFlags,punkOuter,riid,ppDXSurface)
  1495.     (This)->lpVtbl -> CreateFromDDSurface(This,pDDrawSurface,pFormatID,dwFlags,punkOuter,riid,ppDXSurface)
  1496. #define IDXSurfaceFactory_LoadImage(This,pszFileName,pDirectDraw,pDDSurfaceDesc,pFormatID,riid,ppDXSurface)
  1497.     (This)->lpVtbl -> LoadImage(This,pszFileName,pDirectDraw,pDDSurfaceDesc,pFormatID,riid,ppDXSurface)
  1498. #define IDXSurfaceFactory_LoadImageFromStream(This,pStream,pDirectDraw,pDDSurfaceDesc,pFormatID,riid,ppDXSurface)
  1499.     (This)->lpVtbl -> LoadImageFromStream(This,pStream,pDirectDraw,pDDSurfaceDesc,pFormatID,riid,ppDXSurface)
  1500. #define IDXSurfaceFactory_CopySurfaceToNewFormat(This,pSrc,pDirectDraw,pDDSurfaceDesc,pDestFormatID,ppNewSurface)
  1501.     (This)->lpVtbl -> CopySurfaceToNewFormat(This,pSrc,pDirectDraw,pDDSurfaceDesc,pDestFormatID,ppNewSurface)
  1502. #define IDXSurfaceFactory_CreateD3DRMTexture(This,pSrc,pDirectDraw,pD3DRM3,riid,ppTexture3)
  1503.     (This)->lpVtbl -> CreateD3DRMTexture(This,pSrc,pDirectDraw,pD3DRM3,riid,ppTexture3)
  1504. #define IDXSurfaceFactory_BitBlt(This,pDest,pPlacement,pSrc,pClipBounds,dwFlags)
  1505.     (This)->lpVtbl -> BitBlt(This,pDest,pPlacement,pSrc,pClipBounds,dwFlags)
  1506. #endif /* COBJMACROS */
  1507. #endif  /* C style interface */
  1508. HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CreateSurface_Proxy( 
  1509.     IDXSurfaceFactory * This,
  1510.     /* [in] */ IUnknown *pDirectDraw,
  1511.     /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1512.     /* [in] */ const GUID *pFormatID,
  1513.     /* [in] */ const DXBNDS *pBounds,
  1514.     /* [in] */ DWORD dwFlags,
  1515.     /* [in] */ IUnknown *punkOuter,
  1516.     /* [in] */ REFIID riid,
  1517.     /* [iid_is][out] */ void **ppDXSurface);
  1518. void __RPC_STUB IDXSurfaceFactory_CreateSurface_Stub(
  1519.     IRpcStubBuffer *This,
  1520.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1521.     PRPC_MESSAGE _pRpcMessage,
  1522.     DWORD *_pdwStubPhase);
  1523. HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CreateFromDDSurface_Proxy( 
  1524.     IDXSurfaceFactory * This,
  1525.     /* [in] */ IUnknown *pDDrawSurface,
  1526.     /* [in] */ const GUID *pFormatID,
  1527.     /* [in] */ DWORD dwFlags,
  1528.     /* [in] */ IUnknown *punkOuter,
  1529.     /* [in] */ REFIID riid,
  1530.     /* [iid_is][out] */ void **ppDXSurface);
  1531. void __RPC_STUB IDXSurfaceFactory_CreateFromDDSurface_Stub(
  1532.     IRpcStubBuffer *This,
  1533.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1534.     PRPC_MESSAGE _pRpcMessage,
  1535.     DWORD *_pdwStubPhase);
  1536. HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_LoadImage_Proxy( 
  1537.     IDXSurfaceFactory * This,
  1538.     /* [in] */ const LPWSTR pszFileName,
  1539.     /* [in] */ IUnknown *pDirectDraw,
  1540.     /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1541.     /* [in] */ const GUID *pFormatID,
  1542.     /* [in] */ REFIID riid,
  1543.     /* [iid_is][out] */ void **ppDXSurface);
  1544. void __RPC_STUB IDXSurfaceFactory_LoadImage_Stub(
  1545.     IRpcStubBuffer *This,
  1546.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1547.     PRPC_MESSAGE _pRpcMessage,
  1548.     DWORD *_pdwStubPhase);
  1549. HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_LoadImageFromStream_Proxy( 
  1550.     IDXSurfaceFactory * This,
  1551.     /* [in] */ IStream *pStream,
  1552.     /* [in] */ IUnknown *pDirectDraw,
  1553.     /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1554.     /* [in] */ const GUID *pFormatID,
  1555.     /* [in] */ REFIID riid,
  1556.     /* [iid_is][out] */ void **ppDXSurface);
  1557. void __RPC_STUB IDXSurfaceFactory_LoadImageFromStream_Stub(
  1558.     IRpcStubBuffer *This,
  1559.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1560.     PRPC_MESSAGE _pRpcMessage,
  1561.     DWORD *_pdwStubPhase);
  1562. HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CopySurfaceToNewFormat_Proxy( 
  1563.     IDXSurfaceFactory * This,
  1564.     /* [in] */ IDXSurface *pSrc,
  1565.     /* [in] */ IUnknown *pDirectDraw,
  1566.     /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1567.     /* [in] */ const GUID *pDestFormatID,
  1568.     /* [out] */ IDXSurface **ppNewSurface);
  1569. void __RPC_STUB IDXSurfaceFactory_CopySurfaceToNewFormat_Stub(
  1570.     IRpcStubBuffer *This,
  1571.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1572.     PRPC_MESSAGE _pRpcMessage,
  1573.     DWORD *_pdwStubPhase);
  1574. HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CreateD3DRMTexture_Proxy( 
  1575.     IDXSurfaceFactory * This,
  1576.     /* [in] */ IDXSurface *pSrc,
  1577.     /* [in] */ IUnknown *pDirectDraw,
  1578.     /* [in] */ IUnknown *pD3DRM3,
  1579.     /* [in] */ REFIID riid,
  1580.     /* [iid_is][out] */ void **ppTexture3);
  1581. void __RPC_STUB IDXSurfaceFactory_CreateD3DRMTexture_Stub(
  1582.     IRpcStubBuffer *This,
  1583.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1584.     PRPC_MESSAGE _pRpcMessage,
  1585.     DWORD *_pdwStubPhase);
  1586. HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_BitBlt_Proxy( 
  1587.     IDXSurfaceFactory * This,
  1588.     /* [in] */ IDXSurface *pDest,
  1589.     /* [in] */ const DXVEC *pPlacement,
  1590.     /* [in] */ IDXSurface *pSrc,
  1591.     /* [in] */ const DXBNDS *pClipBounds,
  1592.     /* [in] */ DWORD dwFlags);
  1593. void __RPC_STUB IDXSurfaceFactory_BitBlt_Stub(
  1594.     IRpcStubBuffer *This,
  1595.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1596.     PRPC_MESSAGE _pRpcMessage,
  1597.     DWORD *_pdwStubPhase);
  1598. #endif  /* __IDXSurfaceFactory_INTERFACE_DEFINED__ */
  1599. /* interface __MIDL_itf_dxtrans_0264 */
  1600. /* [local] */ 
  1601. typedef 
  1602. enum DXSURFMODCOMPOP
  1603.     { DXSURFMOD_COMP_OVER = 0,
  1604. DXSURFMOD_COMP_ALPHA_MASK = 1,
  1605. DXSURFMOD_COMP_MAX_VALID = 1
  1606.     }  DXSURFMODCOMPOP;
  1607. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0264_v0_0_c_ifspec;
  1608. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0264_v0_0_s_ifspec;
  1609. #ifndef __IDXSurfaceModifier_INTERFACE_DEFINED__
  1610. #define __IDXSurfaceModifier_INTERFACE_DEFINED__
  1611. /* interface IDXSurfaceModifier */
  1612. /* [local][unique][helpstring][uuid][object] */ 
  1613. EXTERN_C const IID IID_IDXSurfaceModifier;
  1614. #if defined(__cplusplus) && !defined(CINTERFACE)
  1615.     
  1616.     MIDL_INTERFACE("9EA3B637-C37D-11d1-905E-00C04FD9189D")
  1617.     IDXSurfaceModifier : public IUnknown
  1618.     {
  1619.     public:
  1620.         virtual HRESULT STDMETHODCALLTYPE SetFillColor( 
  1621.             /* [in] */ DXSAMPLE Color) = 0;
  1622.         
  1623.         virtual HRESULT STDMETHODCALLTYPE GetFillColor( 
  1624.             /* [out] */ DXSAMPLE *pColor) = 0;
  1625.         
  1626.         virtual HRESULT STDMETHODCALLTYPE SetBounds( 
  1627.             /* [in] */ const DXBNDS *pBounds) = 0;
  1628.         
  1629.         virtual HRESULT STDMETHODCALLTYPE SetBackground( 
  1630.             /* [in] */ IDXSurface *pSurface) = 0;
  1631.         
  1632.         virtual HRESULT STDMETHODCALLTYPE GetBackground( 
  1633.             /* [out] */ IDXSurface **ppSurface) = 0;
  1634.         
  1635.         virtual HRESULT STDMETHODCALLTYPE SetCompositeOperation( 
  1636.             /* [in] */ DXSURFMODCOMPOP CompOp) = 0;
  1637.         
  1638.         virtual HRESULT STDMETHODCALLTYPE GetCompositeOperation( 
  1639.             /* [out] */ DXSURFMODCOMPOP *pCompOp) = 0;
  1640.         
  1641.         virtual HRESULT STDMETHODCALLTYPE SetForeground( 
  1642.             /* [in] */ IDXSurface *pSurface,
  1643.             /* [in] */ BOOL bTile,
  1644.             /* [in] */ const POINT *pOrigin) = 0;
  1645.         
  1646.         virtual HRESULT STDMETHODCALLTYPE GetForeground( 
  1647.             /* [out] */ IDXSurface **ppSurface,
  1648.             /* [out] */ BOOL *pbTile,
  1649.             /* [out] */ POINT *pOrigin) = 0;
  1650.         
  1651.         virtual HRESULT STDMETHODCALLTYPE SetOpacity( 
  1652.             /* [in] */ float Opacity) = 0;
  1653.         
  1654.         virtual HRESULT STDMETHODCALLTYPE GetOpacity( 
  1655.             /* [out] */ float *pOpacity) = 0;
  1656.         
  1657.         virtual HRESULT STDMETHODCALLTYPE SetLookup( 
  1658.             /* [in] */ IDXLookupTable *pLookupTable) = 0;
  1659.         
  1660.         virtual HRESULT STDMETHODCALLTYPE GetLookup( 
  1661.             /* [out] */ IDXLookupTable **ppLookupTable) = 0;
  1662.         
  1663.     };
  1664.     
  1665. #else  /* C style interface */
  1666.     typedef struct IDXSurfaceModifierVtbl
  1667.     {
  1668.         BEGIN_INTERFACE
  1669.         
  1670.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1671.             IDXSurfaceModifier * This,
  1672.             /* [in] */ REFIID riid,
  1673.             /* [iid_is][out] */ void **ppvObject);
  1674.         
  1675.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1676.             IDXSurfaceModifier * This);
  1677.         
  1678.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1679.             IDXSurfaceModifier * This);
  1680.         
  1681.         HRESULT ( STDMETHODCALLTYPE *SetFillColor )( 
  1682.             IDXSurfaceModifier * This,
  1683.             /* [in] */ DXSAMPLE Color);
  1684.         
  1685.         HRESULT ( STDMETHODCALLTYPE *GetFillColor )( 
  1686.             IDXSurfaceModifier * This,
  1687.             /* [out] */ DXSAMPLE *pColor);
  1688.         
  1689.         HRESULT ( STDMETHODCALLTYPE *SetBounds )( 
  1690.             IDXSurfaceModifier * This,
  1691.             /* [in] */ const DXBNDS *pBounds);
  1692.         
  1693.         HRESULT ( STDMETHODCALLTYPE *SetBackground )( 
  1694.             IDXSurfaceModifier * This,
  1695.             /* [in] */ IDXSurface *pSurface);
  1696.         
  1697.         HRESULT ( STDMETHODCALLTYPE *GetBackground )( 
  1698.             IDXSurfaceModifier * This,
  1699.             /* [out] */ IDXSurface **ppSurface);
  1700.         
  1701.         HRESULT ( STDMETHODCALLTYPE *SetCompositeOperation )( 
  1702.             IDXSurfaceModifier * This,
  1703.             /* [in] */ DXSURFMODCOMPOP CompOp);
  1704.         
  1705.         HRESULT ( STDMETHODCALLTYPE *GetCompositeOperation )( 
  1706.             IDXSurfaceModifier * This,
  1707.             /* [out] */ DXSURFMODCOMPOP *pCompOp);
  1708.         
  1709.         HRESULT ( STDMETHODCALLTYPE *SetForeground )( 
  1710.             IDXSurfaceModifier * This,
  1711.             /* [in] */ IDXSurface *pSurface,
  1712.             /* [in] */ BOOL bTile,
  1713.             /* [in] */ const POINT *pOrigin);
  1714.         
  1715.         HRESULT ( STDMETHODCALLTYPE *GetForeground )( 
  1716.             IDXSurfaceModifier * This,
  1717.             /* [out] */ IDXSurface **ppSurface,
  1718.             /* [out] */ BOOL *pbTile,
  1719.             /* [out] */ POINT *pOrigin);
  1720.         
  1721.         HRESULT ( STDMETHODCALLTYPE *SetOpacity )( 
  1722.             IDXSurfaceModifier * This,
  1723.             /* [in] */ float Opacity);
  1724.         
  1725.         HRESULT ( STDMETHODCALLTYPE *GetOpacity )( 
  1726.             IDXSurfaceModifier * This,
  1727.             /* [out] */ float *pOpacity);
  1728.         
  1729.         HRESULT ( STDMETHODCALLTYPE *SetLookup )( 
  1730.             IDXSurfaceModifier * This,
  1731.             /* [in] */ IDXLookupTable *pLookupTable);
  1732.         
  1733.         HRESULT ( STDMETHODCALLTYPE *GetLookup )( 
  1734.             IDXSurfaceModifier * This,
  1735.             /* [out] */ IDXLookupTable **ppLookupTable);
  1736.         
  1737.         END_INTERFACE
  1738.     } IDXSurfaceModifierVtbl;
  1739.     interface IDXSurfaceModifier
  1740.     {
  1741.         CONST_VTBL struct IDXSurfaceModifierVtbl *lpVtbl;
  1742.     };
  1743.     
  1744. #ifdef COBJMACROS
  1745. #define IDXSurfaceModifier_QueryInterface(This,riid,ppvObject)
  1746.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1747. #define IDXSurfaceModifier_AddRef(This)
  1748.     (This)->lpVtbl -> AddRef(This)
  1749. #define IDXSurfaceModifier_Release(This)
  1750.     (This)->lpVtbl -> Release(This)
  1751. #define IDXSurfaceModifier_SetFillColor(This,Color)
  1752.     (This)->lpVtbl -> SetFillColor(This,Color)
  1753. #define IDXSurfaceModifier_GetFillColor(This,pColor)
  1754.     (This)->lpVtbl -> GetFillColor(This,pColor)
  1755. #define IDXSurfaceModifier_SetBounds(This,pBounds)
  1756.     (This)->lpVtbl -> SetBounds(This,pBounds)
  1757. #define IDXSurfaceModifier_SetBackground(This,pSurface)
  1758.     (This)->lpVtbl -> SetBackground(This,pSurface)
  1759. #define IDXSurfaceModifier_GetBackground(This,ppSurface)
  1760.     (This)->lpVtbl -> GetBackground(This,ppSurface)
  1761. #define IDXSurfaceModifier_SetCompositeOperation(This,CompOp)
  1762.     (This)->lpVtbl -> SetCompositeOperation(This,CompOp)
  1763. #define IDXSurfaceModifier_GetCompositeOperation(This,pCompOp)
  1764.     (This)->lpVtbl -> GetCompositeOperation(This,pCompOp)
  1765. #define IDXSurfaceModifier_SetForeground(This,pSurface,bTile,pOrigin)
  1766.     (This)->lpVtbl -> SetForeground(This,pSurface,bTile,pOrigin)
  1767. #define IDXSurfaceModifier_GetForeground(This,ppSurface,pbTile,pOrigin)
  1768.     (This)->lpVtbl -> GetForeground(This,ppSurface,pbTile,pOrigin)
  1769. #define IDXSurfaceModifier_SetOpacity(This,Opacity)
  1770.     (This)->lpVtbl -> SetOpacity(This,Opacity)
  1771. #define IDXSurfaceModifier_GetOpacity(This,pOpacity)
  1772.     (This)->lpVtbl -> GetOpacity(This,pOpacity)
  1773. #define IDXSurfaceModifier_SetLookup(This,pLookupTable)
  1774.     (This)->lpVtbl -> SetLookup(This,pLookupTable)
  1775. #define IDXSurfaceModifier_GetLookup(This,ppLookupTable)
  1776.     (This)->lpVtbl -> GetLookup(This,ppLookupTable)
  1777. #endif /* COBJMACROS */
  1778. #endif  /* C style interface */
  1779. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetFillColor_Proxy( 
  1780.     IDXSurfaceModifier * This,
  1781.     /* [in] */ DXSAMPLE Color);
  1782. void __RPC_STUB IDXSurfaceModifier_SetFillColor_Stub(
  1783.     IRpcStubBuffer *This,
  1784.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1785.     PRPC_MESSAGE _pRpcMessage,
  1786.     DWORD *_pdwStubPhase);
  1787. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetFillColor_Proxy( 
  1788.     IDXSurfaceModifier * This,
  1789.     /* [out] */ DXSAMPLE *pColor);
  1790. void __RPC_STUB IDXSurfaceModifier_GetFillColor_Stub(
  1791.     IRpcStubBuffer *This,
  1792.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1793.     PRPC_MESSAGE _pRpcMessage,
  1794.     DWORD *_pdwStubPhase);
  1795. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetBounds_Proxy( 
  1796.     IDXSurfaceModifier * This,
  1797.     /* [in] */ const DXBNDS *pBounds);
  1798. void __RPC_STUB IDXSurfaceModifier_SetBounds_Stub(
  1799.     IRpcStubBuffer *This,
  1800.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1801.     PRPC_MESSAGE _pRpcMessage,
  1802.     DWORD *_pdwStubPhase);
  1803. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetBackground_Proxy( 
  1804.     IDXSurfaceModifier * This,
  1805.     /* [in] */ IDXSurface *pSurface);
  1806. void __RPC_STUB IDXSurfaceModifier_SetBackground_Stub(
  1807.     IRpcStubBuffer *This,
  1808.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1809.     PRPC_MESSAGE _pRpcMessage,
  1810.     DWORD *_pdwStubPhase);
  1811. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetBackground_Proxy( 
  1812.     IDXSurfaceModifier * This,
  1813.     /* [out] */ IDXSurface **ppSurface);
  1814. void __RPC_STUB IDXSurfaceModifier_GetBackground_Stub(
  1815.     IRpcStubBuffer *This,
  1816.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1817.     PRPC_MESSAGE _pRpcMessage,
  1818.     DWORD *_pdwStubPhase);
  1819. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetCompositeOperation_Proxy( 
  1820.     IDXSurfaceModifier * This,
  1821.     /* [in] */ DXSURFMODCOMPOP CompOp);
  1822. void __RPC_STUB IDXSurfaceModifier_SetCompositeOperation_Stub(
  1823.     IRpcStubBuffer *This,
  1824.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1825.     PRPC_MESSAGE _pRpcMessage,
  1826.     DWORD *_pdwStubPhase);
  1827. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetCompositeOperation_Proxy( 
  1828.     IDXSurfaceModifier * This,
  1829.     /* [out] */ DXSURFMODCOMPOP *pCompOp);
  1830. void __RPC_STUB IDXSurfaceModifier_GetCompositeOperation_Stub(
  1831.     IRpcStubBuffer *This,
  1832.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1833.     PRPC_MESSAGE _pRpcMessage,
  1834.     DWORD *_pdwStubPhase);
  1835. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetForeground_Proxy( 
  1836.     IDXSurfaceModifier * This,
  1837.     /* [in] */ IDXSurface *pSurface,
  1838.     /* [in] */ BOOL bTile,
  1839.     /* [in] */ const POINT *pOrigin);
  1840. void __RPC_STUB IDXSurfaceModifier_SetForeground_Stub(
  1841.     IRpcStubBuffer *This,
  1842.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1843.     PRPC_MESSAGE _pRpcMessage,
  1844.     DWORD *_pdwStubPhase);
  1845. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetForeground_Proxy( 
  1846.     IDXSurfaceModifier * This,
  1847.     /* [out] */ IDXSurface **ppSurface,
  1848.     /* [out] */ BOOL *pbTile,
  1849.     /* [out] */ POINT *pOrigin);
  1850. void __RPC_STUB IDXSurfaceModifier_GetForeground_Stub(
  1851.     IRpcStubBuffer *This,
  1852.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1853.     PRPC_MESSAGE _pRpcMessage,
  1854.     DWORD *_pdwStubPhase);
  1855. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetOpacity_Proxy( 
  1856.     IDXSurfaceModifier * This,
  1857.     /* [in] */ float Opacity);
  1858. void __RPC_STUB IDXSurfaceModifier_SetOpacity_Stub(
  1859.     IRpcStubBuffer *This,
  1860.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1861.     PRPC_MESSAGE _pRpcMessage,
  1862.     DWORD *_pdwStubPhase);
  1863. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetOpacity_Proxy( 
  1864.     IDXSurfaceModifier * This,
  1865.     /* [out] */ float *pOpacity);
  1866. void __RPC_STUB IDXSurfaceModifier_GetOpacity_Stub(
  1867.     IRpcStubBuffer *This,
  1868.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1869.     PRPC_MESSAGE _pRpcMessage,
  1870.     DWORD *_pdwStubPhase);
  1871. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetLookup_Proxy( 
  1872.     IDXSurfaceModifier * This,
  1873.     /* [in] */ IDXLookupTable *pLookupTable);
  1874. void __RPC_STUB IDXSurfaceModifier_SetLookup_Stub(
  1875.     IRpcStubBuffer *This,
  1876.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1877.     PRPC_MESSAGE _pRpcMessage,
  1878.     DWORD *_pdwStubPhase);
  1879. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetLookup_Proxy( 
  1880.     IDXSurfaceModifier * This,
  1881.     /* [out] */ IDXLookupTable **ppLookupTable);
  1882. void __RPC_STUB IDXSurfaceModifier_GetLookup_Stub(
  1883.     IRpcStubBuffer *This,
  1884.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1885.     PRPC_MESSAGE _pRpcMessage,
  1886.     DWORD *_pdwStubPhase);
  1887. #endif  /* __IDXSurfaceModifier_INTERFACE_DEFINED__ */
  1888. /* interface __MIDL_itf_dxtrans_0265 */
  1889. /* [local] */ 
  1890. typedef 
  1891. enum DXSAMPLEFORMATENUM
  1892.     { DXPF_FLAGSMASK = 0xffff0000,
  1893. DXPF_NONPREMULT = 0x10000,
  1894. DXPF_TRANSPARENCY = 0x20000,
  1895. DXPF_TRANSLUCENCY = 0x40000,
  1896. DXPF_2BITERROR = 0x200000,
  1897. DXPF_3BITERROR = 0x300000,
  1898. DXPF_4BITERROR = 0x400000,
  1899. DXPF_5BITERROR = 0x500000,
  1900. DXPF_ERRORMASK = 0x700000,
  1901. DXPF_NONSTANDARD = 0,
  1902. DXPF_PMARGB32 = 1 | DXPF_TRANSPARENCY | DXPF_TRANSLUCENCY,
  1903. DXPF_ARGB32 = 2 | DXPF_NONPREMULT | DXPF_TRANSPARENCY | DXPF_TRANSLUCENCY,
  1904. DXPF_ARGB4444 = 3 | DXPF_NONPREMULT | DXPF_TRANSPARENCY | DXPF_TRANSLUCENCY | DXPF_4BITERROR,
  1905. DXPF_A8 = 4 | DXPF_TRANSPARENCY | DXPF_TRANSLUCENCY,
  1906. DXPF_RGB32 = 5,
  1907. DXPF_RGB24 = 6,
  1908. DXPF_RGB565 = 7 | DXPF_3BITERROR,
  1909. DXPF_RGB555 = 8 | DXPF_3BITERROR,
  1910. DXPF_RGB8 = 9 | DXPF_5BITERROR,
  1911. DXPF_ARGB1555 = 10 | DXPF_TRANSPARENCY | DXPF_3BITERROR,
  1912. DXPF_RGB32_CK = DXPF_RGB32 | DXPF_TRANSPARENCY,
  1913. DXPF_RGB24_CK = DXPF_RGB24 | DXPF_TRANSPARENCY,
  1914. DXPF_RGB555_CK = DXPF_RGB555 | DXPF_TRANSPARENCY,
  1915. DXPF_RGB565_CK = DXPF_RGB565 | DXPF_TRANSPARENCY,
  1916. DXPF_RGB8_CK = DXPF_RGB8 | DXPF_TRANSPARENCY
  1917.     }  DXSAMPLEFORMATENUM;
  1918. typedef 
  1919. enum DXLOCKSURF
  1920.     { DXLOCKF_READ = 0,
  1921. DXLOCKF_READWRITE = 1 << 0,
  1922. DXLOCKF_EXISTINGINFOONLY = 1 << 1,
  1923. DXLOCKF_WANTRUNINFO = 1 << 2,
  1924. DXLOCKF_NONPREMULT = 1 << 16,
  1925. DXLOCKF_VALIDFLAGS = DXLOCKF_READWRITE | DXLOCKF_EXISTINGINFOONLY | DXLOCKF_WANTRUNINFO | DXLOCKF_NONPREMULT
  1926.     }  DXLOCKSURF;
  1927. typedef 
  1928. enum DXSURFSTATUS
  1929.     { DXSURF_TRANSIENT = 1 << 0,
  1930. DXSURF_READONLY = 1 << 1,
  1931. DXSURF_VALIDFLAGS = DXSURF_TRANSIENT | DXSURF_READONLY
  1932.     }  DXSURFSTATUS;
  1933. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0265_v0_0_c_ifspec;
  1934. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0265_v0_0_s_ifspec;
  1935. #ifndef __IDXSurface_INTERFACE_DEFINED__
  1936. #define __IDXSurface_INTERFACE_DEFINED__
  1937. /* interface IDXSurface */
  1938. /* [local][unique][helpstring][uuid][object] */ 
  1939. EXTERN_C const IID IID_IDXSurface;
  1940. #if defined(__cplusplus) && !defined(CINTERFACE)
  1941.     
  1942.     MIDL_INTERFACE("B39FD73F-E139-11d1-9065-00C04FD9189D")
  1943.     IDXSurface : public IDXBaseObject
  1944.     {
  1945.     public:
  1946.         virtual HRESULT STDMETHODCALLTYPE GetPixelFormat( 
  1947.             /* [out] */ GUID *pFormatID,
  1948.             /* [out] */ DXSAMPLEFORMATENUM *pSampleFormatEnum) = 0;
  1949.         
  1950.         virtual HRESULT STDMETHODCALLTYPE GetBounds( 
  1951.             /* [out] */ DXBNDS *pBounds) = 0;
  1952.         
  1953.         virtual HRESULT STDMETHODCALLTYPE GetStatusFlags( 
  1954.             /* [out] */ DWORD *pdwStatusFlags) = 0;
  1955.         
  1956.         virtual HRESULT STDMETHODCALLTYPE SetStatusFlags( 
  1957.             /* [in] */ DWORD dwStatusFlags) = 0;
  1958.         
  1959.         virtual HRESULT STDMETHODCALLTYPE LockSurface( 
  1960.             /* [in] */ const DXBNDS *pBounds,
  1961.             /* [in] */ ULONG ulTimeOut,
  1962.             /* [in] */ DWORD dwFlags,
  1963.             /* [in] */ REFIID riid,
  1964.             /* [iid_is][out] */ void **ppPointer,
  1965.             /* [out] */ ULONG *pulGenerationId) = 0;
  1966.         
  1967.         virtual HRESULT STDMETHODCALLTYPE GetDirectDrawSurface( 
  1968.             /* [in] */ REFIID riid,
  1969.             /* [iid_is][out] */ void **ppSurface) = 0;
  1970.         
  1971.         virtual HRESULT STDMETHODCALLTYPE GetColorKey( 
  1972.             DXSAMPLE *pColorKey) = 0;
  1973.         
  1974.         virtual HRESULT STDMETHODCALLTYPE SetColorKey( 
  1975.             DXSAMPLE ColorKey) = 0;
  1976.         
  1977.         virtual HRESULT STDMETHODCALLTYPE LockSurfaceDC( 
  1978.             /* [in] */ const DXBNDS *pBounds,
  1979.             /* [in] */ ULONG ulTimeOut,
  1980.             /* [in] */ DWORD dwFlags,
  1981.             /* [out] */ IDXDCLock **ppDCLock) = 0;
  1982.         
  1983.         virtual HRESULT STDMETHODCALLTYPE SetAppData( 
  1984.             DWORD_PTR dwAppData) = 0;
  1985.         
  1986.         virtual HRESULT STDMETHODCALLTYPE GetAppData( 
  1987.             DWORD_PTR *pdwAppData) = 0;
  1988.         
  1989.     };
  1990.     
  1991. #else  /* C style interface */
  1992.     typedef struct IDXSurfaceVtbl
  1993.     {
  1994.         BEGIN_INTERFACE
  1995.         
  1996.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1997.             IDXSurface * This,
  1998.             /* [in] */ REFIID riid,
  1999.             /* [iid_is][out] */ void **ppvObject);
  2000.         
  2001.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2002.             IDXSurface * This);
  2003.         
  2004.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2005.             IDXSurface * This);
  2006.         
  2007.         HRESULT ( STDMETHODCALLTYPE *GetGenerationId )( 
  2008.             IDXSurface * This,
  2009.             /* [out] */ ULONG *pID);
  2010.         
  2011.         HRESULT ( STDMETHODCALLTYPE *IncrementGenerationId )( 
  2012.             IDXSurface * This,
  2013.             /* [in] */ BOOL bRefresh);
  2014.         
  2015.         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
  2016.             IDXSurface * This,
  2017.             /* [out] */ ULONG *pcbSize);
  2018.         
  2019.         HRESULT ( STDMETHODCALLTYPE *GetPixelFormat )( 
  2020.             IDXSurface * This,
  2021.             /* [out] */ GUID *pFormatID,
  2022.             /* [out] */ DXSAMPLEFORMATENUM *pSampleFormatEnum);
  2023.         
  2024.         HRESULT ( STDMETHODCALLTYPE *GetBounds )( 
  2025.             IDXSurface * This,
  2026.             /* [out] */ DXBNDS *pBounds);
  2027.         
  2028.         HRESULT ( STDMETHODCALLTYPE *GetStatusFlags )( 
  2029.             IDXSurface * This,
  2030.             /* [out] */ DWORD *pdwStatusFlags);
  2031.         
  2032.         HRESULT ( STDMETHODCALLTYPE *SetStatusFlags )( 
  2033.             IDXSurface * This,
  2034.             /* [in] */ DWORD dwStatusFlags);
  2035.         
  2036.         HRESULT ( STDMETHODCALLTYPE *LockSurface )( 
  2037.             IDXSurface * This,
  2038.             /* [in] */ const DXBNDS *pBounds,
  2039.             /* [in] */ ULONG ulTimeOut,
  2040.             /* [in] */ DWORD dwFlags,
  2041.             /* [in] */ REFIID riid,
  2042.             /* [iid_is][out] */ void **ppPointer,
  2043.             /* [out] */ ULONG *pulGenerationId);
  2044.         
  2045.         HRESULT ( STDMETHODCALLTYPE *GetDirectDrawSurface )( 
  2046.             IDXSurface * This,
  2047.             /* [in] */ REFIID riid,
  2048.             /* [iid_is][out] */ void **ppSurface);
  2049.         
  2050.         HRESULT ( STDMETHODCALLTYPE *GetColorKey )( 
  2051.             IDXSurface * This,
  2052.             DXSAMPLE *pColorKey);
  2053.         
  2054.         HRESULT ( STDMETHODCALLTYPE *SetColorKey )( 
  2055.             IDXSurface * This,
  2056.             DXSAMPLE ColorKey);
  2057.         
  2058.         HRESULT ( STDMETHODCALLTYPE *LockSurfaceDC )( 
  2059.             IDXSurface * This,
  2060.             /* [in] */ const DXBNDS *pBounds,
  2061.             /* [in] */ ULONG ulTimeOut,
  2062.             /* [in] */ DWORD dwFlags,
  2063.             /* [out] */ IDXDCLock **ppDCLock);
  2064.         
  2065.         HRESULT ( STDMETHODCALLTYPE *SetAppData )( 
  2066.             IDXSurface * This,
  2067.             DWORD_PTR dwAppData);
  2068.         
  2069.         HRESULT ( STDMETHODCALLTYPE *GetAppData )( 
  2070.             IDXSurface * This,
  2071.             DWORD_PTR *pdwAppData);
  2072.         
  2073.         END_INTERFACE
  2074.     } IDXSurfaceVtbl;
  2075.     interface IDXSurface
  2076.     {
  2077.         CONST_VTBL struct IDXSurfaceVtbl *lpVtbl;
  2078.     };
  2079.     
  2080. #ifdef COBJMACROS
  2081. #define IDXSurface_QueryInterface(This,riid,ppvObject)
  2082.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)