home *** CD-ROM | disk | FTP | other *** search
/ Total Destruction / Total_Destruction.iso / addons / Lccwin32.exe / Lccwin32 / lccpub / include / objidl.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-18  |  111.0 KB  |  2,590 lines

  1. #ifndef _LCC_OBJIDL_H
  2. #define _LCC_OBJIDL_H
  3. #include <windows.h>
  4. #ifndef OLECHAR
  5. #ifdef UNICODE
  6. #define OLECHAR WCHAR
  7. #else
  8. #define OLECHAR char
  9. #endif
  10. #endif
  11. #define LPCOLESTR LPCSTR
  12. #ifndef __objidl_h__
  13. #define __objidl_h__
  14. #ifndef interface
  15. #define interface struct
  16. #endif
  17. typedef interface IMarshal IMarshal;
  18. typedef interface IMalloc IMalloc;
  19. typedef interface IMallocSpy IMallocSpy;
  20. typedef interface IStdMarshalInfo IStdMarshalInfo;
  21. typedef interface IExternalConnection IExternalConnection;
  22. typedef interface IEnumUnknown IEnumUnknown;
  23. typedef interface IBindCtx IBindCtx;
  24. typedef interface IEnumMoniker IEnumMoniker;
  25. typedef interface IRunnableObject IRunnableObject;
  26. typedef interface IRunningObjectTable IRunningObjectTable;
  27. typedef interface IPersist IPersist;
  28. typedef interface IPersistStream IPersistStream;
  29. typedef interface IMoniker IMoniker;
  30. typedef interface IROTData IROTData;
  31. typedef interface IEnumString IEnumString;
  32. typedef interface IStream IStream;
  33. typedef interface IEnumSTATSTG IEnumSTATSTG;
  34. typedef interface IStorage IStorage;
  35. typedef interface IPersistFile IPersistFile;
  36. typedef interface IPersistStorage IPersistStorage;
  37. typedef interface ILockBytes ILockBytes;
  38. typedef interface IEnumFORMATETC IEnumFORMATETC;
  39. typedef interface IEnumSTATDATA IEnumSTATDATA;
  40. typedef interface IRootStorage IRootStorage;
  41. typedef interface IAdviseSink IAdviseSink;
  42. typedef interface IAdviseSink2 IAdviseSink2;
  43. typedef interface IDataObject IDataObject;
  44. typedef interface IDataAdviseHolder IDataAdviseHolder;
  45. typedef interface IMessageFilter IMessageFilter;
  46. typedef interface IRpcChannelBuffer IRpcChannelBuffer;
  47. typedef interface IRpcProxyBuffer IRpcProxyBuffer;
  48. typedef interface IRpcStubBuffer IRpcStubBuffer;
  49. typedef interface IPSFactoryBuffer IPSFactoryBuffer;
  50. #ifdef IUnknown
  51. #undef IUnknown
  52. #endif
  53. typedef interface _IUnknown { struct iUnknownVtbl *lpVtbl; } IUnknown;
  54. //typedef interface IUnknown IUnknown;
  55. typedef struct IUnknownVtbl {
  56.  HRESULT (_stdcall *QueryInterface )(IUnknown * This,REFIID riid, void * *ppvObject);
  57.  ULONG (_stdcall *AddRef )(IUnknown * This);
  58.  ULONG (_stdcall *Release )(IUnknown * This);
  59. } IUnknownVtbl;
  60.  
  61. //interface IUnknown { struct IUnknownVtbl *lpVtbl; };
  62. #define IUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  63. #define IUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
  64. #define IUnknown_Release(This) (This)->lpVtbl->Release(This)
  65. void* _stdcall MIDL_user_allocate(int);
  66. void _stdcall MIDL_user_free(void* ); 
  67. extern void * __MIDL__intf_0000_v0_0_c_ifspec;
  68. extern void * __MIDL__intf_0000_v0_0_s_ifspec;
  69.  
  70. typedef IMarshal*LPMARSHAL;
  71. extern IID IID_IMarshal;
  72.  
  73. typedef struct IMarshalVtbl {
  74.     HRESULT (_stdcall*QueryInterface)(IMarshal*,REFIID,void * *);
  75.     ULONG (_stdcall*AddRef )(IMarshal*);
  76.     ULONG (_stdcall*Release )(IMarshal* This);
  77.     HRESULT (_stdcall*GetUnmarshalClass)(IMarshal*,REFIID,void*,DWORD,void*,DWORD,CLSID*);
  78.     HRESULT (_stdcall*GetMarshalSizeMax)(IMarshal*,REFIID,void*,DWORD,void*,DWORD,DWORD*);
  79.     HRESULT (_stdcall*MarshalInterface)(IMarshal*,IStream*,REFIID,void*,DWORD,void*,DWORD);
  80.     HRESULT (_stdcall*UnmarshalInterface)(IMarshal*,IStream*,REFIID,void **);
  81.     HRESULT (_stdcall*ReleaseMarshalData)(IMarshal*,IStream *);
  82.     HRESULT (_stdcall* DisconnectObject)(IMarshal*,DWORD);
  83.  } IMarshalVtbl;
  84.  
  85. interface IMarshal { struct IMarshalVtbl*lpVtbl; };
  86.  
  87. #define IMarshal_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p)
  88. #define IMarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
  89. #define IMarshal_Release(This) (This)->lpVtbl->Release(This)
  90. #define IMarshal_GetUnmarshalClass(T,r,pv,dw,pvD,m,pC) (T)->lpVtbl->GetUnmarshalClass(T,r,pv,dw,pvD,m,pC)
  91. #define IMarshal_GetMarshalSizeMax(T,r,pv,dw,pD,m,p) (T)->lpVtbl->GetMarshalSizeMax(T,r,pv,dw,pD,m,p)
  92. #define IMarshal_MarshalInterface(T,p,r,pv,dw,pvD,m) (T)->lpVtbl->MarshalInterface(T,p,r,pv,dw,pv,m)
  93. #define IMarshal_UnmarshalInterface(T,p,r,pp) (T)->lpVtbl->UnmarshalInterface(T,p,r,pp)
  94. #define IMarshal_ReleaseMarshalData(T,p) (T)->lpVtbl->ReleaseMarshalData(T,p)
  95. #define IMarshal_DisconnectObject(T,d) (T)->lpVtbl->DisconnectObject(T,d)
  96.  
  97. HRESULT _stdcall IMarshal_GetUnmarshalClass_Proxy(IMarshal* This,
  98.  REFIID riid,void*pv, DWORD dwDestContext, void*pvDestContext,
  99.  DWORD mshlflags,CLSID*pCid);
  100. void _stdcall IMarshal_GetUnmarshalClass_Stub(IRpcStubBuffer *This,
  101.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  102.  DWORD *_pdwStubPhase);
  103.  HRESULT _stdcall IMarshal_GetMarshalSizeMax_Proxy(IMarshal* This,
  104.  REFIID riid,void*pv, DWORD dwDestContext, void*pvDestContext,
  105.  DWORD mshlflags,DWORD*pSize);
  106. void _stdcall IMarshal_GetMarshalSizeMax_Stub(IRpcStubBuffer *This,
  107.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  108.  DWORD *_pdwStubPhase);
  109.  HRESULT _stdcall IMarshal_MarshalInterface_Proxy(IMarshal* This,
  110.  IStream*pStm,REFIID riid, void*pv, DWORD dwDestContext,
  111.  void*pvDestContext,DWORD mshlflags);
  112. void _stdcall IMarshal_MarshalInterface_Stub(IRpcStubBuffer *This,
  113.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  114.  DWORD *_pdwStubPhase);
  115.  HRESULT _stdcall IMarshal_UnmarshalInterface_Proxy(IMarshal* This,
  116.  IStream*pStm,REFIID riid, void * * ppv);
  117. void _stdcall IMarshal_UnmarshalInterface_Stub(IRpcStubBuffer *This,
  118.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  119.  DWORD *_pdwStubPhase);
  120.  HRESULT _stdcall IMarshal_ReleaseMarshalData_Proxy(IMarshal* This,
  121.  IStream*pStm);
  122. void _stdcall IMarshal_ReleaseMarshalData_Stub(IRpcStubBuffer *This,
  123.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  124.  DWORD *_pdwStubPhase);
  125.  HRESULT _stdcall IMarshal_DisconnectObject_Proxy(IMarshal* This,
  126.  DWORD dwReserved);
  127. void _stdcall IMarshal_DisconnectObject_Stub(IRpcStubBuffer *This,
  128.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  129.  DWORD *_pdwStubPhase);
  130.  
  131.  
  132. typedef IMalloc*LPMALLOC;
  133. extern const IID IID_IMalloc;
  134.  
  135. typedef struct IMallocVtbl {
  136.  HRESULT (_stdcall*QueryInterface )( IMalloc* This,
  137.  REFIID riid,void * * ppvObject);
  138.  ULONG (_stdcall*AddRef )( IMalloc* This);
  139.  ULONG (_stdcall*Release )( IMalloc* This);
  140.  void*(_stdcall*Alloc )( IMalloc* This,
  141.  ULONG cb);
  142.  void*(_stdcall*Realloc )( IMalloc* This,
  143.  void*pv,ULONG cb);
  144.  void (_stdcall*Free )( IMalloc* This,
  145.  void*pv);
  146.  ULONG (_stdcall*GetSize )( IMalloc* This,
  147.  void*pv);
  148.  int (_stdcall*DidAlloc )( IMalloc* This,
  149.  void*pv);
  150.  void (_stdcall*HeapMinimize )( IMalloc* This);
  151. } IMallocVtbl;
  152. interface IMalloc { struct IMallocVtbl*lpVtbl; };
  153. #define IMalloc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  154. #define IMalloc_AddRef(This) (This)->lpVtbl->AddRef(This)
  155. #define IMalloc_Release(This)    (This)->lpVtbl->Release(This)
  156. #define IMalloc_Alloc(This,cb)    (This)->lpVtbl->Alloc(This,cb)
  157. #define IMalloc_Realloc(This,pv,cb)    (This)->lpVtbl->Realloc(This,pv,cb)
  158. #define IMalloc_Free(This,pv)    (This)->lpVtbl->Free(This,pv)
  159. #define IMalloc_GetSize(This,pv) (This)->lpVtbl->GetSize(This,pv)
  160. #define IMalloc_DidAlloc(This,pv) (This)->lpVtbl->DidAlloc(This,pv)
  161. #define IMalloc_HeapMinimize(This) (This)->lpVtbl->HeapMinimize(This)
  162.  
  163. void*_stdcall IMalloc_Alloc_Proxy(IMalloc* This,ULONG cb);
  164. void _stdcall IMalloc_Alloc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  165.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  166. void*_stdcall IMalloc_Realloc_Proxy(IMalloc* This,
  167.  void*pv,ULONG cb);
  168. void _stdcall IMalloc_Realloc_Stub(IRpcStubBuffer *This,
  169.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  170.  DWORD *_pdwStubPhase);
  171. void _stdcall IMalloc_Free_Proxy(IMalloc* This,void*pv);
  172. void _stdcall IMalloc_Free_Stub(IRpcStubBuffer *This,
  173.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  174. ULONG _stdcall IMalloc_GetSize_Proxy(IMalloc* This,void*pv);
  175. void _stdcall IMalloc_GetSize_Stub(IRpcStubBuffer *This,
  176.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  177. int _stdcall IMalloc_DidAlloc_Proxy(IMalloc* This,void*pv);
  178. void _stdcall IMalloc_DidAlloc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  179.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  180. void _stdcall IMalloc_HeapMinimize_Proxy(IMalloc* This);
  181. void _stdcall IMalloc_HeapMinimize_Stub(IRpcStubBuffer *This,
  182.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  183.  DWORD *_pdwStubPhase);
  184.  
  185. typedef IMallocSpy*LPMALLOCSPY;
  186. extern const IID IID_IMallocSpy;
  187. typedef struct IMallocSpyVtbl {
  188.  HRESULT (_stdcall*QueryInterface )( IMallocSpy* This,
  189.  REFIID riid,void * * ppvObject);
  190.  ULONG (_stdcall*AddRef )( IMallocSpy* This);
  191.  ULONG (_stdcall*Release )( IMallocSpy* This);
  192.  ULONG (_stdcall*PreAlloc )( IMallocSpy* This,ULONG cbRequest);
  193.  void*(_stdcall*PostAlloc )( IMallocSpy* This,void*pActual);
  194.  void*(_stdcall*PreFree )( IMallocSpy* This,void*pRequest, BOOL fSpyed);
  195.  void (_stdcall*PostFree )(IMallocSpy* ,BOOL);
  196.  ULONG (_stdcall*PreRealloc )(IMallocSpy*,void*,ULONG,void * * , BOOL);
  197.  void*(_stdcall*PostRealloc )( IMallocSpy* This,void*pActual, BOOL fSpyed);
  198.  void*(_stdcall*PreGetSize )( IMallocSpy* This,void*pRequest, BOOL fSpyed);
  199.  ULONG (_stdcall*PostGetSize )( IMallocSpy* This,ULONG cbActual, BOOL fSpyed);
  200.  void*(_stdcall*PreDidAlloc )( IMallocSpy* ,void*, BOOL);
  201.  int (_stdcall*PostDidAlloc )( IMallocSpy*,void*, BOOL, int);
  202.  void (_stdcall*PreHeapMinimize )( IMallocSpy*);
  203.  void (_stdcall*PostHeapMinimize )( IMallocSpy* This);
  204. } IMallocSpyVtbl;
  205. interface IMallocSpy { struct IMallocSpyVtbl*lpVtbl; };
  206. #define IMallocSpy_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p)
  207. #define IMallocSpy_AddRef(This)     (This)->lpVtbl->AddRef(This)
  208. #define IMallocSpy_Release(This) (This)->lpVtbl->Release(This)
  209. #define IMallocSpy_PreAlloc(T,c)     (T)->lpVtbl->PreAlloc(T,c)
  210. #define IMallocSpy_PostAlloc(This,p)    (This)->lpVtbl->PostAlloc(This,p)
  211. #define IMallocSpy_PreFree(This,p,f) (This)->lpVtbl->PreFree(This,p,f)
  212. #define IMallocSpy_PostFree(This,fSpyed) (This)->lpVtbl->PostFree(This,fSpyed)
  213. #define IMallocSpy_PreRealloc(T,p,c,pp,f) (T)->lpVtbl->PreRealloc(T,p,c,pp,f)
  214. #define IMallocSpy_PostRealloc(T,p,f) (T)->lpVtbl->PostRealloc(T,p,f)
  215. #define IMallocSpy_PreGetSize(This,p,f)    (This)->lpVtbl->PreGetSize(This,p,f)
  216. #define IMallocSpy_PostGetSize(This,cbActual,fSpyed)    \
  217.  (This)->lpVtbl->PostGetSize(This,cbActual,fSpyed)
  218. #define IMallocSpy_PreDidAlloc(This,pRequest,fSpyed)    \
  219.  (This)->lpVtbl->PreDidAlloc(This,pRequest,fSpyed)
  220. #define IMallocSpy_PostDidAlloc(This,pRequest,fSpyed,fActual)    \
  221.  (This)->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual)
  222. #define IMallocSpy_PreHeapMinimize(T) (T)->lpVtbl->PreHeapMinimize(T)
  223. #define IMallocSpy_PostHeapMinimize(T) (T)->lpVtbl->PostHeapMinimize(T)
  224.  
  225. ULONG _stdcall IMallocSpy_PreAlloc_Proxy(IMallocSpy* This,ULONG cbRequest);
  226. void _stdcall IMallocSpy_PreAlloc_Stub(IRpcStubBuffer *This,
  227.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  228. void*_stdcall IMallocSpy_PostAlloc_Proxy(IMallocSpy* This,void*pActual);
  229. void _stdcall IMallocSpy_PostAlloc_Stub(IRpcStubBuffer *This,
  230.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  231. void*_stdcall IMallocSpy_PreFree_Proxy(IMallocSpy*,void*,BOOL);
  232. void _stdcall IMallocSpy_PreFree_Stub(IRpcStubBuffer *,
  233.  IRpcChannelBuffer *,PRPC_MESSAGE,DWORD *);
  234. void _stdcall IMallocSpy_PostFree_Proxy(IMallocSpy* This,BOOL fSpyed);
  235. void _stdcall IMallocSpy_PostFree_Stub(IRpcStubBuffer *,
  236.  IRpcChannelBuffer *,PRPC_MESSAGE,DWORD *);
  237. ULONG _stdcall IMallocSpy_PreRealloc_Proxy(IMallocSpy* This,
  238.  void*pRequest,ULONG cbRequest, void * * ppNewRequest, BOOL fSpyed);
  239. void _stdcall IMallocSpy_PreRealloc_Stub(IRpcStubBuffer *This,
  240.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  241.  DWORD *_pdwStubPhase);
  242. void*_stdcall IMallocSpy_PostRealloc_Proxy(IMallocSpy* This,
  243.  void*pActual,BOOL fSpyed);
  244. void _stdcall IMallocSpy_PostRealloc_Stub(IRpcStubBuffer *This,
  245.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  246. void*_stdcall IMallocSpy_PreGetSize_Proxy(IMallocSpy* This,void*pRequest, BOOL fSpyed);
  247. void _stdcall IMallocSpy_PreGetSize_Stub(IRpcStubBuffer *This,
  248.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  249. ULONG _stdcall IMallocSpy_PostGetSize_Proxy(IMallocSpy* ,ULONG,BOOL);
  250. void _stdcall IMallocSpy_PostGetSize_Stub(IRpcStubBuffer *This,
  251.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  252.  DWORD *_pdwStubPhase);
  253. void*_stdcall IMallocSpy_PreDidAlloc_Proxy(IMallocSpy* This,void*pRequest, BOOL fSpyed);
  254. void _stdcall IMallocSpy_PreDidAlloc_Stub(IRpcStubBuffer *This,
  255.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  256. int _stdcall IMallocSpy_PostDidAlloc_Proxy(IMallocSpy* This,void*pRequest,
  257.  BOOL fSpyed,int fActual);
  258. void _stdcall IMallocSpy_PostDidAlloc_Stub(IRpcStubBuffer *This,
  259.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  260. void _stdcall IMallocSpy_PreHeapMinimize_Proxy(IMallocSpy* This);
  261. void _stdcall IMallocSpy_PreHeapMinimize_Stub(IRpcStubBuffer *This,
  262.  IRpcChannelBuffer *_pRpcChanelBuffer,PRPC_MESSAGE _pRpcMessage,
  263.  DWORD *_pdwStubPhase);
  264. void _stdcall IMallocSpy_PostHeapMinimize_Proxy(IMallocSpy* This);
  265. void _stdcall IMallocSpy_PostHeapMinimize_Stub(IRpcStubBuffer *This,
  266.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  267.  DWORD *_pdwStubPhase);
  268.  
  269. typedef IStdMarshalInfo*LPSTDMARSHALINFO;
  270. extern const IID IID_IStdMarshalInfo;
  271. typedef struct IStdMarshalInfoVtbl {
  272.  HRESULT (_stdcall*QueryInterface )( IStdMarshalInfo* This,REFIID riid,
  273.  void * * ppvObject);
  274.  ULONG (_stdcall*AddRef )( IStdMarshalInfo* This);
  275.  ULONG (_stdcall*Release )( IStdMarshalInfo* This);
  276.  HRESULT (_stdcall*GetClassForHandler )( IStdMarshalInfo* This,
  277.  DWORD dwDestContext,void*pvDestContext, CLSID*pClsid);
  278. } IStdMarshalInfoVtbl;
  279.  
  280. interface IStdMarshalInfo { struct IStdMarshalInfoVtbl*lpVtbl; };
  281. #define IStdMarshalInfo_QueryInterface(This,riid,ppvObject)    \
  282.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  283. #define IStdMarshalInfo_AddRef(This)    \
  284.  (This)->lpVtbl->AddRef(This)
  285. #define IStdMarshalInfo_Release(This)    \
  286.  (This)->lpVtbl->Release(This)
  287. #define IStdMarshalInfo_GetClassForHandler(This,dwDestContext,pvDestContext,pClsid)    \
  288.  (This)->lpVtbl->GetClassForHandler(This,dwDestContext,pvDestContext,pClsid)
  289. HRESULT _stdcall IStdMarshalInfo_GetClassForHandler_Proxy(IStdMarshalInfo* This,
  290.  DWORD dwDestContext,void*pvDestContext, CLSID*pClsid);
  291. void _stdcall IStdMarshalInfo_GetClassForHandler_Stub(IRpcStubBuffer *This,
  292.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  293.  DWORD *_pdwStubPhase);
  294.  
  295. typedef IExternalConnection*LPEXTERNALCONNECTION;
  296. typedef enum tagEXTCONN {    EXTCONN_STRONG    = 0x1,
  297.     EXTCONN_WEAK    = 0x2,
  298.     EXTCONN_CALLABLE    = 0x4
  299.  }    EXTCONN;
  300. extern const IID IID_IExternalConnection;
  301. typedef struct IExternalConnectionVtbl {
  302.  HRESULT (_stdcall*QueryInterface )( IExternalConnection* This,REFIID riid,
  303.  void* *ppvObject);
  304.  ULONG (_stdcall*AddRef )( IExternalConnection* This);
  305.  ULONG (_stdcall*Release )( IExternalConnection* This);
  306.  DWORD (_stdcall*AddConnection )( IExternalConnection* This,
  307.  DWORD extconn,DWORD reserved);
  308.  DWORD (_stdcall*ReleaseConnection )( IExternalConnection* This,
  309.  DWORD extconn,DWORD reserved, BOOL fLastReleaseCloses);
  310. } IExternalConnectionVtbl;
  311.  
  312. interface IExternalConnection { struct IExternalConnectionVtbl*lpVtbl; };
  313. #define IExternalConnection_QueryInterface(This,riid,ppvObject)    \
  314.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  315. #define IExternalConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
  316. #define IExternalConnection_Release(This) (This)->lpVtbl->Release(This)
  317. #define IExternalConnection_AddConnection(T,e,r) (T)->lpVtbl->AddConnection(T,e,r)
  318. #define IExternalConnection_ReleaseConnection(This,extconn,reserved,fLastReleaseCloses)    \
  319.  (This)->lpVtbl->ReleaseConnection(This,extconn,reserved,fLastReleaseCloses)
  320. DWORD _stdcall IExternalConnection_AddConnection_Proxy(IExternalConnection* This,
  321.  DWORD extconn,DWORD reserved);
  322. void _stdcall IExternalConnection_AddConnection_Stub(IRpcStubBuffer *This,
  323.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  324.  DWORD *_pdwStubPhase);
  325. DWORD _stdcall IExternalConnection_ReleaseConnection_Proxy(IExternalConnection* This,
  326.  DWORD extconn,DWORD reserved, BOOL fLastReleaseCloses);
  327. void _stdcall IExternalConnection_ReleaseConnection_Stub(IRpcStubBuffer *This,
  328.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  329.  DWORD *_pdwStubPhase);
  330.  
  331. typedef IEnumUnknown*LPENUMUNKNOWN;
  332. extern const IID IID_IEnumUnknown;
  333.  
  334. typedef struct IEnumUnknownVtbl { 
  335.  HRESULT (_stdcall*QueryInterface )( IEnumUnknown* This,REFIID riid,
  336.  void* *ppvObject);
  337.  ULONG (_stdcall*AddRef )( IEnumUnknown* This);
  338.  ULONG (_stdcall*Release )( IEnumUnknown* This);
  339.  HRESULT (_stdcall*Next )( IEnumUnknown* This,ULONG celt, IUnknown* *rgelt,
  340.  ULONG*pceltFetched);
  341.  HRESULT (_stdcall*Skip )( IEnumUnknown* This,ULONG celt);
  342.  HRESULT (_stdcall*Reset )( IEnumUnknown* This);
  343.  HRESULT (_stdcall*Clone )( IEnumUnknown* This,
  344.  IEnumUnknown* *ppenum);
  345.  } IEnumUnknownVtbl;
  346.  
  347. interface IEnumUnknown { struct IEnumUnknownVtbl*lpVtbl; };
  348. #define IEnumUnknown_QueryInterface(This,riid,ppvObject)    \
  349.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  350. #define IEnumUnknown_AddRef(This)    \
  351.  (This)->lpVtbl->AddRef(This)
  352. #define IEnumUnknown_Release(This)    \
  353.  (This)->lpVtbl->Release(This)
  354. #define IEnumUnknown_Next(This,celt,rgelt,pceltFetched)    \
  355.  (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
  356. #define IEnumUnknown_Skip(This,celt)    \
  357.  (This)->lpVtbl->Skip(This,celt)
  358. #define IEnumUnknown_Reset(This)    \
  359.  (This)->lpVtbl->Reset(This)
  360. #define IEnumUnknown_Clone(This,ppenum)    \
  361.  (This)->lpVtbl->Clone(This,ppenum)
  362.  
  363.  
  364. HRESULT _stdcall IEnumUnknown_RemoteNext_Proxy(IEnumUnknown* This,
  365.  ULONG celt,IUnknown* *rgelt, ULONG*pceltFetched);
  366. void _stdcall IEnumUnknown_RemoteNext_Stub(IRpcStubBuffer *This,
  367.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  368.  DWORD *_pdwStubPhase);
  369.  HRESULT _stdcall IEnumUnknown_Skip_Proxy(IEnumUnknown* This,ULONG celt);
  370. void _stdcall IEnumUnknown_Skip_Stub(IRpcStubBuffer *This,
  371.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  372.  DWORD *_pdwStubPhase);
  373. HRESULT _stdcall IEnumUnknown_Reset_Proxy(IEnumUnknown* This);
  374. void _stdcall IEnumUnknown_Reset_Stub(IRpcStubBuffer *This,
  375.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  376.  DWORD *_pdwStubPhase);
  377. HRESULT _stdcall IEnumUnknown_Clone_Proxy(IEnumUnknown*,IEnumUnknown * *);
  378. void _stdcall IEnumUnknown_Clone_Stub(IRpcStubBuffer *This,
  379.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  380.  DWORD *_pdwStubPhase);
  381.  
  382.  
  383. typedef IBindCtx*LPBC;
  384.  
  385. typedef IBindCtx*LPBINDCTX;
  386. typedef struct tagBIND_OPTS {
  387.  DWORD cbStruct;
  388.  DWORD grfFlags;
  389.  DWORD grfMode;
  390.  DWORD dwTickCountDeadline;
  391.  }    BIND_OPTS;
  392. typedef struct tagBIND_OPTS*LPBIND_OPTS;
  393. typedef enum tagBIND_FLAGS
  394.  {    BIND_MAYBOTHERUSER    = 1,
  395.     BIND_JUSTTESTEXISTENCE    = 2
  396.  }    BIND_FLAGS;
  397. extern const IID IID_IBindCtx;
  398. typedef struct IBindCtxVtbl {
  399.  HRESULT (_stdcall*QueryInterface )( IBindCtx* This,REFIID riid, void * * ppvObject);
  400.  ULONG (_stdcall*AddRef )( IBindCtx* This);
  401.  ULONG (_stdcall*Release )( IBindCtx* This);
  402.  HRESULT (_stdcall*RegisterObjectBound )( IBindCtx* This,IUnknown*punk);
  403.  HRESULT (_stdcall*RevokeObjectBound )( IBindCtx* This,IUnknown*punk);
  404.  HRESULT (_stdcall*ReleaseBoundObjects )( IBindCtx* This);
  405.  HRESULT (_stdcall*SetBindOptions )( IBindCtx* This,BIND_OPTS*pbindopts);
  406.  HRESULT (_stdcall*GetBindOptions )( IBindCtx* This,BIND_OPTS*pbindopts);
  407.  HRESULT (_stdcall*GetRunningObjectTable )( IBindCtx* This,IRunningObjectTable * * pprot);
  408.  HRESULT (_stdcall*RegisterObjectParam )( IBindCtx* This,LPCSTR pszKey, IUnknown*punk);
  409.  HRESULT (_stdcall*GetObjectParam )( IBindCtx* This,LPCSTR pszKey, IUnknown * * ppunk);
  410.  HRESULT (_stdcall*EnumObjectParam )( IBindCtx* This,IEnumString * * ppenum);
  411.  HRESULT (_stdcall*RevokeObjectParam )( IBindCtx* This,LPCSTR pszKey);
  412. } IBindCtxVtbl;
  413.  
  414. interface IBindCtx { struct IBindCtxVtbl*lpVtbl; };
  415.  
  416. #define IBindCtx_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p)
  417. #define IBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This)
  418. #define IBindCtx_Release(This)    (This)->lpVtbl->Release(This)
  419. #define IBindCtx_RegisterObjectBound(T,p) (T)->lpVtbl->RegisterObjectBound(T,p)
  420. #define IBindCtx_RevokeObjectBound(T,p)    (T)->lpVtbl->RevokeObjectBound(T,p)
  421. #define IBindCtx_ReleaseBoundObjects(T) (T)->lpVtbl->ReleaseBoundObjects(T)
  422. #define IBindCtx_SetBindOptions(T,p) (T)->lpVtbl->SetBindOptions(T,p)
  423. #define IBindCtx_GetBindOptions(This,pbindopts)    \
  424.  (This)->lpVtbl->GetBindOptions(This,pbindopts)
  425. #define IBindCtx_GetRunningObjectTable(This,pprot)    \
  426.  (This)->lpVtbl->GetRunningObjectTable(This,pprot)
  427. #define IBindCtx_RegisterObjectParam(This,pszKey,punk)    \
  428.  (This)->lpVtbl->RegisterObjectParam(This,pszKey,punk)
  429. #define IBindCtx_GetObjectParam(This,pszKey,ppunk)    \
  430.  (This)->lpVtbl->GetObjectParam(This,pszKey,ppunk)
  431. #define IBindCtx_EnumObjectParam(This,ppenum)    \
  432.  (This)->lpVtbl->EnumObjectParam(This,ppenum)
  433. #define IBindCtx_RevokeObjectParam(This,pszKey)    \
  434.  (This)->lpVtbl->RevokeObjectParam(This,pszKey)
  435. HRESULT _stdcall IBindCtx_RegisterObjectBound_Proxy(IBindCtx* This,IUnknown*punk);
  436. void _stdcall IBindCtx_RegisterObjectBound_Stub(IRpcStubBuffer *This,
  437.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  438. HRESULT _stdcall IBindCtx_RevokeObjectBound_Proxy(IBindCtx* This,IUnknown*punk);
  439. void _stdcall IBindCtx_RevokeObjectBound_Stub(IRpcStubBuffer *This,
  440.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  441. HRESULT _stdcall IBindCtx_ReleaseBoundObjects_Proxy(IBindCtx* This);
  442. void _stdcall IBindCtx_ReleaseBoundObjects_Stub(IRpcStubBuffer *This,
  443.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  444.  DWORD *_pdwStubPhase);
  445. HRESULT _stdcall IBindCtx_SetBindOptions_Proxy(IBindCtx* This,BIND_OPTS*pbindopts);
  446. void _stdcall IBindCtx_SetBindOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  447.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  448. HRESULT _stdcall IBindCtx_GetBindOptions_Proxy(IBindCtx* This,BIND_OPTS*pbindopts);
  449. void _stdcall IBindCtx_GetBindOptions_Stub(IRpcStubBuffer *,
  450.  IRpcChannelBuffer *,PRPC_MESSAGE,DWORD *);
  451. HRESULT _stdcall IBindCtx_GetRunningObjectTable_Proxy(IBindCtx*,IRunningObjectTable * *);
  452. void _stdcall IBindCtx_GetRunningObjectTable_Stub(IRpcStubBuffer *,
  453.  IRpcChannelBuffer *,PRPC_MESSAGE,DWORD *);
  454. HRESULT _stdcall IBindCtx_RegisterObjectParam_Proxy(IBindCtx* This,
  455.  LPCSTR pszKey,IUnknown*punk);
  456. void _stdcall IBindCtx_RegisterObjectParam_Stub(IRpcStubBuffer *This,
  457.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  458.  DWORD *_pdwStubPhase);
  459. HRESULT _stdcall IBindCtx_GetObjectParam_Proxy(IBindCtx* This,
  460.  LPCSTR pszKey,IUnknown * * ppunk);
  461. void _stdcall IBindCtx_GetObjectParam_Stub(IRpcStubBuffer *This,
  462.  IRpcChannelBuffer *_pRpcChannelBuffer,
  463.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  464. HRESULT _stdcall IBindCtx_EnumObjectParam_Proxy(IBindCtx* This,
  465.  IEnumString * * ppenum);
  466. void _stdcall IBindCtx_EnumObjectParam_Stub(IRpcStubBuffer *This,
  467.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  468.  DWORD *_pdwStubPhase);
  469. HRESULT _stdcall IBindCtx_RevokeObjectParam_Proxy(IBindCtx*,LPCSTR);
  470. void _stdcall IBindCtx_RevokeObjectParam_Stub(IRpcStubBuffer *This,
  471.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  472.  DWORD *_pdwStubPhase);
  473.  
  474. typedef IEnumMoniker*LPENUMMONIKER;
  475. extern const IID IID_IEnumMoniker;
  476. typedef struct IEnumMonikerVtbl { 
  477.  HRESULT (_stdcall*QueryInterface )( IEnumMoniker* ,REFIID ,void * *);
  478.  ULONG (_stdcall*AddRef )( IEnumMoniker* This);
  479.  ULONG (_stdcall*Release )( IEnumMoniker* This);
  480.  HRESULT (_stdcall*Next )( IEnumMoniker* ,ULONG,IMoniker * *, ULONG*);
  481.  HRESULT (_stdcall*Skip )( IEnumMoniker* This,ULONG celt);
  482.  HRESULT (_stdcall*Reset )( IEnumMoniker* This); 
  483.  HRESULT (_stdcall*Clone )( IEnumMoniker* This,IEnumMoniker * * ppenum);
  484. } IEnumMonikerVtbl;
  485. interface IEnumMoniker { struct IEnumMonikerVtbl*lpVtbl; };
  486.  
  487. #define IEnumMoniker_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p)
  488. #define IEnumMoniker_AddRef(This)    \
  489.  (This)->lpVtbl->AddRef(This)
  490. #define IEnumMoniker_Release(This)    \
  491.  (This)->lpVtbl->Release(This)
  492. #define IEnumMoniker_Next(This,celt,rgelt,pceltFetched)    \
  493.  (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
  494. #define IEnumMoniker_Skip(This,celt)    \
  495.  (This)->lpVtbl->Skip(This,celt)
  496. #define IEnumMoniker_Reset(This)    \
  497.  (This)->lpVtbl->Reset(This)
  498. #define IEnumMoniker_Clone(This,ppenum)     (This)->lpVtbl->Clone(This,ppenum)
  499. HRESULT _stdcall IEnumMoniker_RemoteNext_Proxy(IEnumMoniker* This,
  500.  ULONG celt,IMoniker * * rgelt, ULONG*pceltFetched);
  501. void _stdcall IEnumMoniker_RemoteNext_Stub(IRpcStubBuffer *This,
  502.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  503.  DWORD *_pdwStubPhase);
  504. HRESULT _stdcall IEnumMoniker_Skip_Proxy(IEnumMoniker* This,ULONG celt);
  505. void _stdcall IEnumMoniker_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  506.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  507. HRESULT _stdcall IEnumMoniker_Reset_Proxy(IEnumMoniker* This);
  508. void _stdcall IEnumMoniker_Reset_Stub(IRpcStubBuffer *This,
  509.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  510.  DWORD *_pdwStubPhase);
  511. HRESULT _stdcall IEnumMoniker_Clone_Proxy(IEnumMoniker* ,IEnumMoniker * *);
  512. void _stdcall IEnumMoniker_Clone_Stub(IRpcStubBuffer *,IRpcChannelBuffer *,
  513.  PRPC_MESSAGE,DWORD *);
  514.  
  515. typedef IRunnableObject*LPRUNNABLEOBJECT;
  516. extern const IID IID_IRunnableObject;
  517. typedef struct IRunnableObjectVtbl {
  518.  HRESULT (_stdcall*QueryInterface )(IRunnableObject*,REFIID,void * *);
  519.  ULONG (_stdcall*AddRef )( IRunnableObject* This); 
  520.  ULONG (_stdcall*Release )( IRunnableObject* This); 
  521.  HRESULT (_stdcall*GetRunningClass )( IRunnableObject* This,LPCLSID lpClsid);
  522.  HRESULT (_stdcall*Run )( IRunnableObject* This,LPBINDCTX pbc);
  523.  BOOL (_stdcall*IsRunning )( IRunnableObject* This); 
  524.  HRESULT (_stdcall*LockRunning )( IRunnableObject*,BOOL,BOOL);
  525.  HRESULT (_stdcall*SetContainedObject )( IRunnableObject* This,BOOL fContained);
  526. } IRunnableObjectVtbl;
  527.  
  528. interface IRunnableObject { struct IRunnableObjectVtbl*lpVtbl; };
  529.  
  530. #define IRunnableObject_QueryInterface(This,riid,ppvObject)    \
  531.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  532. #define IRunnableObject_AddRef(This)    \
  533.  (This)->lpVtbl->AddRef(This)
  534. #define IRunnableObject_Release(This)    \
  535.  (This)->lpVtbl->Release(This)
  536. #define IRunnableObject_GetRunningClass(This,lpClsid)    \
  537.  (This)->lpVtbl->GetRunningClass(This,lpClsid)
  538. #define IRunnableObject_Run(This,pbc)    \
  539.  (This)->lpVtbl->Run(This,pbc)
  540. #define IRunnableObject_IsRunning(This)    \
  541.  (This)->lpVtbl->IsRunning(This)
  542. #define IRunnableObject_LockRunning(This,fLock,fLastUnlockCloses)    \
  543.  (This)->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses)
  544. #define IRunnableObject_SetContainedObject(This,fContained)    \
  545.  (This)->lpVtbl->SetContainedObject(This,fContained)
  546. HRESULT _stdcall IRunnableObject_GetRunningClass_Proxy(IRunnableObject* This,
  547.  LPCLSID lpClsid);
  548. void _stdcall IRunnableObject_GetRunningClass_Stub(IRpcStubBuffer *This,
  549.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  550.  DWORD *_pdwStubPhase);
  551. HRESULT _stdcall IRunnableObject_Run_Proxy(IRunnableObject* This,
  552.  LPBINDCTX pbc);
  553. void _stdcall IRunnableObject_Run_Stub(IRpcStubBuffer *This,
  554.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  555.  DWORD *_pdwStubPhase);
  556. BOOL _stdcall IRunnableObject_IsRunning_Proxy(IRunnableObject* This);
  557. void _stdcall IRunnableObject_IsRunning_Stub(IRpcStubBuffer *This,
  558.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  559.  DWORD *_pdwStubPhase);
  560. HRESULT _stdcall IRunnableObject_LockRunning_Proxy(IRunnableObject* This,
  561.  BOOL fLock,BOOL fLastUnlockCloses);
  562. void _stdcall IRunnableObject_LockRunning_Stub(IRpcStubBuffer *This,
  563.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  564.  DWORD *_pdwStubPhase);
  565. HRESULT _stdcall IRunnableObject_SetContainedObject_Proxy(IRunnableObject* This,
  566.  BOOL fContained);
  567. void _stdcall IRunnableObject_SetContainedObject_Stub(IRpcStubBuffer *This,
  568.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  569.  DWORD *_pdwStubPhase);
  570.  
  571.  
  572. typedef IRunningObjectTable*LPRUNNINGOBJECTTABLE;
  573. extern const IID IID_IRunningObjectTable;
  574. typedef struct IRunningObjectTableVtbl {
  575.  HRESULT (_stdcall*QueryInterface )( IRunningObjectTable* This,
  576.  REFIID riid,void * * ppvObject);
  577.  ULONG (_stdcall*AddRef )( IRunningObjectTable* This); 
  578.  ULONG (_stdcall*Release )( IRunningObjectTable* This);
  579.  HRESULT (_stdcall*Register)(IRunningObjectTable *,DWORD,IUnknown*,IMoniker *,DWORD *);
  580.  HRESULT (_stdcall*Revoke )( IRunningObjectTable* ,DWORD);
  581.  HRESULT (_stdcall*IsRunning )( IRunningObjectTable*,IMoniker*);
  582.  HRESULT (_stdcall*GetObject )( IRunningObjectTable* This,
  583.  IMoniker*pmkObjectName,IUnknown * * ppunkObject);
  584.  HRESULT (_stdcall*NoteChangeTime )( IRunningObjectTable* This,
  585.  DWORD dwRegister,FILETIME*pfiletime);
  586.  HRESULT (_stdcall*GetTimeOfLastChange )( IRunningObjectTable* This,
  587.  IMoniker*pmkObjectName,FILETIME*pfiletime);
  588.  HRESULT (_stdcall*EnumRunning )( IRunningObjectTable* This,
  589.  IEnumMoniker * * ppenumMoniker);
  590. } IRunningObjectTableVtbl;
  591.  
  592. interface IRunningObjectTable { struct IRunningObjectTableVtbl*lpVtbl; };
  593.  
  594. #define IRunningObjectTable_QueryInterface(This,riid,ppvObject)    \
  595.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  596. #define IRunningObjectTable_AddRef(This) (This)->lpVtbl->AddRef(This)
  597. #define IRunningObjectTable_Release(This) (This)->lpVtbl->Release(This)
  598. #define IRunningObjectTable_Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister)    \
  599.  (This)->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister)
  600. #define IRunningObjectTable_Revoke(This,dwRegister)    \
  601.  (This)->lpVtbl->Revoke(This,dwRegister)
  602. #define IRunningObjectTable_IsRunning(This,pmkObjectName)    \
  603.  (This)->lpVtbl->IsRunning(This,pmkObjectName)
  604. #define IRunningObjectTable_GetObject(This,pmkObjectName,ppunkObject)    \
  605.  (This)->lpVtbl->GetObject(This,pmkObjectName,ppunkObject)
  606. #define IRunningObjectTable_NoteChangeTime(This,dwRegister,pfiletime)    \
  607.  (This)->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime)
  608. #define IRunningObjectTable_GetTimeOfLastChange(This,pmkObjectName,pfiletime)    \
  609.  (This)->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime)
  610. #define IRunningObjectTable_EnumRunning(This,ppenumMoniker)    \
  611.  (This)->lpVtbl->EnumRunning(This,ppenumMoniker)
  612. HRESULT _stdcall IRunningObjectTable_Register_Proxy(IRunningObjectTable* This,
  613.  DWORD grfFlags,IUnknown*punkObject, IMoniker*pmkObjectName, DWORD*pdwRegister);
  614. void _stdcall IRunningObjectTable_Register_Stub(IRpcStubBuffer *,
  615.  IRpcChannelBuffer *,PRPC_MESSAGE, DWORD *);
  616. HRESULT _stdcall IRunningObjectTable_Revoke_Proxy(IRunningObjectTable*,DWORD);
  617. void _stdcall IRunningObjectTable_Revoke_Stub(IRpcStubBuffer *This,
  618.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  619.  DWORD *_pdwStubPhase);
  620. HRESULT _stdcall IRunningObjectTable_IsRunning_Proxy(IRunningObjectTable* This,
  621.  IMoniker*pmkObjectName);
  622. void _stdcall IRunningObjectTable_IsRunning_Stub(IRpcStubBuffer *,
  623.  IRpcChannelBuffer *,PRPC_MESSAGE,DWORD *);
  624. HRESULT _stdcall IRunningObjectTable_GetObject_Proxy(IRunningObjectTable*,IMoniker*,IUnknown * *);
  625. void _stdcall IRunningObjectTable_GetObject_Stub(IRpcStubBuffer *,
  626.  IRpcChannelBuffer *,PRPC_MESSAGE,DWORD *);
  627. HRESULT _stdcall IRunningObjectTable_NoteChangeTime_Proxy(IRunningObjectTable*,
  628.  DWORD,FILETIME *);
  629. void _stdcall IRunningObjectTable_NoteChangeTime_Stub(IRpcStubBuffer *This,
  630.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  631.  DWORD *_pdwStubPhase);
  632. HRESULT _stdcall IRunningObjectTable_GetTimeOfLastChange_Proxy(
  633.  IRunningObjectTable* This,IMoniker*pmkObjectName, FILETIME*pfiletime);
  634. void _stdcall IRunningObjectTable_GetTimeOfLastChange_Stub(IRpcStubBuffer *This,
  635.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  636.  DWORD *_pdwStubPhase);
  637. HRESULT _stdcall IRunningObjectTable_EnumRunning_Proxy(IRunningObjectTable* This,
  638.  IEnumMoniker * * ppenumMoniker);
  639. void _stdcall IRunningObjectTable_EnumRunning_Stub(IRpcStubBuffer *This,
  640.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  641.  
  642.  
  643. typedef IPersist*LPPERSIST;
  644. extern const IID IID_IPersist;
  645.  
  646. typedef struct IPersistVtbl {
  647.  HRESULT (_stdcall*QueryInterface )( IPersist* This,REFIID riid, void * * ppvObject);
  648.  ULONG (_stdcall*AddRef )( IPersist* This); 
  649.  ULONG (_stdcall*Release )( IPersist* This); 
  650.  HRESULT (_stdcall*GetClassID )( IPersist* This,CLSID*pClassID);
  651. } IPersistVtbl;
  652.  
  653. interface IPersist { struct IPersistVtbl*lpVtbl; };
  654. #define IPersist_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p)
  655. #define IPersist_AddRef(This)    (This)->lpVtbl->AddRef(This)
  656. #define IPersist_Release(This)    (This)->lpVtbl->Release(This)
  657. #define IPersist_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
  658. HRESULT _stdcall IPersist_GetClassID_Proxy(IPersist* This,CLSID*pClassID);
  659. void _stdcall IPersist_GetClassID_Stub(IRpcStubBuffer *This,
  660.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  661.  DWORD *_pdwStubPhase);
  662.  
  663. typedef IPersistStream*LPPERSISTSTREAM;
  664. extern const IID IID_IPersistStream;
  665. typedef struct IPersistStreamVtbl {
  666.  HRESULT (_stdcall*QueryInterface )( IPersistStream* This,REFIID riid, void * * ppvObject);
  667.  ULONG (_stdcall*AddRef )( IPersistStream* This);
  668.  ULONG (_stdcall*Release )( IPersistStream* This);
  669.  HRESULT (_stdcall*GetClassID )( IPersistStream* This,CLSID*pClassID);
  670.  HRESULT (_stdcall*IsDirty )( IPersistStream* This);
  671.  HRESULT (_stdcall*Load )( IPersistStream* This,IStream*pStm); 
  672.  HRESULT (_stdcall*Save )( IPersistStream* This,IStream*pStm, BOOL fClearDirty);
  673.  HRESULT (_stdcall*GetSizeMax )( IPersistStream* This,ULARGE_INTEGER*pcbSize);
  674.  } IPersistStreamVtbl;
  675.  
  676. interface IPersistStream { struct IPersistStreamVtbl*lpVtbl; };
  677.  
  678. #define IPersistStream_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p)
  679. #define IPersistStream_AddRef(This)    (This)->lpVtbl->AddRef(This)
  680. #define IPersistStream_Release(This)    (This)->lpVtbl->Release(This)
  681. #define IPersistStream_GetClassID(T,p) (T)->lpVtbl->GetClassID(T,p)
  682. #define IPersistStream_IsDirty(This)    (This)->lpVtbl->IsDirty(This)
  683. #define IPersistStream_Load(This,pStm)    (This)->lpVtbl->Load(This,pStm)
  684. #define IPersistStream_Save(T,p,f) (T)->lpVtbl->Save(T,p,f)
  685. #define IPersistStream_GetSizeMax(T,p) (T)->lpVtbl->GetSizeMax(T,p)
  686.  
  687. HRESULT _stdcall IPersistStream_IsDirty_Proxy(IPersistStream* This);
  688. void _stdcall IPersistStream_IsDirty_Stub(IRpcStubBuffer *This,
  689.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  690.  DWORD *_pdwStubPhase);
  691. HRESULT _stdcall IPersistStream_Load_Proxy(IPersistStream* This,IStream*pStm);
  692. void _stdcall IPersistStream_Load_Stub(IRpcStubBuffer *This,
  693.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  694.  DWORD *_pdwStubPhase);
  695. HRESULT _stdcall IPersistStream_Save_Proxy(IPersistStream* This,
  696.  IStream*pStm,BOOL fClearDirty);
  697. void _stdcall IPersistStream_Save_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  698.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  699. HRESULT _stdcall IPersistStream_GetSizeMax_Proxy(IPersistStream* This,
  700.  ULARGE_INTEGER*pcbSize);
  701. void _stdcall IPersistStream_GetSizeMax_Stub(IRpcStubBuffer *This,
  702.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  703.  DWORD *_pdwStubPhase);
  704.  
  705. typedef IMoniker*LPMONIKER;
  706. typedef enum tagMKSYS
  707.  {    MKSYS_NONE    = 0,
  708.     MKSYS_GENERICCOMPOSITE    = 1,
  709.     MKSYS_FILEMONIKER    = 2,
  710.     MKSYS_ANTIMONIKER    = 3,
  711.     MKSYS_ITEMMONIKER    = 4,
  712.     MKSYS_POINTERMONIKER    = 5
  713.  }    MKSYS;
  714. typedef enum tagMKREDUCE
  715.  {    MKRREDUCE_ONE    = 3 << 16,
  716.     MKRREDUCE_TOUSER    = 2 << 16,
  717.     MKRREDUCE_THROUGHUSER    = 1 << 16,
  718.     MKRREDUCE_ALL    = 0
  719.  }    MKRREDUCE;
  720.  
  721. extern const IID IID_IMoniker;
  722. typedef struct IMonikerVtbl {
  723.  HRESULT (_stdcall*QueryInterface )( IMoniker* This,REFIID riid, void * * ppvObject);
  724.  ULONG (_stdcall*AddRef )( IMoniker* This); 
  725.  ULONG (_stdcall*Release )( IMoniker* This);
  726.  HRESULT (_stdcall*GetClassID )( IMoniker* This,CLSID*pClassID);
  727.  HRESULT (_stdcall*IsDirty )( IMoniker* This); 
  728.  HRESULT (_stdcall*Load )( IMoniker* This,IStream*pStm);
  729.  HRESULT (_stdcall*Save )( IMoniker* This,IStream*pStm, BOOL fClearDirty);
  730.  HRESULT (_stdcall*GetSizeMax )( IMoniker* This,ULARGE_INTEGER*pcbSize);
  731.  HRESULT (_stdcall*BindToObject )( IMoniker* This,IBindCtx*pbc,
  732.  IMoniker*pmkToLeft,REFIID riidResult, void * * ppvResult);
  733.  HRESULT (_stdcall*BindToStorage )( IMoniker* This,IBindCtx*pbc,
  734.  IMoniker*pmkToLeft,REFIID riid, void * * ppvObj);
  735.  HRESULT (_stdcall*Reduce )( IMoniker* This,IBindCtx*pbc, DWORD dwReduceHowFar,
  736.  IMoniker * * ppmkToLeft,IMoniker * * ppmkReduced);
  737.  HRESULT (_stdcall*ComposeWith )( IMoniker* This,IMoniker*pmkRight,
  738.  BOOL fOnlyIfNotGeneric,IMoniker * * ppmkComposite);
  739.  HRESULT (_stdcall*Enum )( IMoniker* This,BOOL fForward, IEnumMoniker * * ppenumMoniker);
  740.  HRESULT (_stdcall*IsEqual )( IMoniker* This,IMoniker*pmkOtherMoniker);
  741.  HRESULT (_stdcall*Hash )( IMoniker* This,DWORD*pdwHash);
  742.  HRESULT (_stdcall*IsRunning )( IMoniker* This,IBindCtx*pbc, IMoniker*pmkToLeft,
  743.  IMoniker*pmkNewlyRunning);
  744.  HRESULT (_stdcall*GetTimeOfLastChange )( IMoniker* This,IBindCtx*pbc,
  745.  IMoniker*pmkToLeft,FILETIME*pFileTime);
  746.  HRESULT (_stdcall*Inverse )( IMoniker* This,IMoniker * * ppmk);
  747.  HRESULT (_stdcall*CommonPrefixWith )( IMoniker* This,IMoniker*pmkOther,
  748.  IMoniker * * ppmkPrefix);
  749.  HRESULT (_stdcall*RelativePathTo )( IMoniker* This,IMoniker*pmkOther,
  750.  IMoniker * * ppmkRelPath);
  751.  HRESULT (_stdcall*GetDisplayName )( IMoniker* This,IBindCtx*pbc,
  752.  IMoniker*pmkToLeft,LPCSTR*ppszDisplayName);
  753.  HRESULT (_stdcall*ParseDisplayName )( IMoniker* This,IBindCtx*pbc,
  754.  IMoniker*pmkToLeft,LPCSTR pszDisplayName, ULONG*pchEaten, IMoniker * * ppmkOut);
  755.  HRESULT (_stdcall*IsSystemMoniker )( IMoniker* This,DWORD*pdwMksys);
  756. } IMonikerVtbl;
  757.  
  758. interface IMoniker { struct IMonikerVtbl*lpVtbl; };
  759.  
  760. #define IMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  761. #define IMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
  762. #define IMoniker_Release(This)    (This)->lpVtbl->Release(This)
  763. #define IMoniker_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
  764. #define IMoniker_IsDirty(This)    (This)->lpVtbl->IsDirty(This)
  765. #define IMoniker_Load(This,pStm) (This)->lpVtbl->Load(This,pStm)
  766. #define IMoniker_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty)
  767. #define IMoniker_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize)
  768. #define IMoniker_BindToObject(T,p,pm,r,pp) (T)->lpVtbl->BindToObject(T,p,pm,r,pp)
  769. #define IMoniker_BindToStorage(This,pbc,pmkToLeft,riid,ppvObj)    \
  770.  (This)->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj)
  771. #define IMoniker_Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced)    \
  772.  (This)->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced)
  773. #define IMoniker_ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite)    \
  774.  (This)->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite)
  775. #define IMoniker_Enum(T,f,pp) (T)->lpVtbl->Enum(T,f,pp)
  776. #define IMoniker_IsEqual(This,p) (This)->lpVtbl->IsEqual(This,p)
  777. #define IMoniker_Hash(This,pdwHash) (This)->lpVtbl->Hash(This,pdwHash)
  778. #define IMoniker_IsRunning(T,pbc,Left,N) (T)->lpVtbl->IsRunning(T,pbc,Left,N)
  779. #define IMoniker_GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime)    \
  780.  (This)->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime)
  781. #define IMoniker_Inverse(This,ppmk) (This)->lpVtbl->Inverse(This,ppmk)
  782. #define IMoniker_CommonPrefixWith(This,pmkOther,ppmkPrefix)    \
  783.  (This)->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix)
  784. #define IMoniker_RelativePathTo(This,pmkOther,ppmkRelPath)    \
  785.  (This)->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath)
  786. #define IMoniker_GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName)    \
  787.  (This)->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName)
  788. #define IMoniker_ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut)    \
  789.  (This)->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut)
  790. #define IMoniker_IsSystemMoniker(This,pdwMksys)    \
  791.  (This)->lpVtbl->IsSystemMoniker(This,pdwMksys)
  792. HRESULT _stdcall IMoniker_RemoteBindToObject_Proxy(IMoniker* This,IBindCtx*pbc,
  793.  IMoniker*pmkToLeft,REFIID riidResult, IUnknown * * ppvResult);
  794. void _stdcall IMoniker_RemoteBindToObject_Stub(IRpcStubBuffer *This,
  795.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  796. HRESULT _stdcall IMoniker_RemoteBindToStorage_Proxy(IMoniker* This,IBindCtx*pbc,
  797.  IMoniker*pmkToLeft,REFIID riid, IUnknown * * ppvObj);
  798. void _stdcall IMoniker_RemoteBindToStorage_Stub(IRpcStubBuffer *This,
  799.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  800. HRESULT _stdcall IMoniker_Reduce_Proxy(IMoniker* This,IBindCtx*pbc,
  801.  DWORD dwReduceHowFar,IMoniker * * ppmkToLeft,IMoniker * * ppmkReduced);
  802. void _stdcall IMoniker_Reduce_Stub(IRpcStubBuffer *This,
  803.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  804. HRESULT _stdcall IMoniker_ComposeWith_Proxy(IMoniker* This,IMoniker*pmkRight,
  805.  BOOL fOnlyIfNotGeneric,IMoniker * * ppmkComposite);
  806. void _stdcall IMoniker_ComposeWith_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  807.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  808. HRESULT _stdcall IMoniker_Enum_Proxy(IMoniker* This,
  809.  BOOL fForward,IEnumMoniker * * ppenumMoniker);
  810. void _stdcall IMoniker_Enum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  811.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  812. HRESULT _stdcall IMoniker_IsEqual_Proxy(IMoniker* This,IMoniker*pmkOtherMoniker);
  813. void _stdcall IMoniker_IsEqual_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  814.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  815. HRESULT _stdcall IMoniker_Hash_Proxy(IMoniker* This,DWORD*pdwHash);
  816. void _stdcall IMoniker_Hash_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  817.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  818. HRESULT _stdcall IMoniker_IsRunning_Proxy(IMoniker* This,IBindCtx*pbc,
  819.  IMoniker*pmkToLeft,IMoniker*pmkNewlyRunning);
  820. void _stdcall IMoniker_IsRunning_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  821.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  822. HRESULT _stdcall IMoniker_GetTimeOfLastChange_Proxy(IMoniker* This,
  823.  IBindCtx*pbc,IMoniker*pmkToLeft, FILETIME*pFileTime);
  824. void _stdcall IMoniker_GetTimeOfLastChange_Stub(IRpcStubBuffer *This,
  825.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  826.  DWORD *_pdwStubPhase);
  827. HRESULT _stdcall IMoniker_Inverse_Proxy(IMoniker* This,IMoniker * * ppmk);
  828. void _stdcall IMoniker_Inverse_Stub(IRpcStubBuffer *This,
  829.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  830.  DWORD *_pdwStubPhase);
  831. HRESULT _stdcall IMoniker_CommonPrefixWith_Proxy(IMoniker* This,
  832.  IMoniker*pmkOther,IMoniker * * ppmkPrefix);
  833. void _stdcall IMoniker_CommonPrefixWith_Stub(IRpcStubBuffer *This,
  834.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  835.  DWORD *_pdwStubPhase);
  836. HRESULT _stdcall IMoniker_RelativePathTo_Proxy(IMoniker* This,
  837.  IMoniker*pmkOther,IMoniker * * ppmkRelPath);
  838. void _stdcall IMoniker_RelativePathTo_Stub(IRpcStubBuffer *This,
  839.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  840.  DWORD *_pdwStubPhase);
  841. HRESULT _stdcall IMoniker_GetDisplayName_Proxy(IMoniker* This,
  842.  IBindCtx*pbc,IMoniker*pmkToLeft, LPCSTR*ppszDisplayName);
  843. void _stdcall IMoniker_GetDisplayName_Stub(IRpcStubBuffer *This,
  844.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  845.  DWORD *_pdwStubPhase);
  846. HRESULT _stdcall IMoniker_ParseDisplayName_Proxy(IMoniker* This,
  847.  IBindCtx*pbc,IMoniker*pmkToLeft, LPCSTR pszDisplayName,
  848.  ULONG*pchEaten,IMoniker * * ppmkOut);
  849. void _stdcall IMoniker_ParseDisplayName_Stub(IRpcStubBuffer *This,
  850.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  851.  DWORD *_pdwStubPhase);
  852. HRESULT _stdcall IMoniker_IsSystemMoniker_Proxy(IMoniker* This,
  853.  DWORD*pdwMksys);
  854. void _stdcall IMoniker_IsSystemMoniker_Stub(IRpcStubBuffer *This,
  855.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  856.  DWORD *_pdwStubPhase);
  857.  
  858.  
  859. extern const IID IID_IROTData;
  860. typedef struct IROTDataVtbl {
  861.  HRESULT (_stdcall*QueryInterface )( IROTData* This,REFIID riid, void * * ppvObject);
  862.  ULONG (_stdcall*AddRef )( IROTData* This); 
  863.  ULONG (_stdcall*Release )( IROTData* This);
  864.  HRESULT (_stdcall*GetComparisonData )( IROTData* This,BYTE *pbData,
  865.  ULONG cbMax,ULONG*pcbData);
  866. } IROTDataVtbl;
  867.  
  868. interface IROTData { struct IROTDataVtbl*lpVtbl; };
  869.  
  870. #define IROTData_QueryInterface(This,riid,ppvObject)    \
  871.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  872. #define IROTData_AddRef(This)    \
  873.  (This)->lpVtbl->AddRef(This)
  874. #define IROTData_Release(This)    \
  875.  (This)->lpVtbl->Release(This)
  876. #define IROTData_GetComparisonData(This,pbData,cbMax,pcbData)    \
  877.  (This)->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData)
  878.  
  879. HRESULT _stdcall IROTData_GetComparisonData_Proxy(IROTData* This,
  880.  BYTE *pbData,ULONG cbMax, ULONG*pcbData);
  881. void _stdcall IROTData_GetComparisonData_Stub(IRpcStubBuffer *This,
  882.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  883.  DWORD *_pdwStubPhase);
  884.  
  885.  
  886. typedef IEnumString*LPENUMSTRING;
  887. extern const IID IID_IEnumString;
  888. typedef struct IEnumStringVtbl {
  889.  HRESULT (_stdcall*QueryInterface )( IEnumString* This,REFIID riid, void * * ppvObject); 
  890.  ULONG (_stdcall*AddRef )( IEnumString* This);
  891.  ULONG (_stdcall*Release )( IEnumString* This);
  892.  HRESULT (_stdcall*Next )( IEnumString* This,ULONG celt, LPCSTR*rgelt, ULONG*pceltFetched);
  893.  HRESULT (_stdcall*Skip )( IEnumString* This,ULONG celt);
  894.  HRESULT (_stdcall*Reset )( IEnumString* This);
  895.  HRESULT (_stdcall*Clone )( IEnumString* This,IEnumString * * ppenum);
  896. } IEnumStringVtbl;
  897. interface IEnumString { struct IEnumStringVtbl*lpVtbl; };
  898. #define IEnumString_QueryInterface(This,riid,ppvObject)    \
  899.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  900. #define IEnumString_AddRef(This)    \
  901.  (This)->lpVtbl->AddRef(This)
  902. #define IEnumString_Release(This)    \
  903.  (This)->lpVtbl->Release(This)
  904. #define IEnumString_Next(This,celt,rgelt,pceltFetched)    \
  905.  (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
  906. #define IEnumString_Skip(This,celt)    \
  907.  (This)->lpVtbl->Skip(This,celt)
  908. #define IEnumString_Reset(This)    \
  909.  (This)->lpVtbl->Reset(This)
  910. #define IEnumString_Clone(This,ppenum)    \
  911.  (This)->lpVtbl->Clone(This,ppenum)
  912.  
  913. HRESULT _stdcall IEnumString_RemoteNext_Proxy(IEnumString* This,ULONG celt,
  914.  LPCSTR*rgelt,ULONG*pceltFetched);
  915. void _stdcall IEnumString_RemoteNext_Stub(IRpcStubBuffer *This,
  916.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  917.  DWORD *_pdwStubPhase);
  918. HRESULT _stdcall IEnumString_Skip_Proxy(IEnumString* This,ULONG celt);
  919. void _stdcall IEnumString_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  920.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  921. HRESULT _stdcall IEnumString_Reset_Proxy(IEnumString* This);
  922. void _stdcall IEnumString_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  923.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  924. HRESULT _stdcall IEnumString_Clone_Proxy(IEnumString* This,IEnumString * * ppenum);
  925. void _stdcall IEnumString_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  926.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  927.  
  928.  
  929. typedef IStream*LPSTREAM;
  930. typedef struct tagSTATSTG {
  931.  LPCSTR pwcsName;
  932.  DWORD type;
  933.  ULARGE_INTEGER cbSize;
  934.  FILETIME mtime;
  935.  FILETIME ctime;
  936.  FILETIME atime;
  937.  DWORD grfMode;
  938.  DWORD grfLocksSupported;
  939.  CLSID clsid;
  940.  DWORD grfStateBits;
  941.  DWORD reserved;
  942. }    STATSTG;
  943. typedef enum tagSTGTY {
  944.     STGTY_STORAGE    = 1,
  945.     STGTY_STREAM    = 2,
  946.     STGTY_LOCKBYTES    = 3,
  947.     STGTY_PROPERTY    = 4
  948. }    STGTY;
  949. typedef enum tagSTREAM_SEEK
  950.  {    STREAM_SEEK_SET    = 0,
  951.     STREAM_SEEK_CUR    = 1,
  952.     STREAM_SEEK_END    = 2
  953.  }    STREAM_SEEK;
  954.  
  955. typedef enum tagLOCKTYPE
  956.  {    LOCK_WRITE    = 1,
  957.     LOCK_EXCLUSIVE    = 2,
  958.     LOCK_ONLYONCE    = 4
  959.  }    LOCKTYPE;
  960. extern const IID IID_IStream;
  961. typedef struct IStreamVtbl {
  962.  HRESULT (_stdcall*QueryInterface )( IStream* This,REFIID riid, void * * ppvObject);
  963.  ULONG (_stdcall*AddRef )( IStream* This); 
  964.  ULONG (_stdcall*Release )( IStream* This);
  965.  HRESULT (_stdcall*Read )( IStream* This,void*pv, ULONG cb, ULONG*pcbRead);
  966.  HRESULT (_stdcall*Write )( IStream* This,void*pv, ULONG cb, ULONG*pcbWritten);
  967.  HRESULT (_stdcall*Seek )( IStream*,LARGE_INTEGER,DWORD,ULARGE_INTEGER*);
  968.  HRESULT (_stdcall*SetSize )( IStream* This,ULARGE_INTEGER libNewSize);
  969.  HRESULT (_stdcall*CopyTo )( IStream*,IStream*,ULARGE_INTEGER,ULARGE_INTEGER*,ULARGE_INTEGER*);
  970.  HRESULT (_stdcall*Commit )( IStream* This,DWORD grfCommitFlags);
  971.  HRESULT (_stdcall*Revert )( IStream* This);
  972.  HRESULT (_stdcall*LockRegion )( IStream* This,ULARGE_INTEGER libOffset,
  973.  ULARGE_INTEGER cb,DWORD dwLockType);
  974.  HRESULT (_stdcall*UnlockRegion )( IStream* This,ULARGE_INTEGER libOffset,
  975.  ULARGE_INTEGER cb,DWORD dwLockType);
  976.  HRESULT (_stdcall*Stat )( IStream* This,STATSTG*pstatstg, DWORD grfStatFlag);
  977.  HRESULT (_stdcall*Clone )( IStream* This,IStream * * ppstm);
  978. } IStreamVtbl;
  979.  
  980. interface IStream { struct IStreamVtbl*lpVtbl; };
  981. #define IStream_QueryInterface(This,riid,ppvObject)    \
  982.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  983. #define IStream_AddRef(This)    \
  984.  (This)->lpVtbl->AddRef(This)
  985. #define IStream_Release(This)    \
  986.  (This)->lpVtbl->Release(This)
  987. #define IStream_Read(This,pv,cb,pcbRead)    \
  988.  (This)->lpVtbl->Read(This,pv,cb,pcbRead)
  989. #define IStream_Write(This,pv,cb,pcbWritten)    \
  990.  (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
  991. #define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition)    \
  992.  (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
  993. #define IStream_SetSize(This,libNewSize)    \
  994.  (This)->lpVtbl->SetSize(This,libNewSize)
  995. #define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten)    \
  996.  (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
  997. #define IStream_Commit(This,grfCommitFlags)    \
  998.  (This)->lpVtbl->Commit(This,grfCommitFlags)
  999. #define IStream_Revert(This)    \
  1000.  (This)->lpVtbl->Revert(This)
  1001. #define IStream_LockRegion(This,libOffset,cb,dwLockType)    \
  1002.  (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
  1003. #define IStream_UnlockRegion(This,libOffset,cb,dwLockType)    \
  1004.  (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
  1005. #define IStream_Stat(This,pstatstg,grfStatFlag)    \
  1006.  (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
  1007. #define IStream_Clone(This,ppstm)    \
  1008.  (This)->lpVtbl->Clone(This,ppstm)
  1009. HRESULT _stdcall IStream_RemoteRead_Proxy(IStream* This,BYTE*pv,
  1010.  ULONG cb,ULONG*pcbRead);
  1011. void _stdcall IStream_RemoteRead_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1012.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1013. HRESULT _stdcall IStream_RemoteWrite_Proxy(IStream* This,BYTE *pv,
  1014.  ULONG cb,ULONG*pcbWritten);
  1015. void _stdcall IStream_RemoteWrite_Stub(IRpcStubBuffer *This,
  1016.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1017.  DWORD *_pdwStubPhase);
  1018. HRESULT _stdcall IStream_RemoteSeek_Proxy(IStream* This,LARGE_INTEGER dlibMove,
  1019.  DWORD dwOrigin,ULARGE_INTEGER*plibNewPosition);
  1020. void _stdcall IStream_RemoteSeek_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1021.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1022. HRESULT _stdcall IStream_SetSize_Proxy(IStream* This,ULARGE_INTEGER libNewSize);
  1023. void _stdcall IStream_SetSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1024.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1025. HRESULT _stdcall IStream_RemoteCopyTo_Proxy(IStream* This,IStream*pstm,
  1026.  ULARGE_INTEGER cb,ULARGE_INTEGER*pcbRead, ULARGE_INTEGER*pcbWritten);
  1027. void _stdcall IStream_RemoteCopyTo_Stub(IRpcStubBuffer *This,
  1028.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1029.  DWORD *_pdwStubPhase);
  1030. HRESULT _stdcall IStream_Commit_Proxy(IStream* This,DWORD grfCommitFlags);
  1031. void _stdcall IStream_Commit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1032.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1033. HRESULT _stdcall IStream_Revert_Proxy(IStream* This);
  1034. void _stdcall IStream_Revert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1035.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1036. HRESULT _stdcall IStream_LockRegion_Proxy(IStream* This,ULARGE_INTEGER libOffset,
  1037.  ULARGE_INTEGER cb,DWORD dwLockType);
  1038. void _stdcall IStream_LockRegion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1039.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1040. HRESULT _stdcall IStream_UnlockRegion_Proxy(IStream* This,
  1041.  ULARGE_INTEGER libOffset,ULARGE_INTEGER cb, DWORD dwLockType);
  1042. void _stdcall IStream_UnlockRegion_Stub(IRpcStubBuffer *This,
  1043.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  1044. HRESULT _stdcall IStream_Stat_Proxy(IStream* This,STATSTG*pstatstg,
  1045.  DWORD grfStatFlag);
  1046. void _stdcall IStream_Stat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1047.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1048. HRESULT _stdcall IStream_Clone_Proxy(IStream* This,IStream * * ppstm);
  1049. void _stdcall IStream_Clone_Stub(IRpcStubBuffer *This,
  1050.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1051.  DWORD *_pdwStubPhase);
  1052.  
  1053.  
  1054. typedef IEnumSTATSTG*LPENUMSTATSTG;
  1055. extern const IID IID_IEnumSTATSTG;
  1056.  
  1057. typedef struct IEnumSTATSTGVtbl {
  1058.  HRESULT (_stdcall*QueryInterface )( IEnumSTATSTG* This,REFIID riid,
  1059.  void * * ppvObject);
  1060.  ULONG (_stdcall*AddRef )( IEnumSTATSTG* This); 
  1061.  ULONG (_stdcall*Release )( IEnumSTATSTG* This); 
  1062.  HRESULT (_stdcall*Next )( IEnumSTATSTG* This,ULONG celt, STATSTG*rgelt,
  1063.  ULONG*pceltFetched);
  1064.  HRESULT (_stdcall*Skip )( IEnumSTATSTG* This,ULONG celt);
  1065.  HRESULT (_stdcall*Reset )( IEnumSTATSTG* This);
  1066.  HRESULT (_stdcall*Clone )( IEnumSTATSTG* This,IEnumSTATSTG * * ppenum);
  1067. } IEnumSTATSTGVtbl;
  1068.  
  1069. interface IEnumSTATSTG { struct IEnumSTATSTGVtbl*lpVtbl; };
  1070. #define IEnumSTATSTG_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p)
  1071. #define IEnumSTATSTG_AddRef(This) (This)->lpVtbl->AddRef(This)
  1072. #define IEnumSTATSTG_Release(This) (This)->lpVtbl->Release(This)
  1073. #define IEnumSTATSTG_Next(T,c,r,p) (T)->lpVtbl->Next(T,c,r,p)
  1074. #define IEnumSTATSTG_Skip(This,celt)    (This)->lpVtbl->Skip(This,celt)
  1075. #define IEnumSTATSTG_Reset(This) (This)->lpVtbl->Reset(This)
  1076. #define IEnumSTATSTG_Clone(This,ppenum)     (This)->lpVtbl->Clone(This,ppenum)
  1077.  
  1078. HRESULT _stdcall IEnumSTATSTG_RemoteNext_Proxy(IEnumSTATSTG* This,
  1079.  ULONG celt,STATSTG*rgelt,ULONG*pceltFetched);
  1080. void _stdcall IEnumSTATSTG_RemoteNext_Stub(IRpcStubBuffer *This,
  1081.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1082.  DWORD *_pdwStubPhase);
  1083. HRESULT _stdcall IEnumSTATSTG_Skip_Proxy(IEnumSTATSTG* This,ULONG celt);
  1084. void _stdcall IEnumSTATSTG_Skip_Stub(IRpcStubBuffer *This,
  1085.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1086.  DWORD *_pdwStubPhase);
  1087. HRESULT _stdcall IEnumSTATSTG_Reset_Proxy(IEnumSTATSTG* This);
  1088. void _stdcall IEnumSTATSTG_Reset_Stub(IRpcStubBuffer *This,
  1089.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1090.  DWORD *_pdwStubPhase);
  1091. HRESULT _stdcall IEnumSTATSTG_Clone_Proxy(IEnumSTATSTG* ,IEnumSTATSTG * *);
  1092. void _stdcall IEnumSTATSTG_Clone_Stub(IRpcStubBuffer *This,
  1093.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1094.  DWORD *_pdwStubPhase);
  1095.  
  1096. typedef IStorage*LPSTORAGE;
  1097.  
  1098. typedef struct tagRemSNB
  1099.  {
  1100.  unsigned long ulCntStr;
  1101.  unsigned long ulCntChar;
  1102.  OLECHAR rgString[ 1 ];
  1103.  }    RemSNB;
  1104. typedef OLECHAR * * SNB;
  1105. extern const IID IID_IStorage;
  1106.  
  1107. typedef struct IStorageVtbl {
  1108.  HRESULT(_stdcall*QueryInterface)(IStorage* This,REFIID riid, void * * ppvObject);
  1109.  ULONG (_stdcall*AddRef )( IStorage* This); 
  1110.  ULONG (_stdcall*Release )( IStorage* This);
  1111.  HRESULT (_stdcall*CreateStream )( IStorage* This,OLECHAR*pwcsName,
  1112.  DWORD grfMode,DWORD reserved1, DWORD reserved2, IStream * * ppstm);
  1113.  HRESULT (_stdcall*OpenStream )( IStorage* This,OLECHAR*pwcsName,
  1114.  void*reserved1,DWORD grfMode, DWORD reserved2, IStream * * ppstm);
  1115.  HRESULT (_stdcall*CreateStorage )( IStorage* This,const OLECHAR*pwcsName,
  1116.  DWORD grfMode,DWORD dwStgFmt, DWORD reserved2, IStorage * * ppstg);
  1117.  HRESULT (_stdcall*OpenStorage )( IStorage* This,OLECHAR*pwcsName,
  1118.  IStorage*pstgPriority,DWORD grfMode, SNB snbExclude, DWORD reserved,
  1119.  IStorage * * ppstg);
  1120.  HRESULT (_stdcall*CopyTo )( IStorage* This,DWORD ciidExclude, IID*rgiidExclude,
  1121.  SNB snbExclude,IStorage*pstgDest);
  1122.  HRESULT (_stdcall*MoveElementTo )( IStorage* This,OLECHAR*pwcsName,
  1123.  IStorage*pstgDest,OLECHAR*pwcsNewName,DWORD grfFlags);
  1124.  HRESULT (_stdcall*Commit )( IStorage* This,DWORD grfCommitFlags);
  1125.  HRESULT (_stdcall*Revert )( IStorage* This);
  1126.  HRESULT (_stdcall*EnumElements )( IStorage* This,DWORD reserved1, void*reserved2,
  1127.  DWORD reserved3,IEnumSTATSTG * * ppenum);
  1128.  HRESULT (_stdcall*DestroyElement )( IStorage* This,OLECHAR*pwcsName);
  1129.  HRESULT (_stdcall*RenameElement )( IStorage* This,OLECHAR*pwcsOldName,
  1130.  OLECHAR*pwcsNewName);
  1131.  HRESULT (_stdcall*SetElementTimes )( IStorage* This,const OLECHAR*pwcsName,
  1132.  const FILETIME*pctime,const FILETIME*patime, const FILETIME*pmtime);
  1133.  HRESULT (_stdcall*SetClass )( IStorage* This,REFCLSID clsid);
  1134.  HRESULT (_stdcall*SetStateBits )( IStorage* This,DWORD grfStateBits,
  1135.  DWORD grfMask);
  1136.  HRESULT (_stdcall*Stat )( IStorage* This,STATSTG*pstatstg, DWORD grfStatFlag);
  1137. } IStorageVtbl;
  1138.  
  1139. interface IStorage { struct IStorageVtbl*lpVtbl; };
  1140.  
  1141. #define IStorage_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p)
  1142. #define IStorage_AddRef(This)     (This)->lpVtbl->AddRef(This)
  1143. #define IStorage_Release(This)     (This)->lpVtbl->Release(This)
  1144. #define IStorage_CreateStream(T,p,g,r1,r2,pp) (T)->lpVtbl->CreateStream(T,p,g,r1,r2,pp)
  1145. #define IStorage_OpenStream(T,p,r1,g,r2,pp) (T)->lpVtbl->OpenStream(T,p,r1,g,r2,pp)
  1146. #define IStorage_CreateStorage(T,p,g,d,r2,pp) (This)->lpVtbl->CreateStorage(T,p,g,d,r2,pp)
  1147. #define IStorage_OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg)    \
  1148.  (This)->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg)
  1149. #define IStorage_CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest)    \
  1150.  (This)->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest)
  1151. #define IStorage_MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags)    \
  1152.  (This)->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags)
  1153. #define IStorage_Commit(This,g) (This)->lpVtbl->Commit(This,g)
  1154. #define IStorage_Revert(This) (This)->lpVtbl->Revert(This)
  1155. #define IStorage_EnumElements(This,reserved1,reserved2,reserved3,ppenum)    \
  1156.  (This)->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum)
  1157. #define IStorage_DestroyElement(This,pwcsName)    \
  1158.  (This)->lpVtbl->DestroyElement(This,pwcsName)
  1159. #define IStorage_RenameElement(This,pwcsOldName,pwcsNewName)    \
  1160.  (This)->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName)
  1161. #define IStorage_SetElementTimes(This,pwcsName,pctime,patime,pmtime)    \
  1162.  (This)->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime)
  1163. #define IStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid)
  1164. #define IStorage_SetStateBits(This,grfStateBits,grfMask)    \
  1165.  (This)->lpVtbl->SetStateBits(This,grfStateBits,grfMask)
  1166. #define IStorage_Stat(This,p,g) (This)->lpVtbl->Stat(This,p,g)
  1167.  
  1168. HRESULT _stdcall IStorage_CreateStream_Proxy(IStorage* This,OLECHAR*pwcsName,
  1169.  DWORD grfMode,DWORD reserved1, DWORD reserved2, IStream * * ppstm);
  1170. void _stdcall IStorage_CreateStream_Stub(IRpcStubBuffer *This,
  1171.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1172.  DWORD *_pdwStubPhase);
  1173. HRESULT _stdcall IStorage_RemoteOpenStream_Proxy(IStorage* This,
  1174.  const OLECHAR*pwcsName,unsigned long cbReserved1, BYTE *reserved1,
  1175.  DWORD grfMode,DWORD reserved2, IStream * * ppstm);
  1176. void _stdcall IStorage_RemoteOpenStream_Stub(IRpcStubBuffer *This,
  1177.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1178.  DWORD *_pdwStubPhase);
  1179. HRESULT _stdcall IStorage_CreateStorage_Proxy(IStorage* This,
  1180.  OLECHAR*pwcsName,DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage * * ppstg);
  1181. void _stdcall IStorage_CreateStorage_Stub(IRpcStubBuffer *This,
  1182.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1183. HRESULT _stdcall IStorage_OpenStorage_Proxy(IStorage* This,
  1184.  OLECHAR*pwcsName,IStorage*pstgPriority, DWORD grfMode, SNB snbExclude,
  1185.  DWORD reserved,IStorage * * ppstg);
  1186. void _stdcall IStorage_OpenStorage_Stub(IRpcStubBuffer *This,
  1187.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1188.  DWORD *_pdwStubPhase);
  1189. HRESULT _stdcall IStorage_CopyTo_Proxy(IStorage* This,
  1190.  DWORD ciidExclude,const IID*rgiidExclude, SNB snbExclude, IStorage*pstgDest);
  1191. void _stdcall IStorage_CopyTo_Stub(IRpcStubBuffer *This,
  1192.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1193.  DWORD *_pdwStubPhase);
  1194. HRESULT _stdcall IStorage_MoveElementTo_Proxy(IStorage* This,
  1195.  const OLECHAR*pwcsName,IStorage*pstgDest, const OLECHAR*pwcsNewName,
  1196.  DWORD grfFlags);
  1197. void _stdcall IStorage_MoveElementTo_Stub(IRpcStubBuffer *This,
  1198.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1199.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1200. HRESULT _stdcall IStorage_Commit_Proxy(IStorage* This,DWORD grfCommitFlags);
  1201. void _stdcall IStorage_Commit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1202.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1203. HRESULT _stdcall IStorage_Revert_Proxy(IStorage* This);
  1204. void _stdcall IStorage_Revert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1205.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1206. HRESULT _stdcall IStorage_RemoteEnumElements_Proxy(IStorage* This,DWORD reserved1, unsigned long cbReserved2,
  1207.  BYTE *reserved2,DWORD reserved3, IEnumSTATSTG * * ppenum);
  1208. void _stdcall IStorage_RemoteEnumElements_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1209.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1210. HRESULT _stdcall IStorage_DestroyElement_Proxy(IStorage* This,OLECHAR*pwcsName);
  1211. void _stdcall IStorage_DestroyElement_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1212.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1213. HRESULT _stdcall IStorage_RenameElement_Proxy(IStorage* This,
  1214.  const OLECHAR*pwcsOldName,const OLECHAR*pwcsNewName);
  1215. void _stdcall IStorage_RenameElement_Stub(IRpcStubBuffer *This,
  1216.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1217.  DWORD *_pdwStubPhase);
  1218. HRESULT _stdcall IStorage_SetElementTimes_Proxy(IStorage* This,
  1219.  const OLECHAR*pwcsName,const FILETIME*pctime, const FILETIME*patime,
  1220.  const FILETIME*pmtime);
  1221. void _stdcall IStorage_SetElementTimes_Stub(IRpcStubBuffer *This,
  1222.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1223.  DWORD *_pdwStubPhase);
  1224. HRESULT _stdcall IStorage_SetClass_Proxy(IStorage* This,REFCLSID clsid);
  1225. void _stdcall IStorage_SetClass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1226.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1227. HRESULT _stdcall IStorage_SetStateBits_Proxy(IStorage* This,
  1228.  DWORD grfStateBits,DWORD grfMask);
  1229. void _stdcall IStorage_SetStateBits_Stub(IRpcStubBuffer *This,
  1230.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1231.  DWORD *_pdwStubPhase);
  1232. HRESULT _stdcall IStorage_Stat_Proxy(IStorage* This,
  1233.  STATSTG*pstatstg,DWORD grfStatFlag);
  1234. void _stdcall IStorage_Stat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1235.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1236.  
  1237.  
  1238. typedef IPersistFile*LPPERSISTFILE;
  1239. extern const IID IID_IPersistFile;
  1240. typedef struct IPersistFileVtbl {
  1241.  HRESULT (_stdcall*QueryInterface )( IPersistFile* This,REFIID riid, void * * ppvObject);
  1242.  ULONG (_stdcall*AddRef )( IPersistFile* This); 
  1243.  ULONG (_stdcall*Release )( IPersistFile* This); 
  1244.  HRESULT (_stdcall*GetClassID )( IPersistFile* This,CLSID*pClassID);
  1245.  HRESULT (_stdcall*IsDirty )( IPersistFile* This);
  1246.  HRESULT (_stdcall*Load )( IPersistFile* This,LPCOLESTR pszFileName, DWORD dwMode);
  1247.  HRESULT (_stdcall*Save )( IPersistFile* This,LPCOLESTR pszFileName, BOOL fRemember);
  1248.  HRESULT (_stdcall*SaveCompleted )( IPersistFile* This,LPCOLESTR pszFileName);
  1249.  HRESULT (_stdcall*GetCurFile )( IPersistFile* This,LPCSTR*ppszFileName);
  1250. } IPersistFileVtbl;
  1251.  
  1252. interface IPersistFile { struct IPersistFileVtbl*lpVtbl; };
  1253. #define IPersistFile_QueryInterface(This,riid,ppvObject)    \
  1254.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1255. #define IPersistFile_AddRef(This)    \
  1256.  (This)->lpVtbl->AddRef(This)
  1257. #define IPersistFile_Release(This)    \
  1258.  (This)->lpVtbl->Release(This)
  1259. #define IPersistFile_GetClassID(This,pClassID)    \
  1260.  (This)->lpVtbl->GetClassID(This,pClassID)
  1261. #define IPersistFile_IsDirty(This)    \
  1262.  (This)->lpVtbl->IsDirty(This)
  1263. #define IPersistFile_Load(This,pszFileName,dwMode)    \
  1264.  (This)->lpVtbl->Load(This,pszFileName,dwMode)
  1265.  
  1266. #define IPersistFile_Save(This,pszFileName,fRemember)    \
  1267.  (This)->lpVtbl->Save(This,pszFileName,fRemember)
  1268.  
  1269. #define IPersistFile_SaveCompleted(This,pszFileName)    \
  1270.  (This)->lpVtbl->SaveCompleted(This,pszFileName)
  1271.  
  1272. #define IPersistFile_GetCurFile(This,ppszFileName)    \
  1273.  (This)->lpVtbl->GetCurFile(This,ppszFileName)
  1274.  
  1275. HRESULT _stdcall IPersistFile_IsDirty_Proxy(IPersistFile* This);
  1276. void _stdcall IPersistFile_IsDirty_Stub(IRpcStubBuffer *This,
  1277.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  1278. HRESULT _stdcall IPersistFile_Load_Proxy(IPersistFile* This,LPCOLESTR pszFileName,
  1279.  DWORD dwMode);
  1280. void _stdcall IPersistFile_Load_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1281.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1282. HRESULT _stdcall IPersistFile_Save_Proxy(IPersistFile* This,LPCOLESTR pszFileName,
  1283.  BOOL fRemember);
  1284. void _stdcall IPersistFile_Save_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1285.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1286. HRESULT _stdcall IPersistFile_SaveCompleted_Proxy(IPersistFile* This,
  1287.  LPCOLESTR pszFileName);
  1288. void _stdcall IPersistFile_SaveCompleted_Stub(IRpcStubBuffer *This,
  1289.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1290.  PRPC_MESSAGE _pRpcMessage,
  1291.  DWORD *_pdwStubPhase);
  1292. HRESULT _stdcall IPersistFile_GetCurFile_Proxy(IPersistFile* This,LPCSTR*ppszFileName);
  1293. void _stdcall IPersistFile_GetCurFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,
  1294.  PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  1295. typedef IPersistStorage*LPPERSISTSTORAGE;
  1296. extern const IID IID_IPersistStorage;
  1297.  
  1298. typedef struct IPersistStorageVtbl {
  1299.  HRESULT (_stdcall*QueryInterface )( IPersistStorage* This,REFIID riid,
  1300.  void * * ppvObject);
  1301.  ULONG (_stdcall*AddRef )( IPersistStorage* This);
  1302.  ULONG (_stdcall*Release )( IPersistStorage* This);
  1303.  HRESULT (_stdcall*GetClassID )( IPersistStorage* This,CLSID*pClassID);
  1304.  HRESULT (_stdcall*IsDirty )( IPersistStorage* This);
  1305.  HRESULT (_stdcall*InitNew )( IPersistStorage* This,IStorage*pStg);
  1306.  HRESULT (_stdcall*Load )( IPersistStorage* This,IStorage*pStg);
  1307.  HRESULT (_stdcall*Save )( IPersistStorage* This,IStorage*pStgSave, BOOL fSameAsLoad);
  1308.  HRESULT (_stdcall*SaveCompleted )( IPersistStorage* This,IStorage*pStgNew);
  1309.  HRESULT (_stdcall*HandsOffStorage )( IPersistStorage* This);
  1310. } IPersistStorageVtbl;
  1311.  
  1312. interface IPersistStorage { struct IPersistStorageVtbl*lpVtbl; };
  1313. #define IPersistStorage_QueryInterface(This,riid,ppvObject)    \
  1314.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1315.  
  1316. #define IPersistStorage_AddRef(This)    \
  1317.  (This)->lpVtbl->AddRef(This)
  1318.  
  1319. #define IPersistStorage_Release(This)    \
  1320.  (This)->lpVtbl->Release(This)
  1321.  
  1322.  
  1323. #define IPersistStorage_GetClassID(This,pClassID)    \
  1324.  (This)->lpVtbl->GetClassID(This,pClassID)
  1325.  
  1326.  
  1327. #define IPersistStorage_IsDirty(This)    \
  1328.  (This)->lpVtbl->IsDirty(This)
  1329.  
  1330. #define IPersistStorage_InitNew(This,pStg)    \
  1331.  (This)->lpVtbl->InitNew(This,pStg)
  1332.  
  1333. #define IPersistStorage_Load(This,pStg)    \
  1334.  (This)->lpVtbl->Load(This,pStg)
  1335.  
  1336. #define IPersistStorage_Save(This,pStgSave,fSameAsLoad)    \
  1337.  (This)->lpVtbl->Save(This,pStgSave,fSameAsLoad)
  1338.  
  1339. #define IPersistStorage_SaveCompleted(This,pStgNew)    \
  1340.  (This)->lpVtbl->SaveCompleted(This,pStgNew)
  1341.  
  1342. #define IPersistStorage_HandsOffStorage(This)    \
  1343.  (This)->lpVtbl->HandsOffStorage(This)
  1344.  
  1345.  
  1346.  HRESULT _stdcall IPersistStorage_IsDirty_Proxy(
  1347.  IPersistStorage* This);
  1348.  
  1349.  
  1350. void _stdcall IPersistStorage_IsDirty_Stub(
  1351.  IRpcStubBuffer *This,
  1352.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1353.  PRPC_MESSAGE _pRpcMessage,
  1354.  DWORD *_pdwStubPhase);
  1355.  
  1356.  
  1357.  HRESULT _stdcall IPersistStorage_InitNew_Proxy(
  1358.  IPersistStorage* This,
  1359.  IStorage*pStg);
  1360.  
  1361.  
  1362. void _stdcall IPersistStorage_InitNew_Stub(
  1363.  IRpcStubBuffer *This,
  1364.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1365.  PRPC_MESSAGE _pRpcMessage,
  1366.  DWORD *_pdwStubPhase);
  1367.  
  1368.  
  1369.  HRESULT _stdcall IPersistStorage_Load_Proxy(
  1370.  IPersistStorage* This,
  1371.  IStorage*pStg);
  1372.  
  1373.  
  1374. void _stdcall IPersistStorage_Load_Stub(
  1375.  IRpcStubBuffer *This,
  1376.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1377.  PRPC_MESSAGE _pRpcMessage,
  1378.  DWORD *_pdwStubPhase);
  1379.  
  1380.  
  1381.  HRESULT _stdcall IPersistStorage_Save_Proxy(
  1382.  IPersistStorage* This,
  1383.  IStorage*pStgSave,
  1384.  BOOL fSameAsLoad);
  1385.  
  1386.  
  1387. void _stdcall IPersistStorage_Save_Stub(
  1388.  IRpcStubBuffer *This,
  1389.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1390.  PRPC_MESSAGE _pRpcMessage,
  1391.  DWORD *_pdwStubPhase);
  1392.  
  1393.  
  1394.  HRESULT _stdcall IPersistStorage_SaveCompleted_Proxy(
  1395.  IPersistStorage* This,
  1396.  IStorage*pStgNew);
  1397.  
  1398.  
  1399. void _stdcall IPersistStorage_SaveCompleted_Stub(
  1400.  IRpcStubBuffer *This,
  1401.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1402.  PRPC_MESSAGE _pRpcMessage,
  1403.  DWORD *_pdwStubPhase);
  1404.  
  1405.  
  1406.  HRESULT _stdcall IPersistStorage_HandsOffStorage_Proxy(
  1407.  IPersistStorage* This);
  1408.  
  1409.  
  1410. void _stdcall IPersistStorage_HandsOffStorage_Stub(
  1411.  IRpcStubBuffer *This,
  1412.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1413.  PRPC_MESSAGE _pRpcMessage,
  1414.  DWORD *_pdwStubPhase);
  1415.  
  1416.  
  1417.  
  1418. typedef ILockBytes*LPLOCKBYTES;
  1419. extern const IID IID_ILockBytes;
  1420.  
  1421.  typedef struct ILockBytesVtbl
  1422.  {
  1423.  
  1424.  HRESULT (_stdcall*QueryInterface )( 
  1425.  ILockBytes* This,
  1426.  REFIID riid,
  1427.  void * * ppvObject);
  1428.  
  1429.  ULONG (_stdcall*AddRef )( 
  1430.  ILockBytes* This);
  1431.  
  1432.  ULONG (_stdcall*Release )( 
  1433.  ILockBytes* This);
  1434.  
  1435.  HRESULT (_stdcall*ReadAt )( 
  1436.  ILockBytes* This,
  1437.  ULARGE_INTEGER ulOffset,
  1438.  void*pv,
  1439.  ULONG cb,
  1440.  ULONG*pcbRead);
  1441.  
  1442.  HRESULT (_stdcall*WriteAt )( 
  1443.  ILockBytes* This,
  1444.  ULARGE_INTEGER ulOffset,
  1445.  const void*pv,
  1446.  ULONG cb,
  1447.  ULONG*pcbWritten);
  1448.  
  1449.  HRESULT (_stdcall*Flush )( 
  1450.  ILockBytes* This);
  1451.  
  1452.  HRESULT (_stdcall*SetSize )( 
  1453.  ILockBytes* This,
  1454.  ULARGE_INTEGER cb);
  1455.  
  1456.  HRESULT (_stdcall*LockRegion )( 
  1457.  ILockBytes* This,
  1458.  ULARGE_INTEGER libOffset,
  1459.  ULARGE_INTEGER cb,
  1460.  DWORD dwLockType);
  1461.  
  1462.  HRESULT (_stdcall*UnlockRegion )( 
  1463.  ILockBytes* This,
  1464.  ULARGE_INTEGER libOffset,
  1465.  ULARGE_INTEGER cb,
  1466.  DWORD dwLockType);
  1467.  
  1468.  HRESULT (_stdcall*Stat )( 
  1469.  ILockBytes* This,
  1470.  STATSTG*pstatstg,
  1471.  DWORD grfStatFlag);
  1472.  
  1473.  } ILockBytesVtbl;
  1474.  
  1475. interface ILockBytes { struct ILockBytesVtbl*lpVtbl; };
  1476.  
  1477. #define ILockBytes_QueryInterface(This,riid,ppvObject)    \
  1478.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1479.  
  1480. #define ILockBytes_AddRef(This)    \
  1481.  (This)->lpVtbl->AddRef(This)
  1482.  
  1483. #define ILockBytes_Release(This)    \
  1484.  (This)->lpVtbl->Release(This)
  1485.  
  1486.  
  1487. #define ILockBytes_ReadAt(This,ulOffset,pv,cb,pcbRead)    \
  1488.  (This)->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead)
  1489.  
  1490. #define ILockBytes_WriteAt(This,ulOffset,pv,cb,pcbWritten)    \
  1491.  (This)->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten)
  1492.  
  1493. #define ILockBytes_Flush(This)    \
  1494.  (This)->lpVtbl->Flush(This)
  1495.  
  1496. #define ILockBytes_SetSize(This,cb)    \
  1497.  (This)->lpVtbl->SetSize(This,cb)
  1498.  
  1499. #define ILockBytes_LockRegion(This,libOffset,cb,dwLockType)    \
  1500.  (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
  1501.  
  1502. #define ILockBytes_UnlockRegion(This,libOffset,cb,dwLockType)    \
  1503.  (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
  1504.  
  1505. #define ILockBytes_Stat(This,pstatstg,grfStatFlag)    \
  1506.  (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
  1507.  
  1508.  HRESULT _stdcall ILockBytes_RemoteReadAt_Proxy(ILockBytes* This,
  1509.  ULARGE_INTEGER ulOffset,BYTE *pv, ULONG cb, ULONG*pcbRead);
  1510.  
  1511. void _stdcall ILockBytes_RemoteReadAt_Stub(IRpcStubBuffer *This,
  1512.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  1513.  
  1514. HRESULT _stdcall ILockBytes_RemoteWriteAt_Proxy(ILockBytes* This,ULARGE_INTEGER ulOffset,
  1515.  BYTE *pv,ULONG cb, ULONG*pcbWritten);
  1516.  
  1517. void _stdcall ILockBytes_RemoteWriteAt_Stub( IRpcStubBuffer *This,
  1518.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1519.  DWORD *_pdwStubPhase);
  1520. HRESULT _stdcall ILockBytes_Flush_Proxy( ILockBytes* This);
  1521. void _stdcall ILockBytes_Flush_Stub( IRpcStubBuffer *This,
  1522.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1523.  DWORD *_pdwStubPhase);
  1524. HRESULT _stdcall ILockBytes_SetSize_Proxy( ILockBytes* This,ULARGE_INTEGER cb);
  1525. void _stdcall ILockBytes_SetSize_Stub( IRpcStubBuffer *This,
  1526.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1527.  DWORD *_pdwStubPhase);
  1528. HRESULT _stdcall ILockBytes_LockRegion_Proxy( ILockBytes* This,ULARGE_INTEGER libOffset,
  1529.  ULARGE_INTEGER cb, DWORD dwLockType);
  1530. void _stdcall ILockBytes_LockRegion_Stub( IRpcStubBuffer *This,
  1531.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1532.  DWORD *_pdwStubPhase);
  1533. HRESULT _stdcall ILockBytes_UnlockRegion_Proxy( ILockBytes* This,
  1534.  ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType);
  1535. void _stdcall ILockBytes_UnlockRegion_Stub( IRpcStubBuffer *This,
  1536.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1537.  DWORD *_pdwStubPhase);
  1538. HRESULT _stdcall ILockBytes_Stat_Proxy( ILockBytes* This,
  1539.  STATSTG*pstatstg, DWORD grfStatFlag);
  1540. void _stdcall ILockBytes_Stat_Stub( IRpcStubBuffer *This,
  1541.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1542.  DWORD *_pdwStubPhase);
  1543. typedef IEnumFORMATETC *LPENUMFORMATETC;
  1544. typedef struct tagDVTARGETDEVICE
  1545.  {
  1546.  DWORD tdSize;
  1547.  WORD tdDriverNameOffset;
  1548.  WORD tdDeviceNameOffset;
  1549.  WORD tdPortNameOffset;
  1550.  WORD tdExtDevmodeOffset;
  1551.  BYTE tdData[ 1 ];
  1552.  }    DVTARGETDEVICE;
  1553.  
  1554. typedef WORD CLIPFORMAT;
  1555. typedef CLIPFORMAT*LPCLIPFORMAT;
  1556. typedef struct tagFORMATETC
  1557.  {
  1558.  CLIPFORMAT cfFormat;
  1559.  DVTARGETDEVICE*ptd;
  1560.  DWORD dwAspect;
  1561.  LONG lindex;
  1562.  DWORD tymed;
  1563.  }    FORMATETC;
  1564. typedef struct tagFORMATETC *LPFORMATETC;
  1565. extern const IID IID_IEnumFORMATETC;
  1566. typedef struct IEnumFORMATETCVtbl
  1567. {
  1568.  
  1569. HRESULT (_stdcall*QueryInterface )( IEnumFORMATETC * This,REFIID riid,
  1570.  void * * ppvObject);
  1571.  
  1572.  ULONG (_stdcall*AddRef )( 
  1573.  IEnumFORMATETC * This);
  1574.  
  1575.  ULONG (_stdcall*Release )( 
  1576.  IEnumFORMATETC * This);
  1577.  
  1578.  HRESULT (_stdcall*Next )( 
  1579.  IEnumFORMATETC * This,
  1580.  ULONG celt,
  1581.  FORMATETC *rgelt,
  1582.  ULONG*pceltFetched);
  1583.  
  1584.  HRESULT (_stdcall*Skip )( 
  1585.  IEnumFORMATETC * This,
  1586.  ULONG celt);
  1587.  
  1588.  HRESULT (_stdcall*Reset )( 
  1589.  IEnumFORMATETC * This);
  1590.  
  1591.  HRESULT (_stdcall*Clone )( 
  1592.  IEnumFORMATETC * This,
  1593.  IEnumFORMATETC * * ppenum);
  1594.  
  1595.  } IEnumFORMATETCVtbl;
  1596.  
  1597. interface IEnumFORMATETC { struct IEnumFORMATETCVtbl*lpVtbl; };
  1598. #define IEnumFORMATETC_QueryInterface(This,riid,ppvObject)    \
  1599.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1600. #define IEnumFORMATETC_AddRef(This)    \
  1601.  (This)->lpVtbl->AddRef(This)
  1602. #define IEnumFORMATETC_Release(This)    \
  1603.  (This)->lpVtbl->Release(This)
  1604. #define IEnumFORMATETC_Next(This,celt,rgelt,pceltFetched)    \
  1605.  (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
  1606. #define IEnumFORMATETC_Skip(This,celt)    \
  1607.  (This)->lpVtbl->Skip(This,celt)
  1608. #define IEnumFORMATETC_Reset(This)    \
  1609.  (This)->lpVtbl->Reset(This)
  1610. #define IEnumFORMATETC_Clone(This,ppenum)    \
  1611.  (This)->lpVtbl->Clone(This,ppenum)
  1612.  
  1613.  HRESULT _stdcall IEnumFORMATETC_RemoteNext_Proxy(
  1614.  IEnumFORMATETC * This,
  1615.  ULONG celt,
  1616.  FORMATETC *rgelt,
  1617.  ULONG*pceltFetched);
  1618.  
  1619.  
  1620. void _stdcall IEnumFORMATETC_RemoteNext_Stub(
  1621.  IRpcStubBuffer *This,
  1622.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1623.  PRPC_MESSAGE _pRpcMessage,
  1624.  DWORD *_pdwStubPhase);
  1625.  
  1626.  
  1627.  HRESULT _stdcall IEnumFORMATETC_Skip_Proxy(
  1628.  IEnumFORMATETC * This,
  1629.  ULONG celt);
  1630.  
  1631.  
  1632. void _stdcall IEnumFORMATETC_Skip_Stub(
  1633.  IRpcStubBuffer *This,
  1634.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1635.  PRPC_MESSAGE _pRpcMessage,
  1636.  DWORD *_pdwStubPhase);
  1637.  
  1638.  
  1639.  HRESULT _stdcall IEnumFORMATETC_Reset_Proxy(
  1640.  IEnumFORMATETC * This);
  1641.  
  1642.  
  1643. void _stdcall IEnumFORMATETC_Reset_Stub(
  1644.  IRpcStubBuffer *This,
  1645.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1646.  PRPC_MESSAGE _pRpcMessage,
  1647.  DWORD *_pdwStubPhase);
  1648.  
  1649.  
  1650.  HRESULT _stdcall IEnumFORMATETC_Clone_Proxy(
  1651.  IEnumFORMATETC * This,
  1652.  IEnumFORMATETC * * ppenum);
  1653.  
  1654.  
  1655. void _stdcall IEnumFORMATETC_Clone_Stub(
  1656.  IRpcStubBuffer *This,
  1657.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1658.  PRPC_MESSAGE _pRpcMessage,
  1659.  DWORD *_pdwStubPhase);
  1660.  
  1661.  
  1662. typedef IEnumSTATDATA*LPENUMSTATDATA;
  1663. typedef 
  1664. enum tagADVF
  1665.  {    ADVF_NODATA    = 1,
  1666.     ADVF_PRIMEFIRST    = 2,
  1667.     ADVF_ONLYONCE    = 4,
  1668.     ADVF_DATAONSTOP    = 64,
  1669.     ADVFCACHE_NOHANDLER    = 8,
  1670.     ADVFCACHE_FORCEBUILTIN    = 16,
  1671.     ADVFCACHE_ONSAVE    = 32
  1672.  }    ADVF;
  1673.  
  1674. typedef struct tagSTATDATA
  1675.  {
  1676.  FORMATETC formatetc;
  1677.  DWORD advf;
  1678.  IAdviseSink*pAdvSink;
  1679.  DWORD dwConnection;
  1680.  }    STATDATA;
  1681.  
  1682. typedef STATDATA*LPSTATDATA;
  1683. extern const IID IID_IEnumSTATDATA;
  1684.  
  1685. typedef struct IEnumSTATDATAVtbl
  1686.  {
  1687.  
  1688.  HRESULT (_stdcall*QueryInterface )( 
  1689.  IEnumSTATDATA* This,
  1690.  REFIID riid,
  1691.  void * * ppvObject);
  1692.  
  1693.  ULONG (_stdcall*AddRef )( 
  1694.  IEnumSTATDATA* This);
  1695.  
  1696.  ULONG (_stdcall*Release )( 
  1697.  IEnumSTATDATA* This);
  1698.  
  1699.  HRESULT (_stdcall*Next )( 
  1700.  IEnumSTATDATA* This,
  1701.  ULONG celt,
  1702.  STATDATA*rgelt,
  1703.  ULONG*pceltFetched);
  1704.  
  1705.  HRESULT (_stdcall*Skip )( 
  1706.  IEnumSTATDATA* This,
  1707.  ULONG celt);
  1708.  
  1709.  HRESULT (_stdcall*Reset )( 
  1710.  IEnumSTATDATA* This);
  1711.  
  1712.  HRESULT (_stdcall*Clone )( 
  1713.  IEnumSTATDATA* This,
  1714.  IEnumSTATDATA * * ppenum);
  1715.  
  1716.  } IEnumSTATDATAVtbl;
  1717.  
  1718. interface IEnumSTATDATA { struct IEnumSTATDATAVtbl*lpVtbl; };
  1719.  
  1720. #define IEnumSTATDATA_QueryInterface(This,riid,ppvObject)    \
  1721.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1722.  
  1723. #define IEnumSTATDATA_AddRef(This)    \
  1724.  (This)->lpVtbl->AddRef(This)
  1725.  
  1726. #define IEnumSTATDATA_Release(This)    \
  1727.  (This)->lpVtbl->Release(This)
  1728.  
  1729.  
  1730. #define IEnumSTATDATA_Next(This,celt,rgelt,pceltFetched)    \
  1731.  (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
  1732.  
  1733. #define IEnumSTATDATA_Skip(This,celt)    \
  1734.  (This)->lpVtbl->Skip(This,celt)
  1735.  
  1736. #define IEnumSTATDATA_Reset(This)    \
  1737.  (This)->lpVtbl->Reset(This)
  1738.  
  1739. #define IEnumSTATDATA_Clone(This,ppenum)    \
  1740.  (This)->lpVtbl->Clone(This,ppenum)
  1741.  
  1742.  
  1743.  HRESULT _stdcall IEnumSTATDATA_RemoteNext_Proxy( IEnumSTATDATA* This,
  1744.  ULONG celt, STATDATA*rgelt, ULONG*pceltFetched);
  1745.  
  1746.  
  1747. void _stdcall IEnumSTATDATA_RemoteNext_Stub(
  1748.  IRpcStubBuffer *This,
  1749.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1750.  PRPC_MESSAGE _pRpcMessage,
  1751.  DWORD *_pdwStubPhase);
  1752.  
  1753. HRESULT _stdcall IEnumSTATDATA_Skip_Proxy(IEnumSTATDATA*,ULONG);
  1754. void _stdcall IEnumSTATDATA_Skip_Stub( IRpcStubBuffer *,
  1755.  IRpcChannelBuffer *,PRPC_MESSAGE,DWORD *);
  1756. HRESULT _stdcall IEnumSTATDATA_Reset_Proxy( IEnumSTATDATA* This);
  1757. void _stdcall IEnumSTATDATA_Reset_Stub( IRpcStubBuffer *This,
  1758.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1759.  PRPC_MESSAGE _pRpcMessage,
  1760.  DWORD *_pdwStubPhase);
  1761. HRESULT _stdcall IEnumSTATDATA_Clone_Proxy( IEnumSTATDATA* This,
  1762.  IEnumSTATDATA * * ppenum);
  1763. void _stdcall IEnumSTATDATA_Clone_Stub( IRpcStubBuffer *This,
  1764.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1765.  DWORD *_pdwStubPhase);
  1766.  
  1767. typedef IRootStorage*LPROOTSTORAGE;
  1768. extern const IID IID_IRootStorage;
  1769. typedef struct IRootStorageVtbl {
  1770.  HRESULT (_stdcall*QueryInterface )( IRootStorage* This,REFIID riid,
  1771.  void * * ppvObject);
  1772.  ULONG (_stdcall*AddRef )( IRootStorage* This);
  1773.  ULONG (_stdcall*Release )( IRootStorage* This);
  1774.  HRESULT (_stdcall*SwitchToFile )( IRootStorage* This,LPCSTR pszFile);
  1775. } IRootStorageVtbl;
  1776.  
  1777. interface IRootStorage { struct IRootStorageVtbl*lpVtbl; };
  1778.  
  1779. #define IRootStorage_QueryInterface(This,riid,ppvObject)    \
  1780.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1781.  
  1782. #define IRootStorage_AddRef(This)    \
  1783.  (This)->lpVtbl->AddRef(This)
  1784. #define IRootStorage_Release(This)    \
  1785.  (This)->lpVtbl->Release(This)
  1786. #define IRootStorage_SwitchToFile(This,pszFile)    \
  1787.  (This)->lpVtbl->SwitchToFile(This,pszFile)
  1788. HRESULT _stdcall IRootStorage_SwitchToFile_Proxy(IRootStorage* This,LPCSTR pszFile);
  1789. void _stdcall IRootStorage_SwitchToFile_Stub(IRpcStubBuffer *This,
  1790.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1791.  DWORD *_pdwStubPhase);
  1792.  
  1793. typedef IAdviseSink*LPADVISESINK;
  1794. typedef enum tagTYMED
  1795.  {    TYMED_HGLOBAL    = 1,
  1796.     TYMED_FILE    = 2,
  1797.     TYMED_ISTREAM    = 4,
  1798.     TYMED_ISTORAGE    = 8,
  1799.     TYMED_GDI    = 16,
  1800.     TYMED_MFPICT    = 32,
  1801.     TYMED_ENHMF    = 64,
  1802.     TYMED_NULL    = 0
  1803.  }    TYMED;
  1804.  
  1805. #ifndef RC_INVOKED
  1806. #pragma warning(disable:4200)
  1807. #endif
  1808. typedef struct tagRemSTGMEDIUM {
  1809.  DWORD tymed;
  1810.  DWORD dwHandleType;
  1811.  unsigned long pData;
  1812.  unsigned long pUnkForRelease;
  1813.  unsigned long cbData;
  1814.  BYTE data[ 1 ];
  1815.  }    RemSTGMEDIUM;
  1816.  
  1817. #ifndef RC_INVOKED
  1818. #pragma warning(default:4200)
  1819. #endif
  1820. #ifdef NONAMELESSUNION
  1821. typedef struct tagSTGMEDIUM {
  1822.  DWORD tymed;
  1823.  union {
  1824.  HBITMAP hBitmap;
  1825.  void *hMetaFilePict;
  1826.  HENHMETAFILE hEnhMetaFile;
  1827.  HGLOBAL hGlobal;
  1828.  LPCSTR lpszFileName;
  1829.  IStream *pstm;
  1830.  IStorage *pstg;
  1831.  } u;
  1832.  IUnknown *pUnkForRelease;
  1833. }STGMEDIUM;
  1834. #else
  1835. typedef struct tagSTGMEDIUM
  1836.  {
  1837.  DWORD tymed;
  1838.  union 
  1839.  {
  1840.  HBITMAP hBitmap;
  1841.  void * hMetaFilePict;
  1842.  HENHMETAFILE hEnhMetaFile;
  1843.  HGLOBAL hGlobal;
  1844.  LPCSTR lpszFileName;
  1845.  IStream*pstm;
  1846.  IStorage*pstg;
  1847.  };
  1848.  IUnknown*pUnkForRelease;
  1849.  }    STGMEDIUM;
  1850.  
  1851. #endif /* !NONAMELESSUNION */
  1852. typedef STGMEDIUM*LPSTGMEDIUM;
  1853.  
  1854. extern const IID IID_IAdviseSink;
  1855.  
  1856. typedef struct IAdviseSinkVtbl {
  1857.  HRESULT (_stdcall*QueryInterface )( IAdviseSink* This,REFIID riid,
  1858.  void * * ppvObject);
  1859.  ULONG (_stdcall*AddRef )(IAdviseSink* This);
  1860.  ULONG (_stdcall*Release )( IAdviseSink* This); 
  1861.  void (_stdcall*OnDataChange )( IAdviseSink* This,FORMATETC *pFormatetc,
  1862.  STGMEDIUM*pStgmed); 
  1863.  void (_stdcall*OnViewChange )( IAdviseSink* This,DWORD dwAspect,
  1864.  LONG lindex);
  1865.  void (_stdcall*OnRename )( IAdviseSink* This,IMoniker*pmk);
  1866.  void (_stdcall*OnSave )( IAdviseSink* This);
  1867.  void (_stdcall*OnClose )( IAdviseSink* This);
  1868. } IAdviseSinkVtbl;
  1869.  
  1870. interface IAdviseSink { struct IAdviseSinkVtbl*lpVtbl; };
  1871. #define IAdviseSink_QueryInterface(This,riid,ppvObject)    \
  1872.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1873. #define IAdviseSink_AddRef(This)    \
  1874.  (This)->lpVtbl->AddRef(This)
  1875. #define IAdviseSink_Release(This)    \
  1876.  (This)->lpVtbl->Release(This)
  1877. #define IAdviseSink_OnDataChange(This,pFormatetc,pStgmed)    \
  1878.  (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
  1879. #define IAdviseSink_OnViewChange(This,dwAspect,lindex)    \
  1880.  (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
  1881. #define IAdviseSink_OnRename(This,pmk)    \
  1882.  (This)->lpVtbl->OnRename(This,pmk)
  1883. #define IAdviseSink_OnSave(This)    \
  1884.  (This)->lpVtbl->OnSave(This)
  1885. #define IAdviseSink_OnClose(This)    \
  1886.  (This)->lpVtbl->OnClose(This)
  1887.  
  1888. void _stdcall IAdviseSink_RemoteOnDataChange_Proxy( IAdviseSink* This,
  1889.  FORMATETC *pFormatetc, RemSTGMEDIUM*pStgmed);
  1890. void _stdcall IAdviseSink_RemoteOnDataChange_Stub( IRpcStubBuffer *This,
  1891.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1892.  DWORD *_pdwStubPhase);
  1893.  
  1894.  void _stdcall IAdviseSink_RemoteOnViewChange_Proxy(IAdviseSink* This,
  1895.  DWORD dwAspect,LONG lindex);
  1896.  
  1897. void _stdcall IAdviseSink_RemoteOnViewChange_Stub(IRpcStubBuffer *This,
  1898.  IRpcChannelBuffer *_pRpcChannelBuffer,
  1899.  PRPC_MESSAGE _pRpcMessage,
  1900.  DWORD *_pdwStubPhase);
  1901.  
  1902. void _stdcall IAdviseSink_RemoteOnRename_Proxy(IAdviseSink* This,IMoniker*pmk);
  1903.  
  1904. void _stdcall IAdviseSink_RemoteOnRename_Stub(IRpcStubBuffer *This,
  1905.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1906.  DWORD *_pdwStubPhase);
  1907. void _stdcall IAdviseSink_RemoteOnSave_Proxy(IAdviseSink* This);
  1908. void _stdcall IAdviseSink_RemoteOnSave_Stub( IRpcStubBuffer *This,
  1909.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1910.  DWORD *_pdwStubPhase);
  1911. HRESULT _stdcall IAdviseSink_RemoteOnClose_Proxy(IAdviseSink* This);
  1912. void _stdcall IAdviseSink_RemoteOnClose_Stub(IRpcStubBuffer *This,
  1913.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  1914.  DWORD *_pdwStubPhase);
  1915. typedef IAdviseSink2*LPADVISESINK2;
  1916. extern const IID IID_IAdviseSink2;
  1917. typedef struct IAdviseSink2Vtbl {
  1918.  HRESULT (_stdcall*QueryInterface )( IAdviseSink2* This,REFIID riid,
  1919.  void * * ppvObject);
  1920.  ULONG (_stdcall*AddRef )( IAdviseSink2* This);
  1921.  ULONG (_stdcall*Release )( IAdviseSink2* This);
  1922.  void (_stdcall*OnDataChange )( IAdviseSink2* This,FORMATETC *pFormatetc,
  1923.  STGMEDIUM*pStgmed);
  1924.  void (_stdcall*OnViewChange )( IAdviseSink2* This,DWORD dwAspect,LONG lindex);
  1925.  void (_stdcall*OnRename )( IAdviseSink2* This,IMoniker*pmk);
  1926.  void (_stdcall*OnSave )( IAdviseSink2* This); 
  1927.  void (_stdcall*OnClose )( IAdviseSink2* This);
  1928.  void (_stdcall*OnLinkSrcChange )( IAdviseSink2* This,IMoniker*pmk);
  1929. } IAdviseSink2Vtbl;
  1930.  
  1931. interface IAdviseSink2 { struct IAdviseSink2Vtbl*lpVtbl; };
  1932. #define IAdviseSink2_QueryInterface(This,riid,ppvObject)    \
  1933.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1934. #define IAdviseSink2_AddRef(This)    \
  1935.  (This)->lpVtbl->AddRef(This)
  1936. #define IAdviseSink2_Release(This)    \
  1937.  (This)->lpVtbl->Release(This)
  1938. #define IAdviseSink2_OnDataChange(This,pFormatetc,pStgmed)    \
  1939.  (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed)
  1940. #define IAdviseSink2_OnViewChange(This,dwAspect,lindex)    \
  1941.  (This)->lpVtbl->OnViewChange(This,dwAspect,lindex)
  1942. #define IAdviseSink2_OnRename(This,pmk)    \
  1943.  (This)->lpVtbl->OnRename(This,pmk)
  1944. #define IAdviseSink2_OnSave(This)    \
  1945.  (This)->lpVtbl->OnSave(This)
  1946. #define IAdviseSink2_OnClose(This)    \
  1947.  (This)->lpVtbl->OnClose(This)
  1948. #define IAdviseSink2_OnLinkSrcChange(This,pmk)    \
  1949.  (This)->lpVtbl->OnLinkSrcChange(This,pmk)
  1950.  void _stdcall IAdviseSink2_RemoteOnLinkSrcChange_Proxy(IAdviseSink2* This, IMoniker*pmk);
  1951. void _stdcall IAdviseSink2_RemoteOnLinkSrcChange_Stub( IRpcStubBuffer *This,
  1952.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  1953.  DWORD *_pdwStubPhase);
  1954. typedef IDataObject*LPDATAOBJECT;
  1955. typedef enum tagDATADIR
  1956.  {    DATADIR_GET    = 1,
  1957.     DATADIR_SET    = 2
  1958.  }    DATADIR;
  1959.  
  1960. extern const IID IID_IDataObject;
  1961.  
  1962. typedef struct IDataObjectVtbl {
  1963.  HRESULT (_stdcall*QueryInterface )( IDataObject* This,
  1964.  REFIID riid,void * * ppvObject);
  1965.  ULONG (_stdcall*AddRef )( IDataObject* This);
  1966.  ULONG (_stdcall*Release )( IDataObject* This);
  1967.  HRESULT (_stdcall*GetData )( IDataObject* This,FORMATETC *pformatetcIn,
  1968.  STGMEDIUM*pmedium);
  1969.  HRESULT (_stdcall*GetDataHere )( IDataObject* This,FORMATETC *pformatetc,
  1970.  STGMEDIUM*pmedium);
  1971.  HRESULT (_stdcall*QueryGetData )( IDataObject* This,FORMATETC *pformatetc);
  1972.  HRESULT (_stdcall*GetCanonicalFormatEtc )( IDataObject* This,FORMATETC *pformatectIn,
  1973.  FORMATETC *pformatetcOut);
  1974.  HRESULT (_stdcall*SetData )( IDataObject* This,FORMATETC *pformatetc,
  1975.  STGMEDIUM*pmedium,BOOL fRelease);
  1976.  HRESULT (_stdcall*EnumFormatEtc )( IDataObject* This,DWORD dwDirection,
  1977.  IEnumFORMATETC * * ppenumFormatEtc);
  1978.  HRESULT (_stdcall*DAdvise )( IDataObject* This,FORMATETC *pformatetc,
  1979.  DWORD advf,IAdviseSink*pAdvSink, DWORD*pdwConnection);
  1980.  HRESULT (_stdcall*DUnadvise )( IDataObject* This,DWORD dwConnection);
  1981.  HRESULT (_stdcall*EnumDAdvise )( IDataObject* This,IEnumSTATDATA * * ppenumAdvise);
  1982. } IDataObjectVtbl;
  1983.  
  1984. interface IDataObject { struct IDataObjectVtbl*lpVtbl; };
  1985.  
  1986. #define IDataObject_QueryInterface(This,riid,ppvObject)    \
  1987.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1988.  
  1989. #define IDataObject_AddRef(This)    \
  1990.  (This)->lpVtbl->AddRef(This)
  1991.  
  1992. #define IDataObject_Release(This)    \
  1993.  (This)->lpVtbl->Release(This)
  1994.  
  1995.  
  1996. #define IDataObject_GetData(This,pformatetcIn,pmedium)    \
  1997.  (This)->lpVtbl->GetData(This,pformatetcIn,pmedium)
  1998.  
  1999. #define IDataObject_GetDataHere(This,pformatetc,pmedium)    \
  2000.  (This)->lpVtbl->GetDataHere(This,pformatetc,pmedium)
  2001.  
  2002. #define IDataObject_QueryGetData(This,pformatetc)    \
  2003.  (This)->lpVtbl->QueryGetData(This,pformatetc)
  2004.  
  2005. #define IDataObject_GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut)    \
  2006.  (This)->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut)
  2007.  
  2008. #define IDataObject_SetData(This,pformatetc,pmedium,fRelease)    \
  2009.  (This)->lpVtbl->SetData(This,pformatetc,pmedium,fRelease)
  2010.  
  2011. #define IDataObject_EnumFormatEtc(This,dwDirection,ppenumFormatEtc)    \
  2012.  (This)->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc)
  2013.  
  2014. #define IDataObject_DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection)    \
  2015.  (This)->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection)
  2016.  
  2017. #define IDataObject_DUnadvise(This,dwConnection)    \
  2018.  (This)->lpVtbl->DUnadvise(This,dwConnection)
  2019.  
  2020. #define IDataObject_EnumDAdvise(This,ppenumAdvise)    \
  2021.  (This)->lpVtbl->EnumDAdvise(This,ppenumAdvise)
  2022.  
  2023.  
  2024.  HRESULT _stdcall IDataObject_RemoteGetData_Proxy(
  2025.  IDataObject* This,
  2026.  FORMATETC *pformatetcIn,
  2027.  RemSTGMEDIUM * * ppRemoteMedium);
  2028.  
  2029.  
  2030. void _stdcall IDataObject_RemoteGetData_Stub(
  2031.  IRpcStubBuffer *This,
  2032.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2033.  PRPC_MESSAGE _pRpcMessage,
  2034.  DWORD *_pdwStubPhase);
  2035.  
  2036.  
  2037.  HRESULT _stdcall IDataObject_RemoteGetDataHere_Proxy(
  2038.  IDataObject* This,
  2039.  FORMATETC *pformatetc,
  2040.  RemSTGMEDIUM * * ppRemoteMedium);
  2041.  
  2042.  
  2043. void _stdcall IDataObject_RemoteGetDataHere_Stub(
  2044.  IRpcStubBuffer *This,
  2045.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2046.  PRPC_MESSAGE _pRpcMessage,
  2047.  DWORD *_pdwStubPhase);
  2048.  
  2049.  
  2050.  HRESULT _stdcall IDataObject_QueryGetData_Proxy(
  2051.  IDataObject* This,
  2052.  FORMATETC *pformatetc);
  2053.  
  2054.  
  2055. void _stdcall IDataObject_QueryGetData_Stub(
  2056.  IRpcStubBuffer *This,
  2057.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2058.  PRPC_MESSAGE _pRpcMessage,
  2059.  DWORD *_pdwStubPhase);
  2060.  
  2061. HRESULT _stdcall IDataObject_GetCanonicalFormatEtc_Proxy(IDataObject* This,
  2062.  FORMATETC *pformatectIn,FORMATETC *pformatetcOut);
  2063.  
  2064. void _stdcall IDataObject_GetCanonicalFormatEtc_Stub(IRpcStubBuffer *This,
  2065.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2066.  DWORD *_pdwStubPhase);
  2067.  
  2068. HRESULT _stdcall IDataObject_RemoteSetData_Proxy(IDataObject* This,
  2069.  FORMATETC *pformatetc,RemSTGMEDIUM*pmedium, BOOL fRelease);
  2070.  
  2071. void _stdcall IDataObject_RemoteSetData_Stub(IRpcStubBuffer *This,
  2072.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2073.  PRPC_MESSAGE _pRpcMessage,
  2074.  DWORD *_pdwStubPhase);
  2075.  
  2076.  
  2077.  HRESULT _stdcall IDataObject_EnumFormatEtc_Proxy(IDataObject* This,
  2078.  DWORD dwDirection,
  2079.  IEnumFORMATETC * * ppenumFormatEtc);
  2080.  
  2081.  
  2082. void _stdcall IDataObject_EnumFormatEtc_Stub(IRpcStubBuffer *This,
  2083.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2084.  DWORD *_pdwStubPhase);
  2085.  
  2086.  
  2087.  HRESULT _stdcall IDataObject_DAdvise_Proxy(
  2088.  IDataObject* This,
  2089.  FORMATETC *pformatetc,
  2090.  DWORD advf,
  2091.  IAdviseSink*pAdvSink,
  2092.  DWORD*pdwConnection);
  2093.  
  2094.  
  2095. void _stdcall IDataObject_DAdvise_Stub(
  2096.  IRpcStubBuffer *This,
  2097.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2098.  PRPC_MESSAGE _pRpcMessage,
  2099.  DWORD *_pdwStubPhase);
  2100.  
  2101.  
  2102.  HRESULT _stdcall IDataObject_DUnadvise_Proxy(
  2103.  IDataObject* This,
  2104.  DWORD dwConnection);
  2105.  
  2106.  
  2107. void _stdcall IDataObject_DUnadvise_Stub(
  2108.  IRpcStubBuffer *This,
  2109.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2110.  PRPC_MESSAGE _pRpcMessage,
  2111.  DWORD *_pdwStubPhase);
  2112.  
  2113.  
  2114.  HRESULT _stdcall IDataObject_EnumDAdvise_Proxy(
  2115.  IDataObject* This,
  2116.  IEnumSTATDATA * * ppenumAdvise);
  2117. void _stdcall IDataObject_EnumDAdvise_Stub(
  2118.  IRpcStubBuffer *This,
  2119.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2120.  PRPC_MESSAGE _pRpcMessage,
  2121.  DWORD *_pdwStubPhase);
  2122.  
  2123.  
  2124. typedef IDataAdviseHolder*LPDATAADVISEHOLDER;
  2125. extern const IID IID_IDataAdviseHolder;
  2126. typedef struct IDataAdviseHolderVtbl {
  2127.  HRESULT (_stdcall*QueryInterface )( 
  2128.  IDataAdviseHolder* This,
  2129.  REFIID riid,
  2130.  void * * ppvObject);
  2131.  
  2132.  ULONG (_stdcall*AddRef )( 
  2133.  IDataAdviseHolder* This);
  2134.  
  2135.  ULONG (_stdcall*Release )( 
  2136.  IDataAdviseHolder* This);
  2137.  
  2138.  HRESULT (_stdcall*Advise )( 
  2139.  IDataAdviseHolder* This,
  2140.  IDataObject*pDataObject,
  2141.  FORMATETC *pFetc,
  2142.  DWORD advf,
  2143.  IAdviseSink*pAdvise,
  2144.  DWORD*pdwConnection);
  2145.  
  2146.  HRESULT (_stdcall*Unadvise )( 
  2147.  IDataAdviseHolder* This,
  2148.  DWORD dwConnection);
  2149.  
  2150.  HRESULT (_stdcall*EnumAdvise )( 
  2151.  IDataAdviseHolder* This,
  2152.  IEnumSTATDATA * * ppenumAdvise);
  2153.  HRESULT (_stdcall*SendOnDataChange )( 
  2154.  IDataAdviseHolder* This,
  2155.  IDataObject*pDataObject,
  2156.  DWORD dwReserved,
  2157.  DWORD advf);
  2158.  } IDataAdviseHolderVtbl;
  2159.  
  2160. interface IDataAdviseHolder { struct IDataAdviseHolderVtbl*lpVtbl; };
  2161.  
  2162. #define IDataAdviseHolder_QueryInterface(This,riid,ppvObject)    \
  2163.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2164.  
  2165. #define IDataAdviseHolder_AddRef(This)    \
  2166.  (This)->lpVtbl->AddRef(This)
  2167.  
  2168. #define IDataAdviseHolder_Release(This)    \
  2169.  (This)->lpVtbl->Release(This)
  2170.  
  2171.  
  2172. #define IDataAdviseHolder_Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection)    \
  2173.  (This)->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection)
  2174.  
  2175. #define IDataAdviseHolder_Unadvise(This,dwConnection)    \
  2176.  (This)->lpVtbl->Unadvise(This,dwConnection)
  2177.  
  2178. #define IDataAdviseHolder_EnumAdvise(This,ppenumAdvise)    \
  2179.  (This)->lpVtbl->EnumAdvise(This,ppenumAdvise)
  2180.  
  2181. #define IDataAdviseHolder_SendOnDataChange(This,pDataObject,dwReserved,advf)    \
  2182.  (This)->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf)
  2183.  
  2184.  
  2185. HRESULT _stdcall IDataAdviseHolder_Advise_Proxy(IDataAdviseHolder* This,
  2186.  IDataObject*pDataObject,
  2187.  FORMATETC *pFetc,
  2188.  DWORD advf,
  2189.  IAdviseSink*pAdvise,
  2190.  DWORD*pdwConnection);
  2191.  
  2192.  
  2193. void _stdcall IDataAdviseHolder_Advise_Stub(
  2194.  IRpcStubBuffer *This,
  2195.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2196.  PRPC_MESSAGE _pRpcMessage,
  2197.  DWORD *_pdwStubPhase);
  2198.  
  2199. HRESULT _stdcall IDataAdviseHolder_Unadvise_Proxy(IDataAdviseHolder* This,
  2200.  DWORD dwConnection);
  2201.  
  2202. void _stdcall IDataAdviseHolder_Unadvise_Stub(IRpcStubBuffer *This,
  2203.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2204.  PRPC_MESSAGE _pRpcMessage,
  2205.  DWORD *_pdwStubPhase);
  2206.  
  2207.  HRESULT _stdcall IDataAdviseHolder_EnumAdvise_Proxy(IDataAdviseHolder* This,
  2208.  IEnumSTATDATA * * ppenumAdvise);
  2209.  
  2210. void _stdcall IDataAdviseHolder_EnumAdvise_Stub(IRpcStubBuffer *This,
  2211.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2212.  PRPC_MESSAGE _pRpcMessage,
  2213.  DWORD *_pdwStubPhase);
  2214.  
  2215.  
  2216. HRESULT _stdcall IDataAdviseHolder_SendOnDataChange_Proxy(IDataAdviseHolder* This,
  2217.  IDataObject*pDataObject,
  2218.  DWORD dwReserved,
  2219.  DWORD advf);
  2220.  
  2221.  
  2222. void _stdcall IDataAdviseHolder_SendOnDataChange_Stub(IRpcStubBuffer *This,
  2223.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2224.  PRPC_MESSAGE _pRpcMessage,
  2225.  DWORD *_pdwStubPhase);
  2226.  
  2227. typedef IMessageFilter*LPMESSAGEFILTER;
  2228. typedef enum tagCALLTYPE
  2229.  {    CALLTYPE_TOPLEVEL    = 1,
  2230.     CALLTYPE_NESTED    = 2,
  2231.     CALLTYPE_ASYNC    = 3,
  2232.     CALLTYPE_TOPLEVEL_CALLPENDING    = 4,
  2233.     CALLTYPE_ASYNC_CALLPENDING    = 5
  2234.  }    CALLTYPE;
  2235. typedef enum tagSERVERCALL
  2236.  {    SERVERCALL_ISHANDLED    = 0,
  2237.     SERVERCALL_REJECTED    = 1,
  2238.     SERVERCALL_RETRYLATER    = 2
  2239.  }    SERVERCALL;
  2240. typedef enum tagPENDINGTYPE
  2241.  {    PENDINGTYPE_TOPLEVEL    = 1,
  2242.     PENDINGTYPE_NESTED    = 2
  2243.  }    PENDINGTYPE;
  2244. typedef enum tagPENDINGMSG
  2245.  {    PENDINGMSG_CANCELCALL    = 0,
  2246.     PENDINGMSG_WAITNOPROCESS    = 1,
  2247.     PENDINGMSG_WAITDEFPROCESS    = 2
  2248.  }    PENDINGMSG;
  2249.  
  2250. typedef struct tagINTERFACEINFO
  2251.  {
  2252.  IUnknown*pUnk;
  2253.  IID iid;
  2254.  WORD wMethod;
  2255.  }    INTERFACEINFO;
  2256.  
  2257. typedef struct tagINTERFACEINFO*LPINTERFACEINFO;
  2258.  
  2259. extern const IID IID_IMessageFilter;
  2260.  
  2261. typedef struct IMessageFilterVtbl {
  2262. HRESULT (_stdcall*QueryInterface )( IMessageFilter* This,REFIID riid,
  2263.  void * * ppvObject);
  2264. ULONG (_stdcall*AddRef )( IMessageFilter* This); 
  2265. ULONG (_stdcall*Release )( IMessageFilter* This); 
  2266. DWORD (_stdcall*HandleInComingCall )( IMessageFilter* This,DWORD dwCallType,
  2267.  HTASK htaskCaller,DWORD dwTickCount, LPINTERFACEINFO lpInterfaceInfo);
  2268. DWORD (_stdcall*RetryRejectedCall )( IMessageFilter* This,HTASK htaskCallee,
  2269.  DWORD dwTickCount,DWORD dwRejectType);
  2270. DWORD (_stdcall*MessagePending )( IMessageFilter* This,HTASK htaskCallee,
  2271.  DWORD dwTickCount,DWORD dwPendingType); 
  2272. } IMessageFilterVtbl;
  2273.  
  2274. interface IMessageFilter { struct IMessageFilterVtbl*lpVtbl; };
  2275.  
  2276. #define IMessageFilter_QueryInterface(This,riid,ppvObject)    \
  2277.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2278. #define IMessageFilter_AddRef(This)     (This)->lpVtbl->AddRef(This)
  2279. #define IMessageFilter_Release(This)     (This)->lpVtbl->Release(This)
  2280. #define IMessageFilter_HandleInComingCall(T,d,h,dw,lp) (T)->lpVtbl->HandleInComingCall(T,d,h,dw,lp)
  2281. #define IMessageFilter_RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType)    \
  2282.  (This)->lpVtbl->RetryRejectedCall(This,htaskCallee,dwTickCount,dwRejectType)
  2283.  
  2284. #define IMessageFilter_MessagePending(This,htaskCallee,dwTickCount,dwPendingType)    \
  2285.  (This)->lpVtbl->MessagePending(This,htaskCallee,dwTickCount,dwPendingType)
  2286.  
  2287. DWORD _stdcall IMessageFilter_HandleInComingCall_Proxy(IMessageFilter*,DWORD,HTASK,DWORD,LPINTERFACEINFO);
  2288. void _stdcall IMessageFilter_HandleInComingCall_Stub(IRpcStubBuffer *This,
  2289.  IRpcChannelBuffer *_pRpcChannelBuffer,
  2290.  PRPC_MESSAGE _pRpcMessage,
  2291.  DWORD *_pdwStubPhase);
  2292. DWORD _stdcall IMessageFilter_RetryRejectedCall_Proxy(IMessageFilter* This,
  2293.  HTASK htaskCallee,DWORD dwTickCount, DWORD dwRejectType);
  2294. void _stdcall IMessageFilter_RetryRejectedCall_Stub(IRpcStubBuffer *This,
  2295.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  2296. DWORD _stdcall IMessageFilter_MessagePending_Proxy(IMessageFilter* This,
  2297.  HTASK htaskCallee,DWORD dwTickCount, DWORD dwPendingType);
  2298. void _stdcall IMessageFilter_MessagePending_Stub(IRpcStubBuffer *This,
  2299.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2300.  DWORD *_pdwStubPhase);
  2301.  
  2302. typedef unsigned long RPCOLEDATAREP;
  2303. typedef struct tagRPCOLEMESSAGE {
  2304.  void*reserved1;
  2305.  RPCOLEDATAREP dataRepresentation;
  2306.  void*Buffer;
  2307.  ULONG cbBuffer;
  2308.  ULONG iMethod;
  2309.  void*reserved2[ 5 ];
  2310.  ULONG rpcFlags;
  2311.  }    RPCOLEMESSAGE;
  2312. typedef RPCOLEMESSAGE*PRPCOLEMESSAGE;
  2313. extern const IID IID_IRpcChannelBuffer;
  2314. typedef struct IRpcChannelBufferVtbl {
  2315.  HRESULT(_stdcall*QueryInterface)(IRpcChannelBuffer* This,REFIID riid, void * * ppvObject);
  2316.  ULONG (_stdcall*AddRef )( IRpcChannelBuffer* This);
  2317.  ULONG (_stdcall*Release )( IRpcChannelBuffer* This);
  2318.  HRESULT (_stdcall*GetBuffer )( IRpcChannelBuffer* This,RPCOLEMESSAGE*pMessage,
  2319.  REFIID riid);
  2320.  HRESULT (_stdcall*SendReceive )( IRpcChannelBuffer* This,RPCOLEMESSAGE*pMessage,
  2321.  ULONG*pStatus);
  2322.  HRESULT (_stdcall*FreeBuffer )( IRpcChannelBuffer* This,RPCOLEMESSAGE*pMessage);
  2323.  HRESULT (_stdcall*GetDestCtx )( IRpcChannelBuffer* This,
  2324.  DWORD*pdwDestContext,void * * ppvDestContext);
  2325.  HRESULT (_stdcall*IsConnected )( IRpcChannelBuffer* This);
  2326. } IRpcChannelBufferVtbl;
  2327.  
  2328. interface IRpcChannelBuffer { struct IRpcChannelBufferVtbl*lpVtbl;};
  2329. #define IRpcChannelBuffer_QueryInterface(T,r,p)    (T)->lpVtbl->QueryInterface(T,r,p)
  2330. #define IRpcChannelBuffer_AddRef(This)    (This)->lpVtbl->AddRef(This)
  2331. #define IRpcChannelBuffer_Release(This)    (This)->lpVtbl->Release(This)
  2332. #define IRpcChannelBuffer_GetBuffer(This,pMessage,riid)    \
  2333.  (This)->lpVtbl->GetBuffer(This,pMessage,riid)
  2334. #define IRpcChannelBuffer_SendReceive(T,p,pS) (T)->lpVtbl->SendReceive(T,p,pS)
  2335. #define IRpcChannelBuffer_FreeBuffer(T,p) (T)->lpVtbl->FreeBuffer(T,p)
  2336. #define IRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext)    \
  2337.  (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext)
  2338. #define IRpcChannelBuffer_IsConnected(This)    \
  2339.  (This)->lpVtbl->IsConnected(This)
  2340.  HRESULT _stdcall IRpcChannelBuffer_GetBuffer_Proxy(IRpcChannelBuffer* This,
  2341.  RPCOLEMESSAGE*pMessage,REFIID riid);
  2342. void _stdcall IRpcChannelBuffer_GetBuffer_Stub(IRpcStubBuffer *This,
  2343.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2344.  DWORD *_pdwStubPhase);
  2345. HRESULT _stdcall IRpcChannelBuffer_SendReceive_Proxy(IRpcChannelBuffer* This,
  2346.  RPCOLEMESSAGE*pMessage,ULONG*pStatus);
  2347. void _stdcall IRpcChannelBuffer_SendReceive_Stub(IRpcStubBuffer *This,
  2348.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2349.  DWORD *_pdwStubPhase);
  2350. HRESULT _stdcall IRpcChannelBuffer_FreeBuffer_Proxy(IRpcChannelBuffer* This,
  2351.  RPCOLEMESSAGE*pMessage);
  2352. void _stdcall IRpcChannelBuffer_FreeBuffer_Stub(IRpcStubBuffer *This,
  2353.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2354.  DWORD *_pdwStubPhase);
  2355. HRESULT _stdcall IRpcChannelBuffer_GetDestCtx_Proxy(IRpcChannelBuffer* This,
  2356.  DWORD*pdwDestContext,void * * ppvDestContext);
  2357. void _stdcall IRpcChannelBuffer_GetDestCtx_Stub(IRpcStubBuffer *This,
  2358.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2359.  DWORD *_pdwStubPhase);
  2360.  HRESULT _stdcall IRpcChannelBuffer_IsConnected_Proxy(IRpcChannelBuffer* This);
  2361. void _stdcall IRpcChannelBuffer_IsConnected_Stub(IRpcStubBuffer *This,
  2362.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2363.  DWORD *_pdwStubPhase);
  2364.  
  2365. extern const IID IID_IRpcProxyBuffer;
  2366.  
  2367. typedef struct IRpcProxyBufferVtbl {
  2368.  HRESULT (_stdcall*QueryInterface )( 
  2369.  IRpcProxyBuffer* This,REFIID riid, void * * ppvObject);
  2370.  ULONG (_stdcall*AddRef )( IRpcProxyBuffer* This);
  2371.  ULONG (_stdcall*Release )( IRpcProxyBuffer* This);
  2372.  HRESULT (_stdcall*)( IRpcProxyBuffer* ,IRpcChannelBuffer*);
  2373.  void (_stdcall*Disconnect )( IRpcProxyBuffer* This);
  2374. } IRpcProxyBufferVtbl;
  2375.  
  2376. interface IRpcProxyBuffer { struct IRpcProxyBufferVtbl*lpVtbl; };
  2377.  
  2378. #define IRpcProxyBuffer_QueryInterface(This,riid,ppvObject)    \
  2379.  (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2380. #define IRpcProxyBuffer_AddRef(This)    \
  2381.  (This)->lpVtbl->AddRef(This)
  2382. #define IRpcProxyBuffer_Release(This)    \
  2383.  (This)->lpVtbl->Release(This)
  2384. #define IRpcProxyBuffer_Connect(This,pRpcChannelBuffer)    \
  2385.  (This)->lpVtbl->Connect(This,pRpcChannelBuffer)
  2386. #define IRpcProxyBuffer_Disconnect(This)    \
  2387.  (This)->lpVtbl->Disconnect(This)
  2388.  HRESULT _stdcall IRpcProxyBuffer_Connect_Proxy(IRpcProxyBuffer* This,
  2389.  IRpcChannelBuffer*pRpcChannelBuffer);
  2390. void _stdcall IRpcProxyBuffer_Connect_Stub(IRpcStubBuffer *This,
  2391.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2392.  DWORD *_pdwStubPhase);
  2393. void _stdcall IRpcProxyBuffer_Disconnect_Proxy(IRpcProxyBuffer* This);
  2394. void _stdcall IRpcProxyBuffer_Disconnect_Stub(IRpcStubBuffer *This,
  2395.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2396.  DWORD *_pdwStubPhase);
  2397.  
  2398.  
  2399. extern const IID IID_IRpcStubBuffer;
  2400.  
  2401. typedef struct IRpcStubBufferVtbl {
  2402.  HRESULT (_stdcall*QueryInterface )(IRpcStubBuffer* This,REFIID riid,
  2403.  void * * ppvObject);
  2404.  ULONG (_stdcall*AddRef )( IRpcStubBuffer* This); 
  2405.  ULONG (_stdcall*Release )( IRpcStubBuffer* This);
  2406.  HRESULT (_stdcall*Connect )( IRpcStubBuffer* This,IUnknown*pUnkServer);
  2407.  void (_stdcall*Disconnect )( IRpcStubBuffer* This);
  2408.  HRESULT (_stdcall*Invoke )( IRpcStubBuffer* This,RPCOLEMESSAGE*_prpcmsg,
  2409.  IRpcChannelBuffer*_pRpcChannelBuffer);
  2410.  IRpcStubBuffer*(_stdcall*IsIIDSupported )( IRpcStubBuffer* This,REFIID riid);
  2411.  ULONG (_stdcall*CountRefs )( IRpcStubBuffer* This);
  2412.  HRESULT (_stdcall*DebugServerQueryInterface )( IRpcStubBuffer* This,void **ppv);
  2413.  void (_stdcall*DebugServerRelease )( IRpcStubBuffer* This,void*pv);
  2414. } IRpcStubBufferVtbl;
  2415.  
  2416. interface IRpcStubBuffer { struct IRpcStubBufferVtbl*lpVtbl; };
  2417.  
  2418. #define IRpcStubBuffer_QueryInterface(T,r,pp) (T)->lpVtbl->QueryInterface(T,r,pp)
  2419. #define IRpcStubBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
  2420. #define IRpcStubBuffer_Release(This)    (This)->lpVtbl->Release(This)
  2421. #define IRpcStubBuffer_Connect(This,p)     (This)->lpVtbl->Connect(This,p)
  2422. #define IRpcStubBuffer_Disconnect(This)     (This)->lpVtbl->Disconnect(This)
  2423. #define IRpcStubBuffer_Invoke(T,_prpcmsg,_p)     (T)->lpVtbl->Invoke(This,_prpcmsg,_p)
  2424. #define IRpcStubBuffer_IsIIDSupported(This,riid)    \
  2425.  (This)->lpVtbl->IsIIDSupported(This,riid)
  2426. #define IRpcStubBuffer_CountRefs(This)    \
  2427.  (This)->lpVtbl->CountRefs(This)
  2428. #define IRpcStubBuffer_DebugServerQueryInterface(This,ppv)    \
  2429.  (This)->lpVtbl->DebugServerQueryInterface(This,ppv)
  2430. #define IRpcStubBuffer_DebugServerRelease(This,pv)    \
  2431.  (This)->lpVtbl->DebugServerRelease(This,pv)
  2432.  
  2433. HRESULT _stdcall IRpcStubBuffer_Connect_Proxy( IRpcStubBuffer*,IUnknown*);
  2434. void _stdcall IRpcStubBuffer_Connect_Stub( IRpcStubBuffer *This,
  2435.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  2436.  DWORD *_pdwStubPhase);
  2437. void _stdcall IRpcStubBuffer_Disconnect_Proxy( IRpcStubBuffer* This);
  2438. void _stdcall IRpcStubBuffer_Disconnect_Stub( IRpcStubBuffer *This,
  2439.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  2440.  DWORD *_pdwStubPhase);
  2441. HRESULT _stdcall IRpcStubBuffer_Invoke_Proxy( IRpcStubBuffer* This,
  2442.  RPCOLEMESSAGE*_prpcmsg, IRpcChannelBuffer*_pRpcChannelBuffer);
  2443. void _stdcall IRpcStubBuffer_Invoke_Stub(IRpcStubBuffer *This,
  2444.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  2445.  DWORD *_pdwStubPhase);
  2446. IRpcStubBuffer*_stdcall IRpcStubBuffer_IsIIDSupported_Proxy(IRpcStubBuffer* This,
  2447.  REFIID riid);
  2448. void _stdcall IRpcStubBuffer_IsIIDSupported_Stub(IRpcStubBuffer *This,
  2449.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage,
  2450.  DWORD *_pdwStubPhase);
  2451. ULONG _stdcall IRpcStubBuffer_CountRefs_Proxy(IRpcStubBuffer* This);
  2452. void _stdcall IRpcStubBuffer_CountRefs_Stub(IRpcStubBuffer *This,
  2453.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2454.  DWORD *_pdwStubPhase);
  2455. HRESULT _stdcall IRpcStubBuffer_DebugServerQueryInterface_Proxy(IRpcStubBuffer* This,
  2456.  void * * ppv);
  2457. void _stdcall IRpcStubBuffer_DebugServerQueryInterface_Stub(IRpcStubBuffer *This,
  2458.  IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  2459. void _stdcall IRpcStubBuffer_DebugServerRelease_Proxy(IRpcStubBuffer* This,
  2460.  void*pv);
  2461. void _stdcall IRpcStubBuffer_DebugServerRelease_Stub(IRpcStubBuffer *This,
  2462.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);
  2463.  
  2464. extern const IID IID_IPSFactoryBuffer;
  2465. typedef struct IPSFactoryBufferVtbl {
  2466.  HRESULT (_stdcall*QueryInterface )( IPSFactoryBuffer* This,
  2467.  REFIID riid,void * * ppvObject); 
  2468.  ULONG (_stdcall*AddRef )( IPSFactoryBuffer* This);
  2469.  ULONG (_stdcall*Release )( IPSFactoryBuffer* This);
  2470.  HRESULT (_stdcall*CreateProxy )( IPSFactoryBuffer* This,
  2471.  IUnknown*pUnkOuter,REFIID riid, IRpcProxyBuffer * * ppProxy, void * * ppv);
  2472.  HRESULT (_stdcall*CreateStub )( IPSFactoryBuffer* This,REFIID riid,
  2473.  IUnknown*pUnkServer,IRpcStubBuffer * * ppStub);
  2474. } IPSFactoryBufferVtbl;
  2475.  
  2476. interface IPSFactoryBuffer { struct IPSFactoryBufferVtbl*lpVtbl; };
  2477.  
  2478. #define IPSFactoryBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2479. #define IPSFactoryBuffer_AddRef(This)    (This)->lpVtbl->AddRef(This)
  2480. #define IPSFactoryBuffer_Release(This)    (This)->lpVtbl->Release(This)
  2481. #define IPSFactoryBuffer_CreateProxy(This,pUnkOuter,riid,ppProxy,ppv)    \
  2482.  (This)->lpVtbl->CreateProxy(This,pUnkOuter,riid,ppProxy,ppv)
  2483. #define IPSFactoryBuffer_CreateStub(This,riid,pUnkServer,ppStub)    \
  2484.  (This)->lpVtbl->CreateStub(This,riid,pUnkServer,ppStub)
  2485.  HRESULT _stdcall IPSFactoryBuffer_CreateProxy_Proxy(IPSFactoryBuffer* This,
  2486.  IUnknown*pUnkOuter,REFIID riid, IRpcProxyBuffer * * ppProxy, void * * ppv);
  2487. void _stdcall IPSFactoryBuffer_CreateProxy_Stub(IRpcStubBuffer *This,
  2488.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2489.  DWORD *_pdwStubPhase);
  2490.  HRESULT _stdcall IPSFactoryBuffer_CreateStub_Proxy(IPSFactoryBuffer* This,
  2491.  REFIID riid,IUnknown*pUnkServer, IRpcStubBuffer * * ppStub);
  2492. void _stdcall IPSFactoryBuffer_CreateStub_Stub(IRpcStubBuffer *This,
  2493.  IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,
  2494.  DWORD *_pdwStubPhase);
  2495.  
  2496. void _stdcall SNB_to_xmit(SNB*,RemSNB** );
  2497. void _stdcall SNB_from_xmit(RemSNB*,SNB* );
  2498. void _stdcall SNB_free_inst(SNB* );
  2499. void _stdcall SNB_free_xmit(RemSNB* );
  2500. HRESULT _stdcall IEnumUnknown_Next_Proxy(IEnumUnknown* This,
  2501.  ULONG celt,IUnknown * * rgelt, ULONG*pceltFetched);
  2502. HRESULT _stdcall IEnumUnknown_Next_Stub(IEnumUnknown* This,
  2503.  ULONG celt,IUnknown * * rgelt,ULONG*pceltFetched);
  2504. HRESULT _stdcall IEnumMoniker_Next_Proxy(IEnumMoniker* This,
  2505.  ULONG celt,IMoniker * * rgelt, ULONG*pceltFetched);
  2506. HRESULT _stdcall IEnumMoniker_Next_Stub(IEnumMoniker* This,
  2507.  ULONG celt,IMoniker * * rgelt,ULONG*pceltFetched);
  2508. HRESULT _stdcall IMoniker_BindToObject_Proxy(IMoniker* This,
  2509.  IBindCtx*pbc,IMoniker*pmkToLeft, REFIID riidResult,
  2510.  void * * ppvResult);
  2511. HRESULT _stdcall IMoniker_BindToObject_Stub(IMoniker* This,
  2512.  IBindCtx*pbc,IMoniker*pmkToLeft, REFIID riidResult,
  2513.  IUnknown * * ppvResult);
  2514. HRESULT _stdcall IMoniker_BindToStorage_Proxy(IMoniker* This,
  2515.  IBindCtx*pbc,IMoniker*pmkToLeft, REFIID riid,
  2516.  void * * ppvObj);
  2517. HRESULT _stdcall IMoniker_BindToStorage_Stub(IMoniker* This,
  2518.  IBindCtx*pbc,IMoniker*pmkToLeft, REFIID riid,
  2519.  IUnknown * * ppvObj);
  2520. HRESULT _stdcall IEnumString_Next_Proxy(IEnumString* This,
  2521.  ULONG celt,LPCSTR*rgelt, ULONG*pceltFetched);
  2522. HRESULT _stdcall IEnumString_Next_Stub(IEnumString* This,
  2523.  ULONG celt,LPCSTR*rgelt, ULONG*pceltFetched);
  2524. HRESULT _stdcall IStream_Read_Proxy(IStream* This,
  2525.  void*pv,ULONG cb, ULONG*pcbRead);
  2526. HRESULT _stdcall IStream_Read_Stub(IStream*,BYTE *,ULONG,ULONG *);
  2527. HRESULT _stdcall IStream_Write_Proxy(IStream* This,
  2528.  void*pv,ULONG cb, ULONG*pcbWritten);
  2529. HRESULT _stdcall IStream_Write_Stub(IStream* This,
  2530.  BYTE *pv,ULONG cb, ULONG*pcbWritten);
  2531. HRESULT _stdcall IStream_Seek_Proxy(IStream* This,
  2532.  LARGE_INTEGER dlibMove,DWORD dwOrigin, ULARGE_INTEGER*plibNewPosition);
  2533. HRESULT _stdcall IStream_Seek_Stub(IStream* This,
  2534.  LARGE_INTEGER dlibMove,DWORD dwOrigin, ULARGE_INTEGER*plibNewPosition);
  2535. HRESULT _stdcall IStream_CopyTo_Proxy(IStream* This,
  2536.  IStream*pstm,ULARGE_INTEGER cb, ULARGE_INTEGER*pcbRead,
  2537.  ULARGE_INTEGER*pcbWritten);
  2538. HRESULT _stdcall IStream_CopyTo_Stub(IStream*,IStream*,ULARGE_INTEGER,ULARGE_INTEGER*,ULARGE_INTEGER*);
  2539. HRESULT _stdcall IEnumSTATSTG_Next_Proxy(IEnumSTATSTG*,ULONG,STATSTG*,ULONG*);
  2540. HRESULT _stdcall IEnumSTATSTG_Next_Stub(IEnumSTATSTG*,ULONG,STATSTG*,ULONG*);
  2541. HRESULT _stdcall IStorage_OpenStream_Proxy(IStorage*,OLECHAR*,void*,DWORD,DWORD,IStream * *);
  2542. HRESULT _stdcall IStorage_OpenStream_Stub(IStorage*,OLECHAR*,unsigned long,BYTE *,DWORD,DWORD, IStream * * );
  2543. HRESULT _stdcall IStorage_EnumElements_Proxy(IStorage*,DWORD,void*,DWORD,IEnumSTATSTG **);
  2544. HRESULT _stdcall IStorage_EnumElements_Stub(IStorage*,DWORD,unsigned long,BYTE *,DWORD,IEnumSTATSTG * *);
  2545. HRESULT _stdcall ILockBytes_ReadAt_Proxy(ILockBytes* This,
  2546.  ULARGE_INTEGER ulOffset,void*pv, ULONG cb, ULONG*pcbRead);
  2547. HRESULT _stdcall ILockBytes_ReadAt_Stub(ILockBytes* This,
  2548.  ULARGE_INTEGER ulOffset,BYTE *pv, ULONG cb, ULONG*pcbRead);
  2549. HRESULT _stdcall ILockBytes_WriteAt_Proxy(ILockBytes* This,
  2550.  ULARGE_INTEGER ulOffset,const void*pv, ULONG cb, ULONG*pcbWritten);
  2551. HRESULT _stdcall ILockBytes_WriteAt_Stub(
  2552.  ILockBytes* This,ULARGE_INTEGER ulOffset, BYTE *pv,
  2553.  ULONG cb,ULONG*pcbWritten);
  2554. HRESULT _stdcall IEnumFORMATETC_Next_Proxy(IEnumFORMATETC * This,
  2555.  ULONG celt,FORMATETC *rgelt, ULONG*pceltFetched);
  2556. HRESULT _stdcall IEnumFORMATETC_Next_Stub(IEnumFORMATETC * This,
  2557.  ULONG celt,FORMATETC *rgelt, ULONG*pceltFetched);
  2558. HRESULT _stdcall IEnumSTATDATA_Next_Proxy(IEnumSTATDATA* This,
  2559.  ULONG celt,STATDATA*rgelt, ULONG*pceltFetched);
  2560. HRESULT _stdcall IEnumSTATDATA_Next_Stub(IEnumSTATDATA* This,
  2561.  ULONG celt,STATDATA*rgelt, ULONG*pceltFetched);
  2562. void _stdcall IAdviseSink_OnDataChange_Proxy(IAdviseSink* This,
  2563.  FORMATETC *pFormatetc,STGMEDIUM*pStgmed);
  2564. void _stdcall IAdviseSink_OnDataChange_Stub(IAdviseSink* This,
  2565.  FORMATETC *pFormatetc,RemSTGMEDIUM*pStgmed);
  2566. void _stdcall IAdviseSink_OnViewChange_Proxy(IAdviseSink* This,
  2567.  DWORD dwAspect,LONG lindex);
  2568. void _stdcall IAdviseSink_OnViewChange_Stub(IAdviseSink* This,
  2569.  DWORD dwAspect,LONG lindex);
  2570. void _stdcall IAdviseSink_OnRename_Proxy(IAdviseSink* This,IMoniker*pmk);
  2571. void _stdcall IAdviseSink_OnRename_Stub(IAdviseSink* This,IMoniker*pmk);
  2572. void _stdcall IAdviseSink_OnSave_Proxy(IAdviseSink* This);
  2573. void _stdcall IAdviseSink_OnSave_Stub(IAdviseSink* This);
  2574. void _stdcall IAdviseSink_OnClose_Proxy(IAdviseSink* This);
  2575. HRESULT _stdcall IAdviseSink_OnClose_Stub(IAdviseSink* This);
  2576. void _stdcall IAdviseSink2_OnLinkSrcChange_Proxy(IAdviseSink2 *,IMoniker *);
  2577. void _stdcall IAdviseSink2_OnLinkSrcChange_Stub(IAdviseSink2 *,IMoniker *);
  2578. HRESULT _stdcall IDataObject_GetData_Proxy(IDataObject *,FORMATETC *,STGMEDIUM *);
  2579. HRESULT _stdcall IDataObject_GetData_Stub(IDataObject *,FORMATETC *,RemSTGMEDIUM * *);
  2580. HRESULT _stdcall IDataObject_GetDataHere_Proxy(IDataObject* This,
  2581.  FORMATETC *pformatetc,STGMEDIUM*pmedium);
  2582. HRESULT _stdcall IDataObject_GetDataHere_Stub(
  2583.  IDataObject* This,FORMATETC *pformatetc, RemSTGMEDIUM * * ppRemoteMedium);
  2584. HRESULT _stdcall IDataObject_SetData_Proxy(IDataObject* This,FORMATETC *pformatetc,
  2585.  STGMEDIUM*pmedium,BOOL fRelease);
  2586. HRESULT _stdcall IDataObject_SetData_Stub(IDataObject* This,FORMATETC *pformatetc,
  2587.  RemSTGMEDIUM*pmedium,BOOL fRelease);
  2588. #endif
  2589. #endif
  2590.