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

模拟服务器

开发平台:

C/C++

  1.     IMoniker * This,
  2.     /* [unique][in] */ IBindCtx *pbc,
  3.     /* [unique][in] */ IMoniker *pmkToLeft,
  4.     /* [in] */ REFIID riid,
  5.     /* [iid_is][out] */ IUnknown **ppvObj);
  6. void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
  7.     IRpcStubBuffer *This,
  8.     IRpcChannelBuffer *_pRpcChannelBuffer,
  9.     PRPC_MESSAGE _pRpcMessage,
  10.     DWORD *_pdwStubPhase);
  11. HRESULT STDMETHODCALLTYPE IMoniker_Reduce_Proxy( 
  12.     IMoniker * This,
  13.     /* [unique][in] */ IBindCtx *pbc,
  14.     /* [in] */ DWORD dwReduceHowFar,
  15.     /* [unique][out][in] */ IMoniker **ppmkToLeft,
  16.     /* [out] */ IMoniker **ppmkReduced);
  17. void __RPC_STUB IMoniker_Reduce_Stub(
  18.     IRpcStubBuffer *This,
  19.     IRpcChannelBuffer *_pRpcChannelBuffer,
  20.     PRPC_MESSAGE _pRpcMessage,
  21.     DWORD *_pdwStubPhase);
  22. HRESULT STDMETHODCALLTYPE IMoniker_ComposeWith_Proxy( 
  23.     IMoniker * This,
  24.     /* [unique][in] */ IMoniker *pmkRight,
  25.     /* [in] */ BOOL fOnlyIfNotGeneric,
  26.     /* [out] */ IMoniker **ppmkComposite);
  27. void __RPC_STUB IMoniker_ComposeWith_Stub(
  28.     IRpcStubBuffer *This,
  29.     IRpcChannelBuffer *_pRpcChannelBuffer,
  30.     PRPC_MESSAGE _pRpcMessage,
  31.     DWORD *_pdwStubPhase);
  32. HRESULT STDMETHODCALLTYPE IMoniker_Enum_Proxy( 
  33.     IMoniker * This,
  34.     /* [in] */ BOOL fForward,
  35.     /* [out] */ IEnumMoniker **ppenumMoniker);
  36. void __RPC_STUB IMoniker_Enum_Stub(
  37.     IRpcStubBuffer *This,
  38.     IRpcChannelBuffer *_pRpcChannelBuffer,
  39.     PRPC_MESSAGE _pRpcMessage,
  40.     DWORD *_pdwStubPhase);
  41. HRESULT STDMETHODCALLTYPE IMoniker_IsEqual_Proxy( 
  42.     IMoniker * This,
  43.     /* [unique][in] */ IMoniker *pmkOtherMoniker);
  44. void __RPC_STUB IMoniker_IsEqual_Stub(
  45.     IRpcStubBuffer *This,
  46.     IRpcChannelBuffer *_pRpcChannelBuffer,
  47.     PRPC_MESSAGE _pRpcMessage,
  48.     DWORD *_pdwStubPhase);
  49. HRESULT STDMETHODCALLTYPE IMoniker_Hash_Proxy( 
  50.     IMoniker * This,
  51.     /* [out] */ DWORD *pdwHash);
  52. void __RPC_STUB IMoniker_Hash_Stub(
  53.     IRpcStubBuffer *This,
  54.     IRpcChannelBuffer *_pRpcChannelBuffer,
  55.     PRPC_MESSAGE _pRpcMessage,
  56.     DWORD *_pdwStubPhase);
  57. HRESULT STDMETHODCALLTYPE IMoniker_IsRunning_Proxy( 
  58.     IMoniker * This,
  59.     /* [unique][in] */ IBindCtx *pbc,
  60.     /* [unique][in] */ IMoniker *pmkToLeft,
  61.     /* [unique][in] */ IMoniker *pmkNewlyRunning);
  62. void __RPC_STUB IMoniker_IsRunning_Stub(
  63.     IRpcStubBuffer *This,
  64.     IRpcChannelBuffer *_pRpcChannelBuffer,
  65.     PRPC_MESSAGE _pRpcMessage,
  66.     DWORD *_pdwStubPhase);
  67. HRESULT STDMETHODCALLTYPE IMoniker_GetTimeOfLastChange_Proxy( 
  68.     IMoniker * This,
  69.     /* [unique][in] */ IBindCtx *pbc,
  70.     /* [unique][in] */ IMoniker *pmkToLeft,
  71.     /* [out] */ FILETIME *pFileTime);
  72. void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
  73.     IRpcStubBuffer *This,
  74.     IRpcChannelBuffer *_pRpcChannelBuffer,
  75.     PRPC_MESSAGE _pRpcMessage,
  76.     DWORD *_pdwStubPhase);
  77. HRESULT STDMETHODCALLTYPE IMoniker_Inverse_Proxy( 
  78.     IMoniker * This,
  79.     /* [out] */ IMoniker **ppmk);
  80. void __RPC_STUB IMoniker_Inverse_Stub(
  81.     IRpcStubBuffer *This,
  82.     IRpcChannelBuffer *_pRpcChannelBuffer,
  83.     PRPC_MESSAGE _pRpcMessage,
  84.     DWORD *_pdwStubPhase);
  85. HRESULT STDMETHODCALLTYPE IMoniker_CommonPrefixWith_Proxy( 
  86.     IMoniker * This,
  87.     /* [unique][in] */ IMoniker *pmkOther,
  88.     /* [out] */ IMoniker **ppmkPrefix);
  89. void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
  90.     IRpcStubBuffer *This,
  91.     IRpcChannelBuffer *_pRpcChannelBuffer,
  92.     PRPC_MESSAGE _pRpcMessage,
  93.     DWORD *_pdwStubPhase);
  94. HRESULT STDMETHODCALLTYPE IMoniker_RelativePathTo_Proxy( 
  95.     IMoniker * This,
  96.     /* [unique][in] */ IMoniker *pmkOther,
  97.     /* [out] */ IMoniker **ppmkRelPath);
  98. void __RPC_STUB IMoniker_RelativePathTo_Stub(
  99.     IRpcStubBuffer *This,
  100.     IRpcChannelBuffer *_pRpcChannelBuffer,
  101.     PRPC_MESSAGE _pRpcMessage,
  102.     DWORD *_pdwStubPhase);
  103. HRESULT STDMETHODCALLTYPE IMoniker_GetDisplayName_Proxy( 
  104.     IMoniker * This,
  105.     /* [unique][in] */ IBindCtx *pbc,
  106.     /* [unique][in] */ IMoniker *pmkToLeft,
  107.     /* [out] */ LPOLESTR *ppszDisplayName);
  108. void __RPC_STUB IMoniker_GetDisplayName_Stub(
  109.     IRpcStubBuffer *This,
  110.     IRpcChannelBuffer *_pRpcChannelBuffer,
  111.     PRPC_MESSAGE _pRpcMessage,
  112.     DWORD *_pdwStubPhase);
  113. HRESULT STDMETHODCALLTYPE IMoniker_ParseDisplayName_Proxy( 
  114.     IMoniker * This,
  115.     /* [unique][in] */ IBindCtx *pbc,
  116.     /* [unique][in] */ IMoniker *pmkToLeft,
  117.     /* [in] */ LPOLESTR pszDisplayName,
  118.     /* [out] */ ULONG *pchEaten,
  119.     /* [out] */ IMoniker **ppmkOut);
  120. void __RPC_STUB IMoniker_ParseDisplayName_Stub(
  121.     IRpcStubBuffer *This,
  122.     IRpcChannelBuffer *_pRpcChannelBuffer,
  123.     PRPC_MESSAGE _pRpcMessage,
  124.     DWORD *_pdwStubPhase);
  125. HRESULT STDMETHODCALLTYPE IMoniker_IsSystemMoniker_Proxy( 
  126.     IMoniker * This,
  127.     /* [out] */ DWORD *pdwMksys);
  128. void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
  129.     IRpcStubBuffer *This,
  130.     IRpcChannelBuffer *_pRpcChannelBuffer,
  131.     PRPC_MESSAGE _pRpcMessage,
  132.     DWORD *_pdwStubPhase);
  133. #endif  /* __IMoniker_INTERFACE_DEFINED__ */
  134. #ifndef __IROTData_INTERFACE_DEFINED__
  135. #define __IROTData_INTERFACE_DEFINED__
  136. /* interface IROTData */
  137. /* [unique][uuid][object] */ 
  138. EXTERN_C const IID IID_IROTData;
  139. #if defined(__cplusplus) && !defined(CINTERFACE)
  140.     
  141.     MIDL_INTERFACE("f29f6bc0-5021-11ce-aa15-00006901293f")
  142.     IROTData : public IUnknown
  143.     {
  144.     public:
  145.         virtual HRESULT STDMETHODCALLTYPE GetComparisonData( 
  146.             /* [size_is][out] */ byte *pbData,
  147.             /* [in] */ ULONG cbMax,
  148.             /* [out] */ ULONG *pcbData) = 0;
  149.         
  150.     };
  151.     
  152. #else  /* C style interface */
  153.     typedef struct IROTDataVtbl
  154.     {
  155.         BEGIN_INTERFACE
  156.         
  157.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  158.             IROTData * This,
  159.             /* [in] */ REFIID riid,
  160.             /* [iid_is][out] */ void **ppvObject);
  161.         
  162.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  163.             IROTData * This);
  164.         
  165.         ULONG ( STDMETHODCALLTYPE *Release )( 
  166.             IROTData * This);
  167.         
  168.         HRESULT ( STDMETHODCALLTYPE *GetComparisonData )( 
  169.             IROTData * This,
  170.             /* [size_is][out] */ byte *pbData,
  171.             /* [in] */ ULONG cbMax,
  172.             /* [out] */ ULONG *pcbData);
  173.         
  174.         END_INTERFACE
  175.     } IROTDataVtbl;
  176.     interface IROTData
  177.     {
  178.         CONST_VTBL struct IROTDataVtbl *lpVtbl;
  179.     };
  180.     
  181. #ifdef COBJMACROS
  182. #define IROTData_QueryInterface(This,riid,ppvObject)
  183.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  184. #define IROTData_AddRef(This)
  185.     (This)->lpVtbl -> AddRef(This)
  186. #define IROTData_Release(This)
  187.     (This)->lpVtbl -> Release(This)
  188. #define IROTData_GetComparisonData(This,pbData,cbMax,pcbData)
  189.     (This)->lpVtbl -> GetComparisonData(This,pbData,cbMax,pcbData)
  190. #endif /* COBJMACROS */
  191. #endif  /* C style interface */
  192. HRESULT STDMETHODCALLTYPE IROTData_GetComparisonData_Proxy( 
  193.     IROTData * This,
  194.     /* [size_is][out] */ byte *pbData,
  195.     /* [in] */ ULONG cbMax,
  196.     /* [out] */ ULONG *pcbData);
  197. void __RPC_STUB IROTData_GetComparisonData_Stub(
  198.     IRpcStubBuffer *This,
  199.     IRpcChannelBuffer *_pRpcChannelBuffer,
  200.     PRPC_MESSAGE _pRpcMessage,
  201.     DWORD *_pdwStubPhase);
  202. #endif  /* __IROTData_INTERFACE_DEFINED__ */
  203. #ifndef __IEnumString_INTERFACE_DEFINED__
  204. #define __IEnumString_INTERFACE_DEFINED__
  205. /* interface IEnumString */
  206. /* [unique][uuid][object] */ 
  207. typedef /* [unique] */ IEnumString *LPENUMSTRING;
  208. EXTERN_C const IID IID_IEnumString;
  209. #if defined(__cplusplus) && !defined(CINTERFACE)
  210.     
  211.     MIDL_INTERFACE("00000101-0000-0000-C000-000000000046")
  212.     IEnumString : public IUnknown
  213.     {
  214.     public:
  215.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( 
  216.             /* [in] */ ULONG celt,
  217.             /* [length_is][size_is][out] */ LPOLESTR *rgelt,
  218.             /* [out] */ ULONG *pceltFetched) = 0;
  219.         
  220.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  221.             /* [in] */ ULONG celt) = 0;
  222.         
  223.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  224.         
  225.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  226.             /* [out] */ IEnumString **ppenum) = 0;
  227.         
  228.     };
  229.     
  230. #else  /* C style interface */
  231.     typedef struct IEnumStringVtbl
  232.     {
  233.         BEGIN_INTERFACE
  234.         
  235.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  236.             IEnumString * This,
  237.             /* [in] */ REFIID riid,
  238.             /* [iid_is][out] */ void **ppvObject);
  239.         
  240.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  241.             IEnumString * This);
  242.         
  243.         ULONG ( STDMETHODCALLTYPE *Release )( 
  244.             IEnumString * This);
  245.         
  246.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
  247.             IEnumString * This,
  248.             /* [in] */ ULONG celt,
  249.             /* [length_is][size_is][out] */ LPOLESTR *rgelt,
  250.             /* [out] */ ULONG *pceltFetched);
  251.         
  252.         HRESULT ( STDMETHODCALLTYPE *Skip )( 
  253.             IEnumString * This,
  254.             /* [in] */ ULONG celt);
  255.         
  256.         HRESULT ( STDMETHODCALLTYPE *Reset )( 
  257.             IEnumString * This);
  258.         
  259.         HRESULT ( STDMETHODCALLTYPE *Clone )( 
  260.             IEnumString * This,
  261.             /* [out] */ IEnumString **ppenum);
  262.         
  263.         END_INTERFACE
  264.     } IEnumStringVtbl;
  265.     interface IEnumString
  266.     {
  267.         CONST_VTBL struct IEnumStringVtbl *lpVtbl;
  268.     };
  269.     
  270. #ifdef COBJMACROS
  271. #define IEnumString_QueryInterface(This,riid,ppvObject)
  272.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  273. #define IEnumString_AddRef(This)
  274.     (This)->lpVtbl -> AddRef(This)
  275. #define IEnumString_Release(This)
  276.     (This)->lpVtbl -> Release(This)
  277. #define IEnumString_Next(This,celt,rgelt,pceltFetched)
  278.     (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched)
  279. #define IEnumString_Skip(This,celt)
  280.     (This)->lpVtbl -> Skip(This,celt)
  281. #define IEnumString_Reset(This)
  282.     (This)->lpVtbl -> Reset(This)
  283. #define IEnumString_Clone(This,ppenum)
  284.     (This)->lpVtbl -> Clone(This,ppenum)
  285. #endif /* COBJMACROS */
  286. #endif  /* C style interface */
  287. /* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy( 
  288.     IEnumString * This,
  289.     /* [in] */ ULONG celt,
  290.     /* [length_is][size_is][out] */ LPOLESTR *rgelt,
  291.     /* [out] */ ULONG *pceltFetched);
  292. void __RPC_STUB IEnumString_RemoteNext_Stub(
  293.     IRpcStubBuffer *This,
  294.     IRpcChannelBuffer *_pRpcChannelBuffer,
  295.     PRPC_MESSAGE _pRpcMessage,
  296.     DWORD *_pdwStubPhase);
  297. HRESULT STDMETHODCALLTYPE IEnumString_Skip_Proxy( 
  298.     IEnumString * This,
  299.     /* [in] */ ULONG celt);
  300. void __RPC_STUB IEnumString_Skip_Stub(
  301.     IRpcStubBuffer *This,
  302.     IRpcChannelBuffer *_pRpcChannelBuffer,
  303.     PRPC_MESSAGE _pRpcMessage,
  304.     DWORD *_pdwStubPhase);
  305. HRESULT STDMETHODCALLTYPE IEnumString_Reset_Proxy( 
  306.     IEnumString * This);
  307. void __RPC_STUB IEnumString_Reset_Stub(
  308.     IRpcStubBuffer *This,
  309.     IRpcChannelBuffer *_pRpcChannelBuffer,
  310.     PRPC_MESSAGE _pRpcMessage,
  311.     DWORD *_pdwStubPhase);
  312. HRESULT STDMETHODCALLTYPE IEnumString_Clone_Proxy( 
  313.     IEnumString * This,
  314.     /* [out] */ IEnumString **ppenum);
  315. void __RPC_STUB IEnumString_Clone_Stub(
  316.     IRpcStubBuffer *This,
  317.     IRpcChannelBuffer *_pRpcChannelBuffer,
  318.     PRPC_MESSAGE _pRpcMessage,
  319.     DWORD *_pdwStubPhase);
  320. #endif  /* __IEnumString_INTERFACE_DEFINED__ */
  321. #ifndef __ISequentialStream_INTERFACE_DEFINED__
  322. #define __ISequentialStream_INTERFACE_DEFINED__
  323. /* interface ISequentialStream */
  324. /* [unique][uuid][object] */ 
  325. EXTERN_C const IID IID_ISequentialStream;
  326. #if defined(__cplusplus) && !defined(CINTERFACE)
  327.     
  328.     MIDL_INTERFACE("0c733a30-2a1c-11ce-ade5-00aa0044773d")
  329.     ISequentialStream : public IUnknown
  330.     {
  331.     public:
  332.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Read( 
  333.             /* [length_is][size_is][out] */ void *pv,
  334.             /* [in] */ ULONG cb,
  335.             /* [out] */ ULONG *pcbRead) = 0;
  336.         
  337.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Write( 
  338.             /* [size_is][in] */ const void *pv,
  339.             /* [in] */ ULONG cb,
  340.             /* [out] */ ULONG *pcbWritten) = 0;
  341.         
  342.     };
  343.     
  344. #else  /* C style interface */
  345.     typedef struct ISequentialStreamVtbl
  346.     {
  347.         BEGIN_INTERFACE
  348.         
  349.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  350.             ISequentialStream * This,
  351.             /* [in] */ REFIID riid,
  352.             /* [iid_is][out] */ void **ppvObject);
  353.         
  354.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  355.             ISequentialStream * This);
  356.         
  357.         ULONG ( STDMETHODCALLTYPE *Release )( 
  358.             ISequentialStream * This);
  359.         
  360.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )( 
  361.             ISequentialStream * This,
  362.             /* [length_is][size_is][out] */ void *pv,
  363.             /* [in] */ ULONG cb,
  364.             /* [out] */ ULONG *pcbRead);
  365.         
  366.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )( 
  367.             ISequentialStream * This,
  368.             /* [size_is][in] */ const void *pv,
  369.             /* [in] */ ULONG cb,
  370.             /* [out] */ ULONG *pcbWritten);
  371.         
  372.         END_INTERFACE
  373.     } ISequentialStreamVtbl;
  374.     interface ISequentialStream
  375.     {
  376.         CONST_VTBL struct ISequentialStreamVtbl *lpVtbl;
  377.     };
  378.     
  379. #ifdef COBJMACROS
  380. #define ISequentialStream_QueryInterface(This,riid,ppvObject)
  381.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  382. #define ISequentialStream_AddRef(This)
  383.     (This)->lpVtbl -> AddRef(This)
  384. #define ISequentialStream_Release(This)
  385.     (This)->lpVtbl -> Release(This)
  386. #define ISequentialStream_Read(This,pv,cb,pcbRead)
  387.     (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
  388. #define ISequentialStream_Write(This,pv,cb,pcbWritten)
  389.     (This)->lpVtbl -> Write(This,pv,cb,pcbWritten)
  390. #endif /* COBJMACROS */
  391. #endif  /* C style interface */
  392. /* [call_as] */ HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteRead_Proxy( 
  393.     ISequentialStream * This,
  394.     /* [length_is][size_is][out] */ byte *pv,
  395.     /* [in] */ ULONG cb,
  396.     /* [out] */ ULONG *pcbRead);
  397. void __RPC_STUB ISequentialStream_RemoteRead_Stub(
  398.     IRpcStubBuffer *This,
  399.     IRpcChannelBuffer *_pRpcChannelBuffer,
  400.     PRPC_MESSAGE _pRpcMessage,
  401.     DWORD *_pdwStubPhase);
  402. /* [call_as] */ HRESULT STDMETHODCALLTYPE ISequentialStream_RemoteWrite_Proxy( 
  403.     ISequentialStream * This,
  404.     /* [size_is][in] */ const byte *pv,
  405.     /* [in] */ ULONG cb,
  406.     /* [out] */ ULONG *pcbWritten);
  407. void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
  408.     IRpcStubBuffer *This,
  409.     IRpcChannelBuffer *_pRpcChannelBuffer,
  410.     PRPC_MESSAGE _pRpcMessage,
  411.     DWORD *_pdwStubPhase);
  412. #endif  /* __ISequentialStream_INTERFACE_DEFINED__ */
  413. #ifndef __IStream_INTERFACE_DEFINED__
  414. #define __IStream_INTERFACE_DEFINED__
  415. /* interface IStream */
  416. /* [unique][uuid][object] */ 
  417. typedef /* [unique] */ IStream *LPSTREAM;
  418. //FSSpec is Macintosh only, defined in macosfiles.h
  419. #ifdef _MAC
  420.     typedef struct tagSTATSTG
  421.     {                      
  422.         LPOLESTR pwcsName;
  423.             FSSpec *pspec;
  424.         DWORD type;
  425.         ULARGE_INTEGER cbSize;
  426.         FILETIME mtime;
  427.         FILETIME ctime;
  428.         FILETIME atime;
  429.         DWORD grfMode;
  430.         DWORD grfLocksSupported;
  431.         CLSID clsid;
  432.         DWORD grfStateBits;
  433.         DWORD reserved;
  434.     } STATSTG;
  435. #else //_MAC
  436. typedef struct tagSTATSTG
  437.     {
  438.     LPOLESTR pwcsName;
  439.     DWORD type;
  440.     ULARGE_INTEGER cbSize;
  441.     FILETIME mtime;
  442.     FILETIME ctime;
  443.     FILETIME atime;
  444.     DWORD grfMode;
  445.     DWORD grfLocksSupported;
  446.     CLSID clsid;
  447.     DWORD grfStateBits;
  448.     DWORD reserved;
  449.     }  STATSTG;
  450. #endif //_MAC
  451. typedef 
  452. enum tagSTGTY
  453.     { STGTY_STORAGE = 1,
  454. STGTY_STREAM = 2,
  455. STGTY_LOCKBYTES = 3,
  456. STGTY_PROPERTY = 4
  457.     }  STGTY;
  458. typedef 
  459. enum tagSTREAM_SEEK
  460.     { STREAM_SEEK_SET = 0,
  461. STREAM_SEEK_CUR = 1,
  462. STREAM_SEEK_END = 2
  463.     }  STREAM_SEEK;
  464. typedef 
  465. enum tagLOCKTYPE
  466.     { LOCK_WRITE = 1,
  467. LOCK_EXCLUSIVE = 2,
  468. LOCK_ONLYONCE = 4
  469.     }  LOCKTYPE;
  470. EXTERN_C const IID IID_IStream;
  471. #if defined(__cplusplus) && !defined(CINTERFACE)
  472.     
  473.     MIDL_INTERFACE("0000000c-0000-0000-C000-000000000046")
  474.     IStream : public ISequentialStream
  475.     {
  476.     public:
  477.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Seek( 
  478.             /* [in] */ LARGE_INTEGER dlibMove,
  479.             /* [in] */ DWORD dwOrigin,
  480.             /* [out] */ ULARGE_INTEGER *plibNewPosition) = 0;
  481.         
  482.         virtual HRESULT STDMETHODCALLTYPE SetSize( 
  483.             /* [in] */ ULARGE_INTEGER libNewSize) = 0;
  484.         
  485.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE CopyTo( 
  486.             /* [unique][in] */ IStream *pstm,
  487.             /* [in] */ ULARGE_INTEGER cb,
  488.             /* [out] */ ULARGE_INTEGER *pcbRead,
  489.             /* [out] */ ULARGE_INTEGER *pcbWritten) = 0;
  490.         
  491.         virtual HRESULT STDMETHODCALLTYPE Commit( 
  492.             /* [in] */ DWORD grfCommitFlags) = 0;
  493.         
  494.         virtual HRESULT STDMETHODCALLTYPE Revert( void) = 0;
  495.         
  496.         virtual HRESULT STDMETHODCALLTYPE LockRegion( 
  497.             /* [in] */ ULARGE_INTEGER libOffset,
  498.             /* [in] */ ULARGE_INTEGER cb,
  499.             /* [in] */ DWORD dwLockType) = 0;
  500.         
  501.         virtual HRESULT STDMETHODCALLTYPE UnlockRegion( 
  502.             /* [in] */ ULARGE_INTEGER libOffset,
  503.             /* [in] */ ULARGE_INTEGER cb,
  504.             /* [in] */ DWORD dwLockType) = 0;
  505.         
  506.         virtual HRESULT STDMETHODCALLTYPE Stat( 
  507.             /* [out] */ STATSTG *pstatstg,
  508.             /* [in] */ DWORD grfStatFlag) = 0;
  509.         
  510.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  511.             /* [out] */ IStream **ppstm) = 0;
  512.         
  513.     };
  514.     
  515. #else  /* C style interface */
  516.     typedef struct IStreamVtbl
  517.     {
  518.         BEGIN_INTERFACE
  519.         
  520.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  521.             IStream * This,
  522.             /* [in] */ REFIID riid,
  523.             /* [iid_is][out] */ void **ppvObject);
  524.         
  525.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  526.             IStream * This);
  527.         
  528.         ULONG ( STDMETHODCALLTYPE *Release )( 
  529.             IStream * This);
  530.         
  531.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Read )( 
  532.             IStream * This,
  533.             /* [length_is][size_is][out] */ void *pv,
  534.             /* [in] */ ULONG cb,
  535.             /* [out] */ ULONG *pcbRead);
  536.         
  537.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Write )( 
  538.             IStream * This,
  539.             /* [size_is][in] */ const void *pv,
  540.             /* [in] */ ULONG cb,
  541.             /* [out] */ ULONG *pcbWritten);
  542.         
  543.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Seek )( 
  544.             IStream * This,
  545.             /* [in] */ LARGE_INTEGER dlibMove,
  546.             /* [in] */ DWORD dwOrigin,
  547.             /* [out] */ ULARGE_INTEGER *plibNewPosition);
  548.         
  549.         HRESULT ( STDMETHODCALLTYPE *SetSize )( 
  550.             IStream * This,
  551.             /* [in] */ ULARGE_INTEGER libNewSize);
  552.         
  553.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CopyTo )( 
  554.             IStream * This,
  555.             /* [unique][in] */ IStream *pstm,
  556.             /* [in] */ ULARGE_INTEGER cb,
  557.             /* [out] */ ULARGE_INTEGER *pcbRead,
  558.             /* [out] */ ULARGE_INTEGER *pcbWritten);
  559.         
  560.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  561.             IStream * This,
  562.             /* [in] */ DWORD grfCommitFlags);
  563.         
  564.         HRESULT ( STDMETHODCALLTYPE *Revert )( 
  565.             IStream * This);
  566.         
  567.         HRESULT ( STDMETHODCALLTYPE *LockRegion )( 
  568.             IStream * This,
  569.             /* [in] */ ULARGE_INTEGER libOffset,
  570.             /* [in] */ ULARGE_INTEGER cb,
  571.             /* [in] */ DWORD dwLockType);
  572.         
  573.         HRESULT ( STDMETHODCALLTYPE *UnlockRegion )( 
  574.             IStream * This,
  575.             /* [in] */ ULARGE_INTEGER libOffset,
  576.             /* [in] */ ULARGE_INTEGER cb,
  577.             /* [in] */ DWORD dwLockType);
  578.         
  579.         HRESULT ( STDMETHODCALLTYPE *Stat )( 
  580.             IStream * This,
  581.             /* [out] */ STATSTG *pstatstg,
  582.             /* [in] */ DWORD grfStatFlag);
  583.         
  584.         HRESULT ( STDMETHODCALLTYPE *Clone )( 
  585.             IStream * This,
  586.             /* [out] */ IStream **ppstm);
  587.         
  588.         END_INTERFACE
  589.     } IStreamVtbl;
  590.     interface IStream
  591.     {
  592.         CONST_VTBL struct IStreamVtbl *lpVtbl;
  593.     };
  594.     
  595. #ifdef COBJMACROS
  596. #define IStream_QueryInterface(This,riid,ppvObject)
  597.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  598. #define IStream_AddRef(This)
  599.     (This)->lpVtbl -> AddRef(This)
  600. #define IStream_Release(This)
  601.     (This)->lpVtbl -> Release(This)
  602. #define IStream_Read(This,pv,cb,pcbRead)
  603.     (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
  604. #define IStream_Write(This,pv,cb,pcbWritten)
  605.     (This)->lpVtbl -> Write(This,pv,cb,pcbWritten)
  606. #define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition)
  607.     (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition)
  608. #define IStream_SetSize(This,libNewSize)
  609.     (This)->lpVtbl -> SetSize(This,libNewSize)
  610. #define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten)
  611.     (This)->lpVtbl -> CopyTo(This,pstm,cb,pcbRead,pcbWritten)
  612. #define IStream_Commit(This,grfCommitFlags)
  613.     (This)->lpVtbl -> Commit(This,grfCommitFlags)
  614. #define IStream_Revert(This)
  615.     (This)->lpVtbl -> Revert(This)
  616. #define IStream_LockRegion(This,libOffset,cb,dwLockType)
  617.     (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType)
  618. #define IStream_UnlockRegion(This,libOffset,cb,dwLockType)
  619.     (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType)
  620. #define IStream_Stat(This,pstatstg,grfStatFlag)
  621.     (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag)
  622. #define IStream_Clone(This,ppstm)
  623.     (This)->lpVtbl -> Clone(This,ppstm)
  624. #endif /* COBJMACROS */
  625. #endif  /* C style interface */
  626. /* [call_as] */ HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy( 
  627.     IStream * This,
  628.     /* [in] */ LARGE_INTEGER dlibMove,
  629.     /* [in] */ DWORD dwOrigin,
  630.     /* [out] */ ULARGE_INTEGER *plibNewPosition);
  631. void __RPC_STUB IStream_RemoteSeek_Stub(
  632.     IRpcStubBuffer *This,
  633.     IRpcChannelBuffer *_pRpcChannelBuffer,
  634.     PRPC_MESSAGE _pRpcMessage,
  635.     DWORD *_pdwStubPhase);
  636. HRESULT STDMETHODCALLTYPE IStream_SetSize_Proxy( 
  637.     IStream * This,
  638.     /* [in] */ ULARGE_INTEGER libNewSize);
  639. void __RPC_STUB IStream_SetSize_Stub(
  640.     IRpcStubBuffer *This,
  641.     IRpcChannelBuffer *_pRpcChannelBuffer,
  642.     PRPC_MESSAGE _pRpcMessage,
  643.     DWORD *_pdwStubPhase);
  644. /* [call_as] */ HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy( 
  645.     IStream * This,
  646.     /* [unique][in] */ IStream *pstm,
  647.     /* [in] */ ULARGE_INTEGER cb,
  648.     /* [out] */ ULARGE_INTEGER *pcbRead,
  649.     /* [out] */ ULARGE_INTEGER *pcbWritten);
  650. void __RPC_STUB IStream_RemoteCopyTo_Stub(
  651.     IRpcStubBuffer *This,
  652.     IRpcChannelBuffer *_pRpcChannelBuffer,
  653.     PRPC_MESSAGE _pRpcMessage,
  654.     DWORD *_pdwStubPhase);
  655. HRESULT STDMETHODCALLTYPE IStream_Commit_Proxy( 
  656.     IStream * This,
  657.     /* [in] */ DWORD grfCommitFlags);
  658. void __RPC_STUB IStream_Commit_Stub(
  659.     IRpcStubBuffer *This,
  660.     IRpcChannelBuffer *_pRpcChannelBuffer,
  661.     PRPC_MESSAGE _pRpcMessage,
  662.     DWORD *_pdwStubPhase);
  663. HRESULT STDMETHODCALLTYPE IStream_Revert_Proxy( 
  664.     IStream * This);
  665. void __RPC_STUB IStream_Revert_Stub(
  666.     IRpcStubBuffer *This,
  667.     IRpcChannelBuffer *_pRpcChannelBuffer,
  668.     PRPC_MESSAGE _pRpcMessage,
  669.     DWORD *_pdwStubPhase);
  670. HRESULT STDMETHODCALLTYPE IStream_LockRegion_Proxy( 
  671.     IStream * This,
  672.     /* [in] */ ULARGE_INTEGER libOffset,
  673.     /* [in] */ ULARGE_INTEGER cb,
  674.     /* [in] */ DWORD dwLockType);
  675. void __RPC_STUB IStream_LockRegion_Stub(
  676.     IRpcStubBuffer *This,
  677.     IRpcChannelBuffer *_pRpcChannelBuffer,
  678.     PRPC_MESSAGE _pRpcMessage,
  679.     DWORD *_pdwStubPhase);
  680. HRESULT STDMETHODCALLTYPE IStream_UnlockRegion_Proxy( 
  681.     IStream * This,
  682.     /* [in] */ ULARGE_INTEGER libOffset,
  683.     /* [in] */ ULARGE_INTEGER cb,
  684.     /* [in] */ DWORD dwLockType);
  685. void __RPC_STUB IStream_UnlockRegion_Stub(
  686.     IRpcStubBuffer *This,
  687.     IRpcChannelBuffer *_pRpcChannelBuffer,
  688.     PRPC_MESSAGE _pRpcMessage,
  689.     DWORD *_pdwStubPhase);
  690. HRESULT STDMETHODCALLTYPE IStream_Stat_Proxy( 
  691.     IStream * This,
  692.     /* [out] */ STATSTG *pstatstg,
  693.     /* [in] */ DWORD grfStatFlag);
  694. void __RPC_STUB IStream_Stat_Stub(
  695.     IRpcStubBuffer *This,
  696.     IRpcChannelBuffer *_pRpcChannelBuffer,
  697.     PRPC_MESSAGE _pRpcMessage,
  698.     DWORD *_pdwStubPhase);
  699. HRESULT STDMETHODCALLTYPE IStream_Clone_Proxy( 
  700.     IStream * This,
  701.     /* [out] */ IStream **ppstm);
  702. void __RPC_STUB IStream_Clone_Stub(
  703.     IRpcStubBuffer *This,
  704.     IRpcChannelBuffer *_pRpcChannelBuffer,
  705.     PRPC_MESSAGE _pRpcMessage,
  706.     DWORD *_pdwStubPhase);
  707. #endif  /* __IStream_INTERFACE_DEFINED__ */
  708. #ifndef __IEnumSTATSTG_INTERFACE_DEFINED__
  709. #define __IEnumSTATSTG_INTERFACE_DEFINED__
  710. /* interface IEnumSTATSTG */
  711. /* [unique][uuid][object] */ 
  712. typedef /* [unique] */ IEnumSTATSTG *LPENUMSTATSTG;
  713. EXTERN_C const IID IID_IEnumSTATSTG;
  714. #if defined(__cplusplus) && !defined(CINTERFACE)
  715.     
  716.     MIDL_INTERFACE("0000000d-0000-0000-C000-000000000046")
  717.     IEnumSTATSTG : public IUnknown
  718.     {
  719.     public:
  720.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( 
  721.             /* [in] */ ULONG celt,
  722.             /* [length_is][size_is][out] */ STATSTG *rgelt,
  723.             /* [out] */ ULONG *pceltFetched) = 0;
  724.         
  725.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  726.             /* [in] */ ULONG celt) = 0;
  727.         
  728.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  729.         
  730.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  731.             /* [out] */ IEnumSTATSTG **ppenum) = 0;
  732.         
  733.     };
  734.     
  735. #else  /* C style interface */
  736.     typedef struct IEnumSTATSTGVtbl
  737.     {
  738.         BEGIN_INTERFACE
  739.         
  740.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  741.             IEnumSTATSTG * This,
  742.             /* [in] */ REFIID riid,
  743.             /* [iid_is][out] */ void **ppvObject);
  744.         
  745.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  746.             IEnumSTATSTG * This);
  747.         
  748.         ULONG ( STDMETHODCALLTYPE *Release )( 
  749.             IEnumSTATSTG * This);
  750.         
  751.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
  752.             IEnumSTATSTG * This,
  753.             /* [in] */ ULONG celt,
  754.             /* [length_is][size_is][out] */ STATSTG *rgelt,
  755.             /* [out] */ ULONG *pceltFetched);
  756.         
  757.         HRESULT ( STDMETHODCALLTYPE *Skip )( 
  758.             IEnumSTATSTG * This,
  759.             /* [in] */ ULONG celt);
  760.         
  761.         HRESULT ( STDMETHODCALLTYPE *Reset )( 
  762.             IEnumSTATSTG * This);
  763.         
  764.         HRESULT ( STDMETHODCALLTYPE *Clone )( 
  765.             IEnumSTATSTG * This,
  766.             /* [out] */ IEnumSTATSTG **ppenum);
  767.         
  768.         END_INTERFACE
  769.     } IEnumSTATSTGVtbl;
  770.     interface IEnumSTATSTG
  771.     {
  772.         CONST_VTBL struct IEnumSTATSTGVtbl *lpVtbl;
  773.     };
  774.     
  775. #ifdef COBJMACROS
  776. #define IEnumSTATSTG_QueryInterface(This,riid,ppvObject)
  777.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  778. #define IEnumSTATSTG_AddRef(This)
  779.     (This)->lpVtbl -> AddRef(This)
  780. #define IEnumSTATSTG_Release(This)
  781.     (This)->lpVtbl -> Release(This)
  782. #define IEnumSTATSTG_Next(This,celt,rgelt,pceltFetched)
  783.     (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched)
  784. #define IEnumSTATSTG_Skip(This,celt)
  785.     (This)->lpVtbl -> Skip(This,celt)
  786. #define IEnumSTATSTG_Reset(This)
  787.     (This)->lpVtbl -> Reset(This)
  788. #define IEnumSTATSTG_Clone(This,ppenum)
  789.     (This)->lpVtbl -> Clone(This,ppenum)
  790. #endif /* COBJMACROS */
  791. #endif  /* C style interface */
  792. /* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATSTG_RemoteNext_Proxy( 
  793.     IEnumSTATSTG * This,
  794.     /* [in] */ ULONG celt,
  795.     /* [length_is][size_is][out] */ STATSTG *rgelt,
  796.     /* [out] */ ULONG *pceltFetched);
  797. void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
  798.     IRpcStubBuffer *This,
  799.     IRpcChannelBuffer *_pRpcChannelBuffer,
  800.     PRPC_MESSAGE _pRpcMessage,
  801.     DWORD *_pdwStubPhase);
  802. HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Skip_Proxy( 
  803.     IEnumSTATSTG * This,
  804.     /* [in] */ ULONG celt);
  805. void __RPC_STUB IEnumSTATSTG_Skip_Stub(
  806.     IRpcStubBuffer *This,
  807.     IRpcChannelBuffer *_pRpcChannelBuffer,
  808.     PRPC_MESSAGE _pRpcMessage,
  809.     DWORD *_pdwStubPhase);
  810. HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Reset_Proxy( 
  811.     IEnumSTATSTG * This);
  812. void __RPC_STUB IEnumSTATSTG_Reset_Stub(
  813.     IRpcStubBuffer *This,
  814.     IRpcChannelBuffer *_pRpcChannelBuffer,
  815.     PRPC_MESSAGE _pRpcMessage,
  816.     DWORD *_pdwStubPhase);
  817. HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Clone_Proxy( 
  818.     IEnumSTATSTG * This,
  819.     /* [out] */ IEnumSTATSTG **ppenum);
  820. void __RPC_STUB IEnumSTATSTG_Clone_Stub(
  821.     IRpcStubBuffer *This,
  822.     IRpcChannelBuffer *_pRpcChannelBuffer,
  823.     PRPC_MESSAGE _pRpcMessage,
  824.     DWORD *_pdwStubPhase);
  825. #endif  /* __IEnumSTATSTG_INTERFACE_DEFINED__ */
  826. #ifndef __IStorage_INTERFACE_DEFINED__
  827. #define __IStorage_INTERFACE_DEFINED__
  828. /* interface IStorage */
  829. /* [unique][uuid][object] */ 
  830. typedef /* [unique] */ IStorage *LPSTORAGE;
  831. typedef struct tagRemSNB
  832.     {
  833.     unsigned long ulCntStr;
  834.     unsigned long ulCntChar;
  835.     /* [size_is] */ OLECHAR rgString[ 1 ];
  836.     }  RemSNB;
  837. typedef /* [unique] */ RemSNB *wireSNB;
  838. typedef /* [wire_marshal] */ OLECHAR **SNB;
  839. EXTERN_C const IID IID_IStorage;
  840. #if defined(__cplusplus) && !defined(CINTERFACE)
  841.     
  842.     MIDL_INTERFACE("0000000b-0000-0000-C000-000000000046")
  843.     IStorage : public IUnknown
  844.     {
  845.     public:
  846.         virtual HRESULT STDMETHODCALLTYPE CreateStream( 
  847.             /* [string][in] */ const OLECHAR *pwcsName,
  848.             /* [in] */ DWORD grfMode,
  849.             /* [in] */ DWORD reserved1,
  850.             /* [in] */ DWORD reserved2,
  851.             /* [out] */ IStream **ppstm) = 0;
  852.         
  853.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE OpenStream( 
  854.             /* [string][in] */ const OLECHAR *pwcsName,
  855.             /* [unique][in] */ void *reserved1,
  856.             /* [in] */ DWORD grfMode,
  857.             /* [in] */ DWORD reserved2,
  858.             /* [out] */ IStream **ppstm) = 0;
  859.         
  860.         virtual HRESULT STDMETHODCALLTYPE CreateStorage( 
  861.             /* [string][in] */ const OLECHAR *pwcsName,
  862.             /* [in] */ DWORD grfMode,
  863.             /* [in] */ DWORD reserved1,
  864.             /* [in] */ DWORD reserved2,
  865.             /* [out] */ IStorage **ppstg) = 0;
  866.         
  867.         virtual HRESULT STDMETHODCALLTYPE OpenStorage( 
  868.             /* [string][unique][in] */ const OLECHAR *pwcsName,
  869.             /* [unique][in] */ IStorage *pstgPriority,
  870.             /* [in] */ DWORD grfMode,
  871.             /* [unique][in] */ SNB snbExclude,
  872.             /* [in] */ DWORD reserved,
  873.             /* [out] */ IStorage **ppstg) = 0;
  874.         
  875.         virtual HRESULT STDMETHODCALLTYPE CopyTo( 
  876.             /* [in] */ DWORD ciidExclude,
  877.             /* [size_is][unique][in] */ const IID *rgiidExclude,
  878.             /* [unique][in] */ SNB snbExclude,
  879.             /* [unique][in] */ IStorage *pstgDest) = 0;
  880.         
  881.         virtual HRESULT STDMETHODCALLTYPE MoveElementTo( 
  882.             /* [string][in] */ const OLECHAR *pwcsName,
  883.             /* [unique][in] */ IStorage *pstgDest,
  884.             /* [string][in] */ const OLECHAR *pwcsNewName,
  885.             /* [in] */ DWORD grfFlags) = 0;
  886.         
  887.         virtual HRESULT STDMETHODCALLTYPE Commit( 
  888.             /* [in] */ DWORD grfCommitFlags) = 0;
  889.         
  890.         virtual HRESULT STDMETHODCALLTYPE Revert( void) = 0;
  891.         
  892.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE EnumElements( 
  893.             /* [in] */ DWORD reserved1,
  894.             /* [size_is][unique][in] */ void *reserved2,
  895.             /* [in] */ DWORD reserved3,
  896.             /* [out] */ IEnumSTATSTG **ppenum) = 0;
  897.         
  898.         virtual HRESULT STDMETHODCALLTYPE DestroyElement( 
  899.             /* [string][in] */ const OLECHAR *pwcsName) = 0;
  900.         
  901.         virtual HRESULT STDMETHODCALLTYPE RenameElement( 
  902.             /* [string][in] */ const OLECHAR *pwcsOldName,
  903.             /* [string][in] */ const OLECHAR *pwcsNewName) = 0;
  904.         
  905.         virtual HRESULT STDMETHODCALLTYPE SetElementTimes( 
  906.             /* [string][unique][in] */ const OLECHAR *pwcsName,
  907.             /* [unique][in] */ const FILETIME *pctime,
  908.             /* [unique][in] */ const FILETIME *patime,
  909.             /* [unique][in] */ const FILETIME *pmtime) = 0;
  910.         
  911.         virtual HRESULT STDMETHODCALLTYPE SetClass( 
  912.             /* [in] */ REFCLSID clsid) = 0;
  913.         
  914.         virtual HRESULT STDMETHODCALLTYPE SetStateBits( 
  915.             /* [in] */ DWORD grfStateBits,
  916.             /* [in] */ DWORD grfMask) = 0;
  917.         
  918.         virtual HRESULT STDMETHODCALLTYPE Stat( 
  919.             /* [out] */ STATSTG *pstatstg,
  920.             /* [in] */ DWORD grfStatFlag) = 0;
  921.         
  922.     };
  923.     
  924. #else  /* C style interface */
  925.     typedef struct IStorageVtbl
  926.     {
  927.         BEGIN_INTERFACE
  928.         
  929.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  930.             IStorage * This,
  931.             /* [in] */ REFIID riid,
  932.             /* [iid_is][out] */ void **ppvObject);
  933.         
  934.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  935.             IStorage * This);
  936.         
  937.         ULONG ( STDMETHODCALLTYPE *Release )( 
  938.             IStorage * This);
  939.         
  940.         HRESULT ( STDMETHODCALLTYPE *CreateStream )( 
  941.             IStorage * This,
  942.             /* [string][in] */ const OLECHAR *pwcsName,
  943.             /* [in] */ DWORD grfMode,
  944.             /* [in] */ DWORD reserved1,
  945.             /* [in] */ DWORD reserved2,
  946.             /* [out] */ IStream **ppstm);
  947.         
  948.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *OpenStream )( 
  949.             IStorage * This,
  950.             /* [string][in] */ const OLECHAR *pwcsName,
  951.             /* [unique][in] */ void *reserved1,
  952.             /* [in] */ DWORD grfMode,
  953.             /* [in] */ DWORD reserved2,
  954.             /* [out] */ IStream **ppstm);
  955.         
  956.         HRESULT ( STDMETHODCALLTYPE *CreateStorage )( 
  957.             IStorage * This,
  958.             /* [string][in] */ const OLECHAR *pwcsName,
  959.             /* [in] */ DWORD grfMode,
  960.             /* [in] */ DWORD reserved1,
  961.             /* [in] */ DWORD reserved2,
  962.             /* [out] */ IStorage **ppstg);
  963.         
  964.         HRESULT ( STDMETHODCALLTYPE *OpenStorage )( 
  965.             IStorage * This,
  966.             /* [string][unique][in] */ const OLECHAR *pwcsName,
  967.             /* [unique][in] */ IStorage *pstgPriority,
  968.             /* [in] */ DWORD grfMode,
  969.             /* [unique][in] */ SNB snbExclude,
  970.             /* [in] */ DWORD reserved,
  971.             /* [out] */ IStorage **ppstg);
  972.         
  973.         HRESULT ( STDMETHODCALLTYPE *CopyTo )( 
  974.             IStorage * This,
  975.             /* [in] */ DWORD ciidExclude,
  976.             /* [size_is][unique][in] */ const IID *rgiidExclude,
  977.             /* [unique][in] */ SNB snbExclude,
  978.             /* [unique][in] */ IStorage *pstgDest);
  979.         
  980.         HRESULT ( STDMETHODCALLTYPE *MoveElementTo )( 
  981.             IStorage * This,
  982.             /* [string][in] */ const OLECHAR *pwcsName,
  983.             /* [unique][in] */ IStorage *pstgDest,
  984.             /* [string][in] */ const OLECHAR *pwcsNewName,
  985.             /* [in] */ DWORD grfFlags);
  986.         
  987.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  988.             IStorage * This,
  989.             /* [in] */ DWORD grfCommitFlags);
  990.         
  991.         HRESULT ( STDMETHODCALLTYPE *Revert )( 
  992.             IStorage * This);
  993.         
  994.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *EnumElements )( 
  995.             IStorage * This,
  996.             /* [in] */ DWORD reserved1,
  997.             /* [size_is][unique][in] */ void *reserved2,
  998.             /* [in] */ DWORD reserved3,
  999.             /* [out] */ IEnumSTATSTG **ppenum);
  1000.         
  1001.         HRESULT ( STDMETHODCALLTYPE *DestroyElement )( 
  1002.             IStorage * This,
  1003.             /* [string][in] */ const OLECHAR *pwcsName);
  1004.         
  1005.         HRESULT ( STDMETHODCALLTYPE *RenameElement )( 
  1006.             IStorage * This,
  1007.             /* [string][in] */ const OLECHAR *pwcsOldName,
  1008.             /* [string][in] */ const OLECHAR *pwcsNewName);
  1009.         
  1010.         HRESULT ( STDMETHODCALLTYPE *SetElementTimes )( 
  1011.             IStorage * This,
  1012.             /* [string][unique][in] */ const OLECHAR *pwcsName,
  1013.             /* [unique][in] */ const FILETIME *pctime,
  1014.             /* [unique][in] */ const FILETIME *patime,
  1015.             /* [unique][in] */ const FILETIME *pmtime);
  1016.         
  1017.         HRESULT ( STDMETHODCALLTYPE *SetClass )( 
  1018.             IStorage * This,
  1019.             /* [in] */ REFCLSID clsid);
  1020.         
  1021.         HRESULT ( STDMETHODCALLTYPE *SetStateBits )( 
  1022.             IStorage * This,
  1023.             /* [in] */ DWORD grfStateBits,
  1024.             /* [in] */ DWORD grfMask);
  1025.         
  1026.         HRESULT ( STDMETHODCALLTYPE *Stat )( 
  1027.             IStorage * This,
  1028.             /* [out] */ STATSTG *pstatstg,
  1029.             /* [in] */ DWORD grfStatFlag);
  1030.         
  1031.         END_INTERFACE
  1032.     } IStorageVtbl;
  1033.     interface IStorage
  1034.     {
  1035.         CONST_VTBL struct IStorageVtbl *lpVtbl;
  1036.     };
  1037.     
  1038. #ifdef COBJMACROS
  1039. #define IStorage_QueryInterface(This,riid,ppvObject)
  1040.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1041. #define IStorage_AddRef(This)
  1042.     (This)->lpVtbl -> AddRef(This)
  1043. #define IStorage_Release(This)
  1044.     (This)->lpVtbl -> Release(This)
  1045. #define IStorage_CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm)
  1046.     (This)->lpVtbl -> CreateStream(This,pwcsName,grfMode,reserved1,reserved2,ppstm)
  1047. #define IStorage_OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm)
  1048.     (This)->lpVtbl -> OpenStream(This,pwcsName,reserved1,grfMode,reserved2,ppstm)
  1049. #define IStorage_CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg)
  1050.     (This)->lpVtbl -> CreateStorage(This,pwcsName,grfMode,reserved1,reserved2,ppstg)
  1051. #define IStorage_OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg)
  1052.     (This)->lpVtbl -> OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg)
  1053. #define IStorage_CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest)
  1054.     (This)->lpVtbl -> CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest)
  1055. #define IStorage_MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags)
  1056.     (This)->lpVtbl -> MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags)
  1057. #define IStorage_Commit(This,grfCommitFlags)
  1058.     (This)->lpVtbl -> Commit(This,grfCommitFlags)
  1059. #define IStorage_Revert(This)
  1060.     (This)->lpVtbl -> Revert(This)
  1061. #define IStorage_EnumElements(This,reserved1,reserved2,reserved3,ppenum)
  1062.     (This)->lpVtbl -> EnumElements(This,reserved1,reserved2,reserved3,ppenum)
  1063. #define IStorage_DestroyElement(This,pwcsName)
  1064.     (This)->lpVtbl -> DestroyElement(This,pwcsName)
  1065. #define IStorage_RenameElement(This,pwcsOldName,pwcsNewName)
  1066.     (This)->lpVtbl -> RenameElement(This,pwcsOldName,pwcsNewName)
  1067. #define IStorage_SetElementTimes(This,pwcsName,pctime,patime,pmtime)
  1068.     (This)->lpVtbl -> SetElementTimes(This,pwcsName,pctime,patime,pmtime)
  1069. #define IStorage_SetClass(This,clsid)
  1070.     (This)->lpVtbl -> SetClass(This,clsid)
  1071. #define IStorage_SetStateBits(This,grfStateBits,grfMask)
  1072.     (This)->lpVtbl -> SetStateBits(This,grfStateBits,grfMask)
  1073. #define IStorage_Stat(This,pstatstg,grfStatFlag)
  1074.     (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag)
  1075. #endif /* COBJMACROS */
  1076. #endif  /* C style interface */
  1077. HRESULT STDMETHODCALLTYPE IStorage_CreateStream_Proxy( 
  1078.     IStorage * This,
  1079.     /* [string][in] */ const OLECHAR *pwcsName,
  1080.     /* [in] */ DWORD grfMode,
  1081.     /* [in] */ DWORD reserved1,
  1082.     /* [in] */ DWORD reserved2,
  1083.     /* [out] */ IStream **ppstm);
  1084. void __RPC_STUB IStorage_CreateStream_Stub(
  1085.     IRpcStubBuffer *This,
  1086.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1087.     PRPC_MESSAGE _pRpcMessage,
  1088.     DWORD *_pdwStubPhase);
  1089. /* [call_as] */ HRESULT STDMETHODCALLTYPE IStorage_RemoteOpenStream_Proxy( 
  1090.     IStorage * This,
  1091.     /* [string][in] */ const OLECHAR *pwcsName,
  1092.     /* [in] */ unsigned long cbReserved1,
  1093.     /* [size_is][unique][in] */ byte *reserved1,
  1094.     /* [in] */ DWORD grfMode,
  1095.     /* [in] */ DWORD reserved2,
  1096.     /* [out] */ IStream **ppstm);
  1097. void __RPC_STUB IStorage_RemoteOpenStream_Stub(
  1098.     IRpcStubBuffer *This,
  1099.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1100.     PRPC_MESSAGE _pRpcMessage,
  1101.     DWORD *_pdwStubPhase);
  1102. HRESULT STDMETHODCALLTYPE IStorage_CreateStorage_Proxy( 
  1103.     IStorage * This,
  1104.     /* [string][in] */ const OLECHAR *pwcsName,
  1105.     /* [in] */ DWORD grfMode,
  1106.     /* [in] */ DWORD reserved1,
  1107.     /* [in] */ DWORD reserved2,
  1108.     /* [out] */ IStorage **ppstg);
  1109. void __RPC_STUB IStorage_CreateStorage_Stub(
  1110.     IRpcStubBuffer *This,
  1111.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1112.     PRPC_MESSAGE _pRpcMessage,
  1113.     DWORD *_pdwStubPhase);
  1114. HRESULT STDMETHODCALLTYPE IStorage_OpenStorage_Proxy( 
  1115.     IStorage * This,
  1116.     /* [string][unique][in] */ const OLECHAR *pwcsName,
  1117.     /* [unique][in] */ IStorage *pstgPriority,
  1118.     /* [in] */ DWORD grfMode,
  1119.     /* [unique][in] */ SNB snbExclude,
  1120.     /* [in] */ DWORD reserved,
  1121.     /* [out] */ IStorage **ppstg);
  1122. void __RPC_STUB IStorage_OpenStorage_Stub(
  1123.     IRpcStubBuffer *This,
  1124.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1125.     PRPC_MESSAGE _pRpcMessage,
  1126.     DWORD *_pdwStubPhase);
  1127. HRESULT STDMETHODCALLTYPE IStorage_CopyTo_Proxy( 
  1128.     IStorage * This,
  1129.     /* [in] */ DWORD ciidExclude,
  1130.     /* [size_is][unique][in] */ const IID *rgiidExclude,
  1131.     /* [unique][in] */ SNB snbExclude,
  1132.     /* [unique][in] */ IStorage *pstgDest);
  1133. void __RPC_STUB IStorage_CopyTo_Stub(
  1134.     IRpcStubBuffer *This,
  1135.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1136.     PRPC_MESSAGE _pRpcMessage,
  1137.     DWORD *_pdwStubPhase);
  1138. HRESULT STDMETHODCALLTYPE IStorage_MoveElementTo_Proxy( 
  1139.     IStorage * This,
  1140.     /* [string][in] */ const OLECHAR *pwcsName,
  1141.     /* [unique][in] */ IStorage *pstgDest,
  1142.     /* [string][in] */ const OLECHAR *pwcsNewName,
  1143.     /* [in] */ DWORD grfFlags);
  1144. void __RPC_STUB IStorage_MoveElementTo_Stub(
  1145.     IRpcStubBuffer *This,
  1146.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1147.     PRPC_MESSAGE _pRpcMessage,
  1148.     DWORD *_pdwStubPhase);
  1149. HRESULT STDMETHODCALLTYPE IStorage_Commit_Proxy( 
  1150.     IStorage * This,
  1151.     /* [in] */ DWORD grfCommitFlags);
  1152. void __RPC_STUB IStorage_Commit_Stub(
  1153.     IRpcStubBuffer *This,
  1154.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1155.     PRPC_MESSAGE _pRpcMessage,
  1156.     DWORD *_pdwStubPhase);
  1157. HRESULT STDMETHODCALLTYPE IStorage_Revert_Proxy( 
  1158.     IStorage * This);
  1159. void __RPC_STUB IStorage_Revert_Stub(
  1160.     IRpcStubBuffer *This,
  1161.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1162.     PRPC_MESSAGE _pRpcMessage,
  1163.     DWORD *_pdwStubPhase);
  1164. /* [call_as] */ HRESULT STDMETHODCALLTYPE IStorage_RemoteEnumElements_Proxy( 
  1165.     IStorage * This,
  1166.     /* [in] */ DWORD reserved1,
  1167.     /* [in] */ unsigned long cbReserved2,
  1168.     /* [size_is][unique][in] */ byte *reserved2,
  1169.     /* [in] */ DWORD reserved3,
  1170.     /* [out] */ IEnumSTATSTG **ppenum);
  1171. void __RPC_STUB IStorage_RemoteEnumElements_Stub(
  1172.     IRpcStubBuffer *This,
  1173.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1174.     PRPC_MESSAGE _pRpcMessage,
  1175.     DWORD *_pdwStubPhase);
  1176. HRESULT STDMETHODCALLTYPE IStorage_DestroyElement_Proxy( 
  1177.     IStorage * This,
  1178.     /* [string][in] */ const OLECHAR *pwcsName);
  1179. void __RPC_STUB IStorage_DestroyElement_Stub(
  1180.     IRpcStubBuffer *This,
  1181.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1182.     PRPC_MESSAGE _pRpcMessage,
  1183.     DWORD *_pdwStubPhase);
  1184. HRESULT STDMETHODCALLTYPE IStorage_RenameElement_Proxy( 
  1185.     IStorage * This,
  1186.     /* [string][in] */ const OLECHAR *pwcsOldName,
  1187.     /* [string][in] */ const OLECHAR *pwcsNewName);
  1188. void __RPC_STUB IStorage_RenameElement_Stub(
  1189.     IRpcStubBuffer *This,
  1190.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1191.     PRPC_MESSAGE _pRpcMessage,
  1192.     DWORD *_pdwStubPhase);
  1193. HRESULT STDMETHODCALLTYPE IStorage_SetElementTimes_Proxy( 
  1194.     IStorage * This,
  1195.     /* [string][unique][in] */ const OLECHAR *pwcsName,
  1196.     /* [unique][in] */ const FILETIME *pctime,
  1197.     /* [unique][in] */ const FILETIME *patime,
  1198.     /* [unique][in] */ const FILETIME *pmtime);
  1199. void __RPC_STUB IStorage_SetElementTimes_Stub(
  1200.     IRpcStubBuffer *This,
  1201.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1202.     PRPC_MESSAGE _pRpcMessage,
  1203.     DWORD *_pdwStubPhase);
  1204. HRESULT STDMETHODCALLTYPE IStorage_SetClass_Proxy( 
  1205.     IStorage * This,
  1206.     /* [in] */ REFCLSID clsid);
  1207. void __RPC_STUB IStorage_SetClass_Stub(
  1208.     IRpcStubBuffer *This,
  1209.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1210.     PRPC_MESSAGE _pRpcMessage,
  1211.     DWORD *_pdwStubPhase);
  1212. HRESULT STDMETHODCALLTYPE IStorage_SetStateBits_Proxy( 
  1213.     IStorage * This,
  1214.     /* [in] */ DWORD grfStateBits,
  1215.     /* [in] */ DWORD grfMask);
  1216. void __RPC_STUB IStorage_SetStateBits_Stub(
  1217.     IRpcStubBuffer *This,
  1218.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1219.     PRPC_MESSAGE _pRpcMessage,
  1220.     DWORD *_pdwStubPhase);
  1221. HRESULT STDMETHODCALLTYPE IStorage_Stat_Proxy( 
  1222.     IStorage * This,
  1223.     /* [out] */ STATSTG *pstatstg,
  1224.     /* [in] */ DWORD grfStatFlag);
  1225. void __RPC_STUB IStorage_Stat_Stub(
  1226.     IRpcStubBuffer *This,
  1227.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1228.     PRPC_MESSAGE _pRpcMessage,
  1229.     DWORD *_pdwStubPhase);
  1230. #endif  /* __IStorage_INTERFACE_DEFINED__ */
  1231. #ifndef __IPersistFile_INTERFACE_DEFINED__
  1232. #define __IPersistFile_INTERFACE_DEFINED__
  1233. /* interface IPersistFile */
  1234. /* [unique][uuid][object] */ 
  1235. typedef /* [unique] */ IPersistFile *LPPERSISTFILE;
  1236. EXTERN_C const IID IID_IPersistFile;
  1237. #if defined(__cplusplus) && !defined(CINTERFACE)
  1238.     
  1239.     MIDL_INTERFACE("0000010b-0000-0000-C000-000000000046")
  1240.     IPersistFile : public IPersist
  1241.     {
  1242.     public:
  1243.         virtual HRESULT STDMETHODCALLTYPE IsDirty( void) = 0;
  1244.         
  1245.         virtual HRESULT STDMETHODCALLTYPE Load( 
  1246.             /* [in] */ LPCOLESTR pszFileName,
  1247.             /* [in] */ DWORD dwMode) = 0;
  1248.         
  1249.         virtual HRESULT STDMETHODCALLTYPE Save( 
  1250.             /* [unique][in] */ LPCOLESTR pszFileName,
  1251.             /* [in] */ BOOL fRemember) = 0;
  1252.         
  1253.         virtual HRESULT STDMETHODCALLTYPE SaveCompleted( 
  1254.             /* [unique][in] */ LPCOLESTR pszFileName) = 0;
  1255.         
  1256.         virtual HRESULT STDMETHODCALLTYPE GetCurFile( 
  1257.             /* [out] */ LPOLESTR *ppszFileName) = 0;
  1258.         
  1259.     };
  1260.     
  1261. #else  /* C style interface */
  1262.     typedef struct IPersistFileVtbl
  1263.     {
  1264.         BEGIN_INTERFACE
  1265.         
  1266.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1267.             IPersistFile * This,
  1268.             /* [in] */ REFIID riid,
  1269.             /* [iid_is][out] */ void **ppvObject);
  1270.         
  1271.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1272.             IPersistFile * This);
  1273.         
  1274.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1275.             IPersistFile * This);
  1276.         
  1277.         HRESULT ( STDMETHODCALLTYPE *GetClassID )( 
  1278.             IPersistFile * This,
  1279.             /* [out] */ CLSID *pClassID);
  1280.         
  1281.         HRESULT ( STDMETHODCALLTYPE *IsDirty )( 
  1282.             IPersistFile * This);
  1283.         
  1284.         HRESULT ( STDMETHODCALLTYPE *Load )( 
  1285.             IPersistFile * This,
  1286.             /* [in] */ LPCOLESTR pszFileName,
  1287.             /* [in] */ DWORD dwMode);
  1288.         
  1289.         HRESULT ( STDMETHODCALLTYPE *Save )( 
  1290.             IPersistFile * This,
  1291.             /* [unique][in] */ LPCOLESTR pszFileName,
  1292.             /* [in] */ BOOL fRemember);
  1293.         
  1294.         HRESULT ( STDMETHODCALLTYPE *SaveCompleted )( 
  1295.             IPersistFile * This,
  1296.             /* [unique][in] */ LPCOLESTR pszFileName);
  1297.         
  1298.         HRESULT ( STDMETHODCALLTYPE *GetCurFile )( 
  1299.             IPersistFile * This,
  1300.             /* [out] */ LPOLESTR *ppszFileName);
  1301.         
  1302.         END_INTERFACE
  1303.     } IPersistFileVtbl;
  1304.     interface IPersistFile
  1305.     {
  1306.         CONST_VTBL struct IPersistFileVtbl *lpVtbl;
  1307.     };
  1308.     
  1309. #ifdef COBJMACROS
  1310. #define IPersistFile_QueryInterface(This,riid,ppvObject)
  1311.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1312. #define IPersistFile_AddRef(This)
  1313.     (This)->lpVtbl -> AddRef(This)
  1314. #define IPersistFile_Release(This)
  1315.     (This)->lpVtbl -> Release(This)
  1316. #define IPersistFile_GetClassID(This,pClassID)
  1317.     (This)->lpVtbl -> GetClassID(This,pClassID)
  1318. #define IPersistFile_IsDirty(This)
  1319.     (This)->lpVtbl -> IsDirty(This)
  1320. #define IPersistFile_Load(This,pszFileName,dwMode)
  1321.     (This)->lpVtbl -> Load(This,pszFileName,dwMode)
  1322. #define IPersistFile_Save(This,pszFileName,fRemember)
  1323.     (This)->lpVtbl -> Save(This,pszFileName,fRemember)
  1324. #define IPersistFile_SaveCompleted(This,pszFileName)
  1325.     (This)->lpVtbl -> SaveCompleted(This,pszFileName)
  1326. #define IPersistFile_GetCurFile(This,ppszFileName)
  1327.     (This)->lpVtbl -> GetCurFile(This,ppszFileName)
  1328. #endif /* COBJMACROS */
  1329. #endif  /* C style interface */
  1330. HRESULT STDMETHODCALLTYPE IPersistFile_IsDirty_Proxy( 
  1331.     IPersistFile * This);
  1332. void __RPC_STUB IPersistFile_IsDirty_Stub(
  1333.     IRpcStubBuffer *This,
  1334.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1335.     PRPC_MESSAGE _pRpcMessage,
  1336.     DWORD *_pdwStubPhase);
  1337. HRESULT STDMETHODCALLTYPE IPersistFile_Load_Proxy( 
  1338.     IPersistFile * This,
  1339.     /* [in] */ LPCOLESTR pszFileName,
  1340.     /* [in] */ DWORD dwMode);
  1341. void __RPC_STUB IPersistFile_Load_Stub(
  1342.     IRpcStubBuffer *This,
  1343.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1344.     PRPC_MESSAGE _pRpcMessage,
  1345.     DWORD *_pdwStubPhase);
  1346. HRESULT STDMETHODCALLTYPE IPersistFile_Save_Proxy( 
  1347.     IPersistFile * This,
  1348.     /* [unique][in] */ LPCOLESTR pszFileName,
  1349.     /* [in] */ BOOL fRemember);
  1350. void __RPC_STUB IPersistFile_Save_Stub(
  1351.     IRpcStubBuffer *This,
  1352.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1353.     PRPC_MESSAGE _pRpcMessage,
  1354.     DWORD *_pdwStubPhase);
  1355. HRESULT STDMETHODCALLTYPE IPersistFile_SaveCompleted_Proxy( 
  1356.     IPersistFile * This,
  1357.     /* [unique][in] */ LPCOLESTR pszFileName);
  1358. void __RPC_STUB IPersistFile_SaveCompleted_Stub(
  1359.     IRpcStubBuffer *This,
  1360.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1361.     PRPC_MESSAGE _pRpcMessage,
  1362.     DWORD *_pdwStubPhase);
  1363. HRESULT STDMETHODCALLTYPE IPersistFile_GetCurFile_Proxy( 
  1364.     IPersistFile * This,
  1365.     /* [out] */ LPOLESTR *ppszFileName);
  1366. void __RPC_STUB IPersistFile_GetCurFile_Stub(
  1367.     IRpcStubBuffer *This,
  1368.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1369.     PRPC_MESSAGE _pRpcMessage,
  1370.     DWORD *_pdwStubPhase);
  1371. #endif  /* __IPersistFile_INTERFACE_DEFINED__ */
  1372. #ifndef __IPersistStorage_INTERFACE_DEFINED__
  1373. #define __IPersistStorage_INTERFACE_DEFINED__
  1374. /* interface IPersistStorage */
  1375. /* [unique][uuid][object] */ 
  1376. typedef /* [unique] */ IPersistStorage *LPPERSISTSTORAGE;
  1377. EXTERN_C const IID IID_IPersistStorage;
  1378. #if defined(__cplusplus) && !defined(CINTERFACE)
  1379.     
  1380.     MIDL_INTERFACE("0000010a-0000-0000-C000-000000000046")
  1381.     IPersistStorage : public IPersist
  1382.     {
  1383.     public:
  1384.         virtual HRESULT STDMETHODCALLTYPE IsDirty( void) = 0;
  1385.         
  1386.         virtual HRESULT STDMETHODCALLTYPE InitNew( 
  1387.             /* [unique][in] */ IStorage *pStg) = 0;
  1388.         
  1389.         virtual HRESULT STDMETHODCALLTYPE Load( 
  1390.             /* [unique][in] */ IStorage *pStg) = 0;
  1391.         
  1392.         virtual HRESULT STDMETHODCALLTYPE Save( 
  1393.             /* [unique][in] */ IStorage *pStgSave,
  1394.             /* [in] */ BOOL fSameAsLoad) = 0;
  1395.         
  1396.         virtual HRESULT STDMETHODCALLTYPE SaveCompleted( 
  1397.             /* [unique][in] */ IStorage *pStgNew) = 0;
  1398.         
  1399.         virtual HRESULT STDMETHODCALLTYPE HandsOffStorage( void) = 0;
  1400.         
  1401.     };
  1402.     
  1403. #else  /* C style interface */
  1404.     typedef struct IPersistStorageVtbl
  1405.     {
  1406.         BEGIN_INTERFACE
  1407.         
  1408.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1409.             IPersistStorage * This,
  1410.             /* [in] */ REFIID riid,
  1411.             /* [iid_is][out] */ void **ppvObject);
  1412.         
  1413.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1414.             IPersistStorage * This);
  1415.         
  1416.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1417.             IPersistStorage * This);
  1418.         
  1419.         HRESULT ( STDMETHODCALLTYPE *GetClassID )( 
  1420.             IPersistStorage * This,
  1421.             /* [out] */ CLSID *pClassID);
  1422.         
  1423.         HRESULT ( STDMETHODCALLTYPE *IsDirty )( 
  1424.             IPersistStorage * This);
  1425.         
  1426.         HRESULT ( STDMETHODCALLTYPE *InitNew )( 
  1427.             IPersistStorage * This,
  1428.             /* [unique][in] */ IStorage *pStg);
  1429.         
  1430.         HRESULT ( STDMETHODCALLTYPE *Load )( 
  1431.             IPersistStorage * This,
  1432.             /* [unique][in] */ IStorage *pStg);
  1433.         
  1434.         HRESULT ( STDMETHODCALLTYPE *Save )( 
  1435.             IPersistStorage * This,
  1436.             /* [unique][in] */ IStorage *pStgSave,
  1437.             /* [in] */ BOOL fSameAsLoad);
  1438.         
  1439.         HRESULT ( STDMETHODCALLTYPE *SaveCompleted )( 
  1440.             IPersistStorage * This,
  1441.             /* [unique][in] */ IStorage *pStgNew);
  1442.         
  1443.         HRESULT ( STDMETHODCALLTYPE *HandsOffStorage )( 
  1444.             IPersistStorage * This);
  1445.         
  1446.         END_INTERFACE
  1447.     } IPersistStorageVtbl;
  1448.     interface IPersistStorage
  1449.     {
  1450.         CONST_VTBL struct IPersistStorageVtbl *lpVtbl;
  1451.     };
  1452.     
  1453. #ifdef COBJMACROS
  1454. #define IPersistStorage_QueryInterface(This,riid,ppvObject)
  1455.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1456. #define IPersistStorage_AddRef(This)
  1457.     (This)->lpVtbl -> AddRef(This)
  1458. #define IPersistStorage_Release(This)
  1459.     (This)->lpVtbl -> Release(This)
  1460. #define IPersistStorage_GetClassID(This,pClassID)
  1461.     (This)->lpVtbl -> GetClassID(This,pClassID)
  1462. #define IPersistStorage_IsDirty(This)
  1463.     (This)->lpVtbl -> IsDirty(This)
  1464. #define IPersistStorage_InitNew(This,pStg)
  1465.     (This)->lpVtbl -> InitNew(This,pStg)
  1466. #define IPersistStorage_Load(This,pStg)
  1467.     (This)->lpVtbl -> Load(This,pStg)
  1468. #define IPersistStorage_Save(This,pStgSave,fSameAsLoad)
  1469.     (This)->lpVtbl -> Save(This,pStgSave,fSameAsLoad)
  1470. #define IPersistStorage_SaveCompleted(This,pStgNew)
  1471.     (This)->lpVtbl -> SaveCompleted(This,pStgNew)
  1472. #define IPersistStorage_HandsOffStorage(This)
  1473.     (This)->lpVtbl -> HandsOffStorage(This)
  1474. #endif /* COBJMACROS */
  1475. #endif  /* C style interface */
  1476. HRESULT STDMETHODCALLTYPE IPersistStorage_IsDirty_Proxy( 
  1477.     IPersistStorage * This);
  1478. void __RPC_STUB IPersistStorage_IsDirty_Stub(
  1479.     IRpcStubBuffer *This,
  1480.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1481.     PRPC_MESSAGE _pRpcMessage,
  1482.     DWORD *_pdwStubPhase);
  1483. HRESULT STDMETHODCALLTYPE IPersistStorage_InitNew_Proxy( 
  1484.     IPersistStorage * This,
  1485.     /* [unique][in] */ IStorage *pStg);
  1486. void __RPC_STUB IPersistStorage_InitNew_Stub(
  1487.     IRpcStubBuffer *This,
  1488.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1489.     PRPC_MESSAGE _pRpcMessage,
  1490.     DWORD *_pdwStubPhase);
  1491. HRESULT STDMETHODCALLTYPE IPersistStorage_Load_Proxy( 
  1492.     IPersistStorage * This,
  1493.     /* [unique][in] */ IStorage *pStg);
  1494. void __RPC_STUB IPersistStorage_Load_Stub(
  1495.     IRpcStubBuffer *This,
  1496.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1497.     PRPC_MESSAGE _pRpcMessage,
  1498.     DWORD *_pdwStubPhase);
  1499. HRESULT STDMETHODCALLTYPE IPersistStorage_Save_Proxy( 
  1500.     IPersistStorage * This,
  1501.     /* [unique][in] */ IStorage *pStgSave,
  1502.     /* [in] */ BOOL fSameAsLoad);
  1503. void __RPC_STUB IPersistStorage_Save_Stub(
  1504.     IRpcStubBuffer *This,
  1505.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1506.     PRPC_MESSAGE _pRpcMessage,
  1507.     DWORD *_pdwStubPhase);
  1508. HRESULT STDMETHODCALLTYPE IPersistStorage_SaveCompleted_Proxy( 
  1509.     IPersistStorage * This,
  1510.     /* [unique][in] */ IStorage *pStgNew);
  1511. void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
  1512.     IRpcStubBuffer *This,
  1513.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1514.     PRPC_MESSAGE _pRpcMessage,
  1515.     DWORD *_pdwStubPhase);
  1516. HRESULT STDMETHODCALLTYPE IPersistStorage_HandsOffStorage_Proxy( 
  1517.     IPersistStorage * This);
  1518. void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
  1519.     IRpcStubBuffer *This,
  1520.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1521.     PRPC_MESSAGE _pRpcMessage,
  1522.     DWORD *_pdwStubPhase);
  1523. #endif  /* __IPersistStorage_INTERFACE_DEFINED__ */
  1524. #ifndef __ILockBytes_INTERFACE_DEFINED__
  1525. #define __ILockBytes_INTERFACE_DEFINED__
  1526. /* interface ILockBytes */
  1527. /* [unique][uuid][object] */ 
  1528. typedef /* [unique] */ ILockBytes *LPLOCKBYTES;
  1529. EXTERN_C const IID IID_ILockBytes;
  1530. #if defined(__cplusplus) && !defined(CINTERFACE)
  1531.     
  1532.     MIDL_INTERFACE("0000000a-0000-0000-C000-000000000046")
  1533.     ILockBytes : public IUnknown
  1534.     {
  1535.     public:
  1536.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE ReadAt( 
  1537.             /* [in] */ ULARGE_INTEGER ulOffset,
  1538.             /* [length_is][size_is][out] */ void *pv,
  1539.             /* [in] */ ULONG cb,
  1540.             /* [out] */ ULONG *pcbRead) = 0;
  1541.         
  1542.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE WriteAt( 
  1543.             /* [in] */ ULARGE_INTEGER ulOffset,
  1544.             /* [size_is][in] */ const void *pv,
  1545.             /* [in] */ ULONG cb,
  1546.             /* [out] */ ULONG *pcbWritten) = 0;
  1547.         
  1548.         virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0;
  1549.         
  1550.         virtual HRESULT STDMETHODCALLTYPE SetSize( 
  1551.             /* [in] */ ULARGE_INTEGER cb) = 0;
  1552.         
  1553.         virtual HRESULT STDMETHODCALLTYPE LockRegion( 
  1554.             /* [in] */ ULARGE_INTEGER libOffset,
  1555.             /* [in] */ ULARGE_INTEGER cb,
  1556.             /* [in] */ DWORD dwLockType) = 0;
  1557.         
  1558.         virtual HRESULT STDMETHODCALLTYPE UnlockRegion( 
  1559.             /* [in] */ ULARGE_INTEGER libOffset,
  1560.             /* [in] */ ULARGE_INTEGER cb,
  1561.             /* [in] */ DWORD dwLockType) = 0;
  1562.         
  1563.         virtual HRESULT STDMETHODCALLTYPE Stat( 
  1564.             /* [out] */ STATSTG *pstatstg,
  1565.             /* [in] */ DWORD grfStatFlag) = 0;
  1566.         
  1567.     };
  1568.     
  1569. #else  /* C style interface */
  1570.     typedef struct ILockBytesVtbl
  1571.     {
  1572.         BEGIN_INTERFACE
  1573.         
  1574.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1575.             ILockBytes * This,
  1576.             /* [in] */ REFIID riid,
  1577.             /* [iid_is][out] */ void **ppvObject);
  1578.         
  1579.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1580.             ILockBytes * This);
  1581.         
  1582.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1583.             ILockBytes * This);
  1584.         
  1585.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *ReadAt )( 
  1586.             ILockBytes * This,
  1587.             /* [in] */ ULARGE_INTEGER ulOffset,
  1588.             /* [length_is][size_is][out] */ void *pv,
  1589.             /* [in] */ ULONG cb,
  1590.             /* [out] */ ULONG *pcbRead);
  1591.         
  1592.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *WriteAt )( 
  1593.             ILockBytes * This,
  1594.             /* [in] */ ULARGE_INTEGER ulOffset,
  1595.             /* [size_is][in] */ const void *pv,
  1596.             /* [in] */ ULONG cb,
  1597.             /* [out] */ ULONG *pcbWritten);
  1598.         
  1599.         HRESULT ( STDMETHODCALLTYPE *Flush )( 
  1600.             ILockBytes * This);
  1601.         
  1602.         HRESULT ( STDMETHODCALLTYPE *SetSize )( 
  1603.             ILockBytes * This,
  1604.             /* [in] */ ULARGE_INTEGER cb);
  1605.         
  1606.         HRESULT ( STDMETHODCALLTYPE *LockRegion )( 
  1607.             ILockBytes * This,
  1608.             /* [in] */ ULARGE_INTEGER libOffset,
  1609.             /* [in] */ ULARGE_INTEGER cb,
  1610.             /* [in] */ DWORD dwLockType);
  1611.         
  1612.         HRESULT ( STDMETHODCALLTYPE *UnlockRegion )( 
  1613.             ILockBytes * This,
  1614.             /* [in] */ ULARGE_INTEGER libOffset,
  1615.             /* [in] */ ULARGE_INTEGER cb,
  1616.             /* [in] */ DWORD dwLockType);
  1617.         
  1618.         HRESULT ( STDMETHODCALLTYPE *Stat )( 
  1619.             ILockBytes * This,
  1620.             /* [out] */ STATSTG *pstatstg,
  1621.             /* [in] */ DWORD grfStatFlag);
  1622.         
  1623.         END_INTERFACE
  1624.     } ILockBytesVtbl;
  1625.     interface ILockBytes
  1626.     {
  1627.         CONST_VTBL struct ILockBytesVtbl *lpVtbl;
  1628.     };
  1629.     
  1630. #ifdef COBJMACROS
  1631. #define ILockBytes_QueryInterface(This,riid,ppvObject)
  1632.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1633. #define ILockBytes_AddRef(This)
  1634.     (This)->lpVtbl -> AddRef(This)
  1635. #define ILockBytes_Release(This)
  1636.     (This)->lpVtbl -> Release(This)
  1637. #define ILockBytes_ReadAt(This,ulOffset,pv,cb,pcbRead)
  1638.     (This)->lpVtbl -> ReadAt(This,ulOffset,pv,cb,pcbRead)
  1639. #define ILockBytes_WriteAt(This,ulOffset,pv,cb,pcbWritten)
  1640.     (This)->lpVtbl -> WriteAt(This,ulOffset,pv,cb,pcbWritten)
  1641. #define ILockBytes_Flush(This)
  1642.     (This)->lpVtbl -> Flush(This)
  1643. #define ILockBytes_SetSize(This,cb)
  1644.     (This)->lpVtbl -> SetSize(This,cb)
  1645. #define ILockBytes_LockRegion(This,libOffset,cb,dwLockType)
  1646.     (This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType)
  1647. #define ILockBytes_UnlockRegion(This,libOffset,cb,dwLockType)
  1648.     (This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType)
  1649. #define ILockBytes_Stat(This,pstatstg,grfStatFlag)
  1650.     (This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag)
  1651. #endif /* COBJMACROS */
  1652. #endif  /* C style interface */
  1653. /* [call_as] */ HRESULT __stdcall ILockBytes_RemoteReadAt_Proxy( 
  1654.     ILockBytes * This,
  1655.     /* [in] */ ULARGE_INTEGER ulOffset,
  1656.     /* [length_is][size_is][out] */ byte *pv,
  1657.     /* [in] */ ULONG cb,
  1658.     /* [out] */ ULONG *pcbRead);
  1659. void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
  1660.     IRpcStubBuffer *This,
  1661.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1662.     PRPC_MESSAGE _pRpcMessage,
  1663.     DWORD *_pdwStubPhase);
  1664. /* [call_as] */ HRESULT STDMETHODCALLTYPE ILockBytes_RemoteWriteAt_Proxy( 
  1665.     ILockBytes * This,
  1666.     /* [in] */ ULARGE_INTEGER ulOffset,
  1667.     /* [size_is][in] */ const byte *pv,
  1668.     /* [in] */ ULONG cb,
  1669.     /* [out] */ ULONG *pcbWritten);
  1670. void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
  1671.     IRpcStubBuffer *This,
  1672.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1673.     PRPC_MESSAGE _pRpcMessage,
  1674.     DWORD *_pdwStubPhase);
  1675. HRESULT STDMETHODCALLTYPE ILockBytes_Flush_Proxy( 
  1676.     ILockBytes * This);
  1677. void __RPC_STUB ILockBytes_Flush_Stub(
  1678.     IRpcStubBuffer *This,
  1679.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1680.     PRPC_MESSAGE _pRpcMessage,
  1681.     DWORD *_pdwStubPhase);
  1682. HRESULT STDMETHODCALLTYPE ILockBytes_SetSize_Proxy( 
  1683.     ILockBytes * This,
  1684.     /* [in] */ ULARGE_INTEGER cb);
  1685. void __RPC_STUB ILockBytes_SetSize_Stub(
  1686.     IRpcStubBuffer *This,
  1687.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1688.     PRPC_MESSAGE _pRpcMessage,
  1689.     DWORD *_pdwStubPhase);
  1690. HRESULT STDMETHODCALLTYPE ILockBytes_LockRegion_Proxy( 
  1691.     ILockBytes * This,
  1692.     /* [in] */ ULARGE_INTEGER libOffset,
  1693.     /* [in] */ ULARGE_INTEGER cb,
  1694.     /* [in] */ DWORD dwLockType);
  1695. void __RPC_STUB ILockBytes_LockRegion_Stub(
  1696.     IRpcStubBuffer *This,
  1697.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1698.     PRPC_MESSAGE _pRpcMessage,
  1699.     DWORD *_pdwStubPhase);
  1700. HRESULT STDMETHODCALLTYPE ILockBytes_UnlockRegion_Proxy( 
  1701.     ILockBytes * This,
  1702.     /* [in] */ ULARGE_INTEGER libOffset,
  1703.     /* [in] */ ULARGE_INTEGER cb,
  1704.     /* [in] */ DWORD dwLockType);
  1705. void __RPC_STUB ILockBytes_UnlockRegion_Stub(
  1706.     IRpcStubBuffer *This,
  1707.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1708.     PRPC_MESSAGE _pRpcMessage,
  1709.     DWORD *_pdwStubPhase);
  1710. HRESULT STDMETHODCALLTYPE ILockBytes_Stat_Proxy( 
  1711.     ILockBytes * This,
  1712.     /* [out] */ STATSTG *pstatstg,
  1713.     /* [in] */ DWORD grfStatFlag);
  1714. void __RPC_STUB ILockBytes_Stat_Stub(
  1715.     IRpcStubBuffer *This,
  1716.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1717.     PRPC_MESSAGE _pRpcMessage,
  1718.     DWORD *_pdwStubPhase);
  1719. #endif  /* __ILockBytes_INTERFACE_DEFINED__ */
  1720. #ifndef __IEnumFORMATETC_INTERFACE_DEFINED__
  1721. #define __IEnumFORMATETC_INTERFACE_DEFINED__
  1722. /* interface IEnumFORMATETC */
  1723. /* [unique][uuid][object] */ 
  1724. typedef /* [unique] */ IEnumFORMATETC *LPENUMFORMATETC;
  1725. typedef struct tagDVTARGETDEVICE
  1726.     {
  1727.     DWORD tdSize;
  1728.     WORD tdDriverNameOffset;
  1729.     WORD tdDeviceNameOffset;
  1730.     WORD tdPortNameOffset;
  1731.     WORD tdExtDevmodeOffset;
  1732.     /* [size_is] */ BYTE tdData[ 1 ];
  1733.     }  DVTARGETDEVICE;
  1734. typedef CLIPFORMAT *LPCLIPFORMAT;
  1735. typedef struct tagFORMATETC
  1736.     {
  1737.     CLIPFORMAT cfFormat;
  1738.     /* [unique] */ DVTARGETDEVICE *ptd;
  1739.     DWORD dwAspect;
  1740.     LONG lindex;
  1741.     DWORD tymed;
  1742.     }  FORMATETC;
  1743. typedef struct tagFORMATETC *LPFORMATETC;
  1744. EXTERN_C const IID IID_IEnumFORMATETC;
  1745. #if defined(__cplusplus) && !defined(CINTERFACE)
  1746.     
  1747.     MIDL_INTERFACE("00000103-0000-0000-C000-000000000046")
  1748.     IEnumFORMATETC : public IUnknown
  1749.     {
  1750.     public:
  1751.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( 
  1752.             /* [in] */ ULONG celt,
  1753.             /* [length_is][size_is][out] */ FORMATETC *rgelt,
  1754.             /* [out] */ ULONG *pceltFetched) = 0;
  1755.         
  1756.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  1757.             /* [in] */ ULONG celt) = 0;
  1758.         
  1759.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  1760.         
  1761.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  1762.             /* [out] */ IEnumFORMATETC **ppenum) = 0;
  1763.         
  1764.     };
  1765.     
  1766. #else  /* C style interface */
  1767.     typedef struct IEnumFORMATETCVtbl
  1768.     {
  1769.         BEGIN_INTERFACE
  1770.         
  1771.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1772.             IEnumFORMATETC * This,
  1773.             /* [in] */ REFIID riid,
  1774.             /* [iid_is][out] */ void **ppvObject);
  1775.         
  1776.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1777.             IEnumFORMATETC * This);
  1778.         
  1779.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1780.             IEnumFORMATETC * This);
  1781.         
  1782.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
  1783.             IEnumFORMATETC * This,
  1784.             /* [in] */ ULONG celt,
  1785.             /* [length_is][size_is][out] */ FORMATETC *rgelt,
  1786.             /* [out] */ ULONG *pceltFetched);
  1787.         
  1788.         HRESULT ( STDMETHODCALLTYPE *Skip )( 
  1789.             IEnumFORMATETC * This,
  1790.             /* [in] */ ULONG celt);
  1791.         
  1792.         HRESULT ( STDMETHODCALLTYPE *Reset )( 
  1793.             IEnumFORMATETC * This);
  1794.         
  1795.         HRESULT ( STDMETHODCALLTYPE *Clone )( 
  1796.             IEnumFORMATETC * This,
  1797.             /* [out] */ IEnumFORMATETC **ppenum);
  1798.         
  1799.         END_INTERFACE
  1800.     } IEnumFORMATETCVtbl;
  1801.     interface IEnumFORMATETC
  1802.     {
  1803.         CONST_VTBL struct IEnumFORMATETCVtbl *lpVtbl;
  1804.     };
  1805.     
  1806. #ifdef COBJMACROS
  1807. #define IEnumFORMATETC_QueryInterface(This,riid,ppvObject)
  1808.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1809. #define IEnumFORMATETC_AddRef(This)
  1810.     (This)->lpVtbl -> AddRef(This)
  1811. #define IEnumFORMATETC_Release(This)
  1812.     (This)->lpVtbl -> Release(This)
  1813. #define IEnumFORMATETC_Next(This,celt,rgelt,pceltFetched)
  1814.     (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched)
  1815. #define IEnumFORMATETC_Skip(This,celt)
  1816.     (This)->lpVtbl -> Skip(This,celt)
  1817. #define IEnumFORMATETC_Reset(This)
  1818.     (This)->lpVtbl -> Reset(This)
  1819. #define IEnumFORMATETC_Clone(This,ppenum)
  1820.     (This)->lpVtbl -> Clone(This,ppenum)
  1821. #endif /* COBJMACROS */
  1822. #endif  /* C style interface */
  1823. /* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumFORMATETC_RemoteNext_Proxy( 
  1824.     IEnumFORMATETC * This,
  1825.     /* [in] */ ULONG celt,
  1826.     /* [length_is][size_is][out] */ FORMATETC *rgelt,
  1827.     /* [out] */ ULONG *pceltFetched);
  1828. void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
  1829.     IRpcStubBuffer *This,
  1830.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1831.     PRPC_MESSAGE _pRpcMessage,
  1832.     DWORD *_pdwStubPhase);
  1833. HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Skip_Proxy( 
  1834.     IEnumFORMATETC * This,
  1835.     /* [in] */ ULONG celt);
  1836. void __RPC_STUB IEnumFORMATETC_Skip_Stub(
  1837.     IRpcStubBuffer *This,
  1838.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1839.     PRPC_MESSAGE _pRpcMessage,
  1840.     DWORD *_pdwStubPhase);
  1841. HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Reset_Proxy( 
  1842.     IEnumFORMATETC * This);
  1843. void __RPC_STUB IEnumFORMATETC_Reset_Stub(
  1844.     IRpcStubBuffer *This,
  1845.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1846.     PRPC_MESSAGE _pRpcMessage,
  1847.     DWORD *_pdwStubPhase);
  1848. HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Clone_Proxy( 
  1849.     IEnumFORMATETC * This,
  1850.     /* [out] */ IEnumFORMATETC **ppenum);
  1851. void __RPC_STUB IEnumFORMATETC_Clone_Stub(
  1852.     IRpcStubBuffer *This,
  1853.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1854.     PRPC_MESSAGE _pRpcMessage,
  1855.     DWORD *_pdwStubPhase);
  1856. #endif  /* __IEnumFORMATETC_INTERFACE_DEFINED__ */
  1857. #ifndef __IEnumSTATDATA_INTERFACE_DEFINED__
  1858. #define __IEnumSTATDATA_INTERFACE_DEFINED__
  1859. /* interface IEnumSTATDATA */
  1860. /* [unique][uuid][object] */ 
  1861. typedef /* [unique] */ IEnumSTATDATA *LPENUMSTATDATA;
  1862. typedef 
  1863. enum tagADVF
  1864.     { ADVF_NODATA = 1,
  1865. ADVF_PRIMEFIRST = 2,
  1866. ADVF_ONLYONCE = 4,
  1867. ADVF_DATAONSTOP = 64,
  1868. ADVFCACHE_NOHANDLER = 8,
  1869. ADVFCACHE_FORCEBUILTIN = 16,
  1870. ADVFCACHE_ONSAVE = 32
  1871.     }  ADVF;
  1872. typedef struct tagSTATDATA
  1873.     {
  1874.     FORMATETC formatetc;
  1875.     DWORD advf;
  1876.     /* [unique] */ IAdviseSink *pAdvSink;
  1877.     DWORD dwConnection;
  1878.     }  STATDATA;
  1879. typedef STATDATA *LPSTATDATA;
  1880. EXTERN_C const IID IID_IEnumSTATDATA;
  1881. #if defined(__cplusplus) && !defined(CINTERFACE)
  1882.     
  1883.     MIDL_INTERFACE("00000105-0000-0000-C000-000000000046")
  1884.     IEnumSTATDATA : public IUnknown
  1885.     {
  1886.     public:
  1887.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( 
  1888.             /* [in] */ ULONG celt,
  1889.             /* [length_is][size_is][out] */ STATDATA *rgelt,
  1890.             /* [out] */ ULONG *pceltFetched) = 0;
  1891.         
  1892.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  1893.             /* [in] */ ULONG celt) = 0;
  1894.         
  1895.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  1896.         
  1897.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  1898.             /* [out] */ IEnumSTATDATA **ppenum) = 0;
  1899.         
  1900.     };
  1901.     
  1902. #else  /* C style interface */
  1903.     typedef struct IEnumSTATDATAVtbl
  1904.     {
  1905.         BEGIN_INTERFACE
  1906.         
  1907.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1908.             IEnumSTATDATA * This,
  1909.             /* [in] */ REFIID riid,
  1910.             /* [iid_is][out] */ void **ppvObject);
  1911.         
  1912.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1913.             IEnumSTATDATA * This);
  1914.         
  1915.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1916.             IEnumSTATDATA * This);
  1917.         
  1918.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
  1919.             IEnumSTATDATA * This,
  1920.             /* [in] */ ULONG celt,
  1921.             /* [length_is][size_is][out] */ STATDATA *rgelt,
  1922.             /* [out] */ ULONG *pceltFetched);
  1923.         
  1924.         HRESULT ( STDMETHODCALLTYPE *Skip )( 
  1925.             IEnumSTATDATA * This,
  1926.             /* [in] */ ULONG celt);
  1927.         
  1928.         HRESULT ( STDMETHODCALLTYPE *Reset )( 
  1929.             IEnumSTATDATA * This);
  1930.         
  1931.         HRESULT ( STDMETHODCALLTYPE *Clone )( 
  1932.             IEnumSTATDATA * This,
  1933.             /* [out] */ IEnumSTATDATA **ppenum);
  1934.         
  1935.         END_INTERFACE
  1936.     } IEnumSTATDATAVtbl;
  1937.     interface IEnumSTATDATA
  1938.     {
  1939.         CONST_VTBL struct IEnumSTATDATAVtbl *lpVtbl;
  1940.     };
  1941.     
  1942. #ifdef COBJMACROS
  1943. #define IEnumSTATDATA_QueryInterface(This,riid,ppvObject)
  1944.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1945. #define IEnumSTATDATA_AddRef(This)
  1946.     (This)->lpVtbl -> AddRef(This)
  1947. #define IEnumSTATDATA_Release(This)
  1948.     (This)->lpVtbl -> Release(This)
  1949. #define IEnumSTATDATA_Next(This,celt,rgelt,pceltFetched)
  1950.     (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched)
  1951. #define IEnumSTATDATA_Skip(This,celt)
  1952.     (This)->lpVtbl -> Skip(This,celt)
  1953. #define IEnumSTATDATA_Reset(This)
  1954.     (This)->lpVtbl -> Reset(This)
  1955. #define IEnumSTATDATA_Clone(This,ppenum)
  1956.     (This)->lpVtbl -> Clone(This,ppenum)
  1957. #endif /* COBJMACROS */
  1958. #endif  /* C style interface */
  1959. /* [call_as] */ HRESULT STDMETHODCALLTYPE IEnumSTATDATA_RemoteNext_Proxy( 
  1960.     IEnumSTATDATA * This,
  1961.     /* [in] */ ULONG celt,
  1962.     /* [length_is][size_is][out] */ STATDATA *rgelt,
  1963.     /* [out] */ ULONG *pceltFetched);
  1964. void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
  1965.     IRpcStubBuffer *This,
  1966.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1967.     PRPC_MESSAGE _pRpcMessage,
  1968.     DWORD *_pdwStubPhase);
  1969. HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Skip_Proxy( 
  1970.     IEnumSTATDATA * This,
  1971.     /* [in] */ ULONG celt);
  1972. void __RPC_STUB IEnumSTATDATA_Skip_Stub(
  1973.     IRpcStubBuffer *This,
  1974.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1975.     PRPC_MESSAGE _pRpcMessage,
  1976.     DWORD *_pdwStubPhase);
  1977. HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Reset_Proxy( 
  1978.     IEnumSTATDATA * This);
  1979. void __RPC_STUB IEnumSTATDATA_Reset_Stub(
  1980.     IRpcStubBuffer *This,
  1981.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1982.     PRPC_MESSAGE _pRpcMessage,
  1983.     DWORD *_pdwStubPhase);
  1984. HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Clone_Proxy( 
  1985.     IEnumSTATDATA * This,
  1986.     /* [out] */ IEnumSTATDATA **ppenum);
  1987. void __RPC_STUB IEnumSTATDATA_Clone_Stub(
  1988.     IRpcStubBuffer *This,
  1989.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1990.     PRPC_MESSAGE _pRpcMessage,
  1991.     DWORD *_pdwStubPhase);
  1992. #endif  /* __IEnumSTATDATA_INTERFACE_DEFINED__ */
  1993. #ifndef __IRootStorage_INTERFACE_DEFINED__
  1994. #define __IRootStorage_INTERFACE_DEFINED__
  1995. /* interface IRootStorage */
  1996. /* [unique][uuid][object] */ 
  1997. typedef /* [unique] */ IRootStorage *LPROOTSTORAGE;
  1998. EXTERN_C const IID IID_IRootStorage;
  1999. #if defined(__cplusplus) && !defined(CINTERFACE)
  2000.     
  2001.     MIDL_INTERFACE("00000012-0000-0000-C000-000000000046")
  2002.     IRootStorage : public IUnknown
  2003.     {
  2004.     public:
  2005.         virtual HRESULT STDMETHODCALLTYPE SwitchToFile( 
  2006.             /* [in] */ LPOLESTR pszFile) = 0;
  2007.         
  2008.     };
  2009.     
  2010. #else  /* C style interface */
  2011.     typedef struct IRootStorageVtbl
  2012.     {
  2013.         BEGIN_INTERFACE
  2014.         
  2015.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2016.             IRootStorage * This,
  2017.             /* [in] */ REFIID riid,
  2018.             /* [iid_is][out] */ void **ppvObject);
  2019.         
  2020.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2021.             IRootStorage * This);
  2022.         
  2023.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2024.             IRootStorage * This);
  2025.         
  2026.         HRESULT ( STDMETHODCALLTYPE *SwitchToFile )( 
  2027.             IRootStorage * This,
  2028.             /* [in] */ LPOLESTR pszFile);
  2029.         
  2030.         END_INTERFACE
  2031.     } IRootStorageVtbl;
  2032.     interface IRootStorage
  2033.     {
  2034.         CONST_VTBL struct IRootStorageVtbl *lpVtbl;
  2035.     };
  2036.     
  2037. #ifdef COBJMACROS
  2038. #define IRootStorage_QueryInterface(This,riid,ppvObject)
  2039.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2040. #define IRootStorage_AddRef(This)
  2041.     (This)->lpVtbl -> AddRef(This)
  2042. #define IRootStorage_Release(This)
  2043.     (This)->lpVtbl -> Release(This)
  2044. #define IRootStorage_SwitchToFile(This,pszFile)
  2045.     (This)->lpVtbl -> SwitchToFile(This,pszFile)
  2046. #endif /* COBJMACROS */
  2047. #endif  /* C style interface */
  2048. HRESULT STDMETHODCALLTYPE IRootStorage_SwitchToFile_Proxy( 
  2049.     IRootStorage * This,
  2050.     /* [in] */ LPOLESTR pszFile);
  2051. void __RPC_STUB IRootStorage_SwitchToFile_Stub(
  2052.     IRpcStubBuffer *This,
  2053.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2054.     PRPC_MESSAGE _pRpcMessage,
  2055.     DWORD *_pdwStubPhase);
  2056. #endif  /* __IRootStorage_INTERFACE_DEFINED__ */
  2057. #ifndef __IAdviseSink_INTERFACE_DEFINED__
  2058. #define __IAdviseSink_INTERFACE_DEFINED__
  2059. /* interface IAdviseSink */
  2060. /* [unique][async_uuid][uuid][object] */ 
  2061. typedef IAdviseSink *LPADVISESINK;
  2062. typedef /* [v1_enum] */ 
  2063. enum tagTYMED
  2064.     { TYMED_HGLOBAL = 1,
  2065. TYMED_FILE = 2,
  2066. TYMED_ISTREAM = 4,
  2067. TYMED_ISTORAGE = 8,
  2068. TYMED_GDI = 16,
  2069. TYMED_MFPICT = 32,
  2070. TYMED_ENHMF = 64,
  2071. TYMED_NULL = 0
  2072.     }  TYMED;
  2073. #ifndef RC_INVOKED
  2074. #if _MSC_VER >= 1200
  2075. #pragma warning(push)
  2076. #endif
  2077. #pragma warning(disable:4200)
  2078. #endif
  2079. typedef struct tagRemSTGMEDIUM
  2080.     {
  2081.     DWORD tymed;
  2082.     DWORD dwHandleType;
  2083.     unsigned long pData;
  2084.     unsigned long pUnkForRelease;
  2085.     unsigned long cbData;
  2086.     /* [size_is] */ byte data[ 1 ];
  2087.     }  RemSTGMEDIUM;
  2088. #ifndef RC_INVOKED
  2089. #if _MSC_VER >= 1200
  2090. #pragma warning(pop)
  2091. #else
  2092. #pragma warning(default:4200)
  2093. #endif
  2094. #endif
  2095. #ifdef NONAMELESSUNION
  2096. typedef struct tagSTGMEDIUM {
  2097.     DWORD tymed;
  2098.     union {
  2099.         HBITMAP hBitmap;
  2100.         HMETAFILEPICT hMetaFilePict;
  2101.         HENHMETAFILE hEnhMetaFile;
  2102.         HGLOBAL hGlobal;
  2103.         LPOLESTR lpszFileName;
  2104.         IStream *pstm;
  2105.         IStorage *pstg;
  2106.         } u;
  2107.     IUnknown *pUnkForRelease;
  2108. }uSTGMEDIUM;
  2109. #else
  2110. typedef struct tagSTGMEDIUM
  2111.     {
  2112.     DWORD tymed;
  2113.     /* [switch_is][switch_type] */ union 
  2114.         {
  2115.         /* [case()] */ HBITMAP hBitmap;
  2116.         /* [case()] */ HMETAFILEPICT hMetaFilePict;
  2117.         /* [case()] */ HENHMETAFILE hEnhMetaFile;
  2118.         /* [case()] */ HGLOBAL hGlobal;
  2119.         /* [case()] */ LPOLESTR lpszFileName;
  2120.         /* [case()] */ IStream *pstm;
  2121.         /* [case()] */ IStorage *pstg;
  2122.         /* [default] */  /* Empty union arm */ 
  2123.         }  ;
  2124.     /* [unique] */ IUnknown *pUnkForRelease;
  2125.     }  uSTGMEDIUM;
  2126. #endif /* !NONAMELESSUNION */
  2127. typedef struct _GDI_OBJECT
  2128.     {
  2129.     DWORD ObjectType;
  2130.     /* [switch_is] */ /* [switch_type] */ union __MIDL_IAdviseSink_0002
  2131.         {
  2132.         /* [case()] */ wireHBITMAP hBitmap;
  2133.         /* [case()] */ wireHPALETTE hPalette;
  2134.         /* [default] */ wireHGLOBAL hGeneric;
  2135.         }  u;
  2136.     }  GDI_OBJECT;
  2137. typedef struct _userSTGMEDIUM
  2138.     {
  2139.     struct _STGMEDIUM_UNION
  2140.         {
  2141.         DWORD tymed;
  2142.         /* [switch_is] */ /* [switch_type] */ union __MIDL_IAdviseSink_0003
  2143.             {
  2144.             /* [case()] */  /* Empty union arm */ 
  2145.             /* [case()] */ wireHMETAFILEPICT hMetaFilePict;
  2146.             /* [case()] */ wireHENHMETAFILE hHEnhMetaFile;
  2147.             /* [case()] */ GDI_OBJECT *hGdiHandle;
  2148.             /* [case()] */ wireHGLOBAL hGlobal;
  2149.             /* [case()] */ LPOLESTR lpszFileName;
  2150.             /* [case()] */ BYTE_BLOB *pstm;
  2151.             /* [case()] */ BYTE_BLOB *pstg;
  2152.             }  u;
  2153.         }  ;
  2154.     IUnknown *pUnkForRelease;
  2155.     }  userSTGMEDIUM;
  2156. typedef /* [unique] */ userSTGMEDIUM *wireSTGMEDIUM;
  2157. typedef /* [wire_marshal] */ uSTGMEDIUM STGMEDIUM;
  2158. typedef /* [unique] */ userSTGMEDIUM *wireASYNC_STGMEDIUM;
  2159. typedef /* [wire_marshal] */ STGMEDIUM ASYNC_STGMEDIUM;
  2160. typedef STGMEDIUM *LPSTGMEDIUM;
  2161. typedef struct _userFLAG_STGMEDIUM
  2162.     {
  2163.     long ContextFlags;
  2164.     long fPassOwnership;
  2165.     userSTGMEDIUM Stgmed;
  2166.     }  userFLAG_STGMEDIUM;
  2167. typedef /* [unique] */ userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
  2168. typedef /* [wire_marshal] */ struct _FLAG_STGMEDIUM
  2169.     {
  2170.     long ContextFlags;
  2171.     long fPassOwnership;
  2172.     STGMEDIUM Stgmed;
  2173.     }  FLAG_STGMEDIUM;
  2174. EXTERN_C const IID IID_IAdviseSink;
  2175. #if defined(__cplusplus) && !defined(CINTERFACE)
  2176.     
  2177.     MIDL_INTERFACE("0000010f-0000-0000-C000-000000000046")
  2178.     IAdviseSink : public IUnknown
  2179.     {
  2180.     public:
  2181.         virtual /* [local] */ void STDMETHODCALLTYPE OnDataChange( 
  2182.             /* [unique][in] */ FORMATETC *pFormatetc,
  2183.             /* [unique][in] */ STGMEDIUM *pStgmed) = 0;
  2184.         
  2185.         virtual /* [local] */ void STDMETHODCALLTYPE OnViewChange( 
  2186.             /* [in] */ DWORD dwAspect,
  2187.             /* [in] */ LONG lindex) = 0;
  2188.         
  2189.         virtual /* [local] */ void STDMETHODCALLTYPE OnRename( 
  2190.             /* [in] */ IMoniker *pmk) = 0;
  2191.         
  2192.         virtual /* [local] */ void STDMETHODCALLTYPE OnSave( void) = 0;
  2193.         
  2194.         virtual /* [local] */ void STDMETHODCALLTYPE OnClose( void) = 0;
  2195.         
  2196.     };
  2197.     
  2198. #else  /* C style interface */
  2199.     typedef struct IAdviseSinkVtbl
  2200.     {
  2201.         BEGIN_INTERFACE
  2202.         
  2203.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2204.             IAdviseSink * This,
  2205.             /* [in] */ REFIID riid,
  2206.             /* [iid_is][out] */ void **ppvObject);
  2207.         
  2208.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2209.             IAdviseSink * This);
  2210.         
  2211.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2212.             IAdviseSink * This);
  2213.         
  2214.         /* [local] */ void ( STDMETHODCALLTYPE *OnDataChange )( 
  2215.             IAdviseSink * This,
  2216.             /* [unique][in] */ FORMATETC *pFormatetc,
  2217.             /* [unique][in] */ STGMEDIUM *pStgmed);
  2218.         
  2219.         /* [local] */ void ( STDMETHODCALLTYPE *OnViewChange )( 
  2220.             IAdviseSink * This,
  2221.             /* [in] */ DWORD dwAspect,
  2222.             /* [in] */ LONG lindex);
  2223.         
  2224.         /* [local] */ void ( STDMETHODCALLTYPE *OnRename )( 
  2225.             IAdviseSink * This,
  2226.             /* [in] */ IMoniker *pmk);
  2227.         
  2228.         /* [local] */ void ( STDMETHODCALLTYPE *OnSave )( 
  2229.             IAdviseSink * This);
  2230.         
  2231.         /* [local] */ void ( STDMETHODCALLTYPE *OnClose )( 
  2232.             IAdviseSink * This);
  2233.         
  2234.         END_INTERFACE
  2235.     } IAdviseSinkVtbl;
  2236.     interface IAdviseSink
  2237.     {
  2238.         CONST_VTBL struct IAdviseSinkVtbl *lpVtbl;
  2239.     };
  2240.     
  2241. #ifdef COBJMACROS
  2242. #define IAdviseSink_QueryInterface(This,riid,ppvObject)
  2243.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2244. #define IAdviseSink_AddRef(This)
  2245.     (This)->lpVtbl -> AddRef(This)
  2246. #define IAdviseSink_Release(This)
  2247.     (This)->lpVtbl -> Release(This)
  2248. #define IAdviseSink_OnDataChange(This,pFormatetc,pStgmed)
  2249.     (This)->lpVtbl -> OnDataChange(This,pFormatetc,pStgmed)
  2250. #define IAdviseSink_OnViewChange(This,dwAspect,lindex)
  2251.     (This)->lpVtbl -> OnViewChange(This,dwAspect,lindex)
  2252. #define IAdviseSink_OnRename(This,pmk)
  2253.     (This)->lpVtbl -> OnRename(This,pmk)
  2254. #define IAdviseSink_OnSave(This)
  2255.     (This)->lpVtbl -> OnSave(This)
  2256. #define IAdviseSink_OnClose(This)
  2257.     (This)->lpVtbl -> OnClose(This)
  2258. #endif /* COBJMACROS */
  2259. #endif  /* C style interface */
  2260. /* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnDataChange_Proxy( 
  2261.     IAdviseSink * This,
  2262.     /* [unique][in] */ FORMATETC *pFormatetc,
  2263.     /* [unique][in] */ ASYNC_STGMEDIUM *pStgmed);
  2264. void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
  2265.     IRpcStubBuffer *This,
  2266.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2267.     PRPC_MESSAGE _pRpcMessage,
  2268.     DWORD *_pdwStubPhase);
  2269. /* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnViewChange_Proxy( 
  2270.     IAdviseSink * This,
  2271.     /* [in] */ DWORD dwAspect,
  2272.     /* [in] */ LONG lindex);
  2273. void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
  2274.     IRpcStubBuffer *This,
  2275.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2276.     PRPC_MESSAGE _pRpcMessage,
  2277.     DWORD *_pdwStubPhase);
  2278. /* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnRename_Proxy( 
  2279.     IAdviseSink * This,
  2280.     /* [in] */ IMoniker *pmk);
  2281. void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
  2282.     IRpcStubBuffer *This,
  2283.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2284.     PRPC_MESSAGE _pRpcMessage,
  2285.     DWORD *_pdwStubPhase);
  2286. /* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnSave_Proxy( 
  2287.     IAdviseSink * This);
  2288. void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
  2289.     IRpcStubBuffer *This,
  2290.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2291.     PRPC_MESSAGE _pRpcMessage,
  2292.     DWORD *_pdwStubPhase);
  2293. /* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnClose_Proxy( 
  2294.     IAdviseSink * This);
  2295. void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
  2296.     IRpcStubBuffer *This,
  2297.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2298.     PRPC_MESSAGE _pRpcMessage,
  2299.     DWORD *_pdwStubPhase);
  2300. #endif  /* __IAdviseSink_INTERFACE_DEFINED__ */
  2301. #ifndef __AsyncIAdviseSink_INTERFACE_DEFINED__
  2302. #define __AsyncIAdviseSink_INTERFACE_DEFINED__
  2303. /* interface AsyncIAdviseSink */
  2304. /* [uuid][unique][object] */ 
  2305. EXTERN_C const IID IID_AsyncIAdviseSink;
  2306. #if defined(__cplusplus) && !defined(CINTERFACE)
  2307.     
  2308.     MIDL_INTERFACE("00000150-0000-0000-C000-000000000046")
  2309.     AsyncIAdviseSink : public IUnknown
  2310.     {
  2311.     public:
  2312.         virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnDataChange( 
  2313.             /* [unique][in] */ FORMATETC *pFormatetc,
  2314.             /* [unique][in] */ STGMEDIUM *pStgmed) = 0;
  2315.         
  2316.         virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnDataChange( void) = 0;
  2317.         
  2318.         virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnViewChange( 
  2319.             /* [in] */ DWORD dwAspect,
  2320.             /* [in] */ LONG lindex) = 0;
  2321.         
  2322.         virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnViewChange( void) = 0;
  2323.         
  2324.         virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnRename( 
  2325.             /* [in] */ IMoniker *pmk) = 0;
  2326.         
  2327.         virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnRename( void) = 0;
  2328.         
  2329.         virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnSave( void) = 0;
  2330.         
  2331.         virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnSave( void) = 0;
  2332.         
  2333.         virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnClose( void) = 0;
  2334.         
  2335.         virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnClose( void) = 0;
  2336.         
  2337.     };
  2338.     
  2339. #else  /* C style interface */
  2340.     typedef struct AsyncIAdviseSinkVtbl
  2341.     {
  2342.         BEGIN_INTERFACE
  2343.         
  2344.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2345.             AsyncIAdviseSink * This,
  2346.             /* [in] */ REFIID riid,
  2347.             /* [iid_is][out] */ void **ppvObject);
  2348.         
  2349.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2350.             AsyncIAdviseSink * This);
  2351.         
  2352.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2353.             AsyncIAdviseSink * This);
  2354.         
  2355.         /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnDataChange )( 
  2356.             AsyncIAdviseSink * This,
  2357.             /* [unique][in] */ FORMATETC *pFormatetc,
  2358.             /* [unique][in] */ STGMEDIUM *pStgmed);
  2359.         
  2360.         /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnDataChange )( 
  2361.             AsyncIAdviseSink * This);
  2362.         
  2363.         /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnViewChange )( 
  2364.             AsyncIAdviseSink * This,
  2365.             /* [in] */ DWORD dwAspect,
  2366.             /* [in] */ LONG lindex);
  2367.         
  2368.         /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnViewChange )( 
  2369.             AsyncIAdviseSink * This);
  2370.         
  2371.         /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnRename )( 
  2372.             AsyncIAdviseSink * This,
  2373.             /* [in] */ IMoniker *pmk);
  2374.         
  2375.         /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnRename )( 
  2376.             AsyncIAdviseSink * This);
  2377.         
  2378.         /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnSave )( 
  2379.             AsyncIAdviseSink * This);
  2380.         
  2381.         /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnSave )( 
  2382.             AsyncIAdviseSink * This);
  2383.         
  2384.         /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnClose )( 
  2385.             AsyncIAdviseSink * This);
  2386.         
  2387.         /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnClose )( 
  2388.             AsyncIAdviseSink * This);
  2389.         
  2390.         END_INTERFACE
  2391.     } AsyncIAdviseSinkVtbl;
  2392.     interface AsyncIAdviseSink
  2393.     {
  2394.         CONST_VTBL struct AsyncIAdviseSinkVtbl *lpVtbl;
  2395.     };
  2396.     
  2397. #ifdef COBJMACROS
  2398. #define AsyncIAdviseSink_QueryInterface(This,riid,ppvObject)
  2399.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2400. #define AsyncIAdviseSink_AddRef(This)
  2401.     (This)->lpVtbl -> AddRef(This)
  2402. #define AsyncIAdviseSink_Release(This)
  2403.     (This)->lpVtbl -> Release(This)
  2404. #define AsyncIAdviseSink_Begin_OnDataChange(This,pFormatetc,pStgmed)
  2405.     (This)->lpVtbl -> Begin_OnDataChange(This,pFormatetc,pStgmed)
  2406. #define AsyncIAdviseSink_Finish_OnDataChange(This)
  2407.     (This)->lpVtbl -> Finish_OnDataChange(This)
  2408. #define AsyncIAdviseSink_Begin_OnViewChange(This,dwAspect,lindex)
  2409.     (This)->lpVtbl -> Begin_OnViewChange(This,dwAspect,lindex)
  2410. #define AsyncIAdviseSink_Finish_OnViewChange(This)
  2411.     (This)->lpVtbl -> Finish_OnViewChange(This)
  2412. #define AsyncIAdviseSink_Begin_OnRename(This,pmk)
  2413.     (This)->lpVtbl -> Begin_OnRename(This,pmk)
  2414. #define AsyncIAdviseSink_Finish_OnRename(This)
  2415.     (This)->lpVtbl -> Finish_OnRename(This)
  2416. #define AsyncIAdviseSink_Begin_OnSave(This)
  2417.     (This)->lpVtbl -> Begin_OnSave(This)
  2418. #define AsyncIAdviseSink_Finish_OnSave(This)
  2419.     (This)->lpVtbl -> Finish_OnSave(This)
  2420. #define AsyncIAdviseSink_Begin_OnClose(This)
  2421.     (This)->lpVtbl -> Begin_OnClose(This)
  2422. #define AsyncIAdviseSink_Finish_OnClose(This)
  2423.     (This)->lpVtbl -> Finish_OnClose(This)
  2424. #endif /* COBJMACROS */
  2425. #endif  /* C style interface */
  2426. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnDataChange_Proxy( 
  2427.     AsyncIAdviseSink * This,
  2428.     /* [unique][in] */ FORMATETC *pFormatetc,
  2429.     /* [unique][in] */ ASYNC_STGMEDIUM *pStgmed);
  2430. void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnDataChange_Stub(
  2431.     IRpcStubBuffer *This,
  2432.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2433.     PRPC_MESSAGE _pRpcMessage,
  2434.     DWORD *_pdwStubPhase);
  2435. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnDataChange_Proxy( 
  2436.     AsyncIAdviseSink * This);
  2437. void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnDataChange_Stub(
  2438.     IRpcStubBuffer *This,
  2439.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2440.     PRPC_MESSAGE _pRpcMessage,
  2441.     DWORD *_pdwStubPhase);
  2442. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnViewChange_Proxy( 
  2443.     AsyncIAdviseSink * This,
  2444.     /* [in] */ DWORD dwAspect,
  2445.     /* [in] */ LONG lindex);
  2446. void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnViewChange_Stub(
  2447.     IRpcStubBuffer *This,
  2448.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2449.     PRPC_MESSAGE _pRpcMessage,
  2450.     DWORD *_pdwStubPhase);
  2451. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnViewChange_Proxy( 
  2452.     AsyncIAdviseSink * This);
  2453. void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnViewChange_Stub(
  2454.     IRpcStubBuffer *This,
  2455.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2456.     PRPC_MESSAGE _pRpcMessage,
  2457.     DWORD *_pdwStubPhase);
  2458. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnRename_Proxy( 
  2459.     AsyncIAdviseSink * This,
  2460.     /* [in] */ IMoniker *pmk);
  2461. void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnRename_Stub(
  2462.     IRpcStubBuffer *This,
  2463.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2464.     PRPC_MESSAGE _pRpcMessage,
  2465.     DWORD *_pdwStubPhase);
  2466. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnRename_Proxy( 
  2467.     AsyncIAdviseSink * This);
  2468. void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnRename_Stub(
  2469.     IRpcStubBuffer *This,
  2470.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2471.     PRPC_MESSAGE _pRpcMessage,
  2472.     DWORD *_pdwStubPhase);
  2473. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnSave_Proxy( 
  2474.     AsyncIAdviseSink * This);
  2475. void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnSave_Stub(
  2476.     IRpcStubBuffer *This,
  2477.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2478.     PRPC_MESSAGE _pRpcMessage,
  2479.     DWORD *_pdwStubPhase);
  2480. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnSave_Proxy( 
  2481.     AsyncIAdviseSink * This);
  2482. void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnSave_Stub(
  2483.     IRpcStubBuffer *This,
  2484.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2485.     PRPC_MESSAGE _pRpcMessage,
  2486.     DWORD *_pdwStubPhase);
  2487. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnClose_Proxy( 
  2488.     AsyncIAdviseSink * This);
  2489. void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnClose_Stub(
  2490.     IRpcStubBuffer *This,
  2491.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2492.     PRPC_MESSAGE _pRpcMessage,
  2493.     DWORD *_pdwStubPhase);
  2494. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnClose_Proxy( 
  2495.     AsyncIAdviseSink * This);
  2496. void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnClose_Stub(
  2497.     IRpcStubBuffer *This,
  2498.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2499.     PRPC_MESSAGE _pRpcMessage,
  2500.     DWORD *_pdwStubPhase);
  2501. #endif  /* __AsyncIAdviseSink_INTERFACE_DEFINED__ */
  2502. #ifndef __IAdviseSink2_INTERFACE_DEFINED__
  2503. #define __IAdviseSink2_INTERFACE_DEFINED__
  2504. /* interface IAdviseSink2 */
  2505. /* [unique][async_uuid][uuid][object] */ 
  2506. typedef /* [unique] */ IAdviseSink2 *LPADVISESINK2;
  2507. EXTERN_C const IID IID_IAdviseSink2;
  2508. #if defined(__cplusplus) && !defined(CINTERFACE)
  2509.     
  2510.     MIDL_INTERFACE("00000125-0000-0000-C000-000000000046")
  2511.     IAdviseSink2 : public IAdviseSink
  2512.     {
  2513.     public:
  2514.         virtual /* [local] */ void STDMETHODCALLTYPE OnLinkSrcChange( 
  2515.             /* [unique][in] */ IMoniker *pmk) = 0;
  2516.         
  2517.     };
  2518.     
  2519. #else  /* C style interface */
  2520.     typedef struct IAdviseSink2Vtbl
  2521.     {
  2522.         BEGIN_INTERFACE
  2523.         
  2524.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2525.             IAdviseSink2 * This,
  2526.             /* [in] */ REFIID riid,
  2527.             /* [iid_is][out] */ void **ppvObject);
  2528.         
  2529.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2530.             IAdviseSink2 * This);
  2531.         
  2532.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2533.             IAdviseSink2 * This);
  2534.         
  2535.         /* [local] */ void ( STDMETHODCALLTYPE *OnDataChange )( 
  2536.             IAdviseSink2 * This,
  2537.             /* [unique][in] */ FORMATETC *pFormatetc,
  2538.             /* [unique][in] */ STGMEDIUM *pStgmed);
  2539.         
  2540.         /* [local] */ void ( STDMETHODCALLTYPE *OnViewChange )( 
  2541.             IAdviseSink2 * This,
  2542.             /* [in] */ DWORD dwAspect,
  2543.             /* [in] */ LONG lindex);
  2544.         
  2545.         /* [local] */ void ( STDMETHODCALLTYPE *OnRename )( 
  2546.             IAdviseSink2 * This,
  2547.             /* [in] */ IMoniker *pmk);
  2548.         
  2549.         /* [local] */ void ( STDMETHODCALLTYPE *OnSave )( 
  2550.             IAdviseSink2 * This);
  2551.         
  2552.         /* [local] */ void ( STDMETHODCALLTYPE *OnClose )( 
  2553.             IAdviseSink2 * This);
  2554.         
  2555.         /* [local] */ void ( STDMETHODCALLTYPE *OnLinkSrcChange )( 
  2556.             IAdviseSink2 * This,
  2557.             /* [unique][in] */ IMoniker *pmk);
  2558.         
  2559.         END_INTERFACE
  2560.     } IAdviseSink2Vtbl;
  2561.     interface IAdviseSink2
  2562.     {
  2563.         CONST_VTBL struct IAdviseSink2Vtbl *lpVtbl;
  2564.     };
  2565.     
  2566. #ifdef COBJMACROS
  2567. #define IAdviseSink2_QueryInterface(This,riid,ppvObject)
  2568.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2569. #define IAdviseSink2_AddRef(This)
  2570.     (This)->lpVtbl -> AddRef(This)
  2571. #define IAdviseSink2_Release(This)
  2572.     (This)->lpVtbl -> Release(This)
  2573. #define IAdviseSink2_OnDataChange(This,pFormatetc,pStgmed)
  2574.     (This)->lpVtbl -> OnDataChange(This,pFormatetc,pStgmed)
  2575. #define IAdviseSink2_OnViewChange(This,dwAspect,lindex)
  2576.     (This)->lpVtbl -> OnViewChange(This,dwAspect,lindex)
  2577. #define IAdviseSink2_OnRename(This,pmk)
  2578.     (This)->lpVtbl -> OnRename(This,pmk)
  2579. #define IAdviseSink2_OnSave(This)
  2580.     (This)->lpVtbl -> OnSave(This)
  2581. #define IAdviseSink2_OnClose(This)
  2582.     (This)->lpVtbl -> OnClose(This)
  2583. #define IAdviseSink2_OnLinkSrcChange(This,pmk)
  2584.     (This)->lpVtbl -> OnLinkSrcChange(This,pmk)
  2585. #endif /* COBJMACROS */
  2586. #endif  /* C style interface */
  2587. /* [call_as] */ HRESULT STDMETHODCALLTYPE IAdviseSink2_RemoteOnLinkSrcChange_Proxy( 
  2588.     IAdviseSink2 * This,
  2589.     /* [unique][in] */ IMoniker *pmk);
  2590. void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
  2591.     IRpcStubBuffer *This,
  2592.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2593.     PRPC_MESSAGE _pRpcMessage,
  2594.     DWORD *_pdwStubPhase);
  2595. #endif  /* __IAdviseSink2_INTERFACE_DEFINED__ */
  2596. #ifndef __AsyncIAdviseSink2_INTERFACE_DEFINED__
  2597. #define __AsyncIAdviseSink2_INTERFACE_DEFINED__
  2598. /* interface AsyncIAdviseSink2 */
  2599. /* [uuid][unique][object] */ 
  2600. EXTERN_C const IID IID_AsyncIAdviseSink2;
  2601. #if defined(__cplusplus) && !defined(CINTERFACE)
  2602.     
  2603.     MIDL_INTERFACE("00000151-0000-0000-C000-000000000046")
  2604.     AsyncIAdviseSink2 : public AsyncIAdviseSink
  2605.     {
  2606.     public:
  2607.         virtual /* [local] */ void STDMETHODCALLTYPE Begin_OnLinkSrcChange( 
  2608.             /* [unique][in] */ IMoniker *pmk) = 0;
  2609.         
  2610.         virtual /* [local] */ void STDMETHODCALLTYPE Finish_OnLinkSrcChange( void) = 0;
  2611.         
  2612.     };
  2613.     
  2614. #else  /* C style interface */
  2615.     typedef struct AsyncIAdviseSink2Vtbl
  2616.     {
  2617.         BEGIN_INTERFACE
  2618.         
  2619.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2620.             AsyncIAdviseSink2 * This,
  2621.             /* [in] */ REFIID riid,
  2622.             /* [iid_is][out] */ void **ppvObject);
  2623.         
  2624.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2625.             AsyncIAdviseSink2 * This);
  2626.         
  2627.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2628.             AsyncIAdviseSink2 * This);
  2629.         
  2630.         /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnDataChange )( 
  2631.             AsyncIAdviseSink2 * This,
  2632.             /* [unique][in] */ FORMATETC *pFormatetc,
  2633.             /* [unique][in] */ STGMEDIUM *pStgmed);
  2634.         
  2635.         /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnDataChange )( 
  2636.             AsyncIAdviseSink2 * This);
  2637.         
  2638.         /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnViewChange )( 
  2639.             AsyncIAdviseSink2 * This,
  2640.             /* [in] */ DWORD dwAspect,
  2641.             /* [in] */ LONG lindex);
  2642.         
  2643.         /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnViewChange )( 
  2644.             AsyncIAdviseSink2 * This);
  2645.         
  2646.         /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnRename )( 
  2647.             AsyncIAdviseSink2 * This,
  2648.             /* [in] */ IMoniker *pmk);
  2649.         
  2650.         /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnRename )( 
  2651.             AsyncIAdviseSink2 * This);
  2652.         
  2653.         /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnSave )( 
  2654.             AsyncIAdviseSink2 * This);
  2655.         
  2656.         /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnSave )( 
  2657.             AsyncIAdviseSink2 * This);
  2658.         
  2659.         /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnClose )( 
  2660.             AsyncIAdviseSink2 * This);
  2661.         
  2662.         /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnClose )( 
  2663.             AsyncIAdviseSink2 * This);
  2664.         
  2665.         /* [local] */ void ( STDMETHODCALLTYPE *Begin_OnLinkSrcChange )( 
  2666.             AsyncIAdviseSink2 * This,
  2667.             /* [unique][in] */ IMoniker *pmk);
  2668.         
  2669.         /* [local] */ void ( STDMETHODCALLTYPE *Finish_OnLinkSrcChange )( 
  2670.             AsyncIAdviseSink2 * This);
  2671.         
  2672.         END_INTERFACE
  2673.     } AsyncIAdviseSink2Vtbl;
  2674.     interface AsyncIAdviseSink2
  2675.     {
  2676.         CONST_VTBL struct AsyncIAdviseSink2Vtbl *lpVtbl;
  2677.     };
  2678.     
  2679. #ifdef COBJMACROS
  2680. #define AsyncIAdviseSink2_QueryInterface(This,riid,ppvObject)
  2681.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2682. #define AsyncIAdviseSink2_AddRef(This)
  2683.     (This)->lpVtbl -> AddRef(This)
  2684. #define AsyncIAdviseSink2_Release(This)
  2685.     (This)->lpVtbl -> Release(This)
  2686. #define AsyncIAdviseSink2_Begin_OnDataChange(This,pFormatetc,pStgmed)
  2687.     (This)->lpVtbl -> Begin_OnDataChange(This,pFormatetc,pStgmed)
  2688. #define AsyncIAdviseSink2_Finish_OnDataChange(This)
  2689.     (This)->lpVtbl -> Finish_OnDataChange(This)
  2690. #define AsyncIAdviseSink2_Begin_OnViewChange(This,dwAspect,lindex)
  2691.     (This)->lpVtbl -> Begin_OnViewChange(This,dwAspect,lindex)
  2692. #define AsyncIAdviseSink2_Finish_OnViewChange(This)
  2693.     (This)->lpVtbl -> Finish_OnViewChange(This)
  2694. #define AsyncIAdviseSink2_Begin_OnRename(This,pmk)
  2695.     (This)->lpVtbl -> Begin_OnRename(This,pmk)
  2696. #define AsyncIAdviseSink2_Finish_OnRename(This)
  2697.     (This)->lpVtbl -> Finish_OnRename(This)
  2698. #define AsyncIAdviseSink2_Begin_OnSave(This)
  2699.     (This)->lpVtbl -> Begin_OnSave(This)
  2700. #define AsyncIAdviseSink2_Finish_OnSave(This)
  2701.     (This)->lpVtbl -> Finish_OnSave(This)
  2702. #define AsyncIAdviseSink2_Begin_OnClose(This)
  2703.     (This)->lpVtbl -> Begin_OnClose(This)
  2704. #define AsyncIAdviseSink2_Finish_OnClose(This)
  2705.     (This)->lpVtbl -> Finish_OnClose(This)
  2706. #define AsyncIAdviseSink2_Begin_OnLinkSrcChange(This,pmk)
  2707.     (This)->lpVtbl -> Begin_OnLinkSrcChange(This,pmk)
  2708. #define AsyncIAdviseSink2_Finish_OnLinkSrcChange(This)
  2709.     (This)->lpVtbl -> Finish_OnLinkSrcChange(This)
  2710. #endif /* COBJMACROS */
  2711. #endif  /* C style interface */
  2712. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Proxy( 
  2713.     AsyncIAdviseSink2 * This,
  2714.     /* [unique][in] */ IMoniker *pmk);
  2715. void __RPC_STUB AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Stub(
  2716.     IRpcStubBuffer *This,
  2717.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2718.     PRPC_MESSAGE _pRpcMessage,
  2719.     DWORD *_pdwStubPhase);
  2720. /* [call_as] */ HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Proxy( 
  2721.     AsyncIAdviseSink2 * This);
  2722. void __RPC_STUB AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Stub(
  2723.     IRpcStubBuffer *This,
  2724.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2725.     PRPC_MESSAGE _pRpcMessage,
  2726.     DWORD *_pdwStubPhase);
  2727. #endif  /* __AsyncIAdviseSink2_INTERFACE_DEFINED__ */
  2728. #ifndef __IDataObject_INTERFACE_DEFINED__
  2729. #define __IDataObject_INTERFACE_DEFINED__
  2730. /* interface IDataObject */
  2731. /* [unique][uuid][object] */ 
  2732. typedef /* [unique] */ IDataObject *LPDATAOBJECT;
  2733. typedef 
  2734. enum tagDATADIR
  2735.     { DATADIR_GET = 1,
  2736. DATADIR_SET = 2
  2737.     }  DATADIR;
  2738. EXTERN_C const IID IID_IDataObject;
  2739. #if defined(__cplusplus) && !defined(CINTERFACE)
  2740.     
  2741.     MIDL_INTERFACE("0000010e-0000-0000-C000-000000000046")
  2742.     IDataObject : public IUnknown
  2743.     {
  2744.     public:
  2745.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetData( 
  2746.             /* [unique][in] */ FORMATETC *pformatetcIn,
  2747.             /* [out] */ STGMEDIUM *pmedium) = 0;
  2748.         
  2749.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDataHere( 
  2750.             /* [unique][in] */ FORMATETC *pformatetc,
  2751.             /* [out][in] */ STGMEDIUM *pmedium) = 0;
  2752.         
  2753.         virtual HRESULT STDMETHODCALLTYPE QueryGetData( 
  2754.             /* [unique][in] */ FORMATETC *pformatetc) = 0;
  2755.         
  2756.         virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc( 
  2757.             /* [unique][in] */ FORMATETC *pformatectIn,
  2758.             /* [out] */ FORMATETC *pformatetcOut) = 0;
  2759.         
  2760.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetData( 
  2761.             /* [unique][in] */ FORMATETC *pformatetc,
  2762.             /* [unique][in] */ STGMEDIUM *pmedium,
  2763.             /* [in] */ BOOL fRelease) = 0;
  2764.         
  2765.         virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc( 
  2766.             /* [in] */ DWORD dwDirection,
  2767.             /* [out] */ IEnumFORMATETC **ppenumFormatEtc) = 0;
  2768.         
  2769.         virtual HRESULT STDMETHODCALLTYPE DAdvise( 
  2770.             /* [in] */ FORMATETC *pformatetc,
  2771.             /* [in] */ DWORD advf,
  2772.             /* [unique][in] */ IAdviseSink *pAdvSink,
  2773.             /* [out] */ DWORD *pdwConnection) = 0;
  2774.         
  2775.         virtual HRESULT STDMETHODCALLTYPE DUnadvise( 
  2776.             /* [in] */ DWORD dwConnection) = 0;
  2777.         
  2778.         virtual HRESULT STDMETHODCALLTYPE EnumDAdvise( 
  2779.             /* [out] */ IEnumSTATDATA **ppenumAdvise) = 0;
  2780.         
  2781.     };
  2782.     
  2783. #else  /* C style interface */
  2784.     typedef struct IDataObjectVtbl
  2785.     {
  2786.         BEGIN_INTERFACE
  2787.         
  2788.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2789.             IDataObject * This,
  2790.             /* [in] */ REFIID riid,
  2791.             /* [iid_is][out] */ void **ppvObject);
  2792.         
  2793.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2794.             IDataObject * This);
  2795.         
  2796.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2797.             IDataObject * This);
  2798.         
  2799.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetData )( 
  2800.             IDataObject * This,
  2801.             /* [unique][in] */ FORMATETC *pformatetcIn,
  2802.             /* [out] */ STGMEDIUM *pmedium);
  2803.         
  2804.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetDataHere )( 
  2805.             IDataObject * This,
  2806.             /* [unique][in] */ FORMATETC *pformatetc,
  2807.             /* [out][in] */ STGMEDIUM *pmedium);
  2808.         
  2809.         HRESULT ( STDMETHODCALLTYPE *QueryGetData )( 
  2810.             IDataObject * This,
  2811.             /* [unique][in] */ FORMATETC *pformatetc);
  2812.         
  2813.         HRESULT ( STDMETHODCALLTYPE *GetCanonicalFormatEtc )( 
  2814.             IDataObject * This,
  2815.             /* [unique][in] */ FORMATETC *pformatectIn,
  2816.             /* [out] */ FORMATETC *pformatetcOut);
  2817.         
  2818.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetData )( 
  2819.             IDataObject * This,
  2820.             /* [unique][in] */ FORMATETC *pformatetc,
  2821.             /* [unique][in] */ STGMEDIUM *pmedium,
  2822.             /* [in] */ BOOL fRelease);
  2823.         
  2824.         HRESULT ( STDMETHODCALLTYPE *EnumFormatEtc )( 
  2825.             IDataObject * This,
  2826.             /* [in] */ DWORD dwDirection,
  2827.             /* [out] */ IEnumFORMATETC **ppenumFormatEtc);
  2828.         
  2829.         HRESULT ( STDMETHODCALLTYPE *DAdvise )( 
  2830.             IDataObject * This,
  2831.             /* [in] */ FORMATETC *pformatetc,
  2832.             /* [in] */ DWORD advf,
  2833.             /* [unique][in] */ IAdviseSink *pAdvSink,
  2834.             /* [out] */ DWORD *pdwConnection);
  2835.         
  2836.         HRESULT ( STDMETHODCALLTYPE *DUnadvise )( 
  2837.             IDataObject * This,
  2838.             /* [in] */ DWORD dwConnection);
  2839.         
  2840.         HRESULT ( STDMETHODCALLTYPE *EnumDAdvise )( 
  2841.             IDataObject * This,
  2842.             /* [out] */ IEnumSTATDATA **ppenumAdvise);
  2843.         
  2844.         END_INTERFACE
  2845.     } IDataObjectVtbl;
  2846.     interface IDataObject
  2847.     {
  2848.         CONST_VTBL struct IDataObjectVtbl *lpVtbl;
  2849.     };
  2850.     
  2851. #ifdef COBJMACROS
  2852. #define IDataObject_QueryInterface(This,riid,ppvObject)
  2853.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2854. #define IDataObject_AddRef(This)
  2855.     (This)->lpVtbl -> AddRef(This)
  2856. #define IDataObject_Release(This)
  2857.     (This)->lpVtbl -> Release(This)
  2858. #define IDataObject_GetData(This,pformatetcIn,pmedium)
  2859.     (This)->lpVtbl -> GetData(This,pformatetcIn,pmedium)
  2860. #define IDataObject_GetDataHere(This,pformatetc,pmedium)
  2861.     (This)->lpVtbl -> GetDataHere(This,pformatetc,pmedium)
  2862. #define IDataObject_QueryGetData(This,pformatetc)
  2863.     (This)->lpVtbl -> QueryGetData(This,pformatetc)
  2864. #define IDataObject_GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut)
  2865.     (This)->lpVtbl -> GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut)
  2866. #define IDataObject_SetData(This,pformatetc,pmedium,fRelease)
  2867.     (This)->lpVtbl -> SetData(This,pformatetc,pmedium,fRelease)
  2868. #define IDataObject_EnumFormatEtc(This,dwDirection,ppenumFormatEtc)