dxtrans.h
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:155k
源码类别:

Delphi控件源码

开发平台:

Delphi

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