home *** CD-ROM | disk | FTP | other *** search
/ Beginning Direct3D Game Programming / Direct3D.iso / directx / dxf / include / dxtrans.h < prev    next >
C/C++ Source or Header  |  2000-09-21  |  146KB  |  4,975 lines

  1.  
  2. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  3.  
  4. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  5.  
  6.  
  7.  /* File created by MIDL compiler version 6.00.0334 */
  8. /* Compiler settings for dxtrans.idl:
  9.     Oicf, W1, Zp8, env=Win32 (32b run)
  10.     protocol : dce , ms_ext, c_ext
  11.     error checks: allocation ref bounds_check enum stub_data 
  12.     VC __declspec() decoration level: 
  13.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  14.          DECLSPEC_UUID(), MIDL_INTERFACE()
  15. */
  16. //@@MIDL_FILE_HEADING(  )
  17.  
  18.  
  19. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  20. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  21. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  22. #endif
  23.  
  24. #include "rpc.h"
  25. #include "rpcndr.h"
  26.  
  27. #ifndef __RPCNDR_H_VERSION__
  28. #error this stub requires an updated version of <rpcndr.h>
  29. #endif // __RPCNDR_H_VERSION__
  30.  
  31. #ifndef COM_NO_WINDOWS_H
  32. #include "windows.h"
  33. #include "ole2.h"
  34. #endif /*COM_NO_WINDOWS_H*/
  35.  
  36. #ifndef __dxtrans_h__
  37. #define __dxtrans_h__
  38.  
  39. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  40. #pragma once
  41. #endif
  42.  
  43. /* Forward Declarations */ 
  44.  
  45. #ifndef __IDXBaseObject_FWD_DEFINED__
  46. #define __IDXBaseObject_FWD_DEFINED__
  47. typedef interface IDXBaseObject IDXBaseObject;
  48. #endif     /* __IDXBaseObject_FWD_DEFINED__ */
  49.  
  50.  
  51. #ifndef __IDXTransformFactory_FWD_DEFINED__
  52. #define __IDXTransformFactory_FWD_DEFINED__
  53. typedef interface IDXTransformFactory IDXTransformFactory;
  54. #endif     /* __IDXTransformFactory_FWD_DEFINED__ */
  55.  
  56.  
  57. #ifndef __IDXTransform_FWD_DEFINED__
  58. #define __IDXTransform_FWD_DEFINED__
  59. typedef interface IDXTransform IDXTransform;
  60. #endif     /* __IDXTransform_FWD_DEFINED__ */
  61.  
  62.  
  63. #ifndef __IDXSurfacePick_FWD_DEFINED__
  64. #define __IDXSurfacePick_FWD_DEFINED__
  65. typedef interface IDXSurfacePick IDXSurfacePick;
  66. #endif     /* __IDXSurfacePick_FWD_DEFINED__ */
  67.  
  68.  
  69. #ifndef __IDXTBindHost_FWD_DEFINED__
  70. #define __IDXTBindHost_FWD_DEFINED__
  71. typedef interface IDXTBindHost IDXTBindHost;
  72. #endif     /* __IDXTBindHost_FWD_DEFINED__ */
  73.  
  74.  
  75. #ifndef __IDXTaskManager_FWD_DEFINED__
  76. #define __IDXTaskManager_FWD_DEFINED__
  77. typedef interface IDXTaskManager IDXTaskManager;
  78. #endif     /* __IDXTaskManager_FWD_DEFINED__ */
  79.  
  80.  
  81. #ifndef __IDXSurfaceFactory_FWD_DEFINED__
  82. #define __IDXSurfaceFactory_FWD_DEFINED__
  83. typedef interface IDXSurfaceFactory IDXSurfaceFactory;
  84. #endif     /* __IDXSurfaceFactory_FWD_DEFINED__ */
  85.  
  86.  
  87. #ifndef __IDXSurfaceModifier_FWD_DEFINED__
  88. #define __IDXSurfaceModifier_FWD_DEFINED__
  89. typedef interface IDXSurfaceModifier IDXSurfaceModifier;
  90. #endif     /* __IDXSurfaceModifier_FWD_DEFINED__ */
  91.  
  92.  
  93. #ifndef __IDXSurface_FWD_DEFINED__
  94. #define __IDXSurface_FWD_DEFINED__
  95. typedef interface IDXSurface IDXSurface;
  96. #endif     /* __IDXSurface_FWD_DEFINED__ */
  97.  
  98.  
  99. #ifndef __IDXSurfaceInit_FWD_DEFINED__
  100. #define __IDXSurfaceInit_FWD_DEFINED__
  101. typedef interface IDXSurfaceInit IDXSurfaceInit;
  102. #endif     /* __IDXSurfaceInit_FWD_DEFINED__ */
  103.  
  104.  
  105. #ifndef __IDXARGBSurfaceInit_FWD_DEFINED__
  106. #define __IDXARGBSurfaceInit_FWD_DEFINED__
  107. typedef interface IDXARGBSurfaceInit IDXARGBSurfaceInit;
  108. #endif     /* __IDXARGBSurfaceInit_FWD_DEFINED__ */
  109.  
  110.  
  111. #ifndef __IDXARGBReadPtr_FWD_DEFINED__
  112. #define __IDXARGBReadPtr_FWD_DEFINED__
  113. typedef interface IDXARGBReadPtr IDXARGBReadPtr;
  114. #endif     /* __IDXARGBReadPtr_FWD_DEFINED__ */
  115.  
  116.  
  117. #ifndef __IDXARGBReadWritePtr_FWD_DEFINED__
  118. #define __IDXARGBReadWritePtr_FWD_DEFINED__
  119. typedef interface IDXARGBReadWritePtr IDXARGBReadWritePtr;
  120. #endif     /* __IDXARGBReadWritePtr_FWD_DEFINED__ */
  121.  
  122.  
  123. #ifndef __IDXDCLock_FWD_DEFINED__
  124. #define __IDXDCLock_FWD_DEFINED__
  125. typedef interface IDXDCLock IDXDCLock;
  126. #endif     /* __IDXDCLock_FWD_DEFINED__ */
  127.  
  128.  
  129. #ifndef __IDXTScaleOutput_FWD_DEFINED__
  130. #define __IDXTScaleOutput_FWD_DEFINED__
  131. typedef interface IDXTScaleOutput IDXTScaleOutput;
  132. #endif     /* __IDXTScaleOutput_FWD_DEFINED__ */
  133.  
  134.  
  135. #ifndef __IDXGradient_FWD_DEFINED__
  136. #define __IDXGradient_FWD_DEFINED__
  137. typedef interface IDXGradient IDXGradient;
  138. #endif     /* __IDXGradient_FWD_DEFINED__ */
  139.  
  140.  
  141. #ifndef __IDXTScale_FWD_DEFINED__
  142. #define __IDXTScale_FWD_DEFINED__
  143. typedef interface IDXTScale IDXTScale;
  144. #endif     /* __IDXTScale_FWD_DEFINED__ */
  145.  
  146.  
  147. #ifndef __IDXEffect_FWD_DEFINED__
  148. #define __IDXEffect_FWD_DEFINED__
  149. typedef interface IDXEffect IDXEffect;
  150. #endif     /* __IDXEffect_FWD_DEFINED__ */
  151.  
  152.  
  153. #ifndef __IDXLookupTable_FWD_DEFINED__
  154. #define __IDXLookupTable_FWD_DEFINED__
  155. typedef interface IDXLookupTable IDXLookupTable;
  156. #endif     /* __IDXLookupTable_FWD_DEFINED__ */
  157.  
  158.  
  159. #ifndef __IDXRawSurface_FWD_DEFINED__
  160. #define __IDXRawSurface_FWD_DEFINED__
  161. typedef interface IDXRawSurface IDXRawSurface;
  162. #endif     /* __IDXRawSurface_FWD_DEFINED__ */
  163.  
  164.  
  165. #ifndef __IHTMLDXTransform_FWD_DEFINED__
  166. #define __IHTMLDXTransform_FWD_DEFINED__
  167. typedef interface IHTMLDXTransform IHTMLDXTransform;
  168. #endif     /* __IHTMLDXTransform_FWD_DEFINED__ */
  169.  
  170.  
  171. #ifndef __DXTransformFactory_FWD_DEFINED__
  172. #define __DXTransformFactory_FWD_DEFINED__
  173.  
  174. #ifdef __cplusplus
  175. typedef class DXTransformFactory DXTransformFactory;
  176. #else
  177. typedef struct DXTransformFactory DXTransformFactory;
  178. #endif /* __cplusplus */
  179.  
  180. #endif     /* __DXTransformFactory_FWD_DEFINED__ */
  181.  
  182.  
  183. #ifndef __DXTaskManager_FWD_DEFINED__
  184. #define __DXTaskManager_FWD_DEFINED__
  185.  
  186. #ifdef __cplusplus
  187. typedef class DXTaskManager DXTaskManager;
  188. #else
  189. typedef struct DXTaskManager DXTaskManager;
  190. #endif /* __cplusplus */
  191.  
  192. #endif     /* __DXTaskManager_FWD_DEFINED__ */
  193.  
  194.  
  195. #ifndef __DXTScale_FWD_DEFINED__
  196. #define __DXTScale_FWD_DEFINED__
  197.  
  198. #ifdef __cplusplus
  199. typedef class DXTScale DXTScale;
  200. #else
  201. typedef struct DXTScale DXTScale;
  202. #endif /* __cplusplus */
  203.  
  204. #endif     /* __DXTScale_FWD_DEFINED__ */
  205.  
  206.  
  207. #ifndef __DXSurface_FWD_DEFINED__
  208. #define __DXSurface_FWD_DEFINED__
  209.  
  210. #ifdef __cplusplus
  211. typedef class DXSurface DXSurface;
  212. #else
  213. typedef struct DXSurface DXSurface;
  214. #endif /* __cplusplus */
  215.  
  216. #endif     /* __DXSurface_FWD_DEFINED__ */
  217.  
  218.  
  219. #ifndef __DXSurfaceModifier_FWD_DEFINED__
  220. #define __DXSurfaceModifier_FWD_DEFINED__
  221.  
  222. #ifdef __cplusplus
  223. typedef class DXSurfaceModifier DXSurfaceModifier;
  224. #else
  225. typedef struct DXSurfaceModifier DXSurfaceModifier;
  226. #endif /* __cplusplus */
  227.  
  228. #endif     /* __DXSurfaceModifier_FWD_DEFINED__ */
  229.  
  230.  
  231. #ifndef __DXGradient_FWD_DEFINED__
  232. #define __DXGradient_FWD_DEFINED__
  233.  
  234. #ifdef __cplusplus
  235. typedef class DXGradient DXGradient;
  236. #else
  237. typedef struct DXGradient DXGradient;
  238. #endif /* __cplusplus */
  239.  
  240. #endif     /* __DXGradient_FWD_DEFINED__ */
  241.  
  242.  
  243. /* header files for imported files */
  244. #include "oaidl.h"
  245. #include "ocidl.h"
  246. #include "comcat.h"
  247.  
  248. #ifdef __cplusplus
  249. extern "C"{
  250. #endif 
  251.  
  252. void * __RPC_USER MIDL_user_allocate(size_t);
  253. void __RPC_USER MIDL_user_free( void * ); 
  254.  
  255. /* interface __MIDL_itf_dxtrans_0000 */
  256. /* [local] */ 
  257.  
  258. #include <servprov.h>
  259. #include <ddraw.h>
  260. #include <d3d.h>
  261. #include <d3drm.h>
  262. #include <urlmon.h>
  263. #if 0
  264. // Bogus definition used to make MIDL compiler happy
  265. typedef void DDSURFACEDESC;
  266.  
  267. typedef void D3DRMBOX;
  268.  
  269. typedef void D3DVECTOR;
  270.  
  271. typedef void D3DRMMATRIX4D;
  272.  
  273. typedef void *LPSECURITY_ATTRIBUTES;
  274.  
  275. #endif
  276. #ifdef _DXTRANSIMPL
  277.     #define _DXTRANS_IMPL_EXT _declspec(dllexport)
  278. #else
  279.     #define _DXTRANS_IMPL_EXT _declspec(dllimport)
  280. #endif
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297. //
  298. //   All GUIDs for DXTransform are declared in DXTGUID.C in the SDK include directory
  299. //
  300. EXTERN_C const GUID DDPF_RGB1;
  301. EXTERN_C const GUID DDPF_RGB2;
  302. EXTERN_C const GUID DDPF_RGB4;
  303. EXTERN_C const GUID DDPF_RGB8;
  304. EXTERN_C const GUID DDPF_RGB332;
  305. EXTERN_C const GUID DDPF_ARGB4444;
  306. EXTERN_C const GUID DDPF_RGB565;
  307. EXTERN_C const GUID DDPF_BGR565;
  308. EXTERN_C const GUID DDPF_RGB555;
  309. EXTERN_C const GUID DDPF_ARGB1555;
  310. EXTERN_C const GUID DDPF_RGB24;
  311. EXTERN_C const GUID DDPF_BGR24;
  312. EXTERN_C const GUID DDPF_RGB32;
  313. EXTERN_C const GUID DDPF_BGR32;
  314. EXTERN_C const GUID DDPF_ABGR32;
  315. EXTERN_C const GUID DDPF_ARGB32;
  316. EXTERN_C const GUID DDPF_PMARGB32;
  317. EXTERN_C const GUID DDPF_A1;
  318. EXTERN_C const GUID DDPF_A2;
  319. EXTERN_C const GUID DDPF_A4;
  320. EXTERN_C const GUID DDPF_A8;
  321. EXTERN_C const GUID DDPF_Z8;
  322. EXTERN_C const GUID DDPF_Z16;
  323. EXTERN_C const GUID DDPF_Z24;
  324. EXTERN_C const GUID DDPF_Z32;
  325. //
  326. //   Component categories
  327. //
  328. EXTERN_C const GUID CATID_DXImageTransform;
  329. EXTERN_C const GUID CATID_DX3DTransform;
  330. EXTERN_C const GUID CATID_DXAuthoringTransform;
  331. EXTERN_C const GUID CATID_DXSurface;
  332. //
  333. //   Service IDs
  334. //
  335. EXTERN_C const GUID SID_SDirectDraw;
  336. EXTERN_C const GUID SID_SDirect3DRM;
  337. #define SID_SDXTaskManager CLSID_DXTaskManager
  338. #define SID_SDXSurfaceFactory IID_IDXSurfaceFactory
  339. #define SID_SDXTransformFactory IID_IDXTransformFactory
  340.  
  341.  
  342. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0000_v0_0_c_ifspec;
  343. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0000_v0_0_s_ifspec;
  344.  
  345. #ifndef __IDXBaseObject_INTERFACE_DEFINED__
  346. #define __IDXBaseObject_INTERFACE_DEFINED__
  347.  
  348. /* interface IDXBaseObject */
  349. /* [object][unique][helpstring][uuid] */ 
  350.  
  351.  
  352. EXTERN_C const IID IID_IDXBaseObject;
  353.  
  354. #if defined(__cplusplus) && !defined(CINTERFACE)
  355.     
  356.     MIDL_INTERFACE("17B59B2B-9CC8-11d1-9053-00C04FD9189D")
  357.     IDXBaseObject : public IUnknown
  358.     {
  359.     public:
  360.         virtual HRESULT STDMETHODCALLTYPE GetGenerationId( 
  361.             /* [out] */ ULONG *pID) = 0;
  362.         
  363.         virtual HRESULT STDMETHODCALLTYPE IncrementGenerationId( 
  364.             /* [in] */ BOOL bRefresh) = 0;
  365.         
  366.         virtual HRESULT STDMETHODCALLTYPE GetObjectSize( 
  367.             /* [out] */ ULONG *pcbSize) = 0;
  368.         
  369.     };
  370.     
  371. #else     /* C style interface */
  372.  
  373.     typedef struct IDXBaseObjectVtbl
  374.     {
  375.         BEGIN_INTERFACE
  376.         
  377.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  378.             IDXBaseObject * This,
  379.             /* [in] */ REFIID riid,
  380.             /* [iid_is][out] */ void **ppvObject);
  381.         
  382.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  383.             IDXBaseObject * This);
  384.         
  385.         ULONG ( STDMETHODCALLTYPE *Release )( 
  386.             IDXBaseObject * This);
  387.         
  388.         HRESULT ( STDMETHODCALLTYPE *GetGenerationId )( 
  389.             IDXBaseObject * This,
  390.             /* [out] */ ULONG *pID);
  391.         
  392.         HRESULT ( STDMETHODCALLTYPE *IncrementGenerationId )( 
  393.             IDXBaseObject * This,
  394.             /* [in] */ BOOL bRefresh);
  395.         
  396.         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
  397.             IDXBaseObject * This,
  398.             /* [out] */ ULONG *pcbSize);
  399.         
  400.         END_INTERFACE
  401.     } IDXBaseObjectVtbl;
  402.  
  403.     interface IDXBaseObject
  404.     {
  405.         CONST_VTBL struct IDXBaseObjectVtbl *lpVtbl;
  406.     };
  407.  
  408.     
  409.  
  410. #ifdef COBJMACROS
  411.  
  412.  
  413. #define IDXBaseObject_QueryInterface(This,riid,ppvObject)    \
  414.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  415.  
  416. #define IDXBaseObject_AddRef(This)    \
  417.     (This)->lpVtbl -> AddRef(This)
  418.  
  419. #define IDXBaseObject_Release(This)    \
  420.     (This)->lpVtbl -> Release(This)
  421.  
  422.  
  423. #define IDXBaseObject_GetGenerationId(This,pID)    \
  424.     (This)->lpVtbl -> GetGenerationId(This,pID)
  425.  
  426. #define IDXBaseObject_IncrementGenerationId(This,bRefresh)    \
  427.     (This)->lpVtbl -> IncrementGenerationId(This,bRefresh)
  428.  
  429. #define IDXBaseObject_GetObjectSize(This,pcbSize)    \
  430.     (This)->lpVtbl -> GetObjectSize(This,pcbSize)
  431.  
  432. #endif /* COBJMACROS */
  433.  
  434.  
  435. #endif     /* C style interface */
  436.  
  437.  
  438.  
  439. HRESULT STDMETHODCALLTYPE IDXBaseObject_GetGenerationId_Proxy( 
  440.     IDXBaseObject * This,
  441.     /* [out] */ ULONG *pID);
  442.  
  443.  
  444. void __RPC_STUB IDXBaseObject_GetGenerationId_Stub(
  445.     IRpcStubBuffer *This,
  446.     IRpcChannelBuffer *_pRpcChannelBuffer,
  447.     PRPC_MESSAGE _pRpcMessage,
  448.     DWORD *_pdwStubPhase);
  449.  
  450.  
  451. HRESULT STDMETHODCALLTYPE IDXBaseObject_IncrementGenerationId_Proxy( 
  452.     IDXBaseObject * This,
  453.     /* [in] */ BOOL bRefresh);
  454.  
  455.  
  456. void __RPC_STUB IDXBaseObject_IncrementGenerationId_Stub(
  457.     IRpcStubBuffer *This,
  458.     IRpcChannelBuffer *_pRpcChannelBuffer,
  459.     PRPC_MESSAGE _pRpcMessage,
  460.     DWORD *_pdwStubPhase);
  461.  
  462.  
  463. HRESULT STDMETHODCALLTYPE IDXBaseObject_GetObjectSize_Proxy( 
  464.     IDXBaseObject * This,
  465.     /* [out] */ ULONG *pcbSize);
  466.  
  467.  
  468. void __RPC_STUB IDXBaseObject_GetObjectSize_Stub(
  469.     IRpcStubBuffer *This,
  470.     IRpcChannelBuffer *_pRpcChannelBuffer,
  471.     PRPC_MESSAGE _pRpcMessage,
  472.     DWORD *_pdwStubPhase);
  473.  
  474.  
  475.  
  476. #endif     /* __IDXBaseObject_INTERFACE_DEFINED__ */
  477.  
  478.  
  479. /* interface __MIDL_itf_dxtrans_0253 */
  480. /* [local] */ 
  481.  
  482. typedef 
  483. enum DXBNDID
  484.     {    DXB_X    = 0,
  485.     DXB_Y    = 1,
  486.     DXB_Z    = 2,
  487.     DXB_T    = 3
  488.     }     DXBNDID;
  489.  
  490. typedef 
  491. enum DXBNDTYPE
  492.     {    DXBT_DISCRETE    = 0,
  493.     DXBT_DISCRETE64    = DXBT_DISCRETE + 1,
  494.     DXBT_CONTINUOUS    = DXBT_DISCRETE64 + 1,
  495.     DXBT_CONTINUOUS64    = DXBT_CONTINUOUS + 1
  496.     }     DXBNDTYPE;
  497.  
  498. typedef struct DXDBND
  499.     {
  500.     long Min;
  501.     long Max;
  502.     }     DXDBND;
  503.  
  504. typedef DXDBND DXDBNDS[ 4 ];
  505.  
  506. typedef struct DXDBND64
  507.     {
  508.     LONGLONG Min;
  509.     LONGLONG Max;
  510.     }     DXDBND64;
  511.  
  512. typedef DXDBND64 DXDBNDS64[ 4 ];
  513.  
  514. typedef struct DXCBND
  515.     {
  516.     float Min;
  517.     float Max;
  518.     }     DXCBND;
  519.  
  520. typedef DXCBND DXCBNDS[ 4 ];
  521.  
  522. typedef struct DXCBND64
  523.     {
  524.     double Min;
  525.     double Max;
  526.     }     DXCBND64;
  527.  
  528. typedef DXCBND64 DXCBNDS64[ 4 ];
  529.  
  530. typedef struct DXBNDS
  531.     {
  532.     DXBNDTYPE eType;
  533.     /* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_dxtrans_0253_0001
  534.         {
  535.         /* [case()] */ DXDBND D[ 4 ];
  536.         /* [case()] */ DXDBND64 LD[ 4 ];
  537.         /* [case()] */ DXCBND C[ 4 ];
  538.         /* [case()] */ DXCBND64 LC[ 4 ];
  539.         }     u;
  540.     }     DXBNDS;
  541.  
  542. typedef long DXDVEC[ 4 ];
  543.  
  544. typedef LONGLONG DXDVEC64[ 4 ];
  545.  
  546. typedef float DXCVEC[ 4 ];
  547.  
  548. typedef double DXCVEC64[ 4 ];
  549.  
  550. typedef struct DXVEC
  551.     {
  552.     DXBNDTYPE eType;
  553.     /* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_dxtrans_0253_0002
  554.         {
  555.         /* [case()] */ long D[ 4 ];
  556.         /* [case()] */ LONGLONG LD[ 4 ];
  557.         /* [case()] */ float C[ 4 ];
  558.         /* [case()] */ double LC[ 4 ];
  559.         }     u;
  560.     }     DXVEC;
  561.  
  562.  
  563.  
  564. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0253_v0_0_c_ifspec;
  565. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0253_v0_0_s_ifspec;
  566.  
  567. #ifndef __IDXTransformFactory_INTERFACE_DEFINED__
  568. #define __IDXTransformFactory_INTERFACE_DEFINED__
  569.  
  570. /* interface IDXTransformFactory */
  571. /* [object][unique][helpstring][uuid] */ 
  572.  
  573.  
  574. EXTERN_C const IID IID_IDXTransformFactory;
  575.  
  576. #if defined(__cplusplus) && !defined(CINTERFACE)
  577.     
  578.     MIDL_INTERFACE("6A950B2B-A971-11d1-81C8-0000F87557DB")
  579.     IDXTransformFactory : public IServiceProvider
  580.     {
  581.     public:
  582.         virtual HRESULT STDMETHODCALLTYPE SetService( 
  583.             /* [in] */ REFGUID guidService,
  584.             /* [in] */ IUnknown *pUnkService,
  585.             /* [in] */ BOOL bWeakReference) = 0;
  586.         
  587.         virtual HRESULT STDMETHODCALLTYPE CreateTransform( 
  588.             /* [size_is][in] */ IUnknown **punkInputs,
  589.             /* [in] */ ULONG ulNumInputs,
  590.             /* [size_is][in] */ IUnknown **punkOutputs,
  591.             /* [in] */ ULONG ulNumOutputs,
  592.             /* [in] */ IPropertyBag *pInitProps,
  593.             /* [in] */ IErrorLog *pErrLog,
  594.             /* [in] */ REFCLSID TransCLSID,
  595.             /* [in] */ REFIID TransIID,
  596.             /* [iid_is][out] */ void **ppTransform) = 0;
  597.         
  598.         virtual HRESULT STDMETHODCALLTYPE InitializeTransform( 
  599.             /* [in] */ IDXTransform *pTransform,
  600.             /* [size_is][in] */ IUnknown **punkInputs,
  601.             /* [in] */ ULONG ulNumInputs,
  602.             /* [size_is][in] */ IUnknown **punkOutputs,
  603.             /* [in] */ ULONG ulNumOutputs,
  604.             /* [in] */ IPropertyBag *pInitProps,
  605.             /* [in] */ IErrorLog *pErrLog) = 0;
  606.         
  607.     };
  608.     
  609. #else     /* C style interface */
  610.  
  611.     typedef struct IDXTransformFactoryVtbl
  612.     {
  613.         BEGIN_INTERFACE
  614.         
  615.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  616.             IDXTransformFactory * This,
  617.             /* [in] */ REFIID riid,
  618.             /* [iid_is][out] */ void **ppvObject);
  619.         
  620.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  621.             IDXTransformFactory * This);
  622.         
  623.         ULONG ( STDMETHODCALLTYPE *Release )( 
  624.             IDXTransformFactory * This);
  625.         
  626.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *QueryService )( 
  627.             IDXTransformFactory * This,
  628.             /* [in] */ REFGUID guidService,
  629.             /* [in] */ REFIID riid,
  630.             /* [out] */ void **ppvObject);
  631.         
  632.         HRESULT ( STDMETHODCALLTYPE *SetService )( 
  633.             IDXTransformFactory * This,
  634.             /* [in] */ REFGUID guidService,
  635.             /* [in] */ IUnknown *pUnkService,
  636.             /* [in] */ BOOL bWeakReference);
  637.         
  638.         HRESULT ( STDMETHODCALLTYPE *CreateTransform )( 
  639.             IDXTransformFactory * This,
  640.             /* [size_is][in] */ IUnknown **punkInputs,
  641.             /* [in] */ ULONG ulNumInputs,
  642.             /* [size_is][in] */ IUnknown **punkOutputs,
  643.             /* [in] */ ULONG ulNumOutputs,
  644.             /* [in] */ IPropertyBag *pInitProps,
  645.             /* [in] */ IErrorLog *pErrLog,
  646.             /* [in] */ REFCLSID TransCLSID,
  647.             /* [in] */ REFIID TransIID,
  648.             /* [iid_is][out] */ void **ppTransform);
  649.         
  650.         HRESULT ( STDMETHODCALLTYPE *InitializeTransform )( 
  651.             IDXTransformFactory * This,
  652.             /* [in] */ IDXTransform *pTransform,
  653.             /* [size_is][in] */ IUnknown **punkInputs,
  654.             /* [in] */ ULONG ulNumInputs,
  655.             /* [size_is][in] */ IUnknown **punkOutputs,
  656.             /* [in] */ ULONG ulNumOutputs,
  657.             /* [in] */ IPropertyBag *pInitProps,
  658.             /* [in] */ IErrorLog *pErrLog);
  659.         
  660.         END_INTERFACE
  661.     } IDXTransformFactoryVtbl;
  662.  
  663.     interface IDXTransformFactory
  664.     {
  665.         CONST_VTBL struct IDXTransformFactoryVtbl *lpVtbl;
  666.     };
  667.  
  668.     
  669.  
  670. #ifdef COBJMACROS
  671.  
  672.  
  673. #define IDXTransformFactory_QueryInterface(This,riid,ppvObject)    \
  674.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  675.  
  676. #define IDXTransformFactory_AddRef(This)    \
  677.     (This)->lpVtbl -> AddRef(This)
  678.  
  679. #define IDXTransformFactory_Release(This)    \
  680.     (This)->lpVtbl -> Release(This)
  681.  
  682.  
  683. #define IDXTransformFactory_QueryService(This,guidService,riid,ppvObject)    \
  684.     (This)->lpVtbl -> QueryService(This,guidService,riid,ppvObject)
  685.  
  686.  
  687. #define IDXTransformFactory_SetService(This,guidService,pUnkService,bWeakReference)    \
  688.     (This)->lpVtbl -> SetService(This,guidService,pUnkService,bWeakReference)
  689.  
  690. #define IDXTransformFactory_CreateTransform(This,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,pInitProps,pErrLog,TransCLSID,TransIID,ppTransform)    \
  691.     (This)->lpVtbl -> CreateTransform(This,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,pInitProps,pErrLog,TransCLSID,TransIID,ppTransform)
  692.  
  693. #define IDXTransformFactory_InitializeTransform(This,pTransform,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,pInitProps,pErrLog)    \
  694.     (This)->lpVtbl -> InitializeTransform(This,pTransform,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,pInitProps,pErrLog)
  695.  
  696. #endif /* COBJMACROS */
  697.  
  698.  
  699. #endif     /* C style interface */
  700.  
  701.  
  702.  
  703. HRESULT STDMETHODCALLTYPE IDXTransformFactory_SetService_Proxy( 
  704.     IDXTransformFactory * This,
  705.     /* [in] */ REFGUID guidService,
  706.     /* [in] */ IUnknown *pUnkService,
  707.     /* [in] */ BOOL bWeakReference);
  708.  
  709.  
  710. void __RPC_STUB IDXTransformFactory_SetService_Stub(
  711.     IRpcStubBuffer *This,
  712.     IRpcChannelBuffer *_pRpcChannelBuffer,
  713.     PRPC_MESSAGE _pRpcMessage,
  714.     DWORD *_pdwStubPhase);
  715.  
  716.  
  717. HRESULT STDMETHODCALLTYPE IDXTransformFactory_CreateTransform_Proxy( 
  718.     IDXTransformFactory * This,
  719.     /* [size_is][in] */ IUnknown **punkInputs,
  720.     /* [in] */ ULONG ulNumInputs,
  721.     /* [size_is][in] */ IUnknown **punkOutputs,
  722.     /* [in] */ ULONG ulNumOutputs,
  723.     /* [in] */ IPropertyBag *pInitProps,
  724.     /* [in] */ IErrorLog *pErrLog,
  725.     /* [in] */ REFCLSID TransCLSID,
  726.     /* [in] */ REFIID TransIID,
  727.     /* [iid_is][out] */ void **ppTransform);
  728.  
  729.  
  730. void __RPC_STUB IDXTransformFactory_CreateTransform_Stub(
  731.     IRpcStubBuffer *This,
  732.     IRpcChannelBuffer *_pRpcChannelBuffer,
  733.     PRPC_MESSAGE _pRpcMessage,
  734.     DWORD *_pdwStubPhase);
  735.  
  736.  
  737. HRESULT STDMETHODCALLTYPE IDXTransformFactory_InitializeTransform_Proxy( 
  738.     IDXTransformFactory * This,
  739.     /* [in] */ IDXTransform *pTransform,
  740.     /* [size_is][in] */ IUnknown **punkInputs,
  741.     /* [in] */ ULONG ulNumInputs,
  742.     /* [size_is][in] */ IUnknown **punkOutputs,
  743.     /* [in] */ ULONG ulNumOutputs,
  744.     /* [in] */ IPropertyBag *pInitProps,
  745.     /* [in] */ IErrorLog *pErrLog);
  746.  
  747.  
  748. void __RPC_STUB IDXTransformFactory_InitializeTransform_Stub(
  749.     IRpcStubBuffer *This,
  750.     IRpcChannelBuffer *_pRpcChannelBuffer,
  751.     PRPC_MESSAGE _pRpcMessage,
  752.     DWORD *_pdwStubPhase);
  753.  
  754.  
  755.  
  756. #endif     /* __IDXTransformFactory_INTERFACE_DEFINED__ */
  757.  
  758.  
  759. /* interface __MIDL_itf_dxtrans_0254 */
  760. /* [local] */ 
  761.  
  762. typedef 
  763. enum DXTMISCFLAGS
  764.     {    DXTMF_BLEND_WITH_OUTPUT    = 1L << 0,
  765.     DXTMF_DITHER_OUTPUT    = 1L << 1,
  766.     DXTMF_OPTION_MASK    = 0xffff,
  767.     DXTMF_VALID_OPTIONS    = DXTMF_BLEND_WITH_OUTPUT | DXTMF_DITHER_OUTPUT,
  768.     DXTMF_BLEND_SUPPORTED    = 1L << 16,
  769.     DXTMF_DITHER_SUPPORTED    = 1L << 17,
  770.     DXTMF_INPLACE_OPERATION    = 1L << 24,
  771.     DXTMF_BOUNDS_SUPPORTED    = 1L << 25,
  772.     DXTMF_PLACEMENT_SUPPORTED    = 1L << 26,
  773.     DXTMF_QUALITY_SUPPORTED    = 1L << 27,
  774.     DXTMF_OPAQUE_RESULT    = 1L << 28
  775.     }     DXTMISCFLAGS;
  776.  
  777. typedef 
  778. enum DXINOUTINFOFLAGS
  779.     {    DXINOUTF_OPTIONAL    = 1L << 0
  780.     }     DXINOUTINFOFLAGS;
  781.  
  782.  
  783.  
  784. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0254_v0_0_c_ifspec;
  785. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0254_v0_0_s_ifspec;
  786.  
  787. #ifndef __IDXTransform_INTERFACE_DEFINED__
  788. #define __IDXTransform_INTERFACE_DEFINED__
  789.  
  790. /* interface IDXTransform */
  791. /* [object][unique][helpstring][uuid] */ 
  792.  
  793.  
  794. EXTERN_C const IID IID_IDXTransform;
  795.  
  796. #if defined(__cplusplus) && !defined(CINTERFACE)
  797.     
  798.     MIDL_INTERFACE("30A5FB78-E11F-11d1-9064-00C04FD9189D")
  799.     IDXTransform : public IDXBaseObject
  800.     {
  801.     public:
  802.         virtual HRESULT STDMETHODCALLTYPE Setup( 
  803.             /* [size_is][in] */ IUnknown *const *punkInputs,
  804.             /* [in] */ ULONG ulNumInputs,
  805.             /* [size_is][in] */ IUnknown *const *punkOutputs,
  806.             /* [in] */ ULONG ulNumOutputs,
  807.             /* [in] */ DWORD dwFlags) = 0;
  808.         
  809.         virtual HRESULT STDMETHODCALLTYPE Execute( 
  810.             /* [in] */ const GUID *pRequestID,
  811.             /* [in] */ const DXBNDS *pClipBnds,
  812.             /* [in] */ const DXVEC *pPlacement) = 0;
  813.         
  814.         virtual HRESULT STDMETHODCALLTYPE MapBoundsIn2Out( 
  815.             /* [in] */ const DXBNDS *pInBounds,
  816.             /* [in] */ ULONG ulNumInBnds,
  817.             /* [in] */ ULONG ulOutIndex,
  818.             /* [out] */ DXBNDS *pOutBounds) = 0;
  819.         
  820.         virtual HRESULT STDMETHODCALLTYPE MapBoundsOut2In( 
  821.             /* [in] */ ULONG ulOutIndex,
  822.             /* [in] */ const DXBNDS *pOutBounds,
  823.             /* [in] */ ULONG ulInIndex,
  824.             /* [out] */ DXBNDS *pInBounds) = 0;
  825.         
  826.         virtual HRESULT STDMETHODCALLTYPE SetMiscFlags( 
  827.             /* [in] */ DWORD dwMiscFlags) = 0;
  828.         
  829.         virtual HRESULT STDMETHODCALLTYPE GetMiscFlags( 
  830.             /* [out] */ DWORD *pdwMiscFlags) = 0;
  831.         
  832.         virtual HRESULT STDMETHODCALLTYPE GetInOutInfo( 
  833.             /* [in] */ BOOL bIsOutput,
  834.             /* [in] */ ULONG ulIndex,
  835.             /* [out] */ DWORD *pdwFlags,
  836.             /* [size_is][out] */ GUID *pIDs,
  837.             /* [out][in] */ ULONG *pcIDs,
  838.             /* [out] */ IUnknown **ppUnkCurrentObject) = 0;
  839.         
  840.         virtual HRESULT STDMETHODCALLTYPE SetQuality( 
  841.             /* [in] */ float fQuality) = 0;
  842.         
  843.         virtual HRESULT STDMETHODCALLTYPE GetQuality( 
  844.             /* [out] */ float *fQuality) = 0;
  845.         
  846.     };
  847.     
  848. #else     /* C style interface */
  849.  
  850.     typedef struct IDXTransformVtbl
  851.     {
  852.         BEGIN_INTERFACE
  853.         
  854.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  855.             IDXTransform * This,
  856.             /* [in] */ REFIID riid,
  857.             /* [iid_is][out] */ void **ppvObject);
  858.         
  859.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  860.             IDXTransform * This);
  861.         
  862.         ULONG ( STDMETHODCALLTYPE *Release )( 
  863.             IDXTransform * This);
  864.         
  865.         HRESULT ( STDMETHODCALLTYPE *GetGenerationId )( 
  866.             IDXTransform * This,
  867.             /* [out] */ ULONG *pID);
  868.         
  869.         HRESULT ( STDMETHODCALLTYPE *IncrementGenerationId )( 
  870.             IDXTransform * This,
  871.             /* [in] */ BOOL bRefresh);
  872.         
  873.         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
  874.             IDXTransform * This,
  875.             /* [out] */ ULONG *pcbSize);
  876.         
  877.         HRESULT ( STDMETHODCALLTYPE *Setup )( 
  878.             IDXTransform * This,
  879.             /* [size_is][in] */ IUnknown *const *punkInputs,
  880.             /* [in] */ ULONG ulNumInputs,
  881.             /* [size_is][in] */ IUnknown *const *punkOutputs,
  882.             /* [in] */ ULONG ulNumOutputs,
  883.             /* [in] */ DWORD dwFlags);
  884.         
  885.         HRESULT ( STDMETHODCALLTYPE *Execute )( 
  886.             IDXTransform * This,
  887.             /* [in] */ const GUID *pRequestID,
  888.             /* [in] */ const DXBNDS *pClipBnds,
  889.             /* [in] */ const DXVEC *pPlacement);
  890.         
  891.         HRESULT ( STDMETHODCALLTYPE *MapBoundsIn2Out )( 
  892.             IDXTransform * This,
  893.             /* [in] */ const DXBNDS *pInBounds,
  894.             /* [in] */ ULONG ulNumInBnds,
  895.             /* [in] */ ULONG ulOutIndex,
  896.             /* [out] */ DXBNDS *pOutBounds);
  897.         
  898.         HRESULT ( STDMETHODCALLTYPE *MapBoundsOut2In )( 
  899.             IDXTransform * This,
  900.             /* [in] */ ULONG ulOutIndex,
  901.             /* [in] */ const DXBNDS *pOutBounds,
  902.             /* [in] */ ULONG ulInIndex,
  903.             /* [out] */ DXBNDS *pInBounds);
  904.         
  905.         HRESULT ( STDMETHODCALLTYPE *SetMiscFlags )( 
  906.             IDXTransform * This,
  907.             /* [in] */ DWORD dwMiscFlags);
  908.         
  909.         HRESULT ( STDMETHODCALLTYPE *GetMiscFlags )( 
  910.             IDXTransform * This,
  911.             /* [out] */ DWORD *pdwMiscFlags);
  912.         
  913.         HRESULT ( STDMETHODCALLTYPE *GetInOutInfo )( 
  914.             IDXTransform * This,
  915.             /* [in] */ BOOL bIsOutput,
  916.             /* [in] */ ULONG ulIndex,
  917.             /* [out] */ DWORD *pdwFlags,
  918.             /* [size_is][out] */ GUID *pIDs,
  919.             /* [out][in] */ ULONG *pcIDs,
  920.             /* [out] */ IUnknown **ppUnkCurrentObject);
  921.         
  922.         HRESULT ( STDMETHODCALLTYPE *SetQuality )( 
  923.             IDXTransform * This,
  924.             /* [in] */ float fQuality);
  925.         
  926.         HRESULT ( STDMETHODCALLTYPE *GetQuality )( 
  927.             IDXTransform * This,
  928.             /* [out] */ float *fQuality);
  929.         
  930.         END_INTERFACE
  931.     } IDXTransformVtbl;
  932.  
  933.     interface IDXTransform
  934.     {
  935.         CONST_VTBL struct IDXTransformVtbl *lpVtbl;
  936.     };
  937.  
  938.     
  939.  
  940. #ifdef COBJMACROS
  941.  
  942.  
  943. #define IDXTransform_QueryInterface(This,riid,ppvObject)    \
  944.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  945.  
  946. #define IDXTransform_AddRef(This)    \
  947.     (This)->lpVtbl -> AddRef(This)
  948.  
  949. #define IDXTransform_Release(This)    \
  950.     (This)->lpVtbl -> Release(This)
  951.  
  952.  
  953. #define IDXTransform_GetGenerationId(This,pID)    \
  954.     (This)->lpVtbl -> GetGenerationId(This,pID)
  955.  
  956. #define IDXTransform_IncrementGenerationId(This,bRefresh)    \
  957.     (This)->lpVtbl -> IncrementGenerationId(This,bRefresh)
  958.  
  959. #define IDXTransform_GetObjectSize(This,pcbSize)    \
  960.     (This)->lpVtbl -> GetObjectSize(This,pcbSize)
  961.  
  962.  
  963. #define IDXTransform_Setup(This,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,dwFlags)    \
  964.     (This)->lpVtbl -> Setup(This,punkInputs,ulNumInputs,punkOutputs,ulNumOutputs,dwFlags)
  965.  
  966. #define IDXTransform_Execute(This,pRequestID,pClipBnds,pPlacement)    \
  967.     (This)->lpVtbl -> Execute(This,pRequestID,pClipBnds,pPlacement)
  968.  
  969. #define IDXTransform_MapBoundsIn2Out(This,pInBounds,ulNumInBnds,ulOutIndex,pOutBounds)    \
  970.     (This)->lpVtbl -> MapBoundsIn2Out(This,pInBounds,ulNumInBnds,ulOutIndex,pOutBounds)
  971.  
  972. #define IDXTransform_MapBoundsOut2In(This,ulOutIndex,pOutBounds,ulInIndex,pInBounds)    \
  973.     (This)->lpVtbl -> MapBoundsOut2In(This,ulOutIndex,pOutBounds,ulInIndex,pInBounds)
  974.  
  975. #define IDXTransform_SetMiscFlags(This,dwMiscFlags)    \
  976.     (This)->lpVtbl -> SetMiscFlags(This,dwMiscFlags)
  977.  
  978. #define IDXTransform_GetMiscFlags(This,pdwMiscFlags)    \
  979.     (This)->lpVtbl -> GetMiscFlags(This,pdwMiscFlags)
  980.  
  981. #define IDXTransform_GetInOutInfo(This,bIsOutput,ulIndex,pdwFlags,pIDs,pcIDs,ppUnkCurrentObject)    \
  982.     (This)->lpVtbl -> GetInOutInfo(This,bIsOutput,ulIndex,pdwFlags,pIDs,pcIDs,ppUnkCurrentObject)
  983.  
  984. #define IDXTransform_SetQuality(This,fQuality)    \
  985.     (This)->lpVtbl -> SetQuality(This,fQuality)
  986.  
  987. #define IDXTransform_GetQuality(This,fQuality)    \
  988.     (This)->lpVtbl -> GetQuality(This,fQuality)
  989.  
  990. #endif /* COBJMACROS */
  991.  
  992.  
  993. #endif     /* C style interface */
  994.  
  995.  
  996.  
  997. HRESULT STDMETHODCALLTYPE IDXTransform_Setup_Proxy( 
  998.     IDXTransform * This,
  999.     /* [size_is][in] */ IUnknown *const *punkInputs,
  1000.     /* [in] */ ULONG ulNumInputs,
  1001.     /* [size_is][in] */ IUnknown *const *punkOutputs,
  1002.     /* [in] */ ULONG ulNumOutputs,
  1003.     /* [in] */ DWORD dwFlags);
  1004.  
  1005.  
  1006. void __RPC_STUB IDXTransform_Setup_Stub(
  1007.     IRpcStubBuffer *This,
  1008.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1009.     PRPC_MESSAGE _pRpcMessage,
  1010.     DWORD *_pdwStubPhase);
  1011.  
  1012.  
  1013. HRESULT STDMETHODCALLTYPE IDXTransform_Execute_Proxy( 
  1014.     IDXTransform * This,
  1015.     /* [in] */ const GUID *pRequestID,
  1016.     /* [in] */ const DXBNDS *pClipBnds,
  1017.     /* [in] */ const DXVEC *pPlacement);
  1018.  
  1019.  
  1020. void __RPC_STUB IDXTransform_Execute_Stub(
  1021.     IRpcStubBuffer *This,
  1022.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1023.     PRPC_MESSAGE _pRpcMessage,
  1024.     DWORD *_pdwStubPhase);
  1025.  
  1026.  
  1027. HRESULT STDMETHODCALLTYPE IDXTransform_MapBoundsIn2Out_Proxy( 
  1028.     IDXTransform * This,
  1029.     /* [in] */ const DXBNDS *pInBounds,
  1030.     /* [in] */ ULONG ulNumInBnds,
  1031.     /* [in] */ ULONG ulOutIndex,
  1032.     /* [out] */ DXBNDS *pOutBounds);
  1033.  
  1034.  
  1035. void __RPC_STUB IDXTransform_MapBoundsIn2Out_Stub(
  1036.     IRpcStubBuffer *This,
  1037.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1038.     PRPC_MESSAGE _pRpcMessage,
  1039.     DWORD *_pdwStubPhase);
  1040.  
  1041.  
  1042. HRESULT STDMETHODCALLTYPE IDXTransform_MapBoundsOut2In_Proxy( 
  1043.     IDXTransform * This,
  1044.     /* [in] */ ULONG ulOutIndex,
  1045.     /* [in] */ const DXBNDS *pOutBounds,
  1046.     /* [in] */ ULONG ulInIndex,
  1047.     /* [out] */ DXBNDS *pInBounds);
  1048.  
  1049.  
  1050. void __RPC_STUB IDXTransform_MapBoundsOut2In_Stub(
  1051.     IRpcStubBuffer *This,
  1052.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1053.     PRPC_MESSAGE _pRpcMessage,
  1054.     DWORD *_pdwStubPhase);
  1055.  
  1056.  
  1057. HRESULT STDMETHODCALLTYPE IDXTransform_SetMiscFlags_Proxy( 
  1058.     IDXTransform * This,
  1059.     /* [in] */ DWORD dwMiscFlags);
  1060.  
  1061.  
  1062. void __RPC_STUB IDXTransform_SetMiscFlags_Stub(
  1063.     IRpcStubBuffer *This,
  1064.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1065.     PRPC_MESSAGE _pRpcMessage,
  1066.     DWORD *_pdwStubPhase);
  1067.  
  1068.  
  1069. HRESULT STDMETHODCALLTYPE IDXTransform_GetMiscFlags_Proxy( 
  1070.     IDXTransform * This,
  1071.     /* [out] */ DWORD *pdwMiscFlags);
  1072.  
  1073.  
  1074. void __RPC_STUB IDXTransform_GetMiscFlags_Stub(
  1075.     IRpcStubBuffer *This,
  1076.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1077.     PRPC_MESSAGE _pRpcMessage,
  1078.     DWORD *_pdwStubPhase);
  1079.  
  1080.  
  1081. HRESULT STDMETHODCALLTYPE IDXTransform_GetInOutInfo_Proxy( 
  1082.     IDXTransform * This,
  1083.     /* [in] */ BOOL bIsOutput,
  1084.     /* [in] */ ULONG ulIndex,
  1085.     /* [out] */ DWORD *pdwFlags,
  1086.     /* [size_is][out] */ GUID *pIDs,
  1087.     /* [out][in] */ ULONG *pcIDs,
  1088.     /* [out] */ IUnknown **ppUnkCurrentObject);
  1089.  
  1090.  
  1091. void __RPC_STUB IDXTransform_GetInOutInfo_Stub(
  1092.     IRpcStubBuffer *This,
  1093.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1094.     PRPC_MESSAGE _pRpcMessage,
  1095.     DWORD *_pdwStubPhase);
  1096.  
  1097.  
  1098. HRESULT STDMETHODCALLTYPE IDXTransform_SetQuality_Proxy( 
  1099.     IDXTransform * This,
  1100.     /* [in] */ float fQuality);
  1101.  
  1102.  
  1103. void __RPC_STUB IDXTransform_SetQuality_Stub(
  1104.     IRpcStubBuffer *This,
  1105.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1106.     PRPC_MESSAGE _pRpcMessage,
  1107.     DWORD *_pdwStubPhase);
  1108.  
  1109.  
  1110. HRESULT STDMETHODCALLTYPE IDXTransform_GetQuality_Proxy( 
  1111.     IDXTransform * This,
  1112.     /* [out] */ float *fQuality);
  1113.  
  1114.  
  1115. void __RPC_STUB IDXTransform_GetQuality_Stub(
  1116.     IRpcStubBuffer *This,
  1117.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1118.     PRPC_MESSAGE _pRpcMessage,
  1119.     DWORD *_pdwStubPhase);
  1120.  
  1121.  
  1122.  
  1123. #endif     /* __IDXTransform_INTERFACE_DEFINED__ */
  1124.  
  1125.  
  1126. #ifndef __IDXSurfacePick_INTERFACE_DEFINED__
  1127. #define __IDXSurfacePick_INTERFACE_DEFINED__
  1128.  
  1129. /* interface IDXSurfacePick */
  1130. /* [object][unique][helpstring][uuid] */ 
  1131.  
  1132.  
  1133. EXTERN_C const IID IID_IDXSurfacePick;
  1134.  
  1135. #if defined(__cplusplus) && !defined(CINTERFACE)
  1136.     
  1137.     MIDL_INTERFACE("30A5FB79-E11F-11d1-9064-00C04FD9189D")
  1138.     IDXSurfacePick : public IUnknown
  1139.     {
  1140.     public:
  1141.         virtual HRESULT STDMETHODCALLTYPE PointPick( 
  1142.             /* [in] */ const DXVEC *pPoint,
  1143.             /* [out] */ ULONG *pulInputSurfaceIndex,
  1144.             /* [out] */ DXVEC *pInputPoint) = 0;
  1145.         
  1146.     };
  1147.     
  1148. #else     /* C style interface */
  1149.  
  1150.     typedef struct IDXSurfacePickVtbl
  1151.     {
  1152.         BEGIN_INTERFACE
  1153.         
  1154.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1155.             IDXSurfacePick * This,
  1156.             /* [in] */ REFIID riid,
  1157.             /* [iid_is][out] */ void **ppvObject);
  1158.         
  1159.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1160.             IDXSurfacePick * This);
  1161.         
  1162.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1163.             IDXSurfacePick * This);
  1164.         
  1165.         HRESULT ( STDMETHODCALLTYPE *PointPick )( 
  1166.             IDXSurfacePick * This,
  1167.             /* [in] */ const DXVEC *pPoint,
  1168.             /* [out] */ ULONG *pulInputSurfaceIndex,
  1169.             /* [out] */ DXVEC *pInputPoint);
  1170.         
  1171.         END_INTERFACE
  1172.     } IDXSurfacePickVtbl;
  1173.  
  1174.     interface IDXSurfacePick
  1175.     {
  1176.         CONST_VTBL struct IDXSurfacePickVtbl *lpVtbl;
  1177.     };
  1178.  
  1179.     
  1180.  
  1181. #ifdef COBJMACROS
  1182.  
  1183.  
  1184. #define IDXSurfacePick_QueryInterface(This,riid,ppvObject)    \
  1185.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1186.  
  1187. #define IDXSurfacePick_AddRef(This)    \
  1188.     (This)->lpVtbl -> AddRef(This)
  1189.  
  1190. #define IDXSurfacePick_Release(This)    \
  1191.     (This)->lpVtbl -> Release(This)
  1192.  
  1193.  
  1194. #define IDXSurfacePick_PointPick(This,pPoint,pulInputSurfaceIndex,pInputPoint)    \
  1195.     (This)->lpVtbl -> PointPick(This,pPoint,pulInputSurfaceIndex,pInputPoint)
  1196.  
  1197. #endif /* COBJMACROS */
  1198.  
  1199.  
  1200. #endif     /* C style interface */
  1201.  
  1202.  
  1203.  
  1204. HRESULT STDMETHODCALLTYPE IDXSurfacePick_PointPick_Proxy( 
  1205.     IDXSurfacePick * This,
  1206.     /* [in] */ const DXVEC *pPoint,
  1207.     /* [out] */ ULONG *pulInputSurfaceIndex,
  1208.     /* [out] */ DXVEC *pInputPoint);
  1209.  
  1210.  
  1211. void __RPC_STUB IDXSurfacePick_PointPick_Stub(
  1212.     IRpcStubBuffer *This,
  1213.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1214.     PRPC_MESSAGE _pRpcMessage,
  1215.     DWORD *_pdwStubPhase);
  1216.  
  1217.  
  1218.  
  1219. #endif     /* __IDXSurfacePick_INTERFACE_DEFINED__ */
  1220.  
  1221.  
  1222. #ifndef __IDXTBindHost_INTERFACE_DEFINED__
  1223. #define __IDXTBindHost_INTERFACE_DEFINED__
  1224.  
  1225. /* interface IDXTBindHost */
  1226. /* [object][local][unique][helpstring][uuid] */ 
  1227.  
  1228.  
  1229. EXTERN_C const IID IID_IDXTBindHost;
  1230.  
  1231. #if defined(__cplusplus) && !defined(CINTERFACE)
  1232.     
  1233.     MIDL_INTERFACE("D26BCE55-E9DC-11d1-9066-00C04FD9189D")
  1234.     IDXTBindHost : public IUnknown
  1235.     {
  1236.     public:
  1237.         virtual HRESULT STDMETHODCALLTYPE SetBindHost( 
  1238.             /* [in] */ IBindHost *pBindHost) = 0;
  1239.         
  1240.     };
  1241.     
  1242. #else     /* C style interface */
  1243.  
  1244.     typedef struct IDXTBindHostVtbl
  1245.     {
  1246.         BEGIN_INTERFACE
  1247.         
  1248.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1249.             IDXTBindHost * This,
  1250.             /* [in] */ REFIID riid,
  1251.             /* [iid_is][out] */ void **ppvObject);
  1252.         
  1253.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1254.             IDXTBindHost * This);
  1255.         
  1256.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1257.             IDXTBindHost * This);
  1258.         
  1259.         HRESULT ( STDMETHODCALLTYPE *SetBindHost )( 
  1260.             IDXTBindHost * This,
  1261.             /* [in] */ IBindHost *pBindHost);
  1262.         
  1263.         END_INTERFACE
  1264.     } IDXTBindHostVtbl;
  1265.  
  1266.     interface IDXTBindHost
  1267.     {
  1268.         CONST_VTBL struct IDXTBindHostVtbl *lpVtbl;
  1269.     };
  1270.  
  1271.     
  1272.  
  1273. #ifdef COBJMACROS
  1274.  
  1275.  
  1276. #define IDXTBindHost_QueryInterface(This,riid,ppvObject)    \
  1277.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1278.  
  1279. #define IDXTBindHost_AddRef(This)    \
  1280.     (This)->lpVtbl -> AddRef(This)
  1281.  
  1282. #define IDXTBindHost_Release(This)    \
  1283.     (This)->lpVtbl -> Release(This)
  1284.  
  1285.  
  1286. #define IDXTBindHost_SetBindHost(This,pBindHost)    \
  1287.     (This)->lpVtbl -> SetBindHost(This,pBindHost)
  1288.  
  1289. #endif /* COBJMACROS */
  1290.  
  1291.  
  1292. #endif     /* C style interface */
  1293.  
  1294.  
  1295.  
  1296. HRESULT STDMETHODCALLTYPE IDXTBindHost_SetBindHost_Proxy( 
  1297.     IDXTBindHost * This,
  1298.     /* [in] */ IBindHost *pBindHost);
  1299.  
  1300.  
  1301. void __RPC_STUB IDXTBindHost_SetBindHost_Stub(
  1302.     IRpcStubBuffer *This,
  1303.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1304.     PRPC_MESSAGE _pRpcMessage,
  1305.     DWORD *_pdwStubPhase);
  1306.  
  1307.  
  1308.  
  1309. #endif     /* __IDXTBindHost_INTERFACE_DEFINED__ */
  1310.  
  1311.  
  1312. /* interface __MIDL_itf_dxtrans_0257 */
  1313. /* [local] */ 
  1314.  
  1315. typedef void __stdcall __stdcall DXTASKPROC( 
  1316.     void *pTaskData,
  1317.     BOOL *pbContinueProcessing);
  1318.  
  1319. typedef DXTASKPROC *PFNDXTASKPROC;
  1320.  
  1321. typedef void __stdcall __stdcall DXAPCPROC( 
  1322.     DWORD dwData);
  1323.  
  1324. typedef DXAPCPROC *PFNDXAPCPROC;
  1325.  
  1326. #ifdef __cplusplus
  1327. typedef struct DXTMTASKINFO
  1328. {
  1329.     PFNDXTASKPROC pfnTaskProc;       // Pointer to function to execute
  1330.     PVOID         pTaskData;         // Pointer to argument data
  1331.     PFNDXAPCPROC  pfnCompletionAPC;  // Pointer to completion APC proc
  1332.     DWORD         dwCompletionData;  // Pointer to APC proc data
  1333.     const GUID*   pRequestID;        // Used to identify groups of tasks
  1334. } DXTMTASKINFO;
  1335. #else
  1336. typedef struct DXTMTASKINFO
  1337.     {
  1338.     PVOID pfnTaskProc;
  1339.     PVOID pTaskData;
  1340.     PVOID pfnCompletionAPC;
  1341.     DWORD dwCompletionData;
  1342.     const GUID *pRequestID;
  1343.     }     DXTMTASKINFO;
  1344.  
  1345. #endif
  1346.  
  1347.  
  1348. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0257_v0_0_c_ifspec;
  1349. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0257_v0_0_s_ifspec;
  1350.  
  1351. #ifndef __IDXTaskManager_INTERFACE_DEFINED__
  1352. #define __IDXTaskManager_INTERFACE_DEFINED__
  1353.  
  1354. /* interface IDXTaskManager */
  1355. /* [object][unique][helpstring][uuid][local] */ 
  1356.  
  1357.  
  1358. EXTERN_C const IID IID_IDXTaskManager;
  1359.  
  1360. #if defined(__cplusplus) && !defined(CINTERFACE)
  1361.     
  1362.     MIDL_INTERFACE("254DBBC1-F922-11d0-883A-3C8B00C10000")
  1363.     IDXTaskManager : public IUnknown
  1364.     {
  1365.     public:
  1366.         virtual HRESULT STDMETHODCALLTYPE QueryNumProcessors( 
  1367.             /* [out] */ ULONG *pulNumProc) = 0;
  1368.         
  1369.         virtual HRESULT STDMETHODCALLTYPE SetThreadPoolSize( 
  1370.             /* [in] */ ULONG ulNumThreads) = 0;
  1371.         
  1372.         virtual HRESULT STDMETHODCALLTYPE GetThreadPoolSize( 
  1373.             /* [out] */ ULONG *pulNumThreads) = 0;
  1374.         
  1375.         virtual HRESULT STDMETHODCALLTYPE SetConcurrencyLimit( 
  1376.             /* [in] */ ULONG ulNumThreads) = 0;
  1377.         
  1378.         virtual HRESULT STDMETHODCALLTYPE GetConcurrencyLimit( 
  1379.             /* [out] */ ULONG *pulNumThreads) = 0;
  1380.         
  1381.         virtual HRESULT STDMETHODCALLTYPE ScheduleTasks( 
  1382.             /* [in] */ DXTMTASKINFO TaskInfo[  ],
  1383.             /* [in] */ HANDLE Events[  ],
  1384.             /* [out] */ DWORD TaskIDs[  ],
  1385.             /* [in] */ ULONG ulNumTasks,
  1386.             /* [in] */ ULONG ulWaitPeriod) = 0;
  1387.         
  1388.         virtual HRESULT STDMETHODCALLTYPE TerminateTasks( 
  1389.             /* [in] */ DWORD TaskIDs[  ],
  1390.             /* [in] */ ULONG ulCount,
  1391.             /* [in] */ ULONG ulTimeOut) = 0;
  1392.         
  1393.         virtual HRESULT STDMETHODCALLTYPE TerminateRequest( 
  1394.             /* [in] */ REFIID RequestID,
  1395.             /* [in] */ ULONG ulTimeOut) = 0;
  1396.         
  1397.     };
  1398.     
  1399. #else     /* C style interface */
  1400.  
  1401.     typedef struct IDXTaskManagerVtbl
  1402.     {
  1403.         BEGIN_INTERFACE
  1404.         
  1405.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1406.             IDXTaskManager * This,
  1407.             /* [in] */ REFIID riid,
  1408.             /* [iid_is][out] */ void **ppvObject);
  1409.         
  1410.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1411.             IDXTaskManager * This);
  1412.         
  1413.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1414.             IDXTaskManager * This);
  1415.         
  1416.         HRESULT ( STDMETHODCALLTYPE *QueryNumProcessors )( 
  1417.             IDXTaskManager * This,
  1418.             /* [out] */ ULONG *pulNumProc);
  1419.         
  1420.         HRESULT ( STDMETHODCALLTYPE *SetThreadPoolSize )( 
  1421.             IDXTaskManager * This,
  1422.             /* [in] */ ULONG ulNumThreads);
  1423.         
  1424.         HRESULT ( STDMETHODCALLTYPE *GetThreadPoolSize )( 
  1425.             IDXTaskManager * This,
  1426.             /* [out] */ ULONG *pulNumThreads);
  1427.         
  1428.         HRESULT ( STDMETHODCALLTYPE *SetConcurrencyLimit )( 
  1429.             IDXTaskManager * This,
  1430.             /* [in] */ ULONG ulNumThreads);
  1431.         
  1432.         HRESULT ( STDMETHODCALLTYPE *GetConcurrencyLimit )( 
  1433.             IDXTaskManager * This,
  1434.             /* [out] */ ULONG *pulNumThreads);
  1435.         
  1436.         HRESULT ( STDMETHODCALLTYPE *ScheduleTasks )( 
  1437.             IDXTaskManager * This,
  1438.             /* [in] */ DXTMTASKINFO TaskInfo[  ],
  1439.             /* [in] */ HANDLE Events[  ],
  1440.             /* [out] */ DWORD TaskIDs[  ],
  1441.             /* [in] */ ULONG ulNumTasks,
  1442.             /* [in] */ ULONG ulWaitPeriod);
  1443.         
  1444.         HRESULT ( STDMETHODCALLTYPE *TerminateTasks )( 
  1445.             IDXTaskManager * This,
  1446.             /* [in] */ DWORD TaskIDs[  ],
  1447.             /* [in] */ ULONG ulCount,
  1448.             /* [in] */ ULONG ulTimeOut);
  1449.         
  1450.         HRESULT ( STDMETHODCALLTYPE *TerminateRequest )( 
  1451.             IDXTaskManager * This,
  1452.             /* [in] */ REFIID RequestID,
  1453.             /* [in] */ ULONG ulTimeOut);
  1454.         
  1455.         END_INTERFACE
  1456.     } IDXTaskManagerVtbl;
  1457.  
  1458.     interface IDXTaskManager
  1459.     {
  1460.         CONST_VTBL struct IDXTaskManagerVtbl *lpVtbl;
  1461.     };
  1462.  
  1463.     
  1464.  
  1465. #ifdef COBJMACROS
  1466.  
  1467.  
  1468. #define IDXTaskManager_QueryInterface(This,riid,ppvObject)    \
  1469.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1470.  
  1471. #define IDXTaskManager_AddRef(This)    \
  1472.     (This)->lpVtbl -> AddRef(This)
  1473.  
  1474. #define IDXTaskManager_Release(This)    \
  1475.     (This)->lpVtbl -> Release(This)
  1476.  
  1477.  
  1478. #define IDXTaskManager_QueryNumProcessors(This,pulNumProc)    \
  1479.     (This)->lpVtbl -> QueryNumProcessors(This,pulNumProc)
  1480.  
  1481. #define IDXTaskManager_SetThreadPoolSize(This,ulNumThreads)    \
  1482.     (This)->lpVtbl -> SetThreadPoolSize(This,ulNumThreads)
  1483.  
  1484. #define IDXTaskManager_GetThreadPoolSize(This,pulNumThreads)    \
  1485.     (This)->lpVtbl -> GetThreadPoolSize(This,pulNumThreads)
  1486.  
  1487. #define IDXTaskManager_SetConcurrencyLimit(This,ulNumThreads)    \
  1488.     (This)->lpVtbl -> SetConcurrencyLimit(This,ulNumThreads)
  1489.  
  1490. #define IDXTaskManager_GetConcurrencyLimit(This,pulNumThreads)    \
  1491.     (This)->lpVtbl -> GetConcurrencyLimit(This,pulNumThreads)
  1492.  
  1493. #define IDXTaskManager_ScheduleTasks(This,TaskInfo,Events,TaskIDs,ulNumTasks,ulWaitPeriod)    \
  1494.     (This)->lpVtbl -> ScheduleTasks(This,TaskInfo,Events,TaskIDs,ulNumTasks,ulWaitPeriod)
  1495.  
  1496. #define IDXTaskManager_TerminateTasks(This,TaskIDs,ulCount,ulTimeOut)    \
  1497.     (This)->lpVtbl -> TerminateTasks(This,TaskIDs,ulCount,ulTimeOut)
  1498.  
  1499. #define IDXTaskManager_TerminateRequest(This,RequestID,ulTimeOut)    \
  1500.     (This)->lpVtbl -> TerminateRequest(This,RequestID,ulTimeOut)
  1501.  
  1502. #endif /* COBJMACROS */
  1503.  
  1504.  
  1505. #endif     /* C style interface */
  1506.  
  1507.  
  1508.  
  1509. HRESULT STDMETHODCALLTYPE IDXTaskManager_QueryNumProcessors_Proxy( 
  1510.     IDXTaskManager * This,
  1511.     /* [out] */ ULONG *pulNumProc);
  1512.  
  1513.  
  1514. void __RPC_STUB IDXTaskManager_QueryNumProcessors_Stub(
  1515.     IRpcStubBuffer *This,
  1516.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1517.     PRPC_MESSAGE _pRpcMessage,
  1518.     DWORD *_pdwStubPhase);
  1519.  
  1520.  
  1521. HRESULT STDMETHODCALLTYPE IDXTaskManager_SetThreadPoolSize_Proxy( 
  1522.     IDXTaskManager * This,
  1523.     /* [in] */ ULONG ulNumThreads);
  1524.  
  1525.  
  1526. void __RPC_STUB IDXTaskManager_SetThreadPoolSize_Stub(
  1527.     IRpcStubBuffer *This,
  1528.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1529.     PRPC_MESSAGE _pRpcMessage,
  1530.     DWORD *_pdwStubPhase);
  1531.  
  1532.  
  1533. HRESULT STDMETHODCALLTYPE IDXTaskManager_GetThreadPoolSize_Proxy( 
  1534.     IDXTaskManager * This,
  1535.     /* [out] */ ULONG *pulNumThreads);
  1536.  
  1537.  
  1538. void __RPC_STUB IDXTaskManager_GetThreadPoolSize_Stub(
  1539.     IRpcStubBuffer *This,
  1540.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1541.     PRPC_MESSAGE _pRpcMessage,
  1542.     DWORD *_pdwStubPhase);
  1543.  
  1544.  
  1545. HRESULT STDMETHODCALLTYPE IDXTaskManager_SetConcurrencyLimit_Proxy( 
  1546.     IDXTaskManager * This,
  1547.     /* [in] */ ULONG ulNumThreads);
  1548.  
  1549.  
  1550. void __RPC_STUB IDXTaskManager_SetConcurrencyLimit_Stub(
  1551.     IRpcStubBuffer *This,
  1552.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1553.     PRPC_MESSAGE _pRpcMessage,
  1554.     DWORD *_pdwStubPhase);
  1555.  
  1556.  
  1557. HRESULT STDMETHODCALLTYPE IDXTaskManager_GetConcurrencyLimit_Proxy( 
  1558.     IDXTaskManager * This,
  1559.     /* [out] */ ULONG *pulNumThreads);
  1560.  
  1561.  
  1562. void __RPC_STUB IDXTaskManager_GetConcurrencyLimit_Stub(
  1563.     IRpcStubBuffer *This,
  1564.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1565.     PRPC_MESSAGE _pRpcMessage,
  1566.     DWORD *_pdwStubPhase);
  1567.  
  1568.  
  1569. HRESULT STDMETHODCALLTYPE IDXTaskManager_ScheduleTasks_Proxy( 
  1570.     IDXTaskManager * This,
  1571.     /* [in] */ DXTMTASKINFO TaskInfo[  ],
  1572.     /* [in] */ HANDLE Events[  ],
  1573.     /* [out] */ DWORD TaskIDs[  ],
  1574.     /* [in] */ ULONG ulNumTasks,
  1575.     /* [in] */ ULONG ulWaitPeriod);
  1576.  
  1577.  
  1578. void __RPC_STUB IDXTaskManager_ScheduleTasks_Stub(
  1579.     IRpcStubBuffer *This,
  1580.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1581.     PRPC_MESSAGE _pRpcMessage,
  1582.     DWORD *_pdwStubPhase);
  1583.  
  1584.  
  1585. HRESULT STDMETHODCALLTYPE IDXTaskManager_TerminateTasks_Proxy( 
  1586.     IDXTaskManager * This,
  1587.     /* [in] */ DWORD TaskIDs[  ],
  1588.     /* [in] */ ULONG ulCount,
  1589.     /* [in] */ ULONG ulTimeOut);
  1590.  
  1591.  
  1592. void __RPC_STUB IDXTaskManager_TerminateTasks_Stub(
  1593.     IRpcStubBuffer *This,
  1594.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1595.     PRPC_MESSAGE _pRpcMessage,
  1596.     DWORD *_pdwStubPhase);
  1597.  
  1598.  
  1599. HRESULT STDMETHODCALLTYPE IDXTaskManager_TerminateRequest_Proxy( 
  1600.     IDXTaskManager * This,
  1601.     /* [in] */ REFIID RequestID,
  1602.     /* [in] */ ULONG ulTimeOut);
  1603.  
  1604.  
  1605. void __RPC_STUB IDXTaskManager_TerminateRequest_Stub(
  1606.     IRpcStubBuffer *This,
  1607.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1608.     PRPC_MESSAGE _pRpcMessage,
  1609.     DWORD *_pdwStubPhase);
  1610.  
  1611.  
  1612.  
  1613. #endif     /* __IDXTaskManager_INTERFACE_DEFINED__ */
  1614.  
  1615.  
  1616. /* interface __MIDL_itf_dxtrans_0258 */
  1617. /* [local] */ 
  1618.  
  1619. #ifdef __cplusplus
  1620. /////////////////////////////////////////////////////
  1621.  
  1622. class DXBASESAMPLE;
  1623. class DXSAMPLE;
  1624. class DXPMSAMPLE;
  1625.  
  1626. /////////////////////////////////////////////////////
  1627.  
  1628. class DXBASESAMPLE
  1629. {
  1630. public:
  1631.     BYTE Blue;
  1632.     BYTE Green;
  1633.     BYTE Red;
  1634.     BYTE Alpha;
  1635.     DXBASESAMPLE() {}
  1636.     DXBASESAMPLE(const BYTE alpha, const BYTE red, const BYTE green, const BYTE blue) :
  1637.         Alpha(alpha),
  1638.         Red(red),
  1639.         Green(green),
  1640.         Blue(blue) {}
  1641.     DXBASESAMPLE(const DWORD val) { *this = (*(DXBASESAMPLE *)&val); }
  1642.     operator DWORD () const {return *((DWORD *)this); }
  1643.     DWORD operator=(const DWORD val) { return *this = *((DXBASESAMPLE *)&val); }
  1644. }; // DXBASESAMPLE
  1645.  
  1646. /////////////////////////////////////////////////////
  1647.  
  1648. class DXSAMPLE : public DXBASESAMPLE
  1649. {
  1650. public:
  1651.     DXSAMPLE() {}
  1652.     DXSAMPLE(const BYTE alpha, const BYTE red, const BYTE green, const BYTE blue) :
  1653.          DXBASESAMPLE(alpha, red, green, blue) {}
  1654.     DXSAMPLE(const DWORD val) { *this = (*(DXSAMPLE *)&val); }
  1655.     operator DWORD () const {return *((DWORD *)this); }
  1656.     DWORD operator=(const DWORD val) { return *this = *((DXSAMPLE *)&val); }
  1657.     operator DXPMSAMPLE() const;
  1658. }; // DXSAMPLE
  1659.  
  1660. /////////////////////////////////////////////////////
  1661.  
  1662. class DXPMSAMPLE : public DXBASESAMPLE
  1663. {
  1664. public:
  1665.     DXPMSAMPLE() {}
  1666.     DXPMSAMPLE(const BYTE alpha, const BYTE red, const BYTE green, const BYTE blue) :
  1667.          DXBASESAMPLE(alpha, red, green, blue) {}
  1668.     DXPMSAMPLE(const DWORD val) { *this = (*(DXPMSAMPLE *)&val); }
  1669.     operator DWORD () const {return *((DWORD *)this); }
  1670.     DWORD operator=(const DWORD val) { return *this = *((DXPMSAMPLE *)&val); }
  1671.     operator DXSAMPLE() const;
  1672. }; // DXPMSAMPLE
  1673.  
  1674. //
  1675. // The following cast operators are to prevent a direct assignment of a DXSAMPLE to a DXPMSAMPLE
  1676. //
  1677. inline DXSAMPLE::operator DXPMSAMPLE() const { return *((DXPMSAMPLE *)this); }
  1678. inline DXPMSAMPLE::operator DXSAMPLE() const { return *((DXSAMPLE *)this); }
  1679. #else // !__cplusplus
  1680. typedef struct DXBASESAMPLE
  1681.     {
  1682.     BYTE Blue;
  1683.     BYTE Green;
  1684.     BYTE Red;
  1685.     BYTE Alpha;
  1686.     }     DXBASESAMPLE;
  1687.  
  1688. typedef struct DXSAMPLE
  1689.     {
  1690.     BYTE Blue;
  1691.     BYTE Green;
  1692.     BYTE Red;
  1693.     BYTE Alpha;
  1694.     }     DXSAMPLE;
  1695.  
  1696. typedef struct DXPMSAMPLE
  1697.     {
  1698.     BYTE Blue;
  1699.     BYTE Green;
  1700.     BYTE Red;
  1701.     BYTE Alpha;
  1702.     }     DXPMSAMPLE;
  1703.  
  1704. #endif // !__cplusplus
  1705. typedef 
  1706. enum DXRUNTYPE
  1707.     {    DXRUNTYPE_CLEAR    = 0,
  1708.     DXRUNTYPE_OPAQUE    = 1,
  1709.     DXRUNTYPE_TRANS    = 2,
  1710.     DXRUNTYPE_UNKNOWN    = 3
  1711.     }     DXRUNTYPE;
  1712.  
  1713. #define    DX_MAX_RUN_INFO_COUNT    ( 128 )
  1714.  
  1715. // Ignore the definition used by MIDL for TLB generation
  1716. #if 0
  1717. typedef struct DXRUNINFO
  1718.     {
  1719.     ULONG Bitfields;
  1720.     }     DXRUNINFO;
  1721.  
  1722. #endif // 0
  1723. typedef struct DXRUNINFO
  1724. {
  1725.     ULONG   Type  : 2;   // Type
  1726.     ULONG   Count : 30;  // Number of samples in run
  1727. } DXRUNINFO;
  1728. typedef 
  1729. enum DXSFCREATE
  1730.     {    DXSF_FORMAT_IS_CLSID    = 1L << 0,
  1731.     DXSF_NO_LAZY_DDRAW_LOCK    = 1L << 1
  1732.     }     DXSFCREATE;
  1733.  
  1734. typedef 
  1735. enum DXBLTOPTIONS
  1736.     {    DXBOF_DO_OVER    = 1L << 0,
  1737.     DXBOF_DITHER    = 1L << 1
  1738.     }     DXBLTOPTIONS;
  1739.  
  1740.  
  1741.  
  1742. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0258_v0_0_c_ifspec;
  1743. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0258_v0_0_s_ifspec;
  1744.  
  1745. #ifndef __IDXSurfaceFactory_INTERFACE_DEFINED__
  1746. #define __IDXSurfaceFactory_INTERFACE_DEFINED__
  1747.  
  1748. /* interface IDXSurfaceFactory */
  1749. /* [object][unique][helpstring][uuid] */ 
  1750.  
  1751.  
  1752. EXTERN_C const IID IID_IDXSurfaceFactory;
  1753.  
  1754. #if defined(__cplusplus) && !defined(CINTERFACE)
  1755.     
  1756.     MIDL_INTERFACE("144946F5-C4D4-11d1-81D1-0000F87557DB")
  1757.     IDXSurfaceFactory : public IUnknown
  1758.     {
  1759.     public:
  1760.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateSurface( 
  1761.             /* [in] */ IUnknown *pDirectDraw,
  1762.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1763.             /* [in] */ const GUID *pFormatID,
  1764.             /* [in] */ const DXBNDS *pBounds,
  1765.             /* [in] */ DWORD dwFlags,
  1766.             /* [in] */ IUnknown *punkOuter,
  1767.             /* [in] */ REFIID riid,
  1768.             /* [iid_is][out] */ void **ppDXSurface) = 0;
  1769.         
  1770.         virtual HRESULT STDMETHODCALLTYPE CreateFromDDSurface( 
  1771.             /* [in] */ IUnknown *pDDrawSurface,
  1772.             /* [in] */ const GUID *pFormatID,
  1773.             /* [in] */ DWORD dwFlags,
  1774.             /* [in] */ IUnknown *punkOuter,
  1775.             /* [in] */ REFIID riid,
  1776.             /* [iid_is][out] */ void **ppDXSurface) = 0;
  1777.         
  1778.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE LoadImage( 
  1779.             /* [in] */ const LPWSTR pszFileName,
  1780.             /* [in] */ IUnknown *pDirectDraw,
  1781.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1782.             /* [in] */ const GUID *pFormatID,
  1783.             /* [in] */ REFIID riid,
  1784.             /* [iid_is][out] */ void **ppDXSurface) = 0;
  1785.         
  1786.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE LoadImageFromStream( 
  1787.             /* [in] */ IStream *pStream,
  1788.             /* [in] */ IUnknown *pDirectDraw,
  1789.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1790.             /* [in] */ const GUID *pFormatID,
  1791.             /* [in] */ REFIID riid,
  1792.             /* [iid_is][out] */ void **ppDXSurface) = 0;
  1793.         
  1794.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE CopySurfaceToNewFormat( 
  1795.             /* [in] */ IDXSurface *pSrc,
  1796.             /* [in] */ IUnknown *pDirectDraw,
  1797.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1798.             /* [in] */ const GUID *pDestFormatID,
  1799.             /* [out] */ IDXSurface **ppNewSurface) = 0;
  1800.         
  1801.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateD3DRMTexture( 
  1802.             /* [in] */ IDXSurface *pSrc,
  1803.             /* [in] */ IUnknown *pDirectDraw,
  1804.             /* [in] */ IUnknown *pD3DRM3,
  1805.             /* [in] */ REFIID riid,
  1806.             /* [iid_is][out] */ void **ppTexture3) = 0;
  1807.         
  1808.         virtual HRESULT STDMETHODCALLTYPE BitBlt( 
  1809.             /* [in] */ IDXSurface *pDest,
  1810.             /* [in] */ const DXVEC *pPlacement,
  1811.             /* [in] */ IDXSurface *pSrc,
  1812.             /* [in] */ const DXBNDS *pClipBounds,
  1813.             /* [in] */ DWORD dwFlags) = 0;
  1814.         
  1815.     };
  1816.     
  1817. #else     /* C style interface */
  1818.  
  1819.     typedef struct IDXSurfaceFactoryVtbl
  1820.     {
  1821.         BEGIN_INTERFACE
  1822.         
  1823.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1824.             IDXSurfaceFactory * This,
  1825.             /* [in] */ REFIID riid,
  1826.             /* [iid_is][out] */ void **ppvObject);
  1827.         
  1828.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1829.             IDXSurfaceFactory * This);
  1830.         
  1831.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1832.             IDXSurfaceFactory * This);
  1833.         
  1834.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateSurface )( 
  1835.             IDXSurfaceFactory * This,
  1836.             /* [in] */ IUnknown *pDirectDraw,
  1837.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1838.             /* [in] */ const GUID *pFormatID,
  1839.             /* [in] */ const DXBNDS *pBounds,
  1840.             /* [in] */ DWORD dwFlags,
  1841.             /* [in] */ IUnknown *punkOuter,
  1842.             /* [in] */ REFIID riid,
  1843.             /* [iid_is][out] */ void **ppDXSurface);
  1844.         
  1845.         HRESULT ( STDMETHODCALLTYPE *CreateFromDDSurface )( 
  1846.             IDXSurfaceFactory * This,
  1847.             /* [in] */ IUnknown *pDDrawSurface,
  1848.             /* [in] */ const GUID *pFormatID,
  1849.             /* [in] */ DWORD dwFlags,
  1850.             /* [in] */ IUnknown *punkOuter,
  1851.             /* [in] */ REFIID riid,
  1852.             /* [iid_is][out] */ void **ppDXSurface);
  1853.         
  1854.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *LoadImage )( 
  1855.             IDXSurfaceFactory * This,
  1856.             /* [in] */ const LPWSTR pszFileName,
  1857.             /* [in] */ IUnknown *pDirectDraw,
  1858.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1859.             /* [in] */ const GUID *pFormatID,
  1860.             /* [in] */ REFIID riid,
  1861.             /* [iid_is][out] */ void **ppDXSurface);
  1862.         
  1863.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *LoadImageFromStream )( 
  1864.             IDXSurfaceFactory * This,
  1865.             /* [in] */ IStream *pStream,
  1866.             /* [in] */ IUnknown *pDirectDraw,
  1867.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1868.             /* [in] */ const GUID *pFormatID,
  1869.             /* [in] */ REFIID riid,
  1870.             /* [iid_is][out] */ void **ppDXSurface);
  1871.         
  1872.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CopySurfaceToNewFormat )( 
  1873.             IDXSurfaceFactory * This,
  1874.             /* [in] */ IDXSurface *pSrc,
  1875.             /* [in] */ IUnknown *pDirectDraw,
  1876.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1877.             /* [in] */ const GUID *pDestFormatID,
  1878.             /* [out] */ IDXSurface **ppNewSurface);
  1879.         
  1880.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateD3DRMTexture )( 
  1881.             IDXSurfaceFactory * This,
  1882.             /* [in] */ IDXSurface *pSrc,
  1883.             /* [in] */ IUnknown *pDirectDraw,
  1884.             /* [in] */ IUnknown *pD3DRM3,
  1885.             /* [in] */ REFIID riid,
  1886.             /* [iid_is][out] */ void **ppTexture3);
  1887.         
  1888.         HRESULT ( STDMETHODCALLTYPE *BitBlt )( 
  1889.             IDXSurfaceFactory * This,
  1890.             /* [in] */ IDXSurface *pDest,
  1891.             /* [in] */ const DXVEC *pPlacement,
  1892.             /* [in] */ IDXSurface *pSrc,
  1893.             /* [in] */ const DXBNDS *pClipBounds,
  1894.             /* [in] */ DWORD dwFlags);
  1895.         
  1896.         END_INTERFACE
  1897.     } IDXSurfaceFactoryVtbl;
  1898.  
  1899.     interface IDXSurfaceFactory
  1900.     {
  1901.         CONST_VTBL struct IDXSurfaceFactoryVtbl *lpVtbl;
  1902.     };
  1903.  
  1904.     
  1905.  
  1906. #ifdef COBJMACROS
  1907.  
  1908.  
  1909. #define IDXSurfaceFactory_QueryInterface(This,riid,ppvObject)    \
  1910.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1911.  
  1912. #define IDXSurfaceFactory_AddRef(This)    \
  1913.     (This)->lpVtbl -> AddRef(This)
  1914.  
  1915. #define IDXSurfaceFactory_Release(This)    \
  1916.     (This)->lpVtbl -> Release(This)
  1917.  
  1918.  
  1919. #define IDXSurfaceFactory_CreateSurface(This,pDirectDraw,pDDSurfaceDesc,pFormatID,pBounds,dwFlags,punkOuter,riid,ppDXSurface)    \
  1920.     (This)->lpVtbl -> CreateSurface(This,pDirectDraw,pDDSurfaceDesc,pFormatID,pBounds,dwFlags,punkOuter,riid,ppDXSurface)
  1921.  
  1922. #define IDXSurfaceFactory_CreateFromDDSurface(This,pDDrawSurface,pFormatID,dwFlags,punkOuter,riid,ppDXSurface)    \
  1923.     (This)->lpVtbl -> CreateFromDDSurface(This,pDDrawSurface,pFormatID,dwFlags,punkOuter,riid,ppDXSurface)
  1924.  
  1925. #define IDXSurfaceFactory_LoadImage(This,pszFileName,pDirectDraw,pDDSurfaceDesc,pFormatID,riid,ppDXSurface)    \
  1926.     (This)->lpVtbl -> LoadImage(This,pszFileName,pDirectDraw,pDDSurfaceDesc,pFormatID,riid,ppDXSurface)
  1927.  
  1928. #define IDXSurfaceFactory_LoadImageFromStream(This,pStream,pDirectDraw,pDDSurfaceDesc,pFormatID,riid,ppDXSurface)    \
  1929.     (This)->lpVtbl -> LoadImageFromStream(This,pStream,pDirectDraw,pDDSurfaceDesc,pFormatID,riid,ppDXSurface)
  1930.  
  1931. #define IDXSurfaceFactory_CopySurfaceToNewFormat(This,pSrc,pDirectDraw,pDDSurfaceDesc,pDestFormatID,ppNewSurface)    \
  1932.     (This)->lpVtbl -> CopySurfaceToNewFormat(This,pSrc,pDirectDraw,pDDSurfaceDesc,pDestFormatID,ppNewSurface)
  1933.  
  1934. #define IDXSurfaceFactory_CreateD3DRMTexture(This,pSrc,pDirectDraw,pD3DRM3,riid,ppTexture3)    \
  1935.     (This)->lpVtbl -> CreateD3DRMTexture(This,pSrc,pDirectDraw,pD3DRM3,riid,ppTexture3)
  1936.  
  1937. #define IDXSurfaceFactory_BitBlt(This,pDest,pPlacement,pSrc,pClipBounds,dwFlags)    \
  1938.     (This)->lpVtbl -> BitBlt(This,pDest,pPlacement,pSrc,pClipBounds,dwFlags)
  1939.  
  1940. #endif /* COBJMACROS */
  1941.  
  1942.  
  1943. #endif     /* C style interface */
  1944.  
  1945.  
  1946.  
  1947. /* [local] */ HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CreateSurface_Proxy( 
  1948.     IDXSurfaceFactory * This,
  1949.     /* [in] */ IUnknown *pDirectDraw,
  1950.     /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1951.     /* [in] */ const GUID *pFormatID,
  1952.     /* [in] */ const DXBNDS *pBounds,
  1953.     /* [in] */ DWORD dwFlags,
  1954.     /* [in] */ IUnknown *punkOuter,
  1955.     /* [in] */ REFIID riid,
  1956.     /* [iid_is][out] */ void **ppDXSurface);
  1957.  
  1958.  
  1959. void __RPC_STUB IDXSurfaceFactory_CreateSurface_Stub(
  1960.     IRpcStubBuffer *This,
  1961.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1962.     PRPC_MESSAGE _pRpcMessage,
  1963.     DWORD *_pdwStubPhase);
  1964.  
  1965.  
  1966. HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CreateFromDDSurface_Proxy( 
  1967.     IDXSurfaceFactory * This,
  1968.     /* [in] */ IUnknown *pDDrawSurface,
  1969.     /* [in] */ const GUID *pFormatID,
  1970.     /* [in] */ DWORD dwFlags,
  1971.     /* [in] */ IUnknown *punkOuter,
  1972.     /* [in] */ REFIID riid,
  1973.     /* [iid_is][out] */ void **ppDXSurface);
  1974.  
  1975.  
  1976. void __RPC_STUB IDXSurfaceFactory_CreateFromDDSurface_Stub(
  1977.     IRpcStubBuffer *This,
  1978.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1979.     PRPC_MESSAGE _pRpcMessage,
  1980.     DWORD *_pdwStubPhase);
  1981.  
  1982.  
  1983. /* [local] */ HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_LoadImage_Proxy( 
  1984.     IDXSurfaceFactory * This,
  1985.     /* [in] */ const LPWSTR pszFileName,
  1986.     /* [in] */ IUnknown *pDirectDraw,
  1987.     /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  1988.     /* [in] */ const GUID *pFormatID,
  1989.     /* [in] */ REFIID riid,
  1990.     /* [iid_is][out] */ void **ppDXSurface);
  1991.  
  1992.  
  1993. void __RPC_STUB IDXSurfaceFactory_LoadImage_Stub(
  1994.     IRpcStubBuffer *This,
  1995.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1996.     PRPC_MESSAGE _pRpcMessage,
  1997.     DWORD *_pdwStubPhase);
  1998.  
  1999.  
  2000. /* [local] */ HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_LoadImageFromStream_Proxy( 
  2001.     IDXSurfaceFactory * This,
  2002.     /* [in] */ IStream *pStream,
  2003.     /* [in] */ IUnknown *pDirectDraw,
  2004.     /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  2005.     /* [in] */ const GUID *pFormatID,
  2006.     /* [in] */ REFIID riid,
  2007.     /* [iid_is][out] */ void **ppDXSurface);
  2008.  
  2009.  
  2010. void __RPC_STUB IDXSurfaceFactory_LoadImageFromStream_Stub(
  2011.     IRpcStubBuffer *This,
  2012.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2013.     PRPC_MESSAGE _pRpcMessage,
  2014.     DWORD *_pdwStubPhase);
  2015.  
  2016.  
  2017. /* [local] */ HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CopySurfaceToNewFormat_Proxy( 
  2018.     IDXSurfaceFactory * This,
  2019.     /* [in] */ IDXSurface *pSrc,
  2020.     /* [in] */ IUnknown *pDirectDraw,
  2021.     /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  2022.     /* [in] */ const GUID *pDestFormatID,
  2023.     /* [out] */ IDXSurface **ppNewSurface);
  2024.  
  2025.  
  2026. void __RPC_STUB IDXSurfaceFactory_CopySurfaceToNewFormat_Stub(
  2027.     IRpcStubBuffer *This,
  2028.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2029.     PRPC_MESSAGE _pRpcMessage,
  2030.     DWORD *_pdwStubPhase);
  2031.  
  2032.  
  2033. /* [local] */ HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CreateD3DRMTexture_Proxy( 
  2034.     IDXSurfaceFactory * This,
  2035.     /* [in] */ IDXSurface *pSrc,
  2036.     /* [in] */ IUnknown *pDirectDraw,
  2037.     /* [in] */ IUnknown *pD3DRM3,
  2038.     /* [in] */ REFIID riid,
  2039.     /* [iid_is][out] */ void **ppTexture3);
  2040.  
  2041.  
  2042. void __RPC_STUB IDXSurfaceFactory_CreateD3DRMTexture_Stub(
  2043.     IRpcStubBuffer *This,
  2044.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2045.     PRPC_MESSAGE _pRpcMessage,
  2046.     DWORD *_pdwStubPhase);
  2047.  
  2048.  
  2049. HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_BitBlt_Proxy( 
  2050.     IDXSurfaceFactory * This,
  2051.     /* [in] */ IDXSurface *pDest,
  2052.     /* [in] */ const DXVEC *pPlacement,
  2053.     /* [in] */ IDXSurface *pSrc,
  2054.     /* [in] */ const DXBNDS *pClipBounds,
  2055.     /* [in] */ DWORD dwFlags);
  2056.  
  2057.  
  2058. void __RPC_STUB IDXSurfaceFactory_BitBlt_Stub(
  2059.     IRpcStubBuffer *This,
  2060.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2061.     PRPC_MESSAGE _pRpcMessage,
  2062.     DWORD *_pdwStubPhase);
  2063.  
  2064.  
  2065.  
  2066. #endif     /* __IDXSurfaceFactory_INTERFACE_DEFINED__ */
  2067.  
  2068.  
  2069. /* interface __MIDL_itf_dxtrans_0259 */
  2070. /* [local] */ 
  2071.  
  2072. typedef 
  2073. enum DXSURFMODCOMPOP
  2074.     {    DXSURFMOD_COMP_OVER    = 0,
  2075.     DXSURFMOD_COMP_ALPHA_MASK    = 1,
  2076.     DXSURFMOD_COMP_MAX_VALID    = 1
  2077.     }     DXSURFMODCOMPOP;
  2078.  
  2079.  
  2080.  
  2081. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0259_v0_0_c_ifspec;
  2082. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0259_v0_0_s_ifspec;
  2083.  
  2084. #ifndef __IDXSurfaceModifier_INTERFACE_DEFINED__
  2085. #define __IDXSurfaceModifier_INTERFACE_DEFINED__
  2086.  
  2087. /* interface IDXSurfaceModifier */
  2088. /* [object][unique][helpstring][uuid] */ 
  2089.  
  2090.  
  2091. EXTERN_C const IID IID_IDXSurfaceModifier;
  2092.  
  2093. #if defined(__cplusplus) && !defined(CINTERFACE)
  2094.     
  2095.     MIDL_INTERFACE("9EA3B637-C37D-11d1-905E-00C04FD9189D")
  2096.     IDXSurfaceModifier : public IUnknown
  2097.     {
  2098.     public:
  2099.         virtual HRESULT STDMETHODCALLTYPE SetFillColor( 
  2100.             /* [in] */ DXSAMPLE Color) = 0;
  2101.         
  2102.         virtual HRESULT STDMETHODCALLTYPE GetFillColor( 
  2103.             /* [out] */ DXSAMPLE *pColor) = 0;
  2104.         
  2105.         virtual HRESULT STDMETHODCALLTYPE SetBounds( 
  2106.             /* [in] */ const DXBNDS *pBounds) = 0;
  2107.         
  2108.         virtual HRESULT STDMETHODCALLTYPE SetBackground( 
  2109.             /* [in] */ IDXSurface *pSurface) = 0;
  2110.         
  2111.         virtual HRESULT STDMETHODCALLTYPE GetBackground( 
  2112.             /* [out] */ IDXSurface **ppSurface) = 0;
  2113.         
  2114.         virtual HRESULT STDMETHODCALLTYPE SetCompositeOperation( 
  2115.             /* [in] */ DXSURFMODCOMPOP CompOp) = 0;
  2116.         
  2117.         virtual HRESULT STDMETHODCALLTYPE GetCompositeOperation( 
  2118.             /* [out] */ DXSURFMODCOMPOP *pCompOp) = 0;
  2119.         
  2120.         virtual HRESULT STDMETHODCALLTYPE SetForeground( 
  2121.             /* [in] */ IDXSurface *pSurface,
  2122.             /* [in] */ BOOL bTile,
  2123.             /* [in] */ const POINT *pOrigin) = 0;
  2124.         
  2125.         virtual HRESULT STDMETHODCALLTYPE GetForeground( 
  2126.             /* [out] */ IDXSurface **ppSurface,
  2127.             /* [out] */ BOOL *pbTile,
  2128.             /* [out] */ POINT *pOrigin) = 0;
  2129.         
  2130.         virtual HRESULT STDMETHODCALLTYPE SetOpacity( 
  2131.             /* [in] */ float Opacity) = 0;
  2132.         
  2133.         virtual HRESULT STDMETHODCALLTYPE GetOpacity( 
  2134.             /* [out] */ float *pOpacity) = 0;
  2135.         
  2136.         virtual HRESULT STDMETHODCALLTYPE SetLookup( 
  2137.             /* [in] */ IDXLookupTable *pLookupTable) = 0;
  2138.         
  2139.         virtual HRESULT STDMETHODCALLTYPE GetLookup( 
  2140.             /* [out] */ IDXLookupTable **ppLookupTable) = 0;
  2141.         
  2142.     };
  2143.     
  2144. #else     /* C style interface */
  2145.  
  2146.     typedef struct IDXSurfaceModifierVtbl
  2147.     {
  2148.         BEGIN_INTERFACE
  2149.         
  2150.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2151.             IDXSurfaceModifier * This,
  2152.             /* [in] */ REFIID riid,
  2153.             /* [iid_is][out] */ void **ppvObject);
  2154.         
  2155.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2156.             IDXSurfaceModifier * This);
  2157.         
  2158.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2159.             IDXSurfaceModifier * This);
  2160.         
  2161.         HRESULT ( STDMETHODCALLTYPE *SetFillColor )( 
  2162.             IDXSurfaceModifier * This,
  2163.             /* [in] */ DXSAMPLE Color);
  2164.         
  2165.         HRESULT ( STDMETHODCALLTYPE *GetFillColor )( 
  2166.             IDXSurfaceModifier * This,
  2167.             /* [out] */ DXSAMPLE *pColor);
  2168.         
  2169.         HRESULT ( STDMETHODCALLTYPE *SetBounds )( 
  2170.             IDXSurfaceModifier * This,
  2171.             /* [in] */ const DXBNDS *pBounds);
  2172.         
  2173.         HRESULT ( STDMETHODCALLTYPE *SetBackground )( 
  2174.             IDXSurfaceModifier * This,
  2175.             /* [in] */ IDXSurface *pSurface);
  2176.         
  2177.         HRESULT ( STDMETHODCALLTYPE *GetBackground )( 
  2178.             IDXSurfaceModifier * This,
  2179.             /* [out] */ IDXSurface **ppSurface);
  2180.         
  2181.         HRESULT ( STDMETHODCALLTYPE *SetCompositeOperation )( 
  2182.             IDXSurfaceModifier * This,
  2183.             /* [in] */ DXSURFMODCOMPOP CompOp);
  2184.         
  2185.         HRESULT ( STDMETHODCALLTYPE *GetCompositeOperation )( 
  2186.             IDXSurfaceModifier * This,
  2187.             /* [out] */ DXSURFMODCOMPOP *pCompOp);
  2188.         
  2189.         HRESULT ( STDMETHODCALLTYPE *SetForeground )( 
  2190.             IDXSurfaceModifier * This,
  2191.             /* [in] */ IDXSurface *pSurface,
  2192.             /* [in] */ BOOL bTile,
  2193.             /* [in] */ const POINT *pOrigin);
  2194.         
  2195.         HRESULT ( STDMETHODCALLTYPE *GetForeground )( 
  2196.             IDXSurfaceModifier * This,
  2197.             /* [out] */ IDXSurface **ppSurface,
  2198.             /* [out] */ BOOL *pbTile,
  2199.             /* [out] */ POINT *pOrigin);
  2200.         
  2201.         HRESULT ( STDMETHODCALLTYPE *SetOpacity )( 
  2202.             IDXSurfaceModifier * This,
  2203.             /* [in] */ float Opacity);
  2204.         
  2205.         HRESULT ( STDMETHODCALLTYPE *GetOpacity )( 
  2206.             IDXSurfaceModifier * This,
  2207.             /* [out] */ float *pOpacity);
  2208.         
  2209.         HRESULT ( STDMETHODCALLTYPE *SetLookup )( 
  2210.             IDXSurfaceModifier * This,
  2211.             /* [in] */ IDXLookupTable *pLookupTable);
  2212.         
  2213.         HRESULT ( STDMETHODCALLTYPE *GetLookup )( 
  2214.             IDXSurfaceModifier * This,
  2215.             /* [out] */ IDXLookupTable **ppLookupTable);
  2216.         
  2217.         END_INTERFACE
  2218.     } IDXSurfaceModifierVtbl;
  2219.  
  2220.     interface IDXSurfaceModifier
  2221.     {
  2222.         CONST_VTBL struct IDXSurfaceModifierVtbl *lpVtbl;
  2223.     };
  2224.  
  2225.     
  2226.  
  2227. #ifdef COBJMACROS
  2228.  
  2229.  
  2230. #define IDXSurfaceModifier_QueryInterface(This,riid,ppvObject)    \
  2231.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2232.  
  2233. #define IDXSurfaceModifier_AddRef(This)    \
  2234.     (This)->lpVtbl -> AddRef(This)
  2235.  
  2236. #define IDXSurfaceModifier_Release(This)    \
  2237.     (This)->lpVtbl -> Release(This)
  2238.  
  2239.  
  2240. #define IDXSurfaceModifier_SetFillColor(This,Color)    \
  2241.     (This)->lpVtbl -> SetFillColor(This,Color)
  2242.  
  2243. #define IDXSurfaceModifier_GetFillColor(This,pColor)    \
  2244.     (This)->lpVtbl -> GetFillColor(This,pColor)
  2245.  
  2246. #define IDXSurfaceModifier_SetBounds(This,pBounds)    \
  2247.     (This)->lpVtbl -> SetBounds(This,pBounds)
  2248.  
  2249. #define IDXSurfaceModifier_SetBackground(This,pSurface)    \
  2250.     (This)->lpVtbl -> SetBackground(This,pSurface)
  2251.  
  2252. #define IDXSurfaceModifier_GetBackground(This,ppSurface)    \
  2253.     (This)->lpVtbl -> GetBackground(This,ppSurface)
  2254.  
  2255. #define IDXSurfaceModifier_SetCompositeOperation(This,CompOp)    \
  2256.     (This)->lpVtbl -> SetCompositeOperation(This,CompOp)
  2257.  
  2258. #define IDXSurfaceModifier_GetCompositeOperation(This,pCompOp)    \
  2259.     (This)->lpVtbl -> GetCompositeOperation(This,pCompOp)
  2260.  
  2261. #define IDXSurfaceModifier_SetForeground(This,pSurface,bTile,pOrigin)    \
  2262.     (This)->lpVtbl -> SetForeground(This,pSurface,bTile,pOrigin)
  2263.  
  2264. #define IDXSurfaceModifier_GetForeground(This,ppSurface,pbTile,pOrigin)    \
  2265.     (This)->lpVtbl -> GetForeground(This,ppSurface,pbTile,pOrigin)
  2266.  
  2267. #define IDXSurfaceModifier_SetOpacity(This,Opacity)    \
  2268.     (This)->lpVtbl -> SetOpacity(This,Opacity)
  2269.  
  2270. #define IDXSurfaceModifier_GetOpacity(This,pOpacity)    \
  2271.     (This)->lpVtbl -> GetOpacity(This,pOpacity)
  2272.  
  2273. #define IDXSurfaceModifier_SetLookup(This,pLookupTable)    \
  2274.     (This)->lpVtbl -> SetLookup(This,pLookupTable)
  2275.  
  2276. #define IDXSurfaceModifier_GetLookup(This,ppLookupTable)    \
  2277.     (This)->lpVtbl -> GetLookup(This,ppLookupTable)
  2278.  
  2279. #endif /* COBJMACROS */
  2280.  
  2281.  
  2282. #endif     /* C style interface */
  2283.  
  2284.  
  2285.  
  2286. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetFillColor_Proxy( 
  2287.     IDXSurfaceModifier * This,
  2288.     /* [in] */ DXSAMPLE Color);
  2289.  
  2290.  
  2291. void __RPC_STUB IDXSurfaceModifier_SetFillColor_Stub(
  2292.     IRpcStubBuffer *This,
  2293.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2294.     PRPC_MESSAGE _pRpcMessage,
  2295.     DWORD *_pdwStubPhase);
  2296.  
  2297.  
  2298. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetFillColor_Proxy( 
  2299.     IDXSurfaceModifier * This,
  2300.     /* [out] */ DXSAMPLE *pColor);
  2301.  
  2302.  
  2303. void __RPC_STUB IDXSurfaceModifier_GetFillColor_Stub(
  2304.     IRpcStubBuffer *This,
  2305.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2306.     PRPC_MESSAGE _pRpcMessage,
  2307.     DWORD *_pdwStubPhase);
  2308.  
  2309.  
  2310. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetBounds_Proxy( 
  2311.     IDXSurfaceModifier * This,
  2312.     /* [in] */ const DXBNDS *pBounds);
  2313.  
  2314.  
  2315. void __RPC_STUB IDXSurfaceModifier_SetBounds_Stub(
  2316.     IRpcStubBuffer *This,
  2317.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2318.     PRPC_MESSAGE _pRpcMessage,
  2319.     DWORD *_pdwStubPhase);
  2320.  
  2321.  
  2322. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetBackground_Proxy( 
  2323.     IDXSurfaceModifier * This,
  2324.     /* [in] */ IDXSurface *pSurface);
  2325.  
  2326.  
  2327. void __RPC_STUB IDXSurfaceModifier_SetBackground_Stub(
  2328.     IRpcStubBuffer *This,
  2329.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2330.     PRPC_MESSAGE _pRpcMessage,
  2331.     DWORD *_pdwStubPhase);
  2332.  
  2333.  
  2334. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetBackground_Proxy( 
  2335.     IDXSurfaceModifier * This,
  2336.     /* [out] */ IDXSurface **ppSurface);
  2337.  
  2338.  
  2339. void __RPC_STUB IDXSurfaceModifier_GetBackground_Stub(
  2340.     IRpcStubBuffer *This,
  2341.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2342.     PRPC_MESSAGE _pRpcMessage,
  2343.     DWORD *_pdwStubPhase);
  2344.  
  2345.  
  2346. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetCompositeOperation_Proxy( 
  2347.     IDXSurfaceModifier * This,
  2348.     /* [in] */ DXSURFMODCOMPOP CompOp);
  2349.  
  2350.  
  2351. void __RPC_STUB IDXSurfaceModifier_SetCompositeOperation_Stub(
  2352.     IRpcStubBuffer *This,
  2353.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2354.     PRPC_MESSAGE _pRpcMessage,
  2355.     DWORD *_pdwStubPhase);
  2356.  
  2357.  
  2358. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetCompositeOperation_Proxy( 
  2359.     IDXSurfaceModifier * This,
  2360.     /* [out] */ DXSURFMODCOMPOP *pCompOp);
  2361.  
  2362.  
  2363. void __RPC_STUB IDXSurfaceModifier_GetCompositeOperation_Stub(
  2364.     IRpcStubBuffer *This,
  2365.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2366.     PRPC_MESSAGE _pRpcMessage,
  2367.     DWORD *_pdwStubPhase);
  2368.  
  2369.  
  2370. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetForeground_Proxy( 
  2371.     IDXSurfaceModifier * This,
  2372.     /* [in] */ IDXSurface *pSurface,
  2373.     /* [in] */ BOOL bTile,
  2374.     /* [in] */ const POINT *pOrigin);
  2375.  
  2376.  
  2377. void __RPC_STUB IDXSurfaceModifier_SetForeground_Stub(
  2378.     IRpcStubBuffer *This,
  2379.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2380.     PRPC_MESSAGE _pRpcMessage,
  2381.     DWORD *_pdwStubPhase);
  2382.  
  2383.  
  2384. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetForeground_Proxy( 
  2385.     IDXSurfaceModifier * This,
  2386.     /* [out] */ IDXSurface **ppSurface,
  2387.     /* [out] */ BOOL *pbTile,
  2388.     /* [out] */ POINT *pOrigin);
  2389.  
  2390.  
  2391. void __RPC_STUB IDXSurfaceModifier_GetForeground_Stub(
  2392.     IRpcStubBuffer *This,
  2393.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2394.     PRPC_MESSAGE _pRpcMessage,
  2395.     DWORD *_pdwStubPhase);
  2396.  
  2397.  
  2398. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetOpacity_Proxy( 
  2399.     IDXSurfaceModifier * This,
  2400.     /* [in] */ float Opacity);
  2401.  
  2402.  
  2403. void __RPC_STUB IDXSurfaceModifier_SetOpacity_Stub(
  2404.     IRpcStubBuffer *This,
  2405.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2406.     PRPC_MESSAGE _pRpcMessage,
  2407.     DWORD *_pdwStubPhase);
  2408.  
  2409.  
  2410. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetOpacity_Proxy( 
  2411.     IDXSurfaceModifier * This,
  2412.     /* [out] */ float *pOpacity);
  2413.  
  2414.  
  2415. void __RPC_STUB IDXSurfaceModifier_GetOpacity_Stub(
  2416.     IRpcStubBuffer *This,
  2417.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2418.     PRPC_MESSAGE _pRpcMessage,
  2419.     DWORD *_pdwStubPhase);
  2420.  
  2421.  
  2422. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_SetLookup_Proxy( 
  2423.     IDXSurfaceModifier * This,
  2424.     /* [in] */ IDXLookupTable *pLookupTable);
  2425.  
  2426.  
  2427. void __RPC_STUB IDXSurfaceModifier_SetLookup_Stub(
  2428.     IRpcStubBuffer *This,
  2429.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2430.     PRPC_MESSAGE _pRpcMessage,
  2431.     DWORD *_pdwStubPhase);
  2432.  
  2433.  
  2434. HRESULT STDMETHODCALLTYPE IDXSurfaceModifier_GetLookup_Proxy( 
  2435.     IDXSurfaceModifier * This,
  2436.     /* [out] */ IDXLookupTable **ppLookupTable);
  2437.  
  2438.  
  2439. void __RPC_STUB IDXSurfaceModifier_GetLookup_Stub(
  2440.     IRpcStubBuffer *This,
  2441.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2442.     PRPC_MESSAGE _pRpcMessage,
  2443.     DWORD *_pdwStubPhase);
  2444.  
  2445.  
  2446.  
  2447. #endif     /* __IDXSurfaceModifier_INTERFACE_DEFINED__ */
  2448.  
  2449.  
  2450. /* interface __MIDL_itf_dxtrans_0260 */
  2451. /* [local] */ 
  2452.  
  2453. typedef 
  2454. enum DXSAMPLEFORMATENUM
  2455.     {    DXPF_FLAGSMASK    = 0xffff0000,
  2456.     DXPF_NONPREMULT    = 0x10000,
  2457.     DXPF_TRANSPARENCY    = 0x20000,
  2458.     DXPF_TRANSLUCENCY    = 0x40000,
  2459.     DXPF_2BITERROR    = 0x200000,
  2460.     DXPF_3BITERROR    = 0x300000,
  2461.     DXPF_4BITERROR    = 0x400000,
  2462.     DXPF_5BITERROR    = 0x500000,
  2463.     DXPF_ERRORMASK    = 0x700000,
  2464.     DXPF_NONSTANDARD    = 0,
  2465.     DXPF_PMARGB32    = 1 | DXPF_TRANSPARENCY | DXPF_TRANSLUCENCY,
  2466.     DXPF_ARGB32    = 2 | DXPF_NONPREMULT | DXPF_TRANSPARENCY | DXPF_TRANSLUCENCY,
  2467.     DXPF_ARGB4444    = 3 | DXPF_NONPREMULT | DXPF_TRANSPARENCY | DXPF_TRANSLUCENCY | DXPF_4BITERROR,
  2468.     DXPF_A8    = 4 | DXPF_TRANSPARENCY | DXPF_TRANSLUCENCY,
  2469.     DXPF_RGB32    = 5,
  2470.     DXPF_RGB24    = 6,
  2471.     DXPF_RGB565    = 7 | DXPF_3BITERROR,
  2472.     DXPF_RGB555    = 8 | DXPF_3BITERROR,
  2473.     DXPF_RGB8    = 9 | DXPF_5BITERROR,
  2474.     DXPF_ARGB1555    = 10 | DXPF_TRANSPARENCY | DXPF_3BITERROR,
  2475.     DXPF_RGB32_CK    = DXPF_RGB32 | DXPF_TRANSPARENCY,
  2476.     DXPF_RGB24_CK    = DXPF_RGB24 | DXPF_TRANSPARENCY,
  2477.     DXPF_RGB555_CK    = DXPF_RGB555 | DXPF_TRANSPARENCY,
  2478.     DXPF_RGB565_CK    = DXPF_RGB565 | DXPF_TRANSPARENCY,
  2479.     DXPF_RGB8_CK    = DXPF_RGB8 | DXPF_TRANSPARENCY
  2480.     }     DXSAMPLEFORMATENUM;
  2481.  
  2482. typedef 
  2483. enum DXLOCKSURF
  2484.     {    DXLOCKF_READ    = 0,
  2485.     DXLOCKF_READWRITE    = 1 << 0,
  2486.     DXLOCKF_EXISTINGINFOONLY    = 1 << 1,
  2487.     DXLOCKF_WANTRUNINFO    = 1 << 2,
  2488.     DXLOCKF_NONPREMULT    = 1 << 16,
  2489.     DXLOCKF_VALIDFLAGS    = DXLOCKF_READWRITE | DXLOCKF_EXISTINGINFOONLY | DXLOCKF_WANTRUNINFO | DXLOCKF_NONPREMULT
  2490.     }     DXLOCKSURF;
  2491.  
  2492. typedef 
  2493. enum DXSURFSTATUS
  2494.     {    DXSURF_TRANSIENT    = 1 << 0,
  2495.     DXSURF_READONLY    = 1 << 1,
  2496.     DXSURF_VALIDFLAGS    = DXSURF_TRANSIENT | DXSURF_READONLY
  2497.     }     DXSURFSTATUS;
  2498.  
  2499.  
  2500.  
  2501. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0260_v0_0_c_ifspec;
  2502. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0260_v0_0_s_ifspec;
  2503.  
  2504. #ifndef __IDXSurface_INTERFACE_DEFINED__
  2505. #define __IDXSurface_INTERFACE_DEFINED__
  2506.  
  2507. /* interface IDXSurface */
  2508. /* [object][unique][helpstring][uuid] */ 
  2509.  
  2510.  
  2511. EXTERN_C const IID IID_IDXSurface;
  2512.  
  2513. #if defined(__cplusplus) && !defined(CINTERFACE)
  2514.     
  2515.     MIDL_INTERFACE("B39FD73F-E139-11d1-9065-00C04FD9189D")
  2516.     IDXSurface : public IDXBaseObject
  2517.     {
  2518.     public:
  2519.         virtual HRESULT STDMETHODCALLTYPE GetPixelFormat( 
  2520.             /* [out] */ GUID *pFormatID,
  2521.             /* [out] */ DXSAMPLEFORMATENUM *pSampleFormatEnum) = 0;
  2522.         
  2523.         virtual HRESULT STDMETHODCALLTYPE GetBounds( 
  2524.             /* [out] */ DXBNDS *pBounds) = 0;
  2525.         
  2526.         virtual HRESULT STDMETHODCALLTYPE GetStatusFlags( 
  2527.             /* [out] */ DWORD *pdwStatusFlags) = 0;
  2528.         
  2529.         virtual HRESULT STDMETHODCALLTYPE SetStatusFlags( 
  2530.             /* [in] */ DWORD dwStatusFlags) = 0;
  2531.         
  2532.         virtual HRESULT STDMETHODCALLTYPE LockSurface( 
  2533.             /* [in] */ const DXBNDS *pBounds,
  2534.             /* [in] */ ULONG ulTimeOut,
  2535.             /* [in] */ DWORD dwFlags,
  2536.             /* [in] */ REFIID riid,
  2537.             /* [iid_is][out] */ void **ppPointer,
  2538.             /* [out] */ ULONG *pulGenerationId) = 0;
  2539.         
  2540.         virtual HRESULT STDMETHODCALLTYPE GetDirectDrawSurface( 
  2541.             /* [in] */ REFIID riid,
  2542.             /* [iid_is][out] */ void **ppSurface) = 0;
  2543.         
  2544.         virtual HRESULT STDMETHODCALLTYPE GetColorKey( 
  2545.             DXSAMPLE *pColorKey) = 0;
  2546.         
  2547.         virtual HRESULT STDMETHODCALLTYPE SetColorKey( 
  2548.             DXSAMPLE ColorKey) = 0;
  2549.         
  2550.         virtual HRESULT STDMETHODCALLTYPE LockSurfaceDC( 
  2551.             /* [in] */ const DXBNDS *pBounds,
  2552.             /* [in] */ ULONG ulTimeOut,
  2553.             /* [in] */ DWORD dwFlags,
  2554.             /* [out] */ IDXDCLock **ppDCLock) = 0;
  2555.         
  2556.         virtual HRESULT STDMETHODCALLTYPE SetAppData( 
  2557.             DWORD_PTR dwAppData) = 0;
  2558.         
  2559.         virtual HRESULT STDMETHODCALLTYPE GetAppData( 
  2560.             DWORD_PTR *pdwAppData) = 0;
  2561.         
  2562.     };
  2563.     
  2564. #else     /* C style interface */
  2565.  
  2566.     typedef struct IDXSurfaceVtbl
  2567.     {
  2568.         BEGIN_INTERFACE
  2569.         
  2570.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2571.             IDXSurface * This,
  2572.             /* [in] */ REFIID riid,
  2573.             /* [iid_is][out] */ void **ppvObject);
  2574.         
  2575.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2576.             IDXSurface * This);
  2577.         
  2578.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2579.             IDXSurface * This);
  2580.         
  2581.         HRESULT ( STDMETHODCALLTYPE *GetGenerationId )( 
  2582.             IDXSurface * This,
  2583.             /* [out] */ ULONG *pID);
  2584.         
  2585.         HRESULT ( STDMETHODCALLTYPE *IncrementGenerationId )( 
  2586.             IDXSurface * This,
  2587.             /* [in] */ BOOL bRefresh);
  2588.         
  2589.         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
  2590.             IDXSurface * This,
  2591.             /* [out] */ ULONG *pcbSize);
  2592.         
  2593.         HRESULT ( STDMETHODCALLTYPE *GetPixelFormat )( 
  2594.             IDXSurface * This,
  2595.             /* [out] */ GUID *pFormatID,
  2596.             /* [out] */ DXSAMPLEFORMATENUM *pSampleFormatEnum);
  2597.         
  2598.         HRESULT ( STDMETHODCALLTYPE *GetBounds )( 
  2599.             IDXSurface * This,
  2600.             /* [out] */ DXBNDS *pBounds);
  2601.         
  2602.         HRESULT ( STDMETHODCALLTYPE *GetStatusFlags )( 
  2603.             IDXSurface * This,
  2604.             /* [out] */ DWORD *pdwStatusFlags);
  2605.         
  2606.         HRESULT ( STDMETHODCALLTYPE *SetStatusFlags )( 
  2607.             IDXSurface * This,
  2608.             /* [in] */ DWORD dwStatusFlags);
  2609.         
  2610.         HRESULT ( STDMETHODCALLTYPE *LockSurface )( 
  2611.             IDXSurface * This,
  2612.             /* [in] */ const DXBNDS *pBounds,
  2613.             /* [in] */ ULONG ulTimeOut,
  2614.             /* [in] */ DWORD dwFlags,
  2615.             /* [in] */ REFIID riid,
  2616.             /* [iid_is][out] */ void **ppPointer,
  2617.             /* [out] */ ULONG *pulGenerationId);
  2618.         
  2619.         HRESULT ( STDMETHODCALLTYPE *GetDirectDrawSurface )( 
  2620.             IDXSurface * This,
  2621.             /* [in] */ REFIID riid,
  2622.             /* [iid_is][out] */ void **ppSurface);
  2623.         
  2624.         HRESULT ( STDMETHODCALLTYPE *GetColorKey )( 
  2625.             IDXSurface * This,
  2626.             DXSAMPLE *pColorKey);
  2627.         
  2628.         HRESULT ( STDMETHODCALLTYPE *SetColorKey )( 
  2629.             IDXSurface * This,
  2630.             DXSAMPLE ColorKey);
  2631.         
  2632.         HRESULT ( STDMETHODCALLTYPE *LockSurfaceDC )( 
  2633.             IDXSurface * This,
  2634.             /* [in] */ const DXBNDS *pBounds,
  2635.             /* [in] */ ULONG ulTimeOut,
  2636.             /* [in] */ DWORD dwFlags,
  2637.             /* [out] */ IDXDCLock **ppDCLock);
  2638.         
  2639.         HRESULT ( STDMETHODCALLTYPE *SetAppData )( 
  2640.             IDXSurface * This,
  2641.             DWORD_PTR dwAppData);
  2642.         
  2643.         HRESULT ( STDMETHODCALLTYPE *GetAppData )( 
  2644.             IDXSurface * This,
  2645.             DWORD_PTR *pdwAppData);
  2646.         
  2647.         END_INTERFACE
  2648.     } IDXSurfaceVtbl;
  2649.  
  2650.     interface IDXSurface
  2651.     {
  2652.         CONST_VTBL struct IDXSurfaceVtbl *lpVtbl;
  2653.     };
  2654.  
  2655.     
  2656.  
  2657. #ifdef COBJMACROS
  2658.  
  2659.  
  2660. #define IDXSurface_QueryInterface(This,riid,ppvObject)    \
  2661.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2662.  
  2663. #define IDXSurface_AddRef(This)    \
  2664.     (This)->lpVtbl -> AddRef(This)
  2665.  
  2666. #define IDXSurface_Release(This)    \
  2667.     (This)->lpVtbl -> Release(This)
  2668.  
  2669.  
  2670. #define IDXSurface_GetGenerationId(This,pID)    \
  2671.     (This)->lpVtbl -> GetGenerationId(This,pID)
  2672.  
  2673. #define IDXSurface_IncrementGenerationId(This,bRefresh)    \
  2674.     (This)->lpVtbl -> IncrementGenerationId(This,bRefresh)
  2675.  
  2676. #define IDXSurface_GetObjectSize(This,pcbSize)    \
  2677.     (This)->lpVtbl -> GetObjectSize(This,pcbSize)
  2678.  
  2679.  
  2680. #define IDXSurface_GetPixelFormat(This,pFormatID,pSampleFormatEnum)    \
  2681.     (This)->lpVtbl -> GetPixelFormat(This,pFormatID,pSampleFormatEnum)
  2682.  
  2683. #define IDXSurface_GetBounds(This,pBounds)    \
  2684.     (This)->lpVtbl -> GetBounds(This,pBounds)
  2685.  
  2686. #define IDXSurface_GetStatusFlags(This,pdwStatusFlags)    \
  2687.     (This)->lpVtbl -> GetStatusFlags(This,pdwStatusFlags)
  2688.  
  2689. #define IDXSurface_SetStatusFlags(This,dwStatusFlags)    \
  2690.     (This)->lpVtbl -> SetStatusFlags(This,dwStatusFlags)
  2691.  
  2692. #define IDXSurface_LockSurface(This,pBounds,ulTimeOut,dwFlags,riid,ppPointer,pulGenerationId)    \
  2693.     (This)->lpVtbl -> LockSurface(This,pBounds,ulTimeOut,dwFlags,riid,ppPointer,pulGenerationId)
  2694.  
  2695. #define IDXSurface_GetDirectDrawSurface(This,riid,ppSurface)    \
  2696.     (This)->lpVtbl -> GetDirectDrawSurface(This,riid,ppSurface)
  2697.  
  2698. #define IDXSurface_GetColorKey(This,pColorKey)    \
  2699.     (This)->lpVtbl -> GetColorKey(This,pColorKey)
  2700.  
  2701. #define IDXSurface_SetColorKey(This,ColorKey)    \
  2702.     (This)->lpVtbl -> SetColorKey(This,ColorKey)
  2703.  
  2704. #define IDXSurface_LockSurfaceDC(This,pBounds,ulTimeOut,dwFlags,ppDCLock)    \
  2705.     (This)->lpVtbl -> LockSurfaceDC(This,pBounds,ulTimeOut,dwFlags,ppDCLock)
  2706.  
  2707. #define IDXSurface_SetAppData(This,dwAppData)    \
  2708.     (This)->lpVtbl -> SetAppData(This,dwAppData)
  2709.  
  2710. #define IDXSurface_GetAppData(This,pdwAppData)    \
  2711.     (This)->lpVtbl -> GetAppData(This,pdwAppData)
  2712.  
  2713. #endif /* COBJMACROS */
  2714.  
  2715.  
  2716. #endif     /* C style interface */
  2717.  
  2718.  
  2719.  
  2720. HRESULT STDMETHODCALLTYPE IDXSurface_GetPixelFormat_Proxy( 
  2721.     IDXSurface * This,
  2722.     /* [out] */ GUID *pFormatID,
  2723.     /* [out] */ DXSAMPLEFORMATENUM *pSampleFormatEnum);
  2724.  
  2725.  
  2726. void __RPC_STUB IDXSurface_GetPixelFormat_Stub(
  2727.     IRpcStubBuffer *This,
  2728.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2729.     PRPC_MESSAGE _pRpcMessage,
  2730.     DWORD *_pdwStubPhase);
  2731.  
  2732.  
  2733. HRESULT STDMETHODCALLTYPE IDXSurface_GetBounds_Proxy( 
  2734.     IDXSurface * This,
  2735.     /* [out] */ DXBNDS *pBounds);
  2736.  
  2737.  
  2738. void __RPC_STUB IDXSurface_GetBounds_Stub(
  2739.     IRpcStubBuffer *This,
  2740.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2741.     PRPC_MESSAGE _pRpcMessage,
  2742.     DWORD *_pdwStubPhase);
  2743.  
  2744.  
  2745. HRESULT STDMETHODCALLTYPE IDXSurface_GetStatusFlags_Proxy( 
  2746.     IDXSurface * This,
  2747.     /* [out] */ DWORD *pdwStatusFlags);
  2748.  
  2749.  
  2750. void __RPC_STUB IDXSurface_GetStatusFlags_Stub(
  2751.     IRpcStubBuffer *This,
  2752.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2753.     PRPC_MESSAGE _pRpcMessage,
  2754.     DWORD *_pdwStubPhase);
  2755.  
  2756.  
  2757. HRESULT STDMETHODCALLTYPE IDXSurface_SetStatusFlags_Proxy( 
  2758.     IDXSurface * This,
  2759.     /* [in] */ DWORD dwStatusFlags);
  2760.  
  2761.  
  2762. void __RPC_STUB IDXSurface_SetStatusFlags_Stub(
  2763.     IRpcStubBuffer *This,
  2764.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2765.     PRPC_MESSAGE _pRpcMessage,
  2766.     DWORD *_pdwStubPhase);
  2767.  
  2768.  
  2769. HRESULT STDMETHODCALLTYPE IDXSurface_LockSurface_Proxy( 
  2770.     IDXSurface * This,
  2771.     /* [in] */ const DXBNDS *pBounds,
  2772.     /* [in] */ ULONG ulTimeOut,
  2773.     /* [in] */ DWORD dwFlags,
  2774.     /* [in] */ REFIID riid,
  2775.     /* [iid_is][out] */ void **ppPointer,
  2776.     /* [out] */ ULONG *pulGenerationId);
  2777.  
  2778.  
  2779. void __RPC_STUB IDXSurface_LockSurface_Stub(
  2780.     IRpcStubBuffer *This,
  2781.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2782.     PRPC_MESSAGE _pRpcMessage,
  2783.     DWORD *_pdwStubPhase);
  2784.  
  2785.  
  2786. HRESULT STDMETHODCALLTYPE IDXSurface_GetDirectDrawSurface_Proxy( 
  2787.     IDXSurface * This,
  2788.     /* [in] */ REFIID riid,
  2789.     /* [iid_is][out] */ void **ppSurface);
  2790.  
  2791.  
  2792. void __RPC_STUB IDXSurface_GetDirectDrawSurface_Stub(
  2793.     IRpcStubBuffer *This,
  2794.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2795.     PRPC_MESSAGE _pRpcMessage,
  2796.     DWORD *_pdwStubPhase);
  2797.  
  2798.  
  2799. HRESULT STDMETHODCALLTYPE IDXSurface_GetColorKey_Proxy( 
  2800.     IDXSurface * This,
  2801.     DXSAMPLE *pColorKey);
  2802.  
  2803.  
  2804. void __RPC_STUB IDXSurface_GetColorKey_Stub(
  2805.     IRpcStubBuffer *This,
  2806.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2807.     PRPC_MESSAGE _pRpcMessage,
  2808.     DWORD *_pdwStubPhase);
  2809.  
  2810.  
  2811. HRESULT STDMETHODCALLTYPE IDXSurface_SetColorKey_Proxy( 
  2812.     IDXSurface * This,
  2813.     DXSAMPLE ColorKey);
  2814.  
  2815.  
  2816. void __RPC_STUB IDXSurface_SetColorKey_Stub(
  2817.     IRpcStubBuffer *This,
  2818.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2819.     PRPC_MESSAGE _pRpcMessage,
  2820.     DWORD *_pdwStubPhase);
  2821.  
  2822.  
  2823. HRESULT STDMETHODCALLTYPE IDXSurface_LockSurfaceDC_Proxy( 
  2824.     IDXSurface * This,
  2825.     /* [in] */ const DXBNDS *pBounds,
  2826.     /* [in] */ ULONG ulTimeOut,
  2827.     /* [in] */ DWORD dwFlags,
  2828.     /* [out] */ IDXDCLock **ppDCLock);
  2829.  
  2830.  
  2831. void __RPC_STUB IDXSurface_LockSurfaceDC_Stub(
  2832.     IRpcStubBuffer *This,
  2833.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2834.     PRPC_MESSAGE _pRpcMessage,
  2835.     DWORD *_pdwStubPhase);
  2836.  
  2837.  
  2838. HRESULT STDMETHODCALLTYPE IDXSurface_SetAppData_Proxy( 
  2839.     IDXSurface * This,
  2840.     DWORD_PTR dwAppData);
  2841.  
  2842.  
  2843. void __RPC_STUB IDXSurface_SetAppData_Stub(
  2844.     IRpcStubBuffer *This,
  2845.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2846.     PRPC_MESSAGE _pRpcMessage,
  2847.     DWORD *_pdwStubPhase);
  2848.  
  2849.  
  2850. HRESULT STDMETHODCALLTYPE IDXSurface_GetAppData_Proxy( 
  2851.     IDXSurface * This,
  2852.     DWORD_PTR *pdwAppData);
  2853.  
  2854.  
  2855. void __RPC_STUB IDXSurface_GetAppData_Stub(
  2856.     IRpcStubBuffer *This,
  2857.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2858.     PRPC_MESSAGE _pRpcMessage,
  2859.     DWORD *_pdwStubPhase);
  2860.  
  2861.  
  2862.  
  2863. #endif     /* __IDXSurface_INTERFACE_DEFINED__ */
  2864.  
  2865.  
  2866. #ifndef __IDXSurfaceInit_INTERFACE_DEFINED__
  2867. #define __IDXSurfaceInit_INTERFACE_DEFINED__
  2868.  
  2869. /* interface IDXSurfaceInit */
  2870. /* [object][local][unique][helpstring][uuid] */ 
  2871.  
  2872.  
  2873. EXTERN_C const IID IID_IDXSurfaceInit;
  2874.  
  2875. #if defined(__cplusplus) && !defined(CINTERFACE)
  2876.     
  2877.     MIDL_INTERFACE("9EA3B639-C37D-11d1-905E-00C04FD9189D")
  2878.     IDXSurfaceInit : public IUnknown
  2879.     {
  2880.     public:
  2881.         virtual HRESULT STDMETHODCALLTYPE InitSurface( 
  2882.             /* [in] */ IUnknown *pDirectDraw,
  2883.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  2884.             /* [in] */ const GUID *pFormatID,
  2885.             /* [in] */ const DXBNDS *pBounds,
  2886.             /* [in] */ DWORD dwFlags) = 0;
  2887.         
  2888.     };
  2889.     
  2890. #else     /* C style interface */
  2891.  
  2892.     typedef struct IDXSurfaceInitVtbl
  2893.     {
  2894.         BEGIN_INTERFACE
  2895.         
  2896.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2897.             IDXSurfaceInit * This,
  2898.             /* [in] */ REFIID riid,
  2899.             /* [iid_is][out] */ void **ppvObject);
  2900.         
  2901.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2902.             IDXSurfaceInit * This);
  2903.         
  2904.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2905.             IDXSurfaceInit * This);
  2906.         
  2907.         HRESULT ( STDMETHODCALLTYPE *InitSurface )( 
  2908.             IDXSurfaceInit * This,
  2909.             /* [in] */ IUnknown *pDirectDraw,
  2910.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  2911.             /* [in] */ const GUID *pFormatID,
  2912.             /* [in] */ const DXBNDS *pBounds,
  2913.             /* [in] */ DWORD dwFlags);
  2914.         
  2915.         END_INTERFACE
  2916.     } IDXSurfaceInitVtbl;
  2917.  
  2918.     interface IDXSurfaceInit
  2919.     {
  2920.         CONST_VTBL struct IDXSurfaceInitVtbl *lpVtbl;
  2921.     };
  2922.  
  2923.     
  2924.  
  2925. #ifdef COBJMACROS
  2926.  
  2927.  
  2928. #define IDXSurfaceInit_QueryInterface(This,riid,ppvObject)    \
  2929.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2930.  
  2931. #define IDXSurfaceInit_AddRef(This)    \
  2932.     (This)->lpVtbl -> AddRef(This)
  2933.  
  2934. #define IDXSurfaceInit_Release(This)    \
  2935.     (This)->lpVtbl -> Release(This)
  2936.  
  2937.  
  2938. #define IDXSurfaceInit_InitSurface(This,pDirectDraw,pDDSurfaceDesc,pFormatID,pBounds,dwFlags)    \
  2939.     (This)->lpVtbl -> InitSurface(This,pDirectDraw,pDDSurfaceDesc,pFormatID,pBounds,dwFlags)
  2940.  
  2941. #endif /* COBJMACROS */
  2942.  
  2943.  
  2944. #endif     /* C style interface */
  2945.  
  2946.  
  2947.  
  2948. HRESULT STDMETHODCALLTYPE IDXSurfaceInit_InitSurface_Proxy( 
  2949.     IDXSurfaceInit * This,
  2950.     /* [in] */ IUnknown *pDirectDraw,
  2951.     /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  2952.     /* [in] */ const GUID *pFormatID,
  2953.     /* [in] */ const DXBNDS *pBounds,
  2954.     /* [in] */ DWORD dwFlags);
  2955.  
  2956.  
  2957. void __RPC_STUB IDXSurfaceInit_InitSurface_Stub(
  2958.     IRpcStubBuffer *This,
  2959.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2960.     PRPC_MESSAGE _pRpcMessage,
  2961.     DWORD *_pdwStubPhase);
  2962.  
  2963.  
  2964.  
  2965. #endif     /* __IDXSurfaceInit_INTERFACE_DEFINED__ */
  2966.  
  2967.  
  2968. #ifndef __IDXARGBSurfaceInit_INTERFACE_DEFINED__
  2969. #define __IDXARGBSurfaceInit_INTERFACE_DEFINED__
  2970.  
  2971. /* interface IDXARGBSurfaceInit */
  2972. /* [object][local][unique][helpstring][uuid] */ 
  2973.  
  2974.  
  2975. EXTERN_C const IID IID_IDXARGBSurfaceInit;
  2976.  
  2977. #if defined(__cplusplus) && !defined(CINTERFACE)
  2978.     
  2979.     MIDL_INTERFACE("9EA3B63A-C37D-11d1-905E-00C04FD9189D")
  2980.     IDXARGBSurfaceInit : public IDXSurfaceInit
  2981.     {
  2982.     public:
  2983.         virtual HRESULT STDMETHODCALLTYPE InitFromDDSurface( 
  2984.             /* [in] */ IUnknown *pDDrawSurface,
  2985.             /* [in] */ const GUID *pFormatID,
  2986.             /* [in] */ DWORD dwFlags) = 0;
  2987.         
  2988.         virtual HRESULT STDMETHODCALLTYPE InitFromRawSurface( 
  2989.             /* [in] */ IDXRawSurface *pRawSurface) = 0;
  2990.         
  2991.     };
  2992.     
  2993. #else     /* C style interface */
  2994.  
  2995.     typedef struct IDXARGBSurfaceInitVtbl
  2996.     {
  2997.         BEGIN_INTERFACE
  2998.         
  2999.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3000.             IDXARGBSurfaceInit * This,
  3001.             /* [in] */ REFIID riid,
  3002.             /* [iid_is][out] */ void **ppvObject);
  3003.         
  3004.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  3005.             IDXARGBSurfaceInit * This);
  3006.         
  3007.         ULONG ( STDMETHODCALLTYPE *Release )( 
  3008.             IDXARGBSurfaceInit * This);
  3009.         
  3010.         HRESULT ( STDMETHODCALLTYPE *InitSurface )( 
  3011.             IDXARGBSurfaceInit * This,
  3012.             /* [in] */ IUnknown *pDirectDraw,
  3013.             /* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
  3014.             /* [in] */ const GUID *pFormatID,
  3015.             /* [in] */ const DXBNDS *pBounds,
  3016.             /* [in] */ DWORD dwFlags);
  3017.         
  3018.         HRESULT ( STDMETHODCALLTYPE *InitFromDDSurface )( 
  3019.             IDXARGBSurfaceInit * This,
  3020.             /* [in] */ IUnknown *pDDrawSurface,
  3021.             /* [in] */ const GUID *pFormatID,
  3022.             /* [in] */ DWORD dwFlags);
  3023.         
  3024.         HRESULT ( STDMETHODCALLTYPE *InitFromRawSurface )( 
  3025.             IDXARGBSurfaceInit * This,
  3026.             /* [in] */ IDXRawSurface *pRawSurface);
  3027.         
  3028.         END_INTERFACE
  3029.     } IDXARGBSurfaceInitVtbl;
  3030.  
  3031.     interface IDXARGBSurfaceInit
  3032.     {
  3033.         CONST_VTBL struct IDXARGBSurfaceInitVtbl *lpVtbl;
  3034.     };
  3035.  
  3036.     
  3037.  
  3038. #ifdef COBJMACROS
  3039.  
  3040.  
  3041. #define IDXARGBSurfaceInit_QueryInterface(This,riid,ppvObject)    \
  3042.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3043.  
  3044. #define IDXARGBSurfaceInit_AddRef(This)    \
  3045.     (This)->lpVtbl -> AddRef(This)
  3046.  
  3047. #define IDXARGBSurfaceInit_Release(This)    \
  3048.     (This)->lpVtbl -> Release(This)
  3049.  
  3050.  
  3051. #define IDXARGBSurfaceInit_InitSurface(This,pDirectDraw,pDDSurfaceDesc,pFormatID,pBounds,dwFlags)    \
  3052.     (This)->lpVtbl -> InitSurface(This,pDirectDraw,pDDSurfaceDesc,pFormatID,pBounds,dwFlags)
  3053.  
  3054.  
  3055. #define IDXARGBSurfaceInit_InitFromDDSurface(This,pDDrawSurface,pFormatID,dwFlags)    \
  3056.     (This)->lpVtbl -> InitFromDDSurface(This,pDDrawSurface,pFormatID,dwFlags)
  3057.  
  3058. #define IDXARGBSurfaceInit_InitFromRawSurface(This,pRawSurface)    \
  3059.     (This)->lpVtbl -> InitFromRawSurface(This,pRawSurface)
  3060.  
  3061. #endif /* COBJMACROS */
  3062.  
  3063.  
  3064. #endif     /* C style interface */
  3065.  
  3066.  
  3067.  
  3068. HRESULT STDMETHODCALLTYPE IDXARGBSurfaceInit_InitFromDDSurface_Proxy( 
  3069.     IDXARGBSurfaceInit * This,
  3070.     /* [in] */ IUnknown *pDDrawSurface,
  3071.     /* [in] */ const GUID *pFormatID,
  3072.     /* [in] */ DWORD dwFlags);
  3073.  
  3074.  
  3075. void __RPC_STUB IDXARGBSurfaceInit_InitFromDDSurface_Stub(
  3076.     IRpcStubBuffer *This,
  3077.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3078.     PRPC_MESSAGE _pRpcMessage,
  3079.     DWORD *_pdwStubPhase);
  3080.  
  3081.  
  3082. HRESULT STDMETHODCALLTYPE IDXARGBSurfaceInit_InitFromRawSurface_Proxy( 
  3083.     IDXARGBSurfaceInit * This,
  3084.     /* [in] */ IDXRawSurface *pRawSurface);
  3085.  
  3086.  
  3087. void __RPC_STUB IDXARGBSurfaceInit_InitFromRawSurface_Stub(
  3088.     IRpcStubBuffer *This,
  3089.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3090.     PRPC_MESSAGE _pRpcMessage,
  3091.     DWORD *_pdwStubPhase);
  3092.  
  3093.  
  3094.  
  3095. #endif     /* __IDXARGBSurfaceInit_INTERFACE_DEFINED__ */
  3096.  
  3097.  
  3098. /* interface __MIDL_itf_dxtrans_0263 */
  3099. /* [local] */ 
  3100.  
  3101. typedef struct tagDXNATIVETYPEINFO
  3102.     {
  3103.     BYTE *pCurrentData;
  3104.     BYTE *pFirstByte;
  3105.     long lPitch;
  3106.     DWORD dwColorKey;
  3107.     }     DXNATIVETYPEINFO;
  3108.  
  3109. typedef struct tagDXPACKEDRECTDESC
  3110.     {
  3111.     DXBASESAMPLE *pSamples;
  3112.     BOOL bPremult;
  3113.     RECT rect;
  3114.     long lRowPadding;
  3115.     }     DXPACKEDRECTDESC;
  3116.  
  3117. typedef struct tagDXOVERSAMPLEDESC
  3118.     {
  3119.     POINT p;
  3120.     DXPMSAMPLE Color;
  3121.     }     DXOVERSAMPLEDESC;
  3122.  
  3123.  
  3124.  
  3125. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0263_v0_0_c_ifspec;
  3126. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0263_v0_0_s_ifspec;
  3127.  
  3128. #ifndef __IDXARGBReadPtr_INTERFACE_DEFINED__
  3129. #define __IDXARGBReadPtr_INTERFACE_DEFINED__
  3130.  
  3131. /* interface IDXARGBReadPtr */
  3132. /* [object][local][unique][helpstring][uuid] */ 
  3133.  
  3134.  
  3135. EXTERN_C const IID IID_IDXARGBReadPtr;
  3136.  
  3137. #if defined(__cplusplus) && !defined(CINTERFACE)
  3138.     
  3139.     MIDL_INTERFACE("EAAAC2D6-C290-11d1-905D-00C04FD9189D")
  3140.     IDXARGBReadPtr : public IUnknown
  3141.     {
  3142.     public:
  3143.         virtual HRESULT STDMETHODCALLTYPE GetSurface( 
  3144.             /* [in] */ REFIID riid,
  3145.             /* [iid_is][out] */ void **ppSurface) = 0;
  3146.         
  3147.         virtual DXSAMPLEFORMATENUM STDMETHODCALLTYPE GetNativeType( 
  3148.             /* [out] */ DXNATIVETYPEINFO *pInfo) = 0;
  3149.         
  3150.         virtual void STDMETHODCALLTYPE Move( 
  3151.             /* [in] */ long cSamples) = 0;
  3152.         
  3153.         virtual void STDMETHODCALLTYPE MoveToRow( 
  3154.             /* [in] */ ULONG y) = 0;
  3155.         
  3156.         virtual void STDMETHODCALLTYPE MoveToXY( 
  3157.             /* [in] */ ULONG x,
  3158.             /* [in] */ ULONG y) = 0;
  3159.         
  3160.         virtual ULONG STDMETHODCALLTYPE MoveAndGetRunInfo( 
  3161.             /* [in] */ ULONG Row,
  3162.             /* [out] */ const DXRUNINFO **ppInfo) = 0;
  3163.         
  3164.         virtual DXSAMPLE *STDMETHODCALLTYPE Unpack( 
  3165.             /* [in] */ DXSAMPLE *pSamples,
  3166.             /* [in] */ ULONG cSamples,
  3167.             /* [in] */ BOOL bMove) = 0;
  3168.         
  3169.         virtual DXPMSAMPLE *STDMETHODCALLTYPE UnpackPremult( 
  3170.             /* [in] */ DXPMSAMPLE *pSamples,
  3171.             /* [in] */ ULONG cSamples,
  3172.             /* [in] */ BOOL bMove) = 0;
  3173.         
  3174.         virtual void STDMETHODCALLTYPE UnpackRect( 
  3175.             /* [in] */ const DXPACKEDRECTDESC *pRectDesc) = 0;
  3176.         
  3177.     };
  3178.     
  3179. #else     /* C style interface */
  3180.  
  3181.     typedef struct IDXARGBReadPtrVtbl
  3182.     {
  3183.         BEGIN_INTERFACE
  3184.         
  3185.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3186.             IDXARGBReadPtr * This,
  3187.             /* [in] */ REFIID riid,
  3188.             /* [iid_is][out] */ void **ppvObject);
  3189.         
  3190.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  3191.             IDXARGBReadPtr * This);
  3192.         
  3193.         ULONG ( STDMETHODCALLTYPE *Release )( 
  3194.             IDXARGBReadPtr * This);
  3195.         
  3196.         HRESULT ( STDMETHODCALLTYPE *GetSurface )( 
  3197.             IDXARGBReadPtr * This,
  3198.             /* [in] */ REFIID riid,
  3199.             /* [iid_is][out] */ void **ppSurface);
  3200.         
  3201.         DXSAMPLEFORMATENUM ( STDMETHODCALLTYPE *GetNativeType )( 
  3202.             IDXARGBReadPtr * This,
  3203.             /* [out] */ DXNATIVETYPEINFO *pInfo);
  3204.         
  3205.         void ( STDMETHODCALLTYPE *Move )( 
  3206.             IDXARGBReadPtr * This,
  3207.             /* [in] */ long cSamples);
  3208.         
  3209.         void ( STDMETHODCALLTYPE *MoveToRow )( 
  3210.             IDXARGBReadPtr * This,
  3211.             /* [in] */ ULONG y);
  3212.         
  3213.         void ( STDMETHODCALLTYPE *MoveToXY )( 
  3214.             IDXARGBReadPtr * This,
  3215.             /* [in] */ ULONG x,
  3216.             /* [in] */ ULONG y);
  3217.         
  3218.         ULONG ( STDMETHODCALLTYPE *MoveAndGetRunInfo )( 
  3219.             IDXARGBReadPtr * This,
  3220.             /* [in] */ ULONG Row,
  3221.             /* [out] */ const DXRUNINFO **ppInfo);
  3222.         
  3223.         DXSAMPLE *( STDMETHODCALLTYPE *Unpack )( 
  3224.             IDXARGBReadPtr * This,
  3225.             /* [in] */ DXSAMPLE *pSamples,
  3226.             /* [in] */ ULONG cSamples,
  3227.             /* [in] */ BOOL bMove);
  3228.         
  3229.         DXPMSAMPLE *( STDMETHODCALLTYPE *UnpackPremult )( 
  3230.             IDXARGBReadPtr * This,
  3231.             /* [in] */ DXPMSAMPLE *pSamples,
  3232.             /* [in] */ ULONG cSamples,
  3233.             /* [in] */ BOOL bMove);
  3234.         
  3235.         void ( STDMETHODCALLTYPE *UnpackRect )( 
  3236.             IDXARGBReadPtr * This,
  3237.             /* [in] */ const DXPACKEDRECTDESC *pRectDesc);
  3238.         
  3239.         END_INTERFACE
  3240.     } IDXARGBReadPtrVtbl;
  3241.  
  3242.     interface IDXARGBReadPtr
  3243.     {
  3244.         CONST_VTBL struct IDXARGBReadPtrVtbl *lpVtbl;
  3245.     };
  3246.  
  3247.     
  3248.  
  3249. #ifdef COBJMACROS
  3250.  
  3251.  
  3252. #define IDXARGBReadPtr_QueryInterface(This,riid,ppvObject)    \
  3253.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3254.  
  3255. #define IDXARGBReadPtr_AddRef(This)    \
  3256.     (This)->lpVtbl -> AddRef(This)
  3257.  
  3258. #define IDXARGBReadPtr_Release(This)    \
  3259.     (This)->lpVtbl -> Release(This)
  3260.  
  3261.  
  3262. #define IDXARGBReadPtr_GetSurface(This,riid,ppSurface)    \
  3263.     (This)->lpVtbl -> GetSurface(This,riid,ppSurface)
  3264.  
  3265. #define IDXARGBReadPtr_GetNativeType(This,pInfo)    \
  3266.     (This)->lpVtbl -> GetNativeType(This,pInfo)
  3267.  
  3268. #define IDXARGBReadPtr_Move(This,cSamples)    \
  3269.     (This)->lpVtbl -> Move(This,cSamples)
  3270.  
  3271. #define IDXARGBReadPtr_MoveToRow(This,y)    \
  3272.     (This)->lpVtbl -> MoveToRow(This,y)
  3273.  
  3274. #define IDXARGBReadPtr_MoveToXY(This,x,y)    \
  3275.     (This)->lpVtbl -> MoveToXY(This,x,y)
  3276.  
  3277. #define IDXARGBReadPtr_MoveAndGetRunInfo(This,Row,ppInfo)    \
  3278.     (This)->lpVtbl -> MoveAndGetRunInfo(This,Row,ppInfo)
  3279.  
  3280. #define IDXARGBReadPtr_Unpack(This,pSamples,cSamples,bMove)    \
  3281.     (This)->lpVtbl -> Unpack(This,pSamples,cSamples,bMove)
  3282.  
  3283. #define IDXARGBReadPtr_UnpackPremult(This,pSamples,cSamples,bMove)    \
  3284.     (This)->lpVtbl -> UnpackPremult(This,pSamples,cSamples,bMove)
  3285.  
  3286. #define IDXARGBReadPtr_UnpackRect(This,pRectDesc)    \
  3287.     (This)->lpVtbl -> UnpackRect(This,pRectDesc)
  3288.  
  3289. #endif /* COBJMACROS */
  3290.  
  3291.  
  3292. #endif     /* C style interface */
  3293.  
  3294.  
  3295.  
  3296. HRESULT STDMETHODCALLTYPE IDXARGBReadPtr_GetSurface_Proxy( 
  3297.     IDXARGBReadPtr * This,
  3298.     /* [in] */ REFIID riid,
  3299.     /* [iid_is][out] */ void **ppSurface);
  3300.  
  3301.  
  3302. void __RPC_STUB IDXARGBReadPtr_GetSurface_Stub(
  3303.     IRpcStubBuffer *This,
  3304.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3305.     PRPC_MESSAGE _pRpcMessage,
  3306.     DWORD *_pdwStubPhase);
  3307.  
  3308.  
  3309. DXSAMPLEFORMATENUM STDMETHODCALLTYPE IDXARGBReadPtr_GetNativeType_Proxy( 
  3310.     IDXARGBReadPtr * This,
  3311.     /* [out] */ DXNATIVETYPEINFO *pInfo);
  3312.  
  3313.  
  3314. void __RPC_STUB IDXARGBReadPtr_GetNativeType_Stub(
  3315.     IRpcStubBuffer *This,
  3316.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3317.     PRPC_MESSAGE _pRpcMessage,
  3318.     DWORD *_pdwStubPhase);
  3319.  
  3320.  
  3321. void STDMETHODCALLTYPE IDXARGBReadPtr_Move_Proxy( 
  3322.     IDXARGBReadPtr * This,
  3323.     /* [in] */ long cSamples);
  3324.  
  3325.  
  3326. void __RPC_STUB IDXARGBReadPtr_Move_Stub(
  3327.     IRpcStubBuffer *This,
  3328.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3329.     PRPC_MESSAGE _pRpcMessage,
  3330.     DWORD *_pdwStubPhase);
  3331.  
  3332.  
  3333. void STDMETHODCALLTYPE IDXARGBReadPtr_MoveToRow_Proxy( 
  3334.     IDXARGBReadPtr * This,
  3335.     /* [in] */ ULONG y);
  3336.  
  3337.  
  3338. void __RPC_STUB IDXARGBReadPtr_MoveToRow_Stub(
  3339.     IRpcStubBuffer *This,
  3340.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3341.     PRPC_MESSAGE _pRpcMessage,
  3342.     DWORD *_pdwStubPhase);
  3343.  
  3344.  
  3345. void STDMETHODCALLTYPE IDXARGBReadPtr_MoveToXY_Proxy( 
  3346.     IDXARGBReadPtr * This,
  3347.     /* [in] */ ULONG x,
  3348.     /* [in] */ ULONG y);
  3349.  
  3350.  
  3351. void __RPC_STUB IDXARGBReadPtr_MoveToXY_Stub(
  3352.     IRpcStubBuffer *This,
  3353.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3354.     PRPC_MESSAGE _pRpcMessage,
  3355.     DWORD *_pdwStubPhase);
  3356.  
  3357.  
  3358. ULONG STDMETHODCALLTYPE IDXARGBReadPtr_MoveAndGetRunInfo_Proxy( 
  3359.     IDXARGBReadPtr * This,
  3360.     /* [in] */ ULONG Row,
  3361.     /* [out] */ const DXRUNINFO **ppInfo);
  3362.  
  3363.  
  3364. void __RPC_STUB IDXARGBReadPtr_MoveAndGetRunInfo_Stub(
  3365.     IRpcStubBuffer *This,
  3366.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3367.     PRPC_MESSAGE _pRpcMessage,
  3368.     DWORD *_pdwStubPhase);
  3369.  
  3370.  
  3371. DXSAMPLE *STDMETHODCALLTYPE IDXARGBReadPtr_Unpack_Proxy( 
  3372.     IDXARGBReadPtr * This,
  3373.     /* [in] */ DXSAMPLE *pSamples,
  3374.     /* [in] */ ULONG cSamples,
  3375.     /* [in] */ BOOL bMove);
  3376.  
  3377.  
  3378. void __RPC_STUB IDXARGBReadPtr_Unpack_Stub(
  3379.     IRpcStubBuffer *This,
  3380.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3381.     PRPC_MESSAGE _pRpcMessage,
  3382.     DWORD *_pdwStubPhase);
  3383.  
  3384.  
  3385. DXPMSAMPLE *STDMETHODCALLTYPE IDXARGBReadPtr_UnpackPremult_Proxy( 
  3386.     IDXARGBReadPtr * This,
  3387.     /* [in] */ DXPMSAMPLE *pSamples,
  3388.     /* [in] */ ULONG cSamples,
  3389.     /* [in] */ BOOL bMove);
  3390.  
  3391.  
  3392. void __RPC_STUB IDXARGBReadPtr_UnpackPremult_Stub(
  3393.     IRpcStubBuffer *This,
  3394.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3395.     PRPC_MESSAGE _pRpcMessage,
  3396.     DWORD *_pdwStubPhase);
  3397.  
  3398.  
  3399. void STDMETHODCALLTYPE IDXARGBReadPtr_UnpackRect_Proxy( 
  3400.     IDXARGBReadPtr * This,
  3401.     /* [in] */ const DXPACKEDRECTDESC *pRectDesc);
  3402.  
  3403.  
  3404. void __RPC_STUB IDXARGBReadPtr_UnpackRect_Stub(
  3405.     IRpcStubBuffer *This,
  3406.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3407.     PRPC_MESSAGE _pRpcMessage,
  3408.     DWORD *_pdwStubPhase);
  3409.  
  3410.  
  3411.  
  3412. #endif     /* __IDXARGBReadPtr_INTERFACE_DEFINED__ */
  3413.  
  3414.  
  3415. #ifndef __IDXARGBReadWritePtr_INTERFACE_DEFINED__
  3416. #define __IDXARGBReadWritePtr_INTERFACE_DEFINED__
  3417.  
  3418. /* interface IDXARGBReadWritePtr */
  3419. /* [object][local][unique][helpstring][uuid] */ 
  3420.  
  3421.  
  3422. EXTERN_C const IID IID_IDXARGBReadWritePtr;
  3423.  
  3424. #if defined(__cplusplus) && !defined(CINTERFACE)
  3425.     
  3426.     MIDL_INTERFACE("EAAAC2D7-C290-11d1-905D-00C04FD9189D")
  3427.     IDXARGBReadWritePtr : public IDXARGBReadPtr
  3428.     {
  3429.     public:
  3430.         virtual void STDMETHODCALLTYPE PackAndMove( 
  3431.             /* [in] */ const DXSAMPLE *pSamples,
  3432.             /* [in] */ ULONG cSamples) = 0;
  3433.         
  3434.         virtual void STDMETHODCALLTYPE PackPremultAndMove( 
  3435.             /* [in] */ const DXPMSAMPLE *pSamples,
  3436.             /* [in] */ ULONG cSamples) = 0;
  3437.         
  3438.         virtual void STDMETHODCALLTYPE PackRect( 
  3439.             /* [in] */ const DXPACKEDRECTDESC *pRectDesc) = 0;
  3440.         
  3441.         virtual void STDMETHODCALLTYPE CopyAndMoveBoth( 
  3442.             /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3443.             /* [in] */ IDXARGBReadPtr *pSrc,
  3444.             /* [in] */ ULONG cSamples,
  3445.             /* [in] */ BOOL bIsOpaque) = 0;
  3446.         
  3447.         virtual void STDMETHODCALLTYPE CopyRect( 
  3448.             /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3449.             /* [in] */ const RECT *pDestRect,
  3450.             /* [in] */ IDXARGBReadPtr *pSrc,
  3451.             /* [in] */ const POINT *pSrcOrigin,
  3452.             /* [in] */ BOOL bIsOpaque) = 0;
  3453.         
  3454.         virtual void STDMETHODCALLTYPE FillAndMove( 
  3455.             /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3456.             /* [in] */ DXPMSAMPLE SampVal,
  3457.             /* [in] */ ULONG cSamples,
  3458.             /* [in] */ BOOL bDoOver) = 0;
  3459.         
  3460.         virtual void STDMETHODCALLTYPE FillRect( 
  3461.             /* [in] */ const RECT *pRect,
  3462.             /* [in] */ DXPMSAMPLE SampVal,
  3463.             /* [in] */ BOOL bDoOver) = 0;
  3464.         
  3465.         virtual void STDMETHODCALLTYPE OverSample( 
  3466.             /* [in] */ const DXOVERSAMPLEDESC *pOverDesc) = 0;
  3467.         
  3468.         virtual void STDMETHODCALLTYPE OverArrayAndMove( 
  3469.             /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3470.             /* [in] */ const DXPMSAMPLE *pSrc,
  3471.             /* [in] */ ULONG cSamples) = 0;
  3472.         
  3473.     };
  3474.     
  3475. #else     /* C style interface */
  3476.  
  3477.     typedef struct IDXARGBReadWritePtrVtbl
  3478.     {
  3479.         BEGIN_INTERFACE
  3480.         
  3481.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3482.             IDXARGBReadWritePtr * This,
  3483.             /* [in] */ REFIID riid,
  3484.             /* [iid_is][out] */ void **ppvObject);
  3485.         
  3486.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  3487.             IDXARGBReadWritePtr * This);
  3488.         
  3489.         ULONG ( STDMETHODCALLTYPE *Release )( 
  3490.             IDXARGBReadWritePtr * This);
  3491.         
  3492.         HRESULT ( STDMETHODCALLTYPE *GetSurface )( 
  3493.             IDXARGBReadWritePtr * This,
  3494.             /* [in] */ REFIID riid,
  3495.             /* [iid_is][out] */ void **ppSurface);
  3496.         
  3497.         DXSAMPLEFORMATENUM ( STDMETHODCALLTYPE *GetNativeType )( 
  3498.             IDXARGBReadWritePtr * This,
  3499.             /* [out] */ DXNATIVETYPEINFO *pInfo);
  3500.         
  3501.         void ( STDMETHODCALLTYPE *Move )( 
  3502.             IDXARGBReadWritePtr * This,
  3503.             /* [in] */ long cSamples);
  3504.         
  3505.         void ( STDMETHODCALLTYPE *MoveToRow )( 
  3506.             IDXARGBReadWritePtr * This,
  3507.             /* [in] */ ULONG y);
  3508.         
  3509.         void ( STDMETHODCALLTYPE *MoveToXY )( 
  3510.             IDXARGBReadWritePtr * This,
  3511.             /* [in] */ ULONG x,
  3512.             /* [in] */ ULONG y);
  3513.         
  3514.         ULONG ( STDMETHODCALLTYPE *MoveAndGetRunInfo )( 
  3515.             IDXARGBReadWritePtr * This,
  3516.             /* [in] */ ULONG Row,
  3517.             /* [out] */ const DXRUNINFO **ppInfo);
  3518.         
  3519.         DXSAMPLE *( STDMETHODCALLTYPE *Unpack )( 
  3520.             IDXARGBReadWritePtr * This,
  3521.             /* [in] */ DXSAMPLE *pSamples,
  3522.             /* [in] */ ULONG cSamples,
  3523.             /* [in] */ BOOL bMove);
  3524.         
  3525.         DXPMSAMPLE *( STDMETHODCALLTYPE *UnpackPremult )( 
  3526.             IDXARGBReadWritePtr * This,
  3527.             /* [in] */ DXPMSAMPLE *pSamples,
  3528.             /* [in] */ ULONG cSamples,
  3529.             /* [in] */ BOOL bMove);
  3530.         
  3531.         void ( STDMETHODCALLTYPE *UnpackRect )( 
  3532.             IDXARGBReadWritePtr * This,
  3533.             /* [in] */ const DXPACKEDRECTDESC *pRectDesc);
  3534.         
  3535.         void ( STDMETHODCALLTYPE *PackAndMove )( 
  3536.             IDXARGBReadWritePtr * This,
  3537.             /* [in] */ const DXSAMPLE *pSamples,
  3538.             /* [in] */ ULONG cSamples);
  3539.         
  3540.         void ( STDMETHODCALLTYPE *PackPremultAndMove )( 
  3541.             IDXARGBReadWritePtr * This,
  3542.             /* [in] */ const DXPMSAMPLE *pSamples,
  3543.             /* [in] */ ULONG cSamples);
  3544.         
  3545.         void ( STDMETHODCALLTYPE *PackRect )( 
  3546.             IDXARGBReadWritePtr * This,
  3547.             /* [in] */ const DXPACKEDRECTDESC *pRectDesc);
  3548.         
  3549.         void ( STDMETHODCALLTYPE *CopyAndMoveBoth )( 
  3550.             IDXARGBReadWritePtr * This,
  3551.             /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3552.             /* [in] */ IDXARGBReadPtr *pSrc,
  3553.             /* [in] */ ULONG cSamples,
  3554.             /* [in] */ BOOL bIsOpaque);
  3555.         
  3556.         void ( STDMETHODCALLTYPE *CopyRect )( 
  3557.             IDXARGBReadWritePtr * This,
  3558.             /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3559.             /* [in] */ const RECT *pDestRect,
  3560.             /* [in] */ IDXARGBReadPtr *pSrc,
  3561.             /* [in] */ const POINT *pSrcOrigin,
  3562.             /* [in] */ BOOL bIsOpaque);
  3563.         
  3564.         void ( STDMETHODCALLTYPE *FillAndMove )( 
  3565.             IDXARGBReadWritePtr * This,
  3566.             /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3567.             /* [in] */ DXPMSAMPLE SampVal,
  3568.             /* [in] */ ULONG cSamples,
  3569.             /* [in] */ BOOL bDoOver);
  3570.         
  3571.         void ( STDMETHODCALLTYPE *FillRect )( 
  3572.             IDXARGBReadWritePtr * This,
  3573.             /* [in] */ const RECT *pRect,
  3574.             /* [in] */ DXPMSAMPLE SampVal,
  3575.             /* [in] */ BOOL bDoOver);
  3576.         
  3577.         void ( STDMETHODCALLTYPE *OverSample )( 
  3578.             IDXARGBReadWritePtr * This,
  3579.             /* [in] */ const DXOVERSAMPLEDESC *pOverDesc);
  3580.         
  3581.         void ( STDMETHODCALLTYPE *OverArrayAndMove )( 
  3582.             IDXARGBReadWritePtr * This,
  3583.             /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3584.             /* [in] */ const DXPMSAMPLE *pSrc,
  3585.             /* [in] */ ULONG cSamples);
  3586.         
  3587.         END_INTERFACE
  3588.     } IDXARGBReadWritePtrVtbl;
  3589.  
  3590.     interface IDXARGBReadWritePtr
  3591.     {
  3592.         CONST_VTBL struct IDXARGBReadWritePtrVtbl *lpVtbl;
  3593.     };
  3594.  
  3595.     
  3596.  
  3597. #ifdef COBJMACROS
  3598.  
  3599.  
  3600. #define IDXARGBReadWritePtr_QueryInterface(This,riid,ppvObject)    \
  3601.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3602.  
  3603. #define IDXARGBReadWritePtr_AddRef(This)    \
  3604.     (This)->lpVtbl -> AddRef(This)
  3605.  
  3606. #define IDXARGBReadWritePtr_Release(This)    \
  3607.     (This)->lpVtbl -> Release(This)
  3608.  
  3609.  
  3610. #define IDXARGBReadWritePtr_GetSurface(This,riid,ppSurface)    \
  3611.     (This)->lpVtbl -> GetSurface(This,riid,ppSurface)
  3612.  
  3613. #define IDXARGBReadWritePtr_GetNativeType(This,pInfo)    \
  3614.     (This)->lpVtbl -> GetNativeType(This,pInfo)
  3615.  
  3616. #define IDXARGBReadWritePtr_Move(This,cSamples)    \
  3617.     (This)->lpVtbl -> Move(This,cSamples)
  3618.  
  3619. #define IDXARGBReadWritePtr_MoveToRow(This,y)    \
  3620.     (This)->lpVtbl -> MoveToRow(This,y)
  3621.  
  3622. #define IDXARGBReadWritePtr_MoveToXY(This,x,y)    \
  3623.     (This)->lpVtbl -> MoveToXY(This,x,y)
  3624.  
  3625. #define IDXARGBReadWritePtr_MoveAndGetRunInfo(This,Row,ppInfo)    \
  3626.     (This)->lpVtbl -> MoveAndGetRunInfo(This,Row,ppInfo)
  3627.  
  3628. #define IDXARGBReadWritePtr_Unpack(This,pSamples,cSamples,bMove)    \
  3629.     (This)->lpVtbl -> Unpack(This,pSamples,cSamples,bMove)
  3630.  
  3631. #define IDXARGBReadWritePtr_UnpackPremult(This,pSamples,cSamples,bMove)    \
  3632.     (This)->lpVtbl -> UnpackPremult(This,pSamples,cSamples,bMove)
  3633.  
  3634. #define IDXARGBReadWritePtr_UnpackRect(This,pRectDesc)    \
  3635.     (This)->lpVtbl -> UnpackRect(This,pRectDesc)
  3636.  
  3637.  
  3638. #define IDXARGBReadWritePtr_PackAndMove(This,pSamples,cSamples)    \
  3639.     (This)->lpVtbl -> PackAndMove(This,pSamples,cSamples)
  3640.  
  3641. #define IDXARGBReadWritePtr_PackPremultAndMove(This,pSamples,cSamples)    \
  3642.     (This)->lpVtbl -> PackPremultAndMove(This,pSamples,cSamples)
  3643.  
  3644. #define IDXARGBReadWritePtr_PackRect(This,pRectDesc)    \
  3645.     (This)->lpVtbl -> PackRect(This,pRectDesc)
  3646.  
  3647. #define IDXARGBReadWritePtr_CopyAndMoveBoth(This,pScratchBuffer,pSrc,cSamples,bIsOpaque)    \
  3648.     (This)->lpVtbl -> CopyAndMoveBoth(This,pScratchBuffer,pSrc,cSamples,bIsOpaque)
  3649.  
  3650. #define IDXARGBReadWritePtr_CopyRect(This,pScratchBuffer,pDestRect,pSrc,pSrcOrigin,bIsOpaque)    \
  3651.     (This)->lpVtbl -> CopyRect(This,pScratchBuffer,pDestRect,pSrc,pSrcOrigin,bIsOpaque)
  3652.  
  3653. #define IDXARGBReadWritePtr_FillAndMove(This,pScratchBuffer,SampVal,cSamples,bDoOver)    \
  3654.     (This)->lpVtbl -> FillAndMove(This,pScratchBuffer,SampVal,cSamples,bDoOver)
  3655.  
  3656. #define IDXARGBReadWritePtr_FillRect(This,pRect,SampVal,bDoOver)    \
  3657.     (This)->lpVtbl -> FillRect(This,pRect,SampVal,bDoOver)
  3658.  
  3659. #define IDXARGBReadWritePtr_OverSample(This,pOverDesc)    \
  3660.     (This)->lpVtbl -> OverSample(This,pOverDesc)
  3661.  
  3662. #define IDXARGBReadWritePtr_OverArrayAndMove(This,pScratchBuffer,pSrc,cSamples)    \
  3663.     (This)->lpVtbl -> OverArrayAndMove(This,pScratchBuffer,pSrc,cSamples)
  3664.  
  3665. #endif /* COBJMACROS */
  3666.  
  3667.  
  3668. #endif     /* C style interface */
  3669.  
  3670.  
  3671.  
  3672. void STDMETHODCALLTYPE IDXARGBReadWritePtr_PackAndMove_Proxy( 
  3673.     IDXARGBReadWritePtr * This,
  3674.     /* [in] */ const DXSAMPLE *pSamples,
  3675.     /* [in] */ ULONG cSamples);
  3676.  
  3677.  
  3678. void __RPC_STUB IDXARGBReadWritePtr_PackAndMove_Stub(
  3679.     IRpcStubBuffer *This,
  3680.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3681.     PRPC_MESSAGE _pRpcMessage,
  3682.     DWORD *_pdwStubPhase);
  3683.  
  3684.  
  3685. void STDMETHODCALLTYPE IDXARGBReadWritePtr_PackPremultAndMove_Proxy( 
  3686.     IDXARGBReadWritePtr * This,
  3687.     /* [in] */ const DXPMSAMPLE *pSamples,
  3688.     /* [in] */ ULONG cSamples);
  3689.  
  3690.  
  3691. void __RPC_STUB IDXARGBReadWritePtr_PackPremultAndMove_Stub(
  3692.     IRpcStubBuffer *This,
  3693.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3694.     PRPC_MESSAGE _pRpcMessage,
  3695.     DWORD *_pdwStubPhase);
  3696.  
  3697.  
  3698. void STDMETHODCALLTYPE IDXARGBReadWritePtr_PackRect_Proxy( 
  3699.     IDXARGBReadWritePtr * This,
  3700.     /* [in] */ const DXPACKEDRECTDESC *pRectDesc);
  3701.  
  3702.  
  3703. void __RPC_STUB IDXARGBReadWritePtr_PackRect_Stub(
  3704.     IRpcStubBuffer *This,
  3705.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3706.     PRPC_MESSAGE _pRpcMessage,
  3707.     DWORD *_pdwStubPhase);
  3708.  
  3709.  
  3710. void STDMETHODCALLTYPE IDXARGBReadWritePtr_CopyAndMoveBoth_Proxy( 
  3711.     IDXARGBReadWritePtr * This,
  3712.     /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3713.     /* [in] */ IDXARGBReadPtr *pSrc,
  3714.     /* [in] */ ULONG cSamples,
  3715.     /* [in] */ BOOL bIsOpaque);
  3716.  
  3717.  
  3718. void __RPC_STUB IDXARGBReadWritePtr_CopyAndMoveBoth_Stub(
  3719.     IRpcStubBuffer *This,
  3720.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3721.     PRPC_MESSAGE _pRpcMessage,
  3722.     DWORD *_pdwStubPhase);
  3723.  
  3724.  
  3725. void STDMETHODCALLTYPE IDXARGBReadWritePtr_CopyRect_Proxy( 
  3726.     IDXARGBReadWritePtr * This,
  3727.     /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3728.     /* [in] */ const RECT *pDestRect,
  3729.     /* [in] */ IDXARGBReadPtr *pSrc,
  3730.     /* [in] */ const POINT *pSrcOrigin,
  3731.     /* [in] */ BOOL bIsOpaque);
  3732.  
  3733.  
  3734. void __RPC_STUB IDXARGBReadWritePtr_CopyRect_Stub(
  3735.     IRpcStubBuffer *This,
  3736.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3737.     PRPC_MESSAGE _pRpcMessage,
  3738.     DWORD *_pdwStubPhase);
  3739.  
  3740.  
  3741. void STDMETHODCALLTYPE IDXARGBReadWritePtr_FillAndMove_Proxy( 
  3742.     IDXARGBReadWritePtr * This,
  3743.     /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3744.     /* [in] */ DXPMSAMPLE SampVal,
  3745.     /* [in] */ ULONG cSamples,
  3746.     /* [in] */ BOOL bDoOver);
  3747.  
  3748.  
  3749. void __RPC_STUB IDXARGBReadWritePtr_FillAndMove_Stub(
  3750.     IRpcStubBuffer *This,
  3751.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3752.     PRPC_MESSAGE _pRpcMessage,
  3753.     DWORD *_pdwStubPhase);
  3754.  
  3755.  
  3756. void STDMETHODCALLTYPE IDXARGBReadWritePtr_FillRect_Proxy( 
  3757.     IDXARGBReadWritePtr * This,
  3758.     /* [in] */ const RECT *pRect,
  3759.     /* [in] */ DXPMSAMPLE SampVal,
  3760.     /* [in] */ BOOL bDoOver);
  3761.  
  3762.  
  3763. void __RPC_STUB IDXARGBReadWritePtr_FillRect_Stub(
  3764.     IRpcStubBuffer *This,
  3765.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3766.     PRPC_MESSAGE _pRpcMessage,
  3767.     DWORD *_pdwStubPhase);
  3768.  
  3769.  
  3770. void STDMETHODCALLTYPE IDXARGBReadWritePtr_OverSample_Proxy( 
  3771.     IDXARGBReadWritePtr * This,
  3772.     /* [in] */ const DXOVERSAMPLEDESC *pOverDesc);
  3773.  
  3774.  
  3775. void __RPC_STUB IDXARGBReadWritePtr_OverSample_Stub(
  3776.     IRpcStubBuffer *This,
  3777.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3778.     PRPC_MESSAGE _pRpcMessage,
  3779.     DWORD *_pdwStubPhase);
  3780.  
  3781.  
  3782. void STDMETHODCALLTYPE IDXARGBReadWritePtr_OverArrayAndMove_Proxy( 
  3783.     IDXARGBReadWritePtr * This,
  3784.     /* [in] */ DXBASESAMPLE *pScratchBuffer,
  3785.     /* [in] */ const DXPMSAMPLE *pSrc,
  3786.     /* [in] */ ULONG cSamples);
  3787.  
  3788.  
  3789. void __RPC_STUB IDXARGBReadWritePtr_OverArrayAndMove_Stub(
  3790.     IRpcStubBuffer *This,
  3791.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3792.     PRPC_MESSAGE _pRpcMessage,
  3793.     DWORD *_pdwStubPhase);
  3794.  
  3795.  
  3796.  
  3797. #endif     /* __IDXARGBReadWritePtr_INTERFACE_DEFINED__ */
  3798.  
  3799.  
  3800. #ifndef __IDXDCLock_INTERFACE_DEFINED__
  3801. #define __IDXDCLock_INTERFACE_DEFINED__
  3802.  
  3803. /* interface IDXDCLock */
  3804. /* [object][local][unique][helpstring][uuid] */ 
  3805.  
  3806.  
  3807. EXTERN_C const IID IID_IDXDCLock;
  3808.  
  3809. #if defined(__cplusplus) && !defined(CINTERFACE)
  3810.     
  3811.     MIDL_INTERFACE("0F619456-CF39-11d1-905E-00C04FD9189D")
  3812.     IDXDCLock : public IUnknown
  3813.     {
  3814.     public:
  3815.         virtual HDC STDMETHODCALLTYPE GetDC( void) = 0;
  3816.         
  3817.     };
  3818.     
  3819. #else     /* C style interface */
  3820.  
  3821.     typedef struct IDXDCLockVtbl
  3822.     {
  3823.         BEGIN_INTERFACE
  3824.         
  3825.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3826.             IDXDCLock * This,
  3827.             /* [in] */ REFIID riid,
  3828.             /* [iid_is][out] */ void **ppvObject);
  3829.         
  3830.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  3831.             IDXDCLock * This);
  3832.         
  3833.         ULONG ( STDMETHODCALLTYPE *Release )( 
  3834.             IDXDCLock * This);
  3835.         
  3836.         HDC ( STDMETHODCALLTYPE *GetDC )( 
  3837.             IDXDCLock * This);
  3838.         
  3839.         END_INTERFACE
  3840.     } IDXDCLockVtbl;
  3841.  
  3842.     interface IDXDCLock
  3843.     {
  3844.         CONST_VTBL struct IDXDCLockVtbl *lpVtbl;
  3845.     };
  3846.  
  3847.     
  3848.  
  3849. #ifdef COBJMACROS
  3850.  
  3851.  
  3852. #define IDXDCLock_QueryInterface(This,riid,ppvObject)    \
  3853.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3854.  
  3855. #define IDXDCLock_AddRef(This)    \
  3856.     (This)->lpVtbl -> AddRef(This)
  3857.  
  3858. #define IDXDCLock_Release(This)    \
  3859.     (This)->lpVtbl -> Release(This)
  3860.  
  3861.  
  3862. #define IDXDCLock_GetDC(This)    \
  3863.     (This)->lpVtbl -> GetDC(This)
  3864.  
  3865. #endif /* COBJMACROS */
  3866.  
  3867.  
  3868. #endif     /* C style interface */
  3869.  
  3870.  
  3871.  
  3872. HDC STDMETHODCALLTYPE IDXDCLock_GetDC_Proxy( 
  3873.     IDXDCLock * This);
  3874.  
  3875.  
  3876. void __RPC_STUB IDXDCLock_GetDC_Stub(
  3877.     IRpcStubBuffer *This,
  3878.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3879.     PRPC_MESSAGE _pRpcMessage,
  3880.     DWORD *_pdwStubPhase);
  3881.  
  3882.  
  3883.  
  3884. #endif     /* __IDXDCLock_INTERFACE_DEFINED__ */
  3885.  
  3886.  
  3887. #ifndef __IDXTScaleOutput_INTERFACE_DEFINED__
  3888. #define __IDXTScaleOutput_INTERFACE_DEFINED__
  3889.  
  3890. /* interface IDXTScaleOutput */
  3891. /* [object][unique][helpstring][uuid] */ 
  3892.  
  3893.  
  3894. EXTERN_C const IID IID_IDXTScaleOutput;
  3895.  
  3896. #if defined(__cplusplus) && !defined(CINTERFACE)
  3897.     
  3898.     MIDL_INTERFACE("B2024B50-EE77-11d1-9066-00C04FD9189D")
  3899.     IDXTScaleOutput : public IUnknown
  3900.     {
  3901.     public:
  3902.         virtual HRESULT STDMETHODCALLTYPE SetOutputSize( 
  3903.             /* [in] */ const SIZE OutSize,
  3904.             /* [in] */ BOOL bMaintainAspect) = 0;
  3905.         
  3906.     };
  3907.     
  3908. #else     /* C style interface */
  3909.  
  3910.     typedef struct IDXTScaleOutputVtbl
  3911.     {
  3912.         BEGIN_INTERFACE
  3913.         
  3914.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3915.             IDXTScaleOutput * This,
  3916.             /* [in] */ REFIID riid,
  3917.             /* [iid_is][out] */ void **ppvObject);
  3918.         
  3919.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  3920.             IDXTScaleOutput * This);
  3921.         
  3922.         ULONG ( STDMETHODCALLTYPE *Release )( 
  3923.             IDXTScaleOutput * This);
  3924.         
  3925.         HRESULT ( STDMETHODCALLTYPE *SetOutputSize )( 
  3926.             IDXTScaleOutput * This,
  3927.             /* [in] */ const SIZE OutSize,
  3928.             /* [in] */ BOOL bMaintainAspect);
  3929.         
  3930.         END_INTERFACE
  3931.     } IDXTScaleOutputVtbl;
  3932.  
  3933.     interface IDXTScaleOutput
  3934.     {
  3935.         CONST_VTBL struct IDXTScaleOutputVtbl *lpVtbl;
  3936.     };
  3937.  
  3938.     
  3939.  
  3940. #ifdef COBJMACROS
  3941.  
  3942.  
  3943. #define IDXTScaleOutput_QueryInterface(This,riid,ppvObject)    \
  3944.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3945.  
  3946. #define IDXTScaleOutput_AddRef(This)    \
  3947.     (This)->lpVtbl -> AddRef(This)
  3948.  
  3949. #define IDXTScaleOutput_Release(This)    \
  3950.     (This)->lpVtbl -> Release(This)
  3951.  
  3952.  
  3953. #define IDXTScaleOutput_SetOutputSize(This,OutSize,bMaintainAspect)    \
  3954.     (This)->lpVtbl -> SetOutputSize(This,OutSize,bMaintainAspect)
  3955.  
  3956. #endif /* COBJMACROS */
  3957.  
  3958.  
  3959. #endif     /* C style interface */
  3960.  
  3961.  
  3962.  
  3963. HRESULT STDMETHODCALLTYPE IDXTScaleOutput_SetOutputSize_Proxy( 
  3964.     IDXTScaleOutput * This,
  3965.     /* [in] */ const SIZE OutSize,
  3966.     /* [in] */ BOOL bMaintainAspect);
  3967.  
  3968.  
  3969. void __RPC_STUB IDXTScaleOutput_SetOutputSize_Stub(
  3970.     IRpcStubBuffer *This,
  3971.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3972.     PRPC_MESSAGE _pRpcMessage,
  3973.     DWORD *_pdwStubPhase);
  3974.  
  3975.  
  3976.  
  3977. #endif     /* __IDXTScaleOutput_INTERFACE_DEFINED__ */
  3978.  
  3979.  
  3980. #ifndef __IDXGradient_INTERFACE_DEFINED__
  3981. #define __IDXGradient_INTERFACE_DEFINED__
  3982.  
  3983. /* interface IDXGradient */
  3984. /* [object][unique][helpstring][uuid] */ 
  3985.  
  3986.  
  3987. EXTERN_C const IID IID_IDXGradient;
  3988.  
  3989. #if defined(__cplusplus) && !defined(CINTERFACE)
  3990.     
  3991.     MIDL_INTERFACE("B2024B51-EE77-11d1-9066-00C04FD9189D")
  3992.     IDXGradient : public IDXTScaleOutput
  3993.     {
  3994.     public:
  3995.         virtual HRESULT STDMETHODCALLTYPE SetGradient( 
  3996.             DXSAMPLE StartColor,
  3997.             DXSAMPLE EndColor,
  3998.             BOOL bHorizontal) = 0;
  3999.         
  4000.         virtual HRESULT STDMETHODCALLTYPE GetOutputSize( 
  4001.             /* [out] */ SIZE *pOutSize) = 0;
  4002.         
  4003.     };
  4004.     
  4005. #else     /* C style interface */
  4006.  
  4007.     typedef struct IDXGradientVtbl
  4008.     {
  4009.         BEGIN_INTERFACE
  4010.         
  4011.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4012.             IDXGradient * This,
  4013.             /* [in] */ REFIID riid,
  4014.             /* [iid_is][out] */ void **ppvObject);
  4015.         
  4016.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4017.             IDXGradient * This);
  4018.         
  4019.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4020.             IDXGradient * This);
  4021.         
  4022.         HRESULT ( STDMETHODCALLTYPE *SetOutputSize )( 
  4023.             IDXGradient * This,
  4024.             /* [in] */ const SIZE OutSize,
  4025.             /* [in] */ BOOL bMaintainAspect);
  4026.         
  4027.         HRESULT ( STDMETHODCALLTYPE *SetGradient )( 
  4028.             IDXGradient * This,
  4029.             DXSAMPLE StartColor,
  4030.             DXSAMPLE EndColor,
  4031.             BOOL bHorizontal);
  4032.         
  4033.         HRESULT ( STDMETHODCALLTYPE *GetOutputSize )( 
  4034.             IDXGradient * This,
  4035.             /* [out] */ SIZE *pOutSize);
  4036.         
  4037.         END_INTERFACE
  4038.     } IDXGradientVtbl;
  4039.  
  4040.     interface IDXGradient
  4041.     {
  4042.         CONST_VTBL struct IDXGradientVtbl *lpVtbl;
  4043.     };
  4044.  
  4045.     
  4046.  
  4047. #ifdef COBJMACROS
  4048.  
  4049.  
  4050. #define IDXGradient_QueryInterface(This,riid,ppvObject)    \
  4051.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4052.  
  4053. #define IDXGradient_AddRef(This)    \
  4054.     (This)->lpVtbl -> AddRef(This)
  4055.  
  4056. #define IDXGradient_Release(This)    \
  4057.     (This)->lpVtbl -> Release(This)
  4058.  
  4059.  
  4060. #define IDXGradient_SetOutputSize(This,OutSize,bMaintainAspect)    \
  4061.     (This)->lpVtbl -> SetOutputSize(This,OutSize,bMaintainAspect)
  4062.  
  4063.  
  4064. #define IDXGradient_SetGradient(This,StartColor,EndColor,bHorizontal)    \
  4065.     (This)->lpVtbl -> SetGradient(This,StartColor,EndColor,bHorizontal)
  4066.  
  4067. #define IDXGradient_GetOutputSize(This,pOutSize)    \
  4068.     (This)->lpVtbl -> GetOutputSize(This,pOutSize)
  4069.  
  4070. #endif /* COBJMACROS */
  4071.  
  4072.  
  4073. #endif     /* C style interface */
  4074.  
  4075.  
  4076.  
  4077. HRESULT STDMETHODCALLTYPE IDXGradient_SetGradient_Proxy( 
  4078.     IDXGradient * This,
  4079.     DXSAMPLE StartColor,
  4080.     DXSAMPLE EndColor,
  4081.     BOOL bHorizontal);
  4082.  
  4083.  
  4084. void __RPC_STUB IDXGradient_SetGradient_Stub(
  4085.     IRpcStubBuffer *This,
  4086.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4087.     PRPC_MESSAGE _pRpcMessage,
  4088.     DWORD *_pdwStubPhase);
  4089.  
  4090.  
  4091. HRESULT STDMETHODCALLTYPE IDXGradient_GetOutputSize_Proxy( 
  4092.     IDXGradient * This,
  4093.     /* [out] */ SIZE *pOutSize);
  4094.  
  4095.  
  4096. void __RPC_STUB IDXGradient_GetOutputSize_Stub(
  4097.     IRpcStubBuffer *This,
  4098.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4099.     PRPC_MESSAGE _pRpcMessage,
  4100.     DWORD *_pdwStubPhase);
  4101.  
  4102.  
  4103.  
  4104. #endif     /* __IDXGradient_INTERFACE_DEFINED__ */
  4105.  
  4106.  
  4107. #ifndef __IDXTScale_INTERFACE_DEFINED__
  4108. #define __IDXTScale_INTERFACE_DEFINED__
  4109.  
  4110. /* interface IDXTScale */
  4111. /* [object][unique][helpstring][uuid] */ 
  4112.  
  4113.  
  4114. EXTERN_C const IID IID_IDXTScale;
  4115.  
  4116. #if defined(__cplusplus) && !defined(CINTERFACE)
  4117.     
  4118.     MIDL_INTERFACE("B39FD742-E139-11d1-9065-00C04FD9189D")
  4119.     IDXTScale : public IUnknown
  4120.     {
  4121.     public:
  4122.         virtual HRESULT STDMETHODCALLTYPE SetScales( 
  4123.             /* [in] */ float Scales[ 2 ]) = 0;
  4124.         
  4125.         virtual HRESULT STDMETHODCALLTYPE GetScales( 
  4126.             /* [out] */ float Scales[ 2 ]) = 0;
  4127.         
  4128.         virtual HRESULT STDMETHODCALLTYPE ScaleFitToSize( 
  4129.             /* [out][in] */ DXBNDS *pClipBounds,
  4130.             /* [in] */ SIZE FitToSize,
  4131.             /* [in] */ BOOL bMaintainAspect) = 0;
  4132.         
  4133.     };
  4134.     
  4135. #else     /* C style interface */
  4136.  
  4137.     typedef struct IDXTScaleVtbl
  4138.     {
  4139.         BEGIN_INTERFACE
  4140.         
  4141.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4142.             IDXTScale * This,
  4143.             /* [in] */ REFIID riid,
  4144.             /* [iid_is][out] */ void **ppvObject);
  4145.         
  4146.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4147.             IDXTScale * This);
  4148.         
  4149.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4150.             IDXTScale * This);
  4151.         
  4152.         HRESULT ( STDMETHODCALLTYPE *SetScales )( 
  4153.             IDXTScale * This,
  4154.             /* [in] */ float Scales[ 2 ]);
  4155.         
  4156.         HRESULT ( STDMETHODCALLTYPE *GetScales )( 
  4157.             IDXTScale * This,
  4158.             /* [out] */ float Scales[ 2 ]);
  4159.         
  4160.         HRESULT ( STDMETHODCALLTYPE *ScaleFitToSize )( 
  4161.             IDXTScale * This,
  4162.             /* [out][in] */ DXBNDS *pClipBounds,
  4163.             /* [in] */ SIZE FitToSize,
  4164.             /* [in] */ BOOL bMaintainAspect);
  4165.         
  4166.         END_INTERFACE
  4167.     } IDXTScaleVtbl;
  4168.  
  4169.     interface IDXTScale
  4170.     {
  4171.         CONST_VTBL struct IDXTScaleVtbl *lpVtbl;
  4172.     };
  4173.  
  4174.     
  4175.  
  4176. #ifdef COBJMACROS
  4177.  
  4178.  
  4179. #define IDXTScale_QueryInterface(This,riid,ppvObject)    \
  4180.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4181.  
  4182. #define IDXTScale_AddRef(This)    \
  4183.     (This)->lpVtbl -> AddRef(This)
  4184.  
  4185. #define IDXTScale_Release(This)    \
  4186.     (This)->lpVtbl -> Release(This)
  4187.  
  4188.  
  4189. #define IDXTScale_SetScales(This,Scales)    \
  4190.     (This)->lpVtbl -> SetScales(This,Scales)
  4191.  
  4192. #define IDXTScale_GetScales(This,Scales)    \
  4193.     (This)->lpVtbl -> GetScales(This,Scales)
  4194.  
  4195. #define IDXTScale_ScaleFitToSize(This,pClipBounds,FitToSize,bMaintainAspect)    \
  4196.     (This)->lpVtbl -> ScaleFitToSize(This,pClipBounds,FitToSize,bMaintainAspect)
  4197.  
  4198. #endif /* COBJMACROS */
  4199.  
  4200.  
  4201. #endif     /* C style interface */
  4202.  
  4203.  
  4204.  
  4205. HRESULT STDMETHODCALLTYPE IDXTScale_SetScales_Proxy( 
  4206.     IDXTScale * This,
  4207.     /* [in] */ float Scales[ 2 ]);
  4208.  
  4209.  
  4210. void __RPC_STUB IDXTScale_SetScales_Stub(
  4211.     IRpcStubBuffer *This,
  4212.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4213.     PRPC_MESSAGE _pRpcMessage,
  4214.     DWORD *_pdwStubPhase);
  4215.  
  4216.  
  4217. HRESULT STDMETHODCALLTYPE IDXTScale_GetScales_Proxy( 
  4218.     IDXTScale * This,
  4219.     /* [out] */ float Scales[ 2 ]);
  4220.  
  4221.  
  4222. void __RPC_STUB IDXTScale_GetScales_Stub(
  4223.     IRpcStubBuffer *This,
  4224.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4225.     PRPC_MESSAGE _pRpcMessage,
  4226.     DWORD *_pdwStubPhase);
  4227.  
  4228.  
  4229. HRESULT STDMETHODCALLTYPE IDXTScale_ScaleFitToSize_Proxy( 
  4230.     IDXTScale * This,
  4231.     /* [out][in] */ DXBNDS *pClipBounds,
  4232.     /* [in] */ SIZE FitToSize,
  4233.     /* [in] */ BOOL bMaintainAspect);
  4234.  
  4235.  
  4236. void __RPC_STUB IDXTScale_ScaleFitToSize_Stub(
  4237.     IRpcStubBuffer *This,
  4238.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4239.     PRPC_MESSAGE _pRpcMessage,
  4240.     DWORD *_pdwStubPhase);
  4241.  
  4242.  
  4243.  
  4244. #endif     /* __IDXTScale_INTERFACE_DEFINED__ */
  4245.  
  4246.  
  4247. /* interface __MIDL_itf_dxtrans_0269 */
  4248. /* [local] */ 
  4249.  
  4250. typedef 
  4251. enum DISPIDDXEFFECT
  4252.     {    DISPID_DXECAPABILITIES    = 10000,
  4253.     DISPID_DXEPROGRESS    = DISPID_DXECAPABILITIES + 1,
  4254.     DISPID_DXESTEP    = DISPID_DXEPROGRESS + 1,
  4255.     DISPID_DXEDURATION    = DISPID_DXESTEP + 1,
  4256.     DISPID_DXE_NEXT_ID    = DISPID_DXEDURATION + 1
  4257.     }     DISPIDDXBOUNDEDEFFECT;
  4258.  
  4259. typedef 
  4260. enum DXEFFECTTYPE
  4261.     {    DXTET_PERIODIC    = 1 << 0,
  4262.     DXTET_MORPH    = 1 << 1
  4263.     }     DXEFFECTTYPE;
  4264.  
  4265.  
  4266.  
  4267. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0269_v0_0_c_ifspec;
  4268. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0269_v0_0_s_ifspec;
  4269.  
  4270. #ifndef __IDXEffect_INTERFACE_DEFINED__
  4271. #define __IDXEffect_INTERFACE_DEFINED__
  4272.  
  4273. /* interface IDXEffect */
  4274. /* [unique][helpstring][dual][uuid][object] */ 
  4275.  
  4276.  
  4277. EXTERN_C const IID IID_IDXEffect;
  4278.  
  4279. #if defined(__cplusplus) && !defined(CINTERFACE)
  4280.     
  4281.     MIDL_INTERFACE("E31FB81B-1335-11d1-8189-0000F87557DB")
  4282.     IDXEffect : public IDispatch
  4283.     {
  4284.     public:
  4285.         virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Capabilities( 
  4286.             /* [retval][out] */ long *pVal) = 0;
  4287.         
  4288.         virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Progress( 
  4289.             /* [retval][out] */ float *pVal) = 0;
  4290.         
  4291.         virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Progress( 
  4292.             /* [in] */ float newVal) = 0;
  4293.         
  4294.         virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_StepResolution( 
  4295.             /* [retval][out] */ float *pVal) = 0;
  4296.         
  4297.         virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Duration( 
  4298.             /* [retval][out] */ float *pVal) = 0;
  4299.         
  4300.         virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Duration( 
  4301.             /* [in] */ float newVal) = 0;
  4302.         
  4303.     };
  4304.     
  4305. #else     /* C style interface */
  4306.  
  4307.     typedef struct IDXEffectVtbl
  4308.     {
  4309.         BEGIN_INTERFACE
  4310.         
  4311.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4312.             IDXEffect * This,
  4313.             /* [in] */ REFIID riid,
  4314.             /* [iid_is][out] */ void **ppvObject);
  4315.         
  4316.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4317.             IDXEffect * This);
  4318.         
  4319.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4320.             IDXEffect * This);
  4321.         
  4322.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  4323.             IDXEffect * This,
  4324.             /* [out] */ UINT *pctinfo);
  4325.         
  4326.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  4327.             IDXEffect * This,
  4328.             /* [in] */ UINT iTInfo,
  4329.             /* [in] */ LCID lcid,
  4330.             /* [out] */ ITypeInfo **ppTInfo);
  4331.         
  4332.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  4333.             IDXEffect * This,
  4334.             /* [in] */ REFIID riid,
  4335.             /* [size_is][in] */ LPOLESTR *rgszNames,
  4336.             /* [in] */ UINT cNames,
  4337.             /* [in] */ LCID lcid,
  4338.             /* [size_is][out] */ DISPID *rgDispId);
  4339.         
  4340.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  4341.             IDXEffect * This,
  4342.             /* [in] */ DISPID dispIdMember,
  4343.             /* [in] */ REFIID riid,
  4344.             /* [in] */ LCID lcid,
  4345.             /* [in] */ WORD wFlags,
  4346.             /* [out][in] */ DISPPARAMS *pDispParams,
  4347.             /* [out] */ VARIANT *pVarResult,
  4348.             /* [out] */ EXCEPINFO *pExcepInfo,
  4349.             /* [out] */ UINT *puArgErr);
  4350.         
  4351.         /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Capabilities )( 
  4352.             IDXEffect * This,
  4353.             /* [retval][out] */ long *pVal);
  4354.         
  4355.         /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Progress )( 
  4356.             IDXEffect * This,
  4357.             /* [retval][out] */ float *pVal);
  4358.         
  4359.         /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Progress )( 
  4360.             IDXEffect * This,
  4361.             /* [in] */ float newVal);
  4362.         
  4363.         /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_StepResolution )( 
  4364.             IDXEffect * This,
  4365.             /* [retval][out] */ float *pVal);
  4366.         
  4367.         /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Duration )( 
  4368.             IDXEffect * This,
  4369.             /* [retval][out] */ float *pVal);
  4370.         
  4371.         /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Duration )( 
  4372.             IDXEffect * This,
  4373.             /* [in] */ float newVal);
  4374.         
  4375.         END_INTERFACE
  4376.     } IDXEffectVtbl;
  4377.  
  4378.     interface IDXEffect
  4379.     {
  4380.         CONST_VTBL struct IDXEffectVtbl *lpVtbl;
  4381.     };
  4382.  
  4383.     
  4384.  
  4385. #ifdef COBJMACROS
  4386.  
  4387.  
  4388. #define IDXEffect_QueryInterface(This,riid,ppvObject)    \
  4389.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4390.  
  4391. #define IDXEffect_AddRef(This)    \
  4392.     (This)->lpVtbl -> AddRef(This)
  4393.  
  4394. #define IDXEffect_Release(This)    \
  4395.     (This)->lpVtbl -> Release(This)
  4396.  
  4397.  
  4398. #define IDXEffect_GetTypeInfoCount(This,pctinfo)    \
  4399.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  4400.  
  4401. #define IDXEffect_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
  4402.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  4403.  
  4404. #define IDXEffect_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)    \
  4405.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  4406.  
  4407. #define IDXEffect_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
  4408.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  4409.  
  4410.  
  4411. #define IDXEffect_get_Capabilities(This,pVal)    \
  4412.     (This)->lpVtbl -> get_Capabilities(This,pVal)
  4413.  
  4414. #define IDXEffect_get_Progress(This,pVal)    \
  4415.     (This)->lpVtbl -> get_Progress(This,pVal)
  4416.  
  4417. #define IDXEffect_put_Progress(This,newVal)    \
  4418.     (This)->lpVtbl -> put_Progress(This,newVal)
  4419.  
  4420. #define IDXEffect_get_StepResolution(This,pVal)    \
  4421.     (This)->lpVtbl -> get_StepResolution(This,pVal)
  4422.  
  4423. #define IDXEffect_get_Duration(This,pVal)    \
  4424.     (This)->lpVtbl -> get_Duration(This,pVal)
  4425.  
  4426. #define IDXEffect_put_Duration(This,newVal)    \
  4427.     (This)->lpVtbl -> put_Duration(This,newVal)
  4428.  
  4429. #endif /* COBJMACROS */
  4430.  
  4431.  
  4432. #endif     /* C style interface */
  4433.  
  4434.  
  4435.  
  4436. /* [id][propget] */ HRESULT STDMETHODCALLTYPE IDXEffect_get_Capabilities_Proxy( 
  4437.     IDXEffect * This,
  4438.     /* [retval][out] */ long *pVal);
  4439.  
  4440.  
  4441. void __RPC_STUB IDXEffect_get_Capabilities_Stub(
  4442.     IRpcStubBuffer *This,
  4443.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4444.     PRPC_MESSAGE _pRpcMessage,
  4445.     DWORD *_pdwStubPhase);
  4446.  
  4447.  
  4448. /* [id][propget] */ HRESULT STDMETHODCALLTYPE IDXEffect_get_Progress_Proxy( 
  4449.     IDXEffect * This,
  4450.     /* [retval][out] */ float *pVal);
  4451.  
  4452.  
  4453. void __RPC_STUB IDXEffect_get_Progress_Stub(
  4454.     IRpcStubBuffer *This,
  4455.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4456.     PRPC_MESSAGE _pRpcMessage,
  4457.     DWORD *_pdwStubPhase);
  4458.  
  4459.  
  4460. /* [id][propput] */ HRESULT STDMETHODCALLTYPE IDXEffect_put_Progress_Proxy( 
  4461.     IDXEffect * This,
  4462.     /* [in] */ float newVal);
  4463.  
  4464.  
  4465. void __RPC_STUB IDXEffect_put_Progress_Stub(
  4466.     IRpcStubBuffer *This,
  4467.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4468.     PRPC_MESSAGE _pRpcMessage,
  4469.     DWORD *_pdwStubPhase);
  4470.  
  4471.  
  4472. /* [id][propget] */ HRESULT STDMETHODCALLTYPE IDXEffect_get_StepResolution_Proxy( 
  4473.     IDXEffect * This,
  4474.     /* [retval][out] */ float *pVal);
  4475.  
  4476.  
  4477. void __RPC_STUB IDXEffect_get_StepResolution_Stub(
  4478.     IRpcStubBuffer *This,
  4479.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4480.     PRPC_MESSAGE _pRpcMessage,
  4481.     DWORD *_pdwStubPhase);
  4482.  
  4483.  
  4484. /* [id][propget] */ HRESULT STDMETHODCALLTYPE IDXEffect_get_Duration_Proxy( 
  4485.     IDXEffect * This,
  4486.     /* [retval][out] */ float *pVal);
  4487.  
  4488.  
  4489. void __RPC_STUB IDXEffect_get_Duration_Stub(
  4490.     IRpcStubBuffer *This,
  4491.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4492.     PRPC_MESSAGE _pRpcMessage,
  4493.     DWORD *_pdwStubPhase);
  4494.  
  4495.  
  4496. /* [id][propput] */ HRESULT STDMETHODCALLTYPE IDXEffect_put_Duration_Proxy( 
  4497.     IDXEffect * This,
  4498.     /* [in] */ float newVal);
  4499.  
  4500.  
  4501. void __RPC_STUB IDXEffect_put_Duration_Stub(
  4502.     IRpcStubBuffer *This,
  4503.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4504.     PRPC_MESSAGE _pRpcMessage,
  4505.     DWORD *_pdwStubPhase);
  4506.  
  4507.  
  4508.  
  4509. #endif     /* __IDXEffect_INTERFACE_DEFINED__ */
  4510.  
  4511.  
  4512. #ifndef __IDXLookupTable_INTERFACE_DEFINED__
  4513. #define __IDXLookupTable_INTERFACE_DEFINED__
  4514.  
  4515. /* interface IDXLookupTable */
  4516. /* [object][unique][helpstring][uuid] */ 
  4517.  
  4518.  
  4519. EXTERN_C const IID IID_IDXLookupTable;
  4520.  
  4521. #if defined(__cplusplus) && !defined(CINTERFACE)
  4522.     
  4523.     MIDL_INTERFACE("01BAFC7F-9E63-11d1-9053-00C04FD9189D")
  4524.     IDXLookupTable : public IDXBaseObject
  4525.     {
  4526.     public:
  4527.         virtual HRESULT STDMETHODCALLTYPE GetTables( 
  4528.             /* [out] */ BYTE RedLUT[ 256 ],
  4529.             /* [out] */ BYTE GreenLUT[ 256 ],
  4530.             /* [out] */ BYTE BlueLUT[ 256 ],
  4531.             /* [out] */ BYTE AlphaLUT[ 256 ]) = 0;
  4532.         
  4533.         virtual HRESULT STDMETHODCALLTYPE IsChannelIdentity( 
  4534.             /* [out] */ DXBASESAMPLE *pSampleBools) = 0;
  4535.         
  4536.         virtual HRESULT STDMETHODCALLTYPE GetIndexValues( 
  4537.             /* [in] */ ULONG Index,
  4538.             /* [out] */ DXBASESAMPLE *pSample) = 0;
  4539.         
  4540.         virtual HRESULT STDMETHODCALLTYPE ApplyTables( 
  4541.             /* [out][in] */ DXSAMPLE *pSamples,
  4542.             /* [in] */ ULONG cSamples) = 0;
  4543.         
  4544.     };
  4545.     
  4546. #else     /* C style interface */
  4547.  
  4548.     typedef struct IDXLookupTableVtbl
  4549.     {
  4550.         BEGIN_INTERFACE
  4551.         
  4552.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4553.             IDXLookupTable * This,
  4554.             /* [in] */ REFIID riid,
  4555.             /* [iid_is][out] */ void **ppvObject);
  4556.         
  4557.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4558.             IDXLookupTable * This);
  4559.         
  4560.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4561.             IDXLookupTable * This);
  4562.         
  4563.         HRESULT ( STDMETHODCALLTYPE *GetGenerationId )( 
  4564.             IDXLookupTable * This,
  4565.             /* [out] */ ULONG *pID);
  4566.         
  4567.         HRESULT ( STDMETHODCALLTYPE *IncrementGenerationId )( 
  4568.             IDXLookupTable * This,
  4569.             /* [in] */ BOOL bRefresh);
  4570.         
  4571.         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
  4572.             IDXLookupTable * This,
  4573.             /* [out] */ ULONG *pcbSize);
  4574.         
  4575.         HRESULT ( STDMETHODCALLTYPE *GetTables )( 
  4576.             IDXLookupTable * This,
  4577.             /* [out] */ BYTE RedLUT[ 256 ],
  4578.             /* [out] */ BYTE GreenLUT[ 256 ],
  4579.             /* [out] */ BYTE BlueLUT[ 256 ],
  4580.             /* [out] */ BYTE AlphaLUT[ 256 ]);
  4581.         
  4582.         HRESULT ( STDMETHODCALLTYPE *IsChannelIdentity )( 
  4583.             IDXLookupTable * This,
  4584.             /* [out] */ DXBASESAMPLE *pSampleBools);
  4585.         
  4586.         HRESULT ( STDMETHODCALLTYPE *GetIndexValues )( 
  4587.             IDXLookupTable * This,
  4588.             /* [in] */ ULONG Index,
  4589.             /* [out] */ DXBASESAMPLE *pSample);
  4590.         
  4591.         HRESULT ( STDMETHODCALLTYPE *ApplyTables )( 
  4592.             IDXLookupTable * This,
  4593.             /* [out][in] */ DXSAMPLE *pSamples,
  4594.             /* [in] */ ULONG cSamples);
  4595.         
  4596.         END_INTERFACE
  4597.     } IDXLookupTableVtbl;
  4598.  
  4599.     interface IDXLookupTable
  4600.     {
  4601.         CONST_VTBL struct IDXLookupTableVtbl *lpVtbl;
  4602.     };
  4603.  
  4604.     
  4605.  
  4606. #ifdef COBJMACROS
  4607.  
  4608.  
  4609. #define IDXLookupTable_QueryInterface(This,riid,ppvObject)    \
  4610.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4611.  
  4612. #define IDXLookupTable_AddRef(This)    \
  4613.     (This)->lpVtbl -> AddRef(This)
  4614.  
  4615. #define IDXLookupTable_Release(This)    \
  4616.     (This)->lpVtbl -> Release(This)
  4617.  
  4618.  
  4619. #define IDXLookupTable_GetGenerationId(This,pID)    \
  4620.     (This)->lpVtbl -> GetGenerationId(This,pID)
  4621.  
  4622. #define IDXLookupTable_IncrementGenerationId(This,bRefresh)    \
  4623.     (This)->lpVtbl -> IncrementGenerationId(This,bRefresh)
  4624.  
  4625. #define IDXLookupTable_GetObjectSize(This,pcbSize)    \
  4626.     (This)->lpVtbl -> GetObjectSize(This,pcbSize)
  4627.  
  4628.  
  4629. #define IDXLookupTable_GetTables(This,RedLUT,GreenLUT,BlueLUT,AlphaLUT)    \
  4630.     (This)->lpVtbl -> GetTables(This,RedLUT,GreenLUT,BlueLUT,AlphaLUT)
  4631.  
  4632. #define IDXLookupTable_IsChannelIdentity(This,pSampleBools)    \
  4633.     (This)->lpVtbl -> IsChannelIdentity(This,pSampleBools)
  4634.  
  4635. #define IDXLookupTable_GetIndexValues(This,Index,pSample)    \
  4636.     (This)->lpVtbl -> GetIndexValues(This,Index,pSample)
  4637.  
  4638. #define IDXLookupTable_ApplyTables(This,pSamples,cSamples)    \
  4639.     (This)->lpVtbl -> ApplyTables(This,pSamples,cSamples)
  4640.  
  4641. #endif /* COBJMACROS */
  4642.  
  4643.  
  4644. #endif     /* C style interface */
  4645.  
  4646.  
  4647.  
  4648. HRESULT STDMETHODCALLTYPE IDXLookupTable_GetTables_Proxy( 
  4649.     IDXLookupTable * This,
  4650.     /* [out] */ BYTE RedLUT[ 256 ],
  4651.     /* [out] */ BYTE GreenLUT[ 256 ],
  4652.     /* [out] */ BYTE BlueLUT[ 256 ],
  4653.     /* [out] */ BYTE AlphaLUT[ 256 ]);
  4654.  
  4655.  
  4656. void __RPC_STUB IDXLookupTable_GetTables_Stub(
  4657.     IRpcStubBuffer *This,
  4658.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4659.     PRPC_MESSAGE _pRpcMessage,
  4660.     DWORD *_pdwStubPhase);
  4661.  
  4662.  
  4663. HRESULT STDMETHODCALLTYPE IDXLookupTable_IsChannelIdentity_Proxy( 
  4664.     IDXLookupTable * This,
  4665.     /* [out] */ DXBASESAMPLE *pSampleBools);
  4666.  
  4667.  
  4668. void __RPC_STUB IDXLookupTable_IsChannelIdentity_Stub(
  4669.     IRpcStubBuffer *This,
  4670.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4671.     PRPC_MESSAGE _pRpcMessage,
  4672.     DWORD *_pdwStubPhase);
  4673.  
  4674.  
  4675. HRESULT STDMETHODCALLTYPE IDXLookupTable_GetIndexValues_Proxy( 
  4676.     IDXLookupTable * This,
  4677.     /* [in] */ ULONG Index,
  4678.     /* [out] */ DXBASESAMPLE *pSample);
  4679.  
  4680.  
  4681. void __RPC_STUB IDXLookupTable_GetIndexValues_Stub(
  4682.     IRpcStubBuffer *This,
  4683.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4684.     PRPC_MESSAGE _pRpcMessage,
  4685.     DWORD *_pdwStubPhase);
  4686.  
  4687.  
  4688. HRESULT STDMETHODCALLTYPE IDXLookupTable_ApplyTables_Proxy( 
  4689.     IDXLookupTable * This,
  4690.     /* [out][in] */ DXSAMPLE *pSamples,
  4691.     /* [in] */ ULONG cSamples);
  4692.  
  4693.  
  4694. void __RPC_STUB IDXLookupTable_ApplyTables_Stub(
  4695.     IRpcStubBuffer *This,
  4696.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4697.     PRPC_MESSAGE _pRpcMessage,
  4698.     DWORD *_pdwStubPhase);
  4699.  
  4700.  
  4701.  
  4702. #endif     /* __IDXLookupTable_INTERFACE_DEFINED__ */
  4703.  
  4704.  
  4705. /* interface __MIDL_itf_dxtrans_0271 */
  4706. /* [local] */ 
  4707.  
  4708. typedef struct DXRAWSURFACEINFO
  4709.     {
  4710.     BYTE *pFirstByte;
  4711.     long lPitch;
  4712.     ULONG Width;
  4713.     ULONG Height;
  4714.     const GUID *pPixelFormat;
  4715.     HDC hdc;
  4716.     DWORD dwColorKey;
  4717.     DXBASESAMPLE *pPalette;
  4718.     }     DXRAWSURFACEINFO;
  4719.  
  4720.  
  4721.  
  4722. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0271_v0_0_c_ifspec;
  4723. extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0271_v0_0_s_ifspec;
  4724.  
  4725. #ifndef __IDXRawSurface_INTERFACE_DEFINED__
  4726. #define __IDXRawSurface_INTERFACE_DEFINED__
  4727.  
  4728. /* interface IDXRawSurface */
  4729. /* [object][local][unique][helpstring][uuid] */ 
  4730.  
  4731.  
  4732. EXTERN_C const IID IID_IDXRawSurface;
  4733.  
  4734. #if defined(__cplusplus) && !defined(CINTERFACE)
  4735.     
  4736.     MIDL_INTERFACE("09756C8A-D96A-11d1-9062-00C04FD9189D")
  4737.     IDXRawSurface : public IUnknown
  4738.     {
  4739.     public:
  4740.         virtual HRESULT STDMETHODCALLTYPE GetSurfaceInfo( 
  4741.             DXRAWSURFACEINFO *pSurfaceInfo) = 0;
  4742.         
  4743.     };
  4744.     
  4745. #else     /* C style interface */
  4746.  
  4747.     typedef struct IDXRawSurfaceVtbl
  4748.     {
  4749.         BEGIN_INTERFACE
  4750.         
  4751.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4752.             IDXRawSurface * This,
  4753.             /* [in] */ REFIID riid,
  4754.             /* [iid_is][out] */ void **ppvObject);
  4755.         
  4756.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4757.             IDXRawSurface * This);
  4758.         
  4759.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4760.             IDXRawSurface * This);
  4761.         
  4762.         HRESULT ( STDMETHODCALLTYPE *GetSurfaceInfo )( 
  4763.             IDXRawSurface * This,
  4764.             DXRAWSURFACEINFO *pSurfaceInfo);
  4765.         
  4766.         END_INTERFACE
  4767.     } IDXRawSurfaceVtbl;
  4768.  
  4769.     interface IDXRawSurface
  4770.     {
  4771.         CONST_VTBL struct IDXRawSurfaceVtbl *lpVtbl;
  4772.     };
  4773.  
  4774.     
  4775.  
  4776. #ifdef COBJMACROS
  4777.  
  4778.  
  4779. #define IDXRawSurface_QueryInterface(This,riid,ppvObject)    \
  4780.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4781.  
  4782. #define IDXRawSurface_AddRef(This)    \
  4783.     (This)->lpVtbl -> AddRef(This)
  4784.  
  4785. #define IDXRawSurface_Release(This)    \
  4786.     (This)->lpVtbl -> Release(This)
  4787.  
  4788.  
  4789. #define IDXRawSurface_GetSurfaceInfo(This,pSurfaceInfo)    \
  4790.     (This)->lpVtbl -> GetSurfaceInfo(This,pSurfaceInfo)
  4791.  
  4792. #endif /* COBJMACROS */
  4793.  
  4794.  
  4795. #endif     /* C style interface */
  4796.  
  4797.  
  4798.  
  4799. HRESULT STDMETHODCALLTYPE IDXRawSurface_GetSurfaceInfo_Proxy( 
  4800.     IDXRawSurface * This,
  4801.     DXRAWSURFACEINFO *pSurfaceInfo);
  4802.  
  4803.  
  4804. void __RPC_STUB IDXRawSurface_GetSurfaceInfo_Stub(
  4805.     IRpcStubBuffer *This,
  4806.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4807.     PRPC_MESSAGE _pRpcMessage,
  4808.     DWORD *_pdwStubPhase);
  4809.  
  4810.  
  4811.  
  4812. #endif     /* __IDXRawSurface_INTERFACE_DEFINED__ */
  4813.  
  4814.  
  4815. #ifndef __IHTMLDXTransform_INTERFACE_DEFINED__
  4816. #define __IHTMLDXTransform_INTERFACE_DEFINED__
  4817.  
  4818. /* interface IHTMLDXTransform */
  4819. /* [object][local][unique][helpstring][uuid] */ 
  4820.  
  4821.  
  4822. EXTERN_C const IID IID_IHTMLDXTransform;
  4823.  
  4824. #if defined(__cplusplus) && !defined(CINTERFACE)
  4825.     
  4826.     MIDL_INTERFACE("30E2AB7D-4FDD-4159-B7EA-DC722BF4ADE5")
  4827.     IHTMLDXTransform : public IUnknown
  4828.     {
  4829.     public:
  4830.         virtual HRESULT STDMETHODCALLTYPE SetHostUrl( 
  4831.             BSTR bstrHostUrl) = 0;
  4832.         
  4833.     };
  4834.     
  4835. #else     /* C style interface */
  4836.  
  4837.     typedef struct IHTMLDXTransformVtbl
  4838.     {
  4839.         BEGIN_INTERFACE
  4840.         
  4841.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4842.             IHTMLDXTransform * This,
  4843.             /* [in] */ REFIID riid,
  4844.             /* [iid_is][out] */ void **ppvObject);
  4845.         
  4846.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  4847.             IHTMLDXTransform * This);
  4848.         
  4849.         ULONG ( STDMETHODCALLTYPE *Release )( 
  4850.             IHTMLDXTransform * This);
  4851.         
  4852.         HRESULT ( STDMETHODCALLTYPE *SetHostUrl )( 
  4853.             IHTMLDXTransform * This,
  4854.             BSTR bstrHostUrl);
  4855.         
  4856.         END_INTERFACE
  4857.     } IHTMLDXTransformVtbl;
  4858.  
  4859.     interface IHTMLDXTransform
  4860.     {
  4861.         CONST_VTBL struct IHTMLDXTransformVtbl *lpVtbl;
  4862.     };
  4863.  
  4864.     
  4865.  
  4866. #ifdef COBJMACROS
  4867.  
  4868.  
  4869. #define IHTMLDXTransform_QueryInterface(This,riid,ppvObject)    \
  4870.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4871.  
  4872. #define IHTMLDXTransform_AddRef(This)    \
  4873.     (This)->lpVtbl -> AddRef(This)
  4874.  
  4875. #define IHTMLDXTransform_Release(This)    \
  4876.     (This)->lpVtbl -> Release(This)
  4877.  
  4878.  
  4879. #define IHTMLDXTransform_SetHostUrl(This,bstrHostUrl)    \
  4880.     (This)->lpVtbl -> SetHostUrl(This,bstrHostUrl)
  4881.  
  4882. #endif /* COBJMACROS */
  4883.  
  4884.  
  4885. #endif     /* C style interface */
  4886.  
  4887.  
  4888.  
  4889. HRESULT STDMETHODCALLTYPE IHTMLDXTransform_SetHostUrl_Proxy( 
  4890.     IHTMLDXTransform * This,
  4891.     BSTR bstrHostUrl);
  4892.  
  4893.  
  4894. void __RPC_STUB IHTMLDXTransform_SetHostUrl_Stub(
  4895.     IRpcStubBuffer *This,
  4896.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4897.     PRPC_MESSAGE _pRpcMessage,
  4898.     DWORD *_pdwStubPhase);
  4899.  
  4900.  
  4901.  
  4902. #endif     /* __IHTMLDXTransform_INTERFACE_DEFINED__ */
  4903.  
  4904.  
  4905.  
  4906. #ifndef __DXTRANSLib_LIBRARY_DEFINED__
  4907. #define __DXTRANSLib_LIBRARY_DEFINED__
  4908.  
  4909. /* library DXTRANSLib */
  4910. /* [helpstring][version][uuid] */ 
  4911.  
  4912.  
  4913. EXTERN_C const IID LIBID_DXTRANSLib;
  4914.  
  4915. EXTERN_C const CLSID CLSID_DXTransformFactory;
  4916.  
  4917. #ifdef __cplusplus
  4918.  
  4919. class DECLSPEC_UUID("D1FE6762-FC48-11D0-883A-3C8B00C10000")
  4920. DXTransformFactory;
  4921. #endif
  4922.  
  4923. EXTERN_C const CLSID CLSID_DXTaskManager;
  4924.  
  4925. #ifdef __cplusplus
  4926.  
  4927. class DECLSPEC_UUID("4CB26C03-FF93-11d0-817E-0000F87557DB")
  4928. DXTaskManager;
  4929. #endif
  4930.  
  4931. EXTERN_C const CLSID CLSID_DXTScale;
  4932.  
  4933. #ifdef __cplusplus
  4934.  
  4935. class DECLSPEC_UUID("555278E2-05DB-11D1-883A-3C8B00C10000")
  4936. DXTScale;
  4937. #endif
  4938.  
  4939. EXTERN_C const CLSID CLSID_DXSurface;
  4940.  
  4941. #ifdef __cplusplus
  4942.  
  4943. class DECLSPEC_UUID("0E890F83-5F79-11D1-9043-00C04FD9189D")
  4944. DXSurface;
  4945. #endif
  4946.  
  4947. EXTERN_C const CLSID CLSID_DXSurfaceModifier;
  4948.  
  4949. #ifdef __cplusplus
  4950.  
  4951. class DECLSPEC_UUID("3E669F1D-9C23-11d1-9053-00C04FD9189D")
  4952. DXSurfaceModifier;
  4953. #endif
  4954.  
  4955. EXTERN_C const CLSID CLSID_DXGradient;
  4956.  
  4957. #ifdef __cplusplus
  4958.  
  4959. class DECLSPEC_UUID("C6365470-F667-11d1-9067-00C04FD9189D")
  4960. DXGradient;
  4961. #endif
  4962. #endif /* __DXTRANSLib_LIBRARY_DEFINED__ */
  4963.  
  4964. /* Additional Prototypes for ALL interfaces */
  4965.  
  4966. /* end of Additional Prototypes */
  4967.  
  4968. #ifdef __cplusplus
  4969. }
  4970. #endif
  4971.  
  4972. #endif
  4973.  
  4974.  
  4975.