Only copy number of bytes specified up to size of DevCaps structure.
[wine/multimedia.git] / include / objidl.h
blob059c5d31a9a628733a08550fb6d6f5df3fd0f9b4
1 /*** Autogenerated by WIDL 0.1 from objidl.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
5 #ifndef __WIDL_OBJIDL_H
6 #define __WIDL_OBJIDL_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <unknwn.h>
11 #ifndef __IStream_FWD_DEFINED__
12 #define __IStream_FWD_DEFINED__
13 typedef struct IStream IStream;
14 #endif
16 #ifndef __IEnumString_FWD_DEFINED__
17 #define __IEnumString_FWD_DEFINED__
18 typedef struct IEnumString IEnumString;
19 #endif
21 #ifndef __IRunningObjectTable_FWD_DEFINED__
22 #define __IRunningObjectTable_FWD_DEFINED__
23 typedef struct IRunningObjectTable IRunningObjectTable;
24 #endif
26 #ifndef __IMoniker_FWD_DEFINED__
27 #define __IMoniker_FWD_DEFINED__
28 typedef struct IMoniker IMoniker;
29 #endif
31 #ifndef __IAdviseSink_FWD_DEFINED__
32 #define __IAdviseSink_FWD_DEFINED__
33 typedef struct IAdviseSink IAdviseSink;
34 #endif
36 #ifndef __IAsyncManager_FWD_DEFINED__
37 #define __IAsyncManager_FWD_DEFINED__
38 typedef struct IAsyncManager IAsyncManager;
39 #endif
41 #ifndef __IMarshal_FWD_DEFINED__
42 #define __IMarshal_FWD_DEFINED__
43 typedef struct IMarshal IMarshal;
44 #endif
46 typedef IMarshal *LPMARSHAL;
48 /*****************************************************************************
49 * IMarshal interface
51 #ifndef __IMarshal_INTERFACE_DEFINED__
52 #define __IMarshal_INTERFACE_DEFINED__
54 DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
55 #if defined(__cplusplus) && !defined(CINTERFACE)
56 struct IMarshal : public IUnknown
58 virtual HRESULT STDMETHODCALLTYPE GetUnmarshalClass(
59 REFIID riid,
60 void* pv,
61 DWORD dwDestContext,
62 void* pvDestContext,
63 DWORD mshlflags,
64 CLSID* pCid) = 0;
66 virtual HRESULT STDMETHODCALLTYPE GetMarshalSizeMax(
67 REFIID riid,
68 void* pv,
69 DWORD dwDestContext,
70 void* pvDestContext,
71 DWORD mshlflags,
72 DWORD* pSize) = 0;
74 virtual HRESULT STDMETHODCALLTYPE MarshalInterface(
75 IStream* pStm,
76 REFIID riid,
77 void* pv,
78 DWORD dwDestContext,
79 void* pvDestContext,
80 DWORD mshlflags) = 0;
82 virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface(
83 IStream* pStm,
84 REFIID riid,
85 void** ppv) = 0;
87 virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalData(
88 IStream* pStm) = 0;
90 virtual HRESULT STDMETHODCALLTYPE DisconnectObject(
91 DWORD dwReserved) = 0;
94 #else
95 typedef struct IMarshalVtbl IMarshalVtbl;
96 struct IMarshal {
97 const IMarshalVtbl* lpVtbl;
99 struct IMarshalVtbl {
100 ICOM_MSVTABLE_COMPAT_FIELDS
102 /*** IUnknown methods ***/
103 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
104 IMarshal* This,
105 REFIID riid,
106 void** ppvObject);
108 ULONG (STDMETHODCALLTYPE *AddRef)(
109 IMarshal* This);
111 ULONG (STDMETHODCALLTYPE *Release)(
112 IMarshal* This);
114 /*** IMarshal methods ***/
115 HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
116 IMarshal* This,
117 REFIID riid,
118 void* pv,
119 DWORD dwDestContext,
120 void* pvDestContext,
121 DWORD mshlflags,
122 CLSID* pCid);
124 HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
125 IMarshal* This,
126 REFIID riid,
127 void* pv,
128 DWORD dwDestContext,
129 void* pvDestContext,
130 DWORD mshlflags,
131 DWORD* pSize);
133 HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
134 IMarshal* This,
135 IStream* pStm,
136 REFIID riid,
137 void* pv,
138 DWORD dwDestContext,
139 void* pvDestContext,
140 DWORD mshlflags);
142 HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
143 IMarshal* This,
144 IStream* pStm,
145 REFIID riid,
146 void** ppv);
148 HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
149 IMarshal* This,
150 IStream* pStm);
152 HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
153 IMarshal* This,
154 DWORD dwReserved);
158 /*** IUnknown methods ***/
159 #define IMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
160 #define IMarshal_AddRef(p) (p)->lpVtbl->AddRef(p)
161 #define IMarshal_Release(p) (p)->lpVtbl->Release(p)
162 /*** IMarshal methods ***/
163 #define IMarshal_GetUnmarshalClass(p,a,b,c,d,e,f) (p)->lpVtbl->GetUnmarshalClass(p,a,b,c,d,e,f)
164 #define IMarshal_GetMarshalSizeMax(p,a,b,c,d,e,f) (p)->lpVtbl->GetMarshalSizeMax(p,a,b,c,d,e,f)
165 #define IMarshal_MarshalInterface(p,a,b,c,d,e,f) (p)->lpVtbl->MarshalInterface(p,a,b,c,d,e,f)
166 #define IMarshal_UnmarshalInterface(p,a,b,c) (p)->lpVtbl->UnmarshalInterface(p,a,b,c)
167 #define IMarshal_ReleaseMarshalData(p,a) (p)->lpVtbl->ReleaseMarshalData(p,a)
168 #define IMarshal_DisconnectObject(p,a) (p)->lpVtbl->DisconnectObject(p,a)
170 #endif
172 #define IMarshal_METHODS \
173 ICOM_MSVTABLE_COMPAT_FIELDS \
174 /*** IUnknown methods ***/ \
175 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
176 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
177 STDMETHOD_(ULONG,Release)(THIS) PURE; \
178 /*** IMarshal methods ***/ \
179 STDMETHOD_(HRESULT,GetUnmarshalClass)(THIS_ REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags, CLSID* pCid) PURE; \
180 STDMETHOD_(HRESULT,GetMarshalSizeMax)(THIS_ REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags, DWORD* pSize) PURE; \
181 STDMETHOD_(HRESULT,MarshalInterface)(THIS_ IStream* pStm, REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags) PURE; \
182 STDMETHOD_(HRESULT,UnmarshalInterface)(THIS_ IStream* pStm, REFIID riid, void** ppv) PURE; \
183 STDMETHOD_(HRESULT,ReleaseMarshalData)(THIS_ IStream* pStm) PURE; \
184 STDMETHOD_(HRESULT,DisconnectObject)(THIS_ DWORD dwReserved) PURE;
186 HRESULT CALLBACK IMarshal_GetUnmarshalClass_Proxy(
187 IMarshal* This,
188 REFIID riid,
189 void* pv,
190 DWORD dwDestContext,
191 void* pvDestContext,
192 DWORD mshlflags,
193 CLSID* pCid);
194 void __RPC_STUB IMarshal_GetUnmarshalClass_Stub(
195 struct IRpcStubBuffer* This,
196 struct IRpcChannelBuffer* pRpcChannelBuffer,
197 PRPC_MESSAGE pRpcMessage,
198 DWORD* pdwStubPhase);
199 HRESULT CALLBACK IMarshal_GetMarshalSizeMax_Proxy(
200 IMarshal* This,
201 REFIID riid,
202 void* pv,
203 DWORD dwDestContext,
204 void* pvDestContext,
205 DWORD mshlflags,
206 DWORD* pSize);
207 void __RPC_STUB IMarshal_GetMarshalSizeMax_Stub(
208 struct IRpcStubBuffer* This,
209 struct IRpcChannelBuffer* pRpcChannelBuffer,
210 PRPC_MESSAGE pRpcMessage,
211 DWORD* pdwStubPhase);
212 HRESULT CALLBACK IMarshal_MarshalInterface_Proxy(
213 IMarshal* This,
214 IStream* pStm,
215 REFIID riid,
216 void* pv,
217 DWORD dwDestContext,
218 void* pvDestContext,
219 DWORD mshlflags);
220 void __RPC_STUB IMarshal_MarshalInterface_Stub(
221 struct IRpcStubBuffer* This,
222 struct IRpcChannelBuffer* pRpcChannelBuffer,
223 PRPC_MESSAGE pRpcMessage,
224 DWORD* pdwStubPhase);
225 HRESULT CALLBACK IMarshal_UnmarshalInterface_Proxy(
226 IMarshal* This,
227 IStream* pStm,
228 REFIID riid,
229 void** ppv);
230 void __RPC_STUB IMarshal_UnmarshalInterface_Stub(
231 struct IRpcStubBuffer* This,
232 struct IRpcChannelBuffer* pRpcChannelBuffer,
233 PRPC_MESSAGE pRpcMessage,
234 DWORD* pdwStubPhase);
235 HRESULT CALLBACK IMarshal_ReleaseMarshalData_Proxy(
236 IMarshal* This,
237 IStream* pStm);
238 void __RPC_STUB IMarshal_ReleaseMarshalData_Stub(
239 struct IRpcStubBuffer* This,
240 struct IRpcChannelBuffer* pRpcChannelBuffer,
241 PRPC_MESSAGE pRpcMessage,
242 DWORD* pdwStubPhase);
243 HRESULT CALLBACK IMarshal_DisconnectObject_Proxy(
244 IMarshal* This,
245 DWORD dwReserved);
246 void __RPC_STUB IMarshal_DisconnectObject_Stub(
247 struct IRpcStubBuffer* This,
248 struct IRpcChannelBuffer* pRpcChannelBuffer,
249 PRPC_MESSAGE pRpcMessage,
250 DWORD* pdwStubPhase);
252 #endif /* __IMarshal_INTERFACE_DEFINED__ */
254 #ifndef __IStdMarshalInfo_FWD_DEFINED__
255 #define __IStdMarshalInfo_FWD_DEFINED__
256 typedef struct IStdMarshalInfo IStdMarshalInfo;
257 #endif
259 typedef IStdMarshalInfo *LPSTDMARSHALINFO;
261 /*****************************************************************************
262 * IStdMarshalInfo interface
264 #ifndef __IStdMarshalInfo_INTERFACE_DEFINED__
265 #define __IStdMarshalInfo_INTERFACE_DEFINED__
267 DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
268 #if defined(__cplusplus) && !defined(CINTERFACE)
269 struct IStdMarshalInfo : public IUnknown
271 virtual HRESULT STDMETHODCALLTYPE GetClassForHandler(
272 DWORD dwDestContext,
273 void* pvDestContext,
274 CLSID* pClsid) = 0;
277 #else
278 typedef struct IStdMarshalInfoVtbl IStdMarshalInfoVtbl;
279 struct IStdMarshalInfo {
280 const IStdMarshalInfoVtbl* lpVtbl;
282 struct IStdMarshalInfoVtbl {
283 ICOM_MSVTABLE_COMPAT_FIELDS
285 /*** IUnknown methods ***/
286 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
287 IStdMarshalInfo* This,
288 REFIID riid,
289 void** ppvObject);
291 ULONG (STDMETHODCALLTYPE *AddRef)(
292 IStdMarshalInfo* This);
294 ULONG (STDMETHODCALLTYPE *Release)(
295 IStdMarshalInfo* This);
297 /*** IStdMarshalInfo methods ***/
298 HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(
299 IStdMarshalInfo* This,
300 DWORD dwDestContext,
301 void* pvDestContext,
302 CLSID* pClsid);
306 /*** IUnknown methods ***/
307 #define IStdMarshalInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
308 #define IStdMarshalInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
309 #define IStdMarshalInfo_Release(p) (p)->lpVtbl->Release(p)
310 /*** IStdMarshalInfo methods ***/
311 #define IStdMarshalInfo_GetClassForHandler(p,a,b,c) (p)->lpVtbl->GetClassForHandler(p,a,b,c)
313 #endif
315 #define IStdMarshalInfo_METHODS \
316 ICOM_MSVTABLE_COMPAT_FIELDS \
317 /*** IUnknown methods ***/ \
318 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
319 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
320 STDMETHOD_(ULONG,Release)(THIS) PURE; \
321 /*** IStdMarshalInfo methods ***/ \
322 STDMETHOD_(HRESULT,GetClassForHandler)(THIS_ DWORD dwDestContext, void* pvDestContext, CLSID* pClsid) PURE;
324 HRESULT CALLBACK IStdMarshalInfo_GetClassForHandler_Proxy(
325 IStdMarshalInfo* This,
326 DWORD dwDestContext,
327 void* pvDestContext,
328 CLSID* pClsid);
329 void __RPC_STUB IStdMarshalInfo_GetClassForHandler_Stub(
330 struct IRpcStubBuffer* This,
331 struct IRpcChannelBuffer* pRpcChannelBuffer,
332 PRPC_MESSAGE pRpcMessage,
333 DWORD* pdwStubPhase);
335 #endif /* __IStdMarshalInfo_INTERFACE_DEFINED__ */
337 #ifndef __IExternalConnection_FWD_DEFINED__
338 #define __IExternalConnection_FWD_DEFINED__
339 typedef struct IExternalConnection IExternalConnection;
340 #endif
342 typedef IExternalConnection *LPEXTERNALCONNECTION;
344 typedef enum tagEXTCONN {
345 EXTCONN_STRONG = 0x1,
346 EXTCONN_WEAK = 0x2,
347 EXTCONN_CALLABLE = 0x4
348 } EXTCONN;
350 /*****************************************************************************
351 * IExternalConnection interface
353 #ifndef __IExternalConnection_INTERFACE_DEFINED__
354 #define __IExternalConnection_INTERFACE_DEFINED__
356 DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
357 #if defined(__cplusplus) && !defined(CINTERFACE)
358 struct IExternalConnection : public IUnknown
360 virtual DWORD STDMETHODCALLTYPE AddConnection(
361 DWORD extconn,
362 DWORD reserved) = 0;
364 virtual DWORD STDMETHODCALLTYPE ReleaseConnection(
365 DWORD extconn,
366 DWORD reserved,
367 BOOL fLastReleaseCloses) = 0;
370 #else
371 typedef struct IExternalConnectionVtbl IExternalConnectionVtbl;
372 struct IExternalConnection {
373 const IExternalConnectionVtbl* lpVtbl;
375 struct IExternalConnectionVtbl {
376 ICOM_MSVTABLE_COMPAT_FIELDS
378 /*** IUnknown methods ***/
379 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
380 IExternalConnection* This,
381 REFIID riid,
382 void** ppvObject);
384 ULONG (STDMETHODCALLTYPE *AddRef)(
385 IExternalConnection* This);
387 ULONG (STDMETHODCALLTYPE *Release)(
388 IExternalConnection* This);
390 /*** IExternalConnection methods ***/
391 DWORD (STDMETHODCALLTYPE *AddConnection)(
392 IExternalConnection* This,
393 DWORD extconn,
394 DWORD reserved);
396 DWORD (STDMETHODCALLTYPE *ReleaseConnection)(
397 IExternalConnection* This,
398 DWORD extconn,
399 DWORD reserved,
400 BOOL fLastReleaseCloses);
404 /*** IUnknown methods ***/
405 #define IExternalConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
406 #define IExternalConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
407 #define IExternalConnection_Release(p) (p)->lpVtbl->Release(p)
408 /*** IExternalConnection methods ***/
409 #define IExternalConnection_AddConnection(p,a,b) (p)->lpVtbl->AddConnection(p,a,b)
410 #define IExternalConnection_ReleaseConnection(p,a,b,c) (p)->lpVtbl->ReleaseConnection(p,a,b,c)
412 #endif
414 #define IExternalConnection_METHODS \
415 ICOM_MSVTABLE_COMPAT_FIELDS \
416 /*** IUnknown methods ***/ \
417 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
418 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
419 STDMETHOD_(ULONG,Release)(THIS) PURE; \
420 /*** IExternalConnection methods ***/ \
421 STDMETHOD_(DWORD,AddConnection)(THIS_ DWORD extconn, DWORD reserved) PURE; \
422 STDMETHOD_(DWORD,ReleaseConnection)(THIS_ DWORD extconn, DWORD reserved, BOOL fLastReleaseCloses) PURE;
424 DWORD CALLBACK IExternalConnection_AddConnection_Proxy(
425 IExternalConnection* This,
426 DWORD extconn,
427 DWORD reserved);
428 void __RPC_STUB IExternalConnection_AddConnection_Stub(
429 struct IRpcStubBuffer* This,
430 struct IRpcChannelBuffer* pRpcChannelBuffer,
431 PRPC_MESSAGE pRpcMessage,
432 DWORD* pdwStubPhase);
433 DWORD CALLBACK IExternalConnection_ReleaseConnection_Proxy(
434 IExternalConnection* This,
435 DWORD extconn,
436 DWORD reserved,
437 BOOL fLastReleaseCloses);
438 void __RPC_STUB IExternalConnection_ReleaseConnection_Stub(
439 struct IRpcStubBuffer* This,
440 struct IRpcChannelBuffer* pRpcChannelBuffer,
441 PRPC_MESSAGE pRpcMessage,
442 DWORD* pdwStubPhase);
444 #endif /* __IExternalConnection_INTERFACE_DEFINED__ */
446 #ifndef __IMultiQI_FWD_DEFINED__
447 #define __IMultiQI_FWD_DEFINED__
448 typedef struct IMultiQI IMultiQI;
449 #endif
451 typedef IMultiQI *LPMULTIQI;
453 typedef struct tagMULTI_QI {
454 const IID *pIID;
455 IUnknown *pItf;
456 HRESULT hr;
457 } MULTI_QI;
459 /*****************************************************************************
460 * IMultiQI interface
462 #ifndef __IMultiQI_INTERFACE_DEFINED__
463 #define __IMultiQI_INTERFACE_DEFINED__
465 DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
466 #if defined(__cplusplus) && !defined(CINTERFACE)
467 struct IMultiQI : public IUnknown
469 virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces(
470 ULONG cMQIs,
471 MULTI_QI* pMQIs) = 0;
474 #else
475 typedef struct IMultiQIVtbl IMultiQIVtbl;
476 struct IMultiQI {
477 const IMultiQIVtbl* lpVtbl;
479 struct IMultiQIVtbl {
480 ICOM_MSVTABLE_COMPAT_FIELDS
482 /*** IUnknown methods ***/
483 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
484 IMultiQI* This,
485 REFIID riid,
486 void** ppvObject);
488 ULONG (STDMETHODCALLTYPE *AddRef)(
489 IMultiQI* This);
491 ULONG (STDMETHODCALLTYPE *Release)(
492 IMultiQI* This);
494 /*** IMultiQI methods ***/
495 HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(
496 IMultiQI* This,
497 ULONG cMQIs,
498 MULTI_QI* pMQIs);
502 /*** IUnknown methods ***/
503 #define IMultiQI_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
504 #define IMultiQI_AddRef(p) (p)->lpVtbl->AddRef(p)
505 #define IMultiQI_Release(p) (p)->lpVtbl->Release(p)
506 /*** IMultiQI methods ***/
507 #define IMultiQI_QueryMultipleInterfaces(p,a,b) (p)->lpVtbl->QueryMultipleInterfaces(p,a,b)
509 #endif
511 #define IMultiQI_METHODS \
512 ICOM_MSVTABLE_COMPAT_FIELDS \
513 /*** IUnknown methods ***/ \
514 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
515 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
516 STDMETHOD_(ULONG,Release)(THIS) PURE; \
517 /*** IMultiQI methods ***/ \
518 STDMETHOD_(HRESULT,QueryMultipleInterfaces)(THIS_ ULONG cMQIs, MULTI_QI* pMQIs) PURE;
520 HRESULT CALLBACK IMultiQI_QueryMultipleInterfaces_Proxy(
521 IMultiQI* This,
522 ULONG cMQIs,
523 MULTI_QI* pMQIs);
524 void __RPC_STUB IMultiQI_QueryMultipleInterfaces_Stub(
525 struct IRpcStubBuffer* This,
526 struct IRpcChannelBuffer* pRpcChannelBuffer,
527 PRPC_MESSAGE pRpcMessage,
528 DWORD* pdwStubPhase);
530 #endif /* __IMultiQI_INTERFACE_DEFINED__ */
532 #ifndef __IMalloc_FWD_DEFINED__
533 #define __IMalloc_FWD_DEFINED__
534 typedef struct IMalloc IMalloc;
535 #endif
537 typedef IMalloc *LPMALLOC;
539 /*****************************************************************************
540 * IMalloc interface
542 #ifndef __IMalloc_INTERFACE_DEFINED__
543 #define __IMalloc_INTERFACE_DEFINED__
545 DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
546 #if defined(__cplusplus) && !defined(CINTERFACE)
547 struct IMalloc : public IUnknown
549 virtual LPVOID STDMETHODCALLTYPE Alloc(
550 ULONG cb) = 0;
552 virtual LPVOID STDMETHODCALLTYPE Realloc(
553 LPVOID pv,
554 ULONG cb) = 0;
556 virtual void STDMETHODCALLTYPE Free(
557 LPVOID pv) = 0;
559 virtual ULONG STDMETHODCALLTYPE GetSize(
560 LPVOID pv) = 0;
562 virtual int STDMETHODCALLTYPE DidAlloc(
563 LPVOID pv) = 0;
565 virtual void STDMETHODCALLTYPE HeapMinimize(
566 ) = 0;
569 #else
570 typedef struct IMallocVtbl IMallocVtbl;
571 struct IMalloc {
572 const IMallocVtbl* lpVtbl;
574 struct IMallocVtbl {
575 ICOM_MSVTABLE_COMPAT_FIELDS
577 /*** IUnknown methods ***/
578 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
579 IMalloc* This,
580 REFIID riid,
581 void** ppvObject);
583 ULONG (STDMETHODCALLTYPE *AddRef)(
584 IMalloc* This);
586 ULONG (STDMETHODCALLTYPE *Release)(
587 IMalloc* This);
589 /*** IMalloc methods ***/
590 LPVOID (STDMETHODCALLTYPE *Alloc)(
591 IMalloc* This,
592 ULONG cb);
594 LPVOID (STDMETHODCALLTYPE *Realloc)(
595 IMalloc* This,
596 LPVOID pv,
597 ULONG cb);
599 void (STDMETHODCALLTYPE *Free)(
600 IMalloc* This,
601 LPVOID pv);
603 ULONG (STDMETHODCALLTYPE *GetSize)(
604 IMalloc* This,
605 LPVOID pv);
607 int (STDMETHODCALLTYPE *DidAlloc)(
608 IMalloc* This,
609 LPVOID pv);
611 void (STDMETHODCALLTYPE *HeapMinimize)(
612 IMalloc* This);
616 /*** IUnknown methods ***/
617 #define IMalloc_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
618 #define IMalloc_AddRef(p) (p)->lpVtbl->AddRef(p)
619 #define IMalloc_Release(p) (p)->lpVtbl->Release(p)
620 /*** IMalloc methods ***/
621 #define IMalloc_Alloc(p,a) (p)->lpVtbl->Alloc(p,a)
622 #define IMalloc_Realloc(p,a,b) (p)->lpVtbl->Realloc(p,a,b)
623 #define IMalloc_Free(p,a) (p)->lpVtbl->Free(p,a)
624 #define IMalloc_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
625 #define IMalloc_DidAlloc(p,a) (p)->lpVtbl->DidAlloc(p,a)
626 #define IMalloc_HeapMinimize(p) (p)->lpVtbl->HeapMinimize(p)
628 #endif
630 #define IMalloc_METHODS \
631 ICOM_MSVTABLE_COMPAT_FIELDS \
632 /*** IUnknown methods ***/ \
633 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
634 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
635 STDMETHOD_(ULONG,Release)(THIS) PURE; \
636 /*** IMalloc methods ***/ \
637 STDMETHOD_(LPVOID,Alloc)(THIS_ ULONG cb) PURE; \
638 STDMETHOD_(LPVOID,Realloc)(THIS_ LPVOID pv, ULONG cb) PURE; \
639 STDMETHOD_(void,Free)(THIS_ LPVOID pv) PURE; \
640 STDMETHOD_(ULONG,GetSize)(THIS_ LPVOID pv) PURE; \
641 STDMETHOD_(int,DidAlloc)(THIS_ LPVOID pv) PURE; \
642 STDMETHOD_(void,HeapMinimize)(THIS) PURE;
644 LPVOID CALLBACK IMalloc_Alloc_Proxy(
645 IMalloc* This,
646 ULONG cb);
647 void __RPC_STUB IMalloc_Alloc_Stub(
648 struct IRpcStubBuffer* This,
649 struct IRpcChannelBuffer* pRpcChannelBuffer,
650 PRPC_MESSAGE pRpcMessage,
651 DWORD* pdwStubPhase);
652 LPVOID CALLBACK IMalloc_Realloc_Proxy(
653 IMalloc* This,
654 LPVOID pv,
655 ULONG cb);
656 void __RPC_STUB IMalloc_Realloc_Stub(
657 struct IRpcStubBuffer* This,
658 struct IRpcChannelBuffer* pRpcChannelBuffer,
659 PRPC_MESSAGE pRpcMessage,
660 DWORD* pdwStubPhase);
661 void CALLBACK IMalloc_Free_Proxy(
662 IMalloc* This,
663 LPVOID pv);
664 void __RPC_STUB IMalloc_Free_Stub(
665 struct IRpcStubBuffer* This,
666 struct IRpcChannelBuffer* pRpcChannelBuffer,
667 PRPC_MESSAGE pRpcMessage,
668 DWORD* pdwStubPhase);
669 ULONG CALLBACK IMalloc_GetSize_Proxy(
670 IMalloc* This,
671 LPVOID pv);
672 void __RPC_STUB IMalloc_GetSize_Stub(
673 struct IRpcStubBuffer* This,
674 struct IRpcChannelBuffer* pRpcChannelBuffer,
675 PRPC_MESSAGE pRpcMessage,
676 DWORD* pdwStubPhase);
677 int CALLBACK IMalloc_DidAlloc_Proxy(
678 IMalloc* This,
679 LPVOID pv);
680 void __RPC_STUB IMalloc_DidAlloc_Stub(
681 struct IRpcStubBuffer* This,
682 struct IRpcChannelBuffer* pRpcChannelBuffer,
683 PRPC_MESSAGE pRpcMessage,
684 DWORD* pdwStubPhase);
685 void CALLBACK IMalloc_HeapMinimize_Proxy(
686 IMalloc* This);
687 void __RPC_STUB IMalloc_HeapMinimize_Stub(
688 struct IRpcStubBuffer* This,
689 struct IRpcChannelBuffer* pRpcChannelBuffer,
690 PRPC_MESSAGE pRpcMessage,
691 DWORD* pdwStubPhase);
693 #endif /* __IMalloc_INTERFACE_DEFINED__ */
695 #ifndef __IMallocSpy_FWD_DEFINED__
696 #define __IMallocSpy_FWD_DEFINED__
697 typedef struct IMallocSpy IMallocSpy;
698 #endif
700 typedef IMallocSpy *LPMALLOCSPY;
702 /*****************************************************************************
703 * IMallocSpy interface
705 #ifndef __IMallocSpy_INTERFACE_DEFINED__
706 #define __IMallocSpy_INTERFACE_DEFINED__
708 DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
709 #if defined(__cplusplus) && !defined(CINTERFACE)
710 struct IMallocSpy : public IUnknown
712 virtual ULONG STDMETHODCALLTYPE PreAlloc(
713 ULONG cbRequest) = 0;
715 virtual LPVOID STDMETHODCALLTYPE PostAlloc(
716 LPVOID pActual) = 0;
718 virtual LPVOID STDMETHODCALLTYPE PreFree(
719 LPVOID pRequest,
720 BOOL fSpyed) = 0;
722 virtual void STDMETHODCALLTYPE PostFree(
723 BOOL fSpyed) = 0;
725 virtual ULONG STDMETHODCALLTYPE PreRealloc(
726 LPVOID pRequest,
727 ULONG cbRequest,
728 LPVOID* ppNewRequest,
729 BOOL fSpyed) = 0;
731 virtual LPVOID STDMETHODCALLTYPE PostRealloc(
732 LPVOID pActual,
733 BOOL fSpyed) = 0;
735 virtual LPVOID STDMETHODCALLTYPE PreGetSize(
736 LPVOID pRequest,
737 BOOL fSpyed) = 0;
739 virtual ULONG STDMETHODCALLTYPE PostGetSize(
740 ULONG cbActual,
741 BOOL fSpyed) = 0;
743 virtual LPVOID STDMETHODCALLTYPE PreDidAlloc(
744 LPVOID pRequest,
745 BOOL fSpyed) = 0;
747 virtual int STDMETHODCALLTYPE PostDidAlloc(
748 LPVOID pRequest,
749 BOOL fSpyed,
750 int fActual) = 0;
752 virtual void STDMETHODCALLTYPE PreHeapMinimize(
753 ) = 0;
755 virtual void STDMETHODCALLTYPE PostHeapMinimize(
756 ) = 0;
759 #else
760 typedef struct IMallocSpyVtbl IMallocSpyVtbl;
761 struct IMallocSpy {
762 const IMallocSpyVtbl* lpVtbl;
764 struct IMallocSpyVtbl {
765 ICOM_MSVTABLE_COMPAT_FIELDS
767 /*** IUnknown methods ***/
768 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
769 IMallocSpy* This,
770 REFIID riid,
771 void** ppvObject);
773 ULONG (STDMETHODCALLTYPE *AddRef)(
774 IMallocSpy* This);
776 ULONG (STDMETHODCALLTYPE *Release)(
777 IMallocSpy* This);
779 /*** IMallocSpy methods ***/
780 ULONG (STDMETHODCALLTYPE *PreAlloc)(
781 IMallocSpy* This,
782 ULONG cbRequest);
784 LPVOID (STDMETHODCALLTYPE *PostAlloc)(
785 IMallocSpy* This,
786 LPVOID pActual);
788 LPVOID (STDMETHODCALLTYPE *PreFree)(
789 IMallocSpy* This,
790 LPVOID pRequest,
791 BOOL fSpyed);
793 void (STDMETHODCALLTYPE *PostFree)(
794 IMallocSpy* This,
795 BOOL fSpyed);
797 ULONG (STDMETHODCALLTYPE *PreRealloc)(
798 IMallocSpy* This,
799 LPVOID pRequest,
800 ULONG cbRequest,
801 LPVOID* ppNewRequest,
802 BOOL fSpyed);
804 LPVOID (STDMETHODCALLTYPE *PostRealloc)(
805 IMallocSpy* This,
806 LPVOID pActual,
807 BOOL fSpyed);
809 LPVOID (STDMETHODCALLTYPE *PreGetSize)(
810 IMallocSpy* This,
811 LPVOID pRequest,
812 BOOL fSpyed);
814 ULONG (STDMETHODCALLTYPE *PostGetSize)(
815 IMallocSpy* This,
816 ULONG cbActual,
817 BOOL fSpyed);
819 LPVOID (STDMETHODCALLTYPE *PreDidAlloc)(
820 IMallocSpy* This,
821 LPVOID pRequest,
822 BOOL fSpyed);
824 int (STDMETHODCALLTYPE *PostDidAlloc)(
825 IMallocSpy* This,
826 LPVOID pRequest,
827 BOOL fSpyed,
828 int fActual);
830 void (STDMETHODCALLTYPE *PreHeapMinimize)(
831 IMallocSpy* This);
833 void (STDMETHODCALLTYPE *PostHeapMinimize)(
834 IMallocSpy* This);
838 /*** IUnknown methods ***/
839 #define IMallocSpy_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
840 #define IMallocSpy_AddRef(p) (p)->lpVtbl->AddRef(p)
841 #define IMallocSpy_Release(p) (p)->lpVtbl->Release(p)
842 /*** IMallocSpy methods ***/
843 #define IMallocSpy_PreAlloc(p,a) (p)->lpVtbl->PreAlloc(p,a)
844 #define IMallocSpy_PostAlloc(p,a) (p)->lpVtbl->PostAlloc(p,a)
845 #define IMallocSpy_PreFree(p,a,b) (p)->lpVtbl->PreFree(p,a,b)
846 #define IMallocSpy_PostFree(p,a) (p)->lpVtbl->PostFree(p,a)
847 #define IMallocSpy_PreRealloc(p,a,b,c,d) (p)->lpVtbl->PreRealloc(p,a,b,c,d)
848 #define IMallocSpy_PostRealloc(p,a,b) (p)->lpVtbl->PostRealloc(p,a,b)
849 #define IMallocSpy_PreGetSize(p,a,b) (p)->lpVtbl->PreGetSize(p,a,b)
850 #define IMallocSpy_PostGetSize(p,a,b) (p)->lpVtbl->PostGetSize(p,a,b)
851 #define IMallocSpy_PreDidAlloc(p,a,b) (p)->lpVtbl->PreDidAlloc(p,a,b)
852 #define IMallocSpy_PostDidAlloc(p,a,b,c) (p)->lpVtbl->PostDidAlloc(p,a,b,c)
853 #define IMallocSpy_PreHeapMinimize(p) (p)->lpVtbl->PreHeapMinimize(p)
854 #define IMallocSpy_PostHeapMinimize(p) (p)->lpVtbl->PostHeapMinimize(p)
856 #endif
858 #define IMallocSpy_METHODS \
859 ICOM_MSVTABLE_COMPAT_FIELDS \
860 /*** IUnknown methods ***/ \
861 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
862 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
863 STDMETHOD_(ULONG,Release)(THIS) PURE; \
864 /*** IMallocSpy methods ***/ \
865 STDMETHOD_(ULONG,PreAlloc)(THIS_ ULONG cbRequest) PURE; \
866 STDMETHOD_(LPVOID,PostAlloc)(THIS_ LPVOID pActual) PURE; \
867 STDMETHOD_(LPVOID,PreFree)(THIS_ LPVOID pRequest, BOOL fSpyed) PURE; \
868 STDMETHOD_(void,PostFree)(THIS_ BOOL fSpyed) PURE; \
869 STDMETHOD_(ULONG,PreRealloc)(THIS_ LPVOID pRequest, ULONG cbRequest, LPVOID* ppNewRequest, BOOL fSpyed) PURE; \
870 STDMETHOD_(LPVOID,PostRealloc)(THIS_ LPVOID pActual, BOOL fSpyed) PURE; \
871 STDMETHOD_(LPVOID,PreGetSize)(THIS_ LPVOID pRequest, BOOL fSpyed) PURE; \
872 STDMETHOD_(ULONG,PostGetSize)(THIS_ ULONG cbActual, BOOL fSpyed) PURE; \
873 STDMETHOD_(LPVOID,PreDidAlloc)(THIS_ LPVOID pRequest, BOOL fSpyed) PURE; \
874 STDMETHOD_(int,PostDidAlloc)(THIS_ LPVOID pRequest, BOOL fSpyed, int fActual) PURE; \
875 STDMETHOD_(void,PreHeapMinimize)(THIS) PURE; \
876 STDMETHOD_(void,PostHeapMinimize)(THIS) PURE;
878 ULONG CALLBACK IMallocSpy_PreAlloc_Proxy(
879 IMallocSpy* This,
880 ULONG cbRequest);
881 void __RPC_STUB IMallocSpy_PreAlloc_Stub(
882 struct IRpcStubBuffer* This,
883 struct IRpcChannelBuffer* pRpcChannelBuffer,
884 PRPC_MESSAGE pRpcMessage,
885 DWORD* pdwStubPhase);
886 LPVOID CALLBACK IMallocSpy_PostAlloc_Proxy(
887 IMallocSpy* This,
888 LPVOID pActual);
889 void __RPC_STUB IMallocSpy_PostAlloc_Stub(
890 struct IRpcStubBuffer* This,
891 struct IRpcChannelBuffer* pRpcChannelBuffer,
892 PRPC_MESSAGE pRpcMessage,
893 DWORD* pdwStubPhase);
894 LPVOID CALLBACK IMallocSpy_PreFree_Proxy(
895 IMallocSpy* This,
896 LPVOID pRequest,
897 BOOL fSpyed);
898 void __RPC_STUB IMallocSpy_PreFree_Stub(
899 struct IRpcStubBuffer* This,
900 struct IRpcChannelBuffer* pRpcChannelBuffer,
901 PRPC_MESSAGE pRpcMessage,
902 DWORD* pdwStubPhase);
903 void CALLBACK IMallocSpy_PostFree_Proxy(
904 IMallocSpy* This,
905 BOOL fSpyed);
906 void __RPC_STUB IMallocSpy_PostFree_Stub(
907 struct IRpcStubBuffer* This,
908 struct IRpcChannelBuffer* pRpcChannelBuffer,
909 PRPC_MESSAGE pRpcMessage,
910 DWORD* pdwStubPhase);
911 ULONG CALLBACK IMallocSpy_PreRealloc_Proxy(
912 IMallocSpy* This,
913 LPVOID pRequest,
914 ULONG cbRequest,
915 LPVOID* ppNewRequest,
916 BOOL fSpyed);
917 void __RPC_STUB IMallocSpy_PreRealloc_Stub(
918 struct IRpcStubBuffer* This,
919 struct IRpcChannelBuffer* pRpcChannelBuffer,
920 PRPC_MESSAGE pRpcMessage,
921 DWORD* pdwStubPhase);
922 LPVOID CALLBACK IMallocSpy_PostRealloc_Proxy(
923 IMallocSpy* This,
924 LPVOID pActual,
925 BOOL fSpyed);
926 void __RPC_STUB IMallocSpy_PostRealloc_Stub(
927 struct IRpcStubBuffer* This,
928 struct IRpcChannelBuffer* pRpcChannelBuffer,
929 PRPC_MESSAGE pRpcMessage,
930 DWORD* pdwStubPhase);
931 LPVOID CALLBACK IMallocSpy_PreGetSize_Proxy(
932 IMallocSpy* This,
933 LPVOID pRequest,
934 BOOL fSpyed);
935 void __RPC_STUB IMallocSpy_PreGetSize_Stub(
936 struct IRpcStubBuffer* This,
937 struct IRpcChannelBuffer* pRpcChannelBuffer,
938 PRPC_MESSAGE pRpcMessage,
939 DWORD* pdwStubPhase);
940 ULONG CALLBACK IMallocSpy_PostGetSize_Proxy(
941 IMallocSpy* This,
942 ULONG cbActual,
943 BOOL fSpyed);
944 void __RPC_STUB IMallocSpy_PostGetSize_Stub(
945 struct IRpcStubBuffer* This,
946 struct IRpcChannelBuffer* pRpcChannelBuffer,
947 PRPC_MESSAGE pRpcMessage,
948 DWORD* pdwStubPhase);
949 LPVOID CALLBACK IMallocSpy_PreDidAlloc_Proxy(
950 IMallocSpy* This,
951 LPVOID pRequest,
952 BOOL fSpyed);
953 void __RPC_STUB IMallocSpy_PreDidAlloc_Stub(
954 struct IRpcStubBuffer* This,
955 struct IRpcChannelBuffer* pRpcChannelBuffer,
956 PRPC_MESSAGE pRpcMessage,
957 DWORD* pdwStubPhase);
958 int CALLBACK IMallocSpy_PostDidAlloc_Proxy(
959 IMallocSpy* This,
960 LPVOID pRequest,
961 BOOL fSpyed,
962 int fActual);
963 void __RPC_STUB IMallocSpy_PostDidAlloc_Stub(
964 struct IRpcStubBuffer* This,
965 struct IRpcChannelBuffer* pRpcChannelBuffer,
966 PRPC_MESSAGE pRpcMessage,
967 DWORD* pdwStubPhase);
968 void CALLBACK IMallocSpy_PreHeapMinimize_Proxy(
969 IMallocSpy* This);
970 void __RPC_STUB IMallocSpy_PreHeapMinimize_Stub(
971 struct IRpcStubBuffer* This,
972 struct IRpcChannelBuffer* pRpcChannelBuffer,
973 PRPC_MESSAGE pRpcMessage,
974 DWORD* pdwStubPhase);
975 void CALLBACK IMallocSpy_PostHeapMinimize_Proxy(
976 IMallocSpy* This);
977 void __RPC_STUB IMallocSpy_PostHeapMinimize_Stub(
978 struct IRpcStubBuffer* This,
979 struct IRpcChannelBuffer* pRpcChannelBuffer,
980 PRPC_MESSAGE pRpcMessage,
981 DWORD* pdwStubPhase);
983 #endif /* __IMallocSpy_INTERFACE_DEFINED__ */
985 #ifndef __IEnumUnknown_FWD_DEFINED__
986 #define __IEnumUnknown_FWD_DEFINED__
987 typedef struct IEnumUnknown IEnumUnknown;
988 #endif
990 typedef IEnumUnknown *LPENUMUNKNOWN;
992 /*****************************************************************************
993 * IEnumUnknown interface
995 #ifndef __IEnumUnknown_INTERFACE_DEFINED__
996 #define __IEnumUnknown_INTERFACE_DEFINED__
998 DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
999 #if defined(__cplusplus) && !defined(CINTERFACE)
1000 struct IEnumUnknown : public IUnknown
1002 virtual HRESULT STDMETHODCALLTYPE Next(
1003 ULONG celt,
1004 IUnknown** rgelt,
1005 ULONG* pceltFetched) = 0;
1007 virtual HRESULT STDMETHODCALLTYPE Skip(
1008 ULONG celt) = 0;
1010 virtual HRESULT STDMETHODCALLTYPE Reset(
1011 ) = 0;
1013 virtual HRESULT STDMETHODCALLTYPE Clone(
1014 IEnumUnknown** ppenum) = 0;
1017 #else
1018 typedef struct IEnumUnknownVtbl IEnumUnknownVtbl;
1019 struct IEnumUnknown {
1020 const IEnumUnknownVtbl* lpVtbl;
1022 struct IEnumUnknownVtbl {
1023 ICOM_MSVTABLE_COMPAT_FIELDS
1025 /*** IUnknown methods ***/
1026 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1027 IEnumUnknown* This,
1028 REFIID riid,
1029 void** ppvObject);
1031 ULONG (STDMETHODCALLTYPE *AddRef)(
1032 IEnumUnknown* This);
1034 ULONG (STDMETHODCALLTYPE *Release)(
1035 IEnumUnknown* This);
1037 /*** IEnumUnknown methods ***/
1038 HRESULT (STDMETHODCALLTYPE *Next)(
1039 IEnumUnknown* This,
1040 ULONG celt,
1041 IUnknown** rgelt,
1042 ULONG* pceltFetched);
1044 HRESULT (STDMETHODCALLTYPE *Skip)(
1045 IEnumUnknown* This,
1046 ULONG celt);
1048 HRESULT (STDMETHODCALLTYPE *Reset)(
1049 IEnumUnknown* This);
1051 HRESULT (STDMETHODCALLTYPE *Clone)(
1052 IEnumUnknown* This,
1053 IEnumUnknown** ppenum);
1057 /*** IUnknown methods ***/
1058 #define IEnumUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1059 #define IEnumUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
1060 #define IEnumUnknown_Release(p) (p)->lpVtbl->Release(p)
1061 /*** IEnumUnknown methods ***/
1062 #define IEnumUnknown_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1063 #define IEnumUnknown_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1064 #define IEnumUnknown_Reset(p) (p)->lpVtbl->Reset(p)
1065 #define IEnumUnknown_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1067 #endif
1069 #define IEnumUnknown_METHODS \
1070 ICOM_MSVTABLE_COMPAT_FIELDS \
1071 /*** IUnknown methods ***/ \
1072 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1073 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1074 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1075 /*** IEnumUnknown methods ***/ \
1076 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, IUnknown** rgelt, ULONG* pceltFetched) PURE; \
1077 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
1078 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
1079 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumUnknown** ppenum) PURE;
1081 HRESULT CALLBACK IEnumUnknown_RemoteNext_Proxy(
1082 IEnumUnknown* This,
1083 ULONG celt,
1084 IUnknown** rgelt,
1085 ULONG* pceltFetched);
1086 void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
1087 struct IRpcStubBuffer* This,
1088 struct IRpcChannelBuffer* pRpcChannelBuffer,
1089 PRPC_MESSAGE pRpcMessage,
1090 DWORD* pdwStubPhase);
1091 HRESULT CALLBACK IEnumUnknown_Next_Proxy(
1092 IEnumUnknown* This,
1093 ULONG celt,
1094 IUnknown** rgelt,
1095 ULONG* pceltFetched);
1096 HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
1097 IEnumUnknown* This,
1098 ULONG celt,
1099 IUnknown** rgelt,
1100 ULONG* pceltFetched);
1101 HRESULT CALLBACK IEnumUnknown_Skip_Proxy(
1102 IEnumUnknown* This,
1103 ULONG celt);
1104 void __RPC_STUB IEnumUnknown_Skip_Stub(
1105 struct IRpcStubBuffer* This,
1106 struct IRpcChannelBuffer* pRpcChannelBuffer,
1107 PRPC_MESSAGE pRpcMessage,
1108 DWORD* pdwStubPhase);
1109 HRESULT CALLBACK IEnumUnknown_Reset_Proxy(
1110 IEnumUnknown* This);
1111 void __RPC_STUB IEnumUnknown_Reset_Stub(
1112 struct IRpcStubBuffer* This,
1113 struct IRpcChannelBuffer* pRpcChannelBuffer,
1114 PRPC_MESSAGE pRpcMessage,
1115 DWORD* pdwStubPhase);
1116 HRESULT CALLBACK IEnumUnknown_Clone_Proxy(
1117 IEnumUnknown* This,
1118 IEnumUnknown** ppenum);
1119 void __RPC_STUB IEnumUnknown_Clone_Stub(
1120 struct IRpcStubBuffer* This,
1121 struct IRpcChannelBuffer* pRpcChannelBuffer,
1122 PRPC_MESSAGE pRpcMessage,
1123 DWORD* pdwStubPhase);
1125 #endif /* __IEnumUnknown_INTERFACE_DEFINED__ */
1127 #ifndef __ISurrogate_FWD_DEFINED__
1128 #define __ISurrogate_FWD_DEFINED__
1129 typedef struct ISurrogate ISurrogate;
1130 #endif
1132 typedef ISurrogate *LPSURROGATE;
1134 /*****************************************************************************
1135 * ISurrogate interface
1137 #ifndef __ISurrogate_INTERFACE_DEFINED__
1138 #define __ISurrogate_INTERFACE_DEFINED__
1140 DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1141 #if defined(__cplusplus) && !defined(CINTERFACE)
1142 struct ISurrogate : public IUnknown
1144 virtual HRESULT STDMETHODCALLTYPE LoadDllServer(
1145 REFCLSID Clsid) = 0;
1147 virtual HRESULT STDMETHODCALLTYPE FreeSurrogate(
1148 ) = 0;
1151 #else
1152 typedef struct ISurrogateVtbl ISurrogateVtbl;
1153 struct ISurrogate {
1154 const ISurrogateVtbl* lpVtbl;
1156 struct ISurrogateVtbl {
1157 ICOM_MSVTABLE_COMPAT_FIELDS
1159 /*** IUnknown methods ***/
1160 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1161 ISurrogate* This,
1162 REFIID riid,
1163 void** ppvObject);
1165 ULONG (STDMETHODCALLTYPE *AddRef)(
1166 ISurrogate* This);
1168 ULONG (STDMETHODCALLTYPE *Release)(
1169 ISurrogate* This);
1171 /*** ISurrogate methods ***/
1172 HRESULT (STDMETHODCALLTYPE *LoadDllServer)(
1173 ISurrogate* This,
1174 REFCLSID Clsid);
1176 HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(
1177 ISurrogate* This);
1181 /*** IUnknown methods ***/
1182 #define ISurrogate_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1183 #define ISurrogate_AddRef(p) (p)->lpVtbl->AddRef(p)
1184 #define ISurrogate_Release(p) (p)->lpVtbl->Release(p)
1185 /*** ISurrogate methods ***/
1186 #define ISurrogate_LoadDllServer(p,a) (p)->lpVtbl->LoadDllServer(p,a)
1187 #define ISurrogate_FreeSurrogate(p) (p)->lpVtbl->FreeSurrogate(p)
1189 #endif
1191 #define ISurrogate_METHODS \
1192 ICOM_MSVTABLE_COMPAT_FIELDS \
1193 /*** IUnknown methods ***/ \
1194 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1195 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1196 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1197 /*** ISurrogate methods ***/ \
1198 STDMETHOD_(HRESULT,LoadDllServer)(THIS_ REFCLSID Clsid) PURE; \
1199 STDMETHOD_(HRESULT,FreeSurrogate)(THIS) PURE;
1201 HRESULT CALLBACK ISurrogate_LoadDllServer_Proxy(
1202 ISurrogate* This,
1203 REFCLSID Clsid);
1204 void __RPC_STUB ISurrogate_LoadDllServer_Stub(
1205 struct IRpcStubBuffer* This,
1206 struct IRpcChannelBuffer* pRpcChannelBuffer,
1207 PRPC_MESSAGE pRpcMessage,
1208 DWORD* pdwStubPhase);
1209 HRESULT CALLBACK ISurrogate_FreeSurrogate_Proxy(
1210 ISurrogate* This);
1211 void __RPC_STUB ISurrogate_FreeSurrogate_Stub(
1212 struct IRpcStubBuffer* This,
1213 struct IRpcChannelBuffer* pRpcChannelBuffer,
1214 PRPC_MESSAGE pRpcMessage,
1215 DWORD* pdwStubPhase);
1217 #endif /* __ISurrogate_INTERFACE_DEFINED__ */
1219 #ifndef __IGlobalInterfaceTable_FWD_DEFINED__
1220 #define __IGlobalInterfaceTable_FWD_DEFINED__
1221 typedef struct IGlobalInterfaceTable IGlobalInterfaceTable;
1222 #endif
1224 typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
1226 /*****************************************************************************
1227 * IGlobalInterfaceTable interface
1229 #ifndef __IGlobalInterfaceTable_INTERFACE_DEFINED__
1230 #define __IGlobalInterfaceTable_INTERFACE_DEFINED__
1232 DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1233 #if defined(__cplusplus) && !defined(CINTERFACE)
1234 struct IGlobalInterfaceTable : public IUnknown
1236 virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal(
1237 IUnknown* pUnk,
1238 REFIID riid,
1239 DWORD* pdwCookie) = 0;
1241 virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal(
1242 DWORD dwCookie) = 0;
1244 virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal(
1245 DWORD dwCookie,
1246 REFIID riid,
1247 void** ppv) = 0;
1250 #else
1251 typedef struct IGlobalInterfaceTableVtbl IGlobalInterfaceTableVtbl;
1252 struct IGlobalInterfaceTable {
1253 const IGlobalInterfaceTableVtbl* lpVtbl;
1255 struct IGlobalInterfaceTableVtbl {
1256 ICOM_MSVTABLE_COMPAT_FIELDS
1258 /*** IUnknown methods ***/
1259 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1260 IGlobalInterfaceTable* This,
1261 REFIID riid,
1262 void** ppvObject);
1264 ULONG (STDMETHODCALLTYPE *AddRef)(
1265 IGlobalInterfaceTable* This);
1267 ULONG (STDMETHODCALLTYPE *Release)(
1268 IGlobalInterfaceTable* This);
1270 /*** IGlobalInterfaceTable methods ***/
1271 HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(
1272 IGlobalInterfaceTable* This,
1273 IUnknown* pUnk,
1274 REFIID riid,
1275 DWORD* pdwCookie);
1277 HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(
1278 IGlobalInterfaceTable* This,
1279 DWORD dwCookie);
1281 HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(
1282 IGlobalInterfaceTable* This,
1283 DWORD dwCookie,
1284 REFIID riid,
1285 void** ppv);
1289 /*** IUnknown methods ***/
1290 #define IGlobalInterfaceTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1291 #define IGlobalInterfaceTable_AddRef(p) (p)->lpVtbl->AddRef(p)
1292 #define IGlobalInterfaceTable_Release(p) (p)->lpVtbl->Release(p)
1293 /*** IGlobalInterfaceTable methods ***/
1294 #define IGlobalInterfaceTable_RegisterInterfaceInGlobal(p,a,b,c) (p)->lpVtbl->RegisterInterfaceInGlobal(p,a,b,c)
1295 #define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(p,a) (p)->lpVtbl->RevokeInterfaceFromGlobal(p,a)
1296 #define IGlobalInterfaceTable_GetInterfaceFromGlobal(p,a,b,c) (p)->lpVtbl->GetInterfaceFromGlobal(p,a,b,c)
1298 #endif
1300 #define IGlobalInterfaceTable_METHODS \
1301 ICOM_MSVTABLE_COMPAT_FIELDS \
1302 /*** IUnknown methods ***/ \
1303 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1304 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1305 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1306 /*** IGlobalInterfaceTable methods ***/ \
1307 STDMETHOD_(HRESULT,RegisterInterfaceInGlobal)(THIS_ IUnknown* pUnk, REFIID riid, DWORD* pdwCookie) PURE; \
1308 STDMETHOD_(HRESULT,RevokeInterfaceFromGlobal)(THIS_ DWORD dwCookie) PURE; \
1309 STDMETHOD_(HRESULT,GetInterfaceFromGlobal)(THIS_ DWORD dwCookie, REFIID riid, void** ppv) PURE;
1311 HRESULT CALLBACK IGlobalInterfaceTable_RegisterInterfaceInGlobal_Proxy(
1312 IGlobalInterfaceTable* This,
1313 IUnknown* pUnk,
1314 REFIID riid,
1315 DWORD* pdwCookie);
1316 void __RPC_STUB IGlobalInterfaceTable_RegisterInterfaceInGlobal_Stub(
1317 struct IRpcStubBuffer* This,
1318 struct IRpcChannelBuffer* pRpcChannelBuffer,
1319 PRPC_MESSAGE pRpcMessage,
1320 DWORD* pdwStubPhase);
1321 HRESULT CALLBACK IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Proxy(
1322 IGlobalInterfaceTable* This,
1323 DWORD dwCookie);
1324 void __RPC_STUB IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Stub(
1325 struct IRpcStubBuffer* This,
1326 struct IRpcChannelBuffer* pRpcChannelBuffer,
1327 PRPC_MESSAGE pRpcMessage,
1328 DWORD* pdwStubPhase);
1329 HRESULT CALLBACK IGlobalInterfaceTable_GetInterfaceFromGlobal_Proxy(
1330 IGlobalInterfaceTable* This,
1331 DWORD dwCookie,
1332 REFIID riid,
1333 void** ppv);
1334 void __RPC_STUB IGlobalInterfaceTable_GetInterfaceFromGlobal_Stub(
1335 struct IRpcStubBuffer* This,
1336 struct IRpcChannelBuffer* pRpcChannelBuffer,
1337 PRPC_MESSAGE pRpcMessage,
1338 DWORD* pdwStubPhase);
1340 #endif /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */
1342 #ifndef __IBindCtx_FWD_DEFINED__
1343 #define __IBindCtx_FWD_DEFINED__
1344 typedef struct IBindCtx IBindCtx;
1345 #endif
1347 typedef IBindCtx *LPBINDCTX;
1349 typedef IBindCtx *LPBC;
1351 typedef struct tagBIND_OPTS {
1352 DWORD cbStruct;
1353 DWORD grfFlags;
1354 DWORD grfMode;
1355 DWORD dwTickCountDeadline;
1356 } BIND_OPTS, *LPBIND_OPTS;
1358 typedef struct tagBIND_OPTS2 {
1359 DWORD cbStruct;
1360 DWORD grfFlags;
1361 DWORD grfMode;
1362 DWORD dwTickCountDeadline;
1363 DWORD dwTrackFlags;
1364 DWORD dwClassContext;
1365 LCID locale;
1366 COSERVERINFO *pServerInfo;
1367 } BIND_OPTS2, *LPBIND_OPTS2;
1369 typedef enum tagBIND_FLAGS {
1370 BIND_MAYBOTHERUSER = 1,
1371 BIND_JUSTTESTEXISTENCE = 2
1372 } BIND_FLAGS;
1374 /*****************************************************************************
1375 * IBindCtx interface
1377 #ifndef __IBindCtx_INTERFACE_DEFINED__
1378 #define __IBindCtx_INTERFACE_DEFINED__
1380 DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1381 #if defined(__cplusplus) && !defined(CINTERFACE)
1382 struct IBindCtx : public IUnknown
1384 virtual HRESULT STDMETHODCALLTYPE RegisterObjectBound(
1385 IUnknown* punk) = 0;
1387 virtual HRESULT STDMETHODCALLTYPE RevokeObjectBound(
1388 IUnknown* punk) = 0;
1390 virtual HRESULT STDMETHODCALLTYPE ReleaseBoundObjects(
1391 ) = 0;
1393 virtual HRESULT STDMETHODCALLTYPE SetBindOptions(
1394 BIND_OPTS* pbindopts) = 0;
1396 virtual HRESULT STDMETHODCALLTYPE GetBindOptions(
1397 BIND_OPTS* pbindopts) = 0;
1399 virtual HRESULT STDMETHODCALLTYPE GetRunningObjectTable(
1400 IRunningObjectTable** pprot) = 0;
1402 virtual HRESULT STDMETHODCALLTYPE RegisterObjectParam(
1403 LPOLESTR pszKey,
1404 IUnknown* punk) = 0;
1406 virtual HRESULT STDMETHODCALLTYPE GetObjectParam(
1407 LPOLESTR pszKey,
1408 IUnknown** ppunk) = 0;
1410 virtual HRESULT STDMETHODCALLTYPE EnumObjectParam(
1411 IEnumString** ppenum) = 0;
1413 virtual HRESULT STDMETHODCALLTYPE RevokeObjectParam(
1414 LPOLESTR pszKey) = 0;
1417 #else
1418 typedef struct IBindCtxVtbl IBindCtxVtbl;
1419 struct IBindCtx {
1420 const IBindCtxVtbl* lpVtbl;
1422 struct IBindCtxVtbl {
1423 ICOM_MSVTABLE_COMPAT_FIELDS
1425 /*** IUnknown methods ***/
1426 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1427 IBindCtx* This,
1428 REFIID riid,
1429 void** ppvObject);
1431 ULONG (STDMETHODCALLTYPE *AddRef)(
1432 IBindCtx* This);
1434 ULONG (STDMETHODCALLTYPE *Release)(
1435 IBindCtx* This);
1437 /*** IBindCtx methods ***/
1438 HRESULT (STDMETHODCALLTYPE *RegisterObjectBound)(
1439 IBindCtx* This,
1440 IUnknown* punk);
1442 HRESULT (STDMETHODCALLTYPE *RevokeObjectBound)(
1443 IBindCtx* This,
1444 IUnknown* punk);
1446 HRESULT (STDMETHODCALLTYPE *ReleaseBoundObjects)(
1447 IBindCtx* This);
1449 HRESULT (STDMETHODCALLTYPE *SetBindOptions)(
1450 IBindCtx* This,
1451 BIND_OPTS* pbindopts);
1453 HRESULT (STDMETHODCALLTYPE *GetBindOptions)(
1454 IBindCtx* This,
1455 BIND_OPTS* pbindopts);
1457 HRESULT (STDMETHODCALLTYPE *GetRunningObjectTable)(
1458 IBindCtx* This,
1459 IRunningObjectTable** pprot);
1461 HRESULT (STDMETHODCALLTYPE *RegisterObjectParam)(
1462 IBindCtx* This,
1463 LPOLESTR pszKey,
1464 IUnknown* punk);
1466 HRESULT (STDMETHODCALLTYPE *GetObjectParam)(
1467 IBindCtx* This,
1468 LPOLESTR pszKey,
1469 IUnknown** ppunk);
1471 HRESULT (STDMETHODCALLTYPE *EnumObjectParam)(
1472 IBindCtx* This,
1473 IEnumString** ppenum);
1475 HRESULT (STDMETHODCALLTYPE *RevokeObjectParam)(
1476 IBindCtx* This,
1477 LPOLESTR pszKey);
1481 /*** IUnknown methods ***/
1482 #define IBindCtx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1483 #define IBindCtx_AddRef(p) (p)->lpVtbl->AddRef(p)
1484 #define IBindCtx_Release(p) (p)->lpVtbl->Release(p)
1485 /*** IBindCtx methods ***/
1486 #define IBindCtx_RegisterObjectBound(p,a) (p)->lpVtbl->RegisterObjectBound(p,a)
1487 #define IBindCtx_RevokeObjectBound(p,a) (p)->lpVtbl->RevokeObjectBound(p,a)
1488 #define IBindCtx_ReleaseBoundObjects(p) (p)->lpVtbl->ReleaseBoundObjects(p)
1489 #define IBindCtx_SetBindOptions(p,a) (p)->lpVtbl->SetBindOptions(p,a)
1490 #define IBindCtx_GetBindOptions(p,a) (p)->lpVtbl->GetBindOptions(p,a)
1491 #define IBindCtx_GetRunningObjectTable(p,a) (p)->lpVtbl->GetRunningObjectTable(p,a)
1492 #define IBindCtx_RegisterObjectParam(p,a,b) (p)->lpVtbl->RegisterObjectParam(p,a,b)
1493 #define IBindCtx_GetObjectParam(p,a,b) (p)->lpVtbl->GetObjectParam(p,a,b)
1494 #define IBindCtx_EnumObjectParam(p,a) (p)->lpVtbl->EnumObjectParam(p,a)
1495 #define IBindCtx_RevokeObjectParam(p,a) (p)->lpVtbl->RevokeObjectParam(p,a)
1497 #endif
1499 #define IBindCtx_METHODS \
1500 ICOM_MSVTABLE_COMPAT_FIELDS \
1501 /*** IUnknown methods ***/ \
1502 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1503 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1504 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1505 /*** IBindCtx methods ***/ \
1506 STDMETHOD_(HRESULT,RegisterObjectBound)(THIS_ IUnknown* punk) PURE; \
1507 STDMETHOD_(HRESULT,RevokeObjectBound)(THIS_ IUnknown* punk) PURE; \
1508 STDMETHOD_(HRESULT,ReleaseBoundObjects)(THIS) PURE; \
1509 STDMETHOD_(HRESULT,SetBindOptions)(THIS_ BIND_OPTS* pbindopts) PURE; \
1510 STDMETHOD_(HRESULT,GetBindOptions)(THIS_ BIND_OPTS* pbindopts) PURE; \
1511 STDMETHOD_(HRESULT,GetRunningObjectTable)(THIS_ IRunningObjectTable** pprot) PURE; \
1512 STDMETHOD_(HRESULT,RegisterObjectParam)(THIS_ LPOLESTR pszKey, IUnknown* punk) PURE; \
1513 STDMETHOD_(HRESULT,GetObjectParam)(THIS_ LPOLESTR pszKey, IUnknown** ppunk) PURE; \
1514 STDMETHOD_(HRESULT,EnumObjectParam)(THIS_ IEnumString** ppenum) PURE; \
1515 STDMETHOD_(HRESULT,RevokeObjectParam)(THIS_ LPOLESTR pszKey) PURE;
1517 HRESULT CALLBACK IBindCtx_RegisterObjectBound_Proxy(
1518 IBindCtx* This,
1519 IUnknown* punk);
1520 void __RPC_STUB IBindCtx_RegisterObjectBound_Stub(
1521 struct IRpcStubBuffer* This,
1522 struct IRpcChannelBuffer* pRpcChannelBuffer,
1523 PRPC_MESSAGE pRpcMessage,
1524 DWORD* pdwStubPhase);
1525 HRESULT CALLBACK IBindCtx_RevokeObjectBound_Proxy(
1526 IBindCtx* This,
1527 IUnknown* punk);
1528 void __RPC_STUB IBindCtx_RevokeObjectBound_Stub(
1529 struct IRpcStubBuffer* This,
1530 struct IRpcChannelBuffer* pRpcChannelBuffer,
1531 PRPC_MESSAGE pRpcMessage,
1532 DWORD* pdwStubPhase);
1533 HRESULT CALLBACK IBindCtx_ReleaseBoundObjects_Proxy(
1534 IBindCtx* This);
1535 void __RPC_STUB IBindCtx_ReleaseBoundObjects_Stub(
1536 struct IRpcStubBuffer* This,
1537 struct IRpcChannelBuffer* pRpcChannelBuffer,
1538 PRPC_MESSAGE pRpcMessage,
1539 DWORD* pdwStubPhase);
1540 HRESULT CALLBACK IBindCtx_RemoteSetBindOptions_Proxy(
1541 IBindCtx* This,
1542 BIND_OPTS2* pbindopts);
1543 void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
1544 struct IRpcStubBuffer* This,
1545 struct IRpcChannelBuffer* pRpcChannelBuffer,
1546 PRPC_MESSAGE pRpcMessage,
1547 DWORD* pdwStubPhase);
1548 HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
1549 IBindCtx* This,
1550 BIND_OPTS* pbindopts);
1551 HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
1552 IBindCtx* This,
1553 BIND_OPTS2* pbindopts);
1554 HRESULT CALLBACK IBindCtx_RemoteGetBindOptions_Proxy(
1555 IBindCtx* This,
1556 BIND_OPTS2* pbindopts);
1557 void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
1558 struct IRpcStubBuffer* This,
1559 struct IRpcChannelBuffer* pRpcChannelBuffer,
1560 PRPC_MESSAGE pRpcMessage,
1561 DWORD* pdwStubPhase);
1562 HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
1563 IBindCtx* This,
1564 BIND_OPTS* pbindopts);
1565 HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
1566 IBindCtx* This,
1567 BIND_OPTS2* pbindopts);
1568 HRESULT CALLBACK IBindCtx_GetRunningObjectTable_Proxy(
1569 IBindCtx* This,
1570 IRunningObjectTable** pprot);
1571 void __RPC_STUB IBindCtx_GetRunningObjectTable_Stub(
1572 struct IRpcStubBuffer* This,
1573 struct IRpcChannelBuffer* pRpcChannelBuffer,
1574 PRPC_MESSAGE pRpcMessage,
1575 DWORD* pdwStubPhase);
1576 HRESULT CALLBACK IBindCtx_RegisterObjectParam_Proxy(
1577 IBindCtx* This,
1578 LPOLESTR pszKey,
1579 IUnknown* punk);
1580 void __RPC_STUB IBindCtx_RegisterObjectParam_Stub(
1581 struct IRpcStubBuffer* This,
1582 struct IRpcChannelBuffer* pRpcChannelBuffer,
1583 PRPC_MESSAGE pRpcMessage,
1584 DWORD* pdwStubPhase);
1585 HRESULT CALLBACK IBindCtx_GetObjectParam_Proxy(
1586 IBindCtx* This,
1587 LPOLESTR pszKey,
1588 IUnknown** ppunk);
1589 void __RPC_STUB IBindCtx_GetObjectParam_Stub(
1590 struct IRpcStubBuffer* This,
1591 struct IRpcChannelBuffer* pRpcChannelBuffer,
1592 PRPC_MESSAGE pRpcMessage,
1593 DWORD* pdwStubPhase);
1594 HRESULT CALLBACK IBindCtx_EnumObjectParam_Proxy(
1595 IBindCtx* This,
1596 IEnumString** ppenum);
1597 void __RPC_STUB IBindCtx_EnumObjectParam_Stub(
1598 struct IRpcStubBuffer* This,
1599 struct IRpcChannelBuffer* pRpcChannelBuffer,
1600 PRPC_MESSAGE pRpcMessage,
1601 DWORD* pdwStubPhase);
1602 HRESULT CALLBACK IBindCtx_RevokeObjectParam_Proxy(
1603 IBindCtx* This,
1604 LPOLESTR pszKey);
1605 void __RPC_STUB IBindCtx_RevokeObjectParam_Stub(
1606 struct IRpcStubBuffer* This,
1607 struct IRpcChannelBuffer* pRpcChannelBuffer,
1608 PRPC_MESSAGE pRpcMessage,
1609 DWORD* pdwStubPhase);
1611 #endif /* __IBindCtx_INTERFACE_DEFINED__ */
1613 #ifndef __IEnumMoniker_FWD_DEFINED__
1614 #define __IEnumMoniker_FWD_DEFINED__
1615 typedef struct IEnumMoniker IEnumMoniker;
1616 #endif
1618 typedef IEnumMoniker *LPENUMMONIKER;
1620 /*****************************************************************************
1621 * IEnumMoniker interface
1623 #ifndef __IEnumMoniker_INTERFACE_DEFINED__
1624 #define __IEnumMoniker_INTERFACE_DEFINED__
1626 DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1627 #if defined(__cplusplus) && !defined(CINTERFACE)
1628 struct IEnumMoniker : public IUnknown
1630 virtual HRESULT STDMETHODCALLTYPE Next(
1631 ULONG celt,
1632 IMoniker** rgelt,
1633 ULONG* pceltFetched) = 0;
1635 virtual HRESULT STDMETHODCALLTYPE Skip(
1636 ULONG celt) = 0;
1638 virtual HRESULT STDMETHODCALLTYPE Reset(
1639 ) = 0;
1641 virtual HRESULT STDMETHODCALLTYPE Clone(
1642 IEnumMoniker** ppenum) = 0;
1645 #else
1646 typedef struct IEnumMonikerVtbl IEnumMonikerVtbl;
1647 struct IEnumMoniker {
1648 const IEnumMonikerVtbl* lpVtbl;
1650 struct IEnumMonikerVtbl {
1651 ICOM_MSVTABLE_COMPAT_FIELDS
1653 /*** IUnknown methods ***/
1654 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1655 IEnumMoniker* This,
1656 REFIID riid,
1657 void** ppvObject);
1659 ULONG (STDMETHODCALLTYPE *AddRef)(
1660 IEnumMoniker* This);
1662 ULONG (STDMETHODCALLTYPE *Release)(
1663 IEnumMoniker* This);
1665 /*** IEnumMoniker methods ***/
1666 HRESULT (STDMETHODCALLTYPE *Next)(
1667 IEnumMoniker* This,
1668 ULONG celt,
1669 IMoniker** rgelt,
1670 ULONG* pceltFetched);
1672 HRESULT (STDMETHODCALLTYPE *Skip)(
1673 IEnumMoniker* This,
1674 ULONG celt);
1676 HRESULT (STDMETHODCALLTYPE *Reset)(
1677 IEnumMoniker* This);
1679 HRESULT (STDMETHODCALLTYPE *Clone)(
1680 IEnumMoniker* This,
1681 IEnumMoniker** ppenum);
1685 /*** IUnknown methods ***/
1686 #define IEnumMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1687 #define IEnumMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
1688 #define IEnumMoniker_Release(p) (p)->lpVtbl->Release(p)
1689 /*** IEnumMoniker methods ***/
1690 #define IEnumMoniker_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1691 #define IEnumMoniker_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1692 #define IEnumMoniker_Reset(p) (p)->lpVtbl->Reset(p)
1693 #define IEnumMoniker_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1695 #endif
1697 #define IEnumMoniker_METHODS \
1698 ICOM_MSVTABLE_COMPAT_FIELDS \
1699 /*** IUnknown methods ***/ \
1700 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1701 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1702 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1703 /*** IEnumMoniker methods ***/ \
1704 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, IMoniker** rgelt, ULONG* pceltFetched) PURE; \
1705 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
1706 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
1707 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumMoniker** ppenum) PURE;
1709 HRESULT CALLBACK IEnumMoniker_RemoteNext_Proxy(
1710 IEnumMoniker* This,
1711 ULONG celt,
1712 IMoniker** rgelt,
1713 ULONG* pceltFetched);
1714 void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
1715 struct IRpcStubBuffer* This,
1716 struct IRpcChannelBuffer* pRpcChannelBuffer,
1717 PRPC_MESSAGE pRpcMessage,
1718 DWORD* pdwStubPhase);
1719 HRESULT CALLBACK IEnumMoniker_Next_Proxy(
1720 IEnumMoniker* This,
1721 ULONG celt,
1722 IMoniker** rgelt,
1723 ULONG* pceltFetched);
1724 HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
1725 IEnumMoniker* This,
1726 ULONG celt,
1727 IMoniker** rgelt,
1728 ULONG* pceltFetched);
1729 HRESULT CALLBACK IEnumMoniker_Skip_Proxy(
1730 IEnumMoniker* This,
1731 ULONG celt);
1732 void __RPC_STUB IEnumMoniker_Skip_Stub(
1733 struct IRpcStubBuffer* This,
1734 struct IRpcChannelBuffer* pRpcChannelBuffer,
1735 PRPC_MESSAGE pRpcMessage,
1736 DWORD* pdwStubPhase);
1737 HRESULT CALLBACK IEnumMoniker_Reset_Proxy(
1738 IEnumMoniker* This);
1739 void __RPC_STUB IEnumMoniker_Reset_Stub(
1740 struct IRpcStubBuffer* This,
1741 struct IRpcChannelBuffer* pRpcChannelBuffer,
1742 PRPC_MESSAGE pRpcMessage,
1743 DWORD* pdwStubPhase);
1744 HRESULT CALLBACK IEnumMoniker_Clone_Proxy(
1745 IEnumMoniker* This,
1746 IEnumMoniker** ppenum);
1747 void __RPC_STUB IEnumMoniker_Clone_Stub(
1748 struct IRpcStubBuffer* This,
1749 struct IRpcChannelBuffer* pRpcChannelBuffer,
1750 PRPC_MESSAGE pRpcMessage,
1751 DWORD* pdwStubPhase);
1753 #endif /* __IEnumMoniker_INTERFACE_DEFINED__ */
1755 #ifndef __IRunnableObject_FWD_DEFINED__
1756 #define __IRunnableObject_FWD_DEFINED__
1757 typedef struct IRunnableObject IRunnableObject;
1758 #endif
1760 typedef IRunnableObject *LPRUNNABLEOBJECT;
1762 /*****************************************************************************
1763 * IRunnableObject interface
1765 #ifndef __IRunnableObject_INTERFACE_DEFINED__
1766 #define __IRunnableObject_INTERFACE_DEFINED__
1768 DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1769 #if defined(__cplusplus) && !defined(CINTERFACE)
1770 struct IRunnableObject : public IUnknown
1772 virtual HRESULT STDMETHODCALLTYPE GetRunningClass(
1773 LPCLSID lpClsid) = 0;
1775 virtual HRESULT STDMETHODCALLTYPE Run(
1776 LPBINDCTX pbc) = 0;
1778 virtual BOOL STDMETHODCALLTYPE IsRunning(
1779 ) = 0;
1781 virtual HRESULT STDMETHODCALLTYPE LockRunning(
1782 BOOL fLock,
1783 BOOL fLastUnlockCloses) = 0;
1785 virtual HRESULT STDMETHODCALLTYPE SetContainedObject(
1786 BOOL fContained) = 0;
1789 #else
1790 typedef struct IRunnableObjectVtbl IRunnableObjectVtbl;
1791 struct IRunnableObject {
1792 const IRunnableObjectVtbl* lpVtbl;
1794 struct IRunnableObjectVtbl {
1795 ICOM_MSVTABLE_COMPAT_FIELDS
1797 /*** IUnknown methods ***/
1798 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1799 IRunnableObject* This,
1800 REFIID riid,
1801 void** ppvObject);
1803 ULONG (STDMETHODCALLTYPE *AddRef)(
1804 IRunnableObject* This);
1806 ULONG (STDMETHODCALLTYPE *Release)(
1807 IRunnableObject* This);
1809 /*** IRunnableObject methods ***/
1810 HRESULT (STDMETHODCALLTYPE *GetRunningClass)(
1811 IRunnableObject* This,
1812 LPCLSID lpClsid);
1814 HRESULT (STDMETHODCALLTYPE *Run)(
1815 IRunnableObject* This,
1816 LPBINDCTX pbc);
1818 BOOL (STDMETHODCALLTYPE *IsRunning)(
1819 IRunnableObject* This);
1821 HRESULT (STDMETHODCALLTYPE *LockRunning)(
1822 IRunnableObject* This,
1823 BOOL fLock,
1824 BOOL fLastUnlockCloses);
1826 HRESULT (STDMETHODCALLTYPE *SetContainedObject)(
1827 IRunnableObject* This,
1828 BOOL fContained);
1832 /*** IUnknown methods ***/
1833 #define IRunnableObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1834 #define IRunnableObject_AddRef(p) (p)->lpVtbl->AddRef(p)
1835 #define IRunnableObject_Release(p) (p)->lpVtbl->Release(p)
1836 /*** IRunnableObject methods ***/
1837 #define IRunnableObject_GetRunningClass(p,a) (p)->lpVtbl->GetRunningClass(p,a)
1838 #define IRunnableObject_Run(p,a) (p)->lpVtbl->Run(p,a)
1839 #define IRunnableObject_IsRunning(p) (p)->lpVtbl->IsRunning(p)
1840 #define IRunnableObject_LockRunning(p,a,b) (p)->lpVtbl->LockRunning(p,a,b)
1841 #define IRunnableObject_SetContainedObject(p,a) (p)->lpVtbl->SetContainedObject(p,a)
1843 #endif
1845 #define IRunnableObject_METHODS \
1846 ICOM_MSVTABLE_COMPAT_FIELDS \
1847 /*** IUnknown methods ***/ \
1848 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1849 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1850 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1851 /*** IRunnableObject methods ***/ \
1852 STDMETHOD_(HRESULT,GetRunningClass)(THIS_ LPCLSID lpClsid) PURE; \
1853 STDMETHOD_(HRESULT,Run)(THIS_ LPBINDCTX pbc) PURE; \
1854 STDMETHOD_(BOOL,IsRunning)(THIS) PURE; \
1855 STDMETHOD_(HRESULT,LockRunning)(THIS_ BOOL fLock, BOOL fLastUnlockCloses) PURE; \
1856 STDMETHOD_(HRESULT,SetContainedObject)(THIS_ BOOL fContained) PURE;
1858 HRESULT CALLBACK IRunnableObject_GetRunningClass_Proxy(
1859 IRunnableObject* This,
1860 LPCLSID lpClsid);
1861 void __RPC_STUB IRunnableObject_GetRunningClass_Stub(
1862 struct IRpcStubBuffer* This,
1863 struct IRpcChannelBuffer* pRpcChannelBuffer,
1864 PRPC_MESSAGE pRpcMessage,
1865 DWORD* pdwStubPhase);
1866 HRESULT CALLBACK IRunnableObject_Run_Proxy(
1867 IRunnableObject* This,
1868 LPBINDCTX pbc);
1869 void __RPC_STUB IRunnableObject_Run_Stub(
1870 struct IRpcStubBuffer* This,
1871 struct IRpcChannelBuffer* pRpcChannelBuffer,
1872 PRPC_MESSAGE pRpcMessage,
1873 DWORD* pdwStubPhase);
1874 HRESULT CALLBACK IRunnableObject_RemoteIsRunning_Proxy(
1875 IRunnableObject* This);
1876 void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
1877 struct IRpcStubBuffer* This,
1878 struct IRpcChannelBuffer* pRpcChannelBuffer,
1879 PRPC_MESSAGE pRpcMessage,
1880 DWORD* pdwStubPhase);
1881 BOOL CALLBACK IRunnableObject_IsRunning_Proxy(
1882 IRunnableObject* This);
1883 HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
1884 IRunnableObject* This);
1885 HRESULT CALLBACK IRunnableObject_LockRunning_Proxy(
1886 IRunnableObject* This,
1887 BOOL fLock,
1888 BOOL fLastUnlockCloses);
1889 void __RPC_STUB IRunnableObject_LockRunning_Stub(
1890 struct IRpcStubBuffer* This,
1891 struct IRpcChannelBuffer* pRpcChannelBuffer,
1892 PRPC_MESSAGE pRpcMessage,
1893 DWORD* pdwStubPhase);
1894 HRESULT CALLBACK IRunnableObject_SetContainedObject_Proxy(
1895 IRunnableObject* This,
1896 BOOL fContained);
1897 void __RPC_STUB IRunnableObject_SetContainedObject_Stub(
1898 struct IRpcStubBuffer* This,
1899 struct IRpcChannelBuffer* pRpcChannelBuffer,
1900 PRPC_MESSAGE pRpcMessage,
1901 DWORD* pdwStubPhase);
1903 #endif /* __IRunnableObject_INTERFACE_DEFINED__ */
1905 #ifdef __WINESRC__
1906 #undef GetObject
1907 #endif
1908 typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
1910 /*****************************************************************************
1911 * IRunningObjectTable interface
1913 #ifndef __IRunningObjectTable_INTERFACE_DEFINED__
1914 #define __IRunningObjectTable_INTERFACE_DEFINED__
1916 DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1917 #if defined(__cplusplus) && !defined(CINTERFACE)
1918 struct IRunningObjectTable : public IUnknown
1920 virtual HRESULT STDMETHODCALLTYPE Register(
1921 DWORD grfFlags,
1922 IUnknown* punkObject,
1923 IMoniker* pmkObjectName,
1924 DWORD* pdwRegister) = 0;
1926 virtual HRESULT STDMETHODCALLTYPE Revoke(
1927 DWORD dwRegister) = 0;
1929 virtual HRESULT STDMETHODCALLTYPE IsRunning(
1930 IMoniker* pmkObjectName) = 0;
1932 virtual HRESULT STDMETHODCALLTYPE GetObject(
1933 IMoniker* pmkObjectName,
1934 IUnknown** ppunkObject) = 0;
1936 virtual HRESULT STDMETHODCALLTYPE NoteChangeTime(
1937 DWORD dwRegister,
1938 FILETIME* pfiletime) = 0;
1940 virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
1941 IMoniker* pmkObjectName,
1942 FILETIME* pfiletime) = 0;
1944 virtual HRESULT STDMETHODCALLTYPE EnumRunning(
1945 IEnumMoniker** ppenumMoniker) = 0;
1948 #else
1949 typedef struct IRunningObjectTableVtbl IRunningObjectTableVtbl;
1950 struct IRunningObjectTable {
1951 const IRunningObjectTableVtbl* lpVtbl;
1953 struct IRunningObjectTableVtbl {
1954 ICOM_MSVTABLE_COMPAT_FIELDS
1956 /*** IUnknown methods ***/
1957 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1958 IRunningObjectTable* This,
1959 REFIID riid,
1960 void** ppvObject);
1962 ULONG (STDMETHODCALLTYPE *AddRef)(
1963 IRunningObjectTable* This);
1965 ULONG (STDMETHODCALLTYPE *Release)(
1966 IRunningObjectTable* This);
1968 /*** IRunningObjectTable methods ***/
1969 HRESULT (STDMETHODCALLTYPE *Register)(
1970 IRunningObjectTable* This,
1971 DWORD grfFlags,
1972 IUnknown* punkObject,
1973 IMoniker* pmkObjectName,
1974 DWORD* pdwRegister);
1976 HRESULT (STDMETHODCALLTYPE *Revoke)(
1977 IRunningObjectTable* This,
1978 DWORD dwRegister);
1980 HRESULT (STDMETHODCALLTYPE *IsRunning)(
1981 IRunningObjectTable* This,
1982 IMoniker* pmkObjectName);
1984 HRESULT (STDMETHODCALLTYPE *GetObject)(
1985 IRunningObjectTable* This,
1986 IMoniker* pmkObjectName,
1987 IUnknown** ppunkObject);
1989 HRESULT (STDMETHODCALLTYPE *NoteChangeTime)(
1990 IRunningObjectTable* This,
1991 DWORD dwRegister,
1992 FILETIME* pfiletime);
1994 HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
1995 IRunningObjectTable* This,
1996 IMoniker* pmkObjectName,
1997 FILETIME* pfiletime);
1999 HRESULT (STDMETHODCALLTYPE *EnumRunning)(
2000 IRunningObjectTable* This,
2001 IEnumMoniker** ppenumMoniker);
2005 /*** IUnknown methods ***/
2006 #define IRunningObjectTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2007 #define IRunningObjectTable_AddRef(p) (p)->lpVtbl->AddRef(p)
2008 #define IRunningObjectTable_Release(p) (p)->lpVtbl->Release(p)
2009 /*** IRunningObjectTable methods ***/
2010 #define IRunningObjectTable_Register(p,a,b,c,d) (p)->lpVtbl->Register(p,a,b,c,d)
2011 #define IRunningObjectTable_Revoke(p,a) (p)->lpVtbl->Revoke(p,a)
2012 #define IRunningObjectTable_IsRunning(p,a) (p)->lpVtbl->IsRunning(p,a)
2013 #define IRunningObjectTable_GetObject(p,a,b) (p)->lpVtbl->GetObject(p,a,b)
2014 #define IRunningObjectTable_NoteChangeTime(p,a,b) (p)->lpVtbl->NoteChangeTime(p,a,b)
2015 #define IRunningObjectTable_GetTimeOfLastChange(p,a,b) (p)->lpVtbl->GetTimeOfLastChange(p,a,b)
2016 #define IRunningObjectTable_EnumRunning(p,a) (p)->lpVtbl->EnumRunning(p,a)
2018 #endif
2020 #define IRunningObjectTable_METHODS \
2021 ICOM_MSVTABLE_COMPAT_FIELDS \
2022 /*** IUnknown methods ***/ \
2023 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2024 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2025 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2026 /*** IRunningObjectTable methods ***/ \
2027 STDMETHOD_(HRESULT,Register)(THIS_ DWORD grfFlags, IUnknown* punkObject, IMoniker* pmkObjectName, DWORD* pdwRegister) PURE; \
2028 STDMETHOD_(HRESULT,Revoke)(THIS_ DWORD dwRegister) PURE; \
2029 STDMETHOD_(HRESULT,IsRunning)(THIS_ IMoniker* pmkObjectName) PURE; \
2030 STDMETHOD_(HRESULT,GetObject)(THIS_ IMoniker* pmkObjectName, IUnknown** ppunkObject) PURE; \
2031 STDMETHOD_(HRESULT,NoteChangeTime)(THIS_ DWORD dwRegister, FILETIME* pfiletime) PURE; \
2032 STDMETHOD_(HRESULT,GetTimeOfLastChange)(THIS_ IMoniker* pmkObjectName, FILETIME* pfiletime) PURE; \
2033 STDMETHOD_(HRESULT,EnumRunning)(THIS_ IEnumMoniker** ppenumMoniker) PURE;
2035 HRESULT CALLBACK IRunningObjectTable_Register_Proxy(
2036 IRunningObjectTable* This,
2037 DWORD grfFlags,
2038 IUnknown* punkObject,
2039 IMoniker* pmkObjectName,
2040 DWORD* pdwRegister);
2041 void __RPC_STUB IRunningObjectTable_Register_Stub(
2042 struct IRpcStubBuffer* This,
2043 struct IRpcChannelBuffer* pRpcChannelBuffer,
2044 PRPC_MESSAGE pRpcMessage,
2045 DWORD* pdwStubPhase);
2046 HRESULT CALLBACK IRunningObjectTable_Revoke_Proxy(
2047 IRunningObjectTable* This,
2048 DWORD dwRegister);
2049 void __RPC_STUB IRunningObjectTable_Revoke_Stub(
2050 struct IRpcStubBuffer* This,
2051 struct IRpcChannelBuffer* pRpcChannelBuffer,
2052 PRPC_MESSAGE pRpcMessage,
2053 DWORD* pdwStubPhase);
2054 HRESULT CALLBACK IRunningObjectTable_IsRunning_Proxy(
2055 IRunningObjectTable* This,
2056 IMoniker* pmkObjectName);
2057 void __RPC_STUB IRunningObjectTable_IsRunning_Stub(
2058 struct IRpcStubBuffer* This,
2059 struct IRpcChannelBuffer* pRpcChannelBuffer,
2060 PRPC_MESSAGE pRpcMessage,
2061 DWORD* pdwStubPhase);
2062 HRESULT CALLBACK IRunningObjectTable_GetObject_Proxy(
2063 IRunningObjectTable* This,
2064 IMoniker* pmkObjectName,
2065 IUnknown** ppunkObject);
2066 void __RPC_STUB IRunningObjectTable_GetObject_Stub(
2067 struct IRpcStubBuffer* This,
2068 struct IRpcChannelBuffer* pRpcChannelBuffer,
2069 PRPC_MESSAGE pRpcMessage,
2070 DWORD* pdwStubPhase);
2071 HRESULT CALLBACK IRunningObjectTable_NoteChangeTime_Proxy(
2072 IRunningObjectTable* This,
2073 DWORD dwRegister,
2074 FILETIME* pfiletime);
2075 void __RPC_STUB IRunningObjectTable_NoteChangeTime_Stub(
2076 struct IRpcStubBuffer* This,
2077 struct IRpcChannelBuffer* pRpcChannelBuffer,
2078 PRPC_MESSAGE pRpcMessage,
2079 DWORD* pdwStubPhase);
2080 HRESULT CALLBACK IRunningObjectTable_GetTimeOfLastChange_Proxy(
2081 IRunningObjectTable* This,
2082 IMoniker* pmkObjectName,
2083 FILETIME* pfiletime);
2084 void __RPC_STUB IRunningObjectTable_GetTimeOfLastChange_Stub(
2085 struct IRpcStubBuffer* This,
2086 struct IRpcChannelBuffer* pRpcChannelBuffer,
2087 PRPC_MESSAGE pRpcMessage,
2088 DWORD* pdwStubPhase);
2089 HRESULT CALLBACK IRunningObjectTable_EnumRunning_Proxy(
2090 IRunningObjectTable* This,
2091 IEnumMoniker** ppenumMoniker);
2092 void __RPC_STUB IRunningObjectTable_EnumRunning_Stub(
2093 struct IRpcStubBuffer* This,
2094 struct IRpcChannelBuffer* pRpcChannelBuffer,
2095 PRPC_MESSAGE pRpcMessage,
2096 DWORD* pdwStubPhase);
2098 #endif /* __IRunningObjectTable_INTERFACE_DEFINED__ */
2100 #ifndef __IPersist_FWD_DEFINED__
2101 #define __IPersist_FWD_DEFINED__
2102 typedef struct IPersist IPersist;
2103 #endif
2105 typedef IPersist *LPPERSIST;
2107 /*****************************************************************************
2108 * IPersist interface
2110 #ifndef __IPersist_INTERFACE_DEFINED__
2111 #define __IPersist_INTERFACE_DEFINED__
2113 DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2114 #if defined(__cplusplus) && !defined(CINTERFACE)
2115 struct IPersist : public IUnknown
2117 virtual HRESULT STDMETHODCALLTYPE GetClassID(
2118 CLSID* pClassID) = 0;
2121 #else
2122 typedef struct IPersistVtbl IPersistVtbl;
2123 struct IPersist {
2124 const IPersistVtbl* lpVtbl;
2126 struct IPersistVtbl {
2127 ICOM_MSVTABLE_COMPAT_FIELDS
2129 /*** IUnknown methods ***/
2130 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2131 IPersist* This,
2132 REFIID riid,
2133 void** ppvObject);
2135 ULONG (STDMETHODCALLTYPE *AddRef)(
2136 IPersist* This);
2138 ULONG (STDMETHODCALLTYPE *Release)(
2139 IPersist* This);
2141 /*** IPersist methods ***/
2142 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2143 IPersist* This,
2144 CLSID* pClassID);
2148 /*** IUnknown methods ***/
2149 #define IPersist_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2150 #define IPersist_AddRef(p) (p)->lpVtbl->AddRef(p)
2151 #define IPersist_Release(p) (p)->lpVtbl->Release(p)
2152 /*** IPersist methods ***/
2153 #define IPersist_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2155 #endif
2157 #define IPersist_METHODS \
2158 ICOM_MSVTABLE_COMPAT_FIELDS \
2159 /*** IUnknown methods ***/ \
2160 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2161 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2162 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2163 /*** IPersist methods ***/ \
2164 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE;
2166 HRESULT CALLBACK IPersist_GetClassID_Proxy(
2167 IPersist* This,
2168 CLSID* pClassID);
2169 void __RPC_STUB IPersist_GetClassID_Stub(
2170 struct IRpcStubBuffer* This,
2171 struct IRpcChannelBuffer* pRpcChannelBuffer,
2172 PRPC_MESSAGE pRpcMessage,
2173 DWORD* pdwStubPhase);
2175 #endif /* __IPersist_INTERFACE_DEFINED__ */
2177 #ifndef __IPersistStream_FWD_DEFINED__
2178 #define __IPersistStream_FWD_DEFINED__
2179 typedef struct IPersistStream IPersistStream;
2180 #endif
2182 typedef IPersistStream *LPPERSISTSTREAM;
2184 /*****************************************************************************
2185 * IPersistStream interface
2187 #ifndef __IPersistStream_INTERFACE_DEFINED__
2188 #define __IPersistStream_INTERFACE_DEFINED__
2190 DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2191 #if defined(__cplusplus) && !defined(CINTERFACE)
2192 struct IPersistStream : public IPersist
2194 virtual HRESULT STDMETHODCALLTYPE IsDirty(
2195 ) = 0;
2197 virtual HRESULT STDMETHODCALLTYPE Load(
2198 IStream* pStm) = 0;
2200 virtual HRESULT STDMETHODCALLTYPE Save(
2201 IStream* pStm,
2202 BOOL fClearDirty) = 0;
2204 virtual HRESULT STDMETHODCALLTYPE GetSizeMax(
2205 ULARGE_INTEGER* pcbSize) = 0;
2208 #else
2209 typedef struct IPersistStreamVtbl IPersistStreamVtbl;
2210 struct IPersistStream {
2211 const IPersistStreamVtbl* lpVtbl;
2213 struct IPersistStreamVtbl {
2214 ICOM_MSVTABLE_COMPAT_FIELDS
2216 /*** IUnknown methods ***/
2217 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2218 IPersistStream* This,
2219 REFIID riid,
2220 void** ppvObject);
2222 ULONG (STDMETHODCALLTYPE *AddRef)(
2223 IPersistStream* This);
2225 ULONG (STDMETHODCALLTYPE *Release)(
2226 IPersistStream* This);
2228 /*** IPersist methods ***/
2229 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2230 IPersistStream* This,
2231 CLSID* pClassID);
2233 /*** IPersistStream methods ***/
2234 HRESULT (STDMETHODCALLTYPE *IsDirty)(
2235 IPersistStream* This);
2237 HRESULT (STDMETHODCALLTYPE *Load)(
2238 IPersistStream* This,
2239 IStream* pStm);
2241 HRESULT (STDMETHODCALLTYPE *Save)(
2242 IPersistStream* This,
2243 IStream* pStm,
2244 BOOL fClearDirty);
2246 HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
2247 IPersistStream* This,
2248 ULARGE_INTEGER* pcbSize);
2252 /*** IUnknown methods ***/
2253 #define IPersistStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2254 #define IPersistStream_AddRef(p) (p)->lpVtbl->AddRef(p)
2255 #define IPersistStream_Release(p) (p)->lpVtbl->Release(p)
2256 /*** IPersist methods ***/
2257 #define IPersistStream_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2258 /*** IPersistStream methods ***/
2259 #define IPersistStream_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2260 #define IPersistStream_Load(p,a) (p)->lpVtbl->Load(p,a)
2261 #define IPersistStream_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2262 #define IPersistStream_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2264 #endif
2266 #define IPersistStream_METHODS \
2267 ICOM_MSVTABLE_COMPAT_FIELDS \
2268 /*** IUnknown methods ***/ \
2269 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2270 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2271 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2272 /*** IPersist methods ***/ \
2273 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
2274 /*** IPersistStream methods ***/ \
2275 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
2276 STDMETHOD_(HRESULT,Load)(THIS_ IStream* pStm) PURE; \
2277 STDMETHOD_(HRESULT,Save)(THIS_ IStream* pStm, BOOL fClearDirty) PURE; \
2278 STDMETHOD_(HRESULT,GetSizeMax)(THIS_ ULARGE_INTEGER* pcbSize) PURE;
2280 HRESULT CALLBACK IPersistStream_IsDirty_Proxy(
2281 IPersistStream* This);
2282 void __RPC_STUB IPersistStream_IsDirty_Stub(
2283 struct IRpcStubBuffer* This,
2284 struct IRpcChannelBuffer* pRpcChannelBuffer,
2285 PRPC_MESSAGE pRpcMessage,
2286 DWORD* pdwStubPhase);
2287 HRESULT CALLBACK IPersistStream_Load_Proxy(
2288 IPersistStream* This,
2289 IStream* pStm);
2290 void __RPC_STUB IPersistStream_Load_Stub(
2291 struct IRpcStubBuffer* This,
2292 struct IRpcChannelBuffer* pRpcChannelBuffer,
2293 PRPC_MESSAGE pRpcMessage,
2294 DWORD* pdwStubPhase);
2295 HRESULT CALLBACK IPersistStream_Save_Proxy(
2296 IPersistStream* This,
2297 IStream* pStm,
2298 BOOL fClearDirty);
2299 void __RPC_STUB IPersistStream_Save_Stub(
2300 struct IRpcStubBuffer* This,
2301 struct IRpcChannelBuffer* pRpcChannelBuffer,
2302 PRPC_MESSAGE pRpcMessage,
2303 DWORD* pdwStubPhase);
2304 HRESULT CALLBACK IPersistStream_GetSizeMax_Proxy(
2305 IPersistStream* This,
2306 ULARGE_INTEGER* pcbSize);
2307 void __RPC_STUB IPersistStream_GetSizeMax_Stub(
2308 struct IRpcStubBuffer* This,
2309 struct IRpcChannelBuffer* pRpcChannelBuffer,
2310 PRPC_MESSAGE pRpcMessage,
2311 DWORD* pdwStubPhase);
2313 #endif /* __IPersistStream_INTERFACE_DEFINED__ */
2315 typedef IMoniker *LPMONIKER;
2317 typedef enum tagMKSYS {
2318 MKSYS_NONE = 0,
2319 MKSYS_GENERICCOMPOSITE = 1,
2320 MKSYS_FILEMONIKER = 2,
2321 MKSYS_ANTIMONIKER = 3,
2322 MKSYS_ITEMMONIKER = 4,
2323 MKSYS_POINTERMONIKER = 5,
2324 MKSYS_CLASSMONIKER = 7
2325 } MKSYS;
2327 typedef enum tagMKREDUCE {
2328 MKRREDUCE_ONE = 3 << 16,
2329 MKRREDUCE_TOUSER = 2 << 16,
2330 MKRREDUCE_THROUGHUSER = 1 << 16,
2331 MKRREDUCE_ALL = 0
2332 } MKRREDUCE;
2334 /*****************************************************************************
2335 * IMoniker interface
2337 #ifndef __IMoniker_INTERFACE_DEFINED__
2338 #define __IMoniker_INTERFACE_DEFINED__
2340 DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2341 #if defined(__cplusplus) && !defined(CINTERFACE)
2342 struct IMoniker : public IPersistStream
2344 virtual HRESULT STDMETHODCALLTYPE BindToObject(
2345 IBindCtx* pbc,
2346 IMoniker* pmkToLeft,
2347 REFIID riidResult,
2348 void** ppvResult) = 0;
2350 virtual HRESULT STDMETHODCALLTYPE BindToStorage(
2351 IBindCtx* pbc,
2352 IMoniker* pmkToLeft,
2353 REFIID riid,
2354 void** ppvObj) = 0;
2356 virtual HRESULT STDMETHODCALLTYPE Reduce(
2357 IBindCtx* pbc,
2358 DWORD dwReduceHowFar,
2359 IMoniker** ppmkToLeft,
2360 IMoniker** ppmkReduced) = 0;
2362 virtual HRESULT STDMETHODCALLTYPE ComposeWith(
2363 IMoniker* pmkRight,
2364 BOOL fOnlyIfNotGeneric,
2365 IMoniker** ppmkComposite) = 0;
2367 virtual HRESULT STDMETHODCALLTYPE Enum(
2368 BOOL fForward,
2369 IEnumMoniker** ppenumMoniker) = 0;
2371 virtual HRESULT STDMETHODCALLTYPE IsEqual(
2372 IMoniker* pmkOtherMoniker) = 0;
2374 virtual HRESULT STDMETHODCALLTYPE Hash(
2375 DWORD* pdwHash) = 0;
2377 virtual HRESULT STDMETHODCALLTYPE IsRunning(
2378 IBindCtx* pbc,
2379 IMoniker* pmkToLeft,
2380 IMoniker* pmkNewlyRunning) = 0;
2382 virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
2383 IBindCtx* pbc,
2384 IMoniker* pmkToLeft,
2385 FILETIME* pFileTime) = 0;
2387 virtual HRESULT STDMETHODCALLTYPE Inverse(
2388 IMoniker** ppmk) = 0;
2390 virtual HRESULT STDMETHODCALLTYPE CommonPrefixWith(
2391 IMoniker* pmkOther,
2392 IMoniker** ppmkPrefix) = 0;
2394 virtual HRESULT STDMETHODCALLTYPE RelativePathTo(
2395 IMoniker* pmkOther,
2396 IMoniker** ppmkRelPath) = 0;
2398 virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
2399 IBindCtx* pbc,
2400 IMoniker* pmkToLeft,
2401 LPOLESTR* ppszDisplayName) = 0;
2403 virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
2404 IBindCtx* pbc,
2405 IMoniker* pmkToLeft,
2406 LPOLESTR pszDisplayName,
2407 ULONG* pchEaten,
2408 IMoniker** ppmkOut) = 0;
2410 virtual HRESULT STDMETHODCALLTYPE IsSystemMoniker(
2411 DWORD* pdwMksys) = 0;
2414 #else
2415 typedef struct IMonikerVtbl IMonikerVtbl;
2416 struct IMoniker {
2417 const IMonikerVtbl* lpVtbl;
2419 struct IMonikerVtbl {
2420 ICOM_MSVTABLE_COMPAT_FIELDS
2422 /*** IUnknown methods ***/
2423 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2424 IMoniker* This,
2425 REFIID riid,
2426 void** ppvObject);
2428 ULONG (STDMETHODCALLTYPE *AddRef)(
2429 IMoniker* This);
2431 ULONG (STDMETHODCALLTYPE *Release)(
2432 IMoniker* This);
2434 /*** IPersist methods ***/
2435 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2436 IMoniker* This,
2437 CLSID* pClassID);
2439 /*** IPersistStream methods ***/
2440 HRESULT (STDMETHODCALLTYPE *IsDirty)(
2441 IMoniker* This);
2443 HRESULT (STDMETHODCALLTYPE *Load)(
2444 IMoniker* This,
2445 IStream* pStm);
2447 HRESULT (STDMETHODCALLTYPE *Save)(
2448 IMoniker* This,
2449 IStream* pStm,
2450 BOOL fClearDirty);
2452 HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
2453 IMoniker* This,
2454 ULARGE_INTEGER* pcbSize);
2456 /*** IMoniker methods ***/
2457 HRESULT (STDMETHODCALLTYPE *BindToObject)(
2458 IMoniker* This,
2459 IBindCtx* pbc,
2460 IMoniker* pmkToLeft,
2461 REFIID riidResult,
2462 void** ppvResult);
2464 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
2465 IMoniker* This,
2466 IBindCtx* pbc,
2467 IMoniker* pmkToLeft,
2468 REFIID riid,
2469 void** ppvObj);
2471 HRESULT (STDMETHODCALLTYPE *Reduce)(
2472 IMoniker* This,
2473 IBindCtx* pbc,
2474 DWORD dwReduceHowFar,
2475 IMoniker** ppmkToLeft,
2476 IMoniker** ppmkReduced);
2478 HRESULT (STDMETHODCALLTYPE *ComposeWith)(
2479 IMoniker* This,
2480 IMoniker* pmkRight,
2481 BOOL fOnlyIfNotGeneric,
2482 IMoniker** ppmkComposite);
2484 HRESULT (STDMETHODCALLTYPE *Enum)(
2485 IMoniker* This,
2486 BOOL fForward,
2487 IEnumMoniker** ppenumMoniker);
2489 HRESULT (STDMETHODCALLTYPE *IsEqual)(
2490 IMoniker* This,
2491 IMoniker* pmkOtherMoniker);
2493 HRESULT (STDMETHODCALLTYPE *Hash)(
2494 IMoniker* This,
2495 DWORD* pdwHash);
2497 HRESULT (STDMETHODCALLTYPE *IsRunning)(
2498 IMoniker* This,
2499 IBindCtx* pbc,
2500 IMoniker* pmkToLeft,
2501 IMoniker* pmkNewlyRunning);
2503 HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
2504 IMoniker* This,
2505 IBindCtx* pbc,
2506 IMoniker* pmkToLeft,
2507 FILETIME* pFileTime);
2509 HRESULT (STDMETHODCALLTYPE *Inverse)(
2510 IMoniker* This,
2511 IMoniker** ppmk);
2513 HRESULT (STDMETHODCALLTYPE *CommonPrefixWith)(
2514 IMoniker* This,
2515 IMoniker* pmkOther,
2516 IMoniker** ppmkPrefix);
2518 HRESULT (STDMETHODCALLTYPE *RelativePathTo)(
2519 IMoniker* This,
2520 IMoniker* pmkOther,
2521 IMoniker** ppmkRelPath);
2523 HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
2524 IMoniker* This,
2525 IBindCtx* pbc,
2526 IMoniker* pmkToLeft,
2527 LPOLESTR* ppszDisplayName);
2529 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
2530 IMoniker* This,
2531 IBindCtx* pbc,
2532 IMoniker* pmkToLeft,
2533 LPOLESTR pszDisplayName,
2534 ULONG* pchEaten,
2535 IMoniker** ppmkOut);
2537 HRESULT (STDMETHODCALLTYPE *IsSystemMoniker)(
2538 IMoniker* This,
2539 DWORD* pdwMksys);
2543 /*** IUnknown methods ***/
2544 #define IMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2545 #define IMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
2546 #define IMoniker_Release(p) (p)->lpVtbl->Release(p)
2547 /*** IPersist methods ***/
2548 #define IMoniker_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2549 /*** IPersistStream methods ***/
2550 #define IMoniker_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2551 #define IMoniker_Load(p,a) (p)->lpVtbl->Load(p,a)
2552 #define IMoniker_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2553 #define IMoniker_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2554 /*** IMoniker methods ***/
2555 #define IMoniker_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
2556 #define IMoniker_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
2557 #define IMoniker_Reduce(p,a,b,c,d) (p)->lpVtbl->Reduce(p,a,b,c,d)
2558 #define IMoniker_ComposeWith(p,a,b,c) (p)->lpVtbl->ComposeWith(p,a,b,c)
2559 #define IMoniker_Enum(p,a,b) (p)->lpVtbl->Enum(p,a,b)
2560 #define IMoniker_IsEqual(p,a) (p)->lpVtbl->IsEqual(p,a)
2561 #define IMoniker_Hash(p,a) (p)->lpVtbl->Hash(p,a)
2562 #define IMoniker_IsRunning(p,a,b,c) (p)->lpVtbl->IsRunning(p,a,b,c)
2563 #define IMoniker_GetTimeOfLastChange(p,a,b,c) (p)->lpVtbl->GetTimeOfLastChange(p,a,b,c)
2564 #define IMoniker_Inverse(p,a) (p)->lpVtbl->Inverse(p,a)
2565 #define IMoniker_CommonPrefixWith(p,a,b) (p)->lpVtbl->CommonPrefixWith(p,a,b)
2566 #define IMoniker_RelativePathTo(p,a,b) (p)->lpVtbl->RelativePathTo(p,a,b)
2567 #define IMoniker_GetDisplayName(p,a,b,c) (p)->lpVtbl->GetDisplayName(p,a,b,c)
2568 #define IMoniker_ParseDisplayName(p,a,b,c,d,e) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e)
2569 #define IMoniker_IsSystemMoniker(p,a) (p)->lpVtbl->IsSystemMoniker(p,a)
2571 #endif
2573 #define IMoniker_METHODS \
2574 ICOM_MSVTABLE_COMPAT_FIELDS \
2575 /*** IUnknown methods ***/ \
2576 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2577 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2578 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2579 /*** IPersist methods ***/ \
2580 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
2581 /*** IPersistStream methods ***/ \
2582 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
2583 STDMETHOD_(HRESULT,Load)(THIS_ IStream* pStm) PURE; \
2584 STDMETHOD_(HRESULT,Save)(THIS_ IStream* pStm, BOOL fClearDirty) PURE; \
2585 STDMETHOD_(HRESULT,GetSizeMax)(THIS_ ULARGE_INTEGER* pcbSize) PURE; \
2586 /*** IMoniker methods ***/ \
2587 STDMETHOD_(HRESULT,BindToObject)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riidResult, void** ppvResult) PURE; \
2588 STDMETHOD_(HRESULT,BindToStorage)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, void** ppvObj) PURE; \
2589 STDMETHOD_(HRESULT,Reduce)(THIS_ IBindCtx* pbc, DWORD dwReduceHowFar, IMoniker** ppmkToLeft, IMoniker** ppmkReduced) PURE; \
2590 STDMETHOD_(HRESULT,ComposeWith)(THIS_ IMoniker* pmkRight, BOOL fOnlyIfNotGeneric, IMoniker** ppmkComposite) PURE; \
2591 STDMETHOD_(HRESULT,Enum)(THIS_ BOOL fForward, IEnumMoniker** ppenumMoniker) PURE; \
2592 STDMETHOD_(HRESULT,IsEqual)(THIS_ IMoniker* pmkOtherMoniker) PURE; \
2593 STDMETHOD_(HRESULT,Hash)(THIS_ DWORD* pdwHash) PURE; \
2594 STDMETHOD_(HRESULT,IsRunning)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, IMoniker* pmkNewlyRunning) PURE; \
2595 STDMETHOD_(HRESULT,GetTimeOfLastChange)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, FILETIME* pFileTime) PURE; \
2596 STDMETHOD_(HRESULT,Inverse)(THIS_ IMoniker** ppmk) PURE; \
2597 STDMETHOD_(HRESULT,CommonPrefixWith)(THIS_ IMoniker* pmkOther, IMoniker** ppmkPrefix) PURE; \
2598 STDMETHOD_(HRESULT,RelativePathTo)(THIS_ IMoniker* pmkOther, IMoniker** ppmkRelPath) PURE; \
2599 STDMETHOD_(HRESULT,GetDisplayName)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR* ppszDisplayName) PURE; \
2600 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR pszDisplayName, ULONG* pchEaten, IMoniker** ppmkOut) PURE; \
2601 STDMETHOD_(HRESULT,IsSystemMoniker)(THIS_ DWORD* pdwMksys) PURE;
2603 HRESULT CALLBACK IMoniker_RemoteBindToObject_Proxy(
2604 IMoniker* This,
2605 IBindCtx* pbc,
2606 IMoniker* pmkToLeft,
2607 REFIID riidResult,
2608 IUnknown** ppvResult);
2609 void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
2610 struct IRpcStubBuffer* This,
2611 struct IRpcChannelBuffer* pRpcChannelBuffer,
2612 PRPC_MESSAGE pRpcMessage,
2613 DWORD* pdwStubPhase);
2614 HRESULT CALLBACK IMoniker_BindToObject_Proxy(
2615 IMoniker* This,
2616 IBindCtx* pbc,
2617 IMoniker* pmkToLeft,
2618 REFIID riidResult,
2619 void** ppvResult);
2620 HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
2621 IMoniker* This,
2622 IBindCtx* pbc,
2623 IMoniker* pmkToLeft,
2624 REFIID riidResult,
2625 IUnknown** ppvResult);
2626 HRESULT CALLBACK IMoniker_RemoteBindToStorage_Proxy(
2627 IMoniker* This,
2628 IBindCtx* pbc,
2629 IMoniker* pmkToLeft,
2630 REFIID riid,
2631 IUnknown** ppvObj);
2632 void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
2633 struct IRpcStubBuffer* This,
2634 struct IRpcChannelBuffer* pRpcChannelBuffer,
2635 PRPC_MESSAGE pRpcMessage,
2636 DWORD* pdwStubPhase);
2637 HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
2638 IMoniker* This,
2639 IBindCtx* pbc,
2640 IMoniker* pmkToLeft,
2641 REFIID riid,
2642 void** ppvObj);
2643 HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
2644 IMoniker* This,
2645 IBindCtx* pbc,
2646 IMoniker* pmkToLeft,
2647 REFIID riid,
2648 IUnknown** ppvObj);
2649 HRESULT CALLBACK IMoniker_Reduce_Proxy(
2650 IMoniker* This,
2651 IBindCtx* pbc,
2652 DWORD dwReduceHowFar,
2653 IMoniker** ppmkToLeft,
2654 IMoniker** ppmkReduced);
2655 void __RPC_STUB IMoniker_Reduce_Stub(
2656 struct IRpcStubBuffer* This,
2657 struct IRpcChannelBuffer* pRpcChannelBuffer,
2658 PRPC_MESSAGE pRpcMessage,
2659 DWORD* pdwStubPhase);
2660 HRESULT CALLBACK IMoniker_ComposeWith_Proxy(
2661 IMoniker* This,
2662 IMoniker* pmkRight,
2663 BOOL fOnlyIfNotGeneric,
2664 IMoniker** ppmkComposite);
2665 void __RPC_STUB IMoniker_ComposeWith_Stub(
2666 struct IRpcStubBuffer* This,
2667 struct IRpcChannelBuffer* pRpcChannelBuffer,
2668 PRPC_MESSAGE pRpcMessage,
2669 DWORD* pdwStubPhase);
2670 HRESULT CALLBACK IMoniker_Enum_Proxy(
2671 IMoniker* This,
2672 BOOL fForward,
2673 IEnumMoniker** ppenumMoniker);
2674 void __RPC_STUB IMoniker_Enum_Stub(
2675 struct IRpcStubBuffer* This,
2676 struct IRpcChannelBuffer* pRpcChannelBuffer,
2677 PRPC_MESSAGE pRpcMessage,
2678 DWORD* pdwStubPhase);
2679 HRESULT CALLBACK IMoniker_IsEqual_Proxy(
2680 IMoniker* This,
2681 IMoniker* pmkOtherMoniker);
2682 void __RPC_STUB IMoniker_IsEqual_Stub(
2683 struct IRpcStubBuffer* This,
2684 struct IRpcChannelBuffer* pRpcChannelBuffer,
2685 PRPC_MESSAGE pRpcMessage,
2686 DWORD* pdwStubPhase);
2687 HRESULT CALLBACK IMoniker_Hash_Proxy(
2688 IMoniker* This,
2689 DWORD* pdwHash);
2690 void __RPC_STUB IMoniker_Hash_Stub(
2691 struct IRpcStubBuffer* This,
2692 struct IRpcChannelBuffer* pRpcChannelBuffer,
2693 PRPC_MESSAGE pRpcMessage,
2694 DWORD* pdwStubPhase);
2695 HRESULT CALLBACK IMoniker_IsRunning_Proxy(
2696 IMoniker* This,
2697 IBindCtx* pbc,
2698 IMoniker* pmkToLeft,
2699 IMoniker* pmkNewlyRunning);
2700 void __RPC_STUB IMoniker_IsRunning_Stub(
2701 struct IRpcStubBuffer* This,
2702 struct IRpcChannelBuffer* pRpcChannelBuffer,
2703 PRPC_MESSAGE pRpcMessage,
2704 DWORD* pdwStubPhase);
2705 HRESULT CALLBACK IMoniker_GetTimeOfLastChange_Proxy(
2706 IMoniker* This,
2707 IBindCtx* pbc,
2708 IMoniker* pmkToLeft,
2709 FILETIME* pFileTime);
2710 void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
2711 struct IRpcStubBuffer* This,
2712 struct IRpcChannelBuffer* pRpcChannelBuffer,
2713 PRPC_MESSAGE pRpcMessage,
2714 DWORD* pdwStubPhase);
2715 HRESULT CALLBACK IMoniker_Inverse_Proxy(
2716 IMoniker* This,
2717 IMoniker** ppmk);
2718 void __RPC_STUB IMoniker_Inverse_Stub(
2719 struct IRpcStubBuffer* This,
2720 struct IRpcChannelBuffer* pRpcChannelBuffer,
2721 PRPC_MESSAGE pRpcMessage,
2722 DWORD* pdwStubPhase);
2723 HRESULT CALLBACK IMoniker_CommonPrefixWith_Proxy(
2724 IMoniker* This,
2725 IMoniker* pmkOther,
2726 IMoniker** ppmkPrefix);
2727 void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
2728 struct IRpcStubBuffer* This,
2729 struct IRpcChannelBuffer* pRpcChannelBuffer,
2730 PRPC_MESSAGE pRpcMessage,
2731 DWORD* pdwStubPhase);
2732 HRESULT CALLBACK IMoniker_RelativePathTo_Proxy(
2733 IMoniker* This,
2734 IMoniker* pmkOther,
2735 IMoniker** ppmkRelPath);
2736 void __RPC_STUB IMoniker_RelativePathTo_Stub(
2737 struct IRpcStubBuffer* This,
2738 struct IRpcChannelBuffer* pRpcChannelBuffer,
2739 PRPC_MESSAGE pRpcMessage,
2740 DWORD* pdwStubPhase);
2741 HRESULT CALLBACK IMoniker_GetDisplayName_Proxy(
2742 IMoniker* This,
2743 IBindCtx* pbc,
2744 IMoniker* pmkToLeft,
2745 LPOLESTR* ppszDisplayName);
2746 void __RPC_STUB IMoniker_GetDisplayName_Stub(
2747 struct IRpcStubBuffer* This,
2748 struct IRpcChannelBuffer* pRpcChannelBuffer,
2749 PRPC_MESSAGE pRpcMessage,
2750 DWORD* pdwStubPhase);
2751 HRESULT CALLBACK IMoniker_ParseDisplayName_Proxy(
2752 IMoniker* This,
2753 IBindCtx* pbc,
2754 IMoniker* pmkToLeft,
2755 LPOLESTR pszDisplayName,
2756 ULONG* pchEaten,
2757 IMoniker** ppmkOut);
2758 void __RPC_STUB IMoniker_ParseDisplayName_Stub(
2759 struct IRpcStubBuffer* This,
2760 struct IRpcChannelBuffer* pRpcChannelBuffer,
2761 PRPC_MESSAGE pRpcMessage,
2762 DWORD* pdwStubPhase);
2763 HRESULT CALLBACK IMoniker_IsSystemMoniker_Proxy(
2764 IMoniker* This,
2765 DWORD* pdwMksys);
2766 void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
2767 struct IRpcStubBuffer* This,
2768 struct IRpcChannelBuffer* pRpcChannelBuffer,
2769 PRPC_MESSAGE pRpcMessage,
2770 DWORD* pdwStubPhase);
2772 #endif /* __IMoniker_INTERFACE_DEFINED__ */
2774 #ifndef __IROTData_FWD_DEFINED__
2775 #define __IROTData_FWD_DEFINED__
2776 typedef struct IROTData IROTData;
2777 #endif
2779 /*****************************************************************************
2780 * IROTData interface
2782 #ifndef __IROTData_INTERFACE_DEFINED__
2783 #define __IROTData_INTERFACE_DEFINED__
2785 DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
2786 #if defined(__cplusplus) && !defined(CINTERFACE)
2787 struct IROTData : public IUnknown
2789 virtual HRESULT STDMETHODCALLTYPE GetComparisonData(
2790 byte* pbData,
2791 ULONG cbMax,
2792 ULONG* pcbData) = 0;
2795 #else
2796 typedef struct IROTDataVtbl IROTDataVtbl;
2797 struct IROTData {
2798 const IROTDataVtbl* lpVtbl;
2800 struct IROTDataVtbl {
2801 ICOM_MSVTABLE_COMPAT_FIELDS
2803 /*** IUnknown methods ***/
2804 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2805 IROTData* This,
2806 REFIID riid,
2807 void** ppvObject);
2809 ULONG (STDMETHODCALLTYPE *AddRef)(
2810 IROTData* This);
2812 ULONG (STDMETHODCALLTYPE *Release)(
2813 IROTData* This);
2815 /*** IROTData methods ***/
2816 HRESULT (STDMETHODCALLTYPE *GetComparisonData)(
2817 IROTData* This,
2818 byte* pbData,
2819 ULONG cbMax,
2820 ULONG* pcbData);
2824 /*** IUnknown methods ***/
2825 #define IROTData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2826 #define IROTData_AddRef(p) (p)->lpVtbl->AddRef(p)
2827 #define IROTData_Release(p) (p)->lpVtbl->Release(p)
2828 /*** IROTData methods ***/
2829 #define IROTData_GetComparisonData(p,a,b,c) (p)->lpVtbl->GetComparisonData(p,a,b,c)
2831 #endif
2833 #define IROTData_METHODS \
2834 ICOM_MSVTABLE_COMPAT_FIELDS \
2835 /*** IUnknown methods ***/ \
2836 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2837 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2838 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2839 /*** IROTData methods ***/ \
2840 STDMETHOD_(HRESULT,GetComparisonData)(THIS_ byte* pbData, ULONG cbMax, ULONG* pcbData) PURE;
2842 HRESULT CALLBACK IROTData_GetComparisonData_Proxy(
2843 IROTData* This,
2844 byte* pbData,
2845 ULONG cbMax,
2846 ULONG* pcbData);
2847 void __RPC_STUB IROTData_GetComparisonData_Stub(
2848 struct IRpcStubBuffer* This,
2849 struct IRpcChannelBuffer* pRpcChannelBuffer,
2850 PRPC_MESSAGE pRpcMessage,
2851 DWORD* pdwStubPhase);
2853 #endif /* __IROTData_INTERFACE_DEFINED__ */
2855 typedef IEnumString *LPENUMSTRING;
2857 /*****************************************************************************
2858 * IEnumString interface
2860 #ifndef __IEnumString_INTERFACE_DEFINED__
2861 #define __IEnumString_INTERFACE_DEFINED__
2863 DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2864 #if defined(__cplusplus) && !defined(CINTERFACE)
2865 struct IEnumString : public IUnknown
2867 virtual HRESULT STDMETHODCALLTYPE Next(
2868 ULONG celt,
2869 LPOLESTR* rgelt,
2870 ULONG* pceltFetched) = 0;
2872 virtual HRESULT STDMETHODCALLTYPE Skip(
2873 ULONG celt) = 0;
2875 virtual HRESULT STDMETHODCALLTYPE Reset(
2876 ) = 0;
2878 virtual HRESULT STDMETHODCALLTYPE Clone(
2879 IEnumString** ppenum) = 0;
2882 #else
2883 typedef struct IEnumStringVtbl IEnumStringVtbl;
2884 struct IEnumString {
2885 const IEnumStringVtbl* lpVtbl;
2887 struct IEnumStringVtbl {
2888 ICOM_MSVTABLE_COMPAT_FIELDS
2890 /*** IUnknown methods ***/
2891 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2892 IEnumString* This,
2893 REFIID riid,
2894 void** ppvObject);
2896 ULONG (STDMETHODCALLTYPE *AddRef)(
2897 IEnumString* This);
2899 ULONG (STDMETHODCALLTYPE *Release)(
2900 IEnumString* This);
2902 /*** IEnumString methods ***/
2903 HRESULT (STDMETHODCALLTYPE *Next)(
2904 IEnumString* This,
2905 ULONG celt,
2906 LPOLESTR* rgelt,
2907 ULONG* pceltFetched);
2909 HRESULT (STDMETHODCALLTYPE *Skip)(
2910 IEnumString* This,
2911 ULONG celt);
2913 HRESULT (STDMETHODCALLTYPE *Reset)(
2914 IEnumString* This);
2916 HRESULT (STDMETHODCALLTYPE *Clone)(
2917 IEnumString* This,
2918 IEnumString** ppenum);
2922 /*** IUnknown methods ***/
2923 #define IEnumString_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2924 #define IEnumString_AddRef(p) (p)->lpVtbl->AddRef(p)
2925 #define IEnumString_Release(p) (p)->lpVtbl->Release(p)
2926 /*** IEnumString methods ***/
2927 #define IEnumString_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
2928 #define IEnumString_Skip(p,a) (p)->lpVtbl->Skip(p,a)
2929 #define IEnumString_Reset(p) (p)->lpVtbl->Reset(p)
2930 #define IEnumString_Clone(p,a) (p)->lpVtbl->Clone(p,a)
2932 #endif
2934 #define IEnumString_METHODS \
2935 ICOM_MSVTABLE_COMPAT_FIELDS \
2936 /*** IUnknown methods ***/ \
2937 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2938 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2939 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2940 /*** IEnumString methods ***/ \
2941 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, LPOLESTR* rgelt, ULONG* pceltFetched) PURE; \
2942 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
2943 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
2944 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumString** ppenum) PURE;
2946 HRESULT CALLBACK IEnumString_RemoteNext_Proxy(
2947 IEnumString* This,
2948 ULONG celt,
2949 LPOLESTR* rgelt,
2950 ULONG* pceltFetched);
2951 void __RPC_STUB IEnumString_RemoteNext_Stub(
2952 struct IRpcStubBuffer* This,
2953 struct IRpcChannelBuffer* pRpcChannelBuffer,
2954 PRPC_MESSAGE pRpcMessage,
2955 DWORD* pdwStubPhase);
2956 HRESULT CALLBACK IEnumString_Next_Proxy(
2957 IEnumString* This,
2958 ULONG celt,
2959 LPOLESTR* rgelt,
2960 ULONG* pceltFetched);
2961 HRESULT __RPC_STUB IEnumString_Next_Stub(
2962 IEnumString* This,
2963 ULONG celt,
2964 LPOLESTR* rgelt,
2965 ULONG* pceltFetched);
2966 HRESULT CALLBACK IEnumString_Skip_Proxy(
2967 IEnumString* This,
2968 ULONG celt);
2969 void __RPC_STUB IEnumString_Skip_Stub(
2970 struct IRpcStubBuffer* This,
2971 struct IRpcChannelBuffer* pRpcChannelBuffer,
2972 PRPC_MESSAGE pRpcMessage,
2973 DWORD* pdwStubPhase);
2974 HRESULT CALLBACK IEnumString_Reset_Proxy(
2975 IEnumString* This);
2976 void __RPC_STUB IEnumString_Reset_Stub(
2977 struct IRpcStubBuffer* This,
2978 struct IRpcChannelBuffer* pRpcChannelBuffer,
2979 PRPC_MESSAGE pRpcMessage,
2980 DWORD* pdwStubPhase);
2981 HRESULT CALLBACK IEnumString_Clone_Proxy(
2982 IEnumString* This,
2983 IEnumString** ppenum);
2984 void __RPC_STUB IEnumString_Clone_Stub(
2985 struct IRpcStubBuffer* This,
2986 struct IRpcChannelBuffer* pRpcChannelBuffer,
2987 PRPC_MESSAGE pRpcMessage,
2988 DWORD* pdwStubPhase);
2990 #endif /* __IEnumString_INTERFACE_DEFINED__ */
2992 #ifndef __IClassActivator_FWD_DEFINED__
2993 #define __IClassActivator_FWD_DEFINED__
2994 typedef struct IClassActivator IClassActivator;
2995 #endif
2997 /*****************************************************************************
2998 * IClassActivator interface
3000 #ifndef __IClassActivator_INTERFACE_DEFINED__
3001 #define __IClassActivator_INTERFACE_DEFINED__
3003 DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3004 #if defined(__cplusplus) && !defined(CINTERFACE)
3005 struct IClassActivator : public IUnknown
3007 virtual HRESULT STDMETHODCALLTYPE GetClassObject(
3008 REFCLSID rclsid,
3009 DWORD dwClassContext,
3010 LCID locale,
3011 REFIID riid,
3012 void** ppv) = 0;
3015 #else
3016 typedef struct IClassActivatorVtbl IClassActivatorVtbl;
3017 struct IClassActivator {
3018 const IClassActivatorVtbl* lpVtbl;
3020 struct IClassActivatorVtbl {
3021 ICOM_MSVTABLE_COMPAT_FIELDS
3023 /*** IUnknown methods ***/
3024 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3025 IClassActivator* This,
3026 REFIID riid,
3027 void** ppvObject);
3029 ULONG (STDMETHODCALLTYPE *AddRef)(
3030 IClassActivator* This);
3032 ULONG (STDMETHODCALLTYPE *Release)(
3033 IClassActivator* This);
3035 /*** IClassActivator methods ***/
3036 HRESULT (STDMETHODCALLTYPE *GetClassObject)(
3037 IClassActivator* This,
3038 REFCLSID rclsid,
3039 DWORD dwClassContext,
3040 LCID locale,
3041 REFIID riid,
3042 void** ppv);
3046 /*** IUnknown methods ***/
3047 #define IClassActivator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3048 #define IClassActivator_AddRef(p) (p)->lpVtbl->AddRef(p)
3049 #define IClassActivator_Release(p) (p)->lpVtbl->Release(p)
3050 /*** IClassActivator methods ***/
3051 #define IClassActivator_GetClassObject(p,a,b,c,d,e) (p)->lpVtbl->GetClassObject(p,a,b,c,d,e)
3053 #endif
3055 #define IClassActivator_METHODS \
3056 ICOM_MSVTABLE_COMPAT_FIELDS \
3057 /*** IUnknown methods ***/ \
3058 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3059 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3060 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3061 /*** IClassActivator methods ***/ \
3062 STDMETHOD_(HRESULT,GetClassObject)(THIS_ REFCLSID rclsid, DWORD dwClassContext, LCID locale, REFIID riid, void** ppv) PURE;
3064 HRESULT CALLBACK IClassActivator_GetClassObject_Proxy(
3065 IClassActivator* This,
3066 REFCLSID rclsid,
3067 DWORD dwClassContext,
3068 LCID locale,
3069 REFIID riid,
3070 void** ppv);
3071 void __RPC_STUB IClassActivator_GetClassObject_Stub(
3072 struct IRpcStubBuffer* This,
3073 struct IRpcChannelBuffer* pRpcChannelBuffer,
3074 PRPC_MESSAGE pRpcMessage,
3075 DWORD* pdwStubPhase);
3077 #endif /* __IClassActivator_INTERFACE_DEFINED__ */
3079 #ifndef __ISequentialStream_FWD_DEFINED__
3080 #define __ISequentialStream_FWD_DEFINED__
3081 typedef struct ISequentialStream ISequentialStream;
3082 #endif
3084 /*****************************************************************************
3085 * ISequentialStream interface
3087 #ifndef __ISequentialStream_INTERFACE_DEFINED__
3088 #define __ISequentialStream_INTERFACE_DEFINED__
3090 DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
3091 #if defined(__cplusplus) && !defined(CINTERFACE)
3092 struct ISequentialStream : public IUnknown
3094 virtual HRESULT STDMETHODCALLTYPE Read(
3095 void* pv,
3096 ULONG cb,
3097 ULONG* pcbRead) = 0;
3099 virtual HRESULT STDMETHODCALLTYPE Write(
3100 const void* pv,
3101 ULONG cb,
3102 ULONG* pcbWritten) = 0;
3105 #else
3106 typedef struct ISequentialStreamVtbl ISequentialStreamVtbl;
3107 struct ISequentialStream {
3108 const ISequentialStreamVtbl* lpVtbl;
3110 struct ISequentialStreamVtbl {
3111 ICOM_MSVTABLE_COMPAT_FIELDS
3113 /*** IUnknown methods ***/
3114 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3115 ISequentialStream* This,
3116 REFIID riid,
3117 void** ppvObject);
3119 ULONG (STDMETHODCALLTYPE *AddRef)(
3120 ISequentialStream* This);
3122 ULONG (STDMETHODCALLTYPE *Release)(
3123 ISequentialStream* This);
3125 /*** ISequentialStream methods ***/
3126 HRESULT (STDMETHODCALLTYPE *Read)(
3127 ISequentialStream* This,
3128 void* pv,
3129 ULONG cb,
3130 ULONG* pcbRead);
3132 HRESULT (STDMETHODCALLTYPE *Write)(
3133 ISequentialStream* This,
3134 const void* pv,
3135 ULONG cb,
3136 ULONG* pcbWritten);
3140 /*** IUnknown methods ***/
3141 #define ISequentialStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3142 #define ISequentialStream_AddRef(p) (p)->lpVtbl->AddRef(p)
3143 #define ISequentialStream_Release(p) (p)->lpVtbl->Release(p)
3144 /*** ISequentialStream methods ***/
3145 #define ISequentialStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3146 #define ISequentialStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3148 #endif
3150 #define ISequentialStream_METHODS \
3151 ICOM_MSVTABLE_COMPAT_FIELDS \
3152 /*** IUnknown methods ***/ \
3153 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3154 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3155 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3156 /*** ISequentialStream methods ***/ \
3157 STDMETHOD_(HRESULT,Read)(THIS_ void* pv, ULONG cb, ULONG* pcbRead) PURE; \
3158 STDMETHOD_(HRESULT,Write)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE;
3160 HRESULT CALLBACK ISequentialStream_RemoteRead_Proxy(
3161 ISequentialStream* This,
3162 byte* pv,
3163 ULONG cb,
3164 ULONG* pcbRead);
3165 void __RPC_STUB ISequentialStream_RemoteRead_Stub(
3166 struct IRpcStubBuffer* This,
3167 struct IRpcChannelBuffer* pRpcChannelBuffer,
3168 PRPC_MESSAGE pRpcMessage,
3169 DWORD* pdwStubPhase);
3170 HRESULT CALLBACK ISequentialStream_Read_Proxy(
3171 ISequentialStream* This,
3172 void* pv,
3173 ULONG cb,
3174 ULONG* pcbRead);
3175 HRESULT __RPC_STUB ISequentialStream_Read_Stub(
3176 ISequentialStream* This,
3177 byte* pv,
3178 ULONG cb,
3179 ULONG* pcbRead);
3180 HRESULT CALLBACK ISequentialStream_RemoteWrite_Proxy(
3181 ISequentialStream* This,
3182 const byte* pv,
3183 ULONG cb,
3184 ULONG* pcbWritten);
3185 void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
3186 struct IRpcStubBuffer* This,
3187 struct IRpcChannelBuffer* pRpcChannelBuffer,
3188 PRPC_MESSAGE pRpcMessage,
3189 DWORD* pdwStubPhase);
3190 HRESULT CALLBACK ISequentialStream_Write_Proxy(
3191 ISequentialStream* This,
3192 const void* pv,
3193 ULONG cb,
3194 ULONG* pcbWritten);
3195 HRESULT __RPC_STUB ISequentialStream_Write_Stub(
3196 ISequentialStream* This,
3197 const byte* pv,
3198 ULONG cb,
3199 ULONG* pcbWritten);
3201 #endif /* __ISequentialStream_INTERFACE_DEFINED__ */
3203 typedef IStream *LPSTREAM;
3205 typedef struct tagSTATSTG {
3206 LPOLESTR pwcsName;
3207 DWORD type;
3208 ULARGE_INTEGER cbSize;
3209 FILETIME mtime;
3210 FILETIME ctime;
3211 FILETIME atime;
3212 DWORD grfMode;
3213 DWORD grfLocksSupported;
3214 CLSID clsid;
3215 DWORD grfStateBits;
3216 DWORD reserved;
3217 } STATSTG;
3219 typedef enum tagSTGTY {
3220 STGTY_STORAGE = 1,
3221 STGTY_STREAM = 2,
3222 STGTY_LOCKBYTES = 3,
3223 STGTY_PROPERTY = 4
3224 } STGTY;
3226 typedef enum tagSTREAM_SEEK {
3227 STREAM_SEEK_SET = 0,
3228 STREAM_SEEK_CUR = 1,
3229 STREAM_SEEK_END = 2
3230 } STREAM_SEEK;
3232 #undef LOCK_MAND
3233 #undef LOCK_READ
3234 #undef LOCK_WRITE
3235 #undef LOCK_RW
3236 typedef enum tagLOCKTYPE {
3237 LOCK_WRITE = 1,
3238 LOCK_EXCLUSIVE = 2,
3239 LOCK_ONLYONCE = 4
3240 } LOCKTYPE;
3242 /*****************************************************************************
3243 * IStream interface
3245 #ifndef __IStream_INTERFACE_DEFINED__
3246 #define __IStream_INTERFACE_DEFINED__
3248 DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3249 #if defined(__cplusplus) && !defined(CINTERFACE)
3250 struct IStream : public ISequentialStream
3252 virtual HRESULT STDMETHODCALLTYPE Seek(
3253 LARGE_INTEGER dlibMove,
3254 DWORD dwOrigin,
3255 ULARGE_INTEGER* plibNewPosition) = 0;
3257 virtual HRESULT STDMETHODCALLTYPE SetSize(
3258 ULARGE_INTEGER libNewSize) = 0;
3260 virtual HRESULT STDMETHODCALLTYPE CopyTo(
3261 IStream* pstm,
3262 ULARGE_INTEGER cb,
3263 ULARGE_INTEGER* pcbRead,
3264 ULARGE_INTEGER* pcbWritten) = 0;
3266 virtual HRESULT STDMETHODCALLTYPE Commit(
3267 DWORD grfCommitFlags) = 0;
3269 virtual HRESULT STDMETHODCALLTYPE Revert(
3270 ) = 0;
3272 virtual HRESULT STDMETHODCALLTYPE LockRegion(
3273 ULARGE_INTEGER libOffset,
3274 ULARGE_INTEGER cb,
3275 DWORD dwLockType) = 0;
3277 virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
3278 ULARGE_INTEGER libOffset,
3279 ULARGE_INTEGER cb,
3280 DWORD dwLockType) = 0;
3282 virtual HRESULT STDMETHODCALLTYPE Stat(
3283 STATSTG* pstatstg,
3284 DWORD grfStatFlag) = 0;
3286 virtual HRESULT STDMETHODCALLTYPE Clone(
3287 IStream** ppstm) = 0;
3290 #else
3291 typedef struct IStreamVtbl IStreamVtbl;
3292 struct IStream {
3293 const IStreamVtbl* lpVtbl;
3295 struct IStreamVtbl {
3296 ICOM_MSVTABLE_COMPAT_FIELDS
3298 /*** IUnknown methods ***/
3299 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3300 IStream* This,
3301 REFIID riid,
3302 void** ppvObject);
3304 ULONG (STDMETHODCALLTYPE *AddRef)(
3305 IStream* This);
3307 ULONG (STDMETHODCALLTYPE *Release)(
3308 IStream* This);
3310 /*** ISequentialStream methods ***/
3311 HRESULT (STDMETHODCALLTYPE *Read)(
3312 IStream* This,
3313 void* pv,
3314 ULONG cb,
3315 ULONG* pcbRead);
3317 HRESULT (STDMETHODCALLTYPE *Write)(
3318 IStream* This,
3319 const void* pv,
3320 ULONG cb,
3321 ULONG* pcbWritten);
3323 /*** IStream methods ***/
3324 HRESULT (STDMETHODCALLTYPE *Seek)(
3325 IStream* This,
3326 LARGE_INTEGER dlibMove,
3327 DWORD dwOrigin,
3328 ULARGE_INTEGER* plibNewPosition);
3330 HRESULT (STDMETHODCALLTYPE *SetSize)(
3331 IStream* This,
3332 ULARGE_INTEGER libNewSize);
3334 HRESULT (STDMETHODCALLTYPE *CopyTo)(
3335 IStream* This,
3336 IStream* pstm,
3337 ULARGE_INTEGER cb,
3338 ULARGE_INTEGER* pcbRead,
3339 ULARGE_INTEGER* pcbWritten);
3341 HRESULT (STDMETHODCALLTYPE *Commit)(
3342 IStream* This,
3343 DWORD grfCommitFlags);
3345 HRESULT (STDMETHODCALLTYPE *Revert)(
3346 IStream* This);
3348 HRESULT (STDMETHODCALLTYPE *LockRegion)(
3349 IStream* This,
3350 ULARGE_INTEGER libOffset,
3351 ULARGE_INTEGER cb,
3352 DWORD dwLockType);
3354 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
3355 IStream* This,
3356 ULARGE_INTEGER libOffset,
3357 ULARGE_INTEGER cb,
3358 DWORD dwLockType);
3360 HRESULT (STDMETHODCALLTYPE *Stat)(
3361 IStream* This,
3362 STATSTG* pstatstg,
3363 DWORD grfStatFlag);
3365 HRESULT (STDMETHODCALLTYPE *Clone)(
3366 IStream* This,
3367 IStream** ppstm);
3371 /*** IUnknown methods ***/
3372 #define IStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3373 #define IStream_AddRef(p) (p)->lpVtbl->AddRef(p)
3374 #define IStream_Release(p) (p)->lpVtbl->Release(p)
3375 /*** ISequentialStream methods ***/
3376 #define IStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3377 #define IStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3378 /*** IStream methods ***/
3379 #define IStream_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
3380 #define IStream_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
3381 #define IStream_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3382 #define IStream_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3383 #define IStream_Revert(p) (p)->lpVtbl->Revert(p)
3384 #define IStream_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
3385 #define IStream_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
3386 #define IStream_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3387 #define IStream_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3389 #endif
3391 #define IStream_METHODS \
3392 ICOM_MSVTABLE_COMPAT_FIELDS \
3393 /*** IUnknown methods ***/ \
3394 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3395 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3396 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3397 /*** ISequentialStream methods ***/ \
3398 STDMETHOD_(HRESULT,Read)(THIS_ void* pv, ULONG cb, ULONG* pcbRead) PURE; \
3399 STDMETHOD_(HRESULT,Write)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
3400 /*** IStream methods ***/ \
3401 STDMETHOD_(HRESULT,Seek)(THIS_ LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition) PURE; \
3402 STDMETHOD_(HRESULT,SetSize)(THIS_ ULARGE_INTEGER libNewSize) PURE; \
3403 STDMETHOD_(HRESULT,CopyTo)(THIS_ IStream* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten) PURE; \
3404 STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
3405 STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
3406 STDMETHOD_(HRESULT,LockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
3407 STDMETHOD_(HRESULT,UnlockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
3408 STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE; \
3409 STDMETHOD_(HRESULT,Clone)(THIS_ IStream** ppstm) PURE;
3411 HRESULT CALLBACK IStream_RemoteSeek_Proxy(
3412 IStream* This,
3413 LARGE_INTEGER dlibMove,
3414 DWORD dwOrigin,
3415 ULARGE_INTEGER* plibNewPosition);
3416 void __RPC_STUB IStream_RemoteSeek_Stub(
3417 struct IRpcStubBuffer* This,
3418 struct IRpcChannelBuffer* pRpcChannelBuffer,
3419 PRPC_MESSAGE pRpcMessage,
3420 DWORD* pdwStubPhase);
3421 HRESULT CALLBACK IStream_Seek_Proxy(
3422 IStream* This,
3423 LARGE_INTEGER dlibMove,
3424 DWORD dwOrigin,
3425 ULARGE_INTEGER* plibNewPosition);
3426 HRESULT __RPC_STUB IStream_Seek_Stub(
3427 IStream* This,
3428 LARGE_INTEGER dlibMove,
3429 DWORD dwOrigin,
3430 ULARGE_INTEGER* plibNewPosition);
3431 HRESULT CALLBACK IStream_SetSize_Proxy(
3432 IStream* This,
3433 ULARGE_INTEGER libNewSize);
3434 void __RPC_STUB IStream_SetSize_Stub(
3435 struct IRpcStubBuffer* This,
3436 struct IRpcChannelBuffer* pRpcChannelBuffer,
3437 PRPC_MESSAGE pRpcMessage,
3438 DWORD* pdwStubPhase);
3439 HRESULT CALLBACK IStream_RemoteCopyTo_Proxy(
3440 IStream* This,
3441 IStream* pstm,
3442 ULARGE_INTEGER cb,
3443 ULARGE_INTEGER* pcbRead,
3444 ULARGE_INTEGER* pcbWritten);
3445 void __RPC_STUB IStream_RemoteCopyTo_Stub(
3446 struct IRpcStubBuffer* This,
3447 struct IRpcChannelBuffer* pRpcChannelBuffer,
3448 PRPC_MESSAGE pRpcMessage,
3449 DWORD* pdwStubPhase);
3450 HRESULT CALLBACK IStream_CopyTo_Proxy(
3451 IStream* This,
3452 IStream* pstm,
3453 ULARGE_INTEGER cb,
3454 ULARGE_INTEGER* pcbRead,
3455 ULARGE_INTEGER* pcbWritten);
3456 HRESULT __RPC_STUB IStream_CopyTo_Stub(
3457 IStream* This,
3458 IStream* pstm,
3459 ULARGE_INTEGER cb,
3460 ULARGE_INTEGER* pcbRead,
3461 ULARGE_INTEGER* pcbWritten);
3462 HRESULT CALLBACK IStream_Commit_Proxy(
3463 IStream* This,
3464 DWORD grfCommitFlags);
3465 void __RPC_STUB IStream_Commit_Stub(
3466 struct IRpcStubBuffer* This,
3467 struct IRpcChannelBuffer* pRpcChannelBuffer,
3468 PRPC_MESSAGE pRpcMessage,
3469 DWORD* pdwStubPhase);
3470 HRESULT CALLBACK IStream_Revert_Proxy(
3471 IStream* This);
3472 void __RPC_STUB IStream_Revert_Stub(
3473 struct IRpcStubBuffer* This,
3474 struct IRpcChannelBuffer* pRpcChannelBuffer,
3475 PRPC_MESSAGE pRpcMessage,
3476 DWORD* pdwStubPhase);
3477 HRESULT CALLBACK IStream_LockRegion_Proxy(
3478 IStream* This,
3479 ULARGE_INTEGER libOffset,
3480 ULARGE_INTEGER cb,
3481 DWORD dwLockType);
3482 void __RPC_STUB IStream_LockRegion_Stub(
3483 struct IRpcStubBuffer* This,
3484 struct IRpcChannelBuffer* pRpcChannelBuffer,
3485 PRPC_MESSAGE pRpcMessage,
3486 DWORD* pdwStubPhase);
3487 HRESULT CALLBACK IStream_UnlockRegion_Proxy(
3488 IStream* This,
3489 ULARGE_INTEGER libOffset,
3490 ULARGE_INTEGER cb,
3491 DWORD dwLockType);
3492 void __RPC_STUB IStream_UnlockRegion_Stub(
3493 struct IRpcStubBuffer* This,
3494 struct IRpcChannelBuffer* pRpcChannelBuffer,
3495 PRPC_MESSAGE pRpcMessage,
3496 DWORD* pdwStubPhase);
3497 HRESULT CALLBACK IStream_Stat_Proxy(
3498 IStream* This,
3499 STATSTG* pstatstg,
3500 DWORD grfStatFlag);
3501 void __RPC_STUB IStream_Stat_Stub(
3502 struct IRpcStubBuffer* This,
3503 struct IRpcChannelBuffer* pRpcChannelBuffer,
3504 PRPC_MESSAGE pRpcMessage,
3505 DWORD* pdwStubPhase);
3506 HRESULT CALLBACK IStream_Clone_Proxy(
3507 IStream* This,
3508 IStream** ppstm);
3509 void __RPC_STUB IStream_Clone_Stub(
3510 struct IRpcStubBuffer* This,
3511 struct IRpcChannelBuffer* pRpcChannelBuffer,
3512 PRPC_MESSAGE pRpcMessage,
3513 DWORD* pdwStubPhase);
3515 #endif /* __IStream_INTERFACE_DEFINED__ */
3517 #ifndef __IEnumSTATSTG_FWD_DEFINED__
3518 #define __IEnumSTATSTG_FWD_DEFINED__
3519 typedef struct IEnumSTATSTG IEnumSTATSTG;
3520 #endif
3522 typedef IEnumSTATSTG *LPENUMSTATSTG;
3524 /*****************************************************************************
3525 * IEnumSTATSTG interface
3527 #ifndef __IEnumSTATSTG_INTERFACE_DEFINED__
3528 #define __IEnumSTATSTG_INTERFACE_DEFINED__
3530 DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3531 #if defined(__cplusplus) && !defined(CINTERFACE)
3532 struct IEnumSTATSTG : public IUnknown
3534 virtual HRESULT STDMETHODCALLTYPE Next(
3535 ULONG celt,
3536 STATSTG* rgelt,
3537 ULONG* pceltFetched) = 0;
3539 virtual HRESULT STDMETHODCALLTYPE Skip(
3540 ULONG celt) = 0;
3542 virtual HRESULT STDMETHODCALLTYPE Reset(
3543 ) = 0;
3545 virtual HRESULT STDMETHODCALLTYPE Clone(
3546 IEnumSTATSTG** ppenum) = 0;
3549 #else
3550 typedef struct IEnumSTATSTGVtbl IEnumSTATSTGVtbl;
3551 struct IEnumSTATSTG {
3552 const IEnumSTATSTGVtbl* lpVtbl;
3554 struct IEnumSTATSTGVtbl {
3555 ICOM_MSVTABLE_COMPAT_FIELDS
3557 /*** IUnknown methods ***/
3558 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3559 IEnumSTATSTG* This,
3560 REFIID riid,
3561 void** ppvObject);
3563 ULONG (STDMETHODCALLTYPE *AddRef)(
3564 IEnumSTATSTG* This);
3566 ULONG (STDMETHODCALLTYPE *Release)(
3567 IEnumSTATSTG* This);
3569 /*** IEnumSTATSTG methods ***/
3570 HRESULT (STDMETHODCALLTYPE *Next)(
3571 IEnumSTATSTG* This,
3572 ULONG celt,
3573 STATSTG* rgelt,
3574 ULONG* pceltFetched);
3576 HRESULT (STDMETHODCALLTYPE *Skip)(
3577 IEnumSTATSTG* This,
3578 ULONG celt);
3580 HRESULT (STDMETHODCALLTYPE *Reset)(
3581 IEnumSTATSTG* This);
3583 HRESULT (STDMETHODCALLTYPE *Clone)(
3584 IEnumSTATSTG* This,
3585 IEnumSTATSTG** ppenum);
3589 /*** IUnknown methods ***/
3590 #define IEnumSTATSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3591 #define IEnumSTATSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
3592 #define IEnumSTATSTG_Release(p) (p)->lpVtbl->Release(p)
3593 /*** IEnumSTATSTG methods ***/
3594 #define IEnumSTATSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
3595 #define IEnumSTATSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
3596 #define IEnumSTATSTG_Reset(p) (p)->lpVtbl->Reset(p)
3597 #define IEnumSTATSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3599 #endif
3601 #define IEnumSTATSTG_METHODS \
3602 ICOM_MSVTABLE_COMPAT_FIELDS \
3603 /*** IUnknown methods ***/ \
3604 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3605 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3606 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3607 /*** IEnumSTATSTG methods ***/ \
3608 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATSTG* rgelt, ULONG* pceltFetched) PURE; \
3609 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
3610 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
3611 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATSTG** ppenum) PURE;
3613 HRESULT CALLBACK IEnumSTATSTG_RemoteNext_Proxy(
3614 IEnumSTATSTG* This,
3615 ULONG celt,
3616 STATSTG* rgelt,
3617 ULONG* pceltFetched);
3618 void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
3619 struct IRpcStubBuffer* This,
3620 struct IRpcChannelBuffer* pRpcChannelBuffer,
3621 PRPC_MESSAGE pRpcMessage,
3622 DWORD* pdwStubPhase);
3623 HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
3624 IEnumSTATSTG* This,
3625 ULONG celt,
3626 STATSTG* rgelt,
3627 ULONG* pceltFetched);
3628 HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
3629 IEnumSTATSTG* This,
3630 ULONG celt,
3631 STATSTG* rgelt,
3632 ULONG* pceltFetched);
3633 HRESULT CALLBACK IEnumSTATSTG_Skip_Proxy(
3634 IEnumSTATSTG* This,
3635 ULONG celt);
3636 void __RPC_STUB IEnumSTATSTG_Skip_Stub(
3637 struct IRpcStubBuffer* This,
3638 struct IRpcChannelBuffer* pRpcChannelBuffer,
3639 PRPC_MESSAGE pRpcMessage,
3640 DWORD* pdwStubPhase);
3641 HRESULT CALLBACK IEnumSTATSTG_Reset_Proxy(
3642 IEnumSTATSTG* This);
3643 void __RPC_STUB IEnumSTATSTG_Reset_Stub(
3644 struct IRpcStubBuffer* This,
3645 struct IRpcChannelBuffer* pRpcChannelBuffer,
3646 PRPC_MESSAGE pRpcMessage,
3647 DWORD* pdwStubPhase);
3648 HRESULT CALLBACK IEnumSTATSTG_Clone_Proxy(
3649 IEnumSTATSTG* This,
3650 IEnumSTATSTG** ppenum);
3651 void __RPC_STUB IEnumSTATSTG_Clone_Stub(
3652 struct IRpcStubBuffer* This,
3653 struct IRpcChannelBuffer* pRpcChannelBuffer,
3654 PRPC_MESSAGE pRpcMessage,
3655 DWORD* pdwStubPhase);
3657 #endif /* __IEnumSTATSTG_INTERFACE_DEFINED__ */
3659 #ifndef __IStorage_FWD_DEFINED__
3660 #define __IStorage_FWD_DEFINED__
3661 typedef struct IStorage IStorage;
3662 #endif
3664 typedef IStorage *LPSTORAGE;
3666 typedef struct tagRemSNB {
3667 unsigned long ulCntStr;
3668 unsigned long ulCntChar;
3669 OLECHAR rgString[1];
3670 } RemSNB;
3672 typedef RemSNB *wireSNB;
3674 typedef OLECHAR **SNB;
3675 unsigned long __RPC_USER SNB_UserSize (unsigned long *, unsigned long, SNB *);
3676 unsigned char * __RPC_USER SNB_UserMarshal (unsigned long *, unsigned char *, SNB *);
3677 unsigned char * __RPC_USER SNB_UserUnmarshal(unsigned long *, unsigned char *, SNB *);
3678 void __RPC_USER SNB_UserFree (unsigned long *, SNB *);
3680 /*****************************************************************************
3681 * IStorage interface
3683 #ifndef __IStorage_INTERFACE_DEFINED__
3684 #define __IStorage_INTERFACE_DEFINED__
3686 DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3687 #if defined(__cplusplus) && !defined(CINTERFACE)
3688 struct IStorage : public IUnknown
3690 virtual HRESULT STDMETHODCALLTYPE CreateStream(
3691 LPCOLESTR pwcsName,
3692 DWORD grfMode,
3693 DWORD reserved1,
3694 DWORD reserved2,
3695 IStream** ppstm) = 0;
3697 virtual HRESULT STDMETHODCALLTYPE OpenStream(
3698 LPCOLESTR pwcsName,
3699 void* reserved1,
3700 DWORD grfMode,
3701 DWORD reserved2,
3702 IStream** ppstm) = 0;
3704 virtual HRESULT STDMETHODCALLTYPE CreateStorage(
3705 LPCOLESTR pwcsName,
3706 DWORD grfMode,
3707 DWORD dwStgFmt,
3708 DWORD reserved2,
3709 IStorage** ppstg) = 0;
3711 virtual HRESULT STDMETHODCALLTYPE OpenStorage(
3712 LPCOLESTR pwcsName,
3713 IStorage* pstgPriority,
3714 DWORD grfMode,
3715 SNB snbExclude,
3716 DWORD reserved,
3717 IStorage** ppstg) = 0;
3719 virtual HRESULT STDMETHODCALLTYPE CopyTo(
3720 DWORD ciidExclude,
3721 const IID* rgiidExclude,
3722 SNB snbExclude,
3723 IStorage* pstgDest) = 0;
3725 virtual HRESULT STDMETHODCALLTYPE MoveElementTo(
3726 LPCOLESTR pwcsName,
3727 IStorage* pstgDest,
3728 LPCOLESTR pwcsNewName,
3729 DWORD grfFlags) = 0;
3731 virtual HRESULT STDMETHODCALLTYPE Commit(
3732 DWORD grfCommitFlags) = 0;
3734 virtual HRESULT STDMETHODCALLTYPE Revert(
3735 ) = 0;
3737 virtual HRESULT STDMETHODCALLTYPE EnumElements(
3738 DWORD reserved1,
3739 void* reserved2,
3740 DWORD reserved3,
3741 IEnumSTATSTG** ppenum) = 0;
3743 virtual HRESULT STDMETHODCALLTYPE DestroyElement(
3744 LPCOLESTR pwcsName) = 0;
3746 virtual HRESULT STDMETHODCALLTYPE RenameElement(
3747 LPCOLESTR pwcsOldName,
3748 LPCOLESTR pwcsNewName) = 0;
3750 virtual HRESULT STDMETHODCALLTYPE SetElementTimes(
3751 LPCOLESTR pwcsName,
3752 const FILETIME* pctime,
3753 const FILETIME* patime,
3754 const FILETIME* pmtime) = 0;
3756 virtual HRESULT STDMETHODCALLTYPE SetClass(
3757 REFCLSID clsid) = 0;
3759 virtual HRESULT STDMETHODCALLTYPE SetStateBits(
3760 DWORD grfStateBits,
3761 DWORD grfMask) = 0;
3763 virtual HRESULT STDMETHODCALLTYPE Stat(
3764 STATSTG* pstatstg,
3765 DWORD grfStatFlag) = 0;
3768 #else
3769 typedef struct IStorageVtbl IStorageVtbl;
3770 struct IStorage {
3771 const IStorageVtbl* lpVtbl;
3773 struct IStorageVtbl {
3774 ICOM_MSVTABLE_COMPAT_FIELDS
3776 /*** IUnknown methods ***/
3777 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3778 IStorage* This,
3779 REFIID riid,
3780 void** ppvObject);
3782 ULONG (STDMETHODCALLTYPE *AddRef)(
3783 IStorage* This);
3785 ULONG (STDMETHODCALLTYPE *Release)(
3786 IStorage* This);
3788 /*** IStorage methods ***/
3789 HRESULT (STDMETHODCALLTYPE *CreateStream)(
3790 IStorage* This,
3791 LPCOLESTR pwcsName,
3792 DWORD grfMode,
3793 DWORD reserved1,
3794 DWORD reserved2,
3795 IStream** ppstm);
3797 HRESULT (STDMETHODCALLTYPE *OpenStream)(
3798 IStorage* This,
3799 LPCOLESTR pwcsName,
3800 void* reserved1,
3801 DWORD grfMode,
3802 DWORD reserved2,
3803 IStream** ppstm);
3805 HRESULT (STDMETHODCALLTYPE *CreateStorage)(
3806 IStorage* This,
3807 LPCOLESTR pwcsName,
3808 DWORD grfMode,
3809 DWORD dwStgFmt,
3810 DWORD reserved2,
3811 IStorage** ppstg);
3813 HRESULT (STDMETHODCALLTYPE *OpenStorage)(
3814 IStorage* This,
3815 LPCOLESTR pwcsName,
3816 IStorage* pstgPriority,
3817 DWORD grfMode,
3818 SNB snbExclude,
3819 DWORD reserved,
3820 IStorage** ppstg);
3822 HRESULT (STDMETHODCALLTYPE *CopyTo)(
3823 IStorage* This,
3824 DWORD ciidExclude,
3825 const IID* rgiidExclude,
3826 SNB snbExclude,
3827 IStorage* pstgDest);
3829 HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
3830 IStorage* This,
3831 LPCOLESTR pwcsName,
3832 IStorage* pstgDest,
3833 LPCOLESTR pwcsNewName,
3834 DWORD grfFlags);
3836 HRESULT (STDMETHODCALLTYPE *Commit)(
3837 IStorage* This,
3838 DWORD grfCommitFlags);
3840 HRESULT (STDMETHODCALLTYPE *Revert)(
3841 IStorage* This);
3843 HRESULT (STDMETHODCALLTYPE *EnumElements)(
3844 IStorage* This,
3845 DWORD reserved1,
3846 void* reserved2,
3847 DWORD reserved3,
3848 IEnumSTATSTG** ppenum);
3850 HRESULT (STDMETHODCALLTYPE *DestroyElement)(
3851 IStorage* This,
3852 LPCOLESTR pwcsName);
3854 HRESULT (STDMETHODCALLTYPE *RenameElement)(
3855 IStorage* This,
3856 LPCOLESTR pwcsOldName,
3857 LPCOLESTR pwcsNewName);
3859 HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
3860 IStorage* This,
3861 LPCOLESTR pwcsName,
3862 const FILETIME* pctime,
3863 const FILETIME* patime,
3864 const FILETIME* pmtime);
3866 HRESULT (STDMETHODCALLTYPE *SetClass)(
3867 IStorage* This,
3868 REFCLSID clsid);
3870 HRESULT (STDMETHODCALLTYPE *SetStateBits)(
3871 IStorage* This,
3872 DWORD grfStateBits,
3873 DWORD grfMask);
3875 HRESULT (STDMETHODCALLTYPE *Stat)(
3876 IStorage* This,
3877 STATSTG* pstatstg,
3878 DWORD grfStatFlag);
3882 /*** IUnknown methods ***/
3883 #define IStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3884 #define IStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
3885 #define IStorage_Release(p) (p)->lpVtbl->Release(p)
3886 /*** IStorage methods ***/
3887 #define IStorage_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
3888 #define IStorage_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
3889 #define IStorage_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
3890 #define IStorage_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
3891 #define IStorage_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3892 #define IStorage_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
3893 #define IStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3894 #define IStorage_Revert(p) (p)->lpVtbl->Revert(p)
3895 #define IStorage_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
3896 #define IStorage_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
3897 #define IStorage_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
3898 #define IStorage_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
3899 #define IStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
3900 #define IStorage_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
3901 #define IStorage_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3903 #endif
3905 #define IStorage_METHODS \
3906 ICOM_MSVTABLE_COMPAT_FIELDS \
3907 /*** IUnknown methods ***/ \
3908 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3909 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3910 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3911 /*** IStorage methods ***/ \
3912 STDMETHOD_(HRESULT,CreateStream)(THIS_ LPCOLESTR pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream** ppstm) PURE; \
3913 STDMETHOD_(HRESULT,OpenStream)(THIS_ LPCOLESTR pwcsName, void* reserved1, DWORD grfMode, DWORD reserved2, IStream** ppstm) PURE; \
3914 STDMETHOD_(HRESULT,CreateStorage)(THIS_ LPCOLESTR pwcsName, DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage** ppstg) PURE; \
3915 STDMETHOD_(HRESULT,OpenStorage)(THIS_ LPCOLESTR pwcsName, IStorage* pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage** ppstg) PURE; \
3916 STDMETHOD_(HRESULT,CopyTo)(THIS_ DWORD ciidExclude, const IID* rgiidExclude, SNB snbExclude, IStorage* pstgDest) PURE; \
3917 STDMETHOD_(HRESULT,MoveElementTo)(THIS_ LPCOLESTR pwcsName, IStorage* pstgDest, LPCOLESTR pwcsNewName, DWORD grfFlags) PURE; \
3918 STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
3919 STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
3920 STDMETHOD_(HRESULT,EnumElements)(THIS_ DWORD reserved1, void* reserved2, DWORD reserved3, IEnumSTATSTG** ppenum) PURE; \
3921 STDMETHOD_(HRESULT,DestroyElement)(THIS_ LPCOLESTR pwcsName) PURE; \
3922 STDMETHOD_(HRESULT,RenameElement)(THIS_ LPCOLESTR pwcsOldName, LPCOLESTR pwcsNewName) PURE; \
3923 STDMETHOD_(HRESULT,SetElementTimes)(THIS_ LPCOLESTR pwcsName, const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime) PURE; \
3924 STDMETHOD_(HRESULT,SetClass)(THIS_ REFCLSID clsid) PURE; \
3925 STDMETHOD_(HRESULT,SetStateBits)(THIS_ DWORD grfStateBits, DWORD grfMask) PURE; \
3926 STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE;
3928 HRESULT CALLBACK IStorage_CreateStream_Proxy(
3929 IStorage* This,
3930 LPCOLESTR pwcsName,
3931 DWORD grfMode,
3932 DWORD reserved1,
3933 DWORD reserved2,
3934 IStream** ppstm);
3935 void __RPC_STUB IStorage_CreateStream_Stub(
3936 struct IRpcStubBuffer* This,
3937 struct IRpcChannelBuffer* pRpcChannelBuffer,
3938 PRPC_MESSAGE pRpcMessage,
3939 DWORD* pdwStubPhase);
3940 HRESULT CALLBACK IStorage_RemoteOpenStream_Proxy(
3941 IStorage* This,
3942 LPCOLESTR pwcsName,
3943 unsigned long cbReserved1,
3944 byte* reserved1,
3945 DWORD grfMode,
3946 DWORD reserved2,
3947 IStream** ppstm);
3948 void __RPC_STUB IStorage_RemoteOpenStream_Stub(
3949 struct IRpcStubBuffer* This,
3950 struct IRpcChannelBuffer* pRpcChannelBuffer,
3951 PRPC_MESSAGE pRpcMessage,
3952 DWORD* pdwStubPhase);
3953 HRESULT CALLBACK IStorage_OpenStream_Proxy(
3954 IStorage* This,
3955 LPCOLESTR pwcsName,
3956 void* reserved1,
3957 DWORD grfMode,
3958 DWORD reserved2,
3959 IStream** ppstm);
3960 HRESULT __RPC_STUB IStorage_OpenStream_Stub(
3961 IStorage* This,
3962 LPCOLESTR pwcsName,
3963 unsigned long cbReserved1,
3964 byte* reserved1,
3965 DWORD grfMode,
3966 DWORD reserved2,
3967 IStream** ppstm);
3968 HRESULT CALLBACK IStorage_CreateStorage_Proxy(
3969 IStorage* This,
3970 LPCOLESTR pwcsName,
3971 DWORD grfMode,
3972 DWORD dwStgFmt,
3973 DWORD reserved2,
3974 IStorage** ppstg);
3975 void __RPC_STUB IStorage_CreateStorage_Stub(
3976 struct IRpcStubBuffer* This,
3977 struct IRpcChannelBuffer* pRpcChannelBuffer,
3978 PRPC_MESSAGE pRpcMessage,
3979 DWORD* pdwStubPhase);
3980 HRESULT CALLBACK IStorage_OpenStorage_Proxy(
3981 IStorage* This,
3982 LPCOLESTR pwcsName,
3983 IStorage* pstgPriority,
3984 DWORD grfMode,
3985 SNB snbExclude,
3986 DWORD reserved,
3987 IStorage** ppstg);
3988 void __RPC_STUB IStorage_OpenStorage_Stub(
3989 struct IRpcStubBuffer* This,
3990 struct IRpcChannelBuffer* pRpcChannelBuffer,
3991 PRPC_MESSAGE pRpcMessage,
3992 DWORD* pdwStubPhase);
3993 HRESULT CALLBACK IStorage_CopyTo_Proxy(
3994 IStorage* This,
3995 DWORD ciidExclude,
3996 const IID* rgiidExclude,
3997 SNB snbExclude,
3998 IStorage* pstgDest);
3999 void __RPC_STUB IStorage_CopyTo_Stub(
4000 struct IRpcStubBuffer* This,
4001 struct IRpcChannelBuffer* pRpcChannelBuffer,
4002 PRPC_MESSAGE pRpcMessage,
4003 DWORD* pdwStubPhase);
4004 HRESULT CALLBACK IStorage_MoveElementTo_Proxy(
4005 IStorage* This,
4006 LPCOLESTR pwcsName,
4007 IStorage* pstgDest,
4008 LPCOLESTR pwcsNewName,
4009 DWORD grfFlags);
4010 void __RPC_STUB IStorage_MoveElementTo_Stub(
4011 struct IRpcStubBuffer* This,
4012 struct IRpcChannelBuffer* pRpcChannelBuffer,
4013 PRPC_MESSAGE pRpcMessage,
4014 DWORD* pdwStubPhase);
4015 HRESULT CALLBACK IStorage_Commit_Proxy(
4016 IStorage* This,
4017 DWORD grfCommitFlags);
4018 void __RPC_STUB IStorage_Commit_Stub(
4019 struct IRpcStubBuffer* This,
4020 struct IRpcChannelBuffer* pRpcChannelBuffer,
4021 PRPC_MESSAGE pRpcMessage,
4022 DWORD* pdwStubPhase);
4023 HRESULT CALLBACK IStorage_Revert_Proxy(
4024 IStorage* This);
4025 void __RPC_STUB IStorage_Revert_Stub(
4026 struct IRpcStubBuffer* This,
4027 struct IRpcChannelBuffer* pRpcChannelBuffer,
4028 PRPC_MESSAGE pRpcMessage,
4029 DWORD* pdwStubPhase);
4030 HRESULT CALLBACK IStorage_RemoteEnumElements_Proxy(
4031 IStorage* This,
4032 DWORD reserved1,
4033 unsigned long cbReserved2,
4034 byte* reserved2,
4035 DWORD reserved3,
4036 IEnumSTATSTG** ppenum);
4037 void __RPC_STUB IStorage_RemoteEnumElements_Stub(
4038 struct IRpcStubBuffer* This,
4039 struct IRpcChannelBuffer* pRpcChannelBuffer,
4040 PRPC_MESSAGE pRpcMessage,
4041 DWORD* pdwStubPhase);
4042 HRESULT CALLBACK IStorage_EnumElements_Proxy(
4043 IStorage* This,
4044 DWORD reserved1,
4045 void* reserved2,
4046 DWORD reserved3,
4047 IEnumSTATSTG** ppenum);
4048 HRESULT __RPC_STUB IStorage_EnumElements_Stub(
4049 IStorage* This,
4050 DWORD reserved1,
4051 unsigned long cbReserved2,
4052 byte* reserved2,
4053 DWORD reserved3,
4054 IEnumSTATSTG** ppenum);
4055 HRESULT CALLBACK IStorage_DestroyElement_Proxy(
4056 IStorage* This,
4057 LPCOLESTR pwcsName);
4058 void __RPC_STUB IStorage_DestroyElement_Stub(
4059 struct IRpcStubBuffer* This,
4060 struct IRpcChannelBuffer* pRpcChannelBuffer,
4061 PRPC_MESSAGE pRpcMessage,
4062 DWORD* pdwStubPhase);
4063 HRESULT CALLBACK IStorage_RenameElement_Proxy(
4064 IStorage* This,
4065 LPCOLESTR pwcsOldName,
4066 LPCOLESTR pwcsNewName);
4067 void __RPC_STUB IStorage_RenameElement_Stub(
4068 struct IRpcStubBuffer* This,
4069 struct IRpcChannelBuffer* pRpcChannelBuffer,
4070 PRPC_MESSAGE pRpcMessage,
4071 DWORD* pdwStubPhase);
4072 HRESULT CALLBACK IStorage_SetElementTimes_Proxy(
4073 IStorage* This,
4074 LPCOLESTR pwcsName,
4075 const FILETIME* pctime,
4076 const FILETIME* patime,
4077 const FILETIME* pmtime);
4078 void __RPC_STUB IStorage_SetElementTimes_Stub(
4079 struct IRpcStubBuffer* This,
4080 struct IRpcChannelBuffer* pRpcChannelBuffer,
4081 PRPC_MESSAGE pRpcMessage,
4082 DWORD* pdwStubPhase);
4083 HRESULT CALLBACK IStorage_SetClass_Proxy(
4084 IStorage* This,
4085 REFCLSID clsid);
4086 void __RPC_STUB IStorage_SetClass_Stub(
4087 struct IRpcStubBuffer* This,
4088 struct IRpcChannelBuffer* pRpcChannelBuffer,
4089 PRPC_MESSAGE pRpcMessage,
4090 DWORD* pdwStubPhase);
4091 HRESULT CALLBACK IStorage_SetStateBits_Proxy(
4092 IStorage* This,
4093 DWORD grfStateBits,
4094 DWORD grfMask);
4095 void __RPC_STUB IStorage_SetStateBits_Stub(
4096 struct IRpcStubBuffer* This,
4097 struct IRpcChannelBuffer* pRpcChannelBuffer,
4098 PRPC_MESSAGE pRpcMessage,
4099 DWORD* pdwStubPhase);
4100 HRESULT CALLBACK IStorage_Stat_Proxy(
4101 IStorage* This,
4102 STATSTG* pstatstg,
4103 DWORD grfStatFlag);
4104 void __RPC_STUB IStorage_Stat_Stub(
4105 struct IRpcStubBuffer* This,
4106 struct IRpcChannelBuffer* pRpcChannelBuffer,
4107 PRPC_MESSAGE pRpcMessage,
4108 DWORD* pdwStubPhase);
4110 #endif /* __IStorage_INTERFACE_DEFINED__ */
4112 #ifndef __IPersistFile_FWD_DEFINED__
4113 #define __IPersistFile_FWD_DEFINED__
4114 typedef struct IPersistFile IPersistFile;
4115 #endif
4117 typedef IPersistFile *LPPERSISTFILE;
4119 /*****************************************************************************
4120 * IPersistFile interface
4122 #ifndef __IPersistFile_INTERFACE_DEFINED__
4123 #define __IPersistFile_INTERFACE_DEFINED__
4125 DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4126 #if defined(__cplusplus) && !defined(CINTERFACE)
4127 struct IPersistFile : public IPersist
4129 virtual HRESULT STDMETHODCALLTYPE IsDirty(
4130 ) = 0;
4132 virtual HRESULT STDMETHODCALLTYPE Load(
4133 LPCOLESTR pszFileName,
4134 DWORD dwMode) = 0;
4136 virtual HRESULT STDMETHODCALLTYPE Save(
4137 LPCOLESTR pszFileName,
4138 BOOL fRemember) = 0;
4140 virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
4141 LPCOLESTR pszFileName) = 0;
4143 virtual HRESULT STDMETHODCALLTYPE GetCurFile(
4144 LPOLESTR* ppszFileName) = 0;
4147 #else
4148 typedef struct IPersistFileVtbl IPersistFileVtbl;
4149 struct IPersistFile {
4150 const IPersistFileVtbl* lpVtbl;
4152 struct IPersistFileVtbl {
4153 ICOM_MSVTABLE_COMPAT_FIELDS
4155 /*** IUnknown methods ***/
4156 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4157 IPersistFile* This,
4158 REFIID riid,
4159 void** ppvObject);
4161 ULONG (STDMETHODCALLTYPE *AddRef)(
4162 IPersistFile* This);
4164 ULONG (STDMETHODCALLTYPE *Release)(
4165 IPersistFile* This);
4167 /*** IPersist methods ***/
4168 HRESULT (STDMETHODCALLTYPE *GetClassID)(
4169 IPersistFile* This,
4170 CLSID* pClassID);
4172 /*** IPersistFile methods ***/
4173 HRESULT (STDMETHODCALLTYPE *IsDirty)(
4174 IPersistFile* This);
4176 HRESULT (STDMETHODCALLTYPE *Load)(
4177 IPersistFile* This,
4178 LPCOLESTR pszFileName,
4179 DWORD dwMode);
4181 HRESULT (STDMETHODCALLTYPE *Save)(
4182 IPersistFile* This,
4183 LPCOLESTR pszFileName,
4184 BOOL fRemember);
4186 HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
4187 IPersistFile* This,
4188 LPCOLESTR pszFileName);
4190 HRESULT (STDMETHODCALLTYPE *GetCurFile)(
4191 IPersistFile* This,
4192 LPOLESTR* ppszFileName);
4196 /*** IUnknown methods ***/
4197 #define IPersistFile_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4198 #define IPersistFile_AddRef(p) (p)->lpVtbl->AddRef(p)
4199 #define IPersistFile_Release(p) (p)->lpVtbl->Release(p)
4200 /*** IPersist methods ***/
4201 #define IPersistFile_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4202 /*** IPersistFile methods ***/
4203 #define IPersistFile_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4204 #define IPersistFile_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
4205 #define IPersistFile_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4206 #define IPersistFile_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
4207 #define IPersistFile_GetCurFile(p,a) (p)->lpVtbl->GetCurFile(p,a)
4209 #endif
4211 #define IPersistFile_METHODS \
4212 ICOM_MSVTABLE_COMPAT_FIELDS \
4213 /*** IUnknown methods ***/ \
4214 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4215 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4216 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4217 /*** IPersist methods ***/ \
4218 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
4219 /*** IPersistFile methods ***/ \
4220 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
4221 STDMETHOD_(HRESULT,Load)(THIS_ LPCOLESTR pszFileName, DWORD dwMode) PURE; \
4222 STDMETHOD_(HRESULT,Save)(THIS_ LPCOLESTR pszFileName, BOOL fRemember) PURE; \
4223 STDMETHOD_(HRESULT,SaveCompleted)(THIS_ LPCOLESTR pszFileName) PURE; \
4224 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName) PURE;
4226 HRESULT CALLBACK IPersistFile_IsDirty_Proxy(
4227 IPersistFile* This);
4228 void __RPC_STUB IPersistFile_IsDirty_Stub(
4229 struct IRpcStubBuffer* This,
4230 struct IRpcChannelBuffer* pRpcChannelBuffer,
4231 PRPC_MESSAGE pRpcMessage,
4232 DWORD* pdwStubPhase);
4233 HRESULT CALLBACK IPersistFile_Load_Proxy(
4234 IPersistFile* This,
4235 LPCOLESTR pszFileName,
4236 DWORD dwMode);
4237 void __RPC_STUB IPersistFile_Load_Stub(
4238 struct IRpcStubBuffer* This,
4239 struct IRpcChannelBuffer* pRpcChannelBuffer,
4240 PRPC_MESSAGE pRpcMessage,
4241 DWORD* pdwStubPhase);
4242 HRESULT CALLBACK IPersistFile_Save_Proxy(
4243 IPersistFile* This,
4244 LPCOLESTR pszFileName,
4245 BOOL fRemember);
4246 void __RPC_STUB IPersistFile_Save_Stub(
4247 struct IRpcStubBuffer* This,
4248 struct IRpcChannelBuffer* pRpcChannelBuffer,
4249 PRPC_MESSAGE pRpcMessage,
4250 DWORD* pdwStubPhase);
4251 HRESULT CALLBACK IPersistFile_SaveCompleted_Proxy(
4252 IPersistFile* This,
4253 LPCOLESTR pszFileName);
4254 void __RPC_STUB IPersistFile_SaveCompleted_Stub(
4255 struct IRpcStubBuffer* This,
4256 struct IRpcChannelBuffer* pRpcChannelBuffer,
4257 PRPC_MESSAGE pRpcMessage,
4258 DWORD* pdwStubPhase);
4259 HRESULT CALLBACK IPersistFile_GetCurFile_Proxy(
4260 IPersistFile* This,
4261 LPOLESTR* ppszFileName);
4262 void __RPC_STUB IPersistFile_GetCurFile_Stub(
4263 struct IRpcStubBuffer* This,
4264 struct IRpcChannelBuffer* pRpcChannelBuffer,
4265 PRPC_MESSAGE pRpcMessage,
4266 DWORD* pdwStubPhase);
4268 #endif /* __IPersistFile_INTERFACE_DEFINED__ */
4270 #ifndef __IPersistStorage_FWD_DEFINED__
4271 #define __IPersistStorage_FWD_DEFINED__
4272 typedef struct IPersistStorage IPersistStorage;
4273 #endif
4275 typedef IPersistStorage *LPPERSISTSTORAGE;
4277 /*****************************************************************************
4278 * IPersistStorage interface
4280 #ifndef __IPersistStorage_INTERFACE_DEFINED__
4281 #define __IPersistStorage_INTERFACE_DEFINED__
4283 DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4284 #if defined(__cplusplus) && !defined(CINTERFACE)
4285 struct IPersistStorage : public IPersist
4287 virtual HRESULT STDMETHODCALLTYPE IsDirty(
4288 ) = 0;
4290 virtual HRESULT STDMETHODCALLTYPE InitNew(
4291 IStorage* pStg) = 0;
4293 virtual HRESULT STDMETHODCALLTYPE Load(
4294 IStorage* pStg) = 0;
4296 virtual HRESULT STDMETHODCALLTYPE Save(
4297 IStorage* pStgSave,
4298 BOOL fSameAsLoad) = 0;
4300 virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
4301 IStorage* pStgNew) = 0;
4303 virtual HRESULT STDMETHODCALLTYPE HandsOffStorage(
4304 ) = 0;
4307 #else
4308 typedef struct IPersistStorageVtbl IPersistStorageVtbl;
4309 struct IPersistStorage {
4310 const IPersistStorageVtbl* lpVtbl;
4312 struct IPersistStorageVtbl {
4313 ICOM_MSVTABLE_COMPAT_FIELDS
4315 /*** IUnknown methods ***/
4316 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4317 IPersistStorage* This,
4318 REFIID riid,
4319 void** ppvObject);
4321 ULONG (STDMETHODCALLTYPE *AddRef)(
4322 IPersistStorage* This);
4324 ULONG (STDMETHODCALLTYPE *Release)(
4325 IPersistStorage* This);
4327 /*** IPersist methods ***/
4328 HRESULT (STDMETHODCALLTYPE *GetClassID)(
4329 IPersistStorage* This,
4330 CLSID* pClassID);
4332 /*** IPersistStorage methods ***/
4333 HRESULT (STDMETHODCALLTYPE *IsDirty)(
4334 IPersistStorage* This);
4336 HRESULT (STDMETHODCALLTYPE *InitNew)(
4337 IPersistStorage* This,
4338 IStorage* pStg);
4340 HRESULT (STDMETHODCALLTYPE *Load)(
4341 IPersistStorage* This,
4342 IStorage* pStg);
4344 HRESULT (STDMETHODCALLTYPE *Save)(
4345 IPersistStorage* This,
4346 IStorage* pStgSave,
4347 BOOL fSameAsLoad);
4349 HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
4350 IPersistStorage* This,
4351 IStorage* pStgNew);
4353 HRESULT (STDMETHODCALLTYPE *HandsOffStorage)(
4354 IPersistStorage* This);
4358 /*** IUnknown methods ***/
4359 #define IPersistStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4360 #define IPersistStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
4361 #define IPersistStorage_Release(p) (p)->lpVtbl->Release(p)
4362 /*** IPersist methods ***/
4363 #define IPersistStorage_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4364 /*** IPersistStorage methods ***/
4365 #define IPersistStorage_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4366 #define IPersistStorage_InitNew(p,a) (p)->lpVtbl->InitNew(p,a)
4367 #define IPersistStorage_Load(p,a) (p)->lpVtbl->Load(p,a)
4368 #define IPersistStorage_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4369 #define IPersistStorage_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
4370 #define IPersistStorage_HandsOffStorage(p) (p)->lpVtbl->HandsOffStorage(p)
4372 #endif
4374 #define IPersistStorage_METHODS \
4375 ICOM_MSVTABLE_COMPAT_FIELDS \
4376 /*** IUnknown methods ***/ \
4377 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4378 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4379 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4380 /*** IPersist methods ***/ \
4381 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
4382 /*** IPersistStorage methods ***/ \
4383 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
4384 STDMETHOD_(HRESULT,InitNew)(THIS_ IStorage* pStg) PURE; \
4385 STDMETHOD_(HRESULT,Load)(THIS_ IStorage* pStg) PURE; \
4386 STDMETHOD_(HRESULT,Save)(THIS_ IStorage* pStgSave, BOOL fSameAsLoad) PURE; \
4387 STDMETHOD_(HRESULT,SaveCompleted)(THIS_ IStorage* pStgNew) PURE; \
4388 STDMETHOD_(HRESULT,HandsOffStorage)(THIS) PURE;
4390 HRESULT CALLBACK IPersistStorage_IsDirty_Proxy(
4391 IPersistStorage* This);
4392 void __RPC_STUB IPersistStorage_IsDirty_Stub(
4393 struct IRpcStubBuffer* This,
4394 struct IRpcChannelBuffer* pRpcChannelBuffer,
4395 PRPC_MESSAGE pRpcMessage,
4396 DWORD* pdwStubPhase);
4397 HRESULT CALLBACK IPersistStorage_InitNew_Proxy(
4398 IPersistStorage* This,
4399 IStorage* pStg);
4400 void __RPC_STUB IPersistStorage_InitNew_Stub(
4401 struct IRpcStubBuffer* This,
4402 struct IRpcChannelBuffer* pRpcChannelBuffer,
4403 PRPC_MESSAGE pRpcMessage,
4404 DWORD* pdwStubPhase);
4405 HRESULT CALLBACK IPersistStorage_Load_Proxy(
4406 IPersistStorage* This,
4407 IStorage* pStg);
4408 void __RPC_STUB IPersistStorage_Load_Stub(
4409 struct IRpcStubBuffer* This,
4410 struct IRpcChannelBuffer* pRpcChannelBuffer,
4411 PRPC_MESSAGE pRpcMessage,
4412 DWORD* pdwStubPhase);
4413 HRESULT CALLBACK IPersistStorage_Save_Proxy(
4414 IPersistStorage* This,
4415 IStorage* pStgSave,
4416 BOOL fSameAsLoad);
4417 void __RPC_STUB IPersistStorage_Save_Stub(
4418 struct IRpcStubBuffer* This,
4419 struct IRpcChannelBuffer* pRpcChannelBuffer,
4420 PRPC_MESSAGE pRpcMessage,
4421 DWORD* pdwStubPhase);
4422 HRESULT CALLBACK IPersistStorage_SaveCompleted_Proxy(
4423 IPersistStorage* This,
4424 IStorage* pStgNew);
4425 void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
4426 struct IRpcStubBuffer* This,
4427 struct IRpcChannelBuffer* pRpcChannelBuffer,
4428 PRPC_MESSAGE pRpcMessage,
4429 DWORD* pdwStubPhase);
4430 HRESULT CALLBACK IPersistStorage_HandsOffStorage_Proxy(
4431 IPersistStorage* This);
4432 void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
4433 struct IRpcStubBuffer* This,
4434 struct IRpcChannelBuffer* pRpcChannelBuffer,
4435 PRPC_MESSAGE pRpcMessage,
4436 DWORD* pdwStubPhase);
4438 #endif /* __IPersistStorage_INTERFACE_DEFINED__ */
4440 #ifndef __IRootStorage_FWD_DEFINED__
4441 #define __IRootStorage_FWD_DEFINED__
4442 typedef struct IRootStorage IRootStorage;
4443 #endif
4445 typedef IRootStorage *LPROOTSTORAGE;
4447 /*****************************************************************************
4448 * IRootStorage interface
4450 #ifndef __IRootStorage_INTERFACE_DEFINED__
4451 #define __IRootStorage_INTERFACE_DEFINED__
4453 DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4454 #if defined(__cplusplus) && !defined(CINTERFACE)
4455 struct IRootStorage : public IUnknown
4457 virtual HRESULT STDMETHODCALLTYPE SwitchToFile(
4458 LPOLESTR pszFile) = 0;
4461 #else
4462 typedef struct IRootStorageVtbl IRootStorageVtbl;
4463 struct IRootStorage {
4464 const IRootStorageVtbl* lpVtbl;
4466 struct IRootStorageVtbl {
4467 ICOM_MSVTABLE_COMPAT_FIELDS
4469 /*** IUnknown methods ***/
4470 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4471 IRootStorage* This,
4472 REFIID riid,
4473 void** ppvObject);
4475 ULONG (STDMETHODCALLTYPE *AddRef)(
4476 IRootStorage* This);
4478 ULONG (STDMETHODCALLTYPE *Release)(
4479 IRootStorage* This);
4481 /*** IRootStorage methods ***/
4482 HRESULT (STDMETHODCALLTYPE *SwitchToFile)(
4483 IRootStorage* This,
4484 LPOLESTR pszFile);
4488 /*** IUnknown methods ***/
4489 #define IRootStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4490 #define IRootStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
4491 #define IRootStorage_Release(p) (p)->lpVtbl->Release(p)
4492 /*** IRootStorage methods ***/
4493 #define IRootStorage_SwitchToFile(p,a) (p)->lpVtbl->SwitchToFile(p,a)
4495 #endif
4497 #define IRootStorage_METHODS \
4498 ICOM_MSVTABLE_COMPAT_FIELDS \
4499 /*** IUnknown methods ***/ \
4500 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4501 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4502 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4503 /*** IRootStorage methods ***/ \
4504 STDMETHOD_(HRESULT,SwitchToFile)(THIS_ LPOLESTR pszFile) PURE;
4506 HRESULT CALLBACK IRootStorage_SwitchToFile_Proxy(
4507 IRootStorage* This,
4508 LPOLESTR pszFile);
4509 void __RPC_STUB IRootStorage_SwitchToFile_Stub(
4510 struct IRpcStubBuffer* This,
4511 struct IRpcChannelBuffer* pRpcChannelBuffer,
4512 PRPC_MESSAGE pRpcMessage,
4513 DWORD* pdwStubPhase);
4515 #endif /* __IRootStorage_INTERFACE_DEFINED__ */
4517 #ifndef __ILockBytes_FWD_DEFINED__
4518 #define __ILockBytes_FWD_DEFINED__
4519 typedef struct ILockBytes ILockBytes;
4520 #endif
4522 typedef ILockBytes *LPLOCKBYTES;
4524 /*****************************************************************************
4525 * ILockBytes interface
4527 #ifndef __ILockBytes_INTERFACE_DEFINED__
4528 #define __ILockBytes_INTERFACE_DEFINED__
4530 DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4531 #if defined(__cplusplus) && !defined(CINTERFACE)
4532 struct ILockBytes : public IUnknown
4534 virtual HRESULT STDMETHODCALLTYPE ReadAt(
4535 ULARGE_INTEGER ulOffset,
4536 void* pv,
4537 ULONG cb,
4538 ULONG* pcbRead) = 0;
4540 virtual HRESULT STDMETHODCALLTYPE WriteAt(
4541 ULARGE_INTEGER ulOffset,
4542 const void* pv,
4543 ULONG cb,
4544 ULONG* pcbWritten) = 0;
4546 virtual HRESULT STDMETHODCALLTYPE Flush(
4547 ) = 0;
4549 virtual HRESULT STDMETHODCALLTYPE SetSize(
4550 ULARGE_INTEGER cb) = 0;
4552 virtual HRESULT STDMETHODCALLTYPE LockRegion(
4553 ULARGE_INTEGER libOffset,
4554 ULARGE_INTEGER cb,
4555 DWORD dwLockType) = 0;
4557 virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
4558 ULARGE_INTEGER libOffset,
4559 ULARGE_INTEGER cb,
4560 DWORD dwLockType) = 0;
4562 virtual HRESULT STDMETHODCALLTYPE Stat(
4563 STATSTG* pstatstg,
4564 DWORD grfStatFlag) = 0;
4567 #else
4568 typedef struct ILockBytesVtbl ILockBytesVtbl;
4569 struct ILockBytes {
4570 const ILockBytesVtbl* lpVtbl;
4572 struct ILockBytesVtbl {
4573 ICOM_MSVTABLE_COMPAT_FIELDS
4575 /*** IUnknown methods ***/
4576 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4577 ILockBytes* This,
4578 REFIID riid,
4579 void** ppvObject);
4581 ULONG (STDMETHODCALLTYPE *AddRef)(
4582 ILockBytes* This);
4584 ULONG (STDMETHODCALLTYPE *Release)(
4585 ILockBytes* This);
4587 /*** ILockBytes methods ***/
4588 HRESULT (STDMETHODCALLTYPE *ReadAt)(
4589 ILockBytes* This,
4590 ULARGE_INTEGER ulOffset,
4591 void* pv,
4592 ULONG cb,
4593 ULONG* pcbRead);
4595 HRESULT (STDMETHODCALLTYPE *WriteAt)(
4596 ILockBytes* This,
4597 ULARGE_INTEGER ulOffset,
4598 const void* pv,
4599 ULONG cb,
4600 ULONG* pcbWritten);
4602 HRESULT (STDMETHODCALLTYPE *Flush)(
4603 ILockBytes* This);
4605 HRESULT (STDMETHODCALLTYPE *SetSize)(
4606 ILockBytes* This,
4607 ULARGE_INTEGER cb);
4609 HRESULT (STDMETHODCALLTYPE *LockRegion)(
4610 ILockBytes* This,
4611 ULARGE_INTEGER libOffset,
4612 ULARGE_INTEGER cb,
4613 DWORD dwLockType);
4615 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4616 ILockBytes* This,
4617 ULARGE_INTEGER libOffset,
4618 ULARGE_INTEGER cb,
4619 DWORD dwLockType);
4621 HRESULT (STDMETHODCALLTYPE *Stat)(
4622 ILockBytes* This,
4623 STATSTG* pstatstg,
4624 DWORD grfStatFlag);
4628 /*** IUnknown methods ***/
4629 #define ILockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4630 #define ILockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
4631 #define ILockBytes_Release(p) (p)->lpVtbl->Release(p)
4632 /*** ILockBytes methods ***/
4633 #define ILockBytes_ReadAt(p,a,b,c,d) (p)->lpVtbl->ReadAt(p,a,b,c,d)
4634 #define ILockBytes_WriteAt(p,a,b,c,d) (p)->lpVtbl->WriteAt(p,a,b,c,d)
4635 #define ILockBytes_Flush(p) (p)->lpVtbl->Flush(p)
4636 #define ILockBytes_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
4637 #define ILockBytes_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
4638 #define ILockBytes_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
4639 #define ILockBytes_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
4641 #endif
4643 #define ILockBytes_METHODS \
4644 ICOM_MSVTABLE_COMPAT_FIELDS \
4645 /*** IUnknown methods ***/ \
4646 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4647 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4648 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4649 /*** ILockBytes methods ***/ \
4650 STDMETHOD_(HRESULT,ReadAt)(THIS_ ULARGE_INTEGER ulOffset, void* pv, ULONG cb, ULONG* pcbRead) PURE; \
4651 STDMETHOD_(HRESULT,WriteAt)(THIS_ ULARGE_INTEGER ulOffset, const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
4652 STDMETHOD_(HRESULT,Flush)(THIS) PURE; \
4653 STDMETHOD_(HRESULT,SetSize)(THIS_ ULARGE_INTEGER cb) PURE; \
4654 STDMETHOD_(HRESULT,LockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
4655 STDMETHOD_(HRESULT,UnlockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
4656 STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE;
4658 HRESULT CALLBACK ILockBytes_RemoteReadAt_Proxy(
4659 ILockBytes* This,
4660 ULARGE_INTEGER ulOffset,
4661 byte* pv,
4662 ULONG cb,
4663 ULONG* pcbRead);
4664 void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
4665 struct IRpcStubBuffer* This,
4666 struct IRpcChannelBuffer* pRpcChannelBuffer,
4667 PRPC_MESSAGE pRpcMessage,
4668 DWORD* pdwStubPhase);
4669 HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
4670 ILockBytes* This,
4671 ULARGE_INTEGER ulOffset,
4672 void* pv,
4673 ULONG cb,
4674 ULONG* pcbRead);
4675 HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
4676 ILockBytes* This,
4677 ULARGE_INTEGER ulOffset,
4678 byte* pv,
4679 ULONG cb,
4680 ULONG* pcbRead);
4681 HRESULT CALLBACK ILockBytes_RemoteWriteAt_Proxy(
4682 ILockBytes* This,
4683 ULARGE_INTEGER ulOffset,
4684 const byte* pv,
4685 ULONG cb,
4686 ULONG* pcbWritten);
4687 void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
4688 struct IRpcStubBuffer* This,
4689 struct IRpcChannelBuffer* pRpcChannelBuffer,
4690 PRPC_MESSAGE pRpcMessage,
4691 DWORD* pdwStubPhase);
4692 HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
4693 ILockBytes* This,
4694 ULARGE_INTEGER ulOffset,
4695 const void* pv,
4696 ULONG cb,
4697 ULONG* pcbWritten);
4698 HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
4699 ILockBytes* This,
4700 ULARGE_INTEGER ulOffset,
4701 const byte* pv,
4702 ULONG cb,
4703 ULONG* pcbWritten);
4704 HRESULT CALLBACK ILockBytes_Flush_Proxy(
4705 ILockBytes* This);
4706 void __RPC_STUB ILockBytes_Flush_Stub(
4707 struct IRpcStubBuffer* This,
4708 struct IRpcChannelBuffer* pRpcChannelBuffer,
4709 PRPC_MESSAGE pRpcMessage,
4710 DWORD* pdwStubPhase);
4711 HRESULT CALLBACK ILockBytes_SetSize_Proxy(
4712 ILockBytes* This,
4713 ULARGE_INTEGER cb);
4714 void __RPC_STUB ILockBytes_SetSize_Stub(
4715 struct IRpcStubBuffer* This,
4716 struct IRpcChannelBuffer* pRpcChannelBuffer,
4717 PRPC_MESSAGE pRpcMessage,
4718 DWORD* pdwStubPhase);
4719 HRESULT CALLBACK ILockBytes_LockRegion_Proxy(
4720 ILockBytes* This,
4721 ULARGE_INTEGER libOffset,
4722 ULARGE_INTEGER cb,
4723 DWORD dwLockType);
4724 void __RPC_STUB ILockBytes_LockRegion_Stub(
4725 struct IRpcStubBuffer* This,
4726 struct IRpcChannelBuffer* pRpcChannelBuffer,
4727 PRPC_MESSAGE pRpcMessage,
4728 DWORD* pdwStubPhase);
4729 HRESULT CALLBACK ILockBytes_UnlockRegion_Proxy(
4730 ILockBytes* This,
4731 ULARGE_INTEGER libOffset,
4732 ULARGE_INTEGER cb,
4733 DWORD dwLockType);
4734 void __RPC_STUB ILockBytes_UnlockRegion_Stub(
4735 struct IRpcStubBuffer* This,
4736 struct IRpcChannelBuffer* pRpcChannelBuffer,
4737 PRPC_MESSAGE pRpcMessage,
4738 DWORD* pdwStubPhase);
4739 HRESULT CALLBACK ILockBytes_Stat_Proxy(
4740 ILockBytes* This,
4741 STATSTG* pstatstg,
4742 DWORD grfStatFlag);
4743 void __RPC_STUB ILockBytes_Stat_Stub(
4744 struct IRpcStubBuffer* This,
4745 struct IRpcChannelBuffer* pRpcChannelBuffer,
4746 PRPC_MESSAGE pRpcMessage,
4747 DWORD* pdwStubPhase);
4749 #endif /* __ILockBytes_INTERFACE_DEFINED__ */
4751 #ifndef __IFillLockBytes_FWD_DEFINED__
4752 #define __IFillLockBytes_FWD_DEFINED__
4753 typedef struct IFillLockBytes IFillLockBytes;
4754 #endif
4756 /*****************************************************************************
4757 * IFillLockBytes interface
4759 #ifndef __IFillLockBytes_INTERFACE_DEFINED__
4760 #define __IFillLockBytes_INTERFACE_DEFINED__
4762 DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
4763 #if defined(__cplusplus) && !defined(CINTERFACE)
4764 struct IFillLockBytes : public IUnknown
4766 virtual HRESULT STDMETHODCALLTYPE FillAppend(
4767 const void* pv,
4768 ULONG cb,
4769 ULONG* pcbWritten) = 0;
4771 virtual HRESULT STDMETHODCALLTYPE FillAt(
4772 ULARGE_INTEGER ulOffset,
4773 const void* pv,
4774 ULONG cb,
4775 ULONG* pcbWritten) = 0;
4777 virtual HRESULT STDMETHODCALLTYPE SetFillSize(
4778 ULARGE_INTEGER ulSize) = 0;
4780 virtual HRESULT STDMETHODCALLTYPE Terminate(
4781 BOOL bCanceled) = 0;
4784 #else
4785 typedef struct IFillLockBytesVtbl IFillLockBytesVtbl;
4786 struct IFillLockBytes {
4787 const IFillLockBytesVtbl* lpVtbl;
4789 struct IFillLockBytesVtbl {
4790 ICOM_MSVTABLE_COMPAT_FIELDS
4792 /*** IUnknown methods ***/
4793 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4794 IFillLockBytes* This,
4795 REFIID riid,
4796 void** ppvObject);
4798 ULONG (STDMETHODCALLTYPE *AddRef)(
4799 IFillLockBytes* This);
4801 ULONG (STDMETHODCALLTYPE *Release)(
4802 IFillLockBytes* This);
4804 /*** IFillLockBytes methods ***/
4805 HRESULT (STDMETHODCALLTYPE *FillAppend)(
4806 IFillLockBytes* This,
4807 const void* pv,
4808 ULONG cb,
4809 ULONG* pcbWritten);
4811 HRESULT (STDMETHODCALLTYPE *FillAt)(
4812 IFillLockBytes* This,
4813 ULARGE_INTEGER ulOffset,
4814 const void* pv,
4815 ULONG cb,
4816 ULONG* pcbWritten);
4818 HRESULT (STDMETHODCALLTYPE *SetFillSize)(
4819 IFillLockBytes* This,
4820 ULARGE_INTEGER ulSize);
4822 HRESULT (STDMETHODCALLTYPE *Terminate)(
4823 IFillLockBytes* This,
4824 BOOL bCanceled);
4828 /*** IUnknown methods ***/
4829 #define IFillLockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4830 #define IFillLockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
4831 #define IFillLockBytes_Release(p) (p)->lpVtbl->Release(p)
4832 /*** IFillLockBytes methods ***/
4833 #define IFillLockBytes_FillAppend(p,a,b,c) (p)->lpVtbl->FillAppend(p,a,b,c)
4834 #define IFillLockBytes_FillAt(p,a,b,c,d) (p)->lpVtbl->FillAt(p,a,b,c,d)
4835 #define IFillLockBytes_SetFillSize(p,a) (p)->lpVtbl->SetFillSize(p,a)
4836 #define IFillLockBytes_Terminate(p,a) (p)->lpVtbl->Terminate(p,a)
4838 #endif
4840 #define IFillLockBytes_METHODS \
4841 ICOM_MSVTABLE_COMPAT_FIELDS \
4842 /*** IUnknown methods ***/ \
4843 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4844 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4845 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4846 /*** IFillLockBytes methods ***/ \
4847 STDMETHOD_(HRESULT,FillAppend)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
4848 STDMETHOD_(HRESULT,FillAt)(THIS_ ULARGE_INTEGER ulOffset, const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
4849 STDMETHOD_(HRESULT,SetFillSize)(THIS_ ULARGE_INTEGER ulSize) PURE; \
4850 STDMETHOD_(HRESULT,Terminate)(THIS_ BOOL bCanceled) PURE;
4852 HRESULT CALLBACK IFillLockBytes_RemoteFillAppend_Proxy(
4853 IFillLockBytes* This,
4854 const byte* pv,
4855 ULONG cb,
4856 ULONG* pcbWritten);
4857 void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
4858 struct IRpcStubBuffer* This,
4859 struct IRpcChannelBuffer* pRpcChannelBuffer,
4860 PRPC_MESSAGE pRpcMessage,
4861 DWORD* pdwStubPhase);
4862 HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
4863 IFillLockBytes* This,
4864 const void* pv,
4865 ULONG cb,
4866 ULONG* pcbWritten);
4867 HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
4868 IFillLockBytes* This,
4869 const byte* pv,
4870 ULONG cb,
4871 ULONG* pcbWritten);
4872 HRESULT CALLBACK IFillLockBytes_RemoteFillAt_Proxy(
4873 IFillLockBytes* This,
4874 ULARGE_INTEGER ulOffset,
4875 const byte* pv,
4876 ULONG cb,
4877 ULONG* pcbWritten);
4878 void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
4879 struct IRpcStubBuffer* This,
4880 struct IRpcChannelBuffer* pRpcChannelBuffer,
4881 PRPC_MESSAGE pRpcMessage,
4882 DWORD* pdwStubPhase);
4883 HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
4884 IFillLockBytes* This,
4885 ULARGE_INTEGER ulOffset,
4886 const void* pv,
4887 ULONG cb,
4888 ULONG* pcbWritten);
4889 HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
4890 IFillLockBytes* This,
4891 ULARGE_INTEGER ulOffset,
4892 const byte* pv,
4893 ULONG cb,
4894 ULONG* pcbWritten);
4895 HRESULT CALLBACK IFillLockBytes_SetFillSize_Proxy(
4896 IFillLockBytes* This,
4897 ULARGE_INTEGER ulSize);
4898 void __RPC_STUB IFillLockBytes_SetFillSize_Stub(
4899 struct IRpcStubBuffer* This,
4900 struct IRpcChannelBuffer* pRpcChannelBuffer,
4901 PRPC_MESSAGE pRpcMessage,
4902 DWORD* pdwStubPhase);
4903 HRESULT CALLBACK IFillLockBytes_Terminate_Proxy(
4904 IFillLockBytes* This,
4905 BOOL bCanceled);
4906 void __RPC_STUB IFillLockBytes_Terminate_Stub(
4907 struct IRpcStubBuffer* This,
4908 struct IRpcChannelBuffer* pRpcChannelBuffer,
4909 PRPC_MESSAGE pRpcMessage,
4910 DWORD* pdwStubPhase);
4912 #endif /* __IFillLockBytes_INTERFACE_DEFINED__ */
4914 #ifndef __IProgressNotify_FWD_DEFINED__
4915 #define __IProgressNotify_FWD_DEFINED__
4916 typedef struct IProgressNotify IProgressNotify;
4917 #endif
4919 /*****************************************************************************
4920 * IProgressNotify interface
4922 #ifndef __IProgressNotify_INTERFACE_DEFINED__
4923 #define __IProgressNotify_INTERFACE_DEFINED__
4925 DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
4926 #if defined(__cplusplus) && !defined(CINTERFACE)
4927 struct IProgressNotify : public IUnknown
4929 virtual HRESULT STDMETHODCALLTYPE OnProgress(
4930 DWORD dwProgressCurrent,
4931 DWORD dwProgressMaximum,
4932 BOOL fAccurate,
4933 BOOL fOwner) = 0;
4936 #else
4937 typedef struct IProgressNotifyVtbl IProgressNotifyVtbl;
4938 struct IProgressNotify {
4939 const IProgressNotifyVtbl* lpVtbl;
4941 struct IProgressNotifyVtbl {
4942 ICOM_MSVTABLE_COMPAT_FIELDS
4944 /*** IUnknown methods ***/
4945 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4946 IProgressNotify* This,
4947 REFIID riid,
4948 void** ppvObject);
4950 ULONG (STDMETHODCALLTYPE *AddRef)(
4951 IProgressNotify* This);
4953 ULONG (STDMETHODCALLTYPE *Release)(
4954 IProgressNotify* This);
4956 /*** IProgressNotify methods ***/
4957 HRESULT (STDMETHODCALLTYPE *OnProgress)(
4958 IProgressNotify* This,
4959 DWORD dwProgressCurrent,
4960 DWORD dwProgressMaximum,
4961 BOOL fAccurate,
4962 BOOL fOwner);
4966 /*** IUnknown methods ***/
4967 #define IProgressNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4968 #define IProgressNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
4969 #define IProgressNotify_Release(p) (p)->lpVtbl->Release(p)
4970 /*** IProgressNotify methods ***/
4971 #define IProgressNotify_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d)
4973 #endif
4975 #define IProgressNotify_METHODS \
4976 ICOM_MSVTABLE_COMPAT_FIELDS \
4977 /*** IUnknown methods ***/ \
4978 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4979 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4980 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4981 /*** IProgressNotify methods ***/ \
4982 STDMETHOD_(HRESULT,OnProgress)(THIS_ DWORD dwProgressCurrent, DWORD dwProgressMaximum, BOOL fAccurate, BOOL fOwner) PURE;
4984 HRESULT CALLBACK IProgressNotify_OnProgress_Proxy(
4985 IProgressNotify* This,
4986 DWORD dwProgressCurrent,
4987 DWORD dwProgressMaximum,
4988 BOOL fAccurate,
4989 BOOL fOwner);
4990 void __RPC_STUB IProgressNotify_OnProgress_Stub(
4991 struct IRpcStubBuffer* This,
4992 struct IRpcChannelBuffer* pRpcChannelBuffer,
4993 PRPC_MESSAGE pRpcMessage,
4994 DWORD* pdwStubPhase);
4996 #endif /* __IProgressNotify_INTERFACE_DEFINED__ */
4998 #ifndef __ILayoutStorage_FWD_DEFINED__
4999 #define __ILayoutStorage_FWD_DEFINED__
5000 typedef struct ILayoutStorage ILayoutStorage;
5001 #endif
5003 typedef struct tagStorageLayout {
5004 DWORD LayoutType;
5005 OLECHAR *pwcsElementName;
5006 LARGE_INTEGER cOffset;
5007 LARGE_INTEGER cBytes;
5008 } StorageLayout;
5010 /*****************************************************************************
5011 * ILayoutStorage interface
5013 #ifndef __ILayoutStorage_INTERFACE_DEFINED__
5014 #define __ILayoutStorage_INTERFACE_DEFINED__
5016 DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
5017 #if defined(__cplusplus) && !defined(CINTERFACE)
5018 struct ILayoutStorage : public IUnknown
5020 virtual HRESULT STDMETHODCALLTYPE LayoutScript(
5021 StorageLayout* pStorageLayout,
5022 DWORD nEntries,
5023 DWORD glfInterleavedFlag) = 0;
5025 virtual HRESULT STDMETHODCALLTYPE BeginMonitor(
5026 ) = 0;
5028 virtual HRESULT STDMETHODCALLTYPE EndMonitor(
5029 ) = 0;
5031 virtual HRESULT STDMETHODCALLTYPE ReLayoutDocfile(
5032 OLECHAR* pwcsNewDfName) = 0;
5034 virtual HRESULT STDMETHODCALLTYPE ReLayoutDocfileOnILockBytes(
5035 ILockBytes* pILockBytes) = 0;
5038 #else
5039 typedef struct ILayoutStorageVtbl ILayoutStorageVtbl;
5040 struct ILayoutStorage {
5041 const ILayoutStorageVtbl* lpVtbl;
5043 struct ILayoutStorageVtbl {
5044 ICOM_MSVTABLE_COMPAT_FIELDS
5046 /*** IUnknown methods ***/
5047 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5048 ILayoutStorage* This,
5049 REFIID riid,
5050 void** ppvObject);
5052 ULONG (STDMETHODCALLTYPE *AddRef)(
5053 ILayoutStorage* This);
5055 ULONG (STDMETHODCALLTYPE *Release)(
5056 ILayoutStorage* This);
5058 /*** ILayoutStorage methods ***/
5059 HRESULT (STDMETHODCALLTYPE *LayoutScript)(
5060 ILayoutStorage* This,
5061 StorageLayout* pStorageLayout,
5062 DWORD nEntries,
5063 DWORD glfInterleavedFlag);
5065 HRESULT (STDMETHODCALLTYPE *BeginMonitor)(
5066 ILayoutStorage* This);
5068 HRESULT (STDMETHODCALLTYPE *EndMonitor)(
5069 ILayoutStorage* This);
5071 HRESULT (STDMETHODCALLTYPE *ReLayoutDocfile)(
5072 ILayoutStorage* This,
5073 OLECHAR* pwcsNewDfName);
5075 HRESULT (STDMETHODCALLTYPE *ReLayoutDocfileOnILockBytes)(
5076 ILayoutStorage* This,
5077 ILockBytes* pILockBytes);
5081 /*** IUnknown methods ***/
5082 #define ILayoutStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5083 #define ILayoutStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
5084 #define ILayoutStorage_Release(p) (p)->lpVtbl->Release(p)
5085 /*** ILayoutStorage methods ***/
5086 #define ILayoutStorage_LayoutScript(p,a,b,c) (p)->lpVtbl->LayoutScript(p,a,b,c)
5087 #define ILayoutStorage_BeginMonitor(p) (p)->lpVtbl->BeginMonitor(p)
5088 #define ILayoutStorage_EndMonitor(p) (p)->lpVtbl->EndMonitor(p)
5089 #define ILayoutStorage_ReLayoutDocfile(p,a) (p)->lpVtbl->ReLayoutDocfile(p,a)
5090 #define ILayoutStorage_ReLayoutDocfileOnILockBytes(p,a) (p)->lpVtbl->ReLayoutDocfileOnILockBytes(p,a)
5092 #endif
5094 #define ILayoutStorage_METHODS \
5095 ICOM_MSVTABLE_COMPAT_FIELDS \
5096 /*** IUnknown methods ***/ \
5097 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5098 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5099 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5100 /*** ILayoutStorage methods ***/ \
5101 STDMETHOD_(HRESULT,LayoutScript)(THIS_ StorageLayout* pStorageLayout, DWORD nEntries, DWORD glfInterleavedFlag) PURE; \
5102 STDMETHOD_(HRESULT,BeginMonitor)(THIS) PURE; \
5103 STDMETHOD_(HRESULT,EndMonitor)(THIS) PURE; \
5104 STDMETHOD_(HRESULT,ReLayoutDocfile)(THIS_ OLECHAR* pwcsNewDfName) PURE; \
5105 STDMETHOD_(HRESULT,ReLayoutDocfileOnILockBytes)(THIS_ ILockBytes* pILockBytes) PURE;
5107 HRESULT CALLBACK ILayoutStorage_LayoutScript_Proxy(
5108 ILayoutStorage* This,
5109 StorageLayout* pStorageLayout,
5110 DWORD nEntries,
5111 DWORD glfInterleavedFlag);
5112 void __RPC_STUB ILayoutStorage_LayoutScript_Stub(
5113 struct IRpcStubBuffer* This,
5114 struct IRpcChannelBuffer* pRpcChannelBuffer,
5115 PRPC_MESSAGE pRpcMessage,
5116 DWORD* pdwStubPhase);
5117 HRESULT CALLBACK ILayoutStorage_BeginMonitor_Proxy(
5118 ILayoutStorage* This);
5119 void __RPC_STUB ILayoutStorage_BeginMonitor_Stub(
5120 struct IRpcStubBuffer* This,
5121 struct IRpcChannelBuffer* pRpcChannelBuffer,
5122 PRPC_MESSAGE pRpcMessage,
5123 DWORD* pdwStubPhase);
5124 HRESULT CALLBACK ILayoutStorage_EndMonitor_Proxy(
5125 ILayoutStorage* This);
5126 void __RPC_STUB ILayoutStorage_EndMonitor_Stub(
5127 struct IRpcStubBuffer* This,
5128 struct IRpcChannelBuffer* pRpcChannelBuffer,
5129 PRPC_MESSAGE pRpcMessage,
5130 DWORD* pdwStubPhase);
5131 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfile_Proxy(
5132 ILayoutStorage* This,
5133 OLECHAR* pwcsNewDfName);
5134 void __RPC_STUB ILayoutStorage_ReLayoutDocfile_Stub(
5135 struct IRpcStubBuffer* This,
5136 struct IRpcChannelBuffer* pRpcChannelBuffer,
5137 PRPC_MESSAGE pRpcMessage,
5138 DWORD* pdwStubPhase);
5139 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfileOnILockBytes_Proxy(
5140 ILayoutStorage* This,
5141 ILockBytes* pILockBytes);
5142 void __RPC_STUB ILayoutStorage_ReLayoutDocfileOnILockBytes_Stub(
5143 struct IRpcStubBuffer* This,
5144 struct IRpcChannelBuffer* pRpcChannelBuffer,
5145 PRPC_MESSAGE pRpcMessage,
5146 DWORD* pdwStubPhase);
5148 #endif /* __ILayoutStorage_INTERFACE_DEFINED__ */
5150 #ifndef __IEnumFORMATETC_FWD_DEFINED__
5151 #define __IEnumFORMATETC_FWD_DEFINED__
5152 typedef struct IEnumFORMATETC IEnumFORMATETC;
5153 #endif
5155 typedef IEnumFORMATETC *LPENUMFORMATETC;
5157 typedef struct tagDVTARGETDEVICE {
5158 DWORD tdSize;
5159 WORD tdDriverNameOffset;
5160 WORD tdDeviceNameOffset;
5161 WORD tdPortNameOffset;
5162 WORD tdExtDevmodeOffset;
5163 BYTE tdData[1];
5164 } DVTARGETDEVICE;
5166 typedef CLIPFORMAT *LPCLIPFORMAT;
5168 typedef struct tagFORMATETC {
5169 CLIPFORMAT cfFormat;
5170 DVTARGETDEVICE *ptd;
5171 DWORD dwAspect;
5172 LONG lindex;
5173 DWORD tymed;
5174 } FORMATETC, *LPFORMATETC;
5176 /*****************************************************************************
5177 * IEnumFORMATETC interface
5179 #ifndef __IEnumFORMATETC_INTERFACE_DEFINED__
5180 #define __IEnumFORMATETC_INTERFACE_DEFINED__
5182 DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5183 #if defined(__cplusplus) && !defined(CINTERFACE)
5184 struct IEnumFORMATETC : public IUnknown
5186 virtual HRESULT STDMETHODCALLTYPE Next(
5187 ULONG celt,
5188 FORMATETC* rgelt,
5189 ULONG* pceltFetched) = 0;
5191 virtual HRESULT STDMETHODCALLTYPE Skip(
5192 ULONG celt) = 0;
5194 virtual HRESULT STDMETHODCALLTYPE Reset(
5195 ) = 0;
5197 virtual HRESULT STDMETHODCALLTYPE Clone(
5198 IEnumFORMATETC** ppenum) = 0;
5201 #else
5202 typedef struct IEnumFORMATETCVtbl IEnumFORMATETCVtbl;
5203 struct IEnumFORMATETC {
5204 const IEnumFORMATETCVtbl* lpVtbl;
5206 struct IEnumFORMATETCVtbl {
5207 ICOM_MSVTABLE_COMPAT_FIELDS
5209 /*** IUnknown methods ***/
5210 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5211 IEnumFORMATETC* This,
5212 REFIID riid,
5213 void** ppvObject);
5215 ULONG (STDMETHODCALLTYPE *AddRef)(
5216 IEnumFORMATETC* This);
5218 ULONG (STDMETHODCALLTYPE *Release)(
5219 IEnumFORMATETC* This);
5221 /*** IEnumFORMATETC methods ***/
5222 HRESULT (STDMETHODCALLTYPE *Next)(
5223 IEnumFORMATETC* This,
5224 ULONG celt,
5225 FORMATETC* rgelt,
5226 ULONG* pceltFetched);
5228 HRESULT (STDMETHODCALLTYPE *Skip)(
5229 IEnumFORMATETC* This,
5230 ULONG celt);
5232 HRESULT (STDMETHODCALLTYPE *Reset)(
5233 IEnumFORMATETC* This);
5235 HRESULT (STDMETHODCALLTYPE *Clone)(
5236 IEnumFORMATETC* This,
5237 IEnumFORMATETC** ppenum);
5241 /*** IUnknown methods ***/
5242 #define IEnumFORMATETC_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5243 #define IEnumFORMATETC_AddRef(p) (p)->lpVtbl->AddRef(p)
5244 #define IEnumFORMATETC_Release(p) (p)->lpVtbl->Release(p)
5245 /*** IEnumFORMATETC methods ***/
5246 #define IEnumFORMATETC_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5247 #define IEnumFORMATETC_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5248 #define IEnumFORMATETC_Reset(p) (p)->lpVtbl->Reset(p)
5249 #define IEnumFORMATETC_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5251 #endif
5253 #define IEnumFORMATETC_METHODS \
5254 ICOM_MSVTABLE_COMPAT_FIELDS \
5255 /*** IUnknown methods ***/ \
5256 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5257 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5258 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5259 /*** IEnumFORMATETC methods ***/ \
5260 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, FORMATETC* rgelt, ULONG* pceltFetched) PURE; \
5261 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
5262 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
5263 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumFORMATETC** ppenum) PURE;
5265 HRESULT CALLBACK IEnumFORMATETC_RemoteNext_Proxy(
5266 IEnumFORMATETC* This,
5267 ULONG celt,
5268 FORMATETC* rgelt,
5269 ULONG* pceltFetched);
5270 void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
5271 struct IRpcStubBuffer* This,
5272 struct IRpcChannelBuffer* pRpcChannelBuffer,
5273 PRPC_MESSAGE pRpcMessage,
5274 DWORD* pdwStubPhase);
5275 HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
5276 IEnumFORMATETC* This,
5277 ULONG celt,
5278 FORMATETC* rgelt,
5279 ULONG* pceltFetched);
5280 HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
5281 IEnumFORMATETC* This,
5282 ULONG celt,
5283 FORMATETC* rgelt,
5284 ULONG* pceltFetched);
5285 HRESULT CALLBACK IEnumFORMATETC_Skip_Proxy(
5286 IEnumFORMATETC* This,
5287 ULONG celt);
5288 void __RPC_STUB IEnumFORMATETC_Skip_Stub(
5289 struct IRpcStubBuffer* This,
5290 struct IRpcChannelBuffer* pRpcChannelBuffer,
5291 PRPC_MESSAGE pRpcMessage,
5292 DWORD* pdwStubPhase);
5293 HRESULT CALLBACK IEnumFORMATETC_Reset_Proxy(
5294 IEnumFORMATETC* This);
5295 void __RPC_STUB IEnumFORMATETC_Reset_Stub(
5296 struct IRpcStubBuffer* This,
5297 struct IRpcChannelBuffer* pRpcChannelBuffer,
5298 PRPC_MESSAGE pRpcMessage,
5299 DWORD* pdwStubPhase);
5300 HRESULT CALLBACK IEnumFORMATETC_Clone_Proxy(
5301 IEnumFORMATETC* This,
5302 IEnumFORMATETC** ppenum);
5303 void __RPC_STUB IEnumFORMATETC_Clone_Stub(
5304 struct IRpcStubBuffer* This,
5305 struct IRpcChannelBuffer* pRpcChannelBuffer,
5306 PRPC_MESSAGE pRpcMessage,
5307 DWORD* pdwStubPhase);
5309 #endif /* __IEnumFORMATETC_INTERFACE_DEFINED__ */
5311 #ifndef __IEnumSTATDATA_FWD_DEFINED__
5312 #define __IEnumSTATDATA_FWD_DEFINED__
5313 typedef struct IEnumSTATDATA IEnumSTATDATA;
5314 #endif
5316 typedef IEnumSTATDATA *LPENUMSTATDATA;
5318 typedef enum tagADVF {
5319 ADVF_NODATA = 1,
5320 ADVF_PRIMEFIRST = 2,
5321 ADVF_ONLYONCE = 4,
5322 ADVF_DATAONSTOP = 64,
5323 ADVFCACHE_NOHANDLER = 8,
5324 ADVFCACHE_FORCEBUILTIN = 16,
5325 ADVFCACHE_ONSAVE = 32
5326 } ADVF;
5328 typedef struct tagSTATDATA {
5329 FORMATETC formatetc;
5330 DWORD advf;
5331 IAdviseSink *pAdvSink;
5332 DWORD dwConnection;
5333 } STATDATA, *LPSTATDATA;
5335 /*****************************************************************************
5336 * IEnumSTATDATA interface
5338 #ifndef __IEnumSTATDATA_INTERFACE_DEFINED__
5339 #define __IEnumSTATDATA_INTERFACE_DEFINED__
5341 DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5342 #if defined(__cplusplus) && !defined(CINTERFACE)
5343 struct IEnumSTATDATA : public IUnknown
5345 virtual HRESULT STDMETHODCALLTYPE Next(
5346 ULONG celt,
5347 STATDATA* rgelt,
5348 ULONG* pceltFetched) = 0;
5350 virtual HRESULT STDMETHODCALLTYPE Skip(
5351 ULONG celt) = 0;
5353 virtual HRESULT STDMETHODCALLTYPE Reset(
5354 ) = 0;
5356 virtual HRESULT STDMETHODCALLTYPE Clone(
5357 IEnumSTATDATA** ppenum) = 0;
5360 #else
5361 typedef struct IEnumSTATDATAVtbl IEnumSTATDATAVtbl;
5362 struct IEnumSTATDATA {
5363 const IEnumSTATDATAVtbl* lpVtbl;
5365 struct IEnumSTATDATAVtbl {
5366 ICOM_MSVTABLE_COMPAT_FIELDS
5368 /*** IUnknown methods ***/
5369 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5370 IEnumSTATDATA* This,
5371 REFIID riid,
5372 void** ppvObject);
5374 ULONG (STDMETHODCALLTYPE *AddRef)(
5375 IEnumSTATDATA* This);
5377 ULONG (STDMETHODCALLTYPE *Release)(
5378 IEnumSTATDATA* This);
5380 /*** IEnumSTATDATA methods ***/
5381 HRESULT (STDMETHODCALLTYPE *Next)(
5382 IEnumSTATDATA* This,
5383 ULONG celt,
5384 STATDATA* rgelt,
5385 ULONG* pceltFetched);
5387 HRESULT (STDMETHODCALLTYPE *Skip)(
5388 IEnumSTATDATA* This,
5389 ULONG celt);
5391 HRESULT (STDMETHODCALLTYPE *Reset)(
5392 IEnumSTATDATA* This);
5394 HRESULT (STDMETHODCALLTYPE *Clone)(
5395 IEnumSTATDATA* This,
5396 IEnumSTATDATA** ppenum);
5400 /*** IUnknown methods ***/
5401 #define IEnumSTATDATA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5402 #define IEnumSTATDATA_AddRef(p) (p)->lpVtbl->AddRef(p)
5403 #define IEnumSTATDATA_Release(p) (p)->lpVtbl->Release(p)
5404 /*** IEnumSTATDATA methods ***/
5405 #define IEnumSTATDATA_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5406 #define IEnumSTATDATA_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5407 #define IEnumSTATDATA_Reset(p) (p)->lpVtbl->Reset(p)
5408 #define IEnumSTATDATA_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5410 #endif
5412 #define IEnumSTATDATA_METHODS \
5413 ICOM_MSVTABLE_COMPAT_FIELDS \
5414 /*** IUnknown methods ***/ \
5415 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5416 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5417 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5418 /*** IEnumSTATDATA methods ***/ \
5419 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATDATA* rgelt, ULONG* pceltFetched) PURE; \
5420 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
5421 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
5422 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATDATA** ppenum) PURE;
5424 HRESULT CALLBACK IEnumSTATDATA_RemoteNext_Proxy(
5425 IEnumSTATDATA* This,
5426 ULONG celt,
5427 STATDATA* rgelt,
5428 ULONG* pceltFetched);
5429 void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
5430 struct IRpcStubBuffer* This,
5431 struct IRpcChannelBuffer* pRpcChannelBuffer,
5432 PRPC_MESSAGE pRpcMessage,
5433 DWORD* pdwStubPhase);
5434 HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
5435 IEnumSTATDATA* This,
5436 ULONG celt,
5437 STATDATA* rgelt,
5438 ULONG* pceltFetched);
5439 HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
5440 IEnumSTATDATA* This,
5441 ULONG celt,
5442 STATDATA* rgelt,
5443 ULONG* pceltFetched);
5444 HRESULT CALLBACK IEnumSTATDATA_Skip_Proxy(
5445 IEnumSTATDATA* This,
5446 ULONG celt);
5447 void __RPC_STUB IEnumSTATDATA_Skip_Stub(
5448 struct IRpcStubBuffer* This,
5449 struct IRpcChannelBuffer* pRpcChannelBuffer,
5450 PRPC_MESSAGE pRpcMessage,
5451 DWORD* pdwStubPhase);
5452 HRESULT CALLBACK IEnumSTATDATA_Reset_Proxy(
5453 IEnumSTATDATA* This);
5454 void __RPC_STUB IEnumSTATDATA_Reset_Stub(
5455 struct IRpcStubBuffer* This,
5456 struct IRpcChannelBuffer* pRpcChannelBuffer,
5457 PRPC_MESSAGE pRpcMessage,
5458 DWORD* pdwStubPhase);
5459 HRESULT CALLBACK IEnumSTATDATA_Clone_Proxy(
5460 IEnumSTATDATA* This,
5461 IEnumSTATDATA** ppenum);
5462 void __RPC_STUB IEnumSTATDATA_Clone_Stub(
5463 struct IRpcStubBuffer* This,
5464 struct IRpcChannelBuffer* pRpcChannelBuffer,
5465 PRPC_MESSAGE pRpcMessage,
5466 DWORD* pdwStubPhase);
5468 #endif /* __IEnumSTATDATA_INTERFACE_DEFINED__ */
5470 typedef IAdviseSink *LPADVISESINK;
5472 typedef enum tagTYMED {
5473 TYMED_HGLOBAL = 1,
5474 TYMED_FILE = 2,
5475 TYMED_ISTREAM = 4,
5476 TYMED_ISTORAGE = 8,
5477 TYMED_GDI = 16,
5478 TYMED_MFPICT = 32,
5479 TYMED_ENHMF = 64,
5480 TYMED_NULL = 0
5481 } TYMED;
5483 typedef struct tagRemSTGMEDIUM {
5484 DWORD tymed;
5485 DWORD dwHandleType;
5486 unsigned long pData;
5487 unsigned long pUnkForRelease;
5488 unsigned long cbData;
5489 byte data[1];
5490 } RemSTGMEDIUM;
5492 typedef struct tagSTGMEDIUM {
5493 DWORD tymed;
5494 union {
5495 HBITMAP hBitmap;
5496 HMETAFILEPICT hMetaFilePict;
5497 HENHMETAFILE hEnhMetaFile;
5498 HGLOBAL hGlobal;
5499 LPOLESTR lpszFileName;
5500 IStream *pstm;
5501 IStorage *pstg;
5502 } DUMMYUNIONNAME;
5503 IUnknown *pUnkForRelease;
5504 } uSTGMEDIUM;
5506 typedef struct _GDI_OBJECT {
5507 DWORD ObjectType;
5508 union {
5509 wireHBITMAP hBitmap;
5510 wireHPALETTE hPalette;
5511 wireHGLOBAL hGeneric;
5512 } u;
5513 } GDI_OBJECT;
5515 typedef struct _userSTGMEDIUM {
5516 struct {
5517 DWORD tymed;
5518 union {
5519 wireHMETAFILEPICT hMetaFilePict;
5520 wireHENHMETAFILE hHEnhMetaFile;
5521 GDI_OBJECT *hGdiHandle;
5522 wireHGLOBAL hGlobal;
5523 LPOLESTR lpszFileName;
5524 BYTE_BLOB *pstm;
5525 BYTE_BLOB *pstg;
5526 } u;
5527 } DUMMYSTRUCTNAME;
5528 IUnknown *pUnkForRelease;
5529 } userSTGMEDIUM;
5531 typedef userSTGMEDIUM *wireSTGMEDIUM;
5533 typedef uSTGMEDIUM STGMEDIUM;
5534 unsigned long __RPC_USER STGMEDIUM_UserSize (unsigned long *, unsigned long, STGMEDIUM *);
5535 unsigned char * __RPC_USER STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, STGMEDIUM *);
5536 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, STGMEDIUM *);
5537 void __RPC_USER STGMEDIUM_UserFree (unsigned long *, STGMEDIUM *);
5539 typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
5541 typedef STGMEDIUM ASYNC_STGMEDIUM;
5542 unsigned long __RPC_USER ASYNC_STGMEDIUM_UserSize (unsigned long *, unsigned long, ASYNC_STGMEDIUM *);
5543 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, ASYNC_STGMEDIUM *);
5544 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, ASYNC_STGMEDIUM *);
5545 void __RPC_USER ASYNC_STGMEDIUM_UserFree (unsigned long *, ASYNC_STGMEDIUM *);
5547 typedef STGMEDIUM *LPSTGMEDIUM;
5549 typedef struct _userFLAG_STGMEDIUM {
5550 long ContextFlags;
5551 long fPassOwnership;
5552 userSTGMEDIUM Stgmed;
5553 } userFLAG_STGMEDIUM;
5555 typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
5557 typedef struct _FLAG_STGMEDIUM {
5558 long ContextFlags;
5559 long fPassOwnership;
5560 STGMEDIUM Stgmed;
5561 } FLAG_STGMEDIUM;
5562 unsigned long __RPC_USER FLAG_STGMEDIUM_UserSize (unsigned long *, unsigned long, FLAG_STGMEDIUM *);
5563 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, FLAG_STGMEDIUM *);
5564 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, FLAG_STGMEDIUM *);
5565 void __RPC_USER FLAG_STGMEDIUM_UserFree (unsigned long *, FLAG_STGMEDIUM *);
5567 /*****************************************************************************
5568 * IAdviseSink interface
5570 #ifndef __IAdviseSink_INTERFACE_DEFINED__
5571 #define __IAdviseSink_INTERFACE_DEFINED__
5573 DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5574 #if defined(__cplusplus) && !defined(CINTERFACE)
5575 struct IAdviseSink : public IUnknown
5577 virtual void STDMETHODCALLTYPE OnDataChange(
5578 FORMATETC* pFormatetc,
5579 STGMEDIUM* pStgmed) = 0;
5581 virtual void STDMETHODCALLTYPE OnViewChange(
5582 DWORD dwAspect,
5583 LONG lindex) = 0;
5585 virtual void STDMETHODCALLTYPE OnRename(
5586 IMoniker* pmk) = 0;
5588 virtual void STDMETHODCALLTYPE OnSave(
5589 ) = 0;
5591 virtual void STDMETHODCALLTYPE OnClose(
5592 ) = 0;
5595 #else
5596 typedef struct IAdviseSinkVtbl IAdviseSinkVtbl;
5597 struct IAdviseSink {
5598 const IAdviseSinkVtbl* lpVtbl;
5600 struct IAdviseSinkVtbl {
5601 ICOM_MSVTABLE_COMPAT_FIELDS
5603 /*** IUnknown methods ***/
5604 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5605 IAdviseSink* This,
5606 REFIID riid,
5607 void** ppvObject);
5609 ULONG (STDMETHODCALLTYPE *AddRef)(
5610 IAdviseSink* This);
5612 ULONG (STDMETHODCALLTYPE *Release)(
5613 IAdviseSink* This);
5615 /*** IAdviseSink methods ***/
5616 void (STDMETHODCALLTYPE *OnDataChange)(
5617 IAdviseSink* This,
5618 FORMATETC* pFormatetc,
5619 STGMEDIUM* pStgmed);
5621 void (STDMETHODCALLTYPE *OnViewChange)(
5622 IAdviseSink* This,
5623 DWORD dwAspect,
5624 LONG lindex);
5626 void (STDMETHODCALLTYPE *OnRename)(
5627 IAdviseSink* This,
5628 IMoniker* pmk);
5630 void (STDMETHODCALLTYPE *OnSave)(
5631 IAdviseSink* This);
5633 void (STDMETHODCALLTYPE *OnClose)(
5634 IAdviseSink* This);
5638 /*** IUnknown methods ***/
5639 #define IAdviseSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5640 #define IAdviseSink_AddRef(p) (p)->lpVtbl->AddRef(p)
5641 #define IAdviseSink_Release(p) (p)->lpVtbl->Release(p)
5642 /*** IAdviseSink methods ***/
5643 #define IAdviseSink_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
5644 #define IAdviseSink_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
5645 #define IAdviseSink_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
5646 #define IAdviseSink_OnSave(p) (p)->lpVtbl->OnSave(p)
5647 #define IAdviseSink_OnClose(p) (p)->lpVtbl->OnClose(p)
5649 #endif
5651 #define IAdviseSink_METHODS \
5652 ICOM_MSVTABLE_COMPAT_FIELDS \
5653 /*** IUnknown methods ***/ \
5654 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5655 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5656 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5657 /*** IAdviseSink methods ***/ \
5658 STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC* pFormatetc, STGMEDIUM* pStgmed) PURE; \
5659 STDMETHOD_(void,OnViewChange)(THIS_ DWORD dwAspect, LONG lindex) PURE; \
5660 STDMETHOD_(void,OnRename)(THIS_ IMoniker* pmk) PURE; \
5661 STDMETHOD_(void,OnSave)(THIS) PURE; \
5662 STDMETHOD_(void,OnClose)(THIS) PURE;
5664 HRESULT CALLBACK IAdviseSink_RemoteOnDataChange_Proxy(
5665 IAdviseSink* This,
5666 IAsyncManager** ppIAM,
5667 FORMATETC* pFormatetc,
5668 ASYNC_STGMEDIUM* pStgmed);
5669 void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
5670 struct IRpcStubBuffer* This,
5671 struct IRpcChannelBuffer* pRpcChannelBuffer,
5672 PRPC_MESSAGE pRpcMessage,
5673 DWORD* pdwStubPhase);
5674 void CALLBACK IAdviseSink_OnDataChange_Proxy(
5675 IAdviseSink* This,
5676 FORMATETC* pFormatetc,
5677 STGMEDIUM* pStgmed);
5678 HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
5679 IAdviseSink* This,
5680 IAsyncManager** ppIAM,
5681 FORMATETC* pFormatetc,
5682 ASYNC_STGMEDIUM* pStgmed);
5683 HRESULT CALLBACK IAdviseSink_RemoteOnViewChange_Proxy(
5684 IAdviseSink* This,
5685 IAsyncManager** ppIAM,
5686 DWORD dwAspect,
5687 LONG lindex);
5688 void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
5689 struct IRpcStubBuffer* This,
5690 struct IRpcChannelBuffer* pRpcChannelBuffer,
5691 PRPC_MESSAGE pRpcMessage,
5692 DWORD* pdwStubPhase);
5693 void CALLBACK IAdviseSink_OnViewChange_Proxy(
5694 IAdviseSink* This,
5695 DWORD dwAspect,
5696 LONG lindex);
5697 HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
5698 IAdviseSink* This,
5699 IAsyncManager** ppIAM,
5700 DWORD dwAspect,
5701 LONG lindex);
5702 HRESULT CALLBACK IAdviseSink_RemoteOnRename_Proxy(
5703 IAdviseSink* This,
5704 IAsyncManager** ppIAM,
5705 IMoniker* pmk);
5706 void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
5707 struct IRpcStubBuffer* This,
5708 struct IRpcChannelBuffer* pRpcChannelBuffer,
5709 PRPC_MESSAGE pRpcMessage,
5710 DWORD* pdwStubPhase);
5711 void CALLBACK IAdviseSink_OnRename_Proxy(
5712 IAdviseSink* This,
5713 IMoniker* pmk);
5714 HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
5715 IAdviseSink* This,
5716 IAsyncManager** ppIAM,
5717 IMoniker* pmk);
5718 HRESULT CALLBACK IAdviseSink_RemoteOnSave_Proxy(
5719 IAdviseSink* This,
5720 IAsyncManager** ppIAM);
5721 void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
5722 struct IRpcStubBuffer* This,
5723 struct IRpcChannelBuffer* pRpcChannelBuffer,
5724 PRPC_MESSAGE pRpcMessage,
5725 DWORD* pdwStubPhase);
5726 void CALLBACK IAdviseSink_OnSave_Proxy(
5727 IAdviseSink* This);
5728 HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
5729 IAdviseSink* This,
5730 IAsyncManager** ppIAM);
5731 HRESULT CALLBACK IAdviseSink_RemoteOnClose_Proxy(
5732 IAdviseSink* This);
5733 void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
5734 struct IRpcStubBuffer* This,
5735 struct IRpcChannelBuffer* pRpcChannelBuffer,
5736 PRPC_MESSAGE pRpcMessage,
5737 DWORD* pdwStubPhase);
5738 void CALLBACK IAdviseSink_OnClose_Proxy(
5739 IAdviseSink* This);
5740 HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
5741 IAdviseSink* This);
5743 #endif /* __IAdviseSink_INTERFACE_DEFINED__ */
5745 #ifndef __IAdviseSink2_FWD_DEFINED__
5746 #define __IAdviseSink2_FWD_DEFINED__
5747 typedef struct IAdviseSink2 IAdviseSink2;
5748 #endif
5750 typedef IAdviseSink2 *LPADVISESINK2;
5752 /*****************************************************************************
5753 * IAdviseSink2 interface
5755 #ifndef __IAdviseSink2_INTERFACE_DEFINED__
5756 #define __IAdviseSink2_INTERFACE_DEFINED__
5758 DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5759 #if defined(__cplusplus) && !defined(CINTERFACE)
5760 struct IAdviseSink2 : public IAdviseSink
5762 virtual void STDMETHODCALLTYPE OnLinkSrcChange(
5763 IMoniker* pmk) = 0;
5766 #else
5767 typedef struct IAdviseSink2Vtbl IAdviseSink2Vtbl;
5768 struct IAdviseSink2 {
5769 const IAdviseSink2Vtbl* lpVtbl;
5771 struct IAdviseSink2Vtbl {
5772 ICOM_MSVTABLE_COMPAT_FIELDS
5774 /*** IUnknown methods ***/
5775 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5776 IAdviseSink2* This,
5777 REFIID riid,
5778 void** ppvObject);
5780 ULONG (STDMETHODCALLTYPE *AddRef)(
5781 IAdviseSink2* This);
5783 ULONG (STDMETHODCALLTYPE *Release)(
5784 IAdviseSink2* This);
5786 /*** IAdviseSink methods ***/
5787 void (STDMETHODCALLTYPE *OnDataChange)(
5788 IAdviseSink2* This,
5789 FORMATETC* pFormatetc,
5790 STGMEDIUM* pStgmed);
5792 void (STDMETHODCALLTYPE *OnViewChange)(
5793 IAdviseSink2* This,
5794 DWORD dwAspect,
5795 LONG lindex);
5797 void (STDMETHODCALLTYPE *OnRename)(
5798 IAdviseSink2* This,
5799 IMoniker* pmk);
5801 void (STDMETHODCALLTYPE *OnSave)(
5802 IAdviseSink2* This);
5804 void (STDMETHODCALLTYPE *OnClose)(
5805 IAdviseSink2* This);
5807 /*** IAdviseSink2 methods ***/
5808 void (STDMETHODCALLTYPE *OnLinkSrcChange)(
5809 IAdviseSink2* This,
5810 IMoniker* pmk);
5814 /*** IUnknown methods ***/
5815 #define IAdviseSink2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5816 #define IAdviseSink2_AddRef(p) (p)->lpVtbl->AddRef(p)
5817 #define IAdviseSink2_Release(p) (p)->lpVtbl->Release(p)
5818 /*** IAdviseSink methods ***/
5819 #define IAdviseSink2_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
5820 #define IAdviseSink2_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
5821 #define IAdviseSink2_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
5822 #define IAdviseSink2_OnSave(p) (p)->lpVtbl->OnSave(p)
5823 #define IAdviseSink2_OnClose(p) (p)->lpVtbl->OnClose(p)
5824 /*** IAdviseSink2 methods ***/
5825 #define IAdviseSink2_OnLinkSrcChange(p,a) (p)->lpVtbl->OnLinkSrcChange(p,a)
5827 #endif
5829 #define IAdviseSink2_METHODS \
5830 ICOM_MSVTABLE_COMPAT_FIELDS \
5831 /*** IUnknown methods ***/ \
5832 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5833 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5834 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5835 /*** IAdviseSink methods ***/ \
5836 STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC* pFormatetc, STGMEDIUM* pStgmed) PURE; \
5837 STDMETHOD_(void,OnViewChange)(THIS_ DWORD dwAspect, LONG lindex) PURE; \
5838 STDMETHOD_(void,OnRename)(THIS_ IMoniker* pmk) PURE; \
5839 STDMETHOD_(void,OnSave)(THIS) PURE; \
5840 STDMETHOD_(void,OnClose)(THIS) PURE; \
5841 /*** IAdviseSink2 methods ***/ \
5842 STDMETHOD_(void,OnLinkSrcChange)(THIS_ IMoniker* pmk) PURE;
5844 HRESULT CALLBACK IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
5845 IAdviseSink2* This,
5846 IAsyncManager** ppIAM,
5847 IMoniker* pmk);
5848 void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
5849 struct IRpcStubBuffer* This,
5850 struct IRpcChannelBuffer* pRpcChannelBuffer,
5851 PRPC_MESSAGE pRpcMessage,
5852 DWORD* pdwStubPhase);
5853 void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
5854 IAdviseSink2* This,
5855 IMoniker* pmk);
5856 HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
5857 IAdviseSink2* This,
5858 IAsyncManager** ppIAM,
5859 IMoniker* pmk);
5861 #endif /* __IAdviseSink2_INTERFACE_DEFINED__ */
5863 #ifndef __IDataObject_FWD_DEFINED__
5864 #define __IDataObject_FWD_DEFINED__
5865 typedef struct IDataObject IDataObject;
5866 #endif
5868 typedef IDataObject *LPDATAOBJECT;
5870 typedef enum tagDATADIR {
5871 DATADIR_GET = 1,
5872 DATADIR_SET = 2
5873 } DATADIR;
5875 /*****************************************************************************
5876 * IDataObject interface
5878 #ifndef __IDataObject_INTERFACE_DEFINED__
5879 #define __IDataObject_INTERFACE_DEFINED__
5881 DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5882 #if defined(__cplusplus) && !defined(CINTERFACE)
5883 struct IDataObject : public IUnknown
5885 virtual HRESULT STDMETHODCALLTYPE GetData(
5886 FORMATETC* pformatetcIn,
5887 STGMEDIUM* pmedium) = 0;
5889 virtual HRESULT STDMETHODCALLTYPE GetDataHere(
5890 FORMATETC* pformatetc,
5891 STGMEDIUM* pmedium) = 0;
5893 virtual HRESULT STDMETHODCALLTYPE QueryGetData(
5894 FORMATETC* pformatetc) = 0;
5896 virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(
5897 FORMATETC* pformatectIn,
5898 FORMATETC* pformatetcOut) = 0;
5900 virtual HRESULT STDMETHODCALLTYPE SetData(
5901 FORMATETC* pformatetc,
5902 STGMEDIUM* pmedium,
5903 BOOL fRelease) = 0;
5905 virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(
5906 DWORD dwDirection,
5907 IEnumFORMATETC** ppenumFormatEtc) = 0;
5909 virtual HRESULT STDMETHODCALLTYPE DAdvise(
5910 FORMATETC* pformatetc,
5911 DWORD advf,
5912 IAdviseSink* pAdvSink,
5913 DWORD* pdwConnection) = 0;
5915 virtual HRESULT STDMETHODCALLTYPE DUnadvise(
5916 DWORD dwConnection) = 0;
5918 virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(
5919 IEnumSTATDATA** ppenumAdvise) = 0;
5922 #else
5923 typedef struct IDataObjectVtbl IDataObjectVtbl;
5924 struct IDataObject {
5925 const IDataObjectVtbl* lpVtbl;
5927 struct IDataObjectVtbl {
5928 ICOM_MSVTABLE_COMPAT_FIELDS
5930 /*** IUnknown methods ***/
5931 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5932 IDataObject* This,
5933 REFIID riid,
5934 void** ppvObject);
5936 ULONG (STDMETHODCALLTYPE *AddRef)(
5937 IDataObject* This);
5939 ULONG (STDMETHODCALLTYPE *Release)(
5940 IDataObject* This);
5942 /*** IDataObject methods ***/
5943 HRESULT (STDMETHODCALLTYPE *GetData)(
5944 IDataObject* This,
5945 FORMATETC* pformatetcIn,
5946 STGMEDIUM* pmedium);
5948 HRESULT (STDMETHODCALLTYPE *GetDataHere)(
5949 IDataObject* This,
5950 FORMATETC* pformatetc,
5951 STGMEDIUM* pmedium);
5953 HRESULT (STDMETHODCALLTYPE *QueryGetData)(
5954 IDataObject* This,
5955 FORMATETC* pformatetc);
5957 HRESULT (STDMETHODCALLTYPE *GetCanonicalFormatEtc)(
5958 IDataObject* This,
5959 FORMATETC* pformatectIn,
5960 FORMATETC* pformatetcOut);
5962 HRESULT (STDMETHODCALLTYPE *SetData)(
5963 IDataObject* This,
5964 FORMATETC* pformatetc,
5965 STGMEDIUM* pmedium,
5966 BOOL fRelease);
5968 HRESULT (STDMETHODCALLTYPE *EnumFormatEtc)(
5969 IDataObject* This,
5970 DWORD dwDirection,
5971 IEnumFORMATETC** ppenumFormatEtc);
5973 HRESULT (STDMETHODCALLTYPE *DAdvise)(
5974 IDataObject* This,
5975 FORMATETC* pformatetc,
5976 DWORD advf,
5977 IAdviseSink* pAdvSink,
5978 DWORD* pdwConnection);
5980 HRESULT (STDMETHODCALLTYPE *DUnadvise)(
5981 IDataObject* This,
5982 DWORD dwConnection);
5984 HRESULT (STDMETHODCALLTYPE *EnumDAdvise)(
5985 IDataObject* This,
5986 IEnumSTATDATA** ppenumAdvise);
5990 /*** IUnknown methods ***/
5991 #define IDataObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5992 #define IDataObject_AddRef(p) (p)->lpVtbl->AddRef(p)
5993 #define IDataObject_Release(p) (p)->lpVtbl->Release(p)
5994 /*** IDataObject methods ***/
5995 #define IDataObject_GetData(p,a,b) (p)->lpVtbl->GetData(p,a,b)
5996 #define IDataObject_GetDataHere(p,a,b) (p)->lpVtbl->GetDataHere(p,a,b)
5997 #define IDataObject_QueryGetData(p,a) (p)->lpVtbl->QueryGetData(p,a)
5998 #define IDataObject_GetCanonicalFormatEtc(p,a,b) (p)->lpVtbl->GetCanonicalFormatEtc(p,a,b)
5999 #define IDataObject_SetData(p,a,b,c) (p)->lpVtbl->SetData(p,a,b,c)
6000 #define IDataObject_EnumFormatEtc(p,a,b) (p)->lpVtbl->EnumFormatEtc(p,a,b)
6001 #define IDataObject_DAdvise(p,a,b,c,d) (p)->lpVtbl->DAdvise(p,a,b,c,d)
6002 #define IDataObject_DUnadvise(p,a) (p)->lpVtbl->DUnadvise(p,a)
6003 #define IDataObject_EnumDAdvise(p,a) (p)->lpVtbl->EnumDAdvise(p,a)
6005 #endif
6007 #define IDataObject_METHODS \
6008 ICOM_MSVTABLE_COMPAT_FIELDS \
6009 /*** IUnknown methods ***/ \
6010 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6011 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6012 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6013 /*** IDataObject methods ***/ \
6014 STDMETHOD_(HRESULT,GetData)(THIS_ FORMATETC* pformatetcIn, STGMEDIUM* pmedium) PURE; \
6015 STDMETHOD_(HRESULT,GetDataHere)(THIS_ FORMATETC* pformatetc, STGMEDIUM* pmedium) PURE; \
6016 STDMETHOD_(HRESULT,QueryGetData)(THIS_ FORMATETC* pformatetc) PURE; \
6017 STDMETHOD_(HRESULT,GetCanonicalFormatEtc)(THIS_ FORMATETC* pformatectIn, FORMATETC* pformatetcOut) PURE; \
6018 STDMETHOD_(HRESULT,SetData)(THIS_ FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease) PURE; \
6019 STDMETHOD_(HRESULT,EnumFormatEtc)(THIS_ DWORD dwDirection, IEnumFORMATETC** ppenumFormatEtc) PURE; \
6020 STDMETHOD_(HRESULT,DAdvise)(THIS_ FORMATETC* pformatetc, DWORD advf, IAdviseSink* pAdvSink, DWORD* pdwConnection) PURE; \
6021 STDMETHOD_(HRESULT,DUnadvise)(THIS_ DWORD dwConnection) PURE; \
6022 STDMETHOD_(HRESULT,EnumDAdvise)(THIS_ IEnumSTATDATA** ppenumAdvise) PURE;
6024 HRESULT CALLBACK IDataObject_RemoteGetData_Proxy(
6025 IDataObject* This,
6026 FORMATETC* pformatetcIn,
6027 STGMEDIUM* pRemoteMedium);
6028 void __RPC_STUB IDataObject_RemoteGetData_Stub(
6029 struct IRpcStubBuffer* This,
6030 struct IRpcChannelBuffer* pRpcChannelBuffer,
6031 PRPC_MESSAGE pRpcMessage,
6032 DWORD* pdwStubPhase);
6033 HRESULT CALLBACK IDataObject_GetData_Proxy(
6034 IDataObject* This,
6035 FORMATETC* pformatetcIn,
6036 STGMEDIUM* pmedium);
6037 HRESULT __RPC_STUB IDataObject_GetData_Stub(
6038 IDataObject* This,
6039 FORMATETC* pformatetcIn,
6040 STGMEDIUM* pRemoteMedium);
6041 HRESULT CALLBACK IDataObject_RemoteGetDataHere_Proxy(
6042 IDataObject* This,
6043 FORMATETC* pformatetc,
6044 STGMEDIUM* pRemoteMedium);
6045 void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
6046 struct IRpcStubBuffer* This,
6047 struct IRpcChannelBuffer* pRpcChannelBuffer,
6048 PRPC_MESSAGE pRpcMessage,
6049 DWORD* pdwStubPhase);
6050 HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
6051 IDataObject* This,
6052 FORMATETC* pformatetc,
6053 STGMEDIUM* pmedium);
6054 HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
6055 IDataObject* This,
6056 FORMATETC* pformatetc,
6057 STGMEDIUM* pRemoteMedium);
6058 HRESULT CALLBACK IDataObject_QueryGetData_Proxy(
6059 IDataObject* This,
6060 FORMATETC* pformatetc);
6061 void __RPC_STUB IDataObject_QueryGetData_Stub(
6062 struct IRpcStubBuffer* This,
6063 struct IRpcChannelBuffer* pRpcChannelBuffer,
6064 PRPC_MESSAGE pRpcMessage,
6065 DWORD* pdwStubPhase);
6066 HRESULT CALLBACK IDataObject_GetCanonicalFormatEtc_Proxy(
6067 IDataObject* This,
6068 FORMATETC* pformatectIn,
6069 FORMATETC* pformatetcOut);
6070 void __RPC_STUB IDataObject_GetCanonicalFormatEtc_Stub(
6071 struct IRpcStubBuffer* This,
6072 struct IRpcChannelBuffer* pRpcChannelBuffer,
6073 PRPC_MESSAGE pRpcMessage,
6074 DWORD* pdwStubPhase);
6075 HRESULT CALLBACK IDataObject_RemoteSetData_Proxy(
6076 IDataObject* This,
6077 FORMATETC* pformatetc,
6078 FLAG_STGMEDIUM* pmedium,
6079 BOOL fRelease);
6080 void __RPC_STUB IDataObject_RemoteSetData_Stub(
6081 struct IRpcStubBuffer* This,
6082 struct IRpcChannelBuffer* pRpcChannelBuffer,
6083 PRPC_MESSAGE pRpcMessage,
6084 DWORD* pdwStubPhase);
6085 HRESULT CALLBACK IDataObject_SetData_Proxy(
6086 IDataObject* This,
6087 FORMATETC* pformatetc,
6088 STGMEDIUM* pmedium,
6089 BOOL fRelease);
6090 HRESULT __RPC_STUB IDataObject_SetData_Stub(
6091 IDataObject* This,
6092 FORMATETC* pformatetc,
6093 FLAG_STGMEDIUM* pmedium,
6094 BOOL fRelease);
6095 HRESULT CALLBACK IDataObject_EnumFormatEtc_Proxy(
6096 IDataObject* This,
6097 DWORD dwDirection,
6098 IEnumFORMATETC** ppenumFormatEtc);
6099 void __RPC_STUB IDataObject_EnumFormatEtc_Stub(
6100 struct IRpcStubBuffer* This,
6101 struct IRpcChannelBuffer* pRpcChannelBuffer,
6102 PRPC_MESSAGE pRpcMessage,
6103 DWORD* pdwStubPhase);
6104 HRESULT CALLBACK IDataObject_DAdvise_Proxy(
6105 IDataObject* This,
6106 FORMATETC* pformatetc,
6107 DWORD advf,
6108 IAdviseSink* pAdvSink,
6109 DWORD* pdwConnection);
6110 void __RPC_STUB IDataObject_DAdvise_Stub(
6111 struct IRpcStubBuffer* This,
6112 struct IRpcChannelBuffer* pRpcChannelBuffer,
6113 PRPC_MESSAGE pRpcMessage,
6114 DWORD* pdwStubPhase);
6115 HRESULT CALLBACK IDataObject_DUnadvise_Proxy(
6116 IDataObject* This,
6117 DWORD dwConnection);
6118 void __RPC_STUB IDataObject_DUnadvise_Stub(
6119 struct IRpcStubBuffer* This,
6120 struct IRpcChannelBuffer* pRpcChannelBuffer,
6121 PRPC_MESSAGE pRpcMessage,
6122 DWORD* pdwStubPhase);
6123 HRESULT CALLBACK IDataObject_EnumDAdvise_Proxy(
6124 IDataObject* This,
6125 IEnumSTATDATA** ppenumAdvise);
6126 void __RPC_STUB IDataObject_EnumDAdvise_Stub(
6127 struct IRpcStubBuffer* This,
6128 struct IRpcChannelBuffer* pRpcChannelBuffer,
6129 PRPC_MESSAGE pRpcMessage,
6130 DWORD* pdwStubPhase);
6132 #endif /* __IDataObject_INTERFACE_DEFINED__ */
6134 #ifndef __IDataAdviseHolder_FWD_DEFINED__
6135 #define __IDataAdviseHolder_FWD_DEFINED__
6136 typedef struct IDataAdviseHolder IDataAdviseHolder;
6137 #endif
6139 typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
6141 /*****************************************************************************
6142 * IDataAdviseHolder interface
6144 #ifndef __IDataAdviseHolder_INTERFACE_DEFINED__
6145 #define __IDataAdviseHolder_INTERFACE_DEFINED__
6147 DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6148 #if defined(__cplusplus) && !defined(CINTERFACE)
6149 struct IDataAdviseHolder : public IUnknown
6151 virtual HRESULT STDMETHODCALLTYPE Advise(
6152 IDataObject* pDataObject,
6153 FORMATETC* pFetc,
6154 DWORD advf,
6155 IAdviseSink* pAdvise,
6156 DWORD* pdwConnection) = 0;
6158 virtual HRESULT STDMETHODCALLTYPE Unadvise(
6159 DWORD dwConnection) = 0;
6161 virtual HRESULT STDMETHODCALLTYPE EnumAdvise(
6162 IEnumSTATDATA** ppenumAdvise) = 0;
6164 virtual HRESULT STDMETHODCALLTYPE SendOnDataChange(
6165 IDataObject* pDataObject,
6166 DWORD dwReserved,
6167 DWORD advf) = 0;
6170 #else
6171 typedef struct IDataAdviseHolderVtbl IDataAdviseHolderVtbl;
6172 struct IDataAdviseHolder {
6173 const IDataAdviseHolderVtbl* lpVtbl;
6175 struct IDataAdviseHolderVtbl {
6176 ICOM_MSVTABLE_COMPAT_FIELDS
6178 /*** IUnknown methods ***/
6179 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6180 IDataAdviseHolder* This,
6181 REFIID riid,
6182 void** ppvObject);
6184 ULONG (STDMETHODCALLTYPE *AddRef)(
6185 IDataAdviseHolder* This);
6187 ULONG (STDMETHODCALLTYPE *Release)(
6188 IDataAdviseHolder* This);
6190 /*** IDataAdviseHolder methods ***/
6191 HRESULT (STDMETHODCALLTYPE *Advise)(
6192 IDataAdviseHolder* This,
6193 IDataObject* pDataObject,
6194 FORMATETC* pFetc,
6195 DWORD advf,
6196 IAdviseSink* pAdvise,
6197 DWORD* pdwConnection);
6199 HRESULT (STDMETHODCALLTYPE *Unadvise)(
6200 IDataAdviseHolder* This,
6201 DWORD dwConnection);
6203 HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
6204 IDataAdviseHolder* This,
6205 IEnumSTATDATA** ppenumAdvise);
6207 HRESULT (STDMETHODCALLTYPE *SendOnDataChange)(
6208 IDataAdviseHolder* This,
6209 IDataObject* pDataObject,
6210 DWORD dwReserved,
6211 DWORD advf);
6215 /*** IUnknown methods ***/
6216 #define IDataAdviseHolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6217 #define IDataAdviseHolder_AddRef(p) (p)->lpVtbl->AddRef(p)
6218 #define IDataAdviseHolder_Release(p) (p)->lpVtbl->Release(p)
6219 /*** IDataAdviseHolder methods ***/
6220 #define IDataAdviseHolder_Advise(p,a,b,c,d,e) (p)->lpVtbl->Advise(p,a,b,c,d,e)
6221 #define IDataAdviseHolder_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
6222 #define IDataAdviseHolder_EnumAdvise(p,a) (p)->lpVtbl->EnumAdvise(p,a)
6223 #define IDataAdviseHolder_SendOnDataChange(p,a,b,c) (p)->lpVtbl->SendOnDataChange(p,a,b,c)
6225 #endif
6227 #define IDataAdviseHolder_METHODS \
6228 ICOM_MSVTABLE_COMPAT_FIELDS \
6229 /*** IUnknown methods ***/ \
6230 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6231 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6232 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6233 /*** IDataAdviseHolder methods ***/ \
6234 STDMETHOD_(HRESULT,Advise)(THIS_ IDataObject* pDataObject, FORMATETC* pFetc, DWORD advf, IAdviseSink* pAdvise, DWORD* pdwConnection) PURE; \
6235 STDMETHOD_(HRESULT,Unadvise)(THIS_ DWORD dwConnection) PURE; \
6236 STDMETHOD_(HRESULT,EnumAdvise)(THIS_ IEnumSTATDATA** ppenumAdvise) PURE; \
6237 STDMETHOD_(HRESULT,SendOnDataChange)(THIS_ IDataObject* pDataObject, DWORD dwReserved, DWORD advf) PURE;
6239 HRESULT CALLBACK IDataAdviseHolder_Advise_Proxy(
6240 IDataAdviseHolder* This,
6241 IDataObject* pDataObject,
6242 FORMATETC* pFetc,
6243 DWORD advf,
6244 IAdviseSink* pAdvise,
6245 DWORD* pdwConnection);
6246 void __RPC_STUB IDataAdviseHolder_Advise_Stub(
6247 struct IRpcStubBuffer* This,
6248 struct IRpcChannelBuffer* pRpcChannelBuffer,
6249 PRPC_MESSAGE pRpcMessage,
6250 DWORD* pdwStubPhase);
6251 HRESULT CALLBACK IDataAdviseHolder_Unadvise_Proxy(
6252 IDataAdviseHolder* This,
6253 DWORD dwConnection);
6254 void __RPC_STUB IDataAdviseHolder_Unadvise_Stub(
6255 struct IRpcStubBuffer* This,
6256 struct IRpcChannelBuffer* pRpcChannelBuffer,
6257 PRPC_MESSAGE pRpcMessage,
6258 DWORD* pdwStubPhase);
6259 HRESULT CALLBACK IDataAdviseHolder_EnumAdvise_Proxy(
6260 IDataAdviseHolder* This,
6261 IEnumSTATDATA** ppenumAdvise);
6262 void __RPC_STUB IDataAdviseHolder_EnumAdvise_Stub(
6263 struct IRpcStubBuffer* This,
6264 struct IRpcChannelBuffer* pRpcChannelBuffer,
6265 PRPC_MESSAGE pRpcMessage,
6266 DWORD* pdwStubPhase);
6267 HRESULT CALLBACK IDataAdviseHolder_SendOnDataChange_Proxy(
6268 IDataAdviseHolder* This,
6269 IDataObject* pDataObject,
6270 DWORD dwReserved,
6271 DWORD advf);
6272 void __RPC_STUB IDataAdviseHolder_SendOnDataChange_Stub(
6273 struct IRpcStubBuffer* This,
6274 struct IRpcChannelBuffer* pRpcChannelBuffer,
6275 PRPC_MESSAGE pRpcMessage,
6276 DWORD* pdwStubPhase);
6278 #endif /* __IDataAdviseHolder_INTERFACE_DEFINED__ */
6280 #ifndef __IMessageFilter_FWD_DEFINED__
6281 #define __IMessageFilter_FWD_DEFINED__
6282 typedef struct IMessageFilter IMessageFilter;
6283 #endif
6285 typedef IMessageFilter *LPMESSAGEFILTER;
6287 typedef enum tagCALLTYPE {
6288 CALLTYPE_TOPLEVEL = 1,
6289 CALLTYPE_NESTED = 2,
6290 CALLTYPE_ASYNC = 3,
6291 CALLTYPE_TOPLEVEL_CALLPENDING = 4,
6292 CALLTYPE_ASYNC_CALLPENDING = 5
6293 } CALLTYPE;
6295 typedef enum tagSERVERCALL {
6296 SERVERCALL_ISHANDLED = 0,
6297 SERVERCALL_REJECTED = 1,
6298 SERVERCALL_RETRYLATER = 2
6299 } SERVERCALL;
6301 typedef enum tagPENDINGTYPE {
6302 PENDINGTYPE_TOPLEVEL = 1,
6303 PENDINGTYPE_NESTED = 2
6304 } PENDINGTYPE;
6306 typedef enum tagPENDINGMSG {
6307 PENDINGMSG_CANCELCALL = 0,
6308 PENDINGMSG_WAITNOPROCESS = 1,
6309 PENDINGMSG_WAITDEFPROCESS = 2
6310 } PENDINGMSG;
6312 typedef struct tagINTERFACEINFO {
6313 IUnknown *pUnk;
6314 IID iid;
6315 WORD wMethod;
6316 } INTERFACEINFO, *LPINTERFACEINFO;
6318 /*****************************************************************************
6319 * IMessageFilter interface
6321 #ifndef __IMessageFilter_INTERFACE_DEFINED__
6322 #define __IMessageFilter_INTERFACE_DEFINED__
6324 DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6325 #if defined(__cplusplus) && !defined(CINTERFACE)
6326 struct IMessageFilter : public IUnknown
6328 virtual DWORD STDMETHODCALLTYPE HandleIncomingCall(
6329 DWORD dwCallType,
6330 HTASK htaskCaller,
6331 DWORD dwTickCount,
6332 LPINTERFACEINFO lpInterfaceInfo) = 0;
6334 virtual DWORD STDMETHODCALLTYPE RetryRejectedCall(
6335 HTASK htaskCallee,
6336 DWORD dwTickCount,
6337 DWORD dwRejectType) = 0;
6339 virtual DWORD STDMETHODCALLTYPE MessagePending(
6340 HTASK htaskCallee,
6341 DWORD dwTickCount,
6342 DWORD dwPendingType) = 0;
6345 #else
6346 typedef struct IMessageFilterVtbl IMessageFilterVtbl;
6347 struct IMessageFilter {
6348 const IMessageFilterVtbl* lpVtbl;
6350 struct IMessageFilterVtbl {
6351 ICOM_MSVTABLE_COMPAT_FIELDS
6353 /*** IUnknown methods ***/
6354 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6355 IMessageFilter* This,
6356 REFIID riid,
6357 void** ppvObject);
6359 ULONG (STDMETHODCALLTYPE *AddRef)(
6360 IMessageFilter* This);
6362 ULONG (STDMETHODCALLTYPE *Release)(
6363 IMessageFilter* This);
6365 /*** IMessageFilter methods ***/
6366 DWORD (STDMETHODCALLTYPE *HandleIncomingCall)(
6367 IMessageFilter* This,
6368 DWORD dwCallType,
6369 HTASK htaskCaller,
6370 DWORD dwTickCount,
6371 LPINTERFACEINFO lpInterfaceInfo);
6373 DWORD (STDMETHODCALLTYPE *RetryRejectedCall)(
6374 IMessageFilter* This,
6375 HTASK htaskCallee,
6376 DWORD dwTickCount,
6377 DWORD dwRejectType);
6379 DWORD (STDMETHODCALLTYPE *MessagePending)(
6380 IMessageFilter* This,
6381 HTASK htaskCallee,
6382 DWORD dwTickCount,
6383 DWORD dwPendingType);
6387 /*** IUnknown methods ***/
6388 #define IMessageFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6389 #define IMessageFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
6390 #define IMessageFilter_Release(p) (p)->lpVtbl->Release(p)
6391 /*** IMessageFilter methods ***/
6392 #define IMessageFilter_HandleIncomingCall(p,a,b,c,d) (p)->lpVtbl->HandleIncomingCall(p,a,b,c,d)
6393 #define IMessageFilter_RetryRejectedCall(p,a,b,c) (p)->lpVtbl->RetryRejectedCall(p,a,b,c)
6394 #define IMessageFilter_MessagePending(p,a,b,c) (p)->lpVtbl->MessagePending(p,a,b,c)
6396 #endif
6398 #define IMessageFilter_METHODS \
6399 ICOM_MSVTABLE_COMPAT_FIELDS \
6400 /*** IUnknown methods ***/ \
6401 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6402 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6403 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6404 /*** IMessageFilter methods ***/ \
6405 STDMETHOD_(DWORD,HandleIncomingCall)(THIS_ DWORD dwCallType, HTASK htaskCaller, DWORD dwTickCount, LPINTERFACEINFO lpInterfaceInfo) PURE; \
6406 STDMETHOD_(DWORD,RetryRejectedCall)(THIS_ HTASK htaskCallee, DWORD dwTickCount, DWORD dwRejectType) PURE; \
6407 STDMETHOD_(DWORD,MessagePending)(THIS_ HTASK htaskCallee, DWORD dwTickCount, DWORD dwPendingType) PURE;
6409 DWORD CALLBACK IMessageFilter_HandleIncomingCall_Proxy(
6410 IMessageFilter* This,
6411 DWORD dwCallType,
6412 HTASK htaskCaller,
6413 DWORD dwTickCount,
6414 LPINTERFACEINFO lpInterfaceInfo);
6415 void __RPC_STUB IMessageFilter_HandleIncomingCall_Stub(
6416 struct IRpcStubBuffer* This,
6417 struct IRpcChannelBuffer* pRpcChannelBuffer,
6418 PRPC_MESSAGE pRpcMessage,
6419 DWORD* pdwStubPhase);
6420 DWORD CALLBACK IMessageFilter_RetryRejectedCall_Proxy(
6421 IMessageFilter* This,
6422 HTASK htaskCallee,
6423 DWORD dwTickCount,
6424 DWORD dwRejectType);
6425 void __RPC_STUB IMessageFilter_RetryRejectedCall_Stub(
6426 struct IRpcStubBuffer* This,
6427 struct IRpcChannelBuffer* pRpcChannelBuffer,
6428 PRPC_MESSAGE pRpcMessage,
6429 DWORD* pdwStubPhase);
6430 DWORD CALLBACK IMessageFilter_MessagePending_Proxy(
6431 IMessageFilter* This,
6432 HTASK htaskCallee,
6433 DWORD dwTickCount,
6434 DWORD dwPendingType);
6435 void __RPC_STUB IMessageFilter_MessagePending_Stub(
6436 struct IRpcStubBuffer* This,
6437 struct IRpcChannelBuffer* pRpcChannelBuffer,
6438 PRPC_MESSAGE pRpcMessage,
6439 DWORD* pdwStubPhase);
6441 #endif /* __IMessageFilter_INTERFACE_DEFINED__ */
6443 #ifndef __IRpcChannelBuffer_FWD_DEFINED__
6444 #define __IRpcChannelBuffer_FWD_DEFINED__
6445 typedef struct IRpcChannelBuffer IRpcChannelBuffer;
6446 #endif
6448 typedef IRpcChannelBuffer *LPRPCCHANNELBUFFER;
6450 typedef unsigned long RPCOLEDATAREP;
6452 typedef struct tagRPCOLEMESSAGE {
6453 void *reserved1;
6454 RPCOLEDATAREP dataRepresentation;
6455 void *Buffer;
6456 ULONG cbBuffer;
6457 ULONG iMethod;
6458 void *reserved2[5];
6459 ULONG rpcFlags;
6460 } RPCOLEMESSAGE;
6462 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
6464 /*****************************************************************************
6465 * IRpcChannelBuffer interface
6467 #ifndef __IRpcChannelBuffer_INTERFACE_DEFINED__
6468 #define __IRpcChannelBuffer_INTERFACE_DEFINED__
6470 DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
6471 #if defined(__cplusplus) && !defined(CINTERFACE)
6472 struct IRpcChannelBuffer : public IUnknown
6474 virtual HRESULT STDMETHODCALLTYPE GetBuffer(
6475 RPCOLEMESSAGE* pMessage,
6476 REFIID riid) = 0;
6478 virtual HRESULT STDMETHODCALLTYPE SendReceive(
6479 RPCOLEMESSAGE* pMessage,
6480 ULONG* pStatus) = 0;
6482 virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
6483 RPCOLEMESSAGE* pMessage) = 0;
6485 virtual HRESULT STDMETHODCALLTYPE GetDestCtx(
6486 DWORD* pdwDestContext,
6487 void** ppvDestContext) = 0;
6489 virtual HRESULT STDMETHODCALLTYPE IsConnected(
6490 ) = 0;
6493 #else
6494 typedef struct IRpcChannelBufferVtbl IRpcChannelBufferVtbl;
6495 struct IRpcChannelBuffer {
6496 const IRpcChannelBufferVtbl* lpVtbl;
6498 struct IRpcChannelBufferVtbl {
6499 ICOM_MSVTABLE_COMPAT_FIELDS
6501 /*** IUnknown methods ***/
6502 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6503 IRpcChannelBuffer* This,
6504 REFIID riid,
6505 void** ppvObject);
6507 ULONG (STDMETHODCALLTYPE *AddRef)(
6508 IRpcChannelBuffer* This);
6510 ULONG (STDMETHODCALLTYPE *Release)(
6511 IRpcChannelBuffer* This);
6513 /*** IRpcChannelBuffer methods ***/
6514 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
6515 IRpcChannelBuffer* This,
6516 RPCOLEMESSAGE* pMessage,
6517 REFIID riid);
6519 HRESULT (STDMETHODCALLTYPE *SendReceive)(
6520 IRpcChannelBuffer* This,
6521 RPCOLEMESSAGE* pMessage,
6522 ULONG* pStatus);
6524 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
6525 IRpcChannelBuffer* This,
6526 RPCOLEMESSAGE* pMessage);
6528 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
6529 IRpcChannelBuffer* This,
6530 DWORD* pdwDestContext,
6531 void** ppvDestContext);
6533 HRESULT (STDMETHODCALLTYPE *IsConnected)(
6534 IRpcChannelBuffer* This);
6538 /*** IUnknown methods ***/
6539 #define IRpcChannelBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6540 #define IRpcChannelBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
6541 #define IRpcChannelBuffer_Release(p) (p)->lpVtbl->Release(p)
6542 /*** IRpcChannelBuffer methods ***/
6543 #define IRpcChannelBuffer_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6544 #define IRpcChannelBuffer_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6545 #define IRpcChannelBuffer_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6546 #define IRpcChannelBuffer_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6547 #define IRpcChannelBuffer_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6549 #endif
6551 #define IRpcChannelBuffer_METHODS \
6552 ICOM_MSVTABLE_COMPAT_FIELDS \
6553 /*** IUnknown methods ***/ \
6554 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6555 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6556 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6557 /*** IRpcChannelBuffer methods ***/ \
6558 STDMETHOD_(HRESULT,GetBuffer)(THIS_ RPCOLEMESSAGE* pMessage, REFIID riid) PURE; \
6559 STDMETHOD_(HRESULT,SendReceive)(THIS_ RPCOLEMESSAGE* pMessage, ULONG* pStatus) PURE; \
6560 STDMETHOD_(HRESULT,FreeBuffer)(THIS_ RPCOLEMESSAGE* pMessage) PURE; \
6561 STDMETHOD_(HRESULT,GetDestCtx)(THIS_ DWORD* pdwDestContext, void** ppvDestContext) PURE; \
6562 STDMETHOD_(HRESULT,IsConnected)(THIS) PURE;
6564 HRESULT CALLBACK IRpcChannelBuffer_GetBuffer_Proxy(
6565 IRpcChannelBuffer* This,
6566 RPCOLEMESSAGE* pMessage,
6567 REFIID riid);
6568 void __RPC_STUB IRpcChannelBuffer_GetBuffer_Stub(
6569 struct IRpcStubBuffer* This,
6570 struct IRpcChannelBuffer* pRpcChannelBuffer,
6571 PRPC_MESSAGE pRpcMessage,
6572 DWORD* pdwStubPhase);
6573 HRESULT CALLBACK IRpcChannelBuffer_SendReceive_Proxy(
6574 IRpcChannelBuffer* This,
6575 RPCOLEMESSAGE* pMessage,
6576 ULONG* pStatus);
6577 void __RPC_STUB IRpcChannelBuffer_SendReceive_Stub(
6578 struct IRpcStubBuffer* This,
6579 struct IRpcChannelBuffer* pRpcChannelBuffer,
6580 PRPC_MESSAGE pRpcMessage,
6581 DWORD* pdwStubPhase);
6582 HRESULT CALLBACK IRpcChannelBuffer_FreeBuffer_Proxy(
6583 IRpcChannelBuffer* This,
6584 RPCOLEMESSAGE* pMessage);
6585 void __RPC_STUB IRpcChannelBuffer_FreeBuffer_Stub(
6586 struct IRpcStubBuffer* This,
6587 struct IRpcChannelBuffer* pRpcChannelBuffer,
6588 PRPC_MESSAGE pRpcMessage,
6589 DWORD* pdwStubPhase);
6590 HRESULT CALLBACK IRpcChannelBuffer_GetDestCtx_Proxy(
6591 IRpcChannelBuffer* This,
6592 DWORD* pdwDestContext,
6593 void** ppvDestContext);
6594 void __RPC_STUB IRpcChannelBuffer_GetDestCtx_Stub(
6595 struct IRpcStubBuffer* This,
6596 struct IRpcChannelBuffer* pRpcChannelBuffer,
6597 PRPC_MESSAGE pRpcMessage,
6598 DWORD* pdwStubPhase);
6599 HRESULT CALLBACK IRpcChannelBuffer_IsConnected_Proxy(
6600 IRpcChannelBuffer* This);
6601 void __RPC_STUB IRpcChannelBuffer_IsConnected_Stub(
6602 struct IRpcStubBuffer* This,
6603 struct IRpcChannelBuffer* pRpcChannelBuffer,
6604 PRPC_MESSAGE pRpcMessage,
6605 DWORD* pdwStubPhase);
6607 #endif /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */
6609 #ifndef __IRpcChannelBuffer2_FWD_DEFINED__
6610 #define __IRpcChannelBuffer2_FWD_DEFINED__
6611 typedef struct IRpcChannelBuffer2 IRpcChannelBuffer2;
6612 #endif
6614 typedef IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2;
6616 /*****************************************************************************
6617 * IRpcChannelBuffer2 interface
6619 #ifndef __IRpcChannelBuffer2_INTERFACE_DEFINED__
6620 #define __IRpcChannelBuffer2_INTERFACE_DEFINED__
6622 DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
6623 #if defined(__cplusplus) && !defined(CINTERFACE)
6624 struct IRpcChannelBuffer2 : public IRpcChannelBuffer
6626 virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion(
6627 DWORD* pdwVersion) = 0;
6630 #else
6631 typedef struct IRpcChannelBuffer2Vtbl IRpcChannelBuffer2Vtbl;
6632 struct IRpcChannelBuffer2 {
6633 const IRpcChannelBuffer2Vtbl* lpVtbl;
6635 struct IRpcChannelBuffer2Vtbl {
6636 ICOM_MSVTABLE_COMPAT_FIELDS
6638 /*** IUnknown methods ***/
6639 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6640 IRpcChannelBuffer2* This,
6641 REFIID riid,
6642 void** ppvObject);
6644 ULONG (STDMETHODCALLTYPE *AddRef)(
6645 IRpcChannelBuffer2* This);
6647 ULONG (STDMETHODCALLTYPE *Release)(
6648 IRpcChannelBuffer2* This);
6650 /*** IRpcChannelBuffer methods ***/
6651 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
6652 IRpcChannelBuffer2* This,
6653 RPCOLEMESSAGE* pMessage,
6654 REFIID riid);
6656 HRESULT (STDMETHODCALLTYPE *SendReceive)(
6657 IRpcChannelBuffer2* This,
6658 RPCOLEMESSAGE* pMessage,
6659 ULONG* pStatus);
6661 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
6662 IRpcChannelBuffer2* This,
6663 RPCOLEMESSAGE* pMessage);
6665 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
6666 IRpcChannelBuffer2* This,
6667 DWORD* pdwDestContext,
6668 void** ppvDestContext);
6670 HRESULT (STDMETHODCALLTYPE *IsConnected)(
6671 IRpcChannelBuffer2* This);
6673 /*** IRpcChannelBuffer2 methods ***/
6674 HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
6675 IRpcChannelBuffer2* This,
6676 DWORD* pdwVersion);
6680 /*** IUnknown methods ***/
6681 #define IRpcChannelBuffer2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6682 #define IRpcChannelBuffer2_AddRef(p) (p)->lpVtbl->AddRef(p)
6683 #define IRpcChannelBuffer2_Release(p) (p)->lpVtbl->Release(p)
6684 /*** IRpcChannelBuffer methods ***/
6685 #define IRpcChannelBuffer2_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6686 #define IRpcChannelBuffer2_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6687 #define IRpcChannelBuffer2_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6688 #define IRpcChannelBuffer2_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6689 #define IRpcChannelBuffer2_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6690 /*** IRpcChannelBuffer2 methods ***/
6691 #define IRpcChannelBuffer2_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
6693 #endif
6695 #define IRpcChannelBuffer2_METHODS \
6696 ICOM_MSVTABLE_COMPAT_FIELDS \
6697 /*** IUnknown methods ***/ \
6698 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6699 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6700 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6701 /*** IRpcChannelBuffer methods ***/ \
6702 STDMETHOD_(HRESULT,GetBuffer)(THIS_ RPCOLEMESSAGE* pMessage, REFIID riid) PURE; \
6703 STDMETHOD_(HRESULT,SendReceive)(THIS_ RPCOLEMESSAGE* pMessage, ULONG* pStatus) PURE; \
6704 STDMETHOD_(HRESULT,FreeBuffer)(THIS_ RPCOLEMESSAGE* pMessage) PURE; \
6705 STDMETHOD_(HRESULT,GetDestCtx)(THIS_ DWORD* pdwDestContext, void** ppvDestContext) PURE; \
6706 STDMETHOD_(HRESULT,IsConnected)(THIS) PURE; \
6707 /*** IRpcChannelBuffer2 methods ***/ \
6708 STDMETHOD_(HRESULT,GetProtocolVersion)(THIS_ DWORD* pdwVersion) PURE;
6710 HRESULT CALLBACK IRpcChannelBuffer2_GetProtocolVersion_Proxy(
6711 IRpcChannelBuffer2* This,
6712 DWORD* pdwVersion);
6713 void __RPC_STUB IRpcChannelBuffer2_GetProtocolVersion_Stub(
6714 struct IRpcStubBuffer* This,
6715 struct IRpcChannelBuffer* pRpcChannelBuffer,
6716 PRPC_MESSAGE pRpcMessage,
6717 DWORD* pdwStubPhase);
6719 #endif /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */
6721 #ifndef __IRpcChannelBuffer3_FWD_DEFINED__
6722 #define __IRpcChannelBuffer3_FWD_DEFINED__
6723 typedef struct IRpcChannelBuffer3 IRpcChannelBuffer3;
6724 #endif
6726 typedef IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3;
6728 /*****************************************************************************
6729 * IRpcChannelBuffer3 interface
6731 #ifndef __IRpcChannelBuffer3_INTERFACE_DEFINED__
6732 #define __IRpcChannelBuffer3_INTERFACE_DEFINED__
6734 DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
6735 #if defined(__cplusplus) && !defined(CINTERFACE)
6736 struct IRpcChannelBuffer3 : public IRpcChannelBuffer2
6738 virtual HRESULT STDMETHODCALLTYPE Send(
6739 RPCOLEMESSAGE* pMsg,
6740 ULONG* pulStatus) = 0;
6742 virtual HRESULT STDMETHODCALLTYPE Receive(
6743 RPCOLEMESSAGE* pMsg,
6744 ULONG ulSize,
6745 ULONG* pulStatus) = 0;
6747 virtual HRESULT STDMETHODCALLTYPE Cancel(
6748 RPCOLEMESSAGE* pMsg) = 0;
6750 virtual HRESULT STDMETHODCALLTYPE GetCallContext(
6751 RPCOLEMESSAGE* pMsg,
6752 REFIID riid,
6753 void** pInterface) = 0;
6755 virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
6756 RPCOLEMESSAGE* pMsg,
6757 DWORD* pdwDestContext,
6758 void** ppvDestContext) = 0;
6760 virtual HRESULT STDMETHODCALLTYPE GetState(
6761 RPCOLEMESSAGE* pMsg,
6762 DWORD* pState) = 0;
6764 virtual HRESULT STDMETHODCALLTYPE RegisterAsync(
6765 RPCOLEMESSAGE* pMsg,
6766 IAsyncManager* pAsyncMgr) = 0;
6769 #else
6770 typedef struct IRpcChannelBuffer3Vtbl IRpcChannelBuffer3Vtbl;
6771 struct IRpcChannelBuffer3 {
6772 const IRpcChannelBuffer3Vtbl* lpVtbl;
6774 struct IRpcChannelBuffer3Vtbl {
6775 ICOM_MSVTABLE_COMPAT_FIELDS
6777 /*** IUnknown methods ***/
6778 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6779 IRpcChannelBuffer3* This,
6780 REFIID riid,
6781 void** ppvObject);
6783 ULONG (STDMETHODCALLTYPE *AddRef)(
6784 IRpcChannelBuffer3* This);
6786 ULONG (STDMETHODCALLTYPE *Release)(
6787 IRpcChannelBuffer3* This);
6789 /*** IRpcChannelBuffer methods ***/
6790 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
6791 IRpcChannelBuffer3* This,
6792 RPCOLEMESSAGE* pMessage,
6793 REFIID riid);
6795 HRESULT (STDMETHODCALLTYPE *SendReceive)(
6796 IRpcChannelBuffer3* This,
6797 RPCOLEMESSAGE* pMessage,
6798 ULONG* pStatus);
6800 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
6801 IRpcChannelBuffer3* This,
6802 RPCOLEMESSAGE* pMessage);
6804 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
6805 IRpcChannelBuffer3* This,
6806 DWORD* pdwDestContext,
6807 void** ppvDestContext);
6809 HRESULT (STDMETHODCALLTYPE *IsConnected)(
6810 IRpcChannelBuffer3* This);
6812 /*** IRpcChannelBuffer2 methods ***/
6813 HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
6814 IRpcChannelBuffer3* This,
6815 DWORD* pdwVersion);
6817 /*** IRpcChannelBuffer3 methods ***/
6818 HRESULT (STDMETHODCALLTYPE *Send)(
6819 IRpcChannelBuffer3* This,
6820 RPCOLEMESSAGE* pMsg,
6821 ULONG* pulStatus);
6823 HRESULT (STDMETHODCALLTYPE *Receive)(
6824 IRpcChannelBuffer3* This,
6825 RPCOLEMESSAGE* pMsg,
6826 ULONG ulSize,
6827 ULONG* pulStatus);
6829 HRESULT (STDMETHODCALLTYPE *Cancel)(
6830 IRpcChannelBuffer3* This,
6831 RPCOLEMESSAGE* pMsg);
6833 HRESULT (STDMETHODCALLTYPE *GetCallContext)(
6834 IRpcChannelBuffer3* This,
6835 RPCOLEMESSAGE* pMsg,
6836 REFIID riid,
6837 void** pInterface);
6839 HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
6840 IRpcChannelBuffer3* This,
6841 RPCOLEMESSAGE* pMsg,
6842 DWORD* pdwDestContext,
6843 void** ppvDestContext);
6845 HRESULT (STDMETHODCALLTYPE *GetState)(
6846 IRpcChannelBuffer3* This,
6847 RPCOLEMESSAGE* pMsg,
6848 DWORD* pState);
6850 HRESULT (STDMETHODCALLTYPE *RegisterAsync)(
6851 IRpcChannelBuffer3* This,
6852 RPCOLEMESSAGE* pMsg,
6853 IAsyncManager* pAsyncMgr);
6857 /*** IUnknown methods ***/
6858 #define IRpcChannelBuffer3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6859 #define IRpcChannelBuffer3_AddRef(p) (p)->lpVtbl->AddRef(p)
6860 #define IRpcChannelBuffer3_Release(p) (p)->lpVtbl->Release(p)
6861 /*** IRpcChannelBuffer methods ***/
6862 #define IRpcChannelBuffer3_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6863 #define IRpcChannelBuffer3_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6864 #define IRpcChannelBuffer3_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6865 #define IRpcChannelBuffer3_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6866 #define IRpcChannelBuffer3_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6867 /*** IRpcChannelBuffer2 methods ***/
6868 #define IRpcChannelBuffer3_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
6869 /*** IRpcChannelBuffer3 methods ***/
6870 #define IRpcChannelBuffer3_Send(p,a,b) (p)->lpVtbl->Send(p,a,b)
6871 #define IRpcChannelBuffer3_Receive(p,a,b,c) (p)->lpVtbl->Receive(p,a,b,c)
6872 #define IRpcChannelBuffer3_Cancel(p,a) (p)->lpVtbl->Cancel(p,a)
6873 #define IRpcChannelBuffer3_GetCallContext(p,a,b,c) (p)->lpVtbl->GetCallContext(p,a,b,c)
6874 #define IRpcChannelBuffer3_GetDestCtxEx(p,a,b,c) (p)->lpVtbl->GetDestCtxEx(p,a,b,c)
6875 #define IRpcChannelBuffer3_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
6876 #define IRpcChannelBuffer3_RegisterAsync(p,a,b) (p)->lpVtbl->RegisterAsync(p,a,b)
6878 #endif
6880 #define IRpcChannelBuffer3_METHODS \
6881 ICOM_MSVTABLE_COMPAT_FIELDS \
6882 /*** IUnknown methods ***/ \
6883 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6884 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6885 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6886 /*** IRpcChannelBuffer methods ***/ \
6887 STDMETHOD_(HRESULT,GetBuffer)(THIS_ RPCOLEMESSAGE* pMessage, REFIID riid) PURE; \
6888 STDMETHOD_(HRESULT,SendReceive)(THIS_ RPCOLEMESSAGE* pMessage, ULONG* pStatus) PURE; \
6889 STDMETHOD_(HRESULT,FreeBuffer)(THIS_ RPCOLEMESSAGE* pMessage) PURE; \
6890 STDMETHOD_(HRESULT,GetDestCtx)(THIS_ DWORD* pdwDestContext, void** ppvDestContext) PURE; \
6891 STDMETHOD_(HRESULT,IsConnected)(THIS) PURE; \
6892 /*** IRpcChannelBuffer2 methods ***/ \
6893 STDMETHOD_(HRESULT,GetProtocolVersion)(THIS_ DWORD* pdwVersion) PURE; \
6894 /*** IRpcChannelBuffer3 methods ***/ \
6895 STDMETHOD_(HRESULT,Send)(THIS_ RPCOLEMESSAGE* pMsg, ULONG* pulStatus) PURE; \
6896 STDMETHOD_(HRESULT,Receive)(THIS_ RPCOLEMESSAGE* pMsg, ULONG ulSize, ULONG* pulStatus) PURE; \
6897 STDMETHOD_(HRESULT,Cancel)(THIS_ RPCOLEMESSAGE* pMsg) PURE; \
6898 STDMETHOD_(HRESULT,GetCallContext)(THIS_ RPCOLEMESSAGE* pMsg, REFIID riid, void** pInterface) PURE; \
6899 STDMETHOD_(HRESULT,GetDestCtxEx)(THIS_ RPCOLEMESSAGE* pMsg, DWORD* pdwDestContext, void** ppvDestContext) PURE; \
6900 STDMETHOD_(HRESULT,GetState)(THIS_ RPCOLEMESSAGE* pMsg, DWORD* pState) PURE; \
6901 STDMETHOD_(HRESULT,RegisterAsync)(THIS_ RPCOLEMESSAGE* pMsg, IAsyncManager* pAsyncMgr) PURE;
6903 HRESULT CALLBACK IRpcChannelBuffer3_Send_Proxy(
6904 IRpcChannelBuffer3* This,
6905 RPCOLEMESSAGE* pMsg,
6906 ULONG* pulStatus);
6907 void __RPC_STUB IRpcChannelBuffer3_Send_Stub(
6908 struct IRpcStubBuffer* This,
6909 struct IRpcChannelBuffer* pRpcChannelBuffer,
6910 PRPC_MESSAGE pRpcMessage,
6911 DWORD* pdwStubPhase);
6912 HRESULT CALLBACK IRpcChannelBuffer3_Receive_Proxy(
6913 IRpcChannelBuffer3* This,
6914 RPCOLEMESSAGE* pMsg,
6915 ULONG ulSize,
6916 ULONG* pulStatus);
6917 void __RPC_STUB IRpcChannelBuffer3_Receive_Stub(
6918 struct IRpcStubBuffer* This,
6919 struct IRpcChannelBuffer* pRpcChannelBuffer,
6920 PRPC_MESSAGE pRpcMessage,
6921 DWORD* pdwStubPhase);
6922 HRESULT CALLBACK IRpcChannelBuffer3_Cancel_Proxy(
6923 IRpcChannelBuffer3* This,
6924 RPCOLEMESSAGE* pMsg);
6925 void __RPC_STUB IRpcChannelBuffer3_Cancel_Stub(
6926 struct IRpcStubBuffer* This,
6927 struct IRpcChannelBuffer* pRpcChannelBuffer,
6928 PRPC_MESSAGE pRpcMessage,
6929 DWORD* pdwStubPhase);
6930 HRESULT CALLBACK IRpcChannelBuffer3_GetCallContext_Proxy(
6931 IRpcChannelBuffer3* This,
6932 RPCOLEMESSAGE* pMsg,
6933 REFIID riid,
6934 void** pInterface);
6935 void __RPC_STUB IRpcChannelBuffer3_GetCallContext_Stub(
6936 struct IRpcStubBuffer* This,
6937 struct IRpcChannelBuffer* pRpcChannelBuffer,
6938 PRPC_MESSAGE pRpcMessage,
6939 DWORD* pdwStubPhase);
6940 HRESULT CALLBACK IRpcChannelBuffer3_GetDestCtxEx_Proxy(
6941 IRpcChannelBuffer3* This,
6942 RPCOLEMESSAGE* pMsg,
6943 DWORD* pdwDestContext,
6944 void** ppvDestContext);
6945 void __RPC_STUB IRpcChannelBuffer3_GetDestCtxEx_Stub(
6946 struct IRpcStubBuffer* This,
6947 struct IRpcChannelBuffer* pRpcChannelBuffer,
6948 PRPC_MESSAGE pRpcMessage,
6949 DWORD* pdwStubPhase);
6950 HRESULT CALLBACK IRpcChannelBuffer3_GetState_Proxy(
6951 IRpcChannelBuffer3* This,
6952 RPCOLEMESSAGE* pMsg,
6953 DWORD* pState);
6954 void __RPC_STUB IRpcChannelBuffer3_GetState_Stub(
6955 struct IRpcStubBuffer* This,
6956 struct IRpcChannelBuffer* pRpcChannelBuffer,
6957 PRPC_MESSAGE pRpcMessage,
6958 DWORD* pdwStubPhase);
6959 HRESULT CALLBACK IRpcChannelBuffer3_RegisterAsync_Proxy(
6960 IRpcChannelBuffer3* This,
6961 RPCOLEMESSAGE* pMsg,
6962 IAsyncManager* pAsyncMgr);
6963 void __RPC_STUB IRpcChannelBuffer3_RegisterAsync_Stub(
6964 struct IRpcStubBuffer* This,
6965 struct IRpcChannelBuffer* pRpcChannelBuffer,
6966 PRPC_MESSAGE pRpcMessage,
6967 DWORD* pdwStubPhase);
6969 #endif /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */
6971 #ifndef __IRpcProxyBuffer_FWD_DEFINED__
6972 #define __IRpcProxyBuffer_FWD_DEFINED__
6973 typedef struct IRpcProxyBuffer IRpcProxyBuffer;
6974 #endif
6976 typedef IRpcProxyBuffer *LPRPCPROXYBUFFER;
6978 /*****************************************************************************
6979 * IRpcProxyBuffer interface
6981 #ifndef __IRpcProxyBuffer_INTERFACE_DEFINED__
6982 #define __IRpcProxyBuffer_INTERFACE_DEFINED__
6984 DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
6985 #if defined(__cplusplus) && !defined(CINTERFACE)
6986 struct IRpcProxyBuffer : public IUnknown
6988 virtual HRESULT STDMETHODCALLTYPE Connect(
6989 IRpcChannelBuffer* pRpcChannelBuffer) = 0;
6991 virtual void STDMETHODCALLTYPE Disconnect(
6992 ) = 0;
6995 #else
6996 typedef struct IRpcProxyBufferVtbl IRpcProxyBufferVtbl;
6997 struct IRpcProxyBuffer {
6998 const IRpcProxyBufferVtbl* lpVtbl;
7000 struct IRpcProxyBufferVtbl {
7001 ICOM_MSVTABLE_COMPAT_FIELDS
7003 /*** IUnknown methods ***/
7004 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7005 IRpcProxyBuffer* This,
7006 REFIID riid,
7007 void** ppvObject);
7009 ULONG (STDMETHODCALLTYPE *AddRef)(
7010 IRpcProxyBuffer* This);
7012 ULONG (STDMETHODCALLTYPE *Release)(
7013 IRpcProxyBuffer* This);
7015 /*** IRpcProxyBuffer methods ***/
7016 HRESULT (STDMETHODCALLTYPE *Connect)(
7017 IRpcProxyBuffer* This,
7018 IRpcChannelBuffer* pRpcChannelBuffer);
7020 void (STDMETHODCALLTYPE *Disconnect)(
7021 IRpcProxyBuffer* This);
7025 /*** IUnknown methods ***/
7026 #define IRpcProxyBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7027 #define IRpcProxyBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7028 #define IRpcProxyBuffer_Release(p) (p)->lpVtbl->Release(p)
7029 /*** IRpcProxyBuffer methods ***/
7030 #define IRpcProxyBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7031 #define IRpcProxyBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7033 #endif
7035 #define IRpcProxyBuffer_METHODS \
7036 ICOM_MSVTABLE_COMPAT_FIELDS \
7037 /*** IUnknown methods ***/ \
7038 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7039 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7040 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7041 /*** IRpcProxyBuffer methods ***/ \
7042 STDMETHOD_(HRESULT,Connect)(THIS_ IRpcChannelBuffer* pRpcChannelBuffer) PURE; \
7043 STDMETHOD_(void,Disconnect)(THIS) PURE;
7045 HRESULT CALLBACK IRpcProxyBuffer_Connect_Proxy(
7046 IRpcProxyBuffer* This,
7047 IRpcChannelBuffer* pRpcChannelBuffer);
7048 void __RPC_STUB IRpcProxyBuffer_Connect_Stub(
7049 struct IRpcStubBuffer* This,
7050 struct IRpcChannelBuffer* pRpcChannelBuffer,
7051 PRPC_MESSAGE pRpcMessage,
7052 DWORD* pdwStubPhase);
7053 void CALLBACK IRpcProxyBuffer_Disconnect_Proxy(
7054 IRpcProxyBuffer* This);
7055 void __RPC_STUB IRpcProxyBuffer_Disconnect_Stub(
7056 struct IRpcStubBuffer* This,
7057 struct IRpcChannelBuffer* pRpcChannelBuffer,
7058 PRPC_MESSAGE pRpcMessage,
7059 DWORD* pdwStubPhase);
7061 #endif /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */
7063 #ifndef __IRpcStubBuffer_FWD_DEFINED__
7064 #define __IRpcStubBuffer_FWD_DEFINED__
7065 typedef struct IRpcStubBuffer IRpcStubBuffer;
7066 #endif
7068 typedef IRpcStubBuffer *LPRPCSTUBBUFFER;
7070 /*****************************************************************************
7071 * IRpcStubBuffer interface
7073 #ifndef __IRpcStubBuffer_INTERFACE_DEFINED__
7074 #define __IRpcStubBuffer_INTERFACE_DEFINED__
7076 DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7077 #if defined(__cplusplus) && !defined(CINTERFACE)
7078 struct IRpcStubBuffer : public IUnknown
7080 virtual HRESULT STDMETHODCALLTYPE Connect(
7081 IUnknown* pUnkServer) = 0;
7083 virtual void STDMETHODCALLTYPE Disconnect(
7084 ) = 0;
7086 virtual HRESULT STDMETHODCALLTYPE Invoke(
7087 RPCOLEMESSAGE* _prpcmsg,
7088 IRpcChannelBuffer* _pRpcChannelBuffer) = 0;
7090 virtual IRpcStubBuffer* STDMETHODCALLTYPE IsIIDSupported(
7091 REFIID riid) = 0;
7093 virtual ULONG STDMETHODCALLTYPE CountRefs(
7094 ) = 0;
7096 virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface(
7097 void** ppv) = 0;
7099 virtual void STDMETHODCALLTYPE DebugServerRelease(
7100 void* pv) = 0;
7103 #else
7104 typedef struct IRpcStubBufferVtbl IRpcStubBufferVtbl;
7105 struct IRpcStubBuffer {
7106 const IRpcStubBufferVtbl* lpVtbl;
7108 struct IRpcStubBufferVtbl {
7109 ICOM_MSVTABLE_COMPAT_FIELDS
7111 /*** IUnknown methods ***/
7112 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7113 IRpcStubBuffer* This,
7114 REFIID riid,
7115 void** ppvObject);
7117 ULONG (STDMETHODCALLTYPE *AddRef)(
7118 IRpcStubBuffer* This);
7120 ULONG (STDMETHODCALLTYPE *Release)(
7121 IRpcStubBuffer* This);
7123 /*** IRpcStubBuffer methods ***/
7124 HRESULT (STDMETHODCALLTYPE *Connect)(
7125 IRpcStubBuffer* This,
7126 IUnknown* pUnkServer);
7128 void (STDMETHODCALLTYPE *Disconnect)(
7129 IRpcStubBuffer* This);
7131 HRESULT (STDMETHODCALLTYPE *Invoke)(
7132 IRpcStubBuffer* This,
7133 RPCOLEMESSAGE* _prpcmsg,
7134 IRpcChannelBuffer* _pRpcChannelBuffer);
7136 IRpcStubBuffer* (STDMETHODCALLTYPE *IsIIDSupported)(
7137 IRpcStubBuffer* This,
7138 REFIID riid);
7140 ULONG (STDMETHODCALLTYPE *CountRefs)(
7141 IRpcStubBuffer* This);
7143 HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(
7144 IRpcStubBuffer* This,
7145 void** ppv);
7147 void (STDMETHODCALLTYPE *DebugServerRelease)(
7148 IRpcStubBuffer* This,
7149 void* pv);
7153 /*** IUnknown methods ***/
7154 #define IRpcStubBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7155 #define IRpcStubBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7156 #define IRpcStubBuffer_Release(p) (p)->lpVtbl->Release(p)
7157 /*** IRpcStubBuffer methods ***/
7158 #define IRpcStubBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7159 #define IRpcStubBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7160 #define IRpcStubBuffer_Invoke(p,a,b) (p)->lpVtbl->Invoke(p,a,b)
7161 #define IRpcStubBuffer_IsIIDSupported(p,a) (p)->lpVtbl->IsIIDSupported(p,a)
7162 #define IRpcStubBuffer_CountRefs(p) (p)->lpVtbl->CountRefs(p)
7163 #define IRpcStubBuffer_DebugServerQueryInterface(p,a) (p)->lpVtbl->DebugServerQueryInterface(p,a)
7164 #define IRpcStubBuffer_DebugServerRelease(p,a) (p)->lpVtbl->DebugServerRelease(p,a)
7166 #endif
7168 #define IRpcStubBuffer_METHODS \
7169 ICOM_MSVTABLE_COMPAT_FIELDS \
7170 /*** IUnknown methods ***/ \
7171 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7172 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7173 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7174 /*** IRpcStubBuffer methods ***/ \
7175 STDMETHOD_(HRESULT,Connect)(THIS_ IUnknown* pUnkServer) PURE; \
7176 STDMETHOD_(void,Disconnect)(THIS) PURE; \
7177 STDMETHOD_(HRESULT,Invoke)(THIS_ RPCOLEMESSAGE* _prpcmsg, IRpcChannelBuffer* _pRpcChannelBuffer) PURE; \
7178 STDMETHOD_(IRpcStubBuffer*,IsIIDSupported)(THIS_ REFIID riid) PURE; \
7179 STDMETHOD_(ULONG,CountRefs)(THIS) PURE; \
7180 STDMETHOD_(HRESULT,DebugServerQueryInterface)(THIS_ void** ppv) PURE; \
7181 STDMETHOD_(void,DebugServerRelease)(THIS_ void* pv) PURE;
7183 HRESULT CALLBACK IRpcStubBuffer_Connect_Proxy(
7184 IRpcStubBuffer* This,
7185 IUnknown* pUnkServer);
7186 void __RPC_STUB IRpcStubBuffer_Connect_Stub(
7187 struct IRpcStubBuffer* This,
7188 struct IRpcChannelBuffer* pRpcChannelBuffer,
7189 PRPC_MESSAGE pRpcMessage,
7190 DWORD* pdwStubPhase);
7191 void CALLBACK IRpcStubBuffer_Disconnect_Proxy(
7192 IRpcStubBuffer* This);
7193 void __RPC_STUB IRpcStubBuffer_Disconnect_Stub(
7194 struct IRpcStubBuffer* This,
7195 struct IRpcChannelBuffer* pRpcChannelBuffer,
7196 PRPC_MESSAGE pRpcMessage,
7197 DWORD* pdwStubPhase);
7198 HRESULT CALLBACK IRpcStubBuffer_Invoke_Proxy(
7199 IRpcStubBuffer* This,
7200 RPCOLEMESSAGE* _prpcmsg,
7201 IRpcChannelBuffer* _pRpcChannelBuffer);
7202 void __RPC_STUB IRpcStubBuffer_Invoke_Stub(
7203 struct IRpcStubBuffer* This,
7204 struct IRpcChannelBuffer* pRpcChannelBuffer,
7205 PRPC_MESSAGE pRpcMessage,
7206 DWORD* pdwStubPhase);
7207 IRpcStubBuffer* CALLBACK IRpcStubBuffer_IsIIDSupported_Proxy(
7208 IRpcStubBuffer* This,
7209 REFIID riid);
7210 void __RPC_STUB IRpcStubBuffer_IsIIDSupported_Stub(
7211 struct IRpcStubBuffer* This,
7212 struct IRpcChannelBuffer* pRpcChannelBuffer,
7213 PRPC_MESSAGE pRpcMessage,
7214 DWORD* pdwStubPhase);
7215 ULONG CALLBACK IRpcStubBuffer_CountRefs_Proxy(
7216 IRpcStubBuffer* This);
7217 void __RPC_STUB IRpcStubBuffer_CountRefs_Stub(
7218 struct IRpcStubBuffer* This,
7219 struct IRpcChannelBuffer* pRpcChannelBuffer,
7220 PRPC_MESSAGE pRpcMessage,
7221 DWORD* pdwStubPhase);
7222 HRESULT CALLBACK IRpcStubBuffer_DebugServerQueryInterface_Proxy(
7223 IRpcStubBuffer* This,
7224 void** ppv);
7225 void __RPC_STUB IRpcStubBuffer_DebugServerQueryInterface_Stub(
7226 struct IRpcStubBuffer* This,
7227 struct IRpcChannelBuffer* pRpcChannelBuffer,
7228 PRPC_MESSAGE pRpcMessage,
7229 DWORD* pdwStubPhase);
7230 void CALLBACK IRpcStubBuffer_DebugServerRelease_Proxy(
7231 IRpcStubBuffer* This,
7232 void* pv);
7233 void __RPC_STUB IRpcStubBuffer_DebugServerRelease_Stub(
7234 struct IRpcStubBuffer* This,
7235 struct IRpcChannelBuffer* pRpcChannelBuffer,
7236 PRPC_MESSAGE pRpcMessage,
7237 DWORD* pdwStubPhase);
7239 #endif /* __IRpcStubBuffer_INTERFACE_DEFINED__ */
7241 #ifndef __IPSFactoryBuffer_FWD_DEFINED__
7242 #define __IPSFactoryBuffer_FWD_DEFINED__
7243 typedef struct IPSFactoryBuffer IPSFactoryBuffer;
7244 #endif
7246 typedef IPSFactoryBuffer *LPPSFACTORYBUFFER;
7248 /*****************************************************************************
7249 * IPSFactoryBuffer interface
7251 #ifndef __IPSFactoryBuffer_INTERFACE_DEFINED__
7252 #define __IPSFactoryBuffer_INTERFACE_DEFINED__
7254 DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7255 #if defined(__cplusplus) && !defined(CINTERFACE)
7256 struct IPSFactoryBuffer : public IUnknown
7258 virtual HRESULT STDMETHODCALLTYPE CreateProxy(
7259 IUnknown* pUnkOuter,
7260 REFIID riid,
7261 IRpcProxyBuffer** ppProxy,
7262 void** ppv) = 0;
7264 virtual HRESULT STDMETHODCALLTYPE CreateStub(
7265 REFIID riid,
7266 IUnknown* pUnkServer,
7267 IRpcStubBuffer** ppStub) = 0;
7270 #else
7271 typedef struct IPSFactoryBufferVtbl IPSFactoryBufferVtbl;
7272 struct IPSFactoryBuffer {
7273 const IPSFactoryBufferVtbl* lpVtbl;
7275 struct IPSFactoryBufferVtbl {
7276 ICOM_MSVTABLE_COMPAT_FIELDS
7278 /*** IUnknown methods ***/
7279 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7280 IPSFactoryBuffer* This,
7281 REFIID riid,
7282 void** ppvObject);
7284 ULONG (STDMETHODCALLTYPE *AddRef)(
7285 IPSFactoryBuffer* This);
7287 ULONG (STDMETHODCALLTYPE *Release)(
7288 IPSFactoryBuffer* This);
7290 /*** IPSFactoryBuffer methods ***/
7291 HRESULT (STDMETHODCALLTYPE *CreateProxy)(
7292 IPSFactoryBuffer* This,
7293 IUnknown* pUnkOuter,
7294 REFIID riid,
7295 IRpcProxyBuffer** ppProxy,
7296 void** ppv);
7298 HRESULT (STDMETHODCALLTYPE *CreateStub)(
7299 IPSFactoryBuffer* This,
7300 REFIID riid,
7301 IUnknown* pUnkServer,
7302 IRpcStubBuffer** ppStub);
7306 /*** IUnknown methods ***/
7307 #define IPSFactoryBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7308 #define IPSFactoryBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7309 #define IPSFactoryBuffer_Release(p) (p)->lpVtbl->Release(p)
7310 /*** IPSFactoryBuffer methods ***/
7311 #define IPSFactoryBuffer_CreateProxy(p,a,b,c,d) (p)->lpVtbl->CreateProxy(p,a,b,c,d)
7312 #define IPSFactoryBuffer_CreateStub(p,a,b,c) (p)->lpVtbl->CreateStub(p,a,b,c)
7314 #endif
7316 #define IPSFactoryBuffer_METHODS \
7317 ICOM_MSVTABLE_COMPAT_FIELDS \
7318 /*** IUnknown methods ***/ \
7319 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7320 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7321 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7322 /*** IPSFactoryBuffer methods ***/ \
7323 STDMETHOD_(HRESULT,CreateProxy)(THIS_ IUnknown* pUnkOuter, REFIID riid, IRpcProxyBuffer** ppProxy, void** ppv) PURE; \
7324 STDMETHOD_(HRESULT,CreateStub)(THIS_ REFIID riid, IUnknown* pUnkServer, IRpcStubBuffer** ppStub) PURE;
7326 HRESULT CALLBACK IPSFactoryBuffer_CreateProxy_Proxy(
7327 IPSFactoryBuffer* This,
7328 IUnknown* pUnkOuter,
7329 REFIID riid,
7330 IRpcProxyBuffer** ppProxy,
7331 void** ppv);
7332 void __RPC_STUB IPSFactoryBuffer_CreateProxy_Stub(
7333 struct IRpcStubBuffer* This,
7334 struct IRpcChannelBuffer* pRpcChannelBuffer,
7335 PRPC_MESSAGE pRpcMessage,
7336 DWORD* pdwStubPhase);
7337 HRESULT CALLBACK IPSFactoryBuffer_CreateStub_Proxy(
7338 IPSFactoryBuffer* This,
7339 REFIID riid,
7340 IUnknown* pUnkServer,
7341 IRpcStubBuffer** ppStub);
7342 void __RPC_STUB IPSFactoryBuffer_CreateStub_Stub(
7343 struct IRpcStubBuffer* This,
7344 struct IRpcChannelBuffer* pRpcChannelBuffer,
7345 PRPC_MESSAGE pRpcMessage,
7346 DWORD* pdwStubPhase);
7348 #endif /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */
7350 #ifndef __IChannelHook_FWD_DEFINED__
7351 #define __IChannelHook_FWD_DEFINED__
7352 typedef struct IChannelHook IChannelHook;
7353 #endif
7355 typedef IChannelHook *LPCHANNELHOOK;
7357 typedef struct SChannelHookCallInfo {
7358 IID iid;
7359 DWORD cbSize;
7360 GUID uCausality;
7361 DWORD dwServerPid;
7362 DWORD iMethod;
7363 void *pObject;
7364 } SChannelHookCallInfo;
7366 /*****************************************************************************
7367 * IChannelHook interface
7369 #ifndef __IChannelHook_INTERFACE_DEFINED__
7370 #define __IChannelHook_INTERFACE_DEFINED__
7372 DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
7373 #if defined(__cplusplus) && !defined(CINTERFACE)
7374 struct IChannelHook : public IUnknown
7376 virtual void STDMETHODCALLTYPE ClientGetSize(
7377 REFGUID uExtent,
7378 REFIID riid,
7379 ULONG* pDataSize) = 0;
7381 virtual void STDMETHODCALLTYPE ClientFillBuffer(
7382 REFGUID uExtent,
7383 REFIID riid,
7384 ULONG* pDataSize,
7385 void* pDataBuffer) = 0;
7387 virtual void STDMETHODCALLTYPE ClientNotify(
7388 REFGUID uExtent,
7389 REFIID riid,
7390 ULONG cbDataSize,
7391 void* pDataBuffer,
7392 DWORD lDataRep,
7393 HRESULT hrFault) = 0;
7395 virtual void STDMETHODCALLTYPE ServerNotify(
7396 REFGUID uExtent,
7397 REFIID riid,
7398 ULONG cbDataSize,
7399 void* pDataBuffer,
7400 DWORD lDataRep) = 0;
7402 virtual void STDMETHODCALLTYPE ServerGetSize(
7403 REFGUID uExtent,
7404 REFIID riid,
7405 HRESULT hrFault,
7406 ULONG* pDataSize) = 0;
7408 virtual void STDMETHODCALLTYPE ServerFillBuffer(
7409 REFGUID uExtent,
7410 REFIID riid,
7411 ULONG* pDataSize,
7412 void* pDataBuffer,
7413 HRESULT hrFault) = 0;
7416 #else
7417 typedef struct IChannelHookVtbl IChannelHookVtbl;
7418 struct IChannelHook {
7419 const IChannelHookVtbl* lpVtbl;
7421 struct IChannelHookVtbl {
7422 ICOM_MSVTABLE_COMPAT_FIELDS
7424 /*** IUnknown methods ***/
7425 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7426 IChannelHook* This,
7427 REFIID riid,
7428 void** ppvObject);
7430 ULONG (STDMETHODCALLTYPE *AddRef)(
7431 IChannelHook* This);
7433 ULONG (STDMETHODCALLTYPE *Release)(
7434 IChannelHook* This);
7436 /*** IChannelHook methods ***/
7437 void (STDMETHODCALLTYPE *ClientGetSize)(
7438 IChannelHook* This,
7439 REFGUID uExtent,
7440 REFIID riid,
7441 ULONG* pDataSize);
7443 void (STDMETHODCALLTYPE *ClientFillBuffer)(
7444 IChannelHook* This,
7445 REFGUID uExtent,
7446 REFIID riid,
7447 ULONG* pDataSize,
7448 void* pDataBuffer);
7450 void (STDMETHODCALLTYPE *ClientNotify)(
7451 IChannelHook* This,
7452 REFGUID uExtent,
7453 REFIID riid,
7454 ULONG cbDataSize,
7455 void* pDataBuffer,
7456 DWORD lDataRep,
7457 HRESULT hrFault);
7459 void (STDMETHODCALLTYPE *ServerNotify)(
7460 IChannelHook* This,
7461 REFGUID uExtent,
7462 REFIID riid,
7463 ULONG cbDataSize,
7464 void* pDataBuffer,
7465 DWORD lDataRep);
7467 void (STDMETHODCALLTYPE *ServerGetSize)(
7468 IChannelHook* This,
7469 REFGUID uExtent,
7470 REFIID riid,
7471 HRESULT hrFault,
7472 ULONG* pDataSize);
7474 void (STDMETHODCALLTYPE *ServerFillBuffer)(
7475 IChannelHook* This,
7476 REFGUID uExtent,
7477 REFIID riid,
7478 ULONG* pDataSize,
7479 void* pDataBuffer,
7480 HRESULT hrFault);
7484 /*** IUnknown methods ***/
7485 #define IChannelHook_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7486 #define IChannelHook_AddRef(p) (p)->lpVtbl->AddRef(p)
7487 #define IChannelHook_Release(p) (p)->lpVtbl->Release(p)
7488 /*** IChannelHook methods ***/
7489 #define IChannelHook_ClientGetSize(p,a,b,c) (p)->lpVtbl->ClientGetSize(p,a,b,c)
7490 #define IChannelHook_ClientFillBuffer(p,a,b,c,d) (p)->lpVtbl->ClientFillBuffer(p,a,b,c,d)
7491 #define IChannelHook_ClientNotify(p,a,b,c,d,e,f) (p)->lpVtbl->ClientNotify(p,a,b,c,d,e,f)
7492 #define IChannelHook_ServerNotify(p,a,b,c,d,e) (p)->lpVtbl->ServerNotify(p,a,b,c,d,e)
7493 #define IChannelHook_ServerGetSize(p,a,b,c,d) (p)->lpVtbl->ServerGetSize(p,a,b,c,d)
7494 #define IChannelHook_ServerFillBuffer(p,a,b,c,d,e) (p)->lpVtbl->ServerFillBuffer(p,a,b,c,d,e)
7496 #endif
7498 #define IChannelHook_METHODS \
7499 ICOM_MSVTABLE_COMPAT_FIELDS \
7500 /*** IUnknown methods ***/ \
7501 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7502 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7503 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7504 /*** IChannelHook methods ***/ \
7505 STDMETHOD_(void,ClientGetSize)(THIS_ REFGUID uExtent, REFIID riid, ULONG* pDataSize) PURE; \
7506 STDMETHOD_(void,ClientFillBuffer)(THIS_ REFGUID uExtent, REFIID riid, ULONG* pDataSize, void* pDataBuffer) PURE; \
7507 STDMETHOD_(void,ClientNotify)(THIS_ REFGUID uExtent, REFIID riid, ULONG cbDataSize, void* pDataBuffer, DWORD lDataRep, HRESULT hrFault) PURE; \
7508 STDMETHOD_(void,ServerNotify)(THIS_ REFGUID uExtent, REFIID riid, ULONG cbDataSize, void* pDataBuffer, DWORD lDataRep) PURE; \
7509 STDMETHOD_(void,ServerGetSize)(THIS_ REFGUID uExtent, REFIID riid, HRESULT hrFault, ULONG* pDataSize) PURE; \
7510 STDMETHOD_(void,ServerFillBuffer)(THIS_ REFGUID uExtent, REFIID riid, ULONG* pDataSize, void* pDataBuffer, HRESULT hrFault) PURE;
7512 void CALLBACK IChannelHook_ClientGetSize_Proxy(
7513 IChannelHook* This,
7514 REFGUID uExtent,
7515 REFIID riid,
7516 ULONG* pDataSize);
7517 void __RPC_STUB IChannelHook_ClientGetSize_Stub(
7518 struct IRpcStubBuffer* This,
7519 struct IRpcChannelBuffer* pRpcChannelBuffer,
7520 PRPC_MESSAGE pRpcMessage,
7521 DWORD* pdwStubPhase);
7522 void CALLBACK IChannelHook_ClientFillBuffer_Proxy(
7523 IChannelHook* This,
7524 REFGUID uExtent,
7525 REFIID riid,
7526 ULONG* pDataSize,
7527 void* pDataBuffer);
7528 void __RPC_STUB IChannelHook_ClientFillBuffer_Stub(
7529 struct IRpcStubBuffer* This,
7530 struct IRpcChannelBuffer* pRpcChannelBuffer,
7531 PRPC_MESSAGE pRpcMessage,
7532 DWORD* pdwStubPhase);
7533 void CALLBACK IChannelHook_ClientNotify_Proxy(
7534 IChannelHook* This,
7535 REFGUID uExtent,
7536 REFIID riid,
7537 ULONG cbDataSize,
7538 void* pDataBuffer,
7539 DWORD lDataRep,
7540 HRESULT hrFault);
7541 void __RPC_STUB IChannelHook_ClientNotify_Stub(
7542 struct IRpcStubBuffer* This,
7543 struct IRpcChannelBuffer* pRpcChannelBuffer,
7544 PRPC_MESSAGE pRpcMessage,
7545 DWORD* pdwStubPhase);
7546 void CALLBACK IChannelHook_ServerNotify_Proxy(
7547 IChannelHook* This,
7548 REFGUID uExtent,
7549 REFIID riid,
7550 ULONG cbDataSize,
7551 void* pDataBuffer,
7552 DWORD lDataRep);
7553 void __RPC_STUB IChannelHook_ServerNotify_Stub(
7554 struct IRpcStubBuffer* This,
7555 struct IRpcChannelBuffer* pRpcChannelBuffer,
7556 PRPC_MESSAGE pRpcMessage,
7557 DWORD* pdwStubPhase);
7558 void CALLBACK IChannelHook_ServerGetSize_Proxy(
7559 IChannelHook* This,
7560 REFGUID uExtent,
7561 REFIID riid,
7562 HRESULT hrFault,
7563 ULONG* pDataSize);
7564 void __RPC_STUB IChannelHook_ServerGetSize_Stub(
7565 struct IRpcStubBuffer* This,
7566 struct IRpcChannelBuffer* pRpcChannelBuffer,
7567 PRPC_MESSAGE pRpcMessage,
7568 DWORD* pdwStubPhase);
7569 void CALLBACK IChannelHook_ServerFillBuffer_Proxy(
7570 IChannelHook* This,
7571 REFGUID uExtent,
7572 REFIID riid,
7573 ULONG* pDataSize,
7574 void* pDataBuffer,
7575 HRESULT hrFault);
7576 void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
7577 struct IRpcStubBuffer* This,
7578 struct IRpcChannelBuffer* pRpcChannelBuffer,
7579 PRPC_MESSAGE pRpcMessage,
7580 DWORD* pdwStubPhase);
7582 #endif /* __IChannelHook_INTERFACE_DEFINED__ */
7584 #ifndef __IEnumSTATPROPSTG_FWD_DEFINED__
7585 #define __IEnumSTATPROPSTG_FWD_DEFINED__
7586 typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
7587 #endif
7589 #ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__
7590 #define __IEnumSTATPROPSETSTG_FWD_DEFINED__
7591 typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
7592 #endif
7594 #ifndef __IPropertyStorage_FWD_DEFINED__
7595 #define __IPropertyStorage_FWD_DEFINED__
7596 typedef struct IPropertyStorage IPropertyStorage;
7597 #endif
7599 typedef IPropertyStorage *LPPROPERTYSTORAGE;
7601 extern const FMTID FMTID_SummaryInformation;
7603 extern const FMTID FMTID_DocSummaryInformation;
7605 extern const FMTID FMTID_UserDefinedProperties;
7607 #define PROPSETFLAG_DEFAULT (0)
7609 #define PROPSETFLAG_NONSIMPLE (1)
7611 #define PROPSETFLAG_ANSI (2)
7613 #define PROPSETFLAG_UNBUFFERED (4)
7615 typedef struct tagPROPVARIANT PROPVARIANT;
7617 typedef struct tagCAUB {
7618 ULONG cElems;
7619 unsigned char *pElems;
7620 } CAUB;
7622 typedef struct tagCAI {
7623 ULONG cElems;
7624 short *pElems;
7625 } CAI;
7627 typedef struct tagCAUI {
7628 ULONG cElems;
7629 USHORT *pElems;
7630 } CAUI;
7632 typedef struct tagCAL {
7633 ULONG cElems;
7634 long *pElems;
7635 } CAL;
7637 typedef struct tagCAUL {
7638 ULONG cElems;
7639 ULONG *pElems;
7640 } CAUL;
7642 typedef struct tagCAFLT {
7643 ULONG cElems;
7644 float *pElems;
7645 } CAFLT;
7647 typedef struct tagCADBL {
7648 ULONG cElems;
7649 double *pElems;
7650 } CADBL;
7652 typedef struct tagCACY {
7653 ULONG cElems;
7654 CY *pElems;
7655 } CACY;
7657 typedef struct tagCADATE {
7658 ULONG cElems;
7659 DATE *pElems;
7660 } CADATE;
7662 typedef struct tagCABSTR {
7663 ULONG cElems;
7664 BSTR *pElems;
7665 } CABSTR;
7667 typedef struct tagCABSTRBLOB {
7668 ULONG cElems;
7669 BSTRBLOB *pElems;
7670 } CABSTRBLOB;
7672 typedef struct tagCABOOL {
7673 ULONG cElems;
7674 VARIANT_BOOL *pElems;
7675 } CABOOL;
7677 typedef struct tagCASCODE {
7678 ULONG cElems;
7679 SCODE *pElems;
7680 } CASCODE;
7682 typedef struct tagCAPROPVARIANT {
7683 ULONG cElems;
7684 PROPVARIANT *pElems;
7685 } CAPROPVARIANT;
7687 typedef struct tagCAH {
7688 ULONG cElems;
7689 LARGE_INTEGER *pElems;
7690 } CAH;
7692 typedef struct tagCAUH {
7693 ULONG cElems;
7694 ULARGE_INTEGER *pElems;
7695 } CAUH;
7697 typedef struct tagCALPSTR {
7698 ULONG cElems;
7699 LPSTR *pElems;
7700 } CALPSTR;
7702 typedef struct tagCALPWSTR {
7703 ULONG cElems;
7704 LPWSTR *pElems;
7705 } CALPWSTR;
7707 typedef struct tagCAFILETIME {
7708 ULONG cElems;
7709 FILETIME *pElems;
7710 } CAFILETIME;
7712 typedef struct tagCACLIPDATA {
7713 ULONG cElems;
7714 CLIPDATA *pElems;
7715 } CACLIPDATA;
7717 typedef struct tagCACLSID {
7718 ULONG cElems;
7719 CLSID *pElems;
7720 } CACLSID;
7722 struct tagPROPVARIANT {
7723 VARTYPE vt;
7724 WORD wReserved1;
7725 WORD wReserved2;
7726 WORD wReserved3;
7727 union {
7728 char cVal;
7729 UCHAR bVal;
7730 short iVal;
7731 USHORT uiVal;
7732 VARIANT_BOOL boolVal;
7733 long lVal;
7734 ULONG ulVal;
7735 float fltVal;
7736 SCODE scode;
7737 LARGE_INTEGER hVal;
7738 ULARGE_INTEGER uhVal;
7739 double dblVal;
7740 CY cyVal;
7741 DATE date;
7742 FILETIME filetime;
7743 CLSID *puuid;
7744 BLOB blob;
7745 CLIPDATA *pclipdata;
7746 IStream *pStream;
7747 IStorage *pStorage;
7748 BSTR bstrVal;
7749 BSTRBLOB bstrblobVal;
7750 LPSTR pszVal;
7751 LPWSTR pwszVal;
7752 CAUB caub;
7753 CAI cai;
7754 CAUI caui;
7755 CABOOL cabool;
7756 CAL cal;
7757 CAUL caul;
7758 CAFLT caflt;
7759 CASCODE cascode;
7760 CAH cah;
7761 CAUH cauh;
7762 CADBL cadbl;
7763 CACY cacy;
7764 CADATE cadate;
7765 CAFILETIME cafiletime;
7766 CACLSID cauuid;
7767 CACLIPDATA caclipdata;
7768 CABSTR cabstr;
7769 CABSTRBLOB cabstrblob;
7770 CALPSTR calpstr;
7771 CALPWSTR calpwstr;
7772 CAPROPVARIANT capropvar;
7773 } DUMMYUNIONNAME;
7776 typedef struct tagPROPVARIANT *LPPROPVARIANT;
7778 #define PRSPEC_INVALID (0xffffffff)
7780 #define PRSPEC_LPWSTR (0)
7782 #define PRSPEC_PROPID (1)
7784 typedef struct tagPROPSPEC {
7785 ULONG ulKind;
7786 union {
7787 PROPID propid;
7788 LPOLESTR lpwstr;
7789 } DUMMYUNIONNAME;
7790 } PROPSPEC;
7792 typedef struct tagSTATPROPSTG {
7793 LPOLESTR lpwstrName;
7794 PROPID propid;
7795 VARTYPE vt;
7796 } STATPROPSTG;
7798 typedef struct tagSTATPROPSETSTG {
7799 FMTID fmtid;
7800 CLSID clsid;
7801 DWORD grfFlags;
7802 FILETIME mtime;
7803 FILETIME ctime;
7804 FILETIME atime;
7805 DWORD dwOSVersion;
7806 } STATPROPSETSTG;
7808 /*****************************************************************************
7809 * IPropertyStorage interface
7811 #ifndef __IPropertyStorage_INTERFACE_DEFINED__
7812 #define __IPropertyStorage_INTERFACE_DEFINED__
7814 DEFINE_GUID(IID_IPropertyStorage, 0x00000138, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7815 #if defined(__cplusplus) && !defined(CINTERFACE)
7816 struct IPropertyStorage : public IUnknown
7818 virtual HRESULT STDMETHODCALLTYPE ReadMultiple(
7819 ULONG cpspec,
7820 const PROPSPEC rgpspec[],
7821 PROPVARIANT rgpropvar[]) = 0;
7823 virtual HRESULT STDMETHODCALLTYPE WriteMultiple(
7824 ULONG cpspec,
7825 const PROPSPEC rgpspec[],
7826 const PROPVARIANT rgpropvar[],
7827 PROPID propidNameFirst) = 0;
7829 virtual HRESULT STDMETHODCALLTYPE DeleteMultiple(
7830 ULONG cpspec,
7831 const PROPSPEC rgpspec[]) = 0;
7833 virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames(
7834 ULONG cpropid,
7835 const PROPID rgpropid[],
7836 LPOLESTR rglpwstrName[]) = 0;
7838 virtual HRESULT STDMETHODCALLTYPE WritePropertyNames(
7839 ULONG cpropid,
7840 const PROPID rgpropid[],
7841 const LPOLESTR rglpwstrName[]) = 0;
7843 virtual HRESULT STDMETHODCALLTYPE DeletePropertyNames(
7844 ULONG cpropid,
7845 const PROPID rgpropid[]) = 0;
7847 virtual HRESULT STDMETHODCALLTYPE Commit(
7848 DWORD grfCommitFlags) = 0;
7850 virtual HRESULT STDMETHODCALLTYPE Revert(
7851 ) = 0;
7853 virtual HRESULT STDMETHODCALLTYPE Enum(
7854 IEnumSTATPROPSTG** ppenum) = 0;
7856 virtual HRESULT STDMETHODCALLTYPE SetTimes(
7857 const FILETIME* pctime,
7858 const FILETIME* patime,
7859 const FILETIME* pmtime) = 0;
7861 virtual HRESULT STDMETHODCALLTYPE SetClass(
7862 REFCLSID clsid) = 0;
7864 virtual HRESULT STDMETHODCALLTYPE Stat(
7865 STATPROPSETSTG* statpsstg) = 0;
7868 #else
7869 typedef struct IPropertyStorageVtbl IPropertyStorageVtbl;
7870 struct IPropertyStorage {
7871 const IPropertyStorageVtbl* lpVtbl;
7873 struct IPropertyStorageVtbl {
7874 ICOM_MSVTABLE_COMPAT_FIELDS
7876 /*** IUnknown methods ***/
7877 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7878 IPropertyStorage* This,
7879 REFIID riid,
7880 void** ppvObject);
7882 ULONG (STDMETHODCALLTYPE *AddRef)(
7883 IPropertyStorage* This);
7885 ULONG (STDMETHODCALLTYPE *Release)(
7886 IPropertyStorage* This);
7888 /*** IPropertyStorage methods ***/
7889 HRESULT (STDMETHODCALLTYPE *ReadMultiple)(
7890 IPropertyStorage* This,
7891 ULONG cpspec,
7892 const PROPSPEC rgpspec[],
7893 PROPVARIANT rgpropvar[]);
7895 HRESULT (STDMETHODCALLTYPE *WriteMultiple)(
7896 IPropertyStorage* This,
7897 ULONG cpspec,
7898 const PROPSPEC rgpspec[],
7899 const PROPVARIANT rgpropvar[],
7900 PROPID propidNameFirst);
7902 HRESULT (STDMETHODCALLTYPE *DeleteMultiple)(
7903 IPropertyStorage* This,
7904 ULONG cpspec,
7905 const PROPSPEC rgpspec[]);
7907 HRESULT (STDMETHODCALLTYPE *ReadPropertyNames)(
7908 IPropertyStorage* This,
7909 ULONG cpropid,
7910 const PROPID rgpropid[],
7911 LPOLESTR rglpwstrName[]);
7913 HRESULT (STDMETHODCALLTYPE *WritePropertyNames)(
7914 IPropertyStorage* This,
7915 ULONG cpropid,
7916 const PROPID rgpropid[],
7917 const LPOLESTR rglpwstrName[]);
7919 HRESULT (STDMETHODCALLTYPE *DeletePropertyNames)(
7920 IPropertyStorage* This,
7921 ULONG cpropid,
7922 const PROPID rgpropid[]);
7924 HRESULT (STDMETHODCALLTYPE *Commit)(
7925 IPropertyStorage* This,
7926 DWORD grfCommitFlags);
7928 HRESULT (STDMETHODCALLTYPE *Revert)(
7929 IPropertyStorage* This);
7931 HRESULT (STDMETHODCALLTYPE *Enum)(
7932 IPropertyStorage* This,
7933 IEnumSTATPROPSTG** ppenum);
7935 HRESULT (STDMETHODCALLTYPE *SetTimes)(
7936 IPropertyStorage* This,
7937 const FILETIME* pctime,
7938 const FILETIME* patime,
7939 const FILETIME* pmtime);
7941 HRESULT (STDMETHODCALLTYPE *SetClass)(
7942 IPropertyStorage* This,
7943 REFCLSID clsid);
7945 HRESULT (STDMETHODCALLTYPE *Stat)(
7946 IPropertyStorage* This,
7947 STATPROPSETSTG* statpsstg);
7951 /*** IUnknown methods ***/
7952 #define IPropertyStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7953 #define IPropertyStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
7954 #define IPropertyStorage_Release(p) (p)->lpVtbl->Release(p)
7955 /*** IPropertyStorage methods ***/
7956 #define IPropertyStorage_ReadMultiple(p,a,b,c) (p)->lpVtbl->ReadMultiple(p,a,b,c)
7957 #define IPropertyStorage_WriteMultiple(p,a,b,c,d) (p)->lpVtbl->WriteMultiple(p,a,b,c,d)
7958 #define IPropertyStorage_DeleteMultiple(p,a,b) (p)->lpVtbl->DeleteMultiple(p,a,b)
7959 #define IPropertyStorage_ReadPropertyNames(p,a,b,c) (p)->lpVtbl->ReadPropertyNames(p,a,b,c)
7960 #define IPropertyStorage_WritePropertyNames(p,a,b,c) (p)->lpVtbl->WritePropertyNames(p,a,b,c)
7961 #define IPropertyStorage_DeletePropertyNames(p,a,b) (p)->lpVtbl->DeletePropertyNames(p,a,b)
7962 #define IPropertyStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
7963 #define IPropertyStorage_Revert(p) (p)->lpVtbl->Revert(p)
7964 #define IPropertyStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
7965 #define IPropertyStorage_SetTimes(p,a,b,c) (p)->lpVtbl->SetTimes(p,a,b,c)
7966 #define IPropertyStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
7967 #define IPropertyStorage_Stat(p,a) (p)->lpVtbl->Stat(p,a)
7969 #endif
7971 #define IPropertyStorage_METHODS \
7972 ICOM_MSVTABLE_COMPAT_FIELDS \
7973 /*** IUnknown methods ***/ \
7974 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7975 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7976 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7977 /*** IPropertyStorage methods ***/ \
7978 STDMETHOD_(HRESULT,ReadMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[], PROPVARIANT rgpropvar[]) PURE; \
7979 STDMETHOD_(HRESULT,WriteMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[], const PROPVARIANT rgpropvar[], PROPID propidNameFirst) PURE; \
7980 STDMETHOD_(HRESULT,DeleteMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[]) PURE; \
7981 STDMETHOD_(HRESULT,ReadPropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[], LPOLESTR rglpwstrName[]) PURE; \
7982 STDMETHOD_(HRESULT,WritePropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[], const LPOLESTR rglpwstrName[]) PURE; \
7983 STDMETHOD_(HRESULT,DeletePropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[]) PURE; \
7984 STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
7985 STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
7986 STDMETHOD_(HRESULT,Enum)(THIS_ IEnumSTATPROPSTG** ppenum) PURE; \
7987 STDMETHOD_(HRESULT,SetTimes)(THIS_ const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime) PURE; \
7988 STDMETHOD_(HRESULT,SetClass)(THIS_ REFCLSID clsid) PURE; \
7989 STDMETHOD_(HRESULT,Stat)(THIS_ STATPROPSETSTG* statpsstg) PURE;
7991 HRESULT CALLBACK IPropertyStorage_ReadMultiple_Proxy(
7992 IPropertyStorage* This,
7993 ULONG cpspec,
7994 const PROPSPEC rgpspec[],
7995 PROPVARIANT rgpropvar[]);
7996 void __RPC_STUB IPropertyStorage_ReadMultiple_Stub(
7997 struct IRpcStubBuffer* This,
7998 struct IRpcChannelBuffer* pRpcChannelBuffer,
7999 PRPC_MESSAGE pRpcMessage,
8000 DWORD* pdwStubPhase);
8001 HRESULT CALLBACK IPropertyStorage_WriteMultiple_Proxy(
8002 IPropertyStorage* This,
8003 ULONG cpspec,
8004 const PROPSPEC rgpspec[],
8005 const PROPVARIANT rgpropvar[],
8006 PROPID propidNameFirst);
8007 void __RPC_STUB IPropertyStorage_WriteMultiple_Stub(
8008 struct IRpcStubBuffer* This,
8009 struct IRpcChannelBuffer* pRpcChannelBuffer,
8010 PRPC_MESSAGE pRpcMessage,
8011 DWORD* pdwStubPhase);
8012 HRESULT CALLBACK IPropertyStorage_DeleteMultiple_Proxy(
8013 IPropertyStorage* This,
8014 ULONG cpspec,
8015 const PROPSPEC rgpspec[]);
8016 void __RPC_STUB IPropertyStorage_DeleteMultiple_Stub(
8017 struct IRpcStubBuffer* This,
8018 struct IRpcChannelBuffer* pRpcChannelBuffer,
8019 PRPC_MESSAGE pRpcMessage,
8020 DWORD* pdwStubPhase);
8021 HRESULT CALLBACK IPropertyStorage_ReadPropertyNames_Proxy(
8022 IPropertyStorage* This,
8023 ULONG cpropid,
8024 const PROPID rgpropid[],
8025 LPOLESTR rglpwstrName[]);
8026 void __RPC_STUB IPropertyStorage_ReadPropertyNames_Stub(
8027 struct IRpcStubBuffer* This,
8028 struct IRpcChannelBuffer* pRpcChannelBuffer,
8029 PRPC_MESSAGE pRpcMessage,
8030 DWORD* pdwStubPhase);
8031 HRESULT CALLBACK IPropertyStorage_WritePropertyNames_Proxy(
8032 IPropertyStorage* This,
8033 ULONG cpropid,
8034 const PROPID rgpropid[],
8035 const LPOLESTR rglpwstrName[]);
8036 void __RPC_STUB IPropertyStorage_WritePropertyNames_Stub(
8037 struct IRpcStubBuffer* This,
8038 struct IRpcChannelBuffer* pRpcChannelBuffer,
8039 PRPC_MESSAGE pRpcMessage,
8040 DWORD* pdwStubPhase);
8041 HRESULT CALLBACK IPropertyStorage_DeletePropertyNames_Proxy(
8042 IPropertyStorage* This,
8043 ULONG cpropid,
8044 const PROPID rgpropid[]);
8045 void __RPC_STUB IPropertyStorage_DeletePropertyNames_Stub(
8046 struct IRpcStubBuffer* This,
8047 struct IRpcChannelBuffer* pRpcChannelBuffer,
8048 PRPC_MESSAGE pRpcMessage,
8049 DWORD* pdwStubPhase);
8050 HRESULT CALLBACK IPropertyStorage_Commit_Proxy(
8051 IPropertyStorage* This,
8052 DWORD grfCommitFlags);
8053 void __RPC_STUB IPropertyStorage_Commit_Stub(
8054 struct IRpcStubBuffer* This,
8055 struct IRpcChannelBuffer* pRpcChannelBuffer,
8056 PRPC_MESSAGE pRpcMessage,
8057 DWORD* pdwStubPhase);
8058 HRESULT CALLBACK IPropertyStorage_Revert_Proxy(
8059 IPropertyStorage* This);
8060 void __RPC_STUB IPropertyStorage_Revert_Stub(
8061 struct IRpcStubBuffer* This,
8062 struct IRpcChannelBuffer* pRpcChannelBuffer,
8063 PRPC_MESSAGE pRpcMessage,
8064 DWORD* pdwStubPhase);
8065 HRESULT CALLBACK IPropertyStorage_Enum_Proxy(
8066 IPropertyStorage* This,
8067 IEnumSTATPROPSTG** ppenum);
8068 void __RPC_STUB IPropertyStorage_Enum_Stub(
8069 struct IRpcStubBuffer* This,
8070 struct IRpcChannelBuffer* pRpcChannelBuffer,
8071 PRPC_MESSAGE pRpcMessage,
8072 DWORD* pdwStubPhase);
8073 HRESULT CALLBACK IPropertyStorage_SetTimes_Proxy(
8074 IPropertyStorage* This,
8075 const FILETIME* pctime,
8076 const FILETIME* patime,
8077 const FILETIME* pmtime);
8078 void __RPC_STUB IPropertyStorage_SetTimes_Stub(
8079 struct IRpcStubBuffer* This,
8080 struct IRpcChannelBuffer* pRpcChannelBuffer,
8081 PRPC_MESSAGE pRpcMessage,
8082 DWORD* pdwStubPhase);
8083 HRESULT CALLBACK IPropertyStorage_SetClass_Proxy(
8084 IPropertyStorage* This,
8085 REFCLSID clsid);
8086 void __RPC_STUB IPropertyStorage_SetClass_Stub(
8087 struct IRpcStubBuffer* This,
8088 struct IRpcChannelBuffer* pRpcChannelBuffer,
8089 PRPC_MESSAGE pRpcMessage,
8090 DWORD* pdwStubPhase);
8091 HRESULT CALLBACK IPropertyStorage_Stat_Proxy(
8092 IPropertyStorage* This,
8093 STATPROPSETSTG* statpsstg);
8094 void __RPC_STUB IPropertyStorage_Stat_Stub(
8095 struct IRpcStubBuffer* This,
8096 struct IRpcChannelBuffer* pRpcChannelBuffer,
8097 PRPC_MESSAGE pRpcMessage,
8098 DWORD* pdwStubPhase);
8100 #endif /* __IPropertyStorage_INTERFACE_DEFINED__ */
8102 #ifndef __IPropertySetStorage_FWD_DEFINED__
8103 #define __IPropertySetStorage_FWD_DEFINED__
8104 typedef struct IPropertySetStorage IPropertySetStorage;
8105 #endif
8107 typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
8109 /*****************************************************************************
8110 * IPropertySetStorage interface
8112 #ifndef __IPropertySetStorage_INTERFACE_DEFINED__
8113 #define __IPropertySetStorage_INTERFACE_DEFINED__
8115 DEFINE_GUID(IID_IPropertySetStorage, 0x0000013a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8116 #if defined(__cplusplus) && !defined(CINTERFACE)
8117 struct IPropertySetStorage : public IUnknown
8119 virtual HRESULT STDMETHODCALLTYPE Create(
8120 REFFMTID rfmtid,
8121 const CLSID* pclsid,
8122 DWORD grfFlags,
8123 DWORD grfMode,
8124 IPropertyStorage** ppprstg) = 0;
8126 virtual HRESULT STDMETHODCALLTYPE Open(
8127 REFFMTID rfmtid,
8128 DWORD grfMode,
8129 IPropertyStorage** ppprstg) = 0;
8131 virtual HRESULT STDMETHODCALLTYPE Delete(
8132 REFFMTID rfmtid) = 0;
8134 virtual HRESULT STDMETHODCALLTYPE Enum(
8135 IEnumSTATPROPSETSTG** ppenum) = 0;
8138 #else
8139 typedef struct IPropertySetStorageVtbl IPropertySetStorageVtbl;
8140 struct IPropertySetStorage {
8141 const IPropertySetStorageVtbl* lpVtbl;
8143 struct IPropertySetStorageVtbl {
8144 ICOM_MSVTABLE_COMPAT_FIELDS
8146 /*** IUnknown methods ***/
8147 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8148 IPropertySetStorage* This,
8149 REFIID riid,
8150 void** ppvObject);
8152 ULONG (STDMETHODCALLTYPE *AddRef)(
8153 IPropertySetStorage* This);
8155 ULONG (STDMETHODCALLTYPE *Release)(
8156 IPropertySetStorage* This);
8158 /*** IPropertySetStorage methods ***/
8159 HRESULT (STDMETHODCALLTYPE *Create)(
8160 IPropertySetStorage* This,
8161 REFFMTID rfmtid,
8162 const CLSID* pclsid,
8163 DWORD grfFlags,
8164 DWORD grfMode,
8165 IPropertyStorage** ppprstg);
8167 HRESULT (STDMETHODCALLTYPE *Open)(
8168 IPropertySetStorage* This,
8169 REFFMTID rfmtid,
8170 DWORD grfMode,
8171 IPropertyStorage** ppprstg);
8173 HRESULT (STDMETHODCALLTYPE *Delete)(
8174 IPropertySetStorage* This,
8175 REFFMTID rfmtid);
8177 HRESULT (STDMETHODCALLTYPE *Enum)(
8178 IPropertySetStorage* This,
8179 IEnumSTATPROPSETSTG** ppenum);
8183 /*** IUnknown methods ***/
8184 #define IPropertySetStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8185 #define IPropertySetStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
8186 #define IPropertySetStorage_Release(p) (p)->lpVtbl->Release(p)
8187 /*** IPropertySetStorage methods ***/
8188 #define IPropertySetStorage_Create(p,a,b,c,d,e) (p)->lpVtbl->Create(p,a,b,c,d,e)
8189 #define IPropertySetStorage_Open(p,a,b,c) (p)->lpVtbl->Open(p,a,b,c)
8190 #define IPropertySetStorage_Delete(p,a) (p)->lpVtbl->Delete(p,a)
8191 #define IPropertySetStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
8193 #endif
8195 #define IPropertySetStorage_METHODS \
8196 ICOM_MSVTABLE_COMPAT_FIELDS \
8197 /*** IUnknown methods ***/ \
8198 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8199 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8200 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8201 /*** IPropertySetStorage methods ***/ \
8202 STDMETHOD_(HRESULT,Create)(THIS_ REFFMTID rfmtid, const CLSID* pclsid, DWORD grfFlags, DWORD grfMode, IPropertyStorage** ppprstg) PURE; \
8203 STDMETHOD_(HRESULT,Open)(THIS_ REFFMTID rfmtid, DWORD grfMode, IPropertyStorage** ppprstg) PURE; \
8204 STDMETHOD_(HRESULT,Delete)(THIS_ REFFMTID rfmtid) PURE; \
8205 STDMETHOD_(HRESULT,Enum)(THIS_ IEnumSTATPROPSETSTG** ppenum) PURE;
8207 HRESULT CALLBACK IPropertySetStorage_Create_Proxy(
8208 IPropertySetStorage* This,
8209 REFFMTID rfmtid,
8210 const CLSID* pclsid,
8211 DWORD grfFlags,
8212 DWORD grfMode,
8213 IPropertyStorage** ppprstg);
8214 void __RPC_STUB IPropertySetStorage_Create_Stub(
8215 struct IRpcStubBuffer* This,
8216 struct IRpcChannelBuffer* pRpcChannelBuffer,
8217 PRPC_MESSAGE pRpcMessage,
8218 DWORD* pdwStubPhase);
8219 HRESULT CALLBACK IPropertySetStorage_Open_Proxy(
8220 IPropertySetStorage* This,
8221 REFFMTID rfmtid,
8222 DWORD grfMode,
8223 IPropertyStorage** ppprstg);
8224 void __RPC_STUB IPropertySetStorage_Open_Stub(
8225 struct IRpcStubBuffer* This,
8226 struct IRpcChannelBuffer* pRpcChannelBuffer,
8227 PRPC_MESSAGE pRpcMessage,
8228 DWORD* pdwStubPhase);
8229 HRESULT CALLBACK IPropertySetStorage_Delete_Proxy(
8230 IPropertySetStorage* This,
8231 REFFMTID rfmtid);
8232 void __RPC_STUB IPropertySetStorage_Delete_Stub(
8233 struct IRpcStubBuffer* This,
8234 struct IRpcChannelBuffer* pRpcChannelBuffer,
8235 PRPC_MESSAGE pRpcMessage,
8236 DWORD* pdwStubPhase);
8237 HRESULT CALLBACK IPropertySetStorage_Enum_Proxy(
8238 IPropertySetStorage* This,
8239 IEnumSTATPROPSETSTG** ppenum);
8240 void __RPC_STUB IPropertySetStorage_Enum_Stub(
8241 struct IRpcStubBuffer* This,
8242 struct IRpcChannelBuffer* pRpcChannelBuffer,
8243 PRPC_MESSAGE pRpcMessage,
8244 DWORD* pdwStubPhase);
8246 #endif /* __IPropertySetStorage_INTERFACE_DEFINED__ */
8248 typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
8250 /*****************************************************************************
8251 * IEnumSTATPROPSTG interface
8253 #ifndef __IEnumSTATPROPSTG_INTERFACE_DEFINED__
8254 #define __IEnumSTATPROPSTG_INTERFACE_DEFINED__
8256 DEFINE_GUID(IID_IEnumSTATPROPSTG, 0x00000139, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8257 #if defined(__cplusplus) && !defined(CINTERFACE)
8258 struct IEnumSTATPROPSTG : public IUnknown
8260 virtual HRESULT STDMETHODCALLTYPE Next(
8261 ULONG celt,
8262 STATPROPSTG* rgelt,
8263 ULONG* pceltFetched) = 0;
8265 virtual HRESULT STDMETHODCALLTYPE Skip(
8266 ULONG celt) = 0;
8268 virtual HRESULT STDMETHODCALLTYPE Reset(
8269 ) = 0;
8271 virtual HRESULT STDMETHODCALLTYPE Clone(
8272 IEnumSTATPROPSTG** ppenum) = 0;
8275 #else
8276 typedef struct IEnumSTATPROPSTGVtbl IEnumSTATPROPSTGVtbl;
8277 struct IEnumSTATPROPSTG {
8278 const IEnumSTATPROPSTGVtbl* lpVtbl;
8280 struct IEnumSTATPROPSTGVtbl {
8281 ICOM_MSVTABLE_COMPAT_FIELDS
8283 /*** IUnknown methods ***/
8284 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8285 IEnumSTATPROPSTG* This,
8286 REFIID riid,
8287 void** ppvObject);
8289 ULONG (STDMETHODCALLTYPE *AddRef)(
8290 IEnumSTATPROPSTG* This);
8292 ULONG (STDMETHODCALLTYPE *Release)(
8293 IEnumSTATPROPSTG* This);
8295 /*** IEnumSTATPROPSTG methods ***/
8296 HRESULT (STDMETHODCALLTYPE *Next)(
8297 IEnumSTATPROPSTG* This,
8298 ULONG celt,
8299 STATPROPSTG* rgelt,
8300 ULONG* pceltFetched);
8302 HRESULT (STDMETHODCALLTYPE *Skip)(
8303 IEnumSTATPROPSTG* This,
8304 ULONG celt);
8306 HRESULT (STDMETHODCALLTYPE *Reset)(
8307 IEnumSTATPROPSTG* This);
8309 HRESULT (STDMETHODCALLTYPE *Clone)(
8310 IEnumSTATPROPSTG* This,
8311 IEnumSTATPROPSTG** ppenum);
8315 /*** IUnknown methods ***/
8316 #define IEnumSTATPROPSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8317 #define IEnumSTATPROPSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
8318 #define IEnumSTATPROPSTG_Release(p) (p)->lpVtbl->Release(p)
8319 /*** IEnumSTATPROPSTG methods ***/
8320 #define IEnumSTATPROPSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
8321 #define IEnumSTATPROPSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
8322 #define IEnumSTATPROPSTG_Reset(p) (p)->lpVtbl->Reset(p)
8323 #define IEnumSTATPROPSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
8325 #endif
8327 #define IEnumSTATPROPSTG_METHODS \
8328 ICOM_MSVTABLE_COMPAT_FIELDS \
8329 /*** IUnknown methods ***/ \
8330 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8331 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8332 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8333 /*** IEnumSTATPROPSTG methods ***/ \
8334 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATPROPSTG* rgelt, ULONG* pceltFetched) PURE; \
8335 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
8336 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
8337 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATPROPSTG** ppenum) PURE;
8339 HRESULT CALLBACK IEnumSTATPROPSTG_RemoteNext_Proxy(
8340 IEnumSTATPROPSTG* This,
8341 ULONG celt,
8342 STATPROPSTG* rgelt,
8343 ULONG* pceltFetched);
8344 void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(
8345 struct IRpcStubBuffer* This,
8346 struct IRpcChannelBuffer* pRpcChannelBuffer,
8347 PRPC_MESSAGE pRpcMessage,
8348 DWORD* pdwStubPhase);
8349 HRESULT CALLBACK IEnumSTATPROPSTG_Next_Proxy(
8350 IEnumSTATPROPSTG* This,
8351 ULONG celt,
8352 STATPROPSTG* rgelt,
8353 ULONG* pceltFetched);
8354 HRESULT __RPC_STUB IEnumSTATPROPSTG_Next_Stub(
8355 IEnumSTATPROPSTG* This,
8356 ULONG celt,
8357 STATPROPSTG* rgelt,
8358 ULONG* pceltFetched);
8359 HRESULT CALLBACK IEnumSTATPROPSTG_Skip_Proxy(
8360 IEnumSTATPROPSTG* This,
8361 ULONG celt);
8362 void __RPC_STUB IEnumSTATPROPSTG_Skip_Stub(
8363 struct IRpcStubBuffer* This,
8364 struct IRpcChannelBuffer* pRpcChannelBuffer,
8365 PRPC_MESSAGE pRpcMessage,
8366 DWORD* pdwStubPhase);
8367 HRESULT CALLBACK IEnumSTATPROPSTG_Reset_Proxy(
8368 IEnumSTATPROPSTG* This);
8369 void __RPC_STUB IEnumSTATPROPSTG_Reset_Stub(
8370 struct IRpcStubBuffer* This,
8371 struct IRpcChannelBuffer* pRpcChannelBuffer,
8372 PRPC_MESSAGE pRpcMessage,
8373 DWORD* pdwStubPhase);
8374 HRESULT CALLBACK IEnumSTATPROPSTG_Clone_Proxy(
8375 IEnumSTATPROPSTG* This,
8376 IEnumSTATPROPSTG** ppenum);
8377 void __RPC_STUB IEnumSTATPROPSTG_Clone_Stub(
8378 struct IRpcStubBuffer* This,
8379 struct IRpcChannelBuffer* pRpcChannelBuffer,
8380 PRPC_MESSAGE pRpcMessage,
8381 DWORD* pdwStubPhase);
8383 #endif /* __IEnumSTATPROPSTG_INTERFACE_DEFINED__ */
8385 typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
8387 /*****************************************************************************
8388 * IEnumSTATPROPSETSTG interface
8390 #ifndef __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
8391 #define __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
8393 DEFINE_GUID(IID_IEnumSTATPROPSETSTG, 0x0000013b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8394 #if defined(__cplusplus) && !defined(CINTERFACE)
8395 struct IEnumSTATPROPSETSTG : public IUnknown
8397 virtual HRESULT STDMETHODCALLTYPE Next(
8398 ULONG celt,
8399 STATPROPSETSTG* rgelt,
8400 ULONG* pceltFetched) = 0;
8402 virtual HRESULT STDMETHODCALLTYPE Skip(
8403 ULONG celt) = 0;
8405 virtual HRESULT STDMETHODCALLTYPE Reset(
8406 ) = 0;
8408 virtual HRESULT STDMETHODCALLTYPE Clone(
8409 IEnumSTATPROPSETSTG** ppenum) = 0;
8412 #else
8413 typedef struct IEnumSTATPROPSETSTGVtbl IEnumSTATPROPSETSTGVtbl;
8414 struct IEnumSTATPROPSETSTG {
8415 const IEnumSTATPROPSETSTGVtbl* lpVtbl;
8417 struct IEnumSTATPROPSETSTGVtbl {
8418 ICOM_MSVTABLE_COMPAT_FIELDS
8420 /*** IUnknown methods ***/
8421 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8422 IEnumSTATPROPSETSTG* This,
8423 REFIID riid,
8424 void** ppvObject);
8426 ULONG (STDMETHODCALLTYPE *AddRef)(
8427 IEnumSTATPROPSETSTG* This);
8429 ULONG (STDMETHODCALLTYPE *Release)(
8430 IEnumSTATPROPSETSTG* This);
8432 /*** IEnumSTATPROPSETSTG methods ***/
8433 HRESULT (STDMETHODCALLTYPE *Next)(
8434 IEnumSTATPROPSETSTG* This,
8435 ULONG celt,
8436 STATPROPSETSTG* rgelt,
8437 ULONG* pceltFetched);
8439 HRESULT (STDMETHODCALLTYPE *Skip)(
8440 IEnumSTATPROPSETSTG* This,
8441 ULONG celt);
8443 HRESULT (STDMETHODCALLTYPE *Reset)(
8444 IEnumSTATPROPSETSTG* This);
8446 HRESULT (STDMETHODCALLTYPE *Clone)(
8447 IEnumSTATPROPSETSTG* This,
8448 IEnumSTATPROPSETSTG** ppenum);
8452 /*** IUnknown methods ***/
8453 #define IEnumSTATPROPSETSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8454 #define IEnumSTATPROPSETSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
8455 #define IEnumSTATPROPSETSTG_Release(p) (p)->lpVtbl->Release(p)
8456 /*** IEnumSTATPROPSETSTG methods ***/
8457 #define IEnumSTATPROPSETSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
8458 #define IEnumSTATPROPSETSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
8459 #define IEnumSTATPROPSETSTG_Reset(p) (p)->lpVtbl->Reset(p)
8460 #define IEnumSTATPROPSETSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
8462 #endif
8464 #define IEnumSTATPROPSETSTG_METHODS \
8465 ICOM_MSVTABLE_COMPAT_FIELDS \
8466 /*** IUnknown methods ***/ \
8467 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8468 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8469 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8470 /*** IEnumSTATPROPSETSTG methods ***/ \
8471 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATPROPSETSTG* rgelt, ULONG* pceltFetched) PURE; \
8472 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
8473 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
8474 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATPROPSETSTG** ppenum) PURE;
8476 HRESULT CALLBACK IEnumSTATPROPSETSTG_RemoteNext_Proxy(
8477 IEnumSTATPROPSETSTG* This,
8478 ULONG celt,
8479 STATPROPSETSTG* rgelt,
8480 ULONG* pceltFetched);
8481 void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(
8482 struct IRpcStubBuffer* This,
8483 struct IRpcChannelBuffer* pRpcChannelBuffer,
8484 PRPC_MESSAGE pRpcMessage,
8485 DWORD* pdwStubPhase);
8486 HRESULT CALLBACK IEnumSTATPROPSETSTG_Next_Proxy(
8487 IEnumSTATPROPSETSTG* This,
8488 ULONG celt,
8489 STATPROPSETSTG* rgelt,
8490 ULONG* pceltFetched);
8491 HRESULT __RPC_STUB IEnumSTATPROPSETSTG_Next_Stub(
8492 IEnumSTATPROPSETSTG* This,
8493 ULONG celt,
8494 STATPROPSETSTG* rgelt,
8495 ULONG* pceltFetched);
8496 HRESULT CALLBACK IEnumSTATPROPSETSTG_Skip_Proxy(
8497 IEnumSTATPROPSETSTG* This,
8498 ULONG celt);
8499 void __RPC_STUB IEnumSTATPROPSETSTG_Skip_Stub(
8500 struct IRpcStubBuffer* This,
8501 struct IRpcChannelBuffer* pRpcChannelBuffer,
8502 PRPC_MESSAGE pRpcMessage,
8503 DWORD* pdwStubPhase);
8504 HRESULT CALLBACK IEnumSTATPROPSETSTG_Reset_Proxy(
8505 IEnumSTATPROPSETSTG* This);
8506 void __RPC_STUB IEnumSTATPROPSETSTG_Reset_Stub(
8507 struct IRpcStubBuffer* This,
8508 struct IRpcChannelBuffer* pRpcChannelBuffer,
8509 PRPC_MESSAGE pRpcMessage,
8510 DWORD* pdwStubPhase);
8511 HRESULT CALLBACK IEnumSTATPROPSETSTG_Clone_Proxy(
8512 IEnumSTATPROPSETSTG* This,
8513 IEnumSTATPROPSETSTG** ppenum);
8514 void __RPC_STUB IEnumSTATPROPSETSTG_Clone_Stub(
8515 struct IRpcStubBuffer* This,
8516 struct IRpcChannelBuffer* pRpcChannelBuffer,
8517 PRPC_MESSAGE pRpcMessage,
8518 DWORD* pdwStubPhase);
8520 #endif /* __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ */
8522 #ifndef __IClientSecurity_FWD_DEFINED__
8523 #define __IClientSecurity_FWD_DEFINED__
8524 typedef struct IClientSecurity IClientSecurity;
8525 #endif
8527 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
8528 DWORD dwAuthnSvc;
8529 DWORD dwAuthzSvc;
8530 OLECHAR *pPrincipalName;
8531 HRESULT hr;
8532 } SOLE_AUTHENTICATION_SERVICE;
8534 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
8536 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
8537 EOAC_NONE = 0x0,
8538 EOAC_MUTUAL_AUTH = 0x1,
8539 EOAC_CLOAKING = 0x10,
8540 EOAC_SECURE_REFS = 0x2,
8541 EOAC_ACCESS_CONTROL = 0x4,
8542 EOAC_APPID = 0x8
8543 } EOLE_AUTHENTICATION_CAPABILITIES;
8545 /*****************************************************************************
8546 * IClientSecurity interface
8548 #ifndef __IClientSecurity_INTERFACE_DEFINED__
8549 #define __IClientSecurity_INTERFACE_DEFINED__
8551 DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8552 #if defined(__cplusplus) && !defined(CINTERFACE)
8553 struct IClientSecurity : public IUnknown
8555 virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
8556 IUnknown* pProxy,
8557 DWORD* pAuthnSvc,
8558 DWORD* pAuthzSvc,
8559 OLECHAR** pServerPrincName,
8560 DWORD* pAuthnLevel,
8561 DWORD* pImpLevel,
8562 void** pAuthInfo,
8563 DWORD* pCapabilites) = 0;
8565 virtual HRESULT STDMETHODCALLTYPE SetBlanket(
8566 IUnknown* pProxy,
8567 DWORD AuthnSvc,
8568 DWORD AuthzSvc,
8569 OLECHAR* pServerPrincName,
8570 DWORD AuthnLevel,
8571 DWORD ImpLevel,
8572 void* pAuthInfo,
8573 DWORD Capabilities) = 0;
8575 virtual HRESULT STDMETHODCALLTYPE CopyProxy(
8576 IUnknown* pProxy,
8577 IUnknown** ppCopy) = 0;
8580 #else
8581 typedef struct IClientSecurityVtbl IClientSecurityVtbl;
8582 struct IClientSecurity {
8583 const IClientSecurityVtbl* lpVtbl;
8585 struct IClientSecurityVtbl {
8586 ICOM_MSVTABLE_COMPAT_FIELDS
8588 /*** IUnknown methods ***/
8589 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8590 IClientSecurity* This,
8591 REFIID riid,
8592 void** ppvObject);
8594 ULONG (STDMETHODCALLTYPE *AddRef)(
8595 IClientSecurity* This);
8597 ULONG (STDMETHODCALLTYPE *Release)(
8598 IClientSecurity* This);
8600 /*** IClientSecurity methods ***/
8601 HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
8602 IClientSecurity* This,
8603 IUnknown* pProxy,
8604 DWORD* pAuthnSvc,
8605 DWORD* pAuthzSvc,
8606 OLECHAR** pServerPrincName,
8607 DWORD* pAuthnLevel,
8608 DWORD* pImpLevel,
8609 void** pAuthInfo,
8610 DWORD* pCapabilites);
8612 HRESULT (STDMETHODCALLTYPE *SetBlanket)(
8613 IClientSecurity* This,
8614 IUnknown* pProxy,
8615 DWORD AuthnSvc,
8616 DWORD AuthzSvc,
8617 OLECHAR* pServerPrincName,
8618 DWORD AuthnLevel,
8619 DWORD ImpLevel,
8620 void* pAuthInfo,
8621 DWORD Capabilities);
8623 HRESULT (STDMETHODCALLTYPE *CopyProxy)(
8624 IClientSecurity* This,
8625 IUnknown* pProxy,
8626 IUnknown** ppCopy);
8630 /*** IUnknown methods ***/
8631 #define IClientSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8632 #define IClientSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
8633 #define IClientSecurity_Release(p) (p)->lpVtbl->Release(p)
8634 /*** IClientSecurity methods ***/
8635 #define IClientSecurity_QueryBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g,h)
8636 #define IClientSecurity_SetBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->SetBlanket(p,a,b,c,d,e,f,g,h)
8637 #define IClientSecurity_CopyProxy(p,a,b) (p)->lpVtbl->CopyProxy(p,a,b)
8639 #endif
8641 #define IClientSecurity_METHODS \
8642 ICOM_MSVTABLE_COMPAT_FIELDS \
8643 /*** IUnknown methods ***/ \
8644 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8645 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8646 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8647 /*** IClientSecurity methods ***/ \
8648 STDMETHOD_(HRESULT,QueryBlanket)(THIS_ IUnknown* pProxy, DWORD* pAuthnSvc, DWORD* pAuthzSvc, OLECHAR** pServerPrincName, DWORD* pAuthnLevel, DWORD* pImpLevel, void** pAuthInfo, DWORD* pCapabilites) PURE; \
8649 STDMETHOD_(HRESULT,SetBlanket)(THIS_ IUnknown* pProxy, DWORD AuthnSvc, DWORD AuthzSvc, OLECHAR* pServerPrincName, DWORD AuthnLevel, DWORD ImpLevel, void* pAuthInfo, DWORD Capabilities) PURE; \
8650 STDMETHOD_(HRESULT,CopyProxy)(THIS_ IUnknown* pProxy, IUnknown** ppCopy) PURE;
8652 HRESULT CALLBACK IClientSecurity_QueryBlanket_Proxy(
8653 IClientSecurity* This,
8654 IUnknown* pProxy,
8655 DWORD* pAuthnSvc,
8656 DWORD* pAuthzSvc,
8657 OLECHAR** pServerPrincName,
8658 DWORD* pAuthnLevel,
8659 DWORD* pImpLevel,
8660 void** pAuthInfo,
8661 DWORD* pCapabilites);
8662 void __RPC_STUB IClientSecurity_QueryBlanket_Stub(
8663 struct IRpcStubBuffer* This,
8664 struct IRpcChannelBuffer* pRpcChannelBuffer,
8665 PRPC_MESSAGE pRpcMessage,
8666 DWORD* pdwStubPhase);
8667 HRESULT CALLBACK IClientSecurity_SetBlanket_Proxy(
8668 IClientSecurity* This,
8669 IUnknown* pProxy,
8670 DWORD AuthnSvc,
8671 DWORD AuthzSvc,
8672 OLECHAR* pServerPrincName,
8673 DWORD AuthnLevel,
8674 DWORD ImpLevel,
8675 void* pAuthInfo,
8676 DWORD Capabilities);
8677 void __RPC_STUB IClientSecurity_SetBlanket_Stub(
8678 struct IRpcStubBuffer* This,
8679 struct IRpcChannelBuffer* pRpcChannelBuffer,
8680 PRPC_MESSAGE pRpcMessage,
8681 DWORD* pdwStubPhase);
8682 HRESULT CALLBACK IClientSecurity_CopyProxy_Proxy(
8683 IClientSecurity* This,
8684 IUnknown* pProxy,
8685 IUnknown** ppCopy);
8686 void __RPC_STUB IClientSecurity_CopyProxy_Stub(
8687 struct IRpcStubBuffer* This,
8688 struct IRpcChannelBuffer* pRpcChannelBuffer,
8689 PRPC_MESSAGE pRpcMessage,
8690 DWORD* pdwStubPhase);
8692 #endif /* __IClientSecurity_INTERFACE_DEFINED__ */
8694 #ifndef __IServerSecurity_FWD_DEFINED__
8695 #define __IServerSecurity_FWD_DEFINED__
8696 typedef struct IServerSecurity IServerSecurity;
8697 #endif
8699 /*****************************************************************************
8700 * IServerSecurity interface
8702 #ifndef __IServerSecurity_INTERFACE_DEFINED__
8703 #define __IServerSecurity_INTERFACE_DEFINED__
8705 DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8706 #if defined(__cplusplus) && !defined(CINTERFACE)
8707 struct IServerSecurity : public IUnknown
8709 virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
8710 DWORD* pAuthnSvc,
8711 DWORD* pAuthzSvc,
8712 OLECHAR** pServerPrincName,
8713 DWORD* pAuthnLevel,
8714 DWORD* pImpLevel,
8715 void** pPrivs,
8716 DWORD* pCapabilities) = 0;
8718 virtual HRESULT STDMETHODCALLTYPE ImpersonateClient(
8719 ) = 0;
8721 virtual HRESULT STDMETHODCALLTYPE RevertToSelf(
8722 ) = 0;
8724 virtual BOOL STDMETHODCALLTYPE IsImpersonating(
8725 ) = 0;
8728 #else
8729 typedef struct IServerSecurityVtbl IServerSecurityVtbl;
8730 struct IServerSecurity {
8731 const IServerSecurityVtbl* lpVtbl;
8733 struct IServerSecurityVtbl {
8734 ICOM_MSVTABLE_COMPAT_FIELDS
8736 /*** IUnknown methods ***/
8737 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8738 IServerSecurity* This,
8739 REFIID riid,
8740 void** ppvObject);
8742 ULONG (STDMETHODCALLTYPE *AddRef)(
8743 IServerSecurity* This);
8745 ULONG (STDMETHODCALLTYPE *Release)(
8746 IServerSecurity* This);
8748 /*** IServerSecurity methods ***/
8749 HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
8750 IServerSecurity* This,
8751 DWORD* pAuthnSvc,
8752 DWORD* pAuthzSvc,
8753 OLECHAR** pServerPrincName,
8754 DWORD* pAuthnLevel,
8755 DWORD* pImpLevel,
8756 void** pPrivs,
8757 DWORD* pCapabilities);
8759 HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(
8760 IServerSecurity* This);
8762 HRESULT (STDMETHODCALLTYPE *RevertToSelf)(
8763 IServerSecurity* This);
8765 BOOL (STDMETHODCALLTYPE *IsImpersonating)(
8766 IServerSecurity* This);
8770 /*** IUnknown methods ***/
8771 #define IServerSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8772 #define IServerSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
8773 #define IServerSecurity_Release(p) (p)->lpVtbl->Release(p)
8774 /*** IServerSecurity methods ***/
8775 #define IServerSecurity_QueryBlanket(p,a,b,c,d,e,f,g) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g)
8776 #define IServerSecurity_ImpersonateClient(p) (p)->lpVtbl->ImpersonateClient(p)
8777 #define IServerSecurity_RevertToSelf(p) (p)->lpVtbl->RevertToSelf(p)
8778 #define IServerSecurity_IsImpersonating(p) (p)->lpVtbl->IsImpersonating(p)
8780 #endif
8782 #define IServerSecurity_METHODS \
8783 ICOM_MSVTABLE_COMPAT_FIELDS \
8784 /*** IUnknown methods ***/ \
8785 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8786 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8787 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8788 /*** IServerSecurity methods ***/ \
8789 STDMETHOD_(HRESULT,QueryBlanket)(THIS_ DWORD* pAuthnSvc, DWORD* pAuthzSvc, OLECHAR** pServerPrincName, DWORD* pAuthnLevel, DWORD* pImpLevel, void** pPrivs, DWORD* pCapabilities) PURE; \
8790 STDMETHOD_(HRESULT,ImpersonateClient)(THIS) PURE; \
8791 STDMETHOD_(HRESULT,RevertToSelf)(THIS) PURE; \
8792 STDMETHOD_(BOOL,IsImpersonating)(THIS) PURE;
8794 HRESULT CALLBACK IServerSecurity_QueryBlanket_Proxy(
8795 IServerSecurity* This,
8796 DWORD* pAuthnSvc,
8797 DWORD* pAuthzSvc,
8798 OLECHAR** pServerPrincName,
8799 DWORD* pAuthnLevel,
8800 DWORD* pImpLevel,
8801 void** pPrivs,
8802 DWORD* pCapabilities);
8803 void __RPC_STUB IServerSecurity_QueryBlanket_Stub(
8804 struct IRpcStubBuffer* This,
8805 struct IRpcChannelBuffer* pRpcChannelBuffer,
8806 PRPC_MESSAGE pRpcMessage,
8807 DWORD* pdwStubPhase);
8808 HRESULT CALLBACK IServerSecurity_ImpersonateClient_Proxy(
8809 IServerSecurity* This);
8810 void __RPC_STUB IServerSecurity_ImpersonateClient_Stub(
8811 struct IRpcStubBuffer* This,
8812 struct IRpcChannelBuffer* pRpcChannelBuffer,
8813 PRPC_MESSAGE pRpcMessage,
8814 DWORD* pdwStubPhase);
8815 HRESULT CALLBACK IServerSecurity_RevertToSelf_Proxy(
8816 IServerSecurity* This);
8817 void __RPC_STUB IServerSecurity_RevertToSelf_Stub(
8818 struct IRpcStubBuffer* This,
8819 struct IRpcChannelBuffer* pRpcChannelBuffer,
8820 PRPC_MESSAGE pRpcMessage,
8821 DWORD* pdwStubPhase);
8822 BOOL CALLBACK IServerSecurity_IsImpersonating_Proxy(
8823 IServerSecurity* This);
8824 void __RPC_STUB IServerSecurity_IsImpersonating_Stub(
8825 struct IRpcStubBuffer* This,
8826 struct IRpcChannelBuffer* pRpcChannelBuffer,
8827 PRPC_MESSAGE pRpcMessage,
8828 DWORD* pdwStubPhase);
8830 #endif /* __IServerSecurity_INTERFACE_DEFINED__ */
8832 #ifndef __IAsyncSetup_FWD_DEFINED__
8833 #define __IAsyncSetup_FWD_DEFINED__
8834 typedef struct IAsyncSetup IAsyncSetup;
8835 #endif
8837 /*****************************************************************************
8838 * IAsyncSetup interface
8840 #ifndef __IAsyncSetup_INTERFACE_DEFINED__
8841 #define __IAsyncSetup_INTERFACE_DEFINED__
8843 DEFINE_GUID(IID_IAsyncSetup, 0x00000024, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8844 #if defined(__cplusplus) && !defined(CINTERFACE)
8845 struct IAsyncSetup : public IUnknown
8847 virtual HRESULT STDMETHODCALLTYPE GetAsyncManager(
8848 REFIID riid,
8849 IUnknown* pOuter,
8850 DWORD dwFlags,
8851 IUnknown** ppInner,
8852 IAsyncManager** ppAsyncMgr) = 0;
8855 #else
8856 typedef struct IAsyncSetupVtbl IAsyncSetupVtbl;
8857 struct IAsyncSetup {
8858 const IAsyncSetupVtbl* lpVtbl;
8860 struct IAsyncSetupVtbl {
8861 ICOM_MSVTABLE_COMPAT_FIELDS
8863 /*** IUnknown methods ***/
8864 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8865 IAsyncSetup* This,
8866 REFIID riid,
8867 void** ppvObject);
8869 ULONG (STDMETHODCALLTYPE *AddRef)(
8870 IAsyncSetup* This);
8872 ULONG (STDMETHODCALLTYPE *Release)(
8873 IAsyncSetup* This);
8875 /*** IAsyncSetup methods ***/
8876 HRESULT (STDMETHODCALLTYPE *GetAsyncManager)(
8877 IAsyncSetup* This,
8878 REFIID riid,
8879 IUnknown* pOuter,
8880 DWORD dwFlags,
8881 IUnknown** ppInner,
8882 IAsyncManager** ppAsyncMgr);
8886 /*** IUnknown methods ***/
8887 #define IAsyncSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8888 #define IAsyncSetup_AddRef(p) (p)->lpVtbl->AddRef(p)
8889 #define IAsyncSetup_Release(p) (p)->lpVtbl->Release(p)
8890 /*** IAsyncSetup methods ***/
8891 #define IAsyncSetup_GetAsyncManager(p,a,b,c,d,e) (p)->lpVtbl->GetAsyncManager(p,a,b,c,d,e)
8893 #endif
8895 #define IAsyncSetup_METHODS \
8896 ICOM_MSVTABLE_COMPAT_FIELDS \
8897 /*** IUnknown methods ***/ \
8898 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8899 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8900 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8901 /*** IAsyncSetup methods ***/ \
8902 STDMETHOD_(HRESULT,GetAsyncManager)(THIS_ REFIID riid, IUnknown* pOuter, DWORD dwFlags, IUnknown** ppInner, IAsyncManager** ppAsyncMgr) PURE;
8904 HRESULT CALLBACK IAsyncSetup_GetAsyncManager_Proxy(
8905 IAsyncSetup* This,
8906 REFIID riid,
8907 IUnknown* pOuter,
8908 DWORD dwFlags,
8909 IUnknown** ppInner,
8910 IAsyncManager** ppAsyncMgr);
8911 void __RPC_STUB IAsyncSetup_GetAsyncManager_Stub(
8912 struct IRpcStubBuffer* This,
8913 struct IRpcChannelBuffer* pRpcChannelBuffer,
8914 PRPC_MESSAGE pRpcMessage,
8915 DWORD* pdwStubPhase);
8917 #endif /* __IAsyncSetup_INTERFACE_DEFINED__ */
8919 typedef enum tagDCOM_CALL_STATE {
8920 DCOM_NONE = 0,
8921 DCOM_CALL_COMPLETE = 1,
8922 DCOM_CALL_CANCELED = 2
8923 } DCOM_CALL_STATE;
8925 /*****************************************************************************
8926 * IAsyncManager interface
8928 #ifndef __IAsyncManager_INTERFACE_DEFINED__
8929 #define __IAsyncManager_INTERFACE_DEFINED__
8931 DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8932 #if defined(__cplusplus) && !defined(CINTERFACE)
8933 struct IAsyncManager : public IUnknown
8935 virtual HRESULT STDMETHODCALLTYPE CompleteCall(
8936 HRESULT Result) = 0;
8938 virtual HRESULT STDMETHODCALLTYPE GetCallContext(
8939 REFIID riid,
8940 void** pInterface) = 0;
8942 virtual HRESULT STDMETHODCALLTYPE GetState(
8943 ULONG* pulStateFlags) = 0;
8946 #else
8947 typedef struct IAsyncManagerVtbl IAsyncManagerVtbl;
8948 struct IAsyncManager {
8949 const IAsyncManagerVtbl* lpVtbl;
8951 struct IAsyncManagerVtbl {
8952 ICOM_MSVTABLE_COMPAT_FIELDS
8954 /*** IUnknown methods ***/
8955 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8956 IAsyncManager* This,
8957 REFIID riid,
8958 void** ppvObject);
8960 ULONG (STDMETHODCALLTYPE *AddRef)(
8961 IAsyncManager* This);
8963 ULONG (STDMETHODCALLTYPE *Release)(
8964 IAsyncManager* This);
8966 /*** IAsyncManager methods ***/
8967 HRESULT (STDMETHODCALLTYPE *CompleteCall)(
8968 IAsyncManager* This,
8969 HRESULT Result);
8971 HRESULT (STDMETHODCALLTYPE *GetCallContext)(
8972 IAsyncManager* This,
8973 REFIID riid,
8974 void** pInterface);
8976 HRESULT (STDMETHODCALLTYPE *GetState)(
8977 IAsyncManager* This,
8978 ULONG* pulStateFlags);
8982 /*** IUnknown methods ***/
8983 #define IAsyncManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8984 #define IAsyncManager_AddRef(p) (p)->lpVtbl->AddRef(p)
8985 #define IAsyncManager_Release(p) (p)->lpVtbl->Release(p)
8986 /*** IAsyncManager methods ***/
8987 #define IAsyncManager_CompleteCall(p,a) (p)->lpVtbl->CompleteCall(p,a)
8988 #define IAsyncManager_GetCallContext(p,a,b) (p)->lpVtbl->GetCallContext(p,a,b)
8989 #define IAsyncManager_GetState(p,a) (p)->lpVtbl->GetState(p,a)
8991 #endif
8993 #define IAsyncManager_METHODS \
8994 ICOM_MSVTABLE_COMPAT_FIELDS \
8995 /*** IUnknown methods ***/ \
8996 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8997 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8998 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8999 /*** IAsyncManager methods ***/ \
9000 STDMETHOD_(HRESULT,CompleteCall)(THIS_ HRESULT Result) PURE; \
9001 STDMETHOD_(HRESULT,GetCallContext)(THIS_ REFIID riid, void** pInterface) PURE; \
9002 STDMETHOD_(HRESULT,GetState)(THIS_ ULONG* pulStateFlags) PURE;
9004 HRESULT CALLBACK IAsyncManager_CompleteCall_Proxy(
9005 IAsyncManager* This,
9006 HRESULT Result);
9007 void __RPC_STUB IAsyncManager_CompleteCall_Stub(
9008 struct IRpcStubBuffer* This,
9009 struct IRpcChannelBuffer* pRpcChannelBuffer,
9010 PRPC_MESSAGE pRpcMessage,
9011 DWORD* pdwStubPhase);
9012 HRESULT CALLBACK IAsyncManager_GetCallContext_Proxy(
9013 IAsyncManager* This,
9014 REFIID riid,
9015 void** pInterface);
9016 void __RPC_STUB IAsyncManager_GetCallContext_Stub(
9017 struct IRpcStubBuffer* This,
9018 struct IRpcChannelBuffer* pRpcChannelBuffer,
9019 PRPC_MESSAGE pRpcMessage,
9020 DWORD* pdwStubPhase);
9021 HRESULT CALLBACK IAsyncManager_GetState_Proxy(
9022 IAsyncManager* This,
9023 ULONG* pulStateFlags);
9024 void __RPC_STUB IAsyncManager_GetState_Stub(
9025 struct IRpcStubBuffer* This,
9026 struct IRpcChannelBuffer* pRpcChannelBuffer,
9027 PRPC_MESSAGE pRpcMessage,
9028 DWORD* pdwStubPhase);
9030 #endif /* __IAsyncManager_INTERFACE_DEFINED__ */
9032 #ifdef __cplusplus
9034 #endif
9035 #endif /* __WIDL_OBJIDL_H */