Release 20040914.
[wine/gsoc-2012-control.git] / include / objidl.h
blobbdfab1d9c719aba0952fa0b73036b75eb85b4c29
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 BEGIN_INTERFACE
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);
156 END_INTERFACE
159 #ifdef COBJMACROS
160 /*** IUnknown methods ***/
161 #define IMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
162 #define IMarshal_AddRef(p) (p)->lpVtbl->AddRef(p)
163 #define IMarshal_Release(p) (p)->lpVtbl->Release(p)
164 /*** IMarshal methods ***/
165 #define IMarshal_GetUnmarshalClass(p,a,b,c,d,e,f) (p)->lpVtbl->GetUnmarshalClass(p,a,b,c,d,e,f)
166 #define IMarshal_GetMarshalSizeMax(p,a,b,c,d,e,f) (p)->lpVtbl->GetMarshalSizeMax(p,a,b,c,d,e,f)
167 #define IMarshal_MarshalInterface(p,a,b,c,d,e,f) (p)->lpVtbl->MarshalInterface(p,a,b,c,d,e,f)
168 #define IMarshal_UnmarshalInterface(p,a,b,c) (p)->lpVtbl->UnmarshalInterface(p,a,b,c)
169 #define IMarshal_ReleaseMarshalData(p,a) (p)->lpVtbl->ReleaseMarshalData(p,a)
170 #define IMarshal_DisconnectObject(p,a) (p)->lpVtbl->DisconnectObject(p,a)
171 #endif
173 #endif
175 #define IMarshal_METHODS \
176 /*** IUnknown methods ***/ \
177 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
178 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
179 STDMETHOD_(ULONG,Release)(THIS) PURE; \
180 /*** IMarshal methods ***/ \
181 STDMETHOD_(HRESULT,GetUnmarshalClass)(THIS_ REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags, CLSID* pCid) PURE; \
182 STDMETHOD_(HRESULT,GetMarshalSizeMax)(THIS_ REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags, DWORD* pSize) PURE; \
183 STDMETHOD_(HRESULT,MarshalInterface)(THIS_ IStream* pStm, REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags) PURE; \
184 STDMETHOD_(HRESULT,UnmarshalInterface)(THIS_ IStream* pStm, REFIID riid, void** ppv) PURE; \
185 STDMETHOD_(HRESULT,ReleaseMarshalData)(THIS_ IStream* pStm) PURE; \
186 STDMETHOD_(HRESULT,DisconnectObject)(THIS_ DWORD dwReserved) PURE;
188 HRESULT CALLBACK IMarshal_GetUnmarshalClass_Proxy(
189 IMarshal* This,
190 REFIID riid,
191 void* pv,
192 DWORD dwDestContext,
193 void* pvDestContext,
194 DWORD mshlflags,
195 CLSID* pCid);
196 void __RPC_STUB IMarshal_GetUnmarshalClass_Stub(
197 struct IRpcStubBuffer* This,
198 struct IRpcChannelBuffer* pRpcChannelBuffer,
199 PRPC_MESSAGE pRpcMessage,
200 DWORD* pdwStubPhase);
201 HRESULT CALLBACK IMarshal_GetMarshalSizeMax_Proxy(
202 IMarshal* This,
203 REFIID riid,
204 void* pv,
205 DWORD dwDestContext,
206 void* pvDestContext,
207 DWORD mshlflags,
208 DWORD* pSize);
209 void __RPC_STUB IMarshal_GetMarshalSizeMax_Stub(
210 struct IRpcStubBuffer* This,
211 struct IRpcChannelBuffer* pRpcChannelBuffer,
212 PRPC_MESSAGE pRpcMessage,
213 DWORD* pdwStubPhase);
214 HRESULT CALLBACK IMarshal_MarshalInterface_Proxy(
215 IMarshal* This,
216 IStream* pStm,
217 REFIID riid,
218 void* pv,
219 DWORD dwDestContext,
220 void* pvDestContext,
221 DWORD mshlflags);
222 void __RPC_STUB IMarshal_MarshalInterface_Stub(
223 struct IRpcStubBuffer* This,
224 struct IRpcChannelBuffer* pRpcChannelBuffer,
225 PRPC_MESSAGE pRpcMessage,
226 DWORD* pdwStubPhase);
227 HRESULT CALLBACK IMarshal_UnmarshalInterface_Proxy(
228 IMarshal* This,
229 IStream* pStm,
230 REFIID riid,
231 void** ppv);
232 void __RPC_STUB IMarshal_UnmarshalInterface_Stub(
233 struct IRpcStubBuffer* This,
234 struct IRpcChannelBuffer* pRpcChannelBuffer,
235 PRPC_MESSAGE pRpcMessage,
236 DWORD* pdwStubPhase);
237 HRESULT CALLBACK IMarshal_ReleaseMarshalData_Proxy(
238 IMarshal* This,
239 IStream* pStm);
240 void __RPC_STUB IMarshal_ReleaseMarshalData_Stub(
241 struct IRpcStubBuffer* This,
242 struct IRpcChannelBuffer* pRpcChannelBuffer,
243 PRPC_MESSAGE pRpcMessage,
244 DWORD* pdwStubPhase);
245 HRESULT CALLBACK IMarshal_DisconnectObject_Proxy(
246 IMarshal* This,
247 DWORD dwReserved);
248 void __RPC_STUB IMarshal_DisconnectObject_Stub(
249 struct IRpcStubBuffer* This,
250 struct IRpcChannelBuffer* pRpcChannelBuffer,
251 PRPC_MESSAGE pRpcMessage,
252 DWORD* pdwStubPhase);
254 #endif /* __IMarshal_INTERFACE_DEFINED__ */
256 #ifndef __IStdMarshalInfo_FWD_DEFINED__
257 #define __IStdMarshalInfo_FWD_DEFINED__
258 typedef struct IStdMarshalInfo IStdMarshalInfo;
259 #endif
261 typedef IStdMarshalInfo *LPSTDMARSHALINFO;
263 /*****************************************************************************
264 * IStdMarshalInfo interface
266 #ifndef __IStdMarshalInfo_INTERFACE_DEFINED__
267 #define __IStdMarshalInfo_INTERFACE_DEFINED__
269 DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
270 #if defined(__cplusplus) && !defined(CINTERFACE)
271 struct IStdMarshalInfo : public IUnknown
273 virtual HRESULT STDMETHODCALLTYPE GetClassForHandler(
274 DWORD dwDestContext,
275 void* pvDestContext,
276 CLSID* pClsid) = 0;
279 #else
280 typedef struct IStdMarshalInfoVtbl IStdMarshalInfoVtbl;
281 struct IStdMarshalInfo {
282 const IStdMarshalInfoVtbl* lpVtbl;
284 struct IStdMarshalInfoVtbl {
285 BEGIN_INTERFACE
287 /*** IUnknown methods ***/
288 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
289 IStdMarshalInfo* This,
290 REFIID riid,
291 void** ppvObject);
293 ULONG (STDMETHODCALLTYPE *AddRef)(
294 IStdMarshalInfo* This);
296 ULONG (STDMETHODCALLTYPE *Release)(
297 IStdMarshalInfo* This);
299 /*** IStdMarshalInfo methods ***/
300 HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(
301 IStdMarshalInfo* This,
302 DWORD dwDestContext,
303 void* pvDestContext,
304 CLSID* pClsid);
306 END_INTERFACE
309 #ifdef COBJMACROS
310 /*** IUnknown methods ***/
311 #define IStdMarshalInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
312 #define IStdMarshalInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
313 #define IStdMarshalInfo_Release(p) (p)->lpVtbl->Release(p)
314 /*** IStdMarshalInfo methods ***/
315 #define IStdMarshalInfo_GetClassForHandler(p,a,b,c) (p)->lpVtbl->GetClassForHandler(p,a,b,c)
316 #endif
318 #endif
320 #define IStdMarshalInfo_METHODS \
321 /*** IUnknown methods ***/ \
322 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
323 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
324 STDMETHOD_(ULONG,Release)(THIS) PURE; \
325 /*** IStdMarshalInfo methods ***/ \
326 STDMETHOD_(HRESULT,GetClassForHandler)(THIS_ DWORD dwDestContext, void* pvDestContext, CLSID* pClsid) PURE;
328 HRESULT CALLBACK IStdMarshalInfo_GetClassForHandler_Proxy(
329 IStdMarshalInfo* This,
330 DWORD dwDestContext,
331 void* pvDestContext,
332 CLSID* pClsid);
333 void __RPC_STUB IStdMarshalInfo_GetClassForHandler_Stub(
334 struct IRpcStubBuffer* This,
335 struct IRpcChannelBuffer* pRpcChannelBuffer,
336 PRPC_MESSAGE pRpcMessage,
337 DWORD* pdwStubPhase);
339 #endif /* __IStdMarshalInfo_INTERFACE_DEFINED__ */
341 #ifndef __IExternalConnection_FWD_DEFINED__
342 #define __IExternalConnection_FWD_DEFINED__
343 typedef struct IExternalConnection IExternalConnection;
344 #endif
346 typedef IExternalConnection *LPEXTERNALCONNECTION;
348 typedef enum tagEXTCONN {
349 EXTCONN_STRONG = 0x1,
350 EXTCONN_WEAK = 0x2,
351 EXTCONN_CALLABLE = 0x4
352 } EXTCONN;
354 /*****************************************************************************
355 * IExternalConnection interface
357 #ifndef __IExternalConnection_INTERFACE_DEFINED__
358 #define __IExternalConnection_INTERFACE_DEFINED__
360 DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
361 #if defined(__cplusplus) && !defined(CINTERFACE)
362 struct IExternalConnection : public IUnknown
364 virtual DWORD STDMETHODCALLTYPE AddConnection(
365 DWORD extconn,
366 DWORD reserved) = 0;
368 virtual DWORD STDMETHODCALLTYPE ReleaseConnection(
369 DWORD extconn,
370 DWORD reserved,
371 BOOL fLastReleaseCloses) = 0;
374 #else
375 typedef struct IExternalConnectionVtbl IExternalConnectionVtbl;
376 struct IExternalConnection {
377 const IExternalConnectionVtbl* lpVtbl;
379 struct IExternalConnectionVtbl {
380 BEGIN_INTERFACE
382 /*** IUnknown methods ***/
383 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
384 IExternalConnection* This,
385 REFIID riid,
386 void** ppvObject);
388 ULONG (STDMETHODCALLTYPE *AddRef)(
389 IExternalConnection* This);
391 ULONG (STDMETHODCALLTYPE *Release)(
392 IExternalConnection* This);
394 /*** IExternalConnection methods ***/
395 DWORD (STDMETHODCALLTYPE *AddConnection)(
396 IExternalConnection* This,
397 DWORD extconn,
398 DWORD reserved);
400 DWORD (STDMETHODCALLTYPE *ReleaseConnection)(
401 IExternalConnection* This,
402 DWORD extconn,
403 DWORD reserved,
404 BOOL fLastReleaseCloses);
406 END_INTERFACE
409 #ifdef COBJMACROS
410 /*** IUnknown methods ***/
411 #define IExternalConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
412 #define IExternalConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
413 #define IExternalConnection_Release(p) (p)->lpVtbl->Release(p)
414 /*** IExternalConnection methods ***/
415 #define IExternalConnection_AddConnection(p,a,b) (p)->lpVtbl->AddConnection(p,a,b)
416 #define IExternalConnection_ReleaseConnection(p,a,b,c) (p)->lpVtbl->ReleaseConnection(p,a,b,c)
417 #endif
419 #endif
421 #define IExternalConnection_METHODS \
422 /*** IUnknown methods ***/ \
423 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
424 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
425 STDMETHOD_(ULONG,Release)(THIS) PURE; \
426 /*** IExternalConnection methods ***/ \
427 STDMETHOD_(DWORD,AddConnection)(THIS_ DWORD extconn, DWORD reserved) PURE; \
428 STDMETHOD_(DWORD,ReleaseConnection)(THIS_ DWORD extconn, DWORD reserved, BOOL fLastReleaseCloses) PURE;
430 DWORD CALLBACK IExternalConnection_AddConnection_Proxy(
431 IExternalConnection* This,
432 DWORD extconn,
433 DWORD reserved);
434 void __RPC_STUB IExternalConnection_AddConnection_Stub(
435 struct IRpcStubBuffer* This,
436 struct IRpcChannelBuffer* pRpcChannelBuffer,
437 PRPC_MESSAGE pRpcMessage,
438 DWORD* pdwStubPhase);
439 DWORD CALLBACK IExternalConnection_ReleaseConnection_Proxy(
440 IExternalConnection* This,
441 DWORD extconn,
442 DWORD reserved,
443 BOOL fLastReleaseCloses);
444 void __RPC_STUB IExternalConnection_ReleaseConnection_Stub(
445 struct IRpcStubBuffer* This,
446 struct IRpcChannelBuffer* pRpcChannelBuffer,
447 PRPC_MESSAGE pRpcMessage,
448 DWORD* pdwStubPhase);
450 #endif /* __IExternalConnection_INTERFACE_DEFINED__ */
452 #ifndef __IMultiQI_FWD_DEFINED__
453 #define __IMultiQI_FWD_DEFINED__
454 typedef struct IMultiQI IMultiQI;
455 #endif
457 typedef IMultiQI *LPMULTIQI;
459 typedef struct tagMULTI_QI {
460 const IID *pIID;
461 IUnknown *pItf;
462 HRESULT hr;
463 } MULTI_QI;
465 /*****************************************************************************
466 * IMultiQI interface
468 #ifndef __IMultiQI_INTERFACE_DEFINED__
469 #define __IMultiQI_INTERFACE_DEFINED__
471 DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
472 #if defined(__cplusplus) && !defined(CINTERFACE)
473 struct IMultiQI : public IUnknown
475 virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces(
476 ULONG cMQIs,
477 MULTI_QI* pMQIs) = 0;
480 #else
481 typedef struct IMultiQIVtbl IMultiQIVtbl;
482 struct IMultiQI {
483 const IMultiQIVtbl* lpVtbl;
485 struct IMultiQIVtbl {
486 BEGIN_INTERFACE
488 /*** IUnknown methods ***/
489 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
490 IMultiQI* This,
491 REFIID riid,
492 void** ppvObject);
494 ULONG (STDMETHODCALLTYPE *AddRef)(
495 IMultiQI* This);
497 ULONG (STDMETHODCALLTYPE *Release)(
498 IMultiQI* This);
500 /*** IMultiQI methods ***/
501 HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(
502 IMultiQI* This,
503 ULONG cMQIs,
504 MULTI_QI* pMQIs);
506 END_INTERFACE
509 #ifdef COBJMACROS
510 /*** IUnknown methods ***/
511 #define IMultiQI_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
512 #define IMultiQI_AddRef(p) (p)->lpVtbl->AddRef(p)
513 #define IMultiQI_Release(p) (p)->lpVtbl->Release(p)
514 /*** IMultiQI methods ***/
515 #define IMultiQI_QueryMultipleInterfaces(p,a,b) (p)->lpVtbl->QueryMultipleInterfaces(p,a,b)
516 #endif
518 #endif
520 #define IMultiQI_METHODS \
521 /*** IUnknown methods ***/ \
522 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
523 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
524 STDMETHOD_(ULONG,Release)(THIS) PURE; \
525 /*** IMultiQI methods ***/ \
526 STDMETHOD_(HRESULT,QueryMultipleInterfaces)(THIS_ ULONG cMQIs, MULTI_QI* pMQIs) PURE;
528 HRESULT CALLBACK IMultiQI_QueryMultipleInterfaces_Proxy(
529 IMultiQI* This,
530 ULONG cMQIs,
531 MULTI_QI* pMQIs);
532 void __RPC_STUB IMultiQI_QueryMultipleInterfaces_Stub(
533 struct IRpcStubBuffer* This,
534 struct IRpcChannelBuffer* pRpcChannelBuffer,
535 PRPC_MESSAGE pRpcMessage,
536 DWORD* pdwStubPhase);
538 #endif /* __IMultiQI_INTERFACE_DEFINED__ */
540 #ifndef __IMalloc_FWD_DEFINED__
541 #define __IMalloc_FWD_DEFINED__
542 typedef struct IMalloc IMalloc;
543 #endif
545 typedef IMalloc *LPMALLOC;
547 /*****************************************************************************
548 * IMalloc interface
550 #ifndef __IMalloc_INTERFACE_DEFINED__
551 #define __IMalloc_INTERFACE_DEFINED__
553 DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
554 #if defined(__cplusplus) && !defined(CINTERFACE)
555 struct IMalloc : public IUnknown
557 virtual LPVOID STDMETHODCALLTYPE Alloc(
558 ULONG cb) = 0;
560 virtual LPVOID STDMETHODCALLTYPE Realloc(
561 LPVOID pv,
562 ULONG cb) = 0;
564 virtual void STDMETHODCALLTYPE Free(
565 LPVOID pv) = 0;
567 virtual ULONG STDMETHODCALLTYPE GetSize(
568 LPVOID pv) = 0;
570 virtual int STDMETHODCALLTYPE DidAlloc(
571 LPVOID pv) = 0;
573 virtual void STDMETHODCALLTYPE HeapMinimize(
574 ) = 0;
577 #else
578 typedef struct IMallocVtbl IMallocVtbl;
579 struct IMalloc {
580 const IMallocVtbl* lpVtbl;
582 struct IMallocVtbl {
583 BEGIN_INTERFACE
585 /*** IUnknown methods ***/
586 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
587 IMalloc* This,
588 REFIID riid,
589 void** ppvObject);
591 ULONG (STDMETHODCALLTYPE *AddRef)(
592 IMalloc* This);
594 ULONG (STDMETHODCALLTYPE *Release)(
595 IMalloc* This);
597 /*** IMalloc methods ***/
598 LPVOID (STDMETHODCALLTYPE *Alloc)(
599 IMalloc* This,
600 ULONG cb);
602 LPVOID (STDMETHODCALLTYPE *Realloc)(
603 IMalloc* This,
604 LPVOID pv,
605 ULONG cb);
607 void (STDMETHODCALLTYPE *Free)(
608 IMalloc* This,
609 LPVOID pv);
611 ULONG (STDMETHODCALLTYPE *GetSize)(
612 IMalloc* This,
613 LPVOID pv);
615 int (STDMETHODCALLTYPE *DidAlloc)(
616 IMalloc* This,
617 LPVOID pv);
619 void (STDMETHODCALLTYPE *HeapMinimize)(
620 IMalloc* This);
622 END_INTERFACE
625 #ifdef COBJMACROS
626 /*** IUnknown methods ***/
627 #define IMalloc_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
628 #define IMalloc_AddRef(p) (p)->lpVtbl->AddRef(p)
629 #define IMalloc_Release(p) (p)->lpVtbl->Release(p)
630 /*** IMalloc methods ***/
631 #define IMalloc_Alloc(p,a) (p)->lpVtbl->Alloc(p,a)
632 #define IMalloc_Realloc(p,a,b) (p)->lpVtbl->Realloc(p,a,b)
633 #define IMalloc_Free(p,a) (p)->lpVtbl->Free(p,a)
634 #define IMalloc_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
635 #define IMalloc_DidAlloc(p,a) (p)->lpVtbl->DidAlloc(p,a)
636 #define IMalloc_HeapMinimize(p) (p)->lpVtbl->HeapMinimize(p)
637 #endif
639 #endif
641 #define IMalloc_METHODS \
642 /*** IUnknown methods ***/ \
643 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
644 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
645 STDMETHOD_(ULONG,Release)(THIS) PURE; \
646 /*** IMalloc methods ***/ \
647 STDMETHOD_(LPVOID,Alloc)(THIS_ ULONG cb) PURE; \
648 STDMETHOD_(LPVOID,Realloc)(THIS_ LPVOID pv, ULONG cb) PURE; \
649 STDMETHOD_(void,Free)(THIS_ LPVOID pv) PURE; \
650 STDMETHOD_(ULONG,GetSize)(THIS_ LPVOID pv) PURE; \
651 STDMETHOD_(int,DidAlloc)(THIS_ LPVOID pv) PURE; \
652 STDMETHOD_(void,HeapMinimize)(THIS) PURE;
654 LPVOID CALLBACK IMalloc_Alloc_Proxy(
655 IMalloc* This,
656 ULONG cb);
657 void __RPC_STUB IMalloc_Alloc_Stub(
658 struct IRpcStubBuffer* This,
659 struct IRpcChannelBuffer* pRpcChannelBuffer,
660 PRPC_MESSAGE pRpcMessage,
661 DWORD* pdwStubPhase);
662 LPVOID CALLBACK IMalloc_Realloc_Proxy(
663 IMalloc* This,
664 LPVOID pv,
665 ULONG cb);
666 void __RPC_STUB IMalloc_Realloc_Stub(
667 struct IRpcStubBuffer* This,
668 struct IRpcChannelBuffer* pRpcChannelBuffer,
669 PRPC_MESSAGE pRpcMessage,
670 DWORD* pdwStubPhase);
671 void CALLBACK IMalloc_Free_Proxy(
672 IMalloc* This,
673 LPVOID pv);
674 void __RPC_STUB IMalloc_Free_Stub(
675 struct IRpcStubBuffer* This,
676 struct IRpcChannelBuffer* pRpcChannelBuffer,
677 PRPC_MESSAGE pRpcMessage,
678 DWORD* pdwStubPhase);
679 ULONG CALLBACK IMalloc_GetSize_Proxy(
680 IMalloc* This,
681 LPVOID pv);
682 void __RPC_STUB IMalloc_GetSize_Stub(
683 struct IRpcStubBuffer* This,
684 struct IRpcChannelBuffer* pRpcChannelBuffer,
685 PRPC_MESSAGE pRpcMessage,
686 DWORD* pdwStubPhase);
687 int CALLBACK IMalloc_DidAlloc_Proxy(
688 IMalloc* This,
689 LPVOID pv);
690 void __RPC_STUB IMalloc_DidAlloc_Stub(
691 struct IRpcStubBuffer* This,
692 struct IRpcChannelBuffer* pRpcChannelBuffer,
693 PRPC_MESSAGE pRpcMessage,
694 DWORD* pdwStubPhase);
695 void CALLBACK IMalloc_HeapMinimize_Proxy(
696 IMalloc* This);
697 void __RPC_STUB IMalloc_HeapMinimize_Stub(
698 struct IRpcStubBuffer* This,
699 struct IRpcChannelBuffer* pRpcChannelBuffer,
700 PRPC_MESSAGE pRpcMessage,
701 DWORD* pdwStubPhase);
703 #endif /* __IMalloc_INTERFACE_DEFINED__ */
705 #ifndef __IMallocSpy_FWD_DEFINED__
706 #define __IMallocSpy_FWD_DEFINED__
707 typedef struct IMallocSpy IMallocSpy;
708 #endif
710 typedef IMallocSpy *LPMALLOCSPY;
712 /*****************************************************************************
713 * IMallocSpy interface
715 #ifndef __IMallocSpy_INTERFACE_DEFINED__
716 #define __IMallocSpy_INTERFACE_DEFINED__
718 DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
719 #if defined(__cplusplus) && !defined(CINTERFACE)
720 struct IMallocSpy : public IUnknown
722 virtual ULONG STDMETHODCALLTYPE PreAlloc(
723 ULONG cbRequest) = 0;
725 virtual LPVOID STDMETHODCALLTYPE PostAlloc(
726 LPVOID pActual) = 0;
728 virtual LPVOID STDMETHODCALLTYPE PreFree(
729 LPVOID pRequest,
730 BOOL fSpyed) = 0;
732 virtual void STDMETHODCALLTYPE PostFree(
733 BOOL fSpyed) = 0;
735 virtual ULONG STDMETHODCALLTYPE PreRealloc(
736 LPVOID pRequest,
737 ULONG cbRequest,
738 LPVOID* ppNewRequest,
739 BOOL fSpyed) = 0;
741 virtual LPVOID STDMETHODCALLTYPE PostRealloc(
742 LPVOID pActual,
743 BOOL fSpyed) = 0;
745 virtual LPVOID STDMETHODCALLTYPE PreGetSize(
746 LPVOID pRequest,
747 BOOL fSpyed) = 0;
749 virtual ULONG STDMETHODCALLTYPE PostGetSize(
750 ULONG cbActual,
751 BOOL fSpyed) = 0;
753 virtual LPVOID STDMETHODCALLTYPE PreDidAlloc(
754 LPVOID pRequest,
755 BOOL fSpyed) = 0;
757 virtual int STDMETHODCALLTYPE PostDidAlloc(
758 LPVOID pRequest,
759 BOOL fSpyed,
760 int fActual) = 0;
762 virtual void STDMETHODCALLTYPE PreHeapMinimize(
763 ) = 0;
765 virtual void STDMETHODCALLTYPE PostHeapMinimize(
766 ) = 0;
769 #else
770 typedef struct IMallocSpyVtbl IMallocSpyVtbl;
771 struct IMallocSpy {
772 const IMallocSpyVtbl* lpVtbl;
774 struct IMallocSpyVtbl {
775 BEGIN_INTERFACE
777 /*** IUnknown methods ***/
778 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
779 IMallocSpy* This,
780 REFIID riid,
781 void** ppvObject);
783 ULONG (STDMETHODCALLTYPE *AddRef)(
784 IMallocSpy* This);
786 ULONG (STDMETHODCALLTYPE *Release)(
787 IMallocSpy* This);
789 /*** IMallocSpy methods ***/
790 ULONG (STDMETHODCALLTYPE *PreAlloc)(
791 IMallocSpy* This,
792 ULONG cbRequest);
794 LPVOID (STDMETHODCALLTYPE *PostAlloc)(
795 IMallocSpy* This,
796 LPVOID pActual);
798 LPVOID (STDMETHODCALLTYPE *PreFree)(
799 IMallocSpy* This,
800 LPVOID pRequest,
801 BOOL fSpyed);
803 void (STDMETHODCALLTYPE *PostFree)(
804 IMallocSpy* This,
805 BOOL fSpyed);
807 ULONG (STDMETHODCALLTYPE *PreRealloc)(
808 IMallocSpy* This,
809 LPVOID pRequest,
810 ULONG cbRequest,
811 LPVOID* ppNewRequest,
812 BOOL fSpyed);
814 LPVOID (STDMETHODCALLTYPE *PostRealloc)(
815 IMallocSpy* This,
816 LPVOID pActual,
817 BOOL fSpyed);
819 LPVOID (STDMETHODCALLTYPE *PreGetSize)(
820 IMallocSpy* This,
821 LPVOID pRequest,
822 BOOL fSpyed);
824 ULONG (STDMETHODCALLTYPE *PostGetSize)(
825 IMallocSpy* This,
826 ULONG cbActual,
827 BOOL fSpyed);
829 LPVOID (STDMETHODCALLTYPE *PreDidAlloc)(
830 IMallocSpy* This,
831 LPVOID pRequest,
832 BOOL fSpyed);
834 int (STDMETHODCALLTYPE *PostDidAlloc)(
835 IMallocSpy* This,
836 LPVOID pRequest,
837 BOOL fSpyed,
838 int fActual);
840 void (STDMETHODCALLTYPE *PreHeapMinimize)(
841 IMallocSpy* This);
843 void (STDMETHODCALLTYPE *PostHeapMinimize)(
844 IMallocSpy* This);
846 END_INTERFACE
849 #ifdef COBJMACROS
850 /*** IUnknown methods ***/
851 #define IMallocSpy_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
852 #define IMallocSpy_AddRef(p) (p)->lpVtbl->AddRef(p)
853 #define IMallocSpy_Release(p) (p)->lpVtbl->Release(p)
854 /*** IMallocSpy methods ***/
855 #define IMallocSpy_PreAlloc(p,a) (p)->lpVtbl->PreAlloc(p,a)
856 #define IMallocSpy_PostAlloc(p,a) (p)->lpVtbl->PostAlloc(p,a)
857 #define IMallocSpy_PreFree(p,a,b) (p)->lpVtbl->PreFree(p,a,b)
858 #define IMallocSpy_PostFree(p,a) (p)->lpVtbl->PostFree(p,a)
859 #define IMallocSpy_PreRealloc(p,a,b,c,d) (p)->lpVtbl->PreRealloc(p,a,b,c,d)
860 #define IMallocSpy_PostRealloc(p,a,b) (p)->lpVtbl->PostRealloc(p,a,b)
861 #define IMallocSpy_PreGetSize(p,a,b) (p)->lpVtbl->PreGetSize(p,a,b)
862 #define IMallocSpy_PostGetSize(p,a,b) (p)->lpVtbl->PostGetSize(p,a,b)
863 #define IMallocSpy_PreDidAlloc(p,a,b) (p)->lpVtbl->PreDidAlloc(p,a,b)
864 #define IMallocSpy_PostDidAlloc(p,a,b,c) (p)->lpVtbl->PostDidAlloc(p,a,b,c)
865 #define IMallocSpy_PreHeapMinimize(p) (p)->lpVtbl->PreHeapMinimize(p)
866 #define IMallocSpy_PostHeapMinimize(p) (p)->lpVtbl->PostHeapMinimize(p)
867 #endif
869 #endif
871 #define IMallocSpy_METHODS \
872 /*** IUnknown methods ***/ \
873 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
874 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
875 STDMETHOD_(ULONG,Release)(THIS) PURE; \
876 /*** IMallocSpy methods ***/ \
877 STDMETHOD_(ULONG,PreAlloc)(THIS_ ULONG cbRequest) PURE; \
878 STDMETHOD_(LPVOID,PostAlloc)(THIS_ LPVOID pActual) PURE; \
879 STDMETHOD_(LPVOID,PreFree)(THIS_ LPVOID pRequest, BOOL fSpyed) PURE; \
880 STDMETHOD_(void,PostFree)(THIS_ BOOL fSpyed) PURE; \
881 STDMETHOD_(ULONG,PreRealloc)(THIS_ LPVOID pRequest, ULONG cbRequest, LPVOID* ppNewRequest, BOOL fSpyed) PURE; \
882 STDMETHOD_(LPVOID,PostRealloc)(THIS_ LPVOID pActual, BOOL fSpyed) PURE; \
883 STDMETHOD_(LPVOID,PreGetSize)(THIS_ LPVOID pRequest, BOOL fSpyed) PURE; \
884 STDMETHOD_(ULONG,PostGetSize)(THIS_ ULONG cbActual, BOOL fSpyed) PURE; \
885 STDMETHOD_(LPVOID,PreDidAlloc)(THIS_ LPVOID pRequest, BOOL fSpyed) PURE; \
886 STDMETHOD_(int,PostDidAlloc)(THIS_ LPVOID pRequest, BOOL fSpyed, int fActual) PURE; \
887 STDMETHOD_(void,PreHeapMinimize)(THIS) PURE; \
888 STDMETHOD_(void,PostHeapMinimize)(THIS) PURE;
890 ULONG CALLBACK IMallocSpy_PreAlloc_Proxy(
891 IMallocSpy* This,
892 ULONG cbRequest);
893 void __RPC_STUB IMallocSpy_PreAlloc_Stub(
894 struct IRpcStubBuffer* This,
895 struct IRpcChannelBuffer* pRpcChannelBuffer,
896 PRPC_MESSAGE pRpcMessage,
897 DWORD* pdwStubPhase);
898 LPVOID CALLBACK IMallocSpy_PostAlloc_Proxy(
899 IMallocSpy* This,
900 LPVOID pActual);
901 void __RPC_STUB IMallocSpy_PostAlloc_Stub(
902 struct IRpcStubBuffer* This,
903 struct IRpcChannelBuffer* pRpcChannelBuffer,
904 PRPC_MESSAGE pRpcMessage,
905 DWORD* pdwStubPhase);
906 LPVOID CALLBACK IMallocSpy_PreFree_Proxy(
907 IMallocSpy* This,
908 LPVOID pRequest,
909 BOOL fSpyed);
910 void __RPC_STUB IMallocSpy_PreFree_Stub(
911 struct IRpcStubBuffer* This,
912 struct IRpcChannelBuffer* pRpcChannelBuffer,
913 PRPC_MESSAGE pRpcMessage,
914 DWORD* pdwStubPhase);
915 void CALLBACK IMallocSpy_PostFree_Proxy(
916 IMallocSpy* This,
917 BOOL fSpyed);
918 void __RPC_STUB IMallocSpy_PostFree_Stub(
919 struct IRpcStubBuffer* This,
920 struct IRpcChannelBuffer* pRpcChannelBuffer,
921 PRPC_MESSAGE pRpcMessage,
922 DWORD* pdwStubPhase);
923 ULONG CALLBACK IMallocSpy_PreRealloc_Proxy(
924 IMallocSpy* This,
925 LPVOID pRequest,
926 ULONG cbRequest,
927 LPVOID* ppNewRequest,
928 BOOL fSpyed);
929 void __RPC_STUB IMallocSpy_PreRealloc_Stub(
930 struct IRpcStubBuffer* This,
931 struct IRpcChannelBuffer* pRpcChannelBuffer,
932 PRPC_MESSAGE pRpcMessage,
933 DWORD* pdwStubPhase);
934 LPVOID CALLBACK IMallocSpy_PostRealloc_Proxy(
935 IMallocSpy* This,
936 LPVOID pActual,
937 BOOL fSpyed);
938 void __RPC_STUB IMallocSpy_PostRealloc_Stub(
939 struct IRpcStubBuffer* This,
940 struct IRpcChannelBuffer* pRpcChannelBuffer,
941 PRPC_MESSAGE pRpcMessage,
942 DWORD* pdwStubPhase);
943 LPVOID CALLBACK IMallocSpy_PreGetSize_Proxy(
944 IMallocSpy* This,
945 LPVOID pRequest,
946 BOOL fSpyed);
947 void __RPC_STUB IMallocSpy_PreGetSize_Stub(
948 struct IRpcStubBuffer* This,
949 struct IRpcChannelBuffer* pRpcChannelBuffer,
950 PRPC_MESSAGE pRpcMessage,
951 DWORD* pdwStubPhase);
952 ULONG CALLBACK IMallocSpy_PostGetSize_Proxy(
953 IMallocSpy* This,
954 ULONG cbActual,
955 BOOL fSpyed);
956 void __RPC_STUB IMallocSpy_PostGetSize_Stub(
957 struct IRpcStubBuffer* This,
958 struct IRpcChannelBuffer* pRpcChannelBuffer,
959 PRPC_MESSAGE pRpcMessage,
960 DWORD* pdwStubPhase);
961 LPVOID CALLBACK IMallocSpy_PreDidAlloc_Proxy(
962 IMallocSpy* This,
963 LPVOID pRequest,
964 BOOL fSpyed);
965 void __RPC_STUB IMallocSpy_PreDidAlloc_Stub(
966 struct IRpcStubBuffer* This,
967 struct IRpcChannelBuffer* pRpcChannelBuffer,
968 PRPC_MESSAGE pRpcMessage,
969 DWORD* pdwStubPhase);
970 int CALLBACK IMallocSpy_PostDidAlloc_Proxy(
971 IMallocSpy* This,
972 LPVOID pRequest,
973 BOOL fSpyed,
974 int fActual);
975 void __RPC_STUB IMallocSpy_PostDidAlloc_Stub(
976 struct IRpcStubBuffer* This,
977 struct IRpcChannelBuffer* pRpcChannelBuffer,
978 PRPC_MESSAGE pRpcMessage,
979 DWORD* pdwStubPhase);
980 void CALLBACK IMallocSpy_PreHeapMinimize_Proxy(
981 IMallocSpy* This);
982 void __RPC_STUB IMallocSpy_PreHeapMinimize_Stub(
983 struct IRpcStubBuffer* This,
984 struct IRpcChannelBuffer* pRpcChannelBuffer,
985 PRPC_MESSAGE pRpcMessage,
986 DWORD* pdwStubPhase);
987 void CALLBACK IMallocSpy_PostHeapMinimize_Proxy(
988 IMallocSpy* This);
989 void __RPC_STUB IMallocSpy_PostHeapMinimize_Stub(
990 struct IRpcStubBuffer* This,
991 struct IRpcChannelBuffer* pRpcChannelBuffer,
992 PRPC_MESSAGE pRpcMessage,
993 DWORD* pdwStubPhase);
995 #endif /* __IMallocSpy_INTERFACE_DEFINED__ */
997 #ifndef __IEnumUnknown_FWD_DEFINED__
998 #define __IEnumUnknown_FWD_DEFINED__
999 typedef struct IEnumUnknown IEnumUnknown;
1000 #endif
1002 typedef IEnumUnknown *LPENUMUNKNOWN;
1004 /*****************************************************************************
1005 * IEnumUnknown interface
1007 #ifndef __IEnumUnknown_INTERFACE_DEFINED__
1008 #define __IEnumUnknown_INTERFACE_DEFINED__
1010 DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1011 #if defined(__cplusplus) && !defined(CINTERFACE)
1012 struct IEnumUnknown : public IUnknown
1014 virtual HRESULT STDMETHODCALLTYPE Next(
1015 ULONG celt,
1016 IUnknown** rgelt,
1017 ULONG* pceltFetched) = 0;
1019 virtual HRESULT STDMETHODCALLTYPE Skip(
1020 ULONG celt) = 0;
1022 virtual HRESULT STDMETHODCALLTYPE Reset(
1023 ) = 0;
1025 virtual HRESULT STDMETHODCALLTYPE Clone(
1026 IEnumUnknown** ppenum) = 0;
1029 #else
1030 typedef struct IEnumUnknownVtbl IEnumUnknownVtbl;
1031 struct IEnumUnknown {
1032 const IEnumUnknownVtbl* lpVtbl;
1034 struct IEnumUnknownVtbl {
1035 BEGIN_INTERFACE
1037 /*** IUnknown methods ***/
1038 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1039 IEnumUnknown* This,
1040 REFIID riid,
1041 void** ppvObject);
1043 ULONG (STDMETHODCALLTYPE *AddRef)(
1044 IEnumUnknown* This);
1046 ULONG (STDMETHODCALLTYPE *Release)(
1047 IEnumUnknown* This);
1049 /*** IEnumUnknown methods ***/
1050 HRESULT (STDMETHODCALLTYPE *Next)(
1051 IEnumUnknown* This,
1052 ULONG celt,
1053 IUnknown** rgelt,
1054 ULONG* pceltFetched);
1056 HRESULT (STDMETHODCALLTYPE *Skip)(
1057 IEnumUnknown* This,
1058 ULONG celt);
1060 HRESULT (STDMETHODCALLTYPE *Reset)(
1061 IEnumUnknown* This);
1063 HRESULT (STDMETHODCALLTYPE *Clone)(
1064 IEnumUnknown* This,
1065 IEnumUnknown** ppenum);
1067 END_INTERFACE
1070 #ifdef COBJMACROS
1071 /*** IUnknown methods ***/
1072 #define IEnumUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1073 #define IEnumUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
1074 #define IEnumUnknown_Release(p) (p)->lpVtbl->Release(p)
1075 /*** IEnumUnknown methods ***/
1076 #define IEnumUnknown_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1077 #define IEnumUnknown_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1078 #define IEnumUnknown_Reset(p) (p)->lpVtbl->Reset(p)
1079 #define IEnumUnknown_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1080 #endif
1082 #endif
1084 #define IEnumUnknown_METHODS \
1085 /*** IUnknown methods ***/ \
1086 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1087 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1088 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1089 /*** IEnumUnknown methods ***/ \
1090 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, IUnknown** rgelt, ULONG* pceltFetched) PURE; \
1091 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
1092 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
1093 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumUnknown** ppenum) PURE;
1095 HRESULT CALLBACK IEnumUnknown_RemoteNext_Proxy(
1096 IEnumUnknown* This,
1097 ULONG celt,
1098 IUnknown** rgelt,
1099 ULONG* pceltFetched);
1100 void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
1101 struct IRpcStubBuffer* This,
1102 struct IRpcChannelBuffer* pRpcChannelBuffer,
1103 PRPC_MESSAGE pRpcMessage,
1104 DWORD* pdwStubPhase);
1105 HRESULT CALLBACK IEnumUnknown_Next_Proxy(
1106 IEnumUnknown* This,
1107 ULONG celt,
1108 IUnknown** rgelt,
1109 ULONG* pceltFetched);
1110 HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
1111 IEnumUnknown* This,
1112 ULONG celt,
1113 IUnknown** rgelt,
1114 ULONG* pceltFetched);
1115 HRESULT CALLBACK IEnumUnknown_Skip_Proxy(
1116 IEnumUnknown* This,
1117 ULONG celt);
1118 void __RPC_STUB IEnumUnknown_Skip_Stub(
1119 struct IRpcStubBuffer* This,
1120 struct IRpcChannelBuffer* pRpcChannelBuffer,
1121 PRPC_MESSAGE pRpcMessage,
1122 DWORD* pdwStubPhase);
1123 HRESULT CALLBACK IEnumUnknown_Reset_Proxy(
1124 IEnumUnknown* This);
1125 void __RPC_STUB IEnumUnknown_Reset_Stub(
1126 struct IRpcStubBuffer* This,
1127 struct IRpcChannelBuffer* pRpcChannelBuffer,
1128 PRPC_MESSAGE pRpcMessage,
1129 DWORD* pdwStubPhase);
1130 HRESULT CALLBACK IEnumUnknown_Clone_Proxy(
1131 IEnumUnknown* This,
1132 IEnumUnknown** ppenum);
1133 void __RPC_STUB IEnumUnknown_Clone_Stub(
1134 struct IRpcStubBuffer* This,
1135 struct IRpcChannelBuffer* pRpcChannelBuffer,
1136 PRPC_MESSAGE pRpcMessage,
1137 DWORD* pdwStubPhase);
1139 #endif /* __IEnumUnknown_INTERFACE_DEFINED__ */
1141 #ifndef __ISurrogate_FWD_DEFINED__
1142 #define __ISurrogate_FWD_DEFINED__
1143 typedef struct ISurrogate ISurrogate;
1144 #endif
1146 typedef ISurrogate *LPSURROGATE;
1148 /*****************************************************************************
1149 * ISurrogate interface
1151 #ifndef __ISurrogate_INTERFACE_DEFINED__
1152 #define __ISurrogate_INTERFACE_DEFINED__
1154 DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1155 #if defined(__cplusplus) && !defined(CINTERFACE)
1156 struct ISurrogate : public IUnknown
1158 virtual HRESULT STDMETHODCALLTYPE LoadDllServer(
1159 REFCLSID Clsid) = 0;
1161 virtual HRESULT STDMETHODCALLTYPE FreeSurrogate(
1162 ) = 0;
1165 #else
1166 typedef struct ISurrogateVtbl ISurrogateVtbl;
1167 struct ISurrogate {
1168 const ISurrogateVtbl* lpVtbl;
1170 struct ISurrogateVtbl {
1171 BEGIN_INTERFACE
1173 /*** IUnknown methods ***/
1174 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1175 ISurrogate* This,
1176 REFIID riid,
1177 void** ppvObject);
1179 ULONG (STDMETHODCALLTYPE *AddRef)(
1180 ISurrogate* This);
1182 ULONG (STDMETHODCALLTYPE *Release)(
1183 ISurrogate* This);
1185 /*** ISurrogate methods ***/
1186 HRESULT (STDMETHODCALLTYPE *LoadDllServer)(
1187 ISurrogate* This,
1188 REFCLSID Clsid);
1190 HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(
1191 ISurrogate* This);
1193 END_INTERFACE
1196 #ifdef COBJMACROS
1197 /*** IUnknown methods ***/
1198 #define ISurrogate_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1199 #define ISurrogate_AddRef(p) (p)->lpVtbl->AddRef(p)
1200 #define ISurrogate_Release(p) (p)->lpVtbl->Release(p)
1201 /*** ISurrogate methods ***/
1202 #define ISurrogate_LoadDllServer(p,a) (p)->lpVtbl->LoadDllServer(p,a)
1203 #define ISurrogate_FreeSurrogate(p) (p)->lpVtbl->FreeSurrogate(p)
1204 #endif
1206 #endif
1208 #define ISurrogate_METHODS \
1209 /*** IUnknown methods ***/ \
1210 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1211 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1212 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1213 /*** ISurrogate methods ***/ \
1214 STDMETHOD_(HRESULT,LoadDllServer)(THIS_ REFCLSID Clsid) PURE; \
1215 STDMETHOD_(HRESULT,FreeSurrogate)(THIS) PURE;
1217 HRESULT CALLBACK ISurrogate_LoadDllServer_Proxy(
1218 ISurrogate* This,
1219 REFCLSID Clsid);
1220 void __RPC_STUB ISurrogate_LoadDllServer_Stub(
1221 struct IRpcStubBuffer* This,
1222 struct IRpcChannelBuffer* pRpcChannelBuffer,
1223 PRPC_MESSAGE pRpcMessage,
1224 DWORD* pdwStubPhase);
1225 HRESULT CALLBACK ISurrogate_FreeSurrogate_Proxy(
1226 ISurrogate* This);
1227 void __RPC_STUB ISurrogate_FreeSurrogate_Stub(
1228 struct IRpcStubBuffer* This,
1229 struct IRpcChannelBuffer* pRpcChannelBuffer,
1230 PRPC_MESSAGE pRpcMessage,
1231 DWORD* pdwStubPhase);
1233 #endif /* __ISurrogate_INTERFACE_DEFINED__ */
1235 #ifndef __IGlobalInterfaceTable_FWD_DEFINED__
1236 #define __IGlobalInterfaceTable_FWD_DEFINED__
1237 typedef struct IGlobalInterfaceTable IGlobalInterfaceTable;
1238 #endif
1240 typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
1242 /*****************************************************************************
1243 * IGlobalInterfaceTable interface
1245 #ifndef __IGlobalInterfaceTable_INTERFACE_DEFINED__
1246 #define __IGlobalInterfaceTable_INTERFACE_DEFINED__
1248 DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1249 #if defined(__cplusplus) && !defined(CINTERFACE)
1250 struct IGlobalInterfaceTable : public IUnknown
1252 virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal(
1253 IUnknown* pUnk,
1254 REFIID riid,
1255 DWORD* pdwCookie) = 0;
1257 virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal(
1258 DWORD dwCookie) = 0;
1260 virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal(
1261 DWORD dwCookie,
1262 REFIID riid,
1263 void** ppv) = 0;
1266 #else
1267 typedef struct IGlobalInterfaceTableVtbl IGlobalInterfaceTableVtbl;
1268 struct IGlobalInterfaceTable {
1269 const IGlobalInterfaceTableVtbl* lpVtbl;
1271 struct IGlobalInterfaceTableVtbl {
1272 BEGIN_INTERFACE
1274 /*** IUnknown methods ***/
1275 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1276 IGlobalInterfaceTable* This,
1277 REFIID riid,
1278 void** ppvObject);
1280 ULONG (STDMETHODCALLTYPE *AddRef)(
1281 IGlobalInterfaceTable* This);
1283 ULONG (STDMETHODCALLTYPE *Release)(
1284 IGlobalInterfaceTable* This);
1286 /*** IGlobalInterfaceTable methods ***/
1287 HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(
1288 IGlobalInterfaceTable* This,
1289 IUnknown* pUnk,
1290 REFIID riid,
1291 DWORD* pdwCookie);
1293 HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(
1294 IGlobalInterfaceTable* This,
1295 DWORD dwCookie);
1297 HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(
1298 IGlobalInterfaceTable* This,
1299 DWORD dwCookie,
1300 REFIID riid,
1301 void** ppv);
1303 END_INTERFACE
1306 #ifdef COBJMACROS
1307 /*** IUnknown methods ***/
1308 #define IGlobalInterfaceTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1309 #define IGlobalInterfaceTable_AddRef(p) (p)->lpVtbl->AddRef(p)
1310 #define IGlobalInterfaceTable_Release(p) (p)->lpVtbl->Release(p)
1311 /*** IGlobalInterfaceTable methods ***/
1312 #define IGlobalInterfaceTable_RegisterInterfaceInGlobal(p,a,b,c) (p)->lpVtbl->RegisterInterfaceInGlobal(p,a,b,c)
1313 #define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(p,a) (p)->lpVtbl->RevokeInterfaceFromGlobal(p,a)
1314 #define IGlobalInterfaceTable_GetInterfaceFromGlobal(p,a,b,c) (p)->lpVtbl->GetInterfaceFromGlobal(p,a,b,c)
1315 #endif
1317 #endif
1319 #define IGlobalInterfaceTable_METHODS \
1320 /*** IUnknown methods ***/ \
1321 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1322 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1323 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1324 /*** IGlobalInterfaceTable methods ***/ \
1325 STDMETHOD_(HRESULT,RegisterInterfaceInGlobal)(THIS_ IUnknown* pUnk, REFIID riid, DWORD* pdwCookie) PURE; \
1326 STDMETHOD_(HRESULT,RevokeInterfaceFromGlobal)(THIS_ DWORD dwCookie) PURE; \
1327 STDMETHOD_(HRESULT,GetInterfaceFromGlobal)(THIS_ DWORD dwCookie, REFIID riid, void** ppv) PURE;
1329 HRESULT CALLBACK IGlobalInterfaceTable_RegisterInterfaceInGlobal_Proxy(
1330 IGlobalInterfaceTable* This,
1331 IUnknown* pUnk,
1332 REFIID riid,
1333 DWORD* pdwCookie);
1334 void __RPC_STUB IGlobalInterfaceTable_RegisterInterfaceInGlobal_Stub(
1335 struct IRpcStubBuffer* This,
1336 struct IRpcChannelBuffer* pRpcChannelBuffer,
1337 PRPC_MESSAGE pRpcMessage,
1338 DWORD* pdwStubPhase);
1339 HRESULT CALLBACK IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Proxy(
1340 IGlobalInterfaceTable* This,
1341 DWORD dwCookie);
1342 void __RPC_STUB IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Stub(
1343 struct IRpcStubBuffer* This,
1344 struct IRpcChannelBuffer* pRpcChannelBuffer,
1345 PRPC_MESSAGE pRpcMessage,
1346 DWORD* pdwStubPhase);
1347 HRESULT CALLBACK IGlobalInterfaceTable_GetInterfaceFromGlobal_Proxy(
1348 IGlobalInterfaceTable* This,
1349 DWORD dwCookie,
1350 REFIID riid,
1351 void** ppv);
1352 void __RPC_STUB IGlobalInterfaceTable_GetInterfaceFromGlobal_Stub(
1353 struct IRpcStubBuffer* This,
1354 struct IRpcChannelBuffer* pRpcChannelBuffer,
1355 PRPC_MESSAGE pRpcMessage,
1356 DWORD* pdwStubPhase);
1358 #endif /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */
1360 #ifndef __IBindCtx_FWD_DEFINED__
1361 #define __IBindCtx_FWD_DEFINED__
1362 typedef struct IBindCtx IBindCtx;
1363 #endif
1365 typedef IBindCtx *LPBINDCTX;
1367 typedef IBindCtx *LPBC;
1369 typedef struct tagBIND_OPTS {
1370 DWORD cbStruct;
1371 DWORD grfFlags;
1372 DWORD grfMode;
1373 DWORD dwTickCountDeadline;
1374 } BIND_OPTS, *LPBIND_OPTS;
1376 typedef struct tagBIND_OPTS2 {
1377 DWORD cbStruct;
1378 DWORD grfFlags;
1379 DWORD grfMode;
1380 DWORD dwTickCountDeadline;
1381 DWORD dwTrackFlags;
1382 DWORD dwClassContext;
1383 LCID locale;
1384 COSERVERINFO *pServerInfo;
1385 } BIND_OPTS2, *LPBIND_OPTS2;
1387 typedef enum tagBIND_FLAGS {
1388 BIND_MAYBOTHERUSER = 1,
1389 BIND_JUSTTESTEXISTENCE = 2
1390 } BIND_FLAGS;
1392 /*****************************************************************************
1393 * IBindCtx interface
1395 #ifndef __IBindCtx_INTERFACE_DEFINED__
1396 #define __IBindCtx_INTERFACE_DEFINED__
1398 DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1399 #if defined(__cplusplus) && !defined(CINTERFACE)
1400 struct IBindCtx : public IUnknown
1402 virtual HRESULT STDMETHODCALLTYPE RegisterObjectBound(
1403 IUnknown* punk) = 0;
1405 virtual HRESULT STDMETHODCALLTYPE RevokeObjectBound(
1406 IUnknown* punk) = 0;
1408 virtual HRESULT STDMETHODCALLTYPE ReleaseBoundObjects(
1409 ) = 0;
1411 virtual HRESULT STDMETHODCALLTYPE SetBindOptions(
1412 BIND_OPTS* pbindopts) = 0;
1414 virtual HRESULT STDMETHODCALLTYPE GetBindOptions(
1415 BIND_OPTS* pbindopts) = 0;
1417 virtual HRESULT STDMETHODCALLTYPE GetRunningObjectTable(
1418 IRunningObjectTable** pprot) = 0;
1420 virtual HRESULT STDMETHODCALLTYPE RegisterObjectParam(
1421 LPOLESTR pszKey,
1422 IUnknown* punk) = 0;
1424 virtual HRESULT STDMETHODCALLTYPE GetObjectParam(
1425 LPOLESTR pszKey,
1426 IUnknown** ppunk) = 0;
1428 virtual HRESULT STDMETHODCALLTYPE EnumObjectParam(
1429 IEnumString** ppenum) = 0;
1431 virtual HRESULT STDMETHODCALLTYPE RevokeObjectParam(
1432 LPOLESTR pszKey) = 0;
1435 #else
1436 typedef struct IBindCtxVtbl IBindCtxVtbl;
1437 struct IBindCtx {
1438 const IBindCtxVtbl* lpVtbl;
1440 struct IBindCtxVtbl {
1441 BEGIN_INTERFACE
1443 /*** IUnknown methods ***/
1444 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1445 IBindCtx* This,
1446 REFIID riid,
1447 void** ppvObject);
1449 ULONG (STDMETHODCALLTYPE *AddRef)(
1450 IBindCtx* This);
1452 ULONG (STDMETHODCALLTYPE *Release)(
1453 IBindCtx* This);
1455 /*** IBindCtx methods ***/
1456 HRESULT (STDMETHODCALLTYPE *RegisterObjectBound)(
1457 IBindCtx* This,
1458 IUnknown* punk);
1460 HRESULT (STDMETHODCALLTYPE *RevokeObjectBound)(
1461 IBindCtx* This,
1462 IUnknown* punk);
1464 HRESULT (STDMETHODCALLTYPE *ReleaseBoundObjects)(
1465 IBindCtx* This);
1467 HRESULT (STDMETHODCALLTYPE *SetBindOptions)(
1468 IBindCtx* This,
1469 BIND_OPTS* pbindopts);
1471 HRESULT (STDMETHODCALLTYPE *GetBindOptions)(
1472 IBindCtx* This,
1473 BIND_OPTS* pbindopts);
1475 HRESULT (STDMETHODCALLTYPE *GetRunningObjectTable)(
1476 IBindCtx* This,
1477 IRunningObjectTable** pprot);
1479 HRESULT (STDMETHODCALLTYPE *RegisterObjectParam)(
1480 IBindCtx* This,
1481 LPOLESTR pszKey,
1482 IUnknown* punk);
1484 HRESULT (STDMETHODCALLTYPE *GetObjectParam)(
1485 IBindCtx* This,
1486 LPOLESTR pszKey,
1487 IUnknown** ppunk);
1489 HRESULT (STDMETHODCALLTYPE *EnumObjectParam)(
1490 IBindCtx* This,
1491 IEnumString** ppenum);
1493 HRESULT (STDMETHODCALLTYPE *RevokeObjectParam)(
1494 IBindCtx* This,
1495 LPOLESTR pszKey);
1497 END_INTERFACE
1500 #ifdef COBJMACROS
1501 /*** IUnknown methods ***/
1502 #define IBindCtx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1503 #define IBindCtx_AddRef(p) (p)->lpVtbl->AddRef(p)
1504 #define IBindCtx_Release(p) (p)->lpVtbl->Release(p)
1505 /*** IBindCtx methods ***/
1506 #define IBindCtx_RegisterObjectBound(p,a) (p)->lpVtbl->RegisterObjectBound(p,a)
1507 #define IBindCtx_RevokeObjectBound(p,a) (p)->lpVtbl->RevokeObjectBound(p,a)
1508 #define IBindCtx_ReleaseBoundObjects(p) (p)->lpVtbl->ReleaseBoundObjects(p)
1509 #define IBindCtx_SetBindOptions(p,a) (p)->lpVtbl->SetBindOptions(p,a)
1510 #define IBindCtx_GetBindOptions(p,a) (p)->lpVtbl->GetBindOptions(p,a)
1511 #define IBindCtx_GetRunningObjectTable(p,a) (p)->lpVtbl->GetRunningObjectTable(p,a)
1512 #define IBindCtx_RegisterObjectParam(p,a,b) (p)->lpVtbl->RegisterObjectParam(p,a,b)
1513 #define IBindCtx_GetObjectParam(p,a,b) (p)->lpVtbl->GetObjectParam(p,a,b)
1514 #define IBindCtx_EnumObjectParam(p,a) (p)->lpVtbl->EnumObjectParam(p,a)
1515 #define IBindCtx_RevokeObjectParam(p,a) (p)->lpVtbl->RevokeObjectParam(p,a)
1516 #endif
1518 #endif
1520 #define IBindCtx_METHODS \
1521 /*** IUnknown methods ***/ \
1522 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1523 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1524 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1525 /*** IBindCtx methods ***/ \
1526 STDMETHOD_(HRESULT,RegisterObjectBound)(THIS_ IUnknown* punk) PURE; \
1527 STDMETHOD_(HRESULT,RevokeObjectBound)(THIS_ IUnknown* punk) PURE; \
1528 STDMETHOD_(HRESULT,ReleaseBoundObjects)(THIS) PURE; \
1529 STDMETHOD_(HRESULT,SetBindOptions)(THIS_ BIND_OPTS* pbindopts) PURE; \
1530 STDMETHOD_(HRESULT,GetBindOptions)(THIS_ BIND_OPTS* pbindopts) PURE; \
1531 STDMETHOD_(HRESULT,GetRunningObjectTable)(THIS_ IRunningObjectTable** pprot) PURE; \
1532 STDMETHOD_(HRESULT,RegisterObjectParam)(THIS_ LPOLESTR pszKey, IUnknown* punk) PURE; \
1533 STDMETHOD_(HRESULT,GetObjectParam)(THIS_ LPOLESTR pszKey, IUnknown** ppunk) PURE; \
1534 STDMETHOD_(HRESULT,EnumObjectParam)(THIS_ IEnumString** ppenum) PURE; \
1535 STDMETHOD_(HRESULT,RevokeObjectParam)(THIS_ LPOLESTR pszKey) PURE;
1537 HRESULT CALLBACK IBindCtx_RegisterObjectBound_Proxy(
1538 IBindCtx* This,
1539 IUnknown* punk);
1540 void __RPC_STUB IBindCtx_RegisterObjectBound_Stub(
1541 struct IRpcStubBuffer* This,
1542 struct IRpcChannelBuffer* pRpcChannelBuffer,
1543 PRPC_MESSAGE pRpcMessage,
1544 DWORD* pdwStubPhase);
1545 HRESULT CALLBACK IBindCtx_RevokeObjectBound_Proxy(
1546 IBindCtx* This,
1547 IUnknown* punk);
1548 void __RPC_STUB IBindCtx_RevokeObjectBound_Stub(
1549 struct IRpcStubBuffer* This,
1550 struct IRpcChannelBuffer* pRpcChannelBuffer,
1551 PRPC_MESSAGE pRpcMessage,
1552 DWORD* pdwStubPhase);
1553 HRESULT CALLBACK IBindCtx_ReleaseBoundObjects_Proxy(
1554 IBindCtx* This);
1555 void __RPC_STUB IBindCtx_ReleaseBoundObjects_Stub(
1556 struct IRpcStubBuffer* This,
1557 struct IRpcChannelBuffer* pRpcChannelBuffer,
1558 PRPC_MESSAGE pRpcMessage,
1559 DWORD* pdwStubPhase);
1560 HRESULT CALLBACK IBindCtx_RemoteSetBindOptions_Proxy(
1561 IBindCtx* This,
1562 BIND_OPTS2* pbindopts);
1563 void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
1564 struct IRpcStubBuffer* This,
1565 struct IRpcChannelBuffer* pRpcChannelBuffer,
1566 PRPC_MESSAGE pRpcMessage,
1567 DWORD* pdwStubPhase);
1568 HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
1569 IBindCtx* This,
1570 BIND_OPTS* pbindopts);
1571 HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
1572 IBindCtx* This,
1573 BIND_OPTS2* pbindopts);
1574 HRESULT CALLBACK IBindCtx_RemoteGetBindOptions_Proxy(
1575 IBindCtx* This,
1576 BIND_OPTS2* pbindopts);
1577 void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
1578 struct IRpcStubBuffer* This,
1579 struct IRpcChannelBuffer* pRpcChannelBuffer,
1580 PRPC_MESSAGE pRpcMessage,
1581 DWORD* pdwStubPhase);
1582 HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
1583 IBindCtx* This,
1584 BIND_OPTS* pbindopts);
1585 HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
1586 IBindCtx* This,
1587 BIND_OPTS2* pbindopts);
1588 HRESULT CALLBACK IBindCtx_GetRunningObjectTable_Proxy(
1589 IBindCtx* This,
1590 IRunningObjectTable** pprot);
1591 void __RPC_STUB IBindCtx_GetRunningObjectTable_Stub(
1592 struct IRpcStubBuffer* This,
1593 struct IRpcChannelBuffer* pRpcChannelBuffer,
1594 PRPC_MESSAGE pRpcMessage,
1595 DWORD* pdwStubPhase);
1596 HRESULT CALLBACK IBindCtx_RegisterObjectParam_Proxy(
1597 IBindCtx* This,
1598 LPOLESTR pszKey,
1599 IUnknown* punk);
1600 void __RPC_STUB IBindCtx_RegisterObjectParam_Stub(
1601 struct IRpcStubBuffer* This,
1602 struct IRpcChannelBuffer* pRpcChannelBuffer,
1603 PRPC_MESSAGE pRpcMessage,
1604 DWORD* pdwStubPhase);
1605 HRESULT CALLBACK IBindCtx_GetObjectParam_Proxy(
1606 IBindCtx* This,
1607 LPOLESTR pszKey,
1608 IUnknown** ppunk);
1609 void __RPC_STUB IBindCtx_GetObjectParam_Stub(
1610 struct IRpcStubBuffer* This,
1611 struct IRpcChannelBuffer* pRpcChannelBuffer,
1612 PRPC_MESSAGE pRpcMessage,
1613 DWORD* pdwStubPhase);
1614 HRESULT CALLBACK IBindCtx_EnumObjectParam_Proxy(
1615 IBindCtx* This,
1616 IEnumString** ppenum);
1617 void __RPC_STUB IBindCtx_EnumObjectParam_Stub(
1618 struct IRpcStubBuffer* This,
1619 struct IRpcChannelBuffer* pRpcChannelBuffer,
1620 PRPC_MESSAGE pRpcMessage,
1621 DWORD* pdwStubPhase);
1622 HRESULT CALLBACK IBindCtx_RevokeObjectParam_Proxy(
1623 IBindCtx* This,
1624 LPOLESTR pszKey);
1625 void __RPC_STUB IBindCtx_RevokeObjectParam_Stub(
1626 struct IRpcStubBuffer* This,
1627 struct IRpcChannelBuffer* pRpcChannelBuffer,
1628 PRPC_MESSAGE pRpcMessage,
1629 DWORD* pdwStubPhase);
1631 #endif /* __IBindCtx_INTERFACE_DEFINED__ */
1633 #ifndef __IEnumMoniker_FWD_DEFINED__
1634 #define __IEnumMoniker_FWD_DEFINED__
1635 typedef struct IEnumMoniker IEnumMoniker;
1636 #endif
1638 typedef IEnumMoniker *LPENUMMONIKER;
1640 /*****************************************************************************
1641 * IEnumMoniker interface
1643 #ifndef __IEnumMoniker_INTERFACE_DEFINED__
1644 #define __IEnumMoniker_INTERFACE_DEFINED__
1646 DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1647 #if defined(__cplusplus) && !defined(CINTERFACE)
1648 struct IEnumMoniker : public IUnknown
1650 virtual HRESULT STDMETHODCALLTYPE Next(
1651 ULONG celt,
1652 IMoniker** rgelt,
1653 ULONG* pceltFetched) = 0;
1655 virtual HRESULT STDMETHODCALLTYPE Skip(
1656 ULONG celt) = 0;
1658 virtual HRESULT STDMETHODCALLTYPE Reset(
1659 ) = 0;
1661 virtual HRESULT STDMETHODCALLTYPE Clone(
1662 IEnumMoniker** ppenum) = 0;
1665 #else
1666 typedef struct IEnumMonikerVtbl IEnumMonikerVtbl;
1667 struct IEnumMoniker {
1668 const IEnumMonikerVtbl* lpVtbl;
1670 struct IEnumMonikerVtbl {
1671 BEGIN_INTERFACE
1673 /*** IUnknown methods ***/
1674 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1675 IEnumMoniker* This,
1676 REFIID riid,
1677 void** ppvObject);
1679 ULONG (STDMETHODCALLTYPE *AddRef)(
1680 IEnumMoniker* This);
1682 ULONG (STDMETHODCALLTYPE *Release)(
1683 IEnumMoniker* This);
1685 /*** IEnumMoniker methods ***/
1686 HRESULT (STDMETHODCALLTYPE *Next)(
1687 IEnumMoniker* This,
1688 ULONG celt,
1689 IMoniker** rgelt,
1690 ULONG* pceltFetched);
1692 HRESULT (STDMETHODCALLTYPE *Skip)(
1693 IEnumMoniker* This,
1694 ULONG celt);
1696 HRESULT (STDMETHODCALLTYPE *Reset)(
1697 IEnumMoniker* This);
1699 HRESULT (STDMETHODCALLTYPE *Clone)(
1700 IEnumMoniker* This,
1701 IEnumMoniker** ppenum);
1703 END_INTERFACE
1706 #ifdef COBJMACROS
1707 /*** IUnknown methods ***/
1708 #define IEnumMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1709 #define IEnumMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
1710 #define IEnumMoniker_Release(p) (p)->lpVtbl->Release(p)
1711 /*** IEnumMoniker methods ***/
1712 #define IEnumMoniker_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1713 #define IEnumMoniker_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1714 #define IEnumMoniker_Reset(p) (p)->lpVtbl->Reset(p)
1715 #define IEnumMoniker_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1716 #endif
1718 #endif
1720 #define IEnumMoniker_METHODS \
1721 /*** IUnknown methods ***/ \
1722 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1723 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1724 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1725 /*** IEnumMoniker methods ***/ \
1726 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, IMoniker** rgelt, ULONG* pceltFetched) PURE; \
1727 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
1728 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
1729 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumMoniker** ppenum) PURE;
1731 HRESULT CALLBACK IEnumMoniker_RemoteNext_Proxy(
1732 IEnumMoniker* This,
1733 ULONG celt,
1734 IMoniker** rgelt,
1735 ULONG* pceltFetched);
1736 void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
1737 struct IRpcStubBuffer* This,
1738 struct IRpcChannelBuffer* pRpcChannelBuffer,
1739 PRPC_MESSAGE pRpcMessage,
1740 DWORD* pdwStubPhase);
1741 HRESULT CALLBACK IEnumMoniker_Next_Proxy(
1742 IEnumMoniker* This,
1743 ULONG celt,
1744 IMoniker** rgelt,
1745 ULONG* pceltFetched);
1746 HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
1747 IEnumMoniker* This,
1748 ULONG celt,
1749 IMoniker** rgelt,
1750 ULONG* pceltFetched);
1751 HRESULT CALLBACK IEnumMoniker_Skip_Proxy(
1752 IEnumMoniker* This,
1753 ULONG celt);
1754 void __RPC_STUB IEnumMoniker_Skip_Stub(
1755 struct IRpcStubBuffer* This,
1756 struct IRpcChannelBuffer* pRpcChannelBuffer,
1757 PRPC_MESSAGE pRpcMessage,
1758 DWORD* pdwStubPhase);
1759 HRESULT CALLBACK IEnumMoniker_Reset_Proxy(
1760 IEnumMoniker* This);
1761 void __RPC_STUB IEnumMoniker_Reset_Stub(
1762 struct IRpcStubBuffer* This,
1763 struct IRpcChannelBuffer* pRpcChannelBuffer,
1764 PRPC_MESSAGE pRpcMessage,
1765 DWORD* pdwStubPhase);
1766 HRESULT CALLBACK IEnumMoniker_Clone_Proxy(
1767 IEnumMoniker* This,
1768 IEnumMoniker** ppenum);
1769 void __RPC_STUB IEnumMoniker_Clone_Stub(
1770 struct IRpcStubBuffer* This,
1771 struct IRpcChannelBuffer* pRpcChannelBuffer,
1772 PRPC_MESSAGE pRpcMessage,
1773 DWORD* pdwStubPhase);
1775 #endif /* __IEnumMoniker_INTERFACE_DEFINED__ */
1777 #ifndef __IRunnableObject_FWD_DEFINED__
1778 #define __IRunnableObject_FWD_DEFINED__
1779 typedef struct IRunnableObject IRunnableObject;
1780 #endif
1782 typedef IRunnableObject *LPRUNNABLEOBJECT;
1784 /*****************************************************************************
1785 * IRunnableObject interface
1787 #ifndef __IRunnableObject_INTERFACE_DEFINED__
1788 #define __IRunnableObject_INTERFACE_DEFINED__
1790 DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1791 #if defined(__cplusplus) && !defined(CINTERFACE)
1792 struct IRunnableObject : public IUnknown
1794 virtual HRESULT STDMETHODCALLTYPE GetRunningClass(
1795 LPCLSID lpClsid) = 0;
1797 virtual HRESULT STDMETHODCALLTYPE Run(
1798 LPBINDCTX pbc) = 0;
1800 virtual BOOL STDMETHODCALLTYPE IsRunning(
1801 ) = 0;
1803 virtual HRESULT STDMETHODCALLTYPE LockRunning(
1804 BOOL fLock,
1805 BOOL fLastUnlockCloses) = 0;
1807 virtual HRESULT STDMETHODCALLTYPE SetContainedObject(
1808 BOOL fContained) = 0;
1811 #else
1812 typedef struct IRunnableObjectVtbl IRunnableObjectVtbl;
1813 struct IRunnableObject {
1814 const IRunnableObjectVtbl* lpVtbl;
1816 struct IRunnableObjectVtbl {
1817 BEGIN_INTERFACE
1819 /*** IUnknown methods ***/
1820 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1821 IRunnableObject* This,
1822 REFIID riid,
1823 void** ppvObject);
1825 ULONG (STDMETHODCALLTYPE *AddRef)(
1826 IRunnableObject* This);
1828 ULONG (STDMETHODCALLTYPE *Release)(
1829 IRunnableObject* This);
1831 /*** IRunnableObject methods ***/
1832 HRESULT (STDMETHODCALLTYPE *GetRunningClass)(
1833 IRunnableObject* This,
1834 LPCLSID lpClsid);
1836 HRESULT (STDMETHODCALLTYPE *Run)(
1837 IRunnableObject* This,
1838 LPBINDCTX pbc);
1840 BOOL (STDMETHODCALLTYPE *IsRunning)(
1841 IRunnableObject* This);
1843 HRESULT (STDMETHODCALLTYPE *LockRunning)(
1844 IRunnableObject* This,
1845 BOOL fLock,
1846 BOOL fLastUnlockCloses);
1848 HRESULT (STDMETHODCALLTYPE *SetContainedObject)(
1849 IRunnableObject* This,
1850 BOOL fContained);
1852 END_INTERFACE
1855 #ifdef COBJMACROS
1856 /*** IUnknown methods ***/
1857 #define IRunnableObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1858 #define IRunnableObject_AddRef(p) (p)->lpVtbl->AddRef(p)
1859 #define IRunnableObject_Release(p) (p)->lpVtbl->Release(p)
1860 /*** IRunnableObject methods ***/
1861 #define IRunnableObject_GetRunningClass(p,a) (p)->lpVtbl->GetRunningClass(p,a)
1862 #define IRunnableObject_Run(p,a) (p)->lpVtbl->Run(p,a)
1863 #define IRunnableObject_IsRunning(p) (p)->lpVtbl->IsRunning(p)
1864 #define IRunnableObject_LockRunning(p,a,b) (p)->lpVtbl->LockRunning(p,a,b)
1865 #define IRunnableObject_SetContainedObject(p,a) (p)->lpVtbl->SetContainedObject(p,a)
1866 #endif
1868 #endif
1870 #define IRunnableObject_METHODS \
1871 /*** IUnknown methods ***/ \
1872 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1873 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1874 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1875 /*** IRunnableObject methods ***/ \
1876 STDMETHOD_(HRESULT,GetRunningClass)(THIS_ LPCLSID lpClsid) PURE; \
1877 STDMETHOD_(HRESULT,Run)(THIS_ LPBINDCTX pbc) PURE; \
1878 STDMETHOD_(BOOL,IsRunning)(THIS) PURE; \
1879 STDMETHOD_(HRESULT,LockRunning)(THIS_ BOOL fLock, BOOL fLastUnlockCloses) PURE; \
1880 STDMETHOD_(HRESULT,SetContainedObject)(THIS_ BOOL fContained) PURE;
1882 HRESULT CALLBACK IRunnableObject_GetRunningClass_Proxy(
1883 IRunnableObject* This,
1884 LPCLSID lpClsid);
1885 void __RPC_STUB IRunnableObject_GetRunningClass_Stub(
1886 struct IRpcStubBuffer* This,
1887 struct IRpcChannelBuffer* pRpcChannelBuffer,
1888 PRPC_MESSAGE pRpcMessage,
1889 DWORD* pdwStubPhase);
1890 HRESULT CALLBACK IRunnableObject_Run_Proxy(
1891 IRunnableObject* This,
1892 LPBINDCTX pbc);
1893 void __RPC_STUB IRunnableObject_Run_Stub(
1894 struct IRpcStubBuffer* This,
1895 struct IRpcChannelBuffer* pRpcChannelBuffer,
1896 PRPC_MESSAGE pRpcMessage,
1897 DWORD* pdwStubPhase);
1898 HRESULT CALLBACK IRunnableObject_RemoteIsRunning_Proxy(
1899 IRunnableObject* This);
1900 void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
1901 struct IRpcStubBuffer* This,
1902 struct IRpcChannelBuffer* pRpcChannelBuffer,
1903 PRPC_MESSAGE pRpcMessage,
1904 DWORD* pdwStubPhase);
1905 BOOL CALLBACK IRunnableObject_IsRunning_Proxy(
1906 IRunnableObject* This);
1907 HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
1908 IRunnableObject* This);
1909 HRESULT CALLBACK IRunnableObject_LockRunning_Proxy(
1910 IRunnableObject* This,
1911 BOOL fLock,
1912 BOOL fLastUnlockCloses);
1913 void __RPC_STUB IRunnableObject_LockRunning_Stub(
1914 struct IRpcStubBuffer* This,
1915 struct IRpcChannelBuffer* pRpcChannelBuffer,
1916 PRPC_MESSAGE pRpcMessage,
1917 DWORD* pdwStubPhase);
1918 HRESULT CALLBACK IRunnableObject_SetContainedObject_Proxy(
1919 IRunnableObject* This,
1920 BOOL fContained);
1921 void __RPC_STUB IRunnableObject_SetContainedObject_Stub(
1922 struct IRpcStubBuffer* This,
1923 struct IRpcChannelBuffer* pRpcChannelBuffer,
1924 PRPC_MESSAGE pRpcMessage,
1925 DWORD* pdwStubPhase);
1927 #endif /* __IRunnableObject_INTERFACE_DEFINED__ */
1929 #ifdef __WINESRC__
1930 #undef GetObject
1931 #endif
1932 typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
1934 /*****************************************************************************
1935 * IRunningObjectTable interface
1937 #ifndef __IRunningObjectTable_INTERFACE_DEFINED__
1938 #define __IRunningObjectTable_INTERFACE_DEFINED__
1940 DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1941 #if defined(__cplusplus) && !defined(CINTERFACE)
1942 struct IRunningObjectTable : public IUnknown
1944 virtual HRESULT STDMETHODCALLTYPE Register(
1945 DWORD grfFlags,
1946 IUnknown* punkObject,
1947 IMoniker* pmkObjectName,
1948 DWORD* pdwRegister) = 0;
1950 virtual HRESULT STDMETHODCALLTYPE Revoke(
1951 DWORD dwRegister) = 0;
1953 virtual HRESULT STDMETHODCALLTYPE IsRunning(
1954 IMoniker* pmkObjectName) = 0;
1956 virtual HRESULT STDMETHODCALLTYPE GetObject(
1957 IMoniker* pmkObjectName,
1958 IUnknown** ppunkObject) = 0;
1960 virtual HRESULT STDMETHODCALLTYPE NoteChangeTime(
1961 DWORD dwRegister,
1962 FILETIME* pfiletime) = 0;
1964 virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
1965 IMoniker* pmkObjectName,
1966 FILETIME* pfiletime) = 0;
1968 virtual HRESULT STDMETHODCALLTYPE EnumRunning(
1969 IEnumMoniker** ppenumMoniker) = 0;
1972 #else
1973 typedef struct IRunningObjectTableVtbl IRunningObjectTableVtbl;
1974 struct IRunningObjectTable {
1975 const IRunningObjectTableVtbl* lpVtbl;
1977 struct IRunningObjectTableVtbl {
1978 BEGIN_INTERFACE
1980 /*** IUnknown methods ***/
1981 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1982 IRunningObjectTable* This,
1983 REFIID riid,
1984 void** ppvObject);
1986 ULONG (STDMETHODCALLTYPE *AddRef)(
1987 IRunningObjectTable* This);
1989 ULONG (STDMETHODCALLTYPE *Release)(
1990 IRunningObjectTable* This);
1992 /*** IRunningObjectTable methods ***/
1993 HRESULT (STDMETHODCALLTYPE *Register)(
1994 IRunningObjectTable* This,
1995 DWORD grfFlags,
1996 IUnknown* punkObject,
1997 IMoniker* pmkObjectName,
1998 DWORD* pdwRegister);
2000 HRESULT (STDMETHODCALLTYPE *Revoke)(
2001 IRunningObjectTable* This,
2002 DWORD dwRegister);
2004 HRESULT (STDMETHODCALLTYPE *IsRunning)(
2005 IRunningObjectTable* This,
2006 IMoniker* pmkObjectName);
2008 HRESULT (STDMETHODCALLTYPE *GetObject)(
2009 IRunningObjectTable* This,
2010 IMoniker* pmkObjectName,
2011 IUnknown** ppunkObject);
2013 HRESULT (STDMETHODCALLTYPE *NoteChangeTime)(
2014 IRunningObjectTable* This,
2015 DWORD dwRegister,
2016 FILETIME* pfiletime);
2018 HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
2019 IRunningObjectTable* This,
2020 IMoniker* pmkObjectName,
2021 FILETIME* pfiletime);
2023 HRESULT (STDMETHODCALLTYPE *EnumRunning)(
2024 IRunningObjectTable* This,
2025 IEnumMoniker** ppenumMoniker);
2027 END_INTERFACE
2030 #ifdef COBJMACROS
2031 /*** IUnknown methods ***/
2032 #define IRunningObjectTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2033 #define IRunningObjectTable_AddRef(p) (p)->lpVtbl->AddRef(p)
2034 #define IRunningObjectTable_Release(p) (p)->lpVtbl->Release(p)
2035 /*** IRunningObjectTable methods ***/
2036 #define IRunningObjectTable_Register(p,a,b,c,d) (p)->lpVtbl->Register(p,a,b,c,d)
2037 #define IRunningObjectTable_Revoke(p,a) (p)->lpVtbl->Revoke(p,a)
2038 #define IRunningObjectTable_IsRunning(p,a) (p)->lpVtbl->IsRunning(p,a)
2039 #define IRunningObjectTable_GetObject(p,a,b) (p)->lpVtbl->GetObject(p,a,b)
2040 #define IRunningObjectTable_NoteChangeTime(p,a,b) (p)->lpVtbl->NoteChangeTime(p,a,b)
2041 #define IRunningObjectTable_GetTimeOfLastChange(p,a,b) (p)->lpVtbl->GetTimeOfLastChange(p,a,b)
2042 #define IRunningObjectTable_EnumRunning(p,a) (p)->lpVtbl->EnumRunning(p,a)
2043 #endif
2045 #endif
2047 #define IRunningObjectTable_METHODS \
2048 /*** IUnknown methods ***/ \
2049 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2050 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2051 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2052 /*** IRunningObjectTable methods ***/ \
2053 STDMETHOD_(HRESULT,Register)(THIS_ DWORD grfFlags, IUnknown* punkObject, IMoniker* pmkObjectName, DWORD* pdwRegister) PURE; \
2054 STDMETHOD_(HRESULT,Revoke)(THIS_ DWORD dwRegister) PURE; \
2055 STDMETHOD_(HRESULT,IsRunning)(THIS_ IMoniker* pmkObjectName) PURE; \
2056 STDMETHOD_(HRESULT,GetObject)(THIS_ IMoniker* pmkObjectName, IUnknown** ppunkObject) PURE; \
2057 STDMETHOD_(HRESULT,NoteChangeTime)(THIS_ DWORD dwRegister, FILETIME* pfiletime) PURE; \
2058 STDMETHOD_(HRESULT,GetTimeOfLastChange)(THIS_ IMoniker* pmkObjectName, FILETIME* pfiletime) PURE; \
2059 STDMETHOD_(HRESULT,EnumRunning)(THIS_ IEnumMoniker** ppenumMoniker) PURE;
2061 HRESULT CALLBACK IRunningObjectTable_Register_Proxy(
2062 IRunningObjectTable* This,
2063 DWORD grfFlags,
2064 IUnknown* punkObject,
2065 IMoniker* pmkObjectName,
2066 DWORD* pdwRegister);
2067 void __RPC_STUB IRunningObjectTable_Register_Stub(
2068 struct IRpcStubBuffer* This,
2069 struct IRpcChannelBuffer* pRpcChannelBuffer,
2070 PRPC_MESSAGE pRpcMessage,
2071 DWORD* pdwStubPhase);
2072 HRESULT CALLBACK IRunningObjectTable_Revoke_Proxy(
2073 IRunningObjectTable* This,
2074 DWORD dwRegister);
2075 void __RPC_STUB IRunningObjectTable_Revoke_Stub(
2076 struct IRpcStubBuffer* This,
2077 struct IRpcChannelBuffer* pRpcChannelBuffer,
2078 PRPC_MESSAGE pRpcMessage,
2079 DWORD* pdwStubPhase);
2080 HRESULT CALLBACK IRunningObjectTable_IsRunning_Proxy(
2081 IRunningObjectTable* This,
2082 IMoniker* pmkObjectName);
2083 void __RPC_STUB IRunningObjectTable_IsRunning_Stub(
2084 struct IRpcStubBuffer* This,
2085 struct IRpcChannelBuffer* pRpcChannelBuffer,
2086 PRPC_MESSAGE pRpcMessage,
2087 DWORD* pdwStubPhase);
2088 HRESULT CALLBACK IRunningObjectTable_GetObject_Proxy(
2089 IRunningObjectTable* This,
2090 IMoniker* pmkObjectName,
2091 IUnknown** ppunkObject);
2092 void __RPC_STUB IRunningObjectTable_GetObject_Stub(
2093 struct IRpcStubBuffer* This,
2094 struct IRpcChannelBuffer* pRpcChannelBuffer,
2095 PRPC_MESSAGE pRpcMessage,
2096 DWORD* pdwStubPhase);
2097 HRESULT CALLBACK IRunningObjectTable_NoteChangeTime_Proxy(
2098 IRunningObjectTable* This,
2099 DWORD dwRegister,
2100 FILETIME* pfiletime);
2101 void __RPC_STUB IRunningObjectTable_NoteChangeTime_Stub(
2102 struct IRpcStubBuffer* This,
2103 struct IRpcChannelBuffer* pRpcChannelBuffer,
2104 PRPC_MESSAGE pRpcMessage,
2105 DWORD* pdwStubPhase);
2106 HRESULT CALLBACK IRunningObjectTable_GetTimeOfLastChange_Proxy(
2107 IRunningObjectTable* This,
2108 IMoniker* pmkObjectName,
2109 FILETIME* pfiletime);
2110 void __RPC_STUB IRunningObjectTable_GetTimeOfLastChange_Stub(
2111 struct IRpcStubBuffer* This,
2112 struct IRpcChannelBuffer* pRpcChannelBuffer,
2113 PRPC_MESSAGE pRpcMessage,
2114 DWORD* pdwStubPhase);
2115 HRESULT CALLBACK IRunningObjectTable_EnumRunning_Proxy(
2116 IRunningObjectTable* This,
2117 IEnumMoniker** ppenumMoniker);
2118 void __RPC_STUB IRunningObjectTable_EnumRunning_Stub(
2119 struct IRpcStubBuffer* This,
2120 struct IRpcChannelBuffer* pRpcChannelBuffer,
2121 PRPC_MESSAGE pRpcMessage,
2122 DWORD* pdwStubPhase);
2124 #endif /* __IRunningObjectTable_INTERFACE_DEFINED__ */
2126 #ifndef __IPersist_FWD_DEFINED__
2127 #define __IPersist_FWD_DEFINED__
2128 typedef struct IPersist IPersist;
2129 #endif
2131 typedef IPersist *LPPERSIST;
2133 /*****************************************************************************
2134 * IPersist interface
2136 #ifndef __IPersist_INTERFACE_DEFINED__
2137 #define __IPersist_INTERFACE_DEFINED__
2139 DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2140 #if defined(__cplusplus) && !defined(CINTERFACE)
2141 struct IPersist : public IUnknown
2143 virtual HRESULT STDMETHODCALLTYPE GetClassID(
2144 CLSID* pClassID) = 0;
2147 #else
2148 typedef struct IPersistVtbl IPersistVtbl;
2149 struct IPersist {
2150 const IPersistVtbl* lpVtbl;
2152 struct IPersistVtbl {
2153 BEGIN_INTERFACE
2155 /*** IUnknown methods ***/
2156 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2157 IPersist* This,
2158 REFIID riid,
2159 void** ppvObject);
2161 ULONG (STDMETHODCALLTYPE *AddRef)(
2162 IPersist* This);
2164 ULONG (STDMETHODCALLTYPE *Release)(
2165 IPersist* This);
2167 /*** IPersist methods ***/
2168 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2169 IPersist* This,
2170 CLSID* pClassID);
2172 END_INTERFACE
2175 #ifdef COBJMACROS
2176 /*** IUnknown methods ***/
2177 #define IPersist_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2178 #define IPersist_AddRef(p) (p)->lpVtbl->AddRef(p)
2179 #define IPersist_Release(p) (p)->lpVtbl->Release(p)
2180 /*** IPersist methods ***/
2181 #define IPersist_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2182 #endif
2184 #endif
2186 #define IPersist_METHODS \
2187 /*** IUnknown methods ***/ \
2188 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2189 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2190 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2191 /*** IPersist methods ***/ \
2192 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE;
2194 HRESULT CALLBACK IPersist_GetClassID_Proxy(
2195 IPersist* This,
2196 CLSID* pClassID);
2197 void __RPC_STUB IPersist_GetClassID_Stub(
2198 struct IRpcStubBuffer* This,
2199 struct IRpcChannelBuffer* pRpcChannelBuffer,
2200 PRPC_MESSAGE pRpcMessage,
2201 DWORD* pdwStubPhase);
2203 #endif /* __IPersist_INTERFACE_DEFINED__ */
2205 #ifndef __IPersistStream_FWD_DEFINED__
2206 #define __IPersistStream_FWD_DEFINED__
2207 typedef struct IPersistStream IPersistStream;
2208 #endif
2210 typedef IPersistStream *LPPERSISTSTREAM;
2212 /*****************************************************************************
2213 * IPersistStream interface
2215 #ifndef __IPersistStream_INTERFACE_DEFINED__
2216 #define __IPersistStream_INTERFACE_DEFINED__
2218 DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2219 #if defined(__cplusplus) && !defined(CINTERFACE)
2220 struct IPersistStream : public IPersist
2222 virtual HRESULT STDMETHODCALLTYPE IsDirty(
2223 ) = 0;
2225 virtual HRESULT STDMETHODCALLTYPE Load(
2226 IStream* pStm) = 0;
2228 virtual HRESULT STDMETHODCALLTYPE Save(
2229 IStream* pStm,
2230 BOOL fClearDirty) = 0;
2232 virtual HRESULT STDMETHODCALLTYPE GetSizeMax(
2233 ULARGE_INTEGER* pcbSize) = 0;
2236 #else
2237 typedef struct IPersistStreamVtbl IPersistStreamVtbl;
2238 struct IPersistStream {
2239 const IPersistStreamVtbl* lpVtbl;
2241 struct IPersistStreamVtbl {
2242 BEGIN_INTERFACE
2244 /*** IUnknown methods ***/
2245 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2246 IPersistStream* This,
2247 REFIID riid,
2248 void** ppvObject);
2250 ULONG (STDMETHODCALLTYPE *AddRef)(
2251 IPersistStream* This);
2253 ULONG (STDMETHODCALLTYPE *Release)(
2254 IPersistStream* This);
2256 /*** IPersist methods ***/
2257 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2258 IPersistStream* This,
2259 CLSID* pClassID);
2261 /*** IPersistStream methods ***/
2262 HRESULT (STDMETHODCALLTYPE *IsDirty)(
2263 IPersistStream* This);
2265 HRESULT (STDMETHODCALLTYPE *Load)(
2266 IPersistStream* This,
2267 IStream* pStm);
2269 HRESULT (STDMETHODCALLTYPE *Save)(
2270 IPersistStream* This,
2271 IStream* pStm,
2272 BOOL fClearDirty);
2274 HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
2275 IPersistStream* This,
2276 ULARGE_INTEGER* pcbSize);
2278 END_INTERFACE
2281 #ifdef COBJMACROS
2282 /*** IUnknown methods ***/
2283 #define IPersistStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2284 #define IPersistStream_AddRef(p) (p)->lpVtbl->AddRef(p)
2285 #define IPersistStream_Release(p) (p)->lpVtbl->Release(p)
2286 /*** IPersist methods ***/
2287 #define IPersistStream_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2288 /*** IPersistStream methods ***/
2289 #define IPersistStream_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2290 #define IPersistStream_Load(p,a) (p)->lpVtbl->Load(p,a)
2291 #define IPersistStream_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2292 #define IPersistStream_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2293 #endif
2295 #endif
2297 #define IPersistStream_METHODS \
2298 /*** IUnknown methods ***/ \
2299 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2300 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2301 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2302 /*** IPersist methods ***/ \
2303 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
2304 /*** IPersistStream methods ***/ \
2305 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
2306 STDMETHOD_(HRESULT,Load)(THIS_ IStream* pStm) PURE; \
2307 STDMETHOD_(HRESULT,Save)(THIS_ IStream* pStm, BOOL fClearDirty) PURE; \
2308 STDMETHOD_(HRESULT,GetSizeMax)(THIS_ ULARGE_INTEGER* pcbSize) PURE;
2310 HRESULT CALLBACK IPersistStream_IsDirty_Proxy(
2311 IPersistStream* This);
2312 void __RPC_STUB IPersistStream_IsDirty_Stub(
2313 struct IRpcStubBuffer* This,
2314 struct IRpcChannelBuffer* pRpcChannelBuffer,
2315 PRPC_MESSAGE pRpcMessage,
2316 DWORD* pdwStubPhase);
2317 HRESULT CALLBACK IPersistStream_Load_Proxy(
2318 IPersistStream* This,
2319 IStream* pStm);
2320 void __RPC_STUB IPersistStream_Load_Stub(
2321 struct IRpcStubBuffer* This,
2322 struct IRpcChannelBuffer* pRpcChannelBuffer,
2323 PRPC_MESSAGE pRpcMessage,
2324 DWORD* pdwStubPhase);
2325 HRESULT CALLBACK IPersistStream_Save_Proxy(
2326 IPersistStream* This,
2327 IStream* pStm,
2328 BOOL fClearDirty);
2329 void __RPC_STUB IPersistStream_Save_Stub(
2330 struct IRpcStubBuffer* This,
2331 struct IRpcChannelBuffer* pRpcChannelBuffer,
2332 PRPC_MESSAGE pRpcMessage,
2333 DWORD* pdwStubPhase);
2334 HRESULT CALLBACK IPersistStream_GetSizeMax_Proxy(
2335 IPersistStream* This,
2336 ULARGE_INTEGER* pcbSize);
2337 void __RPC_STUB IPersistStream_GetSizeMax_Stub(
2338 struct IRpcStubBuffer* This,
2339 struct IRpcChannelBuffer* pRpcChannelBuffer,
2340 PRPC_MESSAGE pRpcMessage,
2341 DWORD* pdwStubPhase);
2343 #endif /* __IPersistStream_INTERFACE_DEFINED__ */
2345 typedef IMoniker *LPMONIKER;
2347 typedef enum tagMKSYS {
2348 MKSYS_NONE = 0,
2349 MKSYS_GENERICCOMPOSITE = 1,
2350 MKSYS_FILEMONIKER = 2,
2351 MKSYS_ANTIMONIKER = 3,
2352 MKSYS_ITEMMONIKER = 4,
2353 MKSYS_POINTERMONIKER = 5,
2354 MKSYS_CLASSMONIKER = 7
2355 } MKSYS;
2357 typedef enum tagMKREDUCE {
2358 MKRREDUCE_ONE = 3 << 16,
2359 MKRREDUCE_TOUSER = 2 << 16,
2360 MKRREDUCE_THROUGHUSER = 1 << 16,
2361 MKRREDUCE_ALL = 0
2362 } MKRREDUCE;
2364 /*****************************************************************************
2365 * IMoniker interface
2367 #ifndef __IMoniker_INTERFACE_DEFINED__
2368 #define __IMoniker_INTERFACE_DEFINED__
2370 DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2371 #if defined(__cplusplus) && !defined(CINTERFACE)
2372 struct IMoniker : public IPersistStream
2374 virtual HRESULT STDMETHODCALLTYPE BindToObject(
2375 IBindCtx* pbc,
2376 IMoniker* pmkToLeft,
2377 REFIID riidResult,
2378 void** ppvResult) = 0;
2380 virtual HRESULT STDMETHODCALLTYPE BindToStorage(
2381 IBindCtx* pbc,
2382 IMoniker* pmkToLeft,
2383 REFIID riid,
2384 void** ppvObj) = 0;
2386 virtual HRESULT STDMETHODCALLTYPE Reduce(
2387 IBindCtx* pbc,
2388 DWORD dwReduceHowFar,
2389 IMoniker** ppmkToLeft,
2390 IMoniker** ppmkReduced) = 0;
2392 virtual HRESULT STDMETHODCALLTYPE ComposeWith(
2393 IMoniker* pmkRight,
2394 BOOL fOnlyIfNotGeneric,
2395 IMoniker** ppmkComposite) = 0;
2397 virtual HRESULT STDMETHODCALLTYPE Enum(
2398 BOOL fForward,
2399 IEnumMoniker** ppenumMoniker) = 0;
2401 virtual HRESULT STDMETHODCALLTYPE IsEqual(
2402 IMoniker* pmkOtherMoniker) = 0;
2404 virtual HRESULT STDMETHODCALLTYPE Hash(
2405 DWORD* pdwHash) = 0;
2407 virtual HRESULT STDMETHODCALLTYPE IsRunning(
2408 IBindCtx* pbc,
2409 IMoniker* pmkToLeft,
2410 IMoniker* pmkNewlyRunning) = 0;
2412 virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
2413 IBindCtx* pbc,
2414 IMoniker* pmkToLeft,
2415 FILETIME* pFileTime) = 0;
2417 virtual HRESULT STDMETHODCALLTYPE Inverse(
2418 IMoniker** ppmk) = 0;
2420 virtual HRESULT STDMETHODCALLTYPE CommonPrefixWith(
2421 IMoniker* pmkOther,
2422 IMoniker** ppmkPrefix) = 0;
2424 virtual HRESULT STDMETHODCALLTYPE RelativePathTo(
2425 IMoniker* pmkOther,
2426 IMoniker** ppmkRelPath) = 0;
2428 virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
2429 IBindCtx* pbc,
2430 IMoniker* pmkToLeft,
2431 LPOLESTR* ppszDisplayName) = 0;
2433 virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
2434 IBindCtx* pbc,
2435 IMoniker* pmkToLeft,
2436 LPOLESTR pszDisplayName,
2437 ULONG* pchEaten,
2438 IMoniker** ppmkOut) = 0;
2440 virtual HRESULT STDMETHODCALLTYPE IsSystemMoniker(
2441 DWORD* pdwMksys) = 0;
2444 #else
2445 typedef struct IMonikerVtbl IMonikerVtbl;
2446 struct IMoniker {
2447 const IMonikerVtbl* lpVtbl;
2449 struct IMonikerVtbl {
2450 BEGIN_INTERFACE
2452 /*** IUnknown methods ***/
2453 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2454 IMoniker* This,
2455 REFIID riid,
2456 void** ppvObject);
2458 ULONG (STDMETHODCALLTYPE *AddRef)(
2459 IMoniker* This);
2461 ULONG (STDMETHODCALLTYPE *Release)(
2462 IMoniker* This);
2464 /*** IPersist methods ***/
2465 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2466 IMoniker* This,
2467 CLSID* pClassID);
2469 /*** IPersistStream methods ***/
2470 HRESULT (STDMETHODCALLTYPE *IsDirty)(
2471 IMoniker* This);
2473 HRESULT (STDMETHODCALLTYPE *Load)(
2474 IMoniker* This,
2475 IStream* pStm);
2477 HRESULT (STDMETHODCALLTYPE *Save)(
2478 IMoniker* This,
2479 IStream* pStm,
2480 BOOL fClearDirty);
2482 HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
2483 IMoniker* This,
2484 ULARGE_INTEGER* pcbSize);
2486 /*** IMoniker methods ***/
2487 HRESULT (STDMETHODCALLTYPE *BindToObject)(
2488 IMoniker* This,
2489 IBindCtx* pbc,
2490 IMoniker* pmkToLeft,
2491 REFIID riidResult,
2492 void** ppvResult);
2494 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
2495 IMoniker* This,
2496 IBindCtx* pbc,
2497 IMoniker* pmkToLeft,
2498 REFIID riid,
2499 void** ppvObj);
2501 HRESULT (STDMETHODCALLTYPE *Reduce)(
2502 IMoniker* This,
2503 IBindCtx* pbc,
2504 DWORD dwReduceHowFar,
2505 IMoniker** ppmkToLeft,
2506 IMoniker** ppmkReduced);
2508 HRESULT (STDMETHODCALLTYPE *ComposeWith)(
2509 IMoniker* This,
2510 IMoniker* pmkRight,
2511 BOOL fOnlyIfNotGeneric,
2512 IMoniker** ppmkComposite);
2514 HRESULT (STDMETHODCALLTYPE *Enum)(
2515 IMoniker* This,
2516 BOOL fForward,
2517 IEnumMoniker** ppenumMoniker);
2519 HRESULT (STDMETHODCALLTYPE *IsEqual)(
2520 IMoniker* This,
2521 IMoniker* pmkOtherMoniker);
2523 HRESULT (STDMETHODCALLTYPE *Hash)(
2524 IMoniker* This,
2525 DWORD* pdwHash);
2527 HRESULT (STDMETHODCALLTYPE *IsRunning)(
2528 IMoniker* This,
2529 IBindCtx* pbc,
2530 IMoniker* pmkToLeft,
2531 IMoniker* pmkNewlyRunning);
2533 HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
2534 IMoniker* This,
2535 IBindCtx* pbc,
2536 IMoniker* pmkToLeft,
2537 FILETIME* pFileTime);
2539 HRESULT (STDMETHODCALLTYPE *Inverse)(
2540 IMoniker* This,
2541 IMoniker** ppmk);
2543 HRESULT (STDMETHODCALLTYPE *CommonPrefixWith)(
2544 IMoniker* This,
2545 IMoniker* pmkOther,
2546 IMoniker** ppmkPrefix);
2548 HRESULT (STDMETHODCALLTYPE *RelativePathTo)(
2549 IMoniker* This,
2550 IMoniker* pmkOther,
2551 IMoniker** ppmkRelPath);
2553 HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
2554 IMoniker* This,
2555 IBindCtx* pbc,
2556 IMoniker* pmkToLeft,
2557 LPOLESTR* ppszDisplayName);
2559 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
2560 IMoniker* This,
2561 IBindCtx* pbc,
2562 IMoniker* pmkToLeft,
2563 LPOLESTR pszDisplayName,
2564 ULONG* pchEaten,
2565 IMoniker** ppmkOut);
2567 HRESULT (STDMETHODCALLTYPE *IsSystemMoniker)(
2568 IMoniker* This,
2569 DWORD* pdwMksys);
2571 END_INTERFACE
2574 #ifdef COBJMACROS
2575 /*** IUnknown methods ***/
2576 #define IMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2577 #define IMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
2578 #define IMoniker_Release(p) (p)->lpVtbl->Release(p)
2579 /*** IPersist methods ***/
2580 #define IMoniker_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2581 /*** IPersistStream methods ***/
2582 #define IMoniker_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2583 #define IMoniker_Load(p,a) (p)->lpVtbl->Load(p,a)
2584 #define IMoniker_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2585 #define IMoniker_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2586 /*** IMoniker methods ***/
2587 #define IMoniker_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
2588 #define IMoniker_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
2589 #define IMoniker_Reduce(p,a,b,c,d) (p)->lpVtbl->Reduce(p,a,b,c,d)
2590 #define IMoniker_ComposeWith(p,a,b,c) (p)->lpVtbl->ComposeWith(p,a,b,c)
2591 #define IMoniker_Enum(p,a,b) (p)->lpVtbl->Enum(p,a,b)
2592 #define IMoniker_IsEqual(p,a) (p)->lpVtbl->IsEqual(p,a)
2593 #define IMoniker_Hash(p,a) (p)->lpVtbl->Hash(p,a)
2594 #define IMoniker_IsRunning(p,a,b,c) (p)->lpVtbl->IsRunning(p,a,b,c)
2595 #define IMoniker_GetTimeOfLastChange(p,a,b,c) (p)->lpVtbl->GetTimeOfLastChange(p,a,b,c)
2596 #define IMoniker_Inverse(p,a) (p)->lpVtbl->Inverse(p,a)
2597 #define IMoniker_CommonPrefixWith(p,a,b) (p)->lpVtbl->CommonPrefixWith(p,a,b)
2598 #define IMoniker_RelativePathTo(p,a,b) (p)->lpVtbl->RelativePathTo(p,a,b)
2599 #define IMoniker_GetDisplayName(p,a,b,c) (p)->lpVtbl->GetDisplayName(p,a,b,c)
2600 #define IMoniker_ParseDisplayName(p,a,b,c,d,e) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e)
2601 #define IMoniker_IsSystemMoniker(p,a) (p)->lpVtbl->IsSystemMoniker(p,a)
2602 #endif
2604 #endif
2606 #define IMoniker_METHODS \
2607 /*** IUnknown methods ***/ \
2608 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2609 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2610 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2611 /*** IPersist methods ***/ \
2612 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
2613 /*** IPersistStream methods ***/ \
2614 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
2615 STDMETHOD_(HRESULT,Load)(THIS_ IStream* pStm) PURE; \
2616 STDMETHOD_(HRESULT,Save)(THIS_ IStream* pStm, BOOL fClearDirty) PURE; \
2617 STDMETHOD_(HRESULT,GetSizeMax)(THIS_ ULARGE_INTEGER* pcbSize) PURE; \
2618 /*** IMoniker methods ***/ \
2619 STDMETHOD_(HRESULT,BindToObject)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riidResult, void** ppvResult) PURE; \
2620 STDMETHOD_(HRESULT,BindToStorage)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, void** ppvObj) PURE; \
2621 STDMETHOD_(HRESULT,Reduce)(THIS_ IBindCtx* pbc, DWORD dwReduceHowFar, IMoniker** ppmkToLeft, IMoniker** ppmkReduced) PURE; \
2622 STDMETHOD_(HRESULT,ComposeWith)(THIS_ IMoniker* pmkRight, BOOL fOnlyIfNotGeneric, IMoniker** ppmkComposite) PURE; \
2623 STDMETHOD_(HRESULT,Enum)(THIS_ BOOL fForward, IEnumMoniker** ppenumMoniker) PURE; \
2624 STDMETHOD_(HRESULT,IsEqual)(THIS_ IMoniker* pmkOtherMoniker) PURE; \
2625 STDMETHOD_(HRESULT,Hash)(THIS_ DWORD* pdwHash) PURE; \
2626 STDMETHOD_(HRESULT,IsRunning)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, IMoniker* pmkNewlyRunning) PURE; \
2627 STDMETHOD_(HRESULT,GetTimeOfLastChange)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, FILETIME* pFileTime) PURE; \
2628 STDMETHOD_(HRESULT,Inverse)(THIS_ IMoniker** ppmk) PURE; \
2629 STDMETHOD_(HRESULT,CommonPrefixWith)(THIS_ IMoniker* pmkOther, IMoniker** ppmkPrefix) PURE; \
2630 STDMETHOD_(HRESULT,RelativePathTo)(THIS_ IMoniker* pmkOther, IMoniker** ppmkRelPath) PURE; \
2631 STDMETHOD_(HRESULT,GetDisplayName)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR* ppszDisplayName) PURE; \
2632 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR pszDisplayName, ULONG* pchEaten, IMoniker** ppmkOut) PURE; \
2633 STDMETHOD_(HRESULT,IsSystemMoniker)(THIS_ DWORD* pdwMksys) PURE;
2635 HRESULT CALLBACK IMoniker_RemoteBindToObject_Proxy(
2636 IMoniker* This,
2637 IBindCtx* pbc,
2638 IMoniker* pmkToLeft,
2639 REFIID riidResult,
2640 IUnknown** ppvResult);
2641 void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
2642 struct IRpcStubBuffer* This,
2643 struct IRpcChannelBuffer* pRpcChannelBuffer,
2644 PRPC_MESSAGE pRpcMessage,
2645 DWORD* pdwStubPhase);
2646 HRESULT CALLBACK IMoniker_BindToObject_Proxy(
2647 IMoniker* This,
2648 IBindCtx* pbc,
2649 IMoniker* pmkToLeft,
2650 REFIID riidResult,
2651 void** ppvResult);
2652 HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
2653 IMoniker* This,
2654 IBindCtx* pbc,
2655 IMoniker* pmkToLeft,
2656 REFIID riidResult,
2657 IUnknown** ppvResult);
2658 HRESULT CALLBACK IMoniker_RemoteBindToStorage_Proxy(
2659 IMoniker* This,
2660 IBindCtx* pbc,
2661 IMoniker* pmkToLeft,
2662 REFIID riid,
2663 IUnknown** ppvObj);
2664 void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
2665 struct IRpcStubBuffer* This,
2666 struct IRpcChannelBuffer* pRpcChannelBuffer,
2667 PRPC_MESSAGE pRpcMessage,
2668 DWORD* pdwStubPhase);
2669 HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
2670 IMoniker* This,
2671 IBindCtx* pbc,
2672 IMoniker* pmkToLeft,
2673 REFIID riid,
2674 void** ppvObj);
2675 HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
2676 IMoniker* This,
2677 IBindCtx* pbc,
2678 IMoniker* pmkToLeft,
2679 REFIID riid,
2680 IUnknown** ppvObj);
2681 HRESULT CALLBACK IMoniker_Reduce_Proxy(
2682 IMoniker* This,
2683 IBindCtx* pbc,
2684 DWORD dwReduceHowFar,
2685 IMoniker** ppmkToLeft,
2686 IMoniker** ppmkReduced);
2687 void __RPC_STUB IMoniker_Reduce_Stub(
2688 struct IRpcStubBuffer* This,
2689 struct IRpcChannelBuffer* pRpcChannelBuffer,
2690 PRPC_MESSAGE pRpcMessage,
2691 DWORD* pdwStubPhase);
2692 HRESULT CALLBACK IMoniker_ComposeWith_Proxy(
2693 IMoniker* This,
2694 IMoniker* pmkRight,
2695 BOOL fOnlyIfNotGeneric,
2696 IMoniker** ppmkComposite);
2697 void __RPC_STUB IMoniker_ComposeWith_Stub(
2698 struct IRpcStubBuffer* This,
2699 struct IRpcChannelBuffer* pRpcChannelBuffer,
2700 PRPC_MESSAGE pRpcMessage,
2701 DWORD* pdwStubPhase);
2702 HRESULT CALLBACK IMoniker_Enum_Proxy(
2703 IMoniker* This,
2704 BOOL fForward,
2705 IEnumMoniker** ppenumMoniker);
2706 void __RPC_STUB IMoniker_Enum_Stub(
2707 struct IRpcStubBuffer* This,
2708 struct IRpcChannelBuffer* pRpcChannelBuffer,
2709 PRPC_MESSAGE pRpcMessage,
2710 DWORD* pdwStubPhase);
2711 HRESULT CALLBACK IMoniker_IsEqual_Proxy(
2712 IMoniker* This,
2713 IMoniker* pmkOtherMoniker);
2714 void __RPC_STUB IMoniker_IsEqual_Stub(
2715 struct IRpcStubBuffer* This,
2716 struct IRpcChannelBuffer* pRpcChannelBuffer,
2717 PRPC_MESSAGE pRpcMessage,
2718 DWORD* pdwStubPhase);
2719 HRESULT CALLBACK IMoniker_Hash_Proxy(
2720 IMoniker* This,
2721 DWORD* pdwHash);
2722 void __RPC_STUB IMoniker_Hash_Stub(
2723 struct IRpcStubBuffer* This,
2724 struct IRpcChannelBuffer* pRpcChannelBuffer,
2725 PRPC_MESSAGE pRpcMessage,
2726 DWORD* pdwStubPhase);
2727 HRESULT CALLBACK IMoniker_IsRunning_Proxy(
2728 IMoniker* This,
2729 IBindCtx* pbc,
2730 IMoniker* pmkToLeft,
2731 IMoniker* pmkNewlyRunning);
2732 void __RPC_STUB IMoniker_IsRunning_Stub(
2733 struct IRpcStubBuffer* This,
2734 struct IRpcChannelBuffer* pRpcChannelBuffer,
2735 PRPC_MESSAGE pRpcMessage,
2736 DWORD* pdwStubPhase);
2737 HRESULT CALLBACK IMoniker_GetTimeOfLastChange_Proxy(
2738 IMoniker* This,
2739 IBindCtx* pbc,
2740 IMoniker* pmkToLeft,
2741 FILETIME* pFileTime);
2742 void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
2743 struct IRpcStubBuffer* This,
2744 struct IRpcChannelBuffer* pRpcChannelBuffer,
2745 PRPC_MESSAGE pRpcMessage,
2746 DWORD* pdwStubPhase);
2747 HRESULT CALLBACK IMoniker_Inverse_Proxy(
2748 IMoniker* This,
2749 IMoniker** ppmk);
2750 void __RPC_STUB IMoniker_Inverse_Stub(
2751 struct IRpcStubBuffer* This,
2752 struct IRpcChannelBuffer* pRpcChannelBuffer,
2753 PRPC_MESSAGE pRpcMessage,
2754 DWORD* pdwStubPhase);
2755 HRESULT CALLBACK IMoniker_CommonPrefixWith_Proxy(
2756 IMoniker* This,
2757 IMoniker* pmkOther,
2758 IMoniker** ppmkPrefix);
2759 void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
2760 struct IRpcStubBuffer* This,
2761 struct IRpcChannelBuffer* pRpcChannelBuffer,
2762 PRPC_MESSAGE pRpcMessage,
2763 DWORD* pdwStubPhase);
2764 HRESULT CALLBACK IMoniker_RelativePathTo_Proxy(
2765 IMoniker* This,
2766 IMoniker* pmkOther,
2767 IMoniker** ppmkRelPath);
2768 void __RPC_STUB IMoniker_RelativePathTo_Stub(
2769 struct IRpcStubBuffer* This,
2770 struct IRpcChannelBuffer* pRpcChannelBuffer,
2771 PRPC_MESSAGE pRpcMessage,
2772 DWORD* pdwStubPhase);
2773 HRESULT CALLBACK IMoniker_GetDisplayName_Proxy(
2774 IMoniker* This,
2775 IBindCtx* pbc,
2776 IMoniker* pmkToLeft,
2777 LPOLESTR* ppszDisplayName);
2778 void __RPC_STUB IMoniker_GetDisplayName_Stub(
2779 struct IRpcStubBuffer* This,
2780 struct IRpcChannelBuffer* pRpcChannelBuffer,
2781 PRPC_MESSAGE pRpcMessage,
2782 DWORD* pdwStubPhase);
2783 HRESULT CALLBACK IMoniker_ParseDisplayName_Proxy(
2784 IMoniker* This,
2785 IBindCtx* pbc,
2786 IMoniker* pmkToLeft,
2787 LPOLESTR pszDisplayName,
2788 ULONG* pchEaten,
2789 IMoniker** ppmkOut);
2790 void __RPC_STUB IMoniker_ParseDisplayName_Stub(
2791 struct IRpcStubBuffer* This,
2792 struct IRpcChannelBuffer* pRpcChannelBuffer,
2793 PRPC_MESSAGE pRpcMessage,
2794 DWORD* pdwStubPhase);
2795 HRESULT CALLBACK IMoniker_IsSystemMoniker_Proxy(
2796 IMoniker* This,
2797 DWORD* pdwMksys);
2798 void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
2799 struct IRpcStubBuffer* This,
2800 struct IRpcChannelBuffer* pRpcChannelBuffer,
2801 PRPC_MESSAGE pRpcMessage,
2802 DWORD* pdwStubPhase);
2804 #endif /* __IMoniker_INTERFACE_DEFINED__ */
2806 #ifndef __IROTData_FWD_DEFINED__
2807 #define __IROTData_FWD_DEFINED__
2808 typedef struct IROTData IROTData;
2809 #endif
2811 /*****************************************************************************
2812 * IROTData interface
2814 #ifndef __IROTData_INTERFACE_DEFINED__
2815 #define __IROTData_INTERFACE_DEFINED__
2817 DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
2818 #if defined(__cplusplus) && !defined(CINTERFACE)
2819 struct IROTData : public IUnknown
2821 virtual HRESULT STDMETHODCALLTYPE GetComparisonData(
2822 byte* pbData,
2823 ULONG cbMax,
2824 ULONG* pcbData) = 0;
2827 #else
2828 typedef struct IROTDataVtbl IROTDataVtbl;
2829 struct IROTData {
2830 const IROTDataVtbl* lpVtbl;
2832 struct IROTDataVtbl {
2833 BEGIN_INTERFACE
2835 /*** IUnknown methods ***/
2836 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2837 IROTData* This,
2838 REFIID riid,
2839 void** ppvObject);
2841 ULONG (STDMETHODCALLTYPE *AddRef)(
2842 IROTData* This);
2844 ULONG (STDMETHODCALLTYPE *Release)(
2845 IROTData* This);
2847 /*** IROTData methods ***/
2848 HRESULT (STDMETHODCALLTYPE *GetComparisonData)(
2849 IROTData* This,
2850 byte* pbData,
2851 ULONG cbMax,
2852 ULONG* pcbData);
2854 END_INTERFACE
2857 #ifdef COBJMACROS
2858 /*** IUnknown methods ***/
2859 #define IROTData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2860 #define IROTData_AddRef(p) (p)->lpVtbl->AddRef(p)
2861 #define IROTData_Release(p) (p)->lpVtbl->Release(p)
2862 /*** IROTData methods ***/
2863 #define IROTData_GetComparisonData(p,a,b,c) (p)->lpVtbl->GetComparisonData(p,a,b,c)
2864 #endif
2866 #endif
2868 #define IROTData_METHODS \
2869 /*** IUnknown methods ***/ \
2870 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2871 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2872 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2873 /*** IROTData methods ***/ \
2874 STDMETHOD_(HRESULT,GetComparisonData)(THIS_ byte* pbData, ULONG cbMax, ULONG* pcbData) PURE;
2876 HRESULT CALLBACK IROTData_GetComparisonData_Proxy(
2877 IROTData* This,
2878 byte* pbData,
2879 ULONG cbMax,
2880 ULONG* pcbData);
2881 void __RPC_STUB IROTData_GetComparisonData_Stub(
2882 struct IRpcStubBuffer* This,
2883 struct IRpcChannelBuffer* pRpcChannelBuffer,
2884 PRPC_MESSAGE pRpcMessage,
2885 DWORD* pdwStubPhase);
2887 #endif /* __IROTData_INTERFACE_DEFINED__ */
2889 typedef IEnumString *LPENUMSTRING;
2891 /*****************************************************************************
2892 * IEnumString interface
2894 #ifndef __IEnumString_INTERFACE_DEFINED__
2895 #define __IEnumString_INTERFACE_DEFINED__
2897 DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2898 #if defined(__cplusplus) && !defined(CINTERFACE)
2899 struct IEnumString : public IUnknown
2901 virtual HRESULT STDMETHODCALLTYPE Next(
2902 ULONG celt,
2903 LPOLESTR* rgelt,
2904 ULONG* pceltFetched) = 0;
2906 virtual HRESULT STDMETHODCALLTYPE Skip(
2907 ULONG celt) = 0;
2909 virtual HRESULT STDMETHODCALLTYPE Reset(
2910 ) = 0;
2912 virtual HRESULT STDMETHODCALLTYPE Clone(
2913 IEnumString** ppenum) = 0;
2916 #else
2917 typedef struct IEnumStringVtbl IEnumStringVtbl;
2918 struct IEnumString {
2919 const IEnumStringVtbl* lpVtbl;
2921 struct IEnumStringVtbl {
2922 BEGIN_INTERFACE
2924 /*** IUnknown methods ***/
2925 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2926 IEnumString* This,
2927 REFIID riid,
2928 void** ppvObject);
2930 ULONG (STDMETHODCALLTYPE *AddRef)(
2931 IEnumString* This);
2933 ULONG (STDMETHODCALLTYPE *Release)(
2934 IEnumString* This);
2936 /*** IEnumString methods ***/
2937 HRESULT (STDMETHODCALLTYPE *Next)(
2938 IEnumString* This,
2939 ULONG celt,
2940 LPOLESTR* rgelt,
2941 ULONG* pceltFetched);
2943 HRESULT (STDMETHODCALLTYPE *Skip)(
2944 IEnumString* This,
2945 ULONG celt);
2947 HRESULT (STDMETHODCALLTYPE *Reset)(
2948 IEnumString* This);
2950 HRESULT (STDMETHODCALLTYPE *Clone)(
2951 IEnumString* This,
2952 IEnumString** ppenum);
2954 END_INTERFACE
2957 #ifdef COBJMACROS
2958 /*** IUnknown methods ***/
2959 #define IEnumString_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2960 #define IEnumString_AddRef(p) (p)->lpVtbl->AddRef(p)
2961 #define IEnumString_Release(p) (p)->lpVtbl->Release(p)
2962 /*** IEnumString methods ***/
2963 #define IEnumString_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
2964 #define IEnumString_Skip(p,a) (p)->lpVtbl->Skip(p,a)
2965 #define IEnumString_Reset(p) (p)->lpVtbl->Reset(p)
2966 #define IEnumString_Clone(p,a) (p)->lpVtbl->Clone(p,a)
2967 #endif
2969 #endif
2971 #define IEnumString_METHODS \
2972 /*** IUnknown methods ***/ \
2973 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2974 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2975 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2976 /*** IEnumString methods ***/ \
2977 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, LPOLESTR* rgelt, ULONG* pceltFetched) PURE; \
2978 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
2979 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
2980 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumString** ppenum) PURE;
2982 HRESULT CALLBACK IEnumString_RemoteNext_Proxy(
2983 IEnumString* This,
2984 ULONG celt,
2985 LPOLESTR* rgelt,
2986 ULONG* pceltFetched);
2987 void __RPC_STUB IEnumString_RemoteNext_Stub(
2988 struct IRpcStubBuffer* This,
2989 struct IRpcChannelBuffer* pRpcChannelBuffer,
2990 PRPC_MESSAGE pRpcMessage,
2991 DWORD* pdwStubPhase);
2992 HRESULT CALLBACK IEnumString_Next_Proxy(
2993 IEnumString* This,
2994 ULONG celt,
2995 LPOLESTR* rgelt,
2996 ULONG* pceltFetched);
2997 HRESULT __RPC_STUB IEnumString_Next_Stub(
2998 IEnumString* This,
2999 ULONG celt,
3000 LPOLESTR* rgelt,
3001 ULONG* pceltFetched);
3002 HRESULT CALLBACK IEnumString_Skip_Proxy(
3003 IEnumString* This,
3004 ULONG celt);
3005 void __RPC_STUB IEnumString_Skip_Stub(
3006 struct IRpcStubBuffer* This,
3007 struct IRpcChannelBuffer* pRpcChannelBuffer,
3008 PRPC_MESSAGE pRpcMessage,
3009 DWORD* pdwStubPhase);
3010 HRESULT CALLBACK IEnumString_Reset_Proxy(
3011 IEnumString* This);
3012 void __RPC_STUB IEnumString_Reset_Stub(
3013 struct IRpcStubBuffer* This,
3014 struct IRpcChannelBuffer* pRpcChannelBuffer,
3015 PRPC_MESSAGE pRpcMessage,
3016 DWORD* pdwStubPhase);
3017 HRESULT CALLBACK IEnumString_Clone_Proxy(
3018 IEnumString* This,
3019 IEnumString** ppenum);
3020 void __RPC_STUB IEnumString_Clone_Stub(
3021 struct IRpcStubBuffer* This,
3022 struct IRpcChannelBuffer* pRpcChannelBuffer,
3023 PRPC_MESSAGE pRpcMessage,
3024 DWORD* pdwStubPhase);
3026 #endif /* __IEnumString_INTERFACE_DEFINED__ */
3028 #ifndef __IClassActivator_FWD_DEFINED__
3029 #define __IClassActivator_FWD_DEFINED__
3030 typedef struct IClassActivator IClassActivator;
3031 #endif
3033 /*****************************************************************************
3034 * IClassActivator interface
3036 #ifndef __IClassActivator_INTERFACE_DEFINED__
3037 #define __IClassActivator_INTERFACE_DEFINED__
3039 DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3040 #if defined(__cplusplus) && !defined(CINTERFACE)
3041 struct IClassActivator : public IUnknown
3043 virtual HRESULT STDMETHODCALLTYPE GetClassObject(
3044 REFCLSID rclsid,
3045 DWORD dwClassContext,
3046 LCID locale,
3047 REFIID riid,
3048 void** ppv) = 0;
3051 #else
3052 typedef struct IClassActivatorVtbl IClassActivatorVtbl;
3053 struct IClassActivator {
3054 const IClassActivatorVtbl* lpVtbl;
3056 struct IClassActivatorVtbl {
3057 BEGIN_INTERFACE
3059 /*** IUnknown methods ***/
3060 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3061 IClassActivator* This,
3062 REFIID riid,
3063 void** ppvObject);
3065 ULONG (STDMETHODCALLTYPE *AddRef)(
3066 IClassActivator* This);
3068 ULONG (STDMETHODCALLTYPE *Release)(
3069 IClassActivator* This);
3071 /*** IClassActivator methods ***/
3072 HRESULT (STDMETHODCALLTYPE *GetClassObject)(
3073 IClassActivator* This,
3074 REFCLSID rclsid,
3075 DWORD dwClassContext,
3076 LCID locale,
3077 REFIID riid,
3078 void** ppv);
3080 END_INTERFACE
3083 #ifdef COBJMACROS
3084 /*** IUnknown methods ***/
3085 #define IClassActivator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3086 #define IClassActivator_AddRef(p) (p)->lpVtbl->AddRef(p)
3087 #define IClassActivator_Release(p) (p)->lpVtbl->Release(p)
3088 /*** IClassActivator methods ***/
3089 #define IClassActivator_GetClassObject(p,a,b,c,d,e) (p)->lpVtbl->GetClassObject(p,a,b,c,d,e)
3090 #endif
3092 #endif
3094 #define IClassActivator_METHODS \
3095 /*** IUnknown methods ***/ \
3096 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3097 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3098 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3099 /*** IClassActivator methods ***/ \
3100 STDMETHOD_(HRESULT,GetClassObject)(THIS_ REFCLSID rclsid, DWORD dwClassContext, LCID locale, REFIID riid, void** ppv) PURE;
3102 HRESULT CALLBACK IClassActivator_GetClassObject_Proxy(
3103 IClassActivator* This,
3104 REFCLSID rclsid,
3105 DWORD dwClassContext,
3106 LCID locale,
3107 REFIID riid,
3108 void** ppv);
3109 void __RPC_STUB IClassActivator_GetClassObject_Stub(
3110 struct IRpcStubBuffer* This,
3111 struct IRpcChannelBuffer* pRpcChannelBuffer,
3112 PRPC_MESSAGE pRpcMessage,
3113 DWORD* pdwStubPhase);
3115 #endif /* __IClassActivator_INTERFACE_DEFINED__ */
3117 #ifndef __ISequentialStream_FWD_DEFINED__
3118 #define __ISequentialStream_FWD_DEFINED__
3119 typedef struct ISequentialStream ISequentialStream;
3120 #endif
3122 /*****************************************************************************
3123 * ISequentialStream interface
3125 #ifndef __ISequentialStream_INTERFACE_DEFINED__
3126 #define __ISequentialStream_INTERFACE_DEFINED__
3128 DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
3129 #if defined(__cplusplus) && !defined(CINTERFACE)
3130 struct ISequentialStream : public IUnknown
3132 virtual HRESULT STDMETHODCALLTYPE Read(
3133 void* pv,
3134 ULONG cb,
3135 ULONG* pcbRead) = 0;
3137 virtual HRESULT STDMETHODCALLTYPE Write(
3138 const void* pv,
3139 ULONG cb,
3140 ULONG* pcbWritten) = 0;
3143 #else
3144 typedef struct ISequentialStreamVtbl ISequentialStreamVtbl;
3145 struct ISequentialStream {
3146 const ISequentialStreamVtbl* lpVtbl;
3148 struct ISequentialStreamVtbl {
3149 BEGIN_INTERFACE
3151 /*** IUnknown methods ***/
3152 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3153 ISequentialStream* This,
3154 REFIID riid,
3155 void** ppvObject);
3157 ULONG (STDMETHODCALLTYPE *AddRef)(
3158 ISequentialStream* This);
3160 ULONG (STDMETHODCALLTYPE *Release)(
3161 ISequentialStream* This);
3163 /*** ISequentialStream methods ***/
3164 HRESULT (STDMETHODCALLTYPE *Read)(
3165 ISequentialStream* This,
3166 void* pv,
3167 ULONG cb,
3168 ULONG* pcbRead);
3170 HRESULT (STDMETHODCALLTYPE *Write)(
3171 ISequentialStream* This,
3172 const void* pv,
3173 ULONG cb,
3174 ULONG* pcbWritten);
3176 END_INTERFACE
3179 #ifdef COBJMACROS
3180 /*** IUnknown methods ***/
3181 #define ISequentialStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3182 #define ISequentialStream_AddRef(p) (p)->lpVtbl->AddRef(p)
3183 #define ISequentialStream_Release(p) (p)->lpVtbl->Release(p)
3184 /*** ISequentialStream methods ***/
3185 #define ISequentialStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3186 #define ISequentialStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3187 #endif
3189 #endif
3191 #define ISequentialStream_METHODS \
3192 /*** IUnknown methods ***/ \
3193 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3194 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3195 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3196 /*** ISequentialStream methods ***/ \
3197 STDMETHOD_(HRESULT,Read)(THIS_ void* pv, ULONG cb, ULONG* pcbRead) PURE; \
3198 STDMETHOD_(HRESULT,Write)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE;
3200 HRESULT CALLBACK ISequentialStream_RemoteRead_Proxy(
3201 ISequentialStream* This,
3202 byte* pv,
3203 ULONG cb,
3204 ULONG* pcbRead);
3205 void __RPC_STUB ISequentialStream_RemoteRead_Stub(
3206 struct IRpcStubBuffer* This,
3207 struct IRpcChannelBuffer* pRpcChannelBuffer,
3208 PRPC_MESSAGE pRpcMessage,
3209 DWORD* pdwStubPhase);
3210 HRESULT CALLBACK ISequentialStream_Read_Proxy(
3211 ISequentialStream* This,
3212 void* pv,
3213 ULONG cb,
3214 ULONG* pcbRead);
3215 HRESULT __RPC_STUB ISequentialStream_Read_Stub(
3216 ISequentialStream* This,
3217 byte* pv,
3218 ULONG cb,
3219 ULONG* pcbRead);
3220 HRESULT CALLBACK ISequentialStream_RemoteWrite_Proxy(
3221 ISequentialStream* This,
3222 const byte* pv,
3223 ULONG cb,
3224 ULONG* pcbWritten);
3225 void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
3226 struct IRpcStubBuffer* This,
3227 struct IRpcChannelBuffer* pRpcChannelBuffer,
3228 PRPC_MESSAGE pRpcMessage,
3229 DWORD* pdwStubPhase);
3230 HRESULT CALLBACK ISequentialStream_Write_Proxy(
3231 ISequentialStream* This,
3232 const void* pv,
3233 ULONG cb,
3234 ULONG* pcbWritten);
3235 HRESULT __RPC_STUB ISequentialStream_Write_Stub(
3236 ISequentialStream* This,
3237 const byte* pv,
3238 ULONG cb,
3239 ULONG* pcbWritten);
3241 #endif /* __ISequentialStream_INTERFACE_DEFINED__ */
3243 typedef IStream *LPSTREAM;
3245 typedef struct tagSTATSTG {
3246 LPOLESTR pwcsName;
3247 DWORD type;
3248 ULARGE_INTEGER cbSize;
3249 FILETIME mtime;
3250 FILETIME ctime;
3251 FILETIME atime;
3252 DWORD grfMode;
3253 DWORD grfLocksSupported;
3254 CLSID clsid;
3255 DWORD grfStateBits;
3256 DWORD reserved;
3257 } STATSTG;
3259 typedef enum tagSTGTY {
3260 STGTY_STORAGE = 1,
3261 STGTY_STREAM = 2,
3262 STGTY_LOCKBYTES = 3,
3263 STGTY_PROPERTY = 4
3264 } STGTY;
3266 typedef enum tagSTREAM_SEEK {
3267 STREAM_SEEK_SET = 0,
3268 STREAM_SEEK_CUR = 1,
3269 STREAM_SEEK_END = 2
3270 } STREAM_SEEK;
3272 #undef LOCK_MAND
3273 #undef LOCK_READ
3274 #undef LOCK_WRITE
3275 #undef LOCK_RW
3276 typedef enum tagLOCKTYPE {
3277 LOCK_WRITE = 1,
3278 LOCK_EXCLUSIVE = 2,
3279 LOCK_ONLYONCE = 4
3280 } LOCKTYPE;
3282 /*****************************************************************************
3283 * IStream interface
3285 #ifndef __IStream_INTERFACE_DEFINED__
3286 #define __IStream_INTERFACE_DEFINED__
3288 DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3289 #if defined(__cplusplus) && !defined(CINTERFACE)
3290 struct IStream : public ISequentialStream
3292 virtual HRESULT STDMETHODCALLTYPE Seek(
3293 LARGE_INTEGER dlibMove,
3294 DWORD dwOrigin,
3295 ULARGE_INTEGER* plibNewPosition) = 0;
3297 virtual HRESULT STDMETHODCALLTYPE SetSize(
3298 ULARGE_INTEGER libNewSize) = 0;
3300 virtual HRESULT STDMETHODCALLTYPE CopyTo(
3301 IStream* pstm,
3302 ULARGE_INTEGER cb,
3303 ULARGE_INTEGER* pcbRead,
3304 ULARGE_INTEGER* pcbWritten) = 0;
3306 virtual HRESULT STDMETHODCALLTYPE Commit(
3307 DWORD grfCommitFlags) = 0;
3309 virtual HRESULT STDMETHODCALLTYPE Revert(
3310 ) = 0;
3312 virtual HRESULT STDMETHODCALLTYPE LockRegion(
3313 ULARGE_INTEGER libOffset,
3314 ULARGE_INTEGER cb,
3315 DWORD dwLockType) = 0;
3317 virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
3318 ULARGE_INTEGER libOffset,
3319 ULARGE_INTEGER cb,
3320 DWORD dwLockType) = 0;
3322 virtual HRESULT STDMETHODCALLTYPE Stat(
3323 STATSTG* pstatstg,
3324 DWORD grfStatFlag) = 0;
3326 virtual HRESULT STDMETHODCALLTYPE Clone(
3327 IStream** ppstm) = 0;
3330 #else
3331 typedef struct IStreamVtbl IStreamVtbl;
3332 struct IStream {
3333 const IStreamVtbl* lpVtbl;
3335 struct IStreamVtbl {
3336 BEGIN_INTERFACE
3338 /*** IUnknown methods ***/
3339 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3340 IStream* This,
3341 REFIID riid,
3342 void** ppvObject);
3344 ULONG (STDMETHODCALLTYPE *AddRef)(
3345 IStream* This);
3347 ULONG (STDMETHODCALLTYPE *Release)(
3348 IStream* This);
3350 /*** ISequentialStream methods ***/
3351 HRESULT (STDMETHODCALLTYPE *Read)(
3352 IStream* This,
3353 void* pv,
3354 ULONG cb,
3355 ULONG* pcbRead);
3357 HRESULT (STDMETHODCALLTYPE *Write)(
3358 IStream* This,
3359 const void* pv,
3360 ULONG cb,
3361 ULONG* pcbWritten);
3363 /*** IStream methods ***/
3364 HRESULT (STDMETHODCALLTYPE *Seek)(
3365 IStream* This,
3366 LARGE_INTEGER dlibMove,
3367 DWORD dwOrigin,
3368 ULARGE_INTEGER* plibNewPosition);
3370 HRESULT (STDMETHODCALLTYPE *SetSize)(
3371 IStream* This,
3372 ULARGE_INTEGER libNewSize);
3374 HRESULT (STDMETHODCALLTYPE *CopyTo)(
3375 IStream* This,
3376 IStream* pstm,
3377 ULARGE_INTEGER cb,
3378 ULARGE_INTEGER* pcbRead,
3379 ULARGE_INTEGER* pcbWritten);
3381 HRESULT (STDMETHODCALLTYPE *Commit)(
3382 IStream* This,
3383 DWORD grfCommitFlags);
3385 HRESULT (STDMETHODCALLTYPE *Revert)(
3386 IStream* This);
3388 HRESULT (STDMETHODCALLTYPE *LockRegion)(
3389 IStream* This,
3390 ULARGE_INTEGER libOffset,
3391 ULARGE_INTEGER cb,
3392 DWORD dwLockType);
3394 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
3395 IStream* This,
3396 ULARGE_INTEGER libOffset,
3397 ULARGE_INTEGER cb,
3398 DWORD dwLockType);
3400 HRESULT (STDMETHODCALLTYPE *Stat)(
3401 IStream* This,
3402 STATSTG* pstatstg,
3403 DWORD grfStatFlag);
3405 HRESULT (STDMETHODCALLTYPE *Clone)(
3406 IStream* This,
3407 IStream** ppstm);
3409 END_INTERFACE
3412 #ifdef COBJMACROS
3413 /*** IUnknown methods ***/
3414 #define IStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3415 #define IStream_AddRef(p) (p)->lpVtbl->AddRef(p)
3416 #define IStream_Release(p) (p)->lpVtbl->Release(p)
3417 /*** ISequentialStream methods ***/
3418 #define IStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3419 #define IStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3420 /*** IStream methods ***/
3421 #define IStream_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
3422 #define IStream_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
3423 #define IStream_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3424 #define IStream_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3425 #define IStream_Revert(p) (p)->lpVtbl->Revert(p)
3426 #define IStream_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
3427 #define IStream_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
3428 #define IStream_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3429 #define IStream_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3430 #endif
3432 #endif
3434 #define IStream_METHODS \
3435 /*** IUnknown methods ***/ \
3436 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3437 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3438 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3439 /*** ISequentialStream methods ***/ \
3440 STDMETHOD_(HRESULT,Read)(THIS_ void* pv, ULONG cb, ULONG* pcbRead) PURE; \
3441 STDMETHOD_(HRESULT,Write)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
3442 /*** IStream methods ***/ \
3443 STDMETHOD_(HRESULT,Seek)(THIS_ LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition) PURE; \
3444 STDMETHOD_(HRESULT,SetSize)(THIS_ ULARGE_INTEGER libNewSize) PURE; \
3445 STDMETHOD_(HRESULT,CopyTo)(THIS_ IStream* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten) PURE; \
3446 STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
3447 STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
3448 STDMETHOD_(HRESULT,LockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
3449 STDMETHOD_(HRESULT,UnlockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
3450 STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE; \
3451 STDMETHOD_(HRESULT,Clone)(THIS_ IStream** ppstm) PURE;
3453 HRESULT CALLBACK IStream_RemoteSeek_Proxy(
3454 IStream* This,
3455 LARGE_INTEGER dlibMove,
3456 DWORD dwOrigin,
3457 ULARGE_INTEGER* plibNewPosition);
3458 void __RPC_STUB IStream_RemoteSeek_Stub(
3459 struct IRpcStubBuffer* This,
3460 struct IRpcChannelBuffer* pRpcChannelBuffer,
3461 PRPC_MESSAGE pRpcMessage,
3462 DWORD* pdwStubPhase);
3463 HRESULT CALLBACK IStream_Seek_Proxy(
3464 IStream* This,
3465 LARGE_INTEGER dlibMove,
3466 DWORD dwOrigin,
3467 ULARGE_INTEGER* plibNewPosition);
3468 HRESULT __RPC_STUB IStream_Seek_Stub(
3469 IStream* This,
3470 LARGE_INTEGER dlibMove,
3471 DWORD dwOrigin,
3472 ULARGE_INTEGER* plibNewPosition);
3473 HRESULT CALLBACK IStream_SetSize_Proxy(
3474 IStream* This,
3475 ULARGE_INTEGER libNewSize);
3476 void __RPC_STUB IStream_SetSize_Stub(
3477 struct IRpcStubBuffer* This,
3478 struct IRpcChannelBuffer* pRpcChannelBuffer,
3479 PRPC_MESSAGE pRpcMessage,
3480 DWORD* pdwStubPhase);
3481 HRESULT CALLBACK IStream_RemoteCopyTo_Proxy(
3482 IStream* This,
3483 IStream* pstm,
3484 ULARGE_INTEGER cb,
3485 ULARGE_INTEGER* pcbRead,
3486 ULARGE_INTEGER* pcbWritten);
3487 void __RPC_STUB IStream_RemoteCopyTo_Stub(
3488 struct IRpcStubBuffer* This,
3489 struct IRpcChannelBuffer* pRpcChannelBuffer,
3490 PRPC_MESSAGE pRpcMessage,
3491 DWORD* pdwStubPhase);
3492 HRESULT CALLBACK IStream_CopyTo_Proxy(
3493 IStream* This,
3494 IStream* pstm,
3495 ULARGE_INTEGER cb,
3496 ULARGE_INTEGER* pcbRead,
3497 ULARGE_INTEGER* pcbWritten);
3498 HRESULT __RPC_STUB IStream_CopyTo_Stub(
3499 IStream* This,
3500 IStream* pstm,
3501 ULARGE_INTEGER cb,
3502 ULARGE_INTEGER* pcbRead,
3503 ULARGE_INTEGER* pcbWritten);
3504 HRESULT CALLBACK IStream_Commit_Proxy(
3505 IStream* This,
3506 DWORD grfCommitFlags);
3507 void __RPC_STUB IStream_Commit_Stub(
3508 struct IRpcStubBuffer* This,
3509 struct IRpcChannelBuffer* pRpcChannelBuffer,
3510 PRPC_MESSAGE pRpcMessage,
3511 DWORD* pdwStubPhase);
3512 HRESULT CALLBACK IStream_Revert_Proxy(
3513 IStream* This);
3514 void __RPC_STUB IStream_Revert_Stub(
3515 struct IRpcStubBuffer* This,
3516 struct IRpcChannelBuffer* pRpcChannelBuffer,
3517 PRPC_MESSAGE pRpcMessage,
3518 DWORD* pdwStubPhase);
3519 HRESULT CALLBACK IStream_LockRegion_Proxy(
3520 IStream* This,
3521 ULARGE_INTEGER libOffset,
3522 ULARGE_INTEGER cb,
3523 DWORD dwLockType);
3524 void __RPC_STUB IStream_LockRegion_Stub(
3525 struct IRpcStubBuffer* This,
3526 struct IRpcChannelBuffer* pRpcChannelBuffer,
3527 PRPC_MESSAGE pRpcMessage,
3528 DWORD* pdwStubPhase);
3529 HRESULT CALLBACK IStream_UnlockRegion_Proxy(
3530 IStream* This,
3531 ULARGE_INTEGER libOffset,
3532 ULARGE_INTEGER cb,
3533 DWORD dwLockType);
3534 void __RPC_STUB IStream_UnlockRegion_Stub(
3535 struct IRpcStubBuffer* This,
3536 struct IRpcChannelBuffer* pRpcChannelBuffer,
3537 PRPC_MESSAGE pRpcMessage,
3538 DWORD* pdwStubPhase);
3539 HRESULT CALLBACK IStream_Stat_Proxy(
3540 IStream* This,
3541 STATSTG* pstatstg,
3542 DWORD grfStatFlag);
3543 void __RPC_STUB IStream_Stat_Stub(
3544 struct IRpcStubBuffer* This,
3545 struct IRpcChannelBuffer* pRpcChannelBuffer,
3546 PRPC_MESSAGE pRpcMessage,
3547 DWORD* pdwStubPhase);
3548 HRESULT CALLBACK IStream_Clone_Proxy(
3549 IStream* This,
3550 IStream** ppstm);
3551 void __RPC_STUB IStream_Clone_Stub(
3552 struct IRpcStubBuffer* This,
3553 struct IRpcChannelBuffer* pRpcChannelBuffer,
3554 PRPC_MESSAGE pRpcMessage,
3555 DWORD* pdwStubPhase);
3557 #endif /* __IStream_INTERFACE_DEFINED__ */
3559 #ifndef __IEnumSTATSTG_FWD_DEFINED__
3560 #define __IEnumSTATSTG_FWD_DEFINED__
3561 typedef struct IEnumSTATSTG IEnumSTATSTG;
3562 #endif
3564 typedef IEnumSTATSTG *LPENUMSTATSTG;
3566 /*****************************************************************************
3567 * IEnumSTATSTG interface
3569 #ifndef __IEnumSTATSTG_INTERFACE_DEFINED__
3570 #define __IEnumSTATSTG_INTERFACE_DEFINED__
3572 DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3573 #if defined(__cplusplus) && !defined(CINTERFACE)
3574 struct IEnumSTATSTG : public IUnknown
3576 virtual HRESULT STDMETHODCALLTYPE Next(
3577 ULONG celt,
3578 STATSTG* rgelt,
3579 ULONG* pceltFetched) = 0;
3581 virtual HRESULT STDMETHODCALLTYPE Skip(
3582 ULONG celt) = 0;
3584 virtual HRESULT STDMETHODCALLTYPE Reset(
3585 ) = 0;
3587 virtual HRESULT STDMETHODCALLTYPE Clone(
3588 IEnumSTATSTG** ppenum) = 0;
3591 #else
3592 typedef struct IEnumSTATSTGVtbl IEnumSTATSTGVtbl;
3593 struct IEnumSTATSTG {
3594 const IEnumSTATSTGVtbl* lpVtbl;
3596 struct IEnumSTATSTGVtbl {
3597 BEGIN_INTERFACE
3599 /*** IUnknown methods ***/
3600 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3601 IEnumSTATSTG* This,
3602 REFIID riid,
3603 void** ppvObject);
3605 ULONG (STDMETHODCALLTYPE *AddRef)(
3606 IEnumSTATSTG* This);
3608 ULONG (STDMETHODCALLTYPE *Release)(
3609 IEnumSTATSTG* This);
3611 /*** IEnumSTATSTG methods ***/
3612 HRESULT (STDMETHODCALLTYPE *Next)(
3613 IEnumSTATSTG* This,
3614 ULONG celt,
3615 STATSTG* rgelt,
3616 ULONG* pceltFetched);
3618 HRESULT (STDMETHODCALLTYPE *Skip)(
3619 IEnumSTATSTG* This,
3620 ULONG celt);
3622 HRESULT (STDMETHODCALLTYPE *Reset)(
3623 IEnumSTATSTG* This);
3625 HRESULT (STDMETHODCALLTYPE *Clone)(
3626 IEnumSTATSTG* This,
3627 IEnumSTATSTG** ppenum);
3629 END_INTERFACE
3632 #ifdef COBJMACROS
3633 /*** IUnknown methods ***/
3634 #define IEnumSTATSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3635 #define IEnumSTATSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
3636 #define IEnumSTATSTG_Release(p) (p)->lpVtbl->Release(p)
3637 /*** IEnumSTATSTG methods ***/
3638 #define IEnumSTATSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
3639 #define IEnumSTATSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
3640 #define IEnumSTATSTG_Reset(p) (p)->lpVtbl->Reset(p)
3641 #define IEnumSTATSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3642 #endif
3644 #endif
3646 #define IEnumSTATSTG_METHODS \
3647 /*** IUnknown methods ***/ \
3648 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3649 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3650 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3651 /*** IEnumSTATSTG methods ***/ \
3652 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATSTG* rgelt, ULONG* pceltFetched) PURE; \
3653 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
3654 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
3655 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATSTG** ppenum) PURE;
3657 HRESULT CALLBACK IEnumSTATSTG_RemoteNext_Proxy(
3658 IEnumSTATSTG* This,
3659 ULONG celt,
3660 STATSTG* rgelt,
3661 ULONG* pceltFetched);
3662 void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
3663 struct IRpcStubBuffer* This,
3664 struct IRpcChannelBuffer* pRpcChannelBuffer,
3665 PRPC_MESSAGE pRpcMessage,
3666 DWORD* pdwStubPhase);
3667 HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
3668 IEnumSTATSTG* This,
3669 ULONG celt,
3670 STATSTG* rgelt,
3671 ULONG* pceltFetched);
3672 HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
3673 IEnumSTATSTG* This,
3674 ULONG celt,
3675 STATSTG* rgelt,
3676 ULONG* pceltFetched);
3677 HRESULT CALLBACK IEnumSTATSTG_Skip_Proxy(
3678 IEnumSTATSTG* This,
3679 ULONG celt);
3680 void __RPC_STUB IEnumSTATSTG_Skip_Stub(
3681 struct IRpcStubBuffer* This,
3682 struct IRpcChannelBuffer* pRpcChannelBuffer,
3683 PRPC_MESSAGE pRpcMessage,
3684 DWORD* pdwStubPhase);
3685 HRESULT CALLBACK IEnumSTATSTG_Reset_Proxy(
3686 IEnumSTATSTG* This);
3687 void __RPC_STUB IEnumSTATSTG_Reset_Stub(
3688 struct IRpcStubBuffer* This,
3689 struct IRpcChannelBuffer* pRpcChannelBuffer,
3690 PRPC_MESSAGE pRpcMessage,
3691 DWORD* pdwStubPhase);
3692 HRESULT CALLBACK IEnumSTATSTG_Clone_Proxy(
3693 IEnumSTATSTG* This,
3694 IEnumSTATSTG** ppenum);
3695 void __RPC_STUB IEnumSTATSTG_Clone_Stub(
3696 struct IRpcStubBuffer* This,
3697 struct IRpcChannelBuffer* pRpcChannelBuffer,
3698 PRPC_MESSAGE pRpcMessage,
3699 DWORD* pdwStubPhase);
3701 #endif /* __IEnumSTATSTG_INTERFACE_DEFINED__ */
3703 #ifndef __IStorage_FWD_DEFINED__
3704 #define __IStorage_FWD_DEFINED__
3705 typedef struct IStorage IStorage;
3706 #endif
3708 typedef IStorage *LPSTORAGE;
3710 typedef struct tagRemSNB {
3711 unsigned long ulCntStr;
3712 unsigned long ulCntChar;
3713 OLECHAR rgString[1];
3714 } RemSNB;
3716 typedef RemSNB *wireSNB;
3718 typedef OLECHAR **SNB;
3719 unsigned long __RPC_USER SNB_UserSize (unsigned long *, unsigned long, SNB *);
3720 unsigned char * __RPC_USER SNB_UserMarshal (unsigned long *, unsigned char *, SNB *);
3721 unsigned char * __RPC_USER SNB_UserUnmarshal(unsigned long *, unsigned char *, SNB *);
3722 void __RPC_USER SNB_UserFree (unsigned long *, SNB *);
3724 /*****************************************************************************
3725 * IStorage interface
3727 #ifndef __IStorage_INTERFACE_DEFINED__
3728 #define __IStorage_INTERFACE_DEFINED__
3730 DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3731 #if defined(__cplusplus) && !defined(CINTERFACE)
3732 struct IStorage : public IUnknown
3734 virtual HRESULT STDMETHODCALLTYPE CreateStream(
3735 LPCOLESTR pwcsName,
3736 DWORD grfMode,
3737 DWORD reserved1,
3738 DWORD reserved2,
3739 IStream** ppstm) = 0;
3741 virtual HRESULT STDMETHODCALLTYPE OpenStream(
3742 LPCOLESTR pwcsName,
3743 void* reserved1,
3744 DWORD grfMode,
3745 DWORD reserved2,
3746 IStream** ppstm) = 0;
3748 virtual HRESULT STDMETHODCALLTYPE CreateStorage(
3749 LPCOLESTR pwcsName,
3750 DWORD grfMode,
3751 DWORD dwStgFmt,
3752 DWORD reserved2,
3753 IStorage** ppstg) = 0;
3755 virtual HRESULT STDMETHODCALLTYPE OpenStorage(
3756 LPCOLESTR pwcsName,
3757 IStorage* pstgPriority,
3758 DWORD grfMode,
3759 SNB snbExclude,
3760 DWORD reserved,
3761 IStorage** ppstg) = 0;
3763 virtual HRESULT STDMETHODCALLTYPE CopyTo(
3764 DWORD ciidExclude,
3765 const IID* rgiidExclude,
3766 SNB snbExclude,
3767 IStorage* pstgDest) = 0;
3769 virtual HRESULT STDMETHODCALLTYPE MoveElementTo(
3770 LPCOLESTR pwcsName,
3771 IStorage* pstgDest,
3772 LPCOLESTR pwcsNewName,
3773 DWORD grfFlags) = 0;
3775 virtual HRESULT STDMETHODCALLTYPE Commit(
3776 DWORD grfCommitFlags) = 0;
3778 virtual HRESULT STDMETHODCALLTYPE Revert(
3779 ) = 0;
3781 virtual HRESULT STDMETHODCALLTYPE EnumElements(
3782 DWORD reserved1,
3783 void* reserved2,
3784 DWORD reserved3,
3785 IEnumSTATSTG** ppenum) = 0;
3787 virtual HRESULT STDMETHODCALLTYPE DestroyElement(
3788 LPCOLESTR pwcsName) = 0;
3790 virtual HRESULT STDMETHODCALLTYPE RenameElement(
3791 LPCOLESTR pwcsOldName,
3792 LPCOLESTR pwcsNewName) = 0;
3794 virtual HRESULT STDMETHODCALLTYPE SetElementTimes(
3795 LPCOLESTR pwcsName,
3796 const FILETIME* pctime,
3797 const FILETIME* patime,
3798 const FILETIME* pmtime) = 0;
3800 virtual HRESULT STDMETHODCALLTYPE SetClass(
3801 REFCLSID clsid) = 0;
3803 virtual HRESULT STDMETHODCALLTYPE SetStateBits(
3804 DWORD grfStateBits,
3805 DWORD grfMask) = 0;
3807 virtual HRESULT STDMETHODCALLTYPE Stat(
3808 STATSTG* pstatstg,
3809 DWORD grfStatFlag) = 0;
3812 #else
3813 typedef struct IStorageVtbl IStorageVtbl;
3814 struct IStorage {
3815 const IStorageVtbl* lpVtbl;
3817 struct IStorageVtbl {
3818 BEGIN_INTERFACE
3820 /*** IUnknown methods ***/
3821 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3822 IStorage* This,
3823 REFIID riid,
3824 void** ppvObject);
3826 ULONG (STDMETHODCALLTYPE *AddRef)(
3827 IStorage* This);
3829 ULONG (STDMETHODCALLTYPE *Release)(
3830 IStorage* This);
3832 /*** IStorage methods ***/
3833 HRESULT (STDMETHODCALLTYPE *CreateStream)(
3834 IStorage* This,
3835 LPCOLESTR pwcsName,
3836 DWORD grfMode,
3837 DWORD reserved1,
3838 DWORD reserved2,
3839 IStream** ppstm);
3841 HRESULT (STDMETHODCALLTYPE *OpenStream)(
3842 IStorage* This,
3843 LPCOLESTR pwcsName,
3844 void* reserved1,
3845 DWORD grfMode,
3846 DWORD reserved2,
3847 IStream** ppstm);
3849 HRESULT (STDMETHODCALLTYPE *CreateStorage)(
3850 IStorage* This,
3851 LPCOLESTR pwcsName,
3852 DWORD grfMode,
3853 DWORD dwStgFmt,
3854 DWORD reserved2,
3855 IStorage** ppstg);
3857 HRESULT (STDMETHODCALLTYPE *OpenStorage)(
3858 IStorage* This,
3859 LPCOLESTR pwcsName,
3860 IStorage* pstgPriority,
3861 DWORD grfMode,
3862 SNB snbExclude,
3863 DWORD reserved,
3864 IStorage** ppstg);
3866 HRESULT (STDMETHODCALLTYPE *CopyTo)(
3867 IStorage* This,
3868 DWORD ciidExclude,
3869 const IID* rgiidExclude,
3870 SNB snbExclude,
3871 IStorage* pstgDest);
3873 HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
3874 IStorage* This,
3875 LPCOLESTR pwcsName,
3876 IStorage* pstgDest,
3877 LPCOLESTR pwcsNewName,
3878 DWORD grfFlags);
3880 HRESULT (STDMETHODCALLTYPE *Commit)(
3881 IStorage* This,
3882 DWORD grfCommitFlags);
3884 HRESULT (STDMETHODCALLTYPE *Revert)(
3885 IStorage* This);
3887 HRESULT (STDMETHODCALLTYPE *EnumElements)(
3888 IStorage* This,
3889 DWORD reserved1,
3890 void* reserved2,
3891 DWORD reserved3,
3892 IEnumSTATSTG** ppenum);
3894 HRESULT (STDMETHODCALLTYPE *DestroyElement)(
3895 IStorage* This,
3896 LPCOLESTR pwcsName);
3898 HRESULT (STDMETHODCALLTYPE *RenameElement)(
3899 IStorage* This,
3900 LPCOLESTR pwcsOldName,
3901 LPCOLESTR pwcsNewName);
3903 HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
3904 IStorage* This,
3905 LPCOLESTR pwcsName,
3906 const FILETIME* pctime,
3907 const FILETIME* patime,
3908 const FILETIME* pmtime);
3910 HRESULT (STDMETHODCALLTYPE *SetClass)(
3911 IStorage* This,
3912 REFCLSID clsid);
3914 HRESULT (STDMETHODCALLTYPE *SetStateBits)(
3915 IStorage* This,
3916 DWORD grfStateBits,
3917 DWORD grfMask);
3919 HRESULT (STDMETHODCALLTYPE *Stat)(
3920 IStorage* This,
3921 STATSTG* pstatstg,
3922 DWORD grfStatFlag);
3924 END_INTERFACE
3927 #ifdef COBJMACROS
3928 /*** IUnknown methods ***/
3929 #define IStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3930 #define IStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
3931 #define IStorage_Release(p) (p)->lpVtbl->Release(p)
3932 /*** IStorage methods ***/
3933 #define IStorage_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
3934 #define IStorage_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
3935 #define IStorage_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
3936 #define IStorage_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
3937 #define IStorage_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3938 #define IStorage_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
3939 #define IStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3940 #define IStorage_Revert(p) (p)->lpVtbl->Revert(p)
3941 #define IStorage_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
3942 #define IStorage_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
3943 #define IStorage_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
3944 #define IStorage_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
3945 #define IStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
3946 #define IStorage_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
3947 #define IStorage_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3948 #endif
3950 #endif
3952 #define IStorage_METHODS \
3953 /*** IUnknown methods ***/ \
3954 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3955 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3956 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3957 /*** IStorage methods ***/ \
3958 STDMETHOD_(HRESULT,CreateStream)(THIS_ LPCOLESTR pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream** ppstm) PURE; \
3959 STDMETHOD_(HRESULT,OpenStream)(THIS_ LPCOLESTR pwcsName, void* reserved1, DWORD grfMode, DWORD reserved2, IStream** ppstm) PURE; \
3960 STDMETHOD_(HRESULT,CreateStorage)(THIS_ LPCOLESTR pwcsName, DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage** ppstg) PURE; \
3961 STDMETHOD_(HRESULT,OpenStorage)(THIS_ LPCOLESTR pwcsName, IStorage* pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage** ppstg) PURE; \
3962 STDMETHOD_(HRESULT,CopyTo)(THIS_ DWORD ciidExclude, const IID* rgiidExclude, SNB snbExclude, IStorage* pstgDest) PURE; \
3963 STDMETHOD_(HRESULT,MoveElementTo)(THIS_ LPCOLESTR pwcsName, IStorage* pstgDest, LPCOLESTR pwcsNewName, DWORD grfFlags) PURE; \
3964 STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
3965 STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
3966 STDMETHOD_(HRESULT,EnumElements)(THIS_ DWORD reserved1, void* reserved2, DWORD reserved3, IEnumSTATSTG** ppenum) PURE; \
3967 STDMETHOD_(HRESULT,DestroyElement)(THIS_ LPCOLESTR pwcsName) PURE; \
3968 STDMETHOD_(HRESULT,RenameElement)(THIS_ LPCOLESTR pwcsOldName, LPCOLESTR pwcsNewName) PURE; \
3969 STDMETHOD_(HRESULT,SetElementTimes)(THIS_ LPCOLESTR pwcsName, const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime) PURE; \
3970 STDMETHOD_(HRESULT,SetClass)(THIS_ REFCLSID clsid) PURE; \
3971 STDMETHOD_(HRESULT,SetStateBits)(THIS_ DWORD grfStateBits, DWORD grfMask) PURE; \
3972 STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE;
3974 HRESULT CALLBACK IStorage_CreateStream_Proxy(
3975 IStorage* This,
3976 LPCOLESTR pwcsName,
3977 DWORD grfMode,
3978 DWORD reserved1,
3979 DWORD reserved2,
3980 IStream** ppstm);
3981 void __RPC_STUB IStorage_CreateStream_Stub(
3982 struct IRpcStubBuffer* This,
3983 struct IRpcChannelBuffer* pRpcChannelBuffer,
3984 PRPC_MESSAGE pRpcMessage,
3985 DWORD* pdwStubPhase);
3986 HRESULT CALLBACK IStorage_RemoteOpenStream_Proxy(
3987 IStorage* This,
3988 LPCOLESTR pwcsName,
3989 unsigned long cbReserved1,
3990 byte* reserved1,
3991 DWORD grfMode,
3992 DWORD reserved2,
3993 IStream** ppstm);
3994 void __RPC_STUB IStorage_RemoteOpenStream_Stub(
3995 struct IRpcStubBuffer* This,
3996 struct IRpcChannelBuffer* pRpcChannelBuffer,
3997 PRPC_MESSAGE pRpcMessage,
3998 DWORD* pdwStubPhase);
3999 HRESULT CALLBACK IStorage_OpenStream_Proxy(
4000 IStorage* This,
4001 LPCOLESTR pwcsName,
4002 void* reserved1,
4003 DWORD grfMode,
4004 DWORD reserved2,
4005 IStream** ppstm);
4006 HRESULT __RPC_STUB IStorage_OpenStream_Stub(
4007 IStorage* This,
4008 LPCOLESTR pwcsName,
4009 unsigned long cbReserved1,
4010 byte* reserved1,
4011 DWORD grfMode,
4012 DWORD reserved2,
4013 IStream** ppstm);
4014 HRESULT CALLBACK IStorage_CreateStorage_Proxy(
4015 IStorage* This,
4016 LPCOLESTR pwcsName,
4017 DWORD grfMode,
4018 DWORD dwStgFmt,
4019 DWORD reserved2,
4020 IStorage** ppstg);
4021 void __RPC_STUB IStorage_CreateStorage_Stub(
4022 struct IRpcStubBuffer* This,
4023 struct IRpcChannelBuffer* pRpcChannelBuffer,
4024 PRPC_MESSAGE pRpcMessage,
4025 DWORD* pdwStubPhase);
4026 HRESULT CALLBACK IStorage_OpenStorage_Proxy(
4027 IStorage* This,
4028 LPCOLESTR pwcsName,
4029 IStorage* pstgPriority,
4030 DWORD grfMode,
4031 SNB snbExclude,
4032 DWORD reserved,
4033 IStorage** ppstg);
4034 void __RPC_STUB IStorage_OpenStorage_Stub(
4035 struct IRpcStubBuffer* This,
4036 struct IRpcChannelBuffer* pRpcChannelBuffer,
4037 PRPC_MESSAGE pRpcMessage,
4038 DWORD* pdwStubPhase);
4039 HRESULT CALLBACK IStorage_CopyTo_Proxy(
4040 IStorage* This,
4041 DWORD ciidExclude,
4042 const IID* rgiidExclude,
4043 SNB snbExclude,
4044 IStorage* pstgDest);
4045 void __RPC_STUB IStorage_CopyTo_Stub(
4046 struct IRpcStubBuffer* This,
4047 struct IRpcChannelBuffer* pRpcChannelBuffer,
4048 PRPC_MESSAGE pRpcMessage,
4049 DWORD* pdwStubPhase);
4050 HRESULT CALLBACK IStorage_MoveElementTo_Proxy(
4051 IStorage* This,
4052 LPCOLESTR pwcsName,
4053 IStorage* pstgDest,
4054 LPCOLESTR pwcsNewName,
4055 DWORD grfFlags);
4056 void __RPC_STUB IStorage_MoveElementTo_Stub(
4057 struct IRpcStubBuffer* This,
4058 struct IRpcChannelBuffer* pRpcChannelBuffer,
4059 PRPC_MESSAGE pRpcMessage,
4060 DWORD* pdwStubPhase);
4061 HRESULT CALLBACK IStorage_Commit_Proxy(
4062 IStorage* This,
4063 DWORD grfCommitFlags);
4064 void __RPC_STUB IStorage_Commit_Stub(
4065 struct IRpcStubBuffer* This,
4066 struct IRpcChannelBuffer* pRpcChannelBuffer,
4067 PRPC_MESSAGE pRpcMessage,
4068 DWORD* pdwStubPhase);
4069 HRESULT CALLBACK IStorage_Revert_Proxy(
4070 IStorage* This);
4071 void __RPC_STUB IStorage_Revert_Stub(
4072 struct IRpcStubBuffer* This,
4073 struct IRpcChannelBuffer* pRpcChannelBuffer,
4074 PRPC_MESSAGE pRpcMessage,
4075 DWORD* pdwStubPhase);
4076 HRESULT CALLBACK IStorage_RemoteEnumElements_Proxy(
4077 IStorage* This,
4078 DWORD reserved1,
4079 unsigned long cbReserved2,
4080 byte* reserved2,
4081 DWORD reserved3,
4082 IEnumSTATSTG** ppenum);
4083 void __RPC_STUB IStorage_RemoteEnumElements_Stub(
4084 struct IRpcStubBuffer* This,
4085 struct IRpcChannelBuffer* pRpcChannelBuffer,
4086 PRPC_MESSAGE pRpcMessage,
4087 DWORD* pdwStubPhase);
4088 HRESULT CALLBACK IStorage_EnumElements_Proxy(
4089 IStorage* This,
4090 DWORD reserved1,
4091 void* reserved2,
4092 DWORD reserved3,
4093 IEnumSTATSTG** ppenum);
4094 HRESULT __RPC_STUB IStorage_EnumElements_Stub(
4095 IStorage* This,
4096 DWORD reserved1,
4097 unsigned long cbReserved2,
4098 byte* reserved2,
4099 DWORD reserved3,
4100 IEnumSTATSTG** ppenum);
4101 HRESULT CALLBACK IStorage_DestroyElement_Proxy(
4102 IStorage* This,
4103 LPCOLESTR pwcsName);
4104 void __RPC_STUB IStorage_DestroyElement_Stub(
4105 struct IRpcStubBuffer* This,
4106 struct IRpcChannelBuffer* pRpcChannelBuffer,
4107 PRPC_MESSAGE pRpcMessage,
4108 DWORD* pdwStubPhase);
4109 HRESULT CALLBACK IStorage_RenameElement_Proxy(
4110 IStorage* This,
4111 LPCOLESTR pwcsOldName,
4112 LPCOLESTR pwcsNewName);
4113 void __RPC_STUB IStorage_RenameElement_Stub(
4114 struct IRpcStubBuffer* This,
4115 struct IRpcChannelBuffer* pRpcChannelBuffer,
4116 PRPC_MESSAGE pRpcMessage,
4117 DWORD* pdwStubPhase);
4118 HRESULT CALLBACK IStorage_SetElementTimes_Proxy(
4119 IStorage* This,
4120 LPCOLESTR pwcsName,
4121 const FILETIME* pctime,
4122 const FILETIME* patime,
4123 const FILETIME* pmtime);
4124 void __RPC_STUB IStorage_SetElementTimes_Stub(
4125 struct IRpcStubBuffer* This,
4126 struct IRpcChannelBuffer* pRpcChannelBuffer,
4127 PRPC_MESSAGE pRpcMessage,
4128 DWORD* pdwStubPhase);
4129 HRESULT CALLBACK IStorage_SetClass_Proxy(
4130 IStorage* This,
4131 REFCLSID clsid);
4132 void __RPC_STUB IStorage_SetClass_Stub(
4133 struct IRpcStubBuffer* This,
4134 struct IRpcChannelBuffer* pRpcChannelBuffer,
4135 PRPC_MESSAGE pRpcMessage,
4136 DWORD* pdwStubPhase);
4137 HRESULT CALLBACK IStorage_SetStateBits_Proxy(
4138 IStorage* This,
4139 DWORD grfStateBits,
4140 DWORD grfMask);
4141 void __RPC_STUB IStorage_SetStateBits_Stub(
4142 struct IRpcStubBuffer* This,
4143 struct IRpcChannelBuffer* pRpcChannelBuffer,
4144 PRPC_MESSAGE pRpcMessage,
4145 DWORD* pdwStubPhase);
4146 HRESULT CALLBACK IStorage_Stat_Proxy(
4147 IStorage* This,
4148 STATSTG* pstatstg,
4149 DWORD grfStatFlag);
4150 void __RPC_STUB IStorage_Stat_Stub(
4151 struct IRpcStubBuffer* This,
4152 struct IRpcChannelBuffer* pRpcChannelBuffer,
4153 PRPC_MESSAGE pRpcMessage,
4154 DWORD* pdwStubPhase);
4156 #endif /* __IStorage_INTERFACE_DEFINED__ */
4158 #ifndef __IPersistFile_FWD_DEFINED__
4159 #define __IPersistFile_FWD_DEFINED__
4160 typedef struct IPersistFile IPersistFile;
4161 #endif
4163 typedef IPersistFile *LPPERSISTFILE;
4165 /*****************************************************************************
4166 * IPersistFile interface
4168 #ifndef __IPersistFile_INTERFACE_DEFINED__
4169 #define __IPersistFile_INTERFACE_DEFINED__
4171 DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4172 #if defined(__cplusplus) && !defined(CINTERFACE)
4173 struct IPersistFile : public IPersist
4175 virtual HRESULT STDMETHODCALLTYPE IsDirty(
4176 ) = 0;
4178 virtual HRESULT STDMETHODCALLTYPE Load(
4179 LPCOLESTR pszFileName,
4180 DWORD dwMode) = 0;
4182 virtual HRESULT STDMETHODCALLTYPE Save(
4183 LPCOLESTR pszFileName,
4184 BOOL fRemember) = 0;
4186 virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
4187 LPCOLESTR pszFileName) = 0;
4189 virtual HRESULT STDMETHODCALLTYPE GetCurFile(
4190 LPOLESTR* ppszFileName) = 0;
4193 #else
4194 typedef struct IPersistFileVtbl IPersistFileVtbl;
4195 struct IPersistFile {
4196 const IPersistFileVtbl* lpVtbl;
4198 struct IPersistFileVtbl {
4199 BEGIN_INTERFACE
4201 /*** IUnknown methods ***/
4202 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4203 IPersistFile* This,
4204 REFIID riid,
4205 void** ppvObject);
4207 ULONG (STDMETHODCALLTYPE *AddRef)(
4208 IPersistFile* This);
4210 ULONG (STDMETHODCALLTYPE *Release)(
4211 IPersistFile* This);
4213 /*** IPersist methods ***/
4214 HRESULT (STDMETHODCALLTYPE *GetClassID)(
4215 IPersistFile* This,
4216 CLSID* pClassID);
4218 /*** IPersistFile methods ***/
4219 HRESULT (STDMETHODCALLTYPE *IsDirty)(
4220 IPersistFile* This);
4222 HRESULT (STDMETHODCALLTYPE *Load)(
4223 IPersistFile* This,
4224 LPCOLESTR pszFileName,
4225 DWORD dwMode);
4227 HRESULT (STDMETHODCALLTYPE *Save)(
4228 IPersistFile* This,
4229 LPCOLESTR pszFileName,
4230 BOOL fRemember);
4232 HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
4233 IPersistFile* This,
4234 LPCOLESTR pszFileName);
4236 HRESULT (STDMETHODCALLTYPE *GetCurFile)(
4237 IPersistFile* This,
4238 LPOLESTR* ppszFileName);
4240 END_INTERFACE
4243 #ifdef COBJMACROS
4244 /*** IUnknown methods ***/
4245 #define IPersistFile_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4246 #define IPersistFile_AddRef(p) (p)->lpVtbl->AddRef(p)
4247 #define IPersistFile_Release(p) (p)->lpVtbl->Release(p)
4248 /*** IPersist methods ***/
4249 #define IPersistFile_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4250 /*** IPersistFile methods ***/
4251 #define IPersistFile_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4252 #define IPersistFile_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
4253 #define IPersistFile_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4254 #define IPersistFile_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
4255 #define IPersistFile_GetCurFile(p,a) (p)->lpVtbl->GetCurFile(p,a)
4256 #endif
4258 #endif
4260 #define IPersistFile_METHODS \
4261 /*** IUnknown methods ***/ \
4262 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4263 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4264 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4265 /*** IPersist methods ***/ \
4266 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
4267 /*** IPersistFile methods ***/ \
4268 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
4269 STDMETHOD_(HRESULT,Load)(THIS_ LPCOLESTR pszFileName, DWORD dwMode) PURE; \
4270 STDMETHOD_(HRESULT,Save)(THIS_ LPCOLESTR pszFileName, BOOL fRemember) PURE; \
4271 STDMETHOD_(HRESULT,SaveCompleted)(THIS_ LPCOLESTR pszFileName) PURE; \
4272 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName) PURE;
4274 HRESULT CALLBACK IPersistFile_IsDirty_Proxy(
4275 IPersistFile* This);
4276 void __RPC_STUB IPersistFile_IsDirty_Stub(
4277 struct IRpcStubBuffer* This,
4278 struct IRpcChannelBuffer* pRpcChannelBuffer,
4279 PRPC_MESSAGE pRpcMessage,
4280 DWORD* pdwStubPhase);
4281 HRESULT CALLBACK IPersistFile_Load_Proxy(
4282 IPersistFile* This,
4283 LPCOLESTR pszFileName,
4284 DWORD dwMode);
4285 void __RPC_STUB IPersistFile_Load_Stub(
4286 struct IRpcStubBuffer* This,
4287 struct IRpcChannelBuffer* pRpcChannelBuffer,
4288 PRPC_MESSAGE pRpcMessage,
4289 DWORD* pdwStubPhase);
4290 HRESULT CALLBACK IPersistFile_Save_Proxy(
4291 IPersistFile* This,
4292 LPCOLESTR pszFileName,
4293 BOOL fRemember);
4294 void __RPC_STUB IPersistFile_Save_Stub(
4295 struct IRpcStubBuffer* This,
4296 struct IRpcChannelBuffer* pRpcChannelBuffer,
4297 PRPC_MESSAGE pRpcMessage,
4298 DWORD* pdwStubPhase);
4299 HRESULT CALLBACK IPersistFile_SaveCompleted_Proxy(
4300 IPersistFile* This,
4301 LPCOLESTR pszFileName);
4302 void __RPC_STUB IPersistFile_SaveCompleted_Stub(
4303 struct IRpcStubBuffer* This,
4304 struct IRpcChannelBuffer* pRpcChannelBuffer,
4305 PRPC_MESSAGE pRpcMessage,
4306 DWORD* pdwStubPhase);
4307 HRESULT CALLBACK IPersistFile_GetCurFile_Proxy(
4308 IPersistFile* This,
4309 LPOLESTR* ppszFileName);
4310 void __RPC_STUB IPersistFile_GetCurFile_Stub(
4311 struct IRpcStubBuffer* This,
4312 struct IRpcChannelBuffer* pRpcChannelBuffer,
4313 PRPC_MESSAGE pRpcMessage,
4314 DWORD* pdwStubPhase);
4316 #endif /* __IPersistFile_INTERFACE_DEFINED__ */
4318 #ifndef __IPersistStorage_FWD_DEFINED__
4319 #define __IPersistStorage_FWD_DEFINED__
4320 typedef struct IPersistStorage IPersistStorage;
4321 #endif
4323 typedef IPersistStorage *LPPERSISTSTORAGE;
4325 /*****************************************************************************
4326 * IPersistStorage interface
4328 #ifndef __IPersistStorage_INTERFACE_DEFINED__
4329 #define __IPersistStorage_INTERFACE_DEFINED__
4331 DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4332 #if defined(__cplusplus) && !defined(CINTERFACE)
4333 struct IPersistStorage : public IPersist
4335 virtual HRESULT STDMETHODCALLTYPE IsDirty(
4336 ) = 0;
4338 virtual HRESULT STDMETHODCALLTYPE InitNew(
4339 IStorage* pStg) = 0;
4341 virtual HRESULT STDMETHODCALLTYPE Load(
4342 IStorage* pStg) = 0;
4344 virtual HRESULT STDMETHODCALLTYPE Save(
4345 IStorage* pStgSave,
4346 BOOL fSameAsLoad) = 0;
4348 virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
4349 IStorage* pStgNew) = 0;
4351 virtual HRESULT STDMETHODCALLTYPE HandsOffStorage(
4352 ) = 0;
4355 #else
4356 typedef struct IPersistStorageVtbl IPersistStorageVtbl;
4357 struct IPersistStorage {
4358 const IPersistStorageVtbl* lpVtbl;
4360 struct IPersistStorageVtbl {
4361 BEGIN_INTERFACE
4363 /*** IUnknown methods ***/
4364 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4365 IPersistStorage* This,
4366 REFIID riid,
4367 void** ppvObject);
4369 ULONG (STDMETHODCALLTYPE *AddRef)(
4370 IPersistStorage* This);
4372 ULONG (STDMETHODCALLTYPE *Release)(
4373 IPersistStorage* This);
4375 /*** IPersist methods ***/
4376 HRESULT (STDMETHODCALLTYPE *GetClassID)(
4377 IPersistStorage* This,
4378 CLSID* pClassID);
4380 /*** IPersistStorage methods ***/
4381 HRESULT (STDMETHODCALLTYPE *IsDirty)(
4382 IPersistStorage* This);
4384 HRESULT (STDMETHODCALLTYPE *InitNew)(
4385 IPersistStorage* This,
4386 IStorage* pStg);
4388 HRESULT (STDMETHODCALLTYPE *Load)(
4389 IPersistStorage* This,
4390 IStorage* pStg);
4392 HRESULT (STDMETHODCALLTYPE *Save)(
4393 IPersistStorage* This,
4394 IStorage* pStgSave,
4395 BOOL fSameAsLoad);
4397 HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
4398 IPersistStorage* This,
4399 IStorage* pStgNew);
4401 HRESULT (STDMETHODCALLTYPE *HandsOffStorage)(
4402 IPersistStorage* This);
4404 END_INTERFACE
4407 #ifdef COBJMACROS
4408 /*** IUnknown methods ***/
4409 #define IPersistStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4410 #define IPersistStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
4411 #define IPersistStorage_Release(p) (p)->lpVtbl->Release(p)
4412 /*** IPersist methods ***/
4413 #define IPersistStorage_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4414 /*** IPersistStorage methods ***/
4415 #define IPersistStorage_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4416 #define IPersistStorage_InitNew(p,a) (p)->lpVtbl->InitNew(p,a)
4417 #define IPersistStorage_Load(p,a) (p)->lpVtbl->Load(p,a)
4418 #define IPersistStorage_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4419 #define IPersistStorage_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
4420 #define IPersistStorage_HandsOffStorage(p) (p)->lpVtbl->HandsOffStorage(p)
4421 #endif
4423 #endif
4425 #define IPersistStorage_METHODS \
4426 /*** IUnknown methods ***/ \
4427 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4428 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4429 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4430 /*** IPersist methods ***/ \
4431 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
4432 /*** IPersistStorage methods ***/ \
4433 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
4434 STDMETHOD_(HRESULT,InitNew)(THIS_ IStorage* pStg) PURE; \
4435 STDMETHOD_(HRESULT,Load)(THIS_ IStorage* pStg) PURE; \
4436 STDMETHOD_(HRESULT,Save)(THIS_ IStorage* pStgSave, BOOL fSameAsLoad) PURE; \
4437 STDMETHOD_(HRESULT,SaveCompleted)(THIS_ IStorage* pStgNew) PURE; \
4438 STDMETHOD_(HRESULT,HandsOffStorage)(THIS) PURE;
4440 HRESULT CALLBACK IPersistStorage_IsDirty_Proxy(
4441 IPersistStorage* This);
4442 void __RPC_STUB IPersistStorage_IsDirty_Stub(
4443 struct IRpcStubBuffer* This,
4444 struct IRpcChannelBuffer* pRpcChannelBuffer,
4445 PRPC_MESSAGE pRpcMessage,
4446 DWORD* pdwStubPhase);
4447 HRESULT CALLBACK IPersistStorage_InitNew_Proxy(
4448 IPersistStorage* This,
4449 IStorage* pStg);
4450 void __RPC_STUB IPersistStorage_InitNew_Stub(
4451 struct IRpcStubBuffer* This,
4452 struct IRpcChannelBuffer* pRpcChannelBuffer,
4453 PRPC_MESSAGE pRpcMessage,
4454 DWORD* pdwStubPhase);
4455 HRESULT CALLBACK IPersistStorage_Load_Proxy(
4456 IPersistStorage* This,
4457 IStorage* pStg);
4458 void __RPC_STUB IPersistStorage_Load_Stub(
4459 struct IRpcStubBuffer* This,
4460 struct IRpcChannelBuffer* pRpcChannelBuffer,
4461 PRPC_MESSAGE pRpcMessage,
4462 DWORD* pdwStubPhase);
4463 HRESULT CALLBACK IPersistStorage_Save_Proxy(
4464 IPersistStorage* This,
4465 IStorage* pStgSave,
4466 BOOL fSameAsLoad);
4467 void __RPC_STUB IPersistStorage_Save_Stub(
4468 struct IRpcStubBuffer* This,
4469 struct IRpcChannelBuffer* pRpcChannelBuffer,
4470 PRPC_MESSAGE pRpcMessage,
4471 DWORD* pdwStubPhase);
4472 HRESULT CALLBACK IPersistStorage_SaveCompleted_Proxy(
4473 IPersistStorage* This,
4474 IStorage* pStgNew);
4475 void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
4476 struct IRpcStubBuffer* This,
4477 struct IRpcChannelBuffer* pRpcChannelBuffer,
4478 PRPC_MESSAGE pRpcMessage,
4479 DWORD* pdwStubPhase);
4480 HRESULT CALLBACK IPersistStorage_HandsOffStorage_Proxy(
4481 IPersistStorage* This);
4482 void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
4483 struct IRpcStubBuffer* This,
4484 struct IRpcChannelBuffer* pRpcChannelBuffer,
4485 PRPC_MESSAGE pRpcMessage,
4486 DWORD* pdwStubPhase);
4488 #endif /* __IPersistStorage_INTERFACE_DEFINED__ */
4490 #ifndef __IRootStorage_FWD_DEFINED__
4491 #define __IRootStorage_FWD_DEFINED__
4492 typedef struct IRootStorage IRootStorage;
4493 #endif
4495 typedef IRootStorage *LPROOTSTORAGE;
4497 /*****************************************************************************
4498 * IRootStorage interface
4500 #ifndef __IRootStorage_INTERFACE_DEFINED__
4501 #define __IRootStorage_INTERFACE_DEFINED__
4503 DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4504 #if defined(__cplusplus) && !defined(CINTERFACE)
4505 struct IRootStorage : public IUnknown
4507 virtual HRESULT STDMETHODCALLTYPE SwitchToFile(
4508 LPOLESTR pszFile) = 0;
4511 #else
4512 typedef struct IRootStorageVtbl IRootStorageVtbl;
4513 struct IRootStorage {
4514 const IRootStorageVtbl* lpVtbl;
4516 struct IRootStorageVtbl {
4517 BEGIN_INTERFACE
4519 /*** IUnknown methods ***/
4520 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4521 IRootStorage* This,
4522 REFIID riid,
4523 void** ppvObject);
4525 ULONG (STDMETHODCALLTYPE *AddRef)(
4526 IRootStorage* This);
4528 ULONG (STDMETHODCALLTYPE *Release)(
4529 IRootStorage* This);
4531 /*** IRootStorage methods ***/
4532 HRESULT (STDMETHODCALLTYPE *SwitchToFile)(
4533 IRootStorage* This,
4534 LPOLESTR pszFile);
4536 END_INTERFACE
4539 #ifdef COBJMACROS
4540 /*** IUnknown methods ***/
4541 #define IRootStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4542 #define IRootStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
4543 #define IRootStorage_Release(p) (p)->lpVtbl->Release(p)
4544 /*** IRootStorage methods ***/
4545 #define IRootStorage_SwitchToFile(p,a) (p)->lpVtbl->SwitchToFile(p,a)
4546 #endif
4548 #endif
4550 #define IRootStorage_METHODS \
4551 /*** IUnknown methods ***/ \
4552 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4553 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4554 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4555 /*** IRootStorage methods ***/ \
4556 STDMETHOD_(HRESULT,SwitchToFile)(THIS_ LPOLESTR pszFile) PURE;
4558 HRESULT CALLBACK IRootStorage_SwitchToFile_Proxy(
4559 IRootStorage* This,
4560 LPOLESTR pszFile);
4561 void __RPC_STUB IRootStorage_SwitchToFile_Stub(
4562 struct IRpcStubBuffer* This,
4563 struct IRpcChannelBuffer* pRpcChannelBuffer,
4564 PRPC_MESSAGE pRpcMessage,
4565 DWORD* pdwStubPhase);
4567 #endif /* __IRootStorage_INTERFACE_DEFINED__ */
4569 #ifndef __ILockBytes_FWD_DEFINED__
4570 #define __ILockBytes_FWD_DEFINED__
4571 typedef struct ILockBytes ILockBytes;
4572 #endif
4574 typedef ILockBytes *LPLOCKBYTES;
4576 /*****************************************************************************
4577 * ILockBytes interface
4579 #ifndef __ILockBytes_INTERFACE_DEFINED__
4580 #define __ILockBytes_INTERFACE_DEFINED__
4582 DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4583 #if defined(__cplusplus) && !defined(CINTERFACE)
4584 struct ILockBytes : public IUnknown
4586 virtual HRESULT STDMETHODCALLTYPE ReadAt(
4587 ULARGE_INTEGER ulOffset,
4588 void* pv,
4589 ULONG cb,
4590 ULONG* pcbRead) = 0;
4592 virtual HRESULT STDMETHODCALLTYPE WriteAt(
4593 ULARGE_INTEGER ulOffset,
4594 const void* pv,
4595 ULONG cb,
4596 ULONG* pcbWritten) = 0;
4598 virtual HRESULT STDMETHODCALLTYPE Flush(
4599 ) = 0;
4601 virtual HRESULT STDMETHODCALLTYPE SetSize(
4602 ULARGE_INTEGER cb) = 0;
4604 virtual HRESULT STDMETHODCALLTYPE LockRegion(
4605 ULARGE_INTEGER libOffset,
4606 ULARGE_INTEGER cb,
4607 DWORD dwLockType) = 0;
4609 virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
4610 ULARGE_INTEGER libOffset,
4611 ULARGE_INTEGER cb,
4612 DWORD dwLockType) = 0;
4614 virtual HRESULT STDMETHODCALLTYPE Stat(
4615 STATSTG* pstatstg,
4616 DWORD grfStatFlag) = 0;
4619 #else
4620 typedef struct ILockBytesVtbl ILockBytesVtbl;
4621 struct ILockBytes {
4622 const ILockBytesVtbl* lpVtbl;
4624 struct ILockBytesVtbl {
4625 BEGIN_INTERFACE
4627 /*** IUnknown methods ***/
4628 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4629 ILockBytes* This,
4630 REFIID riid,
4631 void** ppvObject);
4633 ULONG (STDMETHODCALLTYPE *AddRef)(
4634 ILockBytes* This);
4636 ULONG (STDMETHODCALLTYPE *Release)(
4637 ILockBytes* This);
4639 /*** ILockBytes methods ***/
4640 HRESULT (STDMETHODCALLTYPE *ReadAt)(
4641 ILockBytes* This,
4642 ULARGE_INTEGER ulOffset,
4643 void* pv,
4644 ULONG cb,
4645 ULONG* pcbRead);
4647 HRESULT (STDMETHODCALLTYPE *WriteAt)(
4648 ILockBytes* This,
4649 ULARGE_INTEGER ulOffset,
4650 const void* pv,
4651 ULONG cb,
4652 ULONG* pcbWritten);
4654 HRESULT (STDMETHODCALLTYPE *Flush)(
4655 ILockBytes* This);
4657 HRESULT (STDMETHODCALLTYPE *SetSize)(
4658 ILockBytes* This,
4659 ULARGE_INTEGER cb);
4661 HRESULT (STDMETHODCALLTYPE *LockRegion)(
4662 ILockBytes* This,
4663 ULARGE_INTEGER libOffset,
4664 ULARGE_INTEGER cb,
4665 DWORD dwLockType);
4667 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4668 ILockBytes* This,
4669 ULARGE_INTEGER libOffset,
4670 ULARGE_INTEGER cb,
4671 DWORD dwLockType);
4673 HRESULT (STDMETHODCALLTYPE *Stat)(
4674 ILockBytes* This,
4675 STATSTG* pstatstg,
4676 DWORD grfStatFlag);
4678 END_INTERFACE
4681 #ifdef COBJMACROS
4682 /*** IUnknown methods ***/
4683 #define ILockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4684 #define ILockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
4685 #define ILockBytes_Release(p) (p)->lpVtbl->Release(p)
4686 /*** ILockBytes methods ***/
4687 #define ILockBytes_ReadAt(p,a,b,c,d) (p)->lpVtbl->ReadAt(p,a,b,c,d)
4688 #define ILockBytes_WriteAt(p,a,b,c,d) (p)->lpVtbl->WriteAt(p,a,b,c,d)
4689 #define ILockBytes_Flush(p) (p)->lpVtbl->Flush(p)
4690 #define ILockBytes_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
4691 #define ILockBytes_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
4692 #define ILockBytes_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
4693 #define ILockBytes_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
4694 #endif
4696 #endif
4698 #define ILockBytes_METHODS \
4699 /*** IUnknown methods ***/ \
4700 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4701 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4702 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4703 /*** ILockBytes methods ***/ \
4704 STDMETHOD_(HRESULT,ReadAt)(THIS_ ULARGE_INTEGER ulOffset, void* pv, ULONG cb, ULONG* pcbRead) PURE; \
4705 STDMETHOD_(HRESULT,WriteAt)(THIS_ ULARGE_INTEGER ulOffset, const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
4706 STDMETHOD_(HRESULT,Flush)(THIS) PURE; \
4707 STDMETHOD_(HRESULT,SetSize)(THIS_ ULARGE_INTEGER cb) PURE; \
4708 STDMETHOD_(HRESULT,LockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
4709 STDMETHOD_(HRESULT,UnlockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
4710 STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE;
4712 HRESULT CALLBACK ILockBytes_RemoteReadAt_Proxy(
4713 ILockBytes* This,
4714 ULARGE_INTEGER ulOffset,
4715 byte* pv,
4716 ULONG cb,
4717 ULONG* pcbRead);
4718 void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
4719 struct IRpcStubBuffer* This,
4720 struct IRpcChannelBuffer* pRpcChannelBuffer,
4721 PRPC_MESSAGE pRpcMessage,
4722 DWORD* pdwStubPhase);
4723 HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
4724 ILockBytes* This,
4725 ULARGE_INTEGER ulOffset,
4726 void* pv,
4727 ULONG cb,
4728 ULONG* pcbRead);
4729 HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
4730 ILockBytes* This,
4731 ULARGE_INTEGER ulOffset,
4732 byte* pv,
4733 ULONG cb,
4734 ULONG* pcbRead);
4735 HRESULT CALLBACK ILockBytes_RemoteWriteAt_Proxy(
4736 ILockBytes* This,
4737 ULARGE_INTEGER ulOffset,
4738 const byte* pv,
4739 ULONG cb,
4740 ULONG* pcbWritten);
4741 void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
4742 struct IRpcStubBuffer* This,
4743 struct IRpcChannelBuffer* pRpcChannelBuffer,
4744 PRPC_MESSAGE pRpcMessage,
4745 DWORD* pdwStubPhase);
4746 HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
4747 ILockBytes* This,
4748 ULARGE_INTEGER ulOffset,
4749 const void* pv,
4750 ULONG cb,
4751 ULONG* pcbWritten);
4752 HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
4753 ILockBytes* This,
4754 ULARGE_INTEGER ulOffset,
4755 const byte* pv,
4756 ULONG cb,
4757 ULONG* pcbWritten);
4758 HRESULT CALLBACK ILockBytes_Flush_Proxy(
4759 ILockBytes* This);
4760 void __RPC_STUB ILockBytes_Flush_Stub(
4761 struct IRpcStubBuffer* This,
4762 struct IRpcChannelBuffer* pRpcChannelBuffer,
4763 PRPC_MESSAGE pRpcMessage,
4764 DWORD* pdwStubPhase);
4765 HRESULT CALLBACK ILockBytes_SetSize_Proxy(
4766 ILockBytes* This,
4767 ULARGE_INTEGER cb);
4768 void __RPC_STUB ILockBytes_SetSize_Stub(
4769 struct IRpcStubBuffer* This,
4770 struct IRpcChannelBuffer* pRpcChannelBuffer,
4771 PRPC_MESSAGE pRpcMessage,
4772 DWORD* pdwStubPhase);
4773 HRESULT CALLBACK ILockBytes_LockRegion_Proxy(
4774 ILockBytes* This,
4775 ULARGE_INTEGER libOffset,
4776 ULARGE_INTEGER cb,
4777 DWORD dwLockType);
4778 void __RPC_STUB ILockBytes_LockRegion_Stub(
4779 struct IRpcStubBuffer* This,
4780 struct IRpcChannelBuffer* pRpcChannelBuffer,
4781 PRPC_MESSAGE pRpcMessage,
4782 DWORD* pdwStubPhase);
4783 HRESULT CALLBACK ILockBytes_UnlockRegion_Proxy(
4784 ILockBytes* This,
4785 ULARGE_INTEGER libOffset,
4786 ULARGE_INTEGER cb,
4787 DWORD dwLockType);
4788 void __RPC_STUB ILockBytes_UnlockRegion_Stub(
4789 struct IRpcStubBuffer* This,
4790 struct IRpcChannelBuffer* pRpcChannelBuffer,
4791 PRPC_MESSAGE pRpcMessage,
4792 DWORD* pdwStubPhase);
4793 HRESULT CALLBACK ILockBytes_Stat_Proxy(
4794 ILockBytes* This,
4795 STATSTG* pstatstg,
4796 DWORD grfStatFlag);
4797 void __RPC_STUB ILockBytes_Stat_Stub(
4798 struct IRpcStubBuffer* This,
4799 struct IRpcChannelBuffer* pRpcChannelBuffer,
4800 PRPC_MESSAGE pRpcMessage,
4801 DWORD* pdwStubPhase);
4803 #endif /* __ILockBytes_INTERFACE_DEFINED__ */
4805 #ifndef __IFillLockBytes_FWD_DEFINED__
4806 #define __IFillLockBytes_FWD_DEFINED__
4807 typedef struct IFillLockBytes IFillLockBytes;
4808 #endif
4810 /*****************************************************************************
4811 * IFillLockBytes interface
4813 #ifndef __IFillLockBytes_INTERFACE_DEFINED__
4814 #define __IFillLockBytes_INTERFACE_DEFINED__
4816 DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
4817 #if defined(__cplusplus) && !defined(CINTERFACE)
4818 struct IFillLockBytes : public IUnknown
4820 virtual HRESULT STDMETHODCALLTYPE FillAppend(
4821 const void* pv,
4822 ULONG cb,
4823 ULONG* pcbWritten) = 0;
4825 virtual HRESULT STDMETHODCALLTYPE FillAt(
4826 ULARGE_INTEGER ulOffset,
4827 const void* pv,
4828 ULONG cb,
4829 ULONG* pcbWritten) = 0;
4831 virtual HRESULT STDMETHODCALLTYPE SetFillSize(
4832 ULARGE_INTEGER ulSize) = 0;
4834 virtual HRESULT STDMETHODCALLTYPE Terminate(
4835 BOOL bCanceled) = 0;
4838 #else
4839 typedef struct IFillLockBytesVtbl IFillLockBytesVtbl;
4840 struct IFillLockBytes {
4841 const IFillLockBytesVtbl* lpVtbl;
4843 struct IFillLockBytesVtbl {
4844 BEGIN_INTERFACE
4846 /*** IUnknown methods ***/
4847 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4848 IFillLockBytes* This,
4849 REFIID riid,
4850 void** ppvObject);
4852 ULONG (STDMETHODCALLTYPE *AddRef)(
4853 IFillLockBytes* This);
4855 ULONG (STDMETHODCALLTYPE *Release)(
4856 IFillLockBytes* This);
4858 /*** IFillLockBytes methods ***/
4859 HRESULT (STDMETHODCALLTYPE *FillAppend)(
4860 IFillLockBytes* This,
4861 const void* pv,
4862 ULONG cb,
4863 ULONG* pcbWritten);
4865 HRESULT (STDMETHODCALLTYPE *FillAt)(
4866 IFillLockBytes* This,
4867 ULARGE_INTEGER ulOffset,
4868 const void* pv,
4869 ULONG cb,
4870 ULONG* pcbWritten);
4872 HRESULT (STDMETHODCALLTYPE *SetFillSize)(
4873 IFillLockBytes* This,
4874 ULARGE_INTEGER ulSize);
4876 HRESULT (STDMETHODCALLTYPE *Terminate)(
4877 IFillLockBytes* This,
4878 BOOL bCanceled);
4880 END_INTERFACE
4883 #ifdef COBJMACROS
4884 /*** IUnknown methods ***/
4885 #define IFillLockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4886 #define IFillLockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
4887 #define IFillLockBytes_Release(p) (p)->lpVtbl->Release(p)
4888 /*** IFillLockBytes methods ***/
4889 #define IFillLockBytes_FillAppend(p,a,b,c) (p)->lpVtbl->FillAppend(p,a,b,c)
4890 #define IFillLockBytes_FillAt(p,a,b,c,d) (p)->lpVtbl->FillAt(p,a,b,c,d)
4891 #define IFillLockBytes_SetFillSize(p,a) (p)->lpVtbl->SetFillSize(p,a)
4892 #define IFillLockBytes_Terminate(p,a) (p)->lpVtbl->Terminate(p,a)
4893 #endif
4895 #endif
4897 #define IFillLockBytes_METHODS \
4898 /*** IUnknown methods ***/ \
4899 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4900 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4901 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4902 /*** IFillLockBytes methods ***/ \
4903 STDMETHOD_(HRESULT,FillAppend)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
4904 STDMETHOD_(HRESULT,FillAt)(THIS_ ULARGE_INTEGER ulOffset, const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
4905 STDMETHOD_(HRESULT,SetFillSize)(THIS_ ULARGE_INTEGER ulSize) PURE; \
4906 STDMETHOD_(HRESULT,Terminate)(THIS_ BOOL bCanceled) PURE;
4908 HRESULT CALLBACK IFillLockBytes_RemoteFillAppend_Proxy(
4909 IFillLockBytes* This,
4910 const byte* pv,
4911 ULONG cb,
4912 ULONG* pcbWritten);
4913 void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
4914 struct IRpcStubBuffer* This,
4915 struct IRpcChannelBuffer* pRpcChannelBuffer,
4916 PRPC_MESSAGE pRpcMessage,
4917 DWORD* pdwStubPhase);
4918 HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
4919 IFillLockBytes* This,
4920 const void* pv,
4921 ULONG cb,
4922 ULONG* pcbWritten);
4923 HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
4924 IFillLockBytes* This,
4925 const byte* pv,
4926 ULONG cb,
4927 ULONG* pcbWritten);
4928 HRESULT CALLBACK IFillLockBytes_RemoteFillAt_Proxy(
4929 IFillLockBytes* This,
4930 ULARGE_INTEGER ulOffset,
4931 const byte* pv,
4932 ULONG cb,
4933 ULONG* pcbWritten);
4934 void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
4935 struct IRpcStubBuffer* This,
4936 struct IRpcChannelBuffer* pRpcChannelBuffer,
4937 PRPC_MESSAGE pRpcMessage,
4938 DWORD* pdwStubPhase);
4939 HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
4940 IFillLockBytes* This,
4941 ULARGE_INTEGER ulOffset,
4942 const void* pv,
4943 ULONG cb,
4944 ULONG* pcbWritten);
4945 HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
4946 IFillLockBytes* This,
4947 ULARGE_INTEGER ulOffset,
4948 const byte* pv,
4949 ULONG cb,
4950 ULONG* pcbWritten);
4951 HRESULT CALLBACK IFillLockBytes_SetFillSize_Proxy(
4952 IFillLockBytes* This,
4953 ULARGE_INTEGER ulSize);
4954 void __RPC_STUB IFillLockBytes_SetFillSize_Stub(
4955 struct IRpcStubBuffer* This,
4956 struct IRpcChannelBuffer* pRpcChannelBuffer,
4957 PRPC_MESSAGE pRpcMessage,
4958 DWORD* pdwStubPhase);
4959 HRESULT CALLBACK IFillLockBytes_Terminate_Proxy(
4960 IFillLockBytes* This,
4961 BOOL bCanceled);
4962 void __RPC_STUB IFillLockBytes_Terminate_Stub(
4963 struct IRpcStubBuffer* This,
4964 struct IRpcChannelBuffer* pRpcChannelBuffer,
4965 PRPC_MESSAGE pRpcMessage,
4966 DWORD* pdwStubPhase);
4968 #endif /* __IFillLockBytes_INTERFACE_DEFINED__ */
4970 #ifndef __IProgressNotify_FWD_DEFINED__
4971 #define __IProgressNotify_FWD_DEFINED__
4972 typedef struct IProgressNotify IProgressNotify;
4973 #endif
4975 /*****************************************************************************
4976 * IProgressNotify interface
4978 #ifndef __IProgressNotify_INTERFACE_DEFINED__
4979 #define __IProgressNotify_INTERFACE_DEFINED__
4981 DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
4982 #if defined(__cplusplus) && !defined(CINTERFACE)
4983 struct IProgressNotify : public IUnknown
4985 virtual HRESULT STDMETHODCALLTYPE OnProgress(
4986 DWORD dwProgressCurrent,
4987 DWORD dwProgressMaximum,
4988 BOOL fAccurate,
4989 BOOL fOwner) = 0;
4992 #else
4993 typedef struct IProgressNotifyVtbl IProgressNotifyVtbl;
4994 struct IProgressNotify {
4995 const IProgressNotifyVtbl* lpVtbl;
4997 struct IProgressNotifyVtbl {
4998 BEGIN_INTERFACE
5000 /*** IUnknown methods ***/
5001 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5002 IProgressNotify* This,
5003 REFIID riid,
5004 void** ppvObject);
5006 ULONG (STDMETHODCALLTYPE *AddRef)(
5007 IProgressNotify* This);
5009 ULONG (STDMETHODCALLTYPE *Release)(
5010 IProgressNotify* This);
5012 /*** IProgressNotify methods ***/
5013 HRESULT (STDMETHODCALLTYPE *OnProgress)(
5014 IProgressNotify* This,
5015 DWORD dwProgressCurrent,
5016 DWORD dwProgressMaximum,
5017 BOOL fAccurate,
5018 BOOL fOwner);
5020 END_INTERFACE
5023 #ifdef COBJMACROS
5024 /*** IUnknown methods ***/
5025 #define IProgressNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5026 #define IProgressNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
5027 #define IProgressNotify_Release(p) (p)->lpVtbl->Release(p)
5028 /*** IProgressNotify methods ***/
5029 #define IProgressNotify_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d)
5030 #endif
5032 #endif
5034 #define IProgressNotify_METHODS \
5035 /*** IUnknown methods ***/ \
5036 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5037 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5038 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5039 /*** IProgressNotify methods ***/ \
5040 STDMETHOD_(HRESULT,OnProgress)(THIS_ DWORD dwProgressCurrent, DWORD dwProgressMaximum, BOOL fAccurate, BOOL fOwner) PURE;
5042 HRESULT CALLBACK IProgressNotify_OnProgress_Proxy(
5043 IProgressNotify* This,
5044 DWORD dwProgressCurrent,
5045 DWORD dwProgressMaximum,
5046 BOOL fAccurate,
5047 BOOL fOwner);
5048 void __RPC_STUB IProgressNotify_OnProgress_Stub(
5049 struct IRpcStubBuffer* This,
5050 struct IRpcChannelBuffer* pRpcChannelBuffer,
5051 PRPC_MESSAGE pRpcMessage,
5052 DWORD* pdwStubPhase);
5054 #endif /* __IProgressNotify_INTERFACE_DEFINED__ */
5056 #ifndef __ILayoutStorage_FWD_DEFINED__
5057 #define __ILayoutStorage_FWD_DEFINED__
5058 typedef struct ILayoutStorage ILayoutStorage;
5059 #endif
5061 typedef struct tagStorageLayout {
5062 DWORD LayoutType;
5063 OLECHAR *pwcsElementName;
5064 LARGE_INTEGER cOffset;
5065 LARGE_INTEGER cBytes;
5066 } StorageLayout;
5068 /*****************************************************************************
5069 * ILayoutStorage interface
5071 #ifndef __ILayoutStorage_INTERFACE_DEFINED__
5072 #define __ILayoutStorage_INTERFACE_DEFINED__
5074 DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
5075 #if defined(__cplusplus) && !defined(CINTERFACE)
5076 struct ILayoutStorage : public IUnknown
5078 virtual HRESULT STDMETHODCALLTYPE LayoutScript(
5079 StorageLayout* pStorageLayout,
5080 DWORD nEntries,
5081 DWORD glfInterleavedFlag) = 0;
5083 virtual HRESULT STDMETHODCALLTYPE BeginMonitor(
5084 ) = 0;
5086 virtual HRESULT STDMETHODCALLTYPE EndMonitor(
5087 ) = 0;
5089 virtual HRESULT STDMETHODCALLTYPE ReLayoutDocfile(
5090 OLECHAR* pwcsNewDfName) = 0;
5092 virtual HRESULT STDMETHODCALLTYPE ReLayoutDocfileOnILockBytes(
5093 ILockBytes* pILockBytes) = 0;
5096 #else
5097 typedef struct ILayoutStorageVtbl ILayoutStorageVtbl;
5098 struct ILayoutStorage {
5099 const ILayoutStorageVtbl* lpVtbl;
5101 struct ILayoutStorageVtbl {
5102 BEGIN_INTERFACE
5104 /*** IUnknown methods ***/
5105 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5106 ILayoutStorage* This,
5107 REFIID riid,
5108 void** ppvObject);
5110 ULONG (STDMETHODCALLTYPE *AddRef)(
5111 ILayoutStorage* This);
5113 ULONG (STDMETHODCALLTYPE *Release)(
5114 ILayoutStorage* This);
5116 /*** ILayoutStorage methods ***/
5117 HRESULT (STDMETHODCALLTYPE *LayoutScript)(
5118 ILayoutStorage* This,
5119 StorageLayout* pStorageLayout,
5120 DWORD nEntries,
5121 DWORD glfInterleavedFlag);
5123 HRESULT (STDMETHODCALLTYPE *BeginMonitor)(
5124 ILayoutStorage* This);
5126 HRESULT (STDMETHODCALLTYPE *EndMonitor)(
5127 ILayoutStorage* This);
5129 HRESULT (STDMETHODCALLTYPE *ReLayoutDocfile)(
5130 ILayoutStorage* This,
5131 OLECHAR* pwcsNewDfName);
5133 HRESULT (STDMETHODCALLTYPE *ReLayoutDocfileOnILockBytes)(
5134 ILayoutStorage* This,
5135 ILockBytes* pILockBytes);
5137 END_INTERFACE
5140 #ifdef COBJMACROS
5141 /*** IUnknown methods ***/
5142 #define ILayoutStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5143 #define ILayoutStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
5144 #define ILayoutStorage_Release(p) (p)->lpVtbl->Release(p)
5145 /*** ILayoutStorage methods ***/
5146 #define ILayoutStorage_LayoutScript(p,a,b,c) (p)->lpVtbl->LayoutScript(p,a,b,c)
5147 #define ILayoutStorage_BeginMonitor(p) (p)->lpVtbl->BeginMonitor(p)
5148 #define ILayoutStorage_EndMonitor(p) (p)->lpVtbl->EndMonitor(p)
5149 #define ILayoutStorage_ReLayoutDocfile(p,a) (p)->lpVtbl->ReLayoutDocfile(p,a)
5150 #define ILayoutStorage_ReLayoutDocfileOnILockBytes(p,a) (p)->lpVtbl->ReLayoutDocfileOnILockBytes(p,a)
5151 #endif
5153 #endif
5155 #define ILayoutStorage_METHODS \
5156 /*** IUnknown methods ***/ \
5157 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5158 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5159 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5160 /*** ILayoutStorage methods ***/ \
5161 STDMETHOD_(HRESULT,LayoutScript)(THIS_ StorageLayout* pStorageLayout, DWORD nEntries, DWORD glfInterleavedFlag) PURE; \
5162 STDMETHOD_(HRESULT,BeginMonitor)(THIS) PURE; \
5163 STDMETHOD_(HRESULT,EndMonitor)(THIS) PURE; \
5164 STDMETHOD_(HRESULT,ReLayoutDocfile)(THIS_ OLECHAR* pwcsNewDfName) PURE; \
5165 STDMETHOD_(HRESULT,ReLayoutDocfileOnILockBytes)(THIS_ ILockBytes* pILockBytes) PURE;
5167 HRESULT CALLBACK ILayoutStorage_LayoutScript_Proxy(
5168 ILayoutStorage* This,
5169 StorageLayout* pStorageLayout,
5170 DWORD nEntries,
5171 DWORD glfInterleavedFlag);
5172 void __RPC_STUB ILayoutStorage_LayoutScript_Stub(
5173 struct IRpcStubBuffer* This,
5174 struct IRpcChannelBuffer* pRpcChannelBuffer,
5175 PRPC_MESSAGE pRpcMessage,
5176 DWORD* pdwStubPhase);
5177 HRESULT CALLBACK ILayoutStorage_BeginMonitor_Proxy(
5178 ILayoutStorage* This);
5179 void __RPC_STUB ILayoutStorage_BeginMonitor_Stub(
5180 struct IRpcStubBuffer* This,
5181 struct IRpcChannelBuffer* pRpcChannelBuffer,
5182 PRPC_MESSAGE pRpcMessage,
5183 DWORD* pdwStubPhase);
5184 HRESULT CALLBACK ILayoutStorage_EndMonitor_Proxy(
5185 ILayoutStorage* This);
5186 void __RPC_STUB ILayoutStorage_EndMonitor_Stub(
5187 struct IRpcStubBuffer* This,
5188 struct IRpcChannelBuffer* pRpcChannelBuffer,
5189 PRPC_MESSAGE pRpcMessage,
5190 DWORD* pdwStubPhase);
5191 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfile_Proxy(
5192 ILayoutStorage* This,
5193 OLECHAR* pwcsNewDfName);
5194 void __RPC_STUB ILayoutStorage_ReLayoutDocfile_Stub(
5195 struct IRpcStubBuffer* This,
5196 struct IRpcChannelBuffer* pRpcChannelBuffer,
5197 PRPC_MESSAGE pRpcMessage,
5198 DWORD* pdwStubPhase);
5199 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfileOnILockBytes_Proxy(
5200 ILayoutStorage* This,
5201 ILockBytes* pILockBytes);
5202 void __RPC_STUB ILayoutStorage_ReLayoutDocfileOnILockBytes_Stub(
5203 struct IRpcStubBuffer* This,
5204 struct IRpcChannelBuffer* pRpcChannelBuffer,
5205 PRPC_MESSAGE pRpcMessage,
5206 DWORD* pdwStubPhase);
5208 #endif /* __ILayoutStorage_INTERFACE_DEFINED__ */
5210 #ifndef __IEnumFORMATETC_FWD_DEFINED__
5211 #define __IEnumFORMATETC_FWD_DEFINED__
5212 typedef struct IEnumFORMATETC IEnumFORMATETC;
5213 #endif
5215 typedef IEnumFORMATETC *LPENUMFORMATETC;
5217 typedef struct tagDVTARGETDEVICE {
5218 DWORD tdSize;
5219 WORD tdDriverNameOffset;
5220 WORD tdDeviceNameOffset;
5221 WORD tdPortNameOffset;
5222 WORD tdExtDevmodeOffset;
5223 BYTE tdData[1];
5224 } DVTARGETDEVICE;
5226 typedef CLIPFORMAT *LPCLIPFORMAT;
5228 typedef struct tagFORMATETC {
5229 CLIPFORMAT cfFormat;
5230 DVTARGETDEVICE *ptd;
5231 DWORD dwAspect;
5232 LONG lindex;
5233 DWORD tymed;
5234 } FORMATETC, *LPFORMATETC;
5236 /*****************************************************************************
5237 * IEnumFORMATETC interface
5239 #ifndef __IEnumFORMATETC_INTERFACE_DEFINED__
5240 #define __IEnumFORMATETC_INTERFACE_DEFINED__
5242 DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5243 #if defined(__cplusplus) && !defined(CINTERFACE)
5244 struct IEnumFORMATETC : public IUnknown
5246 virtual HRESULT STDMETHODCALLTYPE Next(
5247 ULONG celt,
5248 FORMATETC* rgelt,
5249 ULONG* pceltFetched) = 0;
5251 virtual HRESULT STDMETHODCALLTYPE Skip(
5252 ULONG celt) = 0;
5254 virtual HRESULT STDMETHODCALLTYPE Reset(
5255 ) = 0;
5257 virtual HRESULT STDMETHODCALLTYPE Clone(
5258 IEnumFORMATETC** ppenum) = 0;
5261 #else
5262 typedef struct IEnumFORMATETCVtbl IEnumFORMATETCVtbl;
5263 struct IEnumFORMATETC {
5264 const IEnumFORMATETCVtbl* lpVtbl;
5266 struct IEnumFORMATETCVtbl {
5267 BEGIN_INTERFACE
5269 /*** IUnknown methods ***/
5270 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5271 IEnumFORMATETC* This,
5272 REFIID riid,
5273 void** ppvObject);
5275 ULONG (STDMETHODCALLTYPE *AddRef)(
5276 IEnumFORMATETC* This);
5278 ULONG (STDMETHODCALLTYPE *Release)(
5279 IEnumFORMATETC* This);
5281 /*** IEnumFORMATETC methods ***/
5282 HRESULT (STDMETHODCALLTYPE *Next)(
5283 IEnumFORMATETC* This,
5284 ULONG celt,
5285 FORMATETC* rgelt,
5286 ULONG* pceltFetched);
5288 HRESULT (STDMETHODCALLTYPE *Skip)(
5289 IEnumFORMATETC* This,
5290 ULONG celt);
5292 HRESULT (STDMETHODCALLTYPE *Reset)(
5293 IEnumFORMATETC* This);
5295 HRESULT (STDMETHODCALLTYPE *Clone)(
5296 IEnumFORMATETC* This,
5297 IEnumFORMATETC** ppenum);
5299 END_INTERFACE
5302 #ifdef COBJMACROS
5303 /*** IUnknown methods ***/
5304 #define IEnumFORMATETC_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5305 #define IEnumFORMATETC_AddRef(p) (p)->lpVtbl->AddRef(p)
5306 #define IEnumFORMATETC_Release(p) (p)->lpVtbl->Release(p)
5307 /*** IEnumFORMATETC methods ***/
5308 #define IEnumFORMATETC_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5309 #define IEnumFORMATETC_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5310 #define IEnumFORMATETC_Reset(p) (p)->lpVtbl->Reset(p)
5311 #define IEnumFORMATETC_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5312 #endif
5314 #endif
5316 #define IEnumFORMATETC_METHODS \
5317 /*** IUnknown methods ***/ \
5318 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5319 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5320 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5321 /*** IEnumFORMATETC methods ***/ \
5322 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, FORMATETC* rgelt, ULONG* pceltFetched) PURE; \
5323 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
5324 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
5325 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumFORMATETC** ppenum) PURE;
5327 HRESULT CALLBACK IEnumFORMATETC_RemoteNext_Proxy(
5328 IEnumFORMATETC* This,
5329 ULONG celt,
5330 FORMATETC* rgelt,
5331 ULONG* pceltFetched);
5332 void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
5333 struct IRpcStubBuffer* This,
5334 struct IRpcChannelBuffer* pRpcChannelBuffer,
5335 PRPC_MESSAGE pRpcMessage,
5336 DWORD* pdwStubPhase);
5337 HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
5338 IEnumFORMATETC* This,
5339 ULONG celt,
5340 FORMATETC* rgelt,
5341 ULONG* pceltFetched);
5342 HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
5343 IEnumFORMATETC* This,
5344 ULONG celt,
5345 FORMATETC* rgelt,
5346 ULONG* pceltFetched);
5347 HRESULT CALLBACK IEnumFORMATETC_Skip_Proxy(
5348 IEnumFORMATETC* This,
5349 ULONG celt);
5350 void __RPC_STUB IEnumFORMATETC_Skip_Stub(
5351 struct IRpcStubBuffer* This,
5352 struct IRpcChannelBuffer* pRpcChannelBuffer,
5353 PRPC_MESSAGE pRpcMessage,
5354 DWORD* pdwStubPhase);
5355 HRESULT CALLBACK IEnumFORMATETC_Reset_Proxy(
5356 IEnumFORMATETC* This);
5357 void __RPC_STUB IEnumFORMATETC_Reset_Stub(
5358 struct IRpcStubBuffer* This,
5359 struct IRpcChannelBuffer* pRpcChannelBuffer,
5360 PRPC_MESSAGE pRpcMessage,
5361 DWORD* pdwStubPhase);
5362 HRESULT CALLBACK IEnumFORMATETC_Clone_Proxy(
5363 IEnumFORMATETC* This,
5364 IEnumFORMATETC** ppenum);
5365 void __RPC_STUB IEnumFORMATETC_Clone_Stub(
5366 struct IRpcStubBuffer* This,
5367 struct IRpcChannelBuffer* pRpcChannelBuffer,
5368 PRPC_MESSAGE pRpcMessage,
5369 DWORD* pdwStubPhase);
5371 #endif /* __IEnumFORMATETC_INTERFACE_DEFINED__ */
5373 #ifndef __IEnumSTATDATA_FWD_DEFINED__
5374 #define __IEnumSTATDATA_FWD_DEFINED__
5375 typedef struct IEnumSTATDATA IEnumSTATDATA;
5376 #endif
5378 typedef IEnumSTATDATA *LPENUMSTATDATA;
5380 typedef enum tagADVF {
5381 ADVF_NODATA = 1,
5382 ADVF_PRIMEFIRST = 2,
5383 ADVF_ONLYONCE = 4,
5384 ADVF_DATAONSTOP = 64,
5385 ADVFCACHE_NOHANDLER = 8,
5386 ADVFCACHE_FORCEBUILTIN = 16,
5387 ADVFCACHE_ONSAVE = 32
5388 } ADVF;
5390 typedef struct tagSTATDATA {
5391 FORMATETC formatetc;
5392 DWORD advf;
5393 IAdviseSink *pAdvSink;
5394 DWORD dwConnection;
5395 } STATDATA, *LPSTATDATA;
5397 /*****************************************************************************
5398 * IEnumSTATDATA interface
5400 #ifndef __IEnumSTATDATA_INTERFACE_DEFINED__
5401 #define __IEnumSTATDATA_INTERFACE_DEFINED__
5403 DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5404 #if defined(__cplusplus) && !defined(CINTERFACE)
5405 struct IEnumSTATDATA : public IUnknown
5407 virtual HRESULT STDMETHODCALLTYPE Next(
5408 ULONG celt,
5409 STATDATA* rgelt,
5410 ULONG* pceltFetched) = 0;
5412 virtual HRESULT STDMETHODCALLTYPE Skip(
5413 ULONG celt) = 0;
5415 virtual HRESULT STDMETHODCALLTYPE Reset(
5416 ) = 0;
5418 virtual HRESULT STDMETHODCALLTYPE Clone(
5419 IEnumSTATDATA** ppenum) = 0;
5422 #else
5423 typedef struct IEnumSTATDATAVtbl IEnumSTATDATAVtbl;
5424 struct IEnumSTATDATA {
5425 const IEnumSTATDATAVtbl* lpVtbl;
5427 struct IEnumSTATDATAVtbl {
5428 BEGIN_INTERFACE
5430 /*** IUnknown methods ***/
5431 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5432 IEnumSTATDATA* This,
5433 REFIID riid,
5434 void** ppvObject);
5436 ULONG (STDMETHODCALLTYPE *AddRef)(
5437 IEnumSTATDATA* This);
5439 ULONG (STDMETHODCALLTYPE *Release)(
5440 IEnumSTATDATA* This);
5442 /*** IEnumSTATDATA methods ***/
5443 HRESULT (STDMETHODCALLTYPE *Next)(
5444 IEnumSTATDATA* This,
5445 ULONG celt,
5446 STATDATA* rgelt,
5447 ULONG* pceltFetched);
5449 HRESULT (STDMETHODCALLTYPE *Skip)(
5450 IEnumSTATDATA* This,
5451 ULONG celt);
5453 HRESULT (STDMETHODCALLTYPE *Reset)(
5454 IEnumSTATDATA* This);
5456 HRESULT (STDMETHODCALLTYPE *Clone)(
5457 IEnumSTATDATA* This,
5458 IEnumSTATDATA** ppenum);
5460 END_INTERFACE
5463 #ifdef COBJMACROS
5464 /*** IUnknown methods ***/
5465 #define IEnumSTATDATA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5466 #define IEnumSTATDATA_AddRef(p) (p)->lpVtbl->AddRef(p)
5467 #define IEnumSTATDATA_Release(p) (p)->lpVtbl->Release(p)
5468 /*** IEnumSTATDATA methods ***/
5469 #define IEnumSTATDATA_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5470 #define IEnumSTATDATA_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5471 #define IEnumSTATDATA_Reset(p) (p)->lpVtbl->Reset(p)
5472 #define IEnumSTATDATA_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5473 #endif
5475 #endif
5477 #define IEnumSTATDATA_METHODS \
5478 /*** IUnknown methods ***/ \
5479 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5480 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5481 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5482 /*** IEnumSTATDATA methods ***/ \
5483 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATDATA* rgelt, ULONG* pceltFetched) PURE; \
5484 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
5485 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
5486 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATDATA** ppenum) PURE;
5488 HRESULT CALLBACK IEnumSTATDATA_RemoteNext_Proxy(
5489 IEnumSTATDATA* This,
5490 ULONG celt,
5491 STATDATA* rgelt,
5492 ULONG* pceltFetched);
5493 void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
5494 struct IRpcStubBuffer* This,
5495 struct IRpcChannelBuffer* pRpcChannelBuffer,
5496 PRPC_MESSAGE pRpcMessage,
5497 DWORD* pdwStubPhase);
5498 HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
5499 IEnumSTATDATA* This,
5500 ULONG celt,
5501 STATDATA* rgelt,
5502 ULONG* pceltFetched);
5503 HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
5504 IEnumSTATDATA* This,
5505 ULONG celt,
5506 STATDATA* rgelt,
5507 ULONG* pceltFetched);
5508 HRESULT CALLBACK IEnumSTATDATA_Skip_Proxy(
5509 IEnumSTATDATA* This,
5510 ULONG celt);
5511 void __RPC_STUB IEnumSTATDATA_Skip_Stub(
5512 struct IRpcStubBuffer* This,
5513 struct IRpcChannelBuffer* pRpcChannelBuffer,
5514 PRPC_MESSAGE pRpcMessage,
5515 DWORD* pdwStubPhase);
5516 HRESULT CALLBACK IEnumSTATDATA_Reset_Proxy(
5517 IEnumSTATDATA* This);
5518 void __RPC_STUB IEnumSTATDATA_Reset_Stub(
5519 struct IRpcStubBuffer* This,
5520 struct IRpcChannelBuffer* pRpcChannelBuffer,
5521 PRPC_MESSAGE pRpcMessage,
5522 DWORD* pdwStubPhase);
5523 HRESULT CALLBACK IEnumSTATDATA_Clone_Proxy(
5524 IEnumSTATDATA* This,
5525 IEnumSTATDATA** ppenum);
5526 void __RPC_STUB IEnumSTATDATA_Clone_Stub(
5527 struct IRpcStubBuffer* This,
5528 struct IRpcChannelBuffer* pRpcChannelBuffer,
5529 PRPC_MESSAGE pRpcMessage,
5530 DWORD* pdwStubPhase);
5532 #endif /* __IEnumSTATDATA_INTERFACE_DEFINED__ */
5534 typedef IAdviseSink *LPADVISESINK;
5536 typedef enum tagTYMED {
5537 TYMED_HGLOBAL = 1,
5538 TYMED_FILE = 2,
5539 TYMED_ISTREAM = 4,
5540 TYMED_ISTORAGE = 8,
5541 TYMED_GDI = 16,
5542 TYMED_MFPICT = 32,
5543 TYMED_ENHMF = 64,
5544 TYMED_NULL = 0
5545 } TYMED;
5547 typedef struct tagRemSTGMEDIUM {
5548 DWORD tymed;
5549 DWORD dwHandleType;
5550 unsigned long pData;
5551 unsigned long pUnkForRelease;
5552 unsigned long cbData;
5553 byte data[1];
5554 } RemSTGMEDIUM;
5556 typedef struct tagSTGMEDIUM {
5557 DWORD tymed;
5558 union {
5559 HBITMAP hBitmap;
5560 HMETAFILEPICT hMetaFilePict;
5561 HENHMETAFILE hEnhMetaFile;
5562 HGLOBAL hGlobal;
5563 LPOLESTR lpszFileName;
5564 IStream *pstm;
5565 IStorage *pstg;
5566 } DUMMYUNIONNAME;
5567 IUnknown *pUnkForRelease;
5568 } uSTGMEDIUM;
5570 typedef struct _GDI_OBJECT {
5571 DWORD ObjectType;
5572 union {
5573 wireHBITMAP hBitmap;
5574 wireHPALETTE hPalette;
5575 wireHGLOBAL hGeneric;
5576 } u;
5577 } GDI_OBJECT;
5579 typedef struct _userSTGMEDIUM {
5580 struct {
5581 DWORD tymed;
5582 union {
5583 wireHMETAFILEPICT hMetaFilePict;
5584 wireHENHMETAFILE hHEnhMetaFile;
5585 GDI_OBJECT *hGdiHandle;
5586 wireHGLOBAL hGlobal;
5587 LPOLESTR lpszFileName;
5588 BYTE_BLOB *pstm;
5589 BYTE_BLOB *pstg;
5590 } u;
5591 } DUMMYSTRUCTNAME;
5592 IUnknown *pUnkForRelease;
5593 } userSTGMEDIUM;
5595 typedef userSTGMEDIUM *wireSTGMEDIUM;
5597 typedef uSTGMEDIUM STGMEDIUM;
5598 unsigned long __RPC_USER STGMEDIUM_UserSize (unsigned long *, unsigned long, STGMEDIUM *);
5599 unsigned char * __RPC_USER STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, STGMEDIUM *);
5600 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, STGMEDIUM *);
5601 void __RPC_USER STGMEDIUM_UserFree (unsigned long *, STGMEDIUM *);
5603 typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
5605 typedef STGMEDIUM ASYNC_STGMEDIUM;
5606 unsigned long __RPC_USER ASYNC_STGMEDIUM_UserSize (unsigned long *, unsigned long, ASYNC_STGMEDIUM *);
5607 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, ASYNC_STGMEDIUM *);
5608 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, ASYNC_STGMEDIUM *);
5609 void __RPC_USER ASYNC_STGMEDIUM_UserFree (unsigned long *, ASYNC_STGMEDIUM *);
5611 typedef STGMEDIUM *LPSTGMEDIUM;
5613 typedef struct _userFLAG_STGMEDIUM {
5614 long ContextFlags;
5615 long fPassOwnership;
5616 userSTGMEDIUM Stgmed;
5617 } userFLAG_STGMEDIUM;
5619 typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
5621 typedef struct _FLAG_STGMEDIUM {
5622 long ContextFlags;
5623 long fPassOwnership;
5624 STGMEDIUM Stgmed;
5625 } FLAG_STGMEDIUM;
5626 unsigned long __RPC_USER FLAG_STGMEDIUM_UserSize (unsigned long *, unsigned long, FLAG_STGMEDIUM *);
5627 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, FLAG_STGMEDIUM *);
5628 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, FLAG_STGMEDIUM *);
5629 void __RPC_USER FLAG_STGMEDIUM_UserFree (unsigned long *, FLAG_STGMEDIUM *);
5631 /*****************************************************************************
5632 * IAdviseSink interface
5634 #ifndef __IAdviseSink_INTERFACE_DEFINED__
5635 #define __IAdviseSink_INTERFACE_DEFINED__
5637 DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5638 #if defined(__cplusplus) && !defined(CINTERFACE)
5639 struct IAdviseSink : public IUnknown
5641 virtual void STDMETHODCALLTYPE OnDataChange(
5642 FORMATETC* pFormatetc,
5643 STGMEDIUM* pStgmed) = 0;
5645 virtual void STDMETHODCALLTYPE OnViewChange(
5646 DWORD dwAspect,
5647 LONG lindex) = 0;
5649 virtual void STDMETHODCALLTYPE OnRename(
5650 IMoniker* pmk) = 0;
5652 virtual void STDMETHODCALLTYPE OnSave(
5653 ) = 0;
5655 virtual void STDMETHODCALLTYPE OnClose(
5656 ) = 0;
5659 #else
5660 typedef struct IAdviseSinkVtbl IAdviseSinkVtbl;
5661 struct IAdviseSink {
5662 const IAdviseSinkVtbl* lpVtbl;
5664 struct IAdviseSinkVtbl {
5665 BEGIN_INTERFACE
5667 /*** IUnknown methods ***/
5668 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5669 IAdviseSink* This,
5670 REFIID riid,
5671 void** ppvObject);
5673 ULONG (STDMETHODCALLTYPE *AddRef)(
5674 IAdviseSink* This);
5676 ULONG (STDMETHODCALLTYPE *Release)(
5677 IAdviseSink* This);
5679 /*** IAdviseSink methods ***/
5680 void (STDMETHODCALLTYPE *OnDataChange)(
5681 IAdviseSink* This,
5682 FORMATETC* pFormatetc,
5683 STGMEDIUM* pStgmed);
5685 void (STDMETHODCALLTYPE *OnViewChange)(
5686 IAdviseSink* This,
5687 DWORD dwAspect,
5688 LONG lindex);
5690 void (STDMETHODCALLTYPE *OnRename)(
5691 IAdviseSink* This,
5692 IMoniker* pmk);
5694 void (STDMETHODCALLTYPE *OnSave)(
5695 IAdviseSink* This);
5697 void (STDMETHODCALLTYPE *OnClose)(
5698 IAdviseSink* This);
5700 END_INTERFACE
5703 #ifdef COBJMACROS
5704 /*** IUnknown methods ***/
5705 #define IAdviseSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5706 #define IAdviseSink_AddRef(p) (p)->lpVtbl->AddRef(p)
5707 #define IAdviseSink_Release(p) (p)->lpVtbl->Release(p)
5708 /*** IAdviseSink methods ***/
5709 #define IAdviseSink_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
5710 #define IAdviseSink_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
5711 #define IAdviseSink_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
5712 #define IAdviseSink_OnSave(p) (p)->lpVtbl->OnSave(p)
5713 #define IAdviseSink_OnClose(p) (p)->lpVtbl->OnClose(p)
5714 #endif
5716 #endif
5718 #define IAdviseSink_METHODS \
5719 /*** IUnknown methods ***/ \
5720 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5721 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5722 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5723 /*** IAdviseSink methods ***/ \
5724 STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC* pFormatetc, STGMEDIUM* pStgmed) PURE; \
5725 STDMETHOD_(void,OnViewChange)(THIS_ DWORD dwAspect, LONG lindex) PURE; \
5726 STDMETHOD_(void,OnRename)(THIS_ IMoniker* pmk) PURE; \
5727 STDMETHOD_(void,OnSave)(THIS) PURE; \
5728 STDMETHOD_(void,OnClose)(THIS) PURE;
5730 HRESULT CALLBACK IAdviseSink_RemoteOnDataChange_Proxy(
5731 IAdviseSink* This,
5732 IAsyncManager** ppIAM,
5733 FORMATETC* pFormatetc,
5734 ASYNC_STGMEDIUM* pStgmed);
5735 void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
5736 struct IRpcStubBuffer* This,
5737 struct IRpcChannelBuffer* pRpcChannelBuffer,
5738 PRPC_MESSAGE pRpcMessage,
5739 DWORD* pdwStubPhase);
5740 void CALLBACK IAdviseSink_OnDataChange_Proxy(
5741 IAdviseSink* This,
5742 FORMATETC* pFormatetc,
5743 STGMEDIUM* pStgmed);
5744 HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
5745 IAdviseSink* This,
5746 IAsyncManager** ppIAM,
5747 FORMATETC* pFormatetc,
5748 ASYNC_STGMEDIUM* pStgmed);
5749 HRESULT CALLBACK IAdviseSink_RemoteOnViewChange_Proxy(
5750 IAdviseSink* This,
5751 IAsyncManager** ppIAM,
5752 DWORD dwAspect,
5753 LONG lindex);
5754 void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
5755 struct IRpcStubBuffer* This,
5756 struct IRpcChannelBuffer* pRpcChannelBuffer,
5757 PRPC_MESSAGE pRpcMessage,
5758 DWORD* pdwStubPhase);
5759 void CALLBACK IAdviseSink_OnViewChange_Proxy(
5760 IAdviseSink* This,
5761 DWORD dwAspect,
5762 LONG lindex);
5763 HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
5764 IAdviseSink* This,
5765 IAsyncManager** ppIAM,
5766 DWORD dwAspect,
5767 LONG lindex);
5768 HRESULT CALLBACK IAdviseSink_RemoteOnRename_Proxy(
5769 IAdviseSink* This,
5770 IAsyncManager** ppIAM,
5771 IMoniker* pmk);
5772 void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
5773 struct IRpcStubBuffer* This,
5774 struct IRpcChannelBuffer* pRpcChannelBuffer,
5775 PRPC_MESSAGE pRpcMessage,
5776 DWORD* pdwStubPhase);
5777 void CALLBACK IAdviseSink_OnRename_Proxy(
5778 IAdviseSink* This,
5779 IMoniker* pmk);
5780 HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
5781 IAdviseSink* This,
5782 IAsyncManager** ppIAM,
5783 IMoniker* pmk);
5784 HRESULT CALLBACK IAdviseSink_RemoteOnSave_Proxy(
5785 IAdviseSink* This,
5786 IAsyncManager** ppIAM);
5787 void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
5788 struct IRpcStubBuffer* This,
5789 struct IRpcChannelBuffer* pRpcChannelBuffer,
5790 PRPC_MESSAGE pRpcMessage,
5791 DWORD* pdwStubPhase);
5792 void CALLBACK IAdviseSink_OnSave_Proxy(
5793 IAdviseSink* This);
5794 HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
5795 IAdviseSink* This,
5796 IAsyncManager** ppIAM);
5797 HRESULT CALLBACK IAdviseSink_RemoteOnClose_Proxy(
5798 IAdviseSink* This);
5799 void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
5800 struct IRpcStubBuffer* This,
5801 struct IRpcChannelBuffer* pRpcChannelBuffer,
5802 PRPC_MESSAGE pRpcMessage,
5803 DWORD* pdwStubPhase);
5804 void CALLBACK IAdviseSink_OnClose_Proxy(
5805 IAdviseSink* This);
5806 HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
5807 IAdviseSink* This);
5809 #endif /* __IAdviseSink_INTERFACE_DEFINED__ */
5811 #ifndef __IAdviseSink2_FWD_DEFINED__
5812 #define __IAdviseSink2_FWD_DEFINED__
5813 typedef struct IAdviseSink2 IAdviseSink2;
5814 #endif
5816 typedef IAdviseSink2 *LPADVISESINK2;
5818 /*****************************************************************************
5819 * IAdviseSink2 interface
5821 #ifndef __IAdviseSink2_INTERFACE_DEFINED__
5822 #define __IAdviseSink2_INTERFACE_DEFINED__
5824 DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5825 #if defined(__cplusplus) && !defined(CINTERFACE)
5826 struct IAdviseSink2 : public IAdviseSink
5828 virtual void STDMETHODCALLTYPE OnLinkSrcChange(
5829 IMoniker* pmk) = 0;
5832 #else
5833 typedef struct IAdviseSink2Vtbl IAdviseSink2Vtbl;
5834 struct IAdviseSink2 {
5835 const IAdviseSink2Vtbl* lpVtbl;
5837 struct IAdviseSink2Vtbl {
5838 BEGIN_INTERFACE
5840 /*** IUnknown methods ***/
5841 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5842 IAdviseSink2* This,
5843 REFIID riid,
5844 void** ppvObject);
5846 ULONG (STDMETHODCALLTYPE *AddRef)(
5847 IAdviseSink2* This);
5849 ULONG (STDMETHODCALLTYPE *Release)(
5850 IAdviseSink2* This);
5852 /*** IAdviseSink methods ***/
5853 void (STDMETHODCALLTYPE *OnDataChange)(
5854 IAdviseSink2* This,
5855 FORMATETC* pFormatetc,
5856 STGMEDIUM* pStgmed);
5858 void (STDMETHODCALLTYPE *OnViewChange)(
5859 IAdviseSink2* This,
5860 DWORD dwAspect,
5861 LONG lindex);
5863 void (STDMETHODCALLTYPE *OnRename)(
5864 IAdviseSink2* This,
5865 IMoniker* pmk);
5867 void (STDMETHODCALLTYPE *OnSave)(
5868 IAdviseSink2* This);
5870 void (STDMETHODCALLTYPE *OnClose)(
5871 IAdviseSink2* This);
5873 /*** IAdviseSink2 methods ***/
5874 void (STDMETHODCALLTYPE *OnLinkSrcChange)(
5875 IAdviseSink2* This,
5876 IMoniker* pmk);
5878 END_INTERFACE
5881 #ifdef COBJMACROS
5882 /*** IUnknown methods ***/
5883 #define IAdviseSink2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5884 #define IAdviseSink2_AddRef(p) (p)->lpVtbl->AddRef(p)
5885 #define IAdviseSink2_Release(p) (p)->lpVtbl->Release(p)
5886 /*** IAdviseSink methods ***/
5887 #define IAdviseSink2_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
5888 #define IAdviseSink2_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
5889 #define IAdviseSink2_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
5890 #define IAdviseSink2_OnSave(p) (p)->lpVtbl->OnSave(p)
5891 #define IAdviseSink2_OnClose(p) (p)->lpVtbl->OnClose(p)
5892 /*** IAdviseSink2 methods ***/
5893 #define IAdviseSink2_OnLinkSrcChange(p,a) (p)->lpVtbl->OnLinkSrcChange(p,a)
5894 #endif
5896 #endif
5898 #define IAdviseSink2_METHODS \
5899 /*** IUnknown methods ***/ \
5900 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5901 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5902 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5903 /*** IAdviseSink methods ***/ \
5904 STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC* pFormatetc, STGMEDIUM* pStgmed) PURE; \
5905 STDMETHOD_(void,OnViewChange)(THIS_ DWORD dwAspect, LONG lindex) PURE; \
5906 STDMETHOD_(void,OnRename)(THIS_ IMoniker* pmk) PURE; \
5907 STDMETHOD_(void,OnSave)(THIS) PURE; \
5908 STDMETHOD_(void,OnClose)(THIS) PURE; \
5909 /*** IAdviseSink2 methods ***/ \
5910 STDMETHOD_(void,OnLinkSrcChange)(THIS_ IMoniker* pmk) PURE;
5912 HRESULT CALLBACK IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
5913 IAdviseSink2* This,
5914 IAsyncManager** ppIAM,
5915 IMoniker* pmk);
5916 void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
5917 struct IRpcStubBuffer* This,
5918 struct IRpcChannelBuffer* pRpcChannelBuffer,
5919 PRPC_MESSAGE pRpcMessage,
5920 DWORD* pdwStubPhase);
5921 void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
5922 IAdviseSink2* This,
5923 IMoniker* pmk);
5924 HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
5925 IAdviseSink2* This,
5926 IAsyncManager** ppIAM,
5927 IMoniker* pmk);
5929 #endif /* __IAdviseSink2_INTERFACE_DEFINED__ */
5931 #ifndef __IDataObject_FWD_DEFINED__
5932 #define __IDataObject_FWD_DEFINED__
5933 typedef struct IDataObject IDataObject;
5934 #endif
5936 typedef IDataObject *LPDATAOBJECT;
5938 typedef enum tagDATADIR {
5939 DATADIR_GET = 1,
5940 DATADIR_SET = 2
5941 } DATADIR;
5943 /*****************************************************************************
5944 * IDataObject interface
5946 #ifndef __IDataObject_INTERFACE_DEFINED__
5947 #define __IDataObject_INTERFACE_DEFINED__
5949 DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5950 #if defined(__cplusplus) && !defined(CINTERFACE)
5951 struct IDataObject : public IUnknown
5953 virtual HRESULT STDMETHODCALLTYPE GetData(
5954 FORMATETC* pformatetcIn,
5955 STGMEDIUM* pmedium) = 0;
5957 virtual HRESULT STDMETHODCALLTYPE GetDataHere(
5958 FORMATETC* pformatetc,
5959 STGMEDIUM* pmedium) = 0;
5961 virtual HRESULT STDMETHODCALLTYPE QueryGetData(
5962 FORMATETC* pformatetc) = 0;
5964 virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(
5965 FORMATETC* pformatectIn,
5966 FORMATETC* pformatetcOut) = 0;
5968 virtual HRESULT STDMETHODCALLTYPE SetData(
5969 FORMATETC* pformatetc,
5970 STGMEDIUM* pmedium,
5971 BOOL fRelease) = 0;
5973 virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(
5974 DWORD dwDirection,
5975 IEnumFORMATETC** ppenumFormatEtc) = 0;
5977 virtual HRESULT STDMETHODCALLTYPE DAdvise(
5978 FORMATETC* pformatetc,
5979 DWORD advf,
5980 IAdviseSink* pAdvSink,
5981 DWORD* pdwConnection) = 0;
5983 virtual HRESULT STDMETHODCALLTYPE DUnadvise(
5984 DWORD dwConnection) = 0;
5986 virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(
5987 IEnumSTATDATA** ppenumAdvise) = 0;
5990 #else
5991 typedef struct IDataObjectVtbl IDataObjectVtbl;
5992 struct IDataObject {
5993 const IDataObjectVtbl* lpVtbl;
5995 struct IDataObjectVtbl {
5996 BEGIN_INTERFACE
5998 /*** IUnknown methods ***/
5999 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6000 IDataObject* This,
6001 REFIID riid,
6002 void** ppvObject);
6004 ULONG (STDMETHODCALLTYPE *AddRef)(
6005 IDataObject* This);
6007 ULONG (STDMETHODCALLTYPE *Release)(
6008 IDataObject* This);
6010 /*** IDataObject methods ***/
6011 HRESULT (STDMETHODCALLTYPE *GetData)(
6012 IDataObject* This,
6013 FORMATETC* pformatetcIn,
6014 STGMEDIUM* pmedium);
6016 HRESULT (STDMETHODCALLTYPE *GetDataHere)(
6017 IDataObject* This,
6018 FORMATETC* pformatetc,
6019 STGMEDIUM* pmedium);
6021 HRESULT (STDMETHODCALLTYPE *QueryGetData)(
6022 IDataObject* This,
6023 FORMATETC* pformatetc);
6025 HRESULT (STDMETHODCALLTYPE *GetCanonicalFormatEtc)(
6026 IDataObject* This,
6027 FORMATETC* pformatectIn,
6028 FORMATETC* pformatetcOut);
6030 HRESULT (STDMETHODCALLTYPE *SetData)(
6031 IDataObject* This,
6032 FORMATETC* pformatetc,
6033 STGMEDIUM* pmedium,
6034 BOOL fRelease);
6036 HRESULT (STDMETHODCALLTYPE *EnumFormatEtc)(
6037 IDataObject* This,
6038 DWORD dwDirection,
6039 IEnumFORMATETC** ppenumFormatEtc);
6041 HRESULT (STDMETHODCALLTYPE *DAdvise)(
6042 IDataObject* This,
6043 FORMATETC* pformatetc,
6044 DWORD advf,
6045 IAdviseSink* pAdvSink,
6046 DWORD* pdwConnection);
6048 HRESULT (STDMETHODCALLTYPE *DUnadvise)(
6049 IDataObject* This,
6050 DWORD dwConnection);
6052 HRESULT (STDMETHODCALLTYPE *EnumDAdvise)(
6053 IDataObject* This,
6054 IEnumSTATDATA** ppenumAdvise);
6056 END_INTERFACE
6059 #ifdef COBJMACROS
6060 /*** IUnknown methods ***/
6061 #define IDataObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6062 #define IDataObject_AddRef(p) (p)->lpVtbl->AddRef(p)
6063 #define IDataObject_Release(p) (p)->lpVtbl->Release(p)
6064 /*** IDataObject methods ***/
6065 #define IDataObject_GetData(p,a,b) (p)->lpVtbl->GetData(p,a,b)
6066 #define IDataObject_GetDataHere(p,a,b) (p)->lpVtbl->GetDataHere(p,a,b)
6067 #define IDataObject_QueryGetData(p,a) (p)->lpVtbl->QueryGetData(p,a)
6068 #define IDataObject_GetCanonicalFormatEtc(p,a,b) (p)->lpVtbl->GetCanonicalFormatEtc(p,a,b)
6069 #define IDataObject_SetData(p,a,b,c) (p)->lpVtbl->SetData(p,a,b,c)
6070 #define IDataObject_EnumFormatEtc(p,a,b) (p)->lpVtbl->EnumFormatEtc(p,a,b)
6071 #define IDataObject_DAdvise(p,a,b,c,d) (p)->lpVtbl->DAdvise(p,a,b,c,d)
6072 #define IDataObject_DUnadvise(p,a) (p)->lpVtbl->DUnadvise(p,a)
6073 #define IDataObject_EnumDAdvise(p,a) (p)->lpVtbl->EnumDAdvise(p,a)
6074 #endif
6076 #endif
6078 #define IDataObject_METHODS \
6079 /*** IUnknown methods ***/ \
6080 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6081 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6082 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6083 /*** IDataObject methods ***/ \
6084 STDMETHOD_(HRESULT,GetData)(THIS_ FORMATETC* pformatetcIn, STGMEDIUM* pmedium) PURE; \
6085 STDMETHOD_(HRESULT,GetDataHere)(THIS_ FORMATETC* pformatetc, STGMEDIUM* pmedium) PURE; \
6086 STDMETHOD_(HRESULT,QueryGetData)(THIS_ FORMATETC* pformatetc) PURE; \
6087 STDMETHOD_(HRESULT,GetCanonicalFormatEtc)(THIS_ FORMATETC* pformatectIn, FORMATETC* pformatetcOut) PURE; \
6088 STDMETHOD_(HRESULT,SetData)(THIS_ FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease) PURE; \
6089 STDMETHOD_(HRESULT,EnumFormatEtc)(THIS_ DWORD dwDirection, IEnumFORMATETC** ppenumFormatEtc) PURE; \
6090 STDMETHOD_(HRESULT,DAdvise)(THIS_ FORMATETC* pformatetc, DWORD advf, IAdviseSink* pAdvSink, DWORD* pdwConnection) PURE; \
6091 STDMETHOD_(HRESULT,DUnadvise)(THIS_ DWORD dwConnection) PURE; \
6092 STDMETHOD_(HRESULT,EnumDAdvise)(THIS_ IEnumSTATDATA** ppenumAdvise) PURE;
6094 HRESULT CALLBACK IDataObject_RemoteGetData_Proxy(
6095 IDataObject* This,
6096 FORMATETC* pformatetcIn,
6097 STGMEDIUM* pRemoteMedium);
6098 void __RPC_STUB IDataObject_RemoteGetData_Stub(
6099 struct IRpcStubBuffer* This,
6100 struct IRpcChannelBuffer* pRpcChannelBuffer,
6101 PRPC_MESSAGE pRpcMessage,
6102 DWORD* pdwStubPhase);
6103 HRESULT CALLBACK IDataObject_GetData_Proxy(
6104 IDataObject* This,
6105 FORMATETC* pformatetcIn,
6106 STGMEDIUM* pmedium);
6107 HRESULT __RPC_STUB IDataObject_GetData_Stub(
6108 IDataObject* This,
6109 FORMATETC* pformatetcIn,
6110 STGMEDIUM* pRemoteMedium);
6111 HRESULT CALLBACK IDataObject_RemoteGetDataHere_Proxy(
6112 IDataObject* This,
6113 FORMATETC* pformatetc,
6114 STGMEDIUM* pRemoteMedium);
6115 void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
6116 struct IRpcStubBuffer* This,
6117 struct IRpcChannelBuffer* pRpcChannelBuffer,
6118 PRPC_MESSAGE pRpcMessage,
6119 DWORD* pdwStubPhase);
6120 HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
6121 IDataObject* This,
6122 FORMATETC* pformatetc,
6123 STGMEDIUM* pmedium);
6124 HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
6125 IDataObject* This,
6126 FORMATETC* pformatetc,
6127 STGMEDIUM* pRemoteMedium);
6128 HRESULT CALLBACK IDataObject_QueryGetData_Proxy(
6129 IDataObject* This,
6130 FORMATETC* pformatetc);
6131 void __RPC_STUB IDataObject_QueryGetData_Stub(
6132 struct IRpcStubBuffer* This,
6133 struct IRpcChannelBuffer* pRpcChannelBuffer,
6134 PRPC_MESSAGE pRpcMessage,
6135 DWORD* pdwStubPhase);
6136 HRESULT CALLBACK IDataObject_GetCanonicalFormatEtc_Proxy(
6137 IDataObject* This,
6138 FORMATETC* pformatectIn,
6139 FORMATETC* pformatetcOut);
6140 void __RPC_STUB IDataObject_GetCanonicalFormatEtc_Stub(
6141 struct IRpcStubBuffer* This,
6142 struct IRpcChannelBuffer* pRpcChannelBuffer,
6143 PRPC_MESSAGE pRpcMessage,
6144 DWORD* pdwStubPhase);
6145 HRESULT CALLBACK IDataObject_RemoteSetData_Proxy(
6146 IDataObject* This,
6147 FORMATETC* pformatetc,
6148 FLAG_STGMEDIUM* pmedium,
6149 BOOL fRelease);
6150 void __RPC_STUB IDataObject_RemoteSetData_Stub(
6151 struct IRpcStubBuffer* This,
6152 struct IRpcChannelBuffer* pRpcChannelBuffer,
6153 PRPC_MESSAGE pRpcMessage,
6154 DWORD* pdwStubPhase);
6155 HRESULT CALLBACK IDataObject_SetData_Proxy(
6156 IDataObject* This,
6157 FORMATETC* pformatetc,
6158 STGMEDIUM* pmedium,
6159 BOOL fRelease);
6160 HRESULT __RPC_STUB IDataObject_SetData_Stub(
6161 IDataObject* This,
6162 FORMATETC* pformatetc,
6163 FLAG_STGMEDIUM* pmedium,
6164 BOOL fRelease);
6165 HRESULT CALLBACK IDataObject_EnumFormatEtc_Proxy(
6166 IDataObject* This,
6167 DWORD dwDirection,
6168 IEnumFORMATETC** ppenumFormatEtc);
6169 void __RPC_STUB IDataObject_EnumFormatEtc_Stub(
6170 struct IRpcStubBuffer* This,
6171 struct IRpcChannelBuffer* pRpcChannelBuffer,
6172 PRPC_MESSAGE pRpcMessage,
6173 DWORD* pdwStubPhase);
6174 HRESULT CALLBACK IDataObject_DAdvise_Proxy(
6175 IDataObject* This,
6176 FORMATETC* pformatetc,
6177 DWORD advf,
6178 IAdviseSink* pAdvSink,
6179 DWORD* pdwConnection);
6180 void __RPC_STUB IDataObject_DAdvise_Stub(
6181 struct IRpcStubBuffer* This,
6182 struct IRpcChannelBuffer* pRpcChannelBuffer,
6183 PRPC_MESSAGE pRpcMessage,
6184 DWORD* pdwStubPhase);
6185 HRESULT CALLBACK IDataObject_DUnadvise_Proxy(
6186 IDataObject* This,
6187 DWORD dwConnection);
6188 void __RPC_STUB IDataObject_DUnadvise_Stub(
6189 struct IRpcStubBuffer* This,
6190 struct IRpcChannelBuffer* pRpcChannelBuffer,
6191 PRPC_MESSAGE pRpcMessage,
6192 DWORD* pdwStubPhase);
6193 HRESULT CALLBACK IDataObject_EnumDAdvise_Proxy(
6194 IDataObject* This,
6195 IEnumSTATDATA** ppenumAdvise);
6196 void __RPC_STUB IDataObject_EnumDAdvise_Stub(
6197 struct IRpcStubBuffer* This,
6198 struct IRpcChannelBuffer* pRpcChannelBuffer,
6199 PRPC_MESSAGE pRpcMessage,
6200 DWORD* pdwStubPhase);
6202 #endif /* __IDataObject_INTERFACE_DEFINED__ */
6204 #ifndef __IDataAdviseHolder_FWD_DEFINED__
6205 #define __IDataAdviseHolder_FWD_DEFINED__
6206 typedef struct IDataAdviseHolder IDataAdviseHolder;
6207 #endif
6209 typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
6211 /*****************************************************************************
6212 * IDataAdviseHolder interface
6214 #ifndef __IDataAdviseHolder_INTERFACE_DEFINED__
6215 #define __IDataAdviseHolder_INTERFACE_DEFINED__
6217 DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6218 #if defined(__cplusplus) && !defined(CINTERFACE)
6219 struct IDataAdviseHolder : public IUnknown
6221 virtual HRESULT STDMETHODCALLTYPE Advise(
6222 IDataObject* pDataObject,
6223 FORMATETC* pFetc,
6224 DWORD advf,
6225 IAdviseSink* pAdvise,
6226 DWORD* pdwConnection) = 0;
6228 virtual HRESULT STDMETHODCALLTYPE Unadvise(
6229 DWORD dwConnection) = 0;
6231 virtual HRESULT STDMETHODCALLTYPE EnumAdvise(
6232 IEnumSTATDATA** ppenumAdvise) = 0;
6234 virtual HRESULT STDMETHODCALLTYPE SendOnDataChange(
6235 IDataObject* pDataObject,
6236 DWORD dwReserved,
6237 DWORD advf) = 0;
6240 #else
6241 typedef struct IDataAdviseHolderVtbl IDataAdviseHolderVtbl;
6242 struct IDataAdviseHolder {
6243 const IDataAdviseHolderVtbl* lpVtbl;
6245 struct IDataAdviseHolderVtbl {
6246 BEGIN_INTERFACE
6248 /*** IUnknown methods ***/
6249 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6250 IDataAdviseHolder* This,
6251 REFIID riid,
6252 void** ppvObject);
6254 ULONG (STDMETHODCALLTYPE *AddRef)(
6255 IDataAdviseHolder* This);
6257 ULONG (STDMETHODCALLTYPE *Release)(
6258 IDataAdviseHolder* This);
6260 /*** IDataAdviseHolder methods ***/
6261 HRESULT (STDMETHODCALLTYPE *Advise)(
6262 IDataAdviseHolder* This,
6263 IDataObject* pDataObject,
6264 FORMATETC* pFetc,
6265 DWORD advf,
6266 IAdviseSink* pAdvise,
6267 DWORD* pdwConnection);
6269 HRESULT (STDMETHODCALLTYPE *Unadvise)(
6270 IDataAdviseHolder* This,
6271 DWORD dwConnection);
6273 HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
6274 IDataAdviseHolder* This,
6275 IEnumSTATDATA** ppenumAdvise);
6277 HRESULT (STDMETHODCALLTYPE *SendOnDataChange)(
6278 IDataAdviseHolder* This,
6279 IDataObject* pDataObject,
6280 DWORD dwReserved,
6281 DWORD advf);
6283 END_INTERFACE
6286 #ifdef COBJMACROS
6287 /*** IUnknown methods ***/
6288 #define IDataAdviseHolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6289 #define IDataAdviseHolder_AddRef(p) (p)->lpVtbl->AddRef(p)
6290 #define IDataAdviseHolder_Release(p) (p)->lpVtbl->Release(p)
6291 /*** IDataAdviseHolder methods ***/
6292 #define IDataAdviseHolder_Advise(p,a,b,c,d,e) (p)->lpVtbl->Advise(p,a,b,c,d,e)
6293 #define IDataAdviseHolder_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
6294 #define IDataAdviseHolder_EnumAdvise(p,a) (p)->lpVtbl->EnumAdvise(p,a)
6295 #define IDataAdviseHolder_SendOnDataChange(p,a,b,c) (p)->lpVtbl->SendOnDataChange(p,a,b,c)
6296 #endif
6298 #endif
6300 #define IDataAdviseHolder_METHODS \
6301 /*** IUnknown methods ***/ \
6302 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6303 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6304 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6305 /*** IDataAdviseHolder methods ***/ \
6306 STDMETHOD_(HRESULT,Advise)(THIS_ IDataObject* pDataObject, FORMATETC* pFetc, DWORD advf, IAdviseSink* pAdvise, DWORD* pdwConnection) PURE; \
6307 STDMETHOD_(HRESULT,Unadvise)(THIS_ DWORD dwConnection) PURE; \
6308 STDMETHOD_(HRESULT,EnumAdvise)(THIS_ IEnumSTATDATA** ppenumAdvise) PURE; \
6309 STDMETHOD_(HRESULT,SendOnDataChange)(THIS_ IDataObject* pDataObject, DWORD dwReserved, DWORD advf) PURE;
6311 HRESULT CALLBACK IDataAdviseHolder_Advise_Proxy(
6312 IDataAdviseHolder* This,
6313 IDataObject* pDataObject,
6314 FORMATETC* pFetc,
6315 DWORD advf,
6316 IAdviseSink* pAdvise,
6317 DWORD* pdwConnection);
6318 void __RPC_STUB IDataAdviseHolder_Advise_Stub(
6319 struct IRpcStubBuffer* This,
6320 struct IRpcChannelBuffer* pRpcChannelBuffer,
6321 PRPC_MESSAGE pRpcMessage,
6322 DWORD* pdwStubPhase);
6323 HRESULT CALLBACK IDataAdviseHolder_Unadvise_Proxy(
6324 IDataAdviseHolder* This,
6325 DWORD dwConnection);
6326 void __RPC_STUB IDataAdviseHolder_Unadvise_Stub(
6327 struct IRpcStubBuffer* This,
6328 struct IRpcChannelBuffer* pRpcChannelBuffer,
6329 PRPC_MESSAGE pRpcMessage,
6330 DWORD* pdwStubPhase);
6331 HRESULT CALLBACK IDataAdviseHolder_EnumAdvise_Proxy(
6332 IDataAdviseHolder* This,
6333 IEnumSTATDATA** ppenumAdvise);
6334 void __RPC_STUB IDataAdviseHolder_EnumAdvise_Stub(
6335 struct IRpcStubBuffer* This,
6336 struct IRpcChannelBuffer* pRpcChannelBuffer,
6337 PRPC_MESSAGE pRpcMessage,
6338 DWORD* pdwStubPhase);
6339 HRESULT CALLBACK IDataAdviseHolder_SendOnDataChange_Proxy(
6340 IDataAdviseHolder* This,
6341 IDataObject* pDataObject,
6342 DWORD dwReserved,
6343 DWORD advf);
6344 void __RPC_STUB IDataAdviseHolder_SendOnDataChange_Stub(
6345 struct IRpcStubBuffer* This,
6346 struct IRpcChannelBuffer* pRpcChannelBuffer,
6347 PRPC_MESSAGE pRpcMessage,
6348 DWORD* pdwStubPhase);
6350 #endif /* __IDataAdviseHolder_INTERFACE_DEFINED__ */
6352 #ifndef __IMessageFilter_FWD_DEFINED__
6353 #define __IMessageFilter_FWD_DEFINED__
6354 typedef struct IMessageFilter IMessageFilter;
6355 #endif
6357 typedef IMessageFilter *LPMESSAGEFILTER;
6359 typedef enum tagCALLTYPE {
6360 CALLTYPE_TOPLEVEL = 1,
6361 CALLTYPE_NESTED = 2,
6362 CALLTYPE_ASYNC = 3,
6363 CALLTYPE_TOPLEVEL_CALLPENDING = 4,
6364 CALLTYPE_ASYNC_CALLPENDING = 5
6365 } CALLTYPE;
6367 typedef enum tagSERVERCALL {
6368 SERVERCALL_ISHANDLED = 0,
6369 SERVERCALL_REJECTED = 1,
6370 SERVERCALL_RETRYLATER = 2
6371 } SERVERCALL;
6373 typedef enum tagPENDINGTYPE {
6374 PENDINGTYPE_TOPLEVEL = 1,
6375 PENDINGTYPE_NESTED = 2
6376 } PENDINGTYPE;
6378 typedef enum tagPENDINGMSG {
6379 PENDINGMSG_CANCELCALL = 0,
6380 PENDINGMSG_WAITNOPROCESS = 1,
6381 PENDINGMSG_WAITDEFPROCESS = 2
6382 } PENDINGMSG;
6384 typedef struct tagINTERFACEINFO {
6385 IUnknown *pUnk;
6386 IID iid;
6387 WORD wMethod;
6388 } INTERFACEINFO, *LPINTERFACEINFO;
6390 /*****************************************************************************
6391 * IMessageFilter interface
6393 #ifndef __IMessageFilter_INTERFACE_DEFINED__
6394 #define __IMessageFilter_INTERFACE_DEFINED__
6396 DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6397 #if defined(__cplusplus) && !defined(CINTERFACE)
6398 struct IMessageFilter : public IUnknown
6400 virtual DWORD STDMETHODCALLTYPE HandleIncomingCall(
6401 DWORD dwCallType,
6402 HTASK htaskCaller,
6403 DWORD dwTickCount,
6404 LPINTERFACEINFO lpInterfaceInfo) = 0;
6406 virtual DWORD STDMETHODCALLTYPE RetryRejectedCall(
6407 HTASK htaskCallee,
6408 DWORD dwTickCount,
6409 DWORD dwRejectType) = 0;
6411 virtual DWORD STDMETHODCALLTYPE MessagePending(
6412 HTASK htaskCallee,
6413 DWORD dwTickCount,
6414 DWORD dwPendingType) = 0;
6417 #else
6418 typedef struct IMessageFilterVtbl IMessageFilterVtbl;
6419 struct IMessageFilter {
6420 const IMessageFilterVtbl* lpVtbl;
6422 struct IMessageFilterVtbl {
6423 BEGIN_INTERFACE
6425 /*** IUnknown methods ***/
6426 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6427 IMessageFilter* This,
6428 REFIID riid,
6429 void** ppvObject);
6431 ULONG (STDMETHODCALLTYPE *AddRef)(
6432 IMessageFilter* This);
6434 ULONG (STDMETHODCALLTYPE *Release)(
6435 IMessageFilter* This);
6437 /*** IMessageFilter methods ***/
6438 DWORD (STDMETHODCALLTYPE *HandleIncomingCall)(
6439 IMessageFilter* This,
6440 DWORD dwCallType,
6441 HTASK htaskCaller,
6442 DWORD dwTickCount,
6443 LPINTERFACEINFO lpInterfaceInfo);
6445 DWORD (STDMETHODCALLTYPE *RetryRejectedCall)(
6446 IMessageFilter* This,
6447 HTASK htaskCallee,
6448 DWORD dwTickCount,
6449 DWORD dwRejectType);
6451 DWORD (STDMETHODCALLTYPE *MessagePending)(
6452 IMessageFilter* This,
6453 HTASK htaskCallee,
6454 DWORD dwTickCount,
6455 DWORD dwPendingType);
6457 END_INTERFACE
6460 #ifdef COBJMACROS
6461 /*** IUnknown methods ***/
6462 #define IMessageFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6463 #define IMessageFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
6464 #define IMessageFilter_Release(p) (p)->lpVtbl->Release(p)
6465 /*** IMessageFilter methods ***/
6466 #define IMessageFilter_HandleIncomingCall(p,a,b,c,d) (p)->lpVtbl->HandleIncomingCall(p,a,b,c,d)
6467 #define IMessageFilter_RetryRejectedCall(p,a,b,c) (p)->lpVtbl->RetryRejectedCall(p,a,b,c)
6468 #define IMessageFilter_MessagePending(p,a,b,c) (p)->lpVtbl->MessagePending(p,a,b,c)
6469 #endif
6471 #endif
6473 #define IMessageFilter_METHODS \
6474 /*** IUnknown methods ***/ \
6475 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6476 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6477 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6478 /*** IMessageFilter methods ***/ \
6479 STDMETHOD_(DWORD,HandleIncomingCall)(THIS_ DWORD dwCallType, HTASK htaskCaller, DWORD dwTickCount, LPINTERFACEINFO lpInterfaceInfo) PURE; \
6480 STDMETHOD_(DWORD,RetryRejectedCall)(THIS_ HTASK htaskCallee, DWORD dwTickCount, DWORD dwRejectType) PURE; \
6481 STDMETHOD_(DWORD,MessagePending)(THIS_ HTASK htaskCallee, DWORD dwTickCount, DWORD dwPendingType) PURE;
6483 DWORD CALLBACK IMessageFilter_HandleIncomingCall_Proxy(
6484 IMessageFilter* This,
6485 DWORD dwCallType,
6486 HTASK htaskCaller,
6487 DWORD dwTickCount,
6488 LPINTERFACEINFO lpInterfaceInfo);
6489 void __RPC_STUB IMessageFilter_HandleIncomingCall_Stub(
6490 struct IRpcStubBuffer* This,
6491 struct IRpcChannelBuffer* pRpcChannelBuffer,
6492 PRPC_MESSAGE pRpcMessage,
6493 DWORD* pdwStubPhase);
6494 DWORD CALLBACK IMessageFilter_RetryRejectedCall_Proxy(
6495 IMessageFilter* This,
6496 HTASK htaskCallee,
6497 DWORD dwTickCount,
6498 DWORD dwRejectType);
6499 void __RPC_STUB IMessageFilter_RetryRejectedCall_Stub(
6500 struct IRpcStubBuffer* This,
6501 struct IRpcChannelBuffer* pRpcChannelBuffer,
6502 PRPC_MESSAGE pRpcMessage,
6503 DWORD* pdwStubPhase);
6504 DWORD CALLBACK IMessageFilter_MessagePending_Proxy(
6505 IMessageFilter* This,
6506 HTASK htaskCallee,
6507 DWORD dwTickCount,
6508 DWORD dwPendingType);
6509 void __RPC_STUB IMessageFilter_MessagePending_Stub(
6510 struct IRpcStubBuffer* This,
6511 struct IRpcChannelBuffer* pRpcChannelBuffer,
6512 PRPC_MESSAGE pRpcMessage,
6513 DWORD* pdwStubPhase);
6515 #endif /* __IMessageFilter_INTERFACE_DEFINED__ */
6517 #ifndef __IRpcChannelBuffer_FWD_DEFINED__
6518 #define __IRpcChannelBuffer_FWD_DEFINED__
6519 typedef struct IRpcChannelBuffer IRpcChannelBuffer;
6520 #endif
6522 typedef IRpcChannelBuffer *LPRPCCHANNELBUFFER;
6524 typedef unsigned long RPCOLEDATAREP;
6526 typedef struct tagRPCOLEMESSAGE {
6527 void *reserved1;
6528 RPCOLEDATAREP dataRepresentation;
6529 void *Buffer;
6530 ULONG cbBuffer;
6531 ULONG iMethod;
6532 void *reserved2[5];
6533 ULONG rpcFlags;
6534 } RPCOLEMESSAGE;
6536 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
6538 /*****************************************************************************
6539 * IRpcChannelBuffer interface
6541 #ifndef __IRpcChannelBuffer_INTERFACE_DEFINED__
6542 #define __IRpcChannelBuffer_INTERFACE_DEFINED__
6544 DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
6545 #if defined(__cplusplus) && !defined(CINTERFACE)
6546 struct IRpcChannelBuffer : public IUnknown
6548 virtual HRESULT STDMETHODCALLTYPE GetBuffer(
6549 RPCOLEMESSAGE* pMessage,
6550 REFIID riid) = 0;
6552 virtual HRESULT STDMETHODCALLTYPE SendReceive(
6553 RPCOLEMESSAGE* pMessage,
6554 ULONG* pStatus) = 0;
6556 virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
6557 RPCOLEMESSAGE* pMessage) = 0;
6559 virtual HRESULT STDMETHODCALLTYPE GetDestCtx(
6560 DWORD* pdwDestContext,
6561 void** ppvDestContext) = 0;
6563 virtual HRESULT STDMETHODCALLTYPE IsConnected(
6564 ) = 0;
6567 #else
6568 typedef struct IRpcChannelBufferVtbl IRpcChannelBufferVtbl;
6569 struct IRpcChannelBuffer {
6570 const IRpcChannelBufferVtbl* lpVtbl;
6572 struct IRpcChannelBufferVtbl {
6573 BEGIN_INTERFACE
6575 /*** IUnknown methods ***/
6576 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6577 IRpcChannelBuffer* This,
6578 REFIID riid,
6579 void** ppvObject);
6581 ULONG (STDMETHODCALLTYPE *AddRef)(
6582 IRpcChannelBuffer* This);
6584 ULONG (STDMETHODCALLTYPE *Release)(
6585 IRpcChannelBuffer* This);
6587 /*** IRpcChannelBuffer methods ***/
6588 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
6589 IRpcChannelBuffer* This,
6590 RPCOLEMESSAGE* pMessage,
6591 REFIID riid);
6593 HRESULT (STDMETHODCALLTYPE *SendReceive)(
6594 IRpcChannelBuffer* This,
6595 RPCOLEMESSAGE* pMessage,
6596 ULONG* pStatus);
6598 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
6599 IRpcChannelBuffer* This,
6600 RPCOLEMESSAGE* pMessage);
6602 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
6603 IRpcChannelBuffer* This,
6604 DWORD* pdwDestContext,
6605 void** ppvDestContext);
6607 HRESULT (STDMETHODCALLTYPE *IsConnected)(
6608 IRpcChannelBuffer* This);
6610 END_INTERFACE
6613 #ifdef COBJMACROS
6614 /*** IUnknown methods ***/
6615 #define IRpcChannelBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6616 #define IRpcChannelBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
6617 #define IRpcChannelBuffer_Release(p) (p)->lpVtbl->Release(p)
6618 /*** IRpcChannelBuffer methods ***/
6619 #define IRpcChannelBuffer_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6620 #define IRpcChannelBuffer_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6621 #define IRpcChannelBuffer_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6622 #define IRpcChannelBuffer_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6623 #define IRpcChannelBuffer_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6624 #endif
6626 #endif
6628 #define IRpcChannelBuffer_METHODS \
6629 /*** IUnknown methods ***/ \
6630 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6631 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6632 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6633 /*** IRpcChannelBuffer methods ***/ \
6634 STDMETHOD_(HRESULT,GetBuffer)(THIS_ RPCOLEMESSAGE* pMessage, REFIID riid) PURE; \
6635 STDMETHOD_(HRESULT,SendReceive)(THIS_ RPCOLEMESSAGE* pMessage, ULONG* pStatus) PURE; \
6636 STDMETHOD_(HRESULT,FreeBuffer)(THIS_ RPCOLEMESSAGE* pMessage) PURE; \
6637 STDMETHOD_(HRESULT,GetDestCtx)(THIS_ DWORD* pdwDestContext, void** ppvDestContext) PURE; \
6638 STDMETHOD_(HRESULT,IsConnected)(THIS) PURE;
6640 HRESULT CALLBACK IRpcChannelBuffer_GetBuffer_Proxy(
6641 IRpcChannelBuffer* This,
6642 RPCOLEMESSAGE* pMessage,
6643 REFIID riid);
6644 void __RPC_STUB IRpcChannelBuffer_GetBuffer_Stub(
6645 struct IRpcStubBuffer* This,
6646 struct IRpcChannelBuffer* pRpcChannelBuffer,
6647 PRPC_MESSAGE pRpcMessage,
6648 DWORD* pdwStubPhase);
6649 HRESULT CALLBACK IRpcChannelBuffer_SendReceive_Proxy(
6650 IRpcChannelBuffer* This,
6651 RPCOLEMESSAGE* pMessage,
6652 ULONG* pStatus);
6653 void __RPC_STUB IRpcChannelBuffer_SendReceive_Stub(
6654 struct IRpcStubBuffer* This,
6655 struct IRpcChannelBuffer* pRpcChannelBuffer,
6656 PRPC_MESSAGE pRpcMessage,
6657 DWORD* pdwStubPhase);
6658 HRESULT CALLBACK IRpcChannelBuffer_FreeBuffer_Proxy(
6659 IRpcChannelBuffer* This,
6660 RPCOLEMESSAGE* pMessage);
6661 void __RPC_STUB IRpcChannelBuffer_FreeBuffer_Stub(
6662 struct IRpcStubBuffer* This,
6663 struct IRpcChannelBuffer* pRpcChannelBuffer,
6664 PRPC_MESSAGE pRpcMessage,
6665 DWORD* pdwStubPhase);
6666 HRESULT CALLBACK IRpcChannelBuffer_GetDestCtx_Proxy(
6667 IRpcChannelBuffer* This,
6668 DWORD* pdwDestContext,
6669 void** ppvDestContext);
6670 void __RPC_STUB IRpcChannelBuffer_GetDestCtx_Stub(
6671 struct IRpcStubBuffer* This,
6672 struct IRpcChannelBuffer* pRpcChannelBuffer,
6673 PRPC_MESSAGE pRpcMessage,
6674 DWORD* pdwStubPhase);
6675 HRESULT CALLBACK IRpcChannelBuffer_IsConnected_Proxy(
6676 IRpcChannelBuffer* This);
6677 void __RPC_STUB IRpcChannelBuffer_IsConnected_Stub(
6678 struct IRpcStubBuffer* This,
6679 struct IRpcChannelBuffer* pRpcChannelBuffer,
6680 PRPC_MESSAGE pRpcMessage,
6681 DWORD* pdwStubPhase);
6683 #endif /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */
6685 #ifndef __IRpcChannelBuffer2_FWD_DEFINED__
6686 #define __IRpcChannelBuffer2_FWD_DEFINED__
6687 typedef struct IRpcChannelBuffer2 IRpcChannelBuffer2;
6688 #endif
6690 typedef IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2;
6692 /*****************************************************************************
6693 * IRpcChannelBuffer2 interface
6695 #ifndef __IRpcChannelBuffer2_INTERFACE_DEFINED__
6696 #define __IRpcChannelBuffer2_INTERFACE_DEFINED__
6698 DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
6699 #if defined(__cplusplus) && !defined(CINTERFACE)
6700 struct IRpcChannelBuffer2 : public IRpcChannelBuffer
6702 virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion(
6703 DWORD* pdwVersion) = 0;
6706 #else
6707 typedef struct IRpcChannelBuffer2Vtbl IRpcChannelBuffer2Vtbl;
6708 struct IRpcChannelBuffer2 {
6709 const IRpcChannelBuffer2Vtbl* lpVtbl;
6711 struct IRpcChannelBuffer2Vtbl {
6712 BEGIN_INTERFACE
6714 /*** IUnknown methods ***/
6715 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6716 IRpcChannelBuffer2* This,
6717 REFIID riid,
6718 void** ppvObject);
6720 ULONG (STDMETHODCALLTYPE *AddRef)(
6721 IRpcChannelBuffer2* This);
6723 ULONG (STDMETHODCALLTYPE *Release)(
6724 IRpcChannelBuffer2* This);
6726 /*** IRpcChannelBuffer methods ***/
6727 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
6728 IRpcChannelBuffer2* This,
6729 RPCOLEMESSAGE* pMessage,
6730 REFIID riid);
6732 HRESULT (STDMETHODCALLTYPE *SendReceive)(
6733 IRpcChannelBuffer2* This,
6734 RPCOLEMESSAGE* pMessage,
6735 ULONG* pStatus);
6737 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
6738 IRpcChannelBuffer2* This,
6739 RPCOLEMESSAGE* pMessage);
6741 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
6742 IRpcChannelBuffer2* This,
6743 DWORD* pdwDestContext,
6744 void** ppvDestContext);
6746 HRESULT (STDMETHODCALLTYPE *IsConnected)(
6747 IRpcChannelBuffer2* This);
6749 /*** IRpcChannelBuffer2 methods ***/
6750 HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
6751 IRpcChannelBuffer2* This,
6752 DWORD* pdwVersion);
6754 END_INTERFACE
6757 #ifdef COBJMACROS
6758 /*** IUnknown methods ***/
6759 #define IRpcChannelBuffer2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6760 #define IRpcChannelBuffer2_AddRef(p) (p)->lpVtbl->AddRef(p)
6761 #define IRpcChannelBuffer2_Release(p) (p)->lpVtbl->Release(p)
6762 /*** IRpcChannelBuffer methods ***/
6763 #define IRpcChannelBuffer2_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6764 #define IRpcChannelBuffer2_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6765 #define IRpcChannelBuffer2_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6766 #define IRpcChannelBuffer2_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6767 #define IRpcChannelBuffer2_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6768 /*** IRpcChannelBuffer2 methods ***/
6769 #define IRpcChannelBuffer2_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
6770 #endif
6772 #endif
6774 #define IRpcChannelBuffer2_METHODS \
6775 /*** IUnknown methods ***/ \
6776 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6777 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6778 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6779 /*** IRpcChannelBuffer methods ***/ \
6780 STDMETHOD_(HRESULT,GetBuffer)(THIS_ RPCOLEMESSAGE* pMessage, REFIID riid) PURE; \
6781 STDMETHOD_(HRESULT,SendReceive)(THIS_ RPCOLEMESSAGE* pMessage, ULONG* pStatus) PURE; \
6782 STDMETHOD_(HRESULT,FreeBuffer)(THIS_ RPCOLEMESSAGE* pMessage) PURE; \
6783 STDMETHOD_(HRESULT,GetDestCtx)(THIS_ DWORD* pdwDestContext, void** ppvDestContext) PURE; \
6784 STDMETHOD_(HRESULT,IsConnected)(THIS) PURE; \
6785 /*** IRpcChannelBuffer2 methods ***/ \
6786 STDMETHOD_(HRESULT,GetProtocolVersion)(THIS_ DWORD* pdwVersion) PURE;
6788 HRESULT CALLBACK IRpcChannelBuffer2_GetProtocolVersion_Proxy(
6789 IRpcChannelBuffer2* This,
6790 DWORD* pdwVersion);
6791 void __RPC_STUB IRpcChannelBuffer2_GetProtocolVersion_Stub(
6792 struct IRpcStubBuffer* This,
6793 struct IRpcChannelBuffer* pRpcChannelBuffer,
6794 PRPC_MESSAGE pRpcMessage,
6795 DWORD* pdwStubPhase);
6797 #endif /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */
6799 #ifndef __IRpcChannelBuffer3_FWD_DEFINED__
6800 #define __IRpcChannelBuffer3_FWD_DEFINED__
6801 typedef struct IRpcChannelBuffer3 IRpcChannelBuffer3;
6802 #endif
6804 typedef IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3;
6806 /*****************************************************************************
6807 * IRpcChannelBuffer3 interface
6809 #ifndef __IRpcChannelBuffer3_INTERFACE_DEFINED__
6810 #define __IRpcChannelBuffer3_INTERFACE_DEFINED__
6812 DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
6813 #if defined(__cplusplus) && !defined(CINTERFACE)
6814 struct IRpcChannelBuffer3 : public IRpcChannelBuffer2
6816 virtual HRESULT STDMETHODCALLTYPE Send(
6817 RPCOLEMESSAGE* pMsg,
6818 ULONG* pulStatus) = 0;
6820 virtual HRESULT STDMETHODCALLTYPE Receive(
6821 RPCOLEMESSAGE* pMsg,
6822 ULONG ulSize,
6823 ULONG* pulStatus) = 0;
6825 virtual HRESULT STDMETHODCALLTYPE Cancel(
6826 RPCOLEMESSAGE* pMsg) = 0;
6828 virtual HRESULT STDMETHODCALLTYPE GetCallContext(
6829 RPCOLEMESSAGE* pMsg,
6830 REFIID riid,
6831 void** pInterface) = 0;
6833 virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
6834 RPCOLEMESSAGE* pMsg,
6835 DWORD* pdwDestContext,
6836 void** ppvDestContext) = 0;
6838 virtual HRESULT STDMETHODCALLTYPE GetState(
6839 RPCOLEMESSAGE* pMsg,
6840 DWORD* pState) = 0;
6842 virtual HRESULT STDMETHODCALLTYPE RegisterAsync(
6843 RPCOLEMESSAGE* pMsg,
6844 IAsyncManager* pAsyncMgr) = 0;
6847 #else
6848 typedef struct IRpcChannelBuffer3Vtbl IRpcChannelBuffer3Vtbl;
6849 struct IRpcChannelBuffer3 {
6850 const IRpcChannelBuffer3Vtbl* lpVtbl;
6852 struct IRpcChannelBuffer3Vtbl {
6853 BEGIN_INTERFACE
6855 /*** IUnknown methods ***/
6856 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6857 IRpcChannelBuffer3* This,
6858 REFIID riid,
6859 void** ppvObject);
6861 ULONG (STDMETHODCALLTYPE *AddRef)(
6862 IRpcChannelBuffer3* This);
6864 ULONG (STDMETHODCALLTYPE *Release)(
6865 IRpcChannelBuffer3* This);
6867 /*** IRpcChannelBuffer methods ***/
6868 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
6869 IRpcChannelBuffer3* This,
6870 RPCOLEMESSAGE* pMessage,
6871 REFIID riid);
6873 HRESULT (STDMETHODCALLTYPE *SendReceive)(
6874 IRpcChannelBuffer3* This,
6875 RPCOLEMESSAGE* pMessage,
6876 ULONG* pStatus);
6878 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
6879 IRpcChannelBuffer3* This,
6880 RPCOLEMESSAGE* pMessage);
6882 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
6883 IRpcChannelBuffer3* This,
6884 DWORD* pdwDestContext,
6885 void** ppvDestContext);
6887 HRESULT (STDMETHODCALLTYPE *IsConnected)(
6888 IRpcChannelBuffer3* This);
6890 /*** IRpcChannelBuffer2 methods ***/
6891 HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
6892 IRpcChannelBuffer3* This,
6893 DWORD* pdwVersion);
6895 /*** IRpcChannelBuffer3 methods ***/
6896 HRESULT (STDMETHODCALLTYPE *Send)(
6897 IRpcChannelBuffer3* This,
6898 RPCOLEMESSAGE* pMsg,
6899 ULONG* pulStatus);
6901 HRESULT (STDMETHODCALLTYPE *Receive)(
6902 IRpcChannelBuffer3* This,
6903 RPCOLEMESSAGE* pMsg,
6904 ULONG ulSize,
6905 ULONG* pulStatus);
6907 HRESULT (STDMETHODCALLTYPE *Cancel)(
6908 IRpcChannelBuffer3* This,
6909 RPCOLEMESSAGE* pMsg);
6911 HRESULT (STDMETHODCALLTYPE *GetCallContext)(
6912 IRpcChannelBuffer3* This,
6913 RPCOLEMESSAGE* pMsg,
6914 REFIID riid,
6915 void** pInterface);
6917 HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
6918 IRpcChannelBuffer3* This,
6919 RPCOLEMESSAGE* pMsg,
6920 DWORD* pdwDestContext,
6921 void** ppvDestContext);
6923 HRESULT (STDMETHODCALLTYPE *GetState)(
6924 IRpcChannelBuffer3* This,
6925 RPCOLEMESSAGE* pMsg,
6926 DWORD* pState);
6928 HRESULT (STDMETHODCALLTYPE *RegisterAsync)(
6929 IRpcChannelBuffer3* This,
6930 RPCOLEMESSAGE* pMsg,
6931 IAsyncManager* pAsyncMgr);
6933 END_INTERFACE
6936 #ifdef COBJMACROS
6937 /*** IUnknown methods ***/
6938 #define IRpcChannelBuffer3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6939 #define IRpcChannelBuffer3_AddRef(p) (p)->lpVtbl->AddRef(p)
6940 #define IRpcChannelBuffer3_Release(p) (p)->lpVtbl->Release(p)
6941 /*** IRpcChannelBuffer methods ***/
6942 #define IRpcChannelBuffer3_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6943 #define IRpcChannelBuffer3_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6944 #define IRpcChannelBuffer3_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6945 #define IRpcChannelBuffer3_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6946 #define IRpcChannelBuffer3_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6947 /*** IRpcChannelBuffer2 methods ***/
6948 #define IRpcChannelBuffer3_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
6949 /*** IRpcChannelBuffer3 methods ***/
6950 #define IRpcChannelBuffer3_Send(p,a,b) (p)->lpVtbl->Send(p,a,b)
6951 #define IRpcChannelBuffer3_Receive(p,a,b,c) (p)->lpVtbl->Receive(p,a,b,c)
6952 #define IRpcChannelBuffer3_Cancel(p,a) (p)->lpVtbl->Cancel(p,a)
6953 #define IRpcChannelBuffer3_GetCallContext(p,a,b,c) (p)->lpVtbl->GetCallContext(p,a,b,c)
6954 #define IRpcChannelBuffer3_GetDestCtxEx(p,a,b,c) (p)->lpVtbl->GetDestCtxEx(p,a,b,c)
6955 #define IRpcChannelBuffer3_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
6956 #define IRpcChannelBuffer3_RegisterAsync(p,a,b) (p)->lpVtbl->RegisterAsync(p,a,b)
6957 #endif
6959 #endif
6961 #define IRpcChannelBuffer3_METHODS \
6962 /*** IUnknown methods ***/ \
6963 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6964 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6965 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6966 /*** IRpcChannelBuffer methods ***/ \
6967 STDMETHOD_(HRESULT,GetBuffer)(THIS_ RPCOLEMESSAGE* pMessage, REFIID riid) PURE; \
6968 STDMETHOD_(HRESULT,SendReceive)(THIS_ RPCOLEMESSAGE* pMessage, ULONG* pStatus) PURE; \
6969 STDMETHOD_(HRESULT,FreeBuffer)(THIS_ RPCOLEMESSAGE* pMessage) PURE; \
6970 STDMETHOD_(HRESULT,GetDestCtx)(THIS_ DWORD* pdwDestContext, void** ppvDestContext) PURE; \
6971 STDMETHOD_(HRESULT,IsConnected)(THIS) PURE; \
6972 /*** IRpcChannelBuffer2 methods ***/ \
6973 STDMETHOD_(HRESULT,GetProtocolVersion)(THIS_ DWORD* pdwVersion) PURE; \
6974 /*** IRpcChannelBuffer3 methods ***/ \
6975 STDMETHOD_(HRESULT,Send)(THIS_ RPCOLEMESSAGE* pMsg, ULONG* pulStatus) PURE; \
6976 STDMETHOD_(HRESULT,Receive)(THIS_ RPCOLEMESSAGE* pMsg, ULONG ulSize, ULONG* pulStatus) PURE; \
6977 STDMETHOD_(HRESULT,Cancel)(THIS_ RPCOLEMESSAGE* pMsg) PURE; \
6978 STDMETHOD_(HRESULT,GetCallContext)(THIS_ RPCOLEMESSAGE* pMsg, REFIID riid, void** pInterface) PURE; \
6979 STDMETHOD_(HRESULT,GetDestCtxEx)(THIS_ RPCOLEMESSAGE* pMsg, DWORD* pdwDestContext, void** ppvDestContext) PURE; \
6980 STDMETHOD_(HRESULT,GetState)(THIS_ RPCOLEMESSAGE* pMsg, DWORD* pState) PURE; \
6981 STDMETHOD_(HRESULT,RegisterAsync)(THIS_ RPCOLEMESSAGE* pMsg, IAsyncManager* pAsyncMgr) PURE;
6983 HRESULT CALLBACK IRpcChannelBuffer3_Send_Proxy(
6984 IRpcChannelBuffer3* This,
6985 RPCOLEMESSAGE* pMsg,
6986 ULONG* pulStatus);
6987 void __RPC_STUB IRpcChannelBuffer3_Send_Stub(
6988 struct IRpcStubBuffer* This,
6989 struct IRpcChannelBuffer* pRpcChannelBuffer,
6990 PRPC_MESSAGE pRpcMessage,
6991 DWORD* pdwStubPhase);
6992 HRESULT CALLBACK IRpcChannelBuffer3_Receive_Proxy(
6993 IRpcChannelBuffer3* This,
6994 RPCOLEMESSAGE* pMsg,
6995 ULONG ulSize,
6996 ULONG* pulStatus);
6997 void __RPC_STUB IRpcChannelBuffer3_Receive_Stub(
6998 struct IRpcStubBuffer* This,
6999 struct IRpcChannelBuffer* pRpcChannelBuffer,
7000 PRPC_MESSAGE pRpcMessage,
7001 DWORD* pdwStubPhase);
7002 HRESULT CALLBACK IRpcChannelBuffer3_Cancel_Proxy(
7003 IRpcChannelBuffer3* This,
7004 RPCOLEMESSAGE* pMsg);
7005 void __RPC_STUB IRpcChannelBuffer3_Cancel_Stub(
7006 struct IRpcStubBuffer* This,
7007 struct IRpcChannelBuffer* pRpcChannelBuffer,
7008 PRPC_MESSAGE pRpcMessage,
7009 DWORD* pdwStubPhase);
7010 HRESULT CALLBACK IRpcChannelBuffer3_GetCallContext_Proxy(
7011 IRpcChannelBuffer3* This,
7012 RPCOLEMESSAGE* pMsg,
7013 REFIID riid,
7014 void** pInterface);
7015 void __RPC_STUB IRpcChannelBuffer3_GetCallContext_Stub(
7016 struct IRpcStubBuffer* This,
7017 struct IRpcChannelBuffer* pRpcChannelBuffer,
7018 PRPC_MESSAGE pRpcMessage,
7019 DWORD* pdwStubPhase);
7020 HRESULT CALLBACK IRpcChannelBuffer3_GetDestCtxEx_Proxy(
7021 IRpcChannelBuffer3* This,
7022 RPCOLEMESSAGE* pMsg,
7023 DWORD* pdwDestContext,
7024 void** ppvDestContext);
7025 void __RPC_STUB IRpcChannelBuffer3_GetDestCtxEx_Stub(
7026 struct IRpcStubBuffer* This,
7027 struct IRpcChannelBuffer* pRpcChannelBuffer,
7028 PRPC_MESSAGE pRpcMessage,
7029 DWORD* pdwStubPhase);
7030 HRESULT CALLBACK IRpcChannelBuffer3_GetState_Proxy(
7031 IRpcChannelBuffer3* This,
7032 RPCOLEMESSAGE* pMsg,
7033 DWORD* pState);
7034 void __RPC_STUB IRpcChannelBuffer3_GetState_Stub(
7035 struct IRpcStubBuffer* This,
7036 struct IRpcChannelBuffer* pRpcChannelBuffer,
7037 PRPC_MESSAGE pRpcMessage,
7038 DWORD* pdwStubPhase);
7039 HRESULT CALLBACK IRpcChannelBuffer3_RegisterAsync_Proxy(
7040 IRpcChannelBuffer3* This,
7041 RPCOLEMESSAGE* pMsg,
7042 IAsyncManager* pAsyncMgr);
7043 void __RPC_STUB IRpcChannelBuffer3_RegisterAsync_Stub(
7044 struct IRpcStubBuffer* This,
7045 struct IRpcChannelBuffer* pRpcChannelBuffer,
7046 PRPC_MESSAGE pRpcMessage,
7047 DWORD* pdwStubPhase);
7049 #endif /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */
7051 #ifndef __IRpcProxyBuffer_FWD_DEFINED__
7052 #define __IRpcProxyBuffer_FWD_DEFINED__
7053 typedef struct IRpcProxyBuffer IRpcProxyBuffer;
7054 #endif
7056 typedef IRpcProxyBuffer *LPRPCPROXYBUFFER;
7058 /*****************************************************************************
7059 * IRpcProxyBuffer interface
7061 #ifndef __IRpcProxyBuffer_INTERFACE_DEFINED__
7062 #define __IRpcProxyBuffer_INTERFACE_DEFINED__
7064 DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7065 #if defined(__cplusplus) && !defined(CINTERFACE)
7066 struct IRpcProxyBuffer : public IUnknown
7068 virtual HRESULT STDMETHODCALLTYPE Connect(
7069 IRpcChannelBuffer* pRpcChannelBuffer) = 0;
7071 virtual void STDMETHODCALLTYPE Disconnect(
7072 ) = 0;
7075 #else
7076 typedef struct IRpcProxyBufferVtbl IRpcProxyBufferVtbl;
7077 struct IRpcProxyBuffer {
7078 const IRpcProxyBufferVtbl* lpVtbl;
7080 struct IRpcProxyBufferVtbl {
7081 BEGIN_INTERFACE
7083 /*** IUnknown methods ***/
7084 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7085 IRpcProxyBuffer* This,
7086 REFIID riid,
7087 void** ppvObject);
7089 ULONG (STDMETHODCALLTYPE *AddRef)(
7090 IRpcProxyBuffer* This);
7092 ULONG (STDMETHODCALLTYPE *Release)(
7093 IRpcProxyBuffer* This);
7095 /*** IRpcProxyBuffer methods ***/
7096 HRESULT (STDMETHODCALLTYPE *Connect)(
7097 IRpcProxyBuffer* This,
7098 IRpcChannelBuffer* pRpcChannelBuffer);
7100 void (STDMETHODCALLTYPE *Disconnect)(
7101 IRpcProxyBuffer* This);
7103 END_INTERFACE
7106 #ifdef COBJMACROS
7107 /*** IUnknown methods ***/
7108 #define IRpcProxyBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7109 #define IRpcProxyBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7110 #define IRpcProxyBuffer_Release(p) (p)->lpVtbl->Release(p)
7111 /*** IRpcProxyBuffer methods ***/
7112 #define IRpcProxyBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7113 #define IRpcProxyBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7114 #endif
7116 #endif
7118 #define IRpcProxyBuffer_METHODS \
7119 /*** IUnknown methods ***/ \
7120 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7121 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7122 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7123 /*** IRpcProxyBuffer methods ***/ \
7124 STDMETHOD_(HRESULT,Connect)(THIS_ IRpcChannelBuffer* pRpcChannelBuffer) PURE; \
7125 STDMETHOD_(void,Disconnect)(THIS) PURE;
7127 HRESULT CALLBACK IRpcProxyBuffer_Connect_Proxy(
7128 IRpcProxyBuffer* This,
7129 IRpcChannelBuffer* pRpcChannelBuffer);
7130 void __RPC_STUB IRpcProxyBuffer_Connect_Stub(
7131 struct IRpcStubBuffer* This,
7132 struct IRpcChannelBuffer* pRpcChannelBuffer,
7133 PRPC_MESSAGE pRpcMessage,
7134 DWORD* pdwStubPhase);
7135 void CALLBACK IRpcProxyBuffer_Disconnect_Proxy(
7136 IRpcProxyBuffer* This);
7137 void __RPC_STUB IRpcProxyBuffer_Disconnect_Stub(
7138 struct IRpcStubBuffer* This,
7139 struct IRpcChannelBuffer* pRpcChannelBuffer,
7140 PRPC_MESSAGE pRpcMessage,
7141 DWORD* pdwStubPhase);
7143 #endif /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */
7145 #ifndef __IRpcStubBuffer_FWD_DEFINED__
7146 #define __IRpcStubBuffer_FWD_DEFINED__
7147 typedef struct IRpcStubBuffer IRpcStubBuffer;
7148 #endif
7150 typedef IRpcStubBuffer *LPRPCSTUBBUFFER;
7152 /*****************************************************************************
7153 * IRpcStubBuffer interface
7155 #ifndef __IRpcStubBuffer_INTERFACE_DEFINED__
7156 #define __IRpcStubBuffer_INTERFACE_DEFINED__
7158 DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7159 #if defined(__cplusplus) && !defined(CINTERFACE)
7160 struct IRpcStubBuffer : public IUnknown
7162 virtual HRESULT STDMETHODCALLTYPE Connect(
7163 IUnknown* pUnkServer) = 0;
7165 virtual void STDMETHODCALLTYPE Disconnect(
7166 ) = 0;
7168 virtual HRESULT STDMETHODCALLTYPE Invoke(
7169 RPCOLEMESSAGE* _prpcmsg,
7170 IRpcChannelBuffer* _pRpcChannelBuffer) = 0;
7172 virtual IRpcStubBuffer* STDMETHODCALLTYPE IsIIDSupported(
7173 REFIID riid) = 0;
7175 virtual ULONG STDMETHODCALLTYPE CountRefs(
7176 ) = 0;
7178 virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface(
7179 void** ppv) = 0;
7181 virtual void STDMETHODCALLTYPE DebugServerRelease(
7182 void* pv) = 0;
7185 #else
7186 typedef struct IRpcStubBufferVtbl IRpcStubBufferVtbl;
7187 struct IRpcStubBuffer {
7188 const IRpcStubBufferVtbl* lpVtbl;
7190 struct IRpcStubBufferVtbl {
7191 BEGIN_INTERFACE
7193 /*** IUnknown methods ***/
7194 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7195 IRpcStubBuffer* This,
7196 REFIID riid,
7197 void** ppvObject);
7199 ULONG (STDMETHODCALLTYPE *AddRef)(
7200 IRpcStubBuffer* This);
7202 ULONG (STDMETHODCALLTYPE *Release)(
7203 IRpcStubBuffer* This);
7205 /*** IRpcStubBuffer methods ***/
7206 HRESULT (STDMETHODCALLTYPE *Connect)(
7207 IRpcStubBuffer* This,
7208 IUnknown* pUnkServer);
7210 void (STDMETHODCALLTYPE *Disconnect)(
7211 IRpcStubBuffer* This);
7213 HRESULT (STDMETHODCALLTYPE *Invoke)(
7214 IRpcStubBuffer* This,
7215 RPCOLEMESSAGE* _prpcmsg,
7216 IRpcChannelBuffer* _pRpcChannelBuffer);
7218 IRpcStubBuffer* (STDMETHODCALLTYPE *IsIIDSupported)(
7219 IRpcStubBuffer* This,
7220 REFIID riid);
7222 ULONG (STDMETHODCALLTYPE *CountRefs)(
7223 IRpcStubBuffer* This);
7225 HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(
7226 IRpcStubBuffer* This,
7227 void** ppv);
7229 void (STDMETHODCALLTYPE *DebugServerRelease)(
7230 IRpcStubBuffer* This,
7231 void* pv);
7233 END_INTERFACE
7236 #ifdef COBJMACROS
7237 /*** IUnknown methods ***/
7238 #define IRpcStubBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7239 #define IRpcStubBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7240 #define IRpcStubBuffer_Release(p) (p)->lpVtbl->Release(p)
7241 /*** IRpcStubBuffer methods ***/
7242 #define IRpcStubBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7243 #define IRpcStubBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7244 #define IRpcStubBuffer_Invoke(p,a,b) (p)->lpVtbl->Invoke(p,a,b)
7245 #define IRpcStubBuffer_IsIIDSupported(p,a) (p)->lpVtbl->IsIIDSupported(p,a)
7246 #define IRpcStubBuffer_CountRefs(p) (p)->lpVtbl->CountRefs(p)
7247 #define IRpcStubBuffer_DebugServerQueryInterface(p,a) (p)->lpVtbl->DebugServerQueryInterface(p,a)
7248 #define IRpcStubBuffer_DebugServerRelease(p,a) (p)->lpVtbl->DebugServerRelease(p,a)
7249 #endif
7251 #endif
7253 #define IRpcStubBuffer_METHODS \
7254 /*** IUnknown methods ***/ \
7255 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7256 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7257 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7258 /*** IRpcStubBuffer methods ***/ \
7259 STDMETHOD_(HRESULT,Connect)(THIS_ IUnknown* pUnkServer) PURE; \
7260 STDMETHOD_(void,Disconnect)(THIS) PURE; \
7261 STDMETHOD_(HRESULT,Invoke)(THIS_ RPCOLEMESSAGE* _prpcmsg, IRpcChannelBuffer* _pRpcChannelBuffer) PURE; \
7262 STDMETHOD_(IRpcStubBuffer*,IsIIDSupported)(THIS_ REFIID riid) PURE; \
7263 STDMETHOD_(ULONG,CountRefs)(THIS) PURE; \
7264 STDMETHOD_(HRESULT,DebugServerQueryInterface)(THIS_ void** ppv) PURE; \
7265 STDMETHOD_(void,DebugServerRelease)(THIS_ void* pv) PURE;
7267 HRESULT CALLBACK IRpcStubBuffer_Connect_Proxy(
7268 IRpcStubBuffer* This,
7269 IUnknown* pUnkServer);
7270 void __RPC_STUB IRpcStubBuffer_Connect_Stub(
7271 struct IRpcStubBuffer* This,
7272 struct IRpcChannelBuffer* pRpcChannelBuffer,
7273 PRPC_MESSAGE pRpcMessage,
7274 DWORD* pdwStubPhase);
7275 void CALLBACK IRpcStubBuffer_Disconnect_Proxy(
7276 IRpcStubBuffer* This);
7277 void __RPC_STUB IRpcStubBuffer_Disconnect_Stub(
7278 struct IRpcStubBuffer* This,
7279 struct IRpcChannelBuffer* pRpcChannelBuffer,
7280 PRPC_MESSAGE pRpcMessage,
7281 DWORD* pdwStubPhase);
7282 HRESULT CALLBACK IRpcStubBuffer_Invoke_Proxy(
7283 IRpcStubBuffer* This,
7284 RPCOLEMESSAGE* _prpcmsg,
7285 IRpcChannelBuffer* _pRpcChannelBuffer);
7286 void __RPC_STUB IRpcStubBuffer_Invoke_Stub(
7287 struct IRpcStubBuffer* This,
7288 struct IRpcChannelBuffer* pRpcChannelBuffer,
7289 PRPC_MESSAGE pRpcMessage,
7290 DWORD* pdwStubPhase);
7291 IRpcStubBuffer* CALLBACK IRpcStubBuffer_IsIIDSupported_Proxy(
7292 IRpcStubBuffer* This,
7293 REFIID riid);
7294 void __RPC_STUB IRpcStubBuffer_IsIIDSupported_Stub(
7295 struct IRpcStubBuffer* This,
7296 struct IRpcChannelBuffer* pRpcChannelBuffer,
7297 PRPC_MESSAGE pRpcMessage,
7298 DWORD* pdwStubPhase);
7299 ULONG CALLBACK IRpcStubBuffer_CountRefs_Proxy(
7300 IRpcStubBuffer* This);
7301 void __RPC_STUB IRpcStubBuffer_CountRefs_Stub(
7302 struct IRpcStubBuffer* This,
7303 struct IRpcChannelBuffer* pRpcChannelBuffer,
7304 PRPC_MESSAGE pRpcMessage,
7305 DWORD* pdwStubPhase);
7306 HRESULT CALLBACK IRpcStubBuffer_DebugServerQueryInterface_Proxy(
7307 IRpcStubBuffer* This,
7308 void** ppv);
7309 void __RPC_STUB IRpcStubBuffer_DebugServerQueryInterface_Stub(
7310 struct IRpcStubBuffer* This,
7311 struct IRpcChannelBuffer* pRpcChannelBuffer,
7312 PRPC_MESSAGE pRpcMessage,
7313 DWORD* pdwStubPhase);
7314 void CALLBACK IRpcStubBuffer_DebugServerRelease_Proxy(
7315 IRpcStubBuffer* This,
7316 void* pv);
7317 void __RPC_STUB IRpcStubBuffer_DebugServerRelease_Stub(
7318 struct IRpcStubBuffer* This,
7319 struct IRpcChannelBuffer* pRpcChannelBuffer,
7320 PRPC_MESSAGE pRpcMessage,
7321 DWORD* pdwStubPhase);
7323 #endif /* __IRpcStubBuffer_INTERFACE_DEFINED__ */
7325 #ifndef __IPSFactoryBuffer_FWD_DEFINED__
7326 #define __IPSFactoryBuffer_FWD_DEFINED__
7327 typedef struct IPSFactoryBuffer IPSFactoryBuffer;
7328 #endif
7330 typedef IPSFactoryBuffer *LPPSFACTORYBUFFER;
7332 /*****************************************************************************
7333 * IPSFactoryBuffer interface
7335 #ifndef __IPSFactoryBuffer_INTERFACE_DEFINED__
7336 #define __IPSFactoryBuffer_INTERFACE_DEFINED__
7338 DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7339 #if defined(__cplusplus) && !defined(CINTERFACE)
7340 struct IPSFactoryBuffer : public IUnknown
7342 virtual HRESULT STDMETHODCALLTYPE CreateProxy(
7343 IUnknown* pUnkOuter,
7344 REFIID riid,
7345 IRpcProxyBuffer** ppProxy,
7346 void** ppv) = 0;
7348 virtual HRESULT STDMETHODCALLTYPE CreateStub(
7349 REFIID riid,
7350 IUnknown* pUnkServer,
7351 IRpcStubBuffer** ppStub) = 0;
7354 #else
7355 typedef struct IPSFactoryBufferVtbl IPSFactoryBufferVtbl;
7356 struct IPSFactoryBuffer {
7357 const IPSFactoryBufferVtbl* lpVtbl;
7359 struct IPSFactoryBufferVtbl {
7360 BEGIN_INTERFACE
7362 /*** IUnknown methods ***/
7363 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7364 IPSFactoryBuffer* This,
7365 REFIID riid,
7366 void** ppvObject);
7368 ULONG (STDMETHODCALLTYPE *AddRef)(
7369 IPSFactoryBuffer* This);
7371 ULONG (STDMETHODCALLTYPE *Release)(
7372 IPSFactoryBuffer* This);
7374 /*** IPSFactoryBuffer methods ***/
7375 HRESULT (STDMETHODCALLTYPE *CreateProxy)(
7376 IPSFactoryBuffer* This,
7377 IUnknown* pUnkOuter,
7378 REFIID riid,
7379 IRpcProxyBuffer** ppProxy,
7380 void** ppv);
7382 HRESULT (STDMETHODCALLTYPE *CreateStub)(
7383 IPSFactoryBuffer* This,
7384 REFIID riid,
7385 IUnknown* pUnkServer,
7386 IRpcStubBuffer** ppStub);
7388 END_INTERFACE
7391 #ifdef COBJMACROS
7392 /*** IUnknown methods ***/
7393 #define IPSFactoryBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7394 #define IPSFactoryBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7395 #define IPSFactoryBuffer_Release(p) (p)->lpVtbl->Release(p)
7396 /*** IPSFactoryBuffer methods ***/
7397 #define IPSFactoryBuffer_CreateProxy(p,a,b,c,d) (p)->lpVtbl->CreateProxy(p,a,b,c,d)
7398 #define IPSFactoryBuffer_CreateStub(p,a,b,c) (p)->lpVtbl->CreateStub(p,a,b,c)
7399 #endif
7401 #endif
7403 #define IPSFactoryBuffer_METHODS \
7404 /*** IUnknown methods ***/ \
7405 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7406 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7407 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7408 /*** IPSFactoryBuffer methods ***/ \
7409 STDMETHOD_(HRESULT,CreateProxy)(THIS_ IUnknown* pUnkOuter, REFIID riid, IRpcProxyBuffer** ppProxy, void** ppv) PURE; \
7410 STDMETHOD_(HRESULT,CreateStub)(THIS_ REFIID riid, IUnknown* pUnkServer, IRpcStubBuffer** ppStub) PURE;
7412 HRESULT CALLBACK IPSFactoryBuffer_CreateProxy_Proxy(
7413 IPSFactoryBuffer* This,
7414 IUnknown* pUnkOuter,
7415 REFIID riid,
7416 IRpcProxyBuffer** ppProxy,
7417 void** ppv);
7418 void __RPC_STUB IPSFactoryBuffer_CreateProxy_Stub(
7419 struct IRpcStubBuffer* This,
7420 struct IRpcChannelBuffer* pRpcChannelBuffer,
7421 PRPC_MESSAGE pRpcMessage,
7422 DWORD* pdwStubPhase);
7423 HRESULT CALLBACK IPSFactoryBuffer_CreateStub_Proxy(
7424 IPSFactoryBuffer* This,
7425 REFIID riid,
7426 IUnknown* pUnkServer,
7427 IRpcStubBuffer** ppStub);
7428 void __RPC_STUB IPSFactoryBuffer_CreateStub_Stub(
7429 struct IRpcStubBuffer* This,
7430 struct IRpcChannelBuffer* pRpcChannelBuffer,
7431 PRPC_MESSAGE pRpcMessage,
7432 DWORD* pdwStubPhase);
7434 #endif /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */
7436 #ifndef __IChannelHook_FWD_DEFINED__
7437 #define __IChannelHook_FWD_DEFINED__
7438 typedef struct IChannelHook IChannelHook;
7439 #endif
7441 typedef IChannelHook *LPCHANNELHOOK;
7443 typedef struct SChannelHookCallInfo {
7444 IID iid;
7445 DWORD cbSize;
7446 GUID uCausality;
7447 DWORD dwServerPid;
7448 DWORD iMethod;
7449 void *pObject;
7450 } SChannelHookCallInfo;
7452 /*****************************************************************************
7453 * IChannelHook interface
7455 #ifndef __IChannelHook_INTERFACE_DEFINED__
7456 #define __IChannelHook_INTERFACE_DEFINED__
7458 DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
7459 #if defined(__cplusplus) && !defined(CINTERFACE)
7460 struct IChannelHook : public IUnknown
7462 virtual void STDMETHODCALLTYPE ClientGetSize(
7463 REFGUID uExtent,
7464 REFIID riid,
7465 ULONG* pDataSize) = 0;
7467 virtual void STDMETHODCALLTYPE ClientFillBuffer(
7468 REFGUID uExtent,
7469 REFIID riid,
7470 ULONG* pDataSize,
7471 void* pDataBuffer) = 0;
7473 virtual void STDMETHODCALLTYPE ClientNotify(
7474 REFGUID uExtent,
7475 REFIID riid,
7476 ULONG cbDataSize,
7477 void* pDataBuffer,
7478 DWORD lDataRep,
7479 HRESULT hrFault) = 0;
7481 virtual void STDMETHODCALLTYPE ServerNotify(
7482 REFGUID uExtent,
7483 REFIID riid,
7484 ULONG cbDataSize,
7485 void* pDataBuffer,
7486 DWORD lDataRep) = 0;
7488 virtual void STDMETHODCALLTYPE ServerGetSize(
7489 REFGUID uExtent,
7490 REFIID riid,
7491 HRESULT hrFault,
7492 ULONG* pDataSize) = 0;
7494 virtual void STDMETHODCALLTYPE ServerFillBuffer(
7495 REFGUID uExtent,
7496 REFIID riid,
7497 ULONG* pDataSize,
7498 void* pDataBuffer,
7499 HRESULT hrFault) = 0;
7502 #else
7503 typedef struct IChannelHookVtbl IChannelHookVtbl;
7504 struct IChannelHook {
7505 const IChannelHookVtbl* lpVtbl;
7507 struct IChannelHookVtbl {
7508 BEGIN_INTERFACE
7510 /*** IUnknown methods ***/
7511 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7512 IChannelHook* This,
7513 REFIID riid,
7514 void** ppvObject);
7516 ULONG (STDMETHODCALLTYPE *AddRef)(
7517 IChannelHook* This);
7519 ULONG (STDMETHODCALLTYPE *Release)(
7520 IChannelHook* This);
7522 /*** IChannelHook methods ***/
7523 void (STDMETHODCALLTYPE *ClientGetSize)(
7524 IChannelHook* This,
7525 REFGUID uExtent,
7526 REFIID riid,
7527 ULONG* pDataSize);
7529 void (STDMETHODCALLTYPE *ClientFillBuffer)(
7530 IChannelHook* This,
7531 REFGUID uExtent,
7532 REFIID riid,
7533 ULONG* pDataSize,
7534 void* pDataBuffer);
7536 void (STDMETHODCALLTYPE *ClientNotify)(
7537 IChannelHook* This,
7538 REFGUID uExtent,
7539 REFIID riid,
7540 ULONG cbDataSize,
7541 void* pDataBuffer,
7542 DWORD lDataRep,
7543 HRESULT hrFault);
7545 void (STDMETHODCALLTYPE *ServerNotify)(
7546 IChannelHook* This,
7547 REFGUID uExtent,
7548 REFIID riid,
7549 ULONG cbDataSize,
7550 void* pDataBuffer,
7551 DWORD lDataRep);
7553 void (STDMETHODCALLTYPE *ServerGetSize)(
7554 IChannelHook* This,
7555 REFGUID uExtent,
7556 REFIID riid,
7557 HRESULT hrFault,
7558 ULONG* pDataSize);
7560 void (STDMETHODCALLTYPE *ServerFillBuffer)(
7561 IChannelHook* This,
7562 REFGUID uExtent,
7563 REFIID riid,
7564 ULONG* pDataSize,
7565 void* pDataBuffer,
7566 HRESULT hrFault);
7568 END_INTERFACE
7571 #ifdef COBJMACROS
7572 /*** IUnknown methods ***/
7573 #define IChannelHook_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7574 #define IChannelHook_AddRef(p) (p)->lpVtbl->AddRef(p)
7575 #define IChannelHook_Release(p) (p)->lpVtbl->Release(p)
7576 /*** IChannelHook methods ***/
7577 #define IChannelHook_ClientGetSize(p,a,b,c) (p)->lpVtbl->ClientGetSize(p,a,b,c)
7578 #define IChannelHook_ClientFillBuffer(p,a,b,c,d) (p)->lpVtbl->ClientFillBuffer(p,a,b,c,d)
7579 #define IChannelHook_ClientNotify(p,a,b,c,d,e,f) (p)->lpVtbl->ClientNotify(p,a,b,c,d,e,f)
7580 #define IChannelHook_ServerNotify(p,a,b,c,d,e) (p)->lpVtbl->ServerNotify(p,a,b,c,d,e)
7581 #define IChannelHook_ServerGetSize(p,a,b,c,d) (p)->lpVtbl->ServerGetSize(p,a,b,c,d)
7582 #define IChannelHook_ServerFillBuffer(p,a,b,c,d,e) (p)->lpVtbl->ServerFillBuffer(p,a,b,c,d,e)
7583 #endif
7585 #endif
7587 #define IChannelHook_METHODS \
7588 /*** IUnknown methods ***/ \
7589 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7590 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7591 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7592 /*** IChannelHook methods ***/ \
7593 STDMETHOD_(void,ClientGetSize)(THIS_ REFGUID uExtent, REFIID riid, ULONG* pDataSize) PURE; \
7594 STDMETHOD_(void,ClientFillBuffer)(THIS_ REFGUID uExtent, REFIID riid, ULONG* pDataSize, void* pDataBuffer) PURE; \
7595 STDMETHOD_(void,ClientNotify)(THIS_ REFGUID uExtent, REFIID riid, ULONG cbDataSize, void* pDataBuffer, DWORD lDataRep, HRESULT hrFault) PURE; \
7596 STDMETHOD_(void,ServerNotify)(THIS_ REFGUID uExtent, REFIID riid, ULONG cbDataSize, void* pDataBuffer, DWORD lDataRep) PURE; \
7597 STDMETHOD_(void,ServerGetSize)(THIS_ REFGUID uExtent, REFIID riid, HRESULT hrFault, ULONG* pDataSize) PURE; \
7598 STDMETHOD_(void,ServerFillBuffer)(THIS_ REFGUID uExtent, REFIID riid, ULONG* pDataSize, void* pDataBuffer, HRESULT hrFault) PURE;
7600 void CALLBACK IChannelHook_ClientGetSize_Proxy(
7601 IChannelHook* This,
7602 REFGUID uExtent,
7603 REFIID riid,
7604 ULONG* pDataSize);
7605 void __RPC_STUB IChannelHook_ClientGetSize_Stub(
7606 struct IRpcStubBuffer* This,
7607 struct IRpcChannelBuffer* pRpcChannelBuffer,
7608 PRPC_MESSAGE pRpcMessage,
7609 DWORD* pdwStubPhase);
7610 void CALLBACK IChannelHook_ClientFillBuffer_Proxy(
7611 IChannelHook* This,
7612 REFGUID uExtent,
7613 REFIID riid,
7614 ULONG* pDataSize,
7615 void* pDataBuffer);
7616 void __RPC_STUB IChannelHook_ClientFillBuffer_Stub(
7617 struct IRpcStubBuffer* This,
7618 struct IRpcChannelBuffer* pRpcChannelBuffer,
7619 PRPC_MESSAGE pRpcMessage,
7620 DWORD* pdwStubPhase);
7621 void CALLBACK IChannelHook_ClientNotify_Proxy(
7622 IChannelHook* This,
7623 REFGUID uExtent,
7624 REFIID riid,
7625 ULONG cbDataSize,
7626 void* pDataBuffer,
7627 DWORD lDataRep,
7628 HRESULT hrFault);
7629 void __RPC_STUB IChannelHook_ClientNotify_Stub(
7630 struct IRpcStubBuffer* This,
7631 struct IRpcChannelBuffer* pRpcChannelBuffer,
7632 PRPC_MESSAGE pRpcMessage,
7633 DWORD* pdwStubPhase);
7634 void CALLBACK IChannelHook_ServerNotify_Proxy(
7635 IChannelHook* This,
7636 REFGUID uExtent,
7637 REFIID riid,
7638 ULONG cbDataSize,
7639 void* pDataBuffer,
7640 DWORD lDataRep);
7641 void __RPC_STUB IChannelHook_ServerNotify_Stub(
7642 struct IRpcStubBuffer* This,
7643 struct IRpcChannelBuffer* pRpcChannelBuffer,
7644 PRPC_MESSAGE pRpcMessage,
7645 DWORD* pdwStubPhase);
7646 void CALLBACK IChannelHook_ServerGetSize_Proxy(
7647 IChannelHook* This,
7648 REFGUID uExtent,
7649 REFIID riid,
7650 HRESULT hrFault,
7651 ULONG* pDataSize);
7652 void __RPC_STUB IChannelHook_ServerGetSize_Stub(
7653 struct IRpcStubBuffer* This,
7654 struct IRpcChannelBuffer* pRpcChannelBuffer,
7655 PRPC_MESSAGE pRpcMessage,
7656 DWORD* pdwStubPhase);
7657 void CALLBACK IChannelHook_ServerFillBuffer_Proxy(
7658 IChannelHook* This,
7659 REFGUID uExtent,
7660 REFIID riid,
7661 ULONG* pDataSize,
7662 void* pDataBuffer,
7663 HRESULT hrFault);
7664 void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
7665 struct IRpcStubBuffer* This,
7666 struct IRpcChannelBuffer* pRpcChannelBuffer,
7667 PRPC_MESSAGE pRpcMessage,
7668 DWORD* pdwStubPhase);
7670 #endif /* __IChannelHook_INTERFACE_DEFINED__ */
7672 extern const FMTID FMTID_SummaryInformation;
7674 extern const FMTID FMTID_DocSummaryInformation;
7676 extern const FMTID FMTID_UserDefinedProperties;
7678 #ifndef __IClientSecurity_FWD_DEFINED__
7679 #define __IClientSecurity_FWD_DEFINED__
7680 typedef struct IClientSecurity IClientSecurity;
7681 #endif
7683 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
7684 DWORD dwAuthnSvc;
7685 DWORD dwAuthzSvc;
7686 OLECHAR *pPrincipalName;
7687 HRESULT hr;
7688 } SOLE_AUTHENTICATION_SERVICE;
7690 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
7692 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
7693 EOAC_NONE = 0x0,
7694 EOAC_MUTUAL_AUTH = 0x1,
7695 EOAC_CLOAKING = 0x10,
7696 EOAC_SECURE_REFS = 0x2,
7697 EOAC_ACCESS_CONTROL = 0x4,
7698 EOAC_APPID = 0x8
7699 } EOLE_AUTHENTICATION_CAPABILITIES;
7701 /*****************************************************************************
7702 * IClientSecurity interface
7704 #ifndef __IClientSecurity_INTERFACE_DEFINED__
7705 #define __IClientSecurity_INTERFACE_DEFINED__
7707 DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7708 #if defined(__cplusplus) && !defined(CINTERFACE)
7709 struct IClientSecurity : public IUnknown
7711 virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
7712 IUnknown* pProxy,
7713 DWORD* pAuthnSvc,
7714 DWORD* pAuthzSvc,
7715 OLECHAR** pServerPrincName,
7716 DWORD* pAuthnLevel,
7717 DWORD* pImpLevel,
7718 void** pAuthInfo,
7719 DWORD* pCapabilites) = 0;
7721 virtual HRESULT STDMETHODCALLTYPE SetBlanket(
7722 IUnknown* pProxy,
7723 DWORD AuthnSvc,
7724 DWORD AuthzSvc,
7725 OLECHAR* pServerPrincName,
7726 DWORD AuthnLevel,
7727 DWORD ImpLevel,
7728 void* pAuthInfo,
7729 DWORD Capabilities) = 0;
7731 virtual HRESULT STDMETHODCALLTYPE CopyProxy(
7732 IUnknown* pProxy,
7733 IUnknown** ppCopy) = 0;
7736 #else
7737 typedef struct IClientSecurityVtbl IClientSecurityVtbl;
7738 struct IClientSecurity {
7739 const IClientSecurityVtbl* lpVtbl;
7741 struct IClientSecurityVtbl {
7742 BEGIN_INTERFACE
7744 /*** IUnknown methods ***/
7745 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7746 IClientSecurity* This,
7747 REFIID riid,
7748 void** ppvObject);
7750 ULONG (STDMETHODCALLTYPE *AddRef)(
7751 IClientSecurity* This);
7753 ULONG (STDMETHODCALLTYPE *Release)(
7754 IClientSecurity* This);
7756 /*** IClientSecurity methods ***/
7757 HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
7758 IClientSecurity* This,
7759 IUnknown* pProxy,
7760 DWORD* pAuthnSvc,
7761 DWORD* pAuthzSvc,
7762 OLECHAR** pServerPrincName,
7763 DWORD* pAuthnLevel,
7764 DWORD* pImpLevel,
7765 void** pAuthInfo,
7766 DWORD* pCapabilites);
7768 HRESULT (STDMETHODCALLTYPE *SetBlanket)(
7769 IClientSecurity* This,
7770 IUnknown* pProxy,
7771 DWORD AuthnSvc,
7772 DWORD AuthzSvc,
7773 OLECHAR* pServerPrincName,
7774 DWORD AuthnLevel,
7775 DWORD ImpLevel,
7776 void* pAuthInfo,
7777 DWORD Capabilities);
7779 HRESULT (STDMETHODCALLTYPE *CopyProxy)(
7780 IClientSecurity* This,
7781 IUnknown* pProxy,
7782 IUnknown** ppCopy);
7784 END_INTERFACE
7787 #ifdef COBJMACROS
7788 /*** IUnknown methods ***/
7789 #define IClientSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7790 #define IClientSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
7791 #define IClientSecurity_Release(p) (p)->lpVtbl->Release(p)
7792 /*** IClientSecurity methods ***/
7793 #define IClientSecurity_QueryBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g,h)
7794 #define IClientSecurity_SetBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->SetBlanket(p,a,b,c,d,e,f,g,h)
7795 #define IClientSecurity_CopyProxy(p,a,b) (p)->lpVtbl->CopyProxy(p,a,b)
7796 #endif
7798 #endif
7800 #define IClientSecurity_METHODS \
7801 /*** IUnknown methods ***/ \
7802 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7803 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7804 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7805 /*** IClientSecurity methods ***/ \
7806 STDMETHOD_(HRESULT,QueryBlanket)(THIS_ IUnknown* pProxy, DWORD* pAuthnSvc, DWORD* pAuthzSvc, OLECHAR** pServerPrincName, DWORD* pAuthnLevel, DWORD* pImpLevel, void** pAuthInfo, DWORD* pCapabilites) PURE; \
7807 STDMETHOD_(HRESULT,SetBlanket)(THIS_ IUnknown* pProxy, DWORD AuthnSvc, DWORD AuthzSvc, OLECHAR* pServerPrincName, DWORD AuthnLevel, DWORD ImpLevel, void* pAuthInfo, DWORD Capabilities) PURE; \
7808 STDMETHOD_(HRESULT,CopyProxy)(THIS_ IUnknown* pProxy, IUnknown** ppCopy) PURE;
7810 HRESULT CALLBACK IClientSecurity_QueryBlanket_Proxy(
7811 IClientSecurity* This,
7812 IUnknown* pProxy,
7813 DWORD* pAuthnSvc,
7814 DWORD* pAuthzSvc,
7815 OLECHAR** pServerPrincName,
7816 DWORD* pAuthnLevel,
7817 DWORD* pImpLevel,
7818 void** pAuthInfo,
7819 DWORD* pCapabilites);
7820 void __RPC_STUB IClientSecurity_QueryBlanket_Stub(
7821 struct IRpcStubBuffer* This,
7822 struct IRpcChannelBuffer* pRpcChannelBuffer,
7823 PRPC_MESSAGE pRpcMessage,
7824 DWORD* pdwStubPhase);
7825 HRESULT CALLBACK IClientSecurity_SetBlanket_Proxy(
7826 IClientSecurity* This,
7827 IUnknown* pProxy,
7828 DWORD AuthnSvc,
7829 DWORD AuthzSvc,
7830 OLECHAR* pServerPrincName,
7831 DWORD AuthnLevel,
7832 DWORD ImpLevel,
7833 void* pAuthInfo,
7834 DWORD Capabilities);
7835 void __RPC_STUB IClientSecurity_SetBlanket_Stub(
7836 struct IRpcStubBuffer* This,
7837 struct IRpcChannelBuffer* pRpcChannelBuffer,
7838 PRPC_MESSAGE pRpcMessage,
7839 DWORD* pdwStubPhase);
7840 HRESULT CALLBACK IClientSecurity_CopyProxy_Proxy(
7841 IClientSecurity* This,
7842 IUnknown* pProxy,
7843 IUnknown** ppCopy);
7844 void __RPC_STUB IClientSecurity_CopyProxy_Stub(
7845 struct IRpcStubBuffer* This,
7846 struct IRpcChannelBuffer* pRpcChannelBuffer,
7847 PRPC_MESSAGE pRpcMessage,
7848 DWORD* pdwStubPhase);
7850 #endif /* __IClientSecurity_INTERFACE_DEFINED__ */
7852 #ifndef __IServerSecurity_FWD_DEFINED__
7853 #define __IServerSecurity_FWD_DEFINED__
7854 typedef struct IServerSecurity IServerSecurity;
7855 #endif
7857 /*****************************************************************************
7858 * IServerSecurity interface
7860 #ifndef __IServerSecurity_INTERFACE_DEFINED__
7861 #define __IServerSecurity_INTERFACE_DEFINED__
7863 DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7864 #if defined(__cplusplus) && !defined(CINTERFACE)
7865 struct IServerSecurity : public IUnknown
7867 virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
7868 DWORD* pAuthnSvc,
7869 DWORD* pAuthzSvc,
7870 OLECHAR** pServerPrincName,
7871 DWORD* pAuthnLevel,
7872 DWORD* pImpLevel,
7873 void** pPrivs,
7874 DWORD* pCapabilities) = 0;
7876 virtual HRESULT STDMETHODCALLTYPE ImpersonateClient(
7877 ) = 0;
7879 virtual HRESULT STDMETHODCALLTYPE RevertToSelf(
7880 ) = 0;
7882 virtual BOOL STDMETHODCALLTYPE IsImpersonating(
7883 ) = 0;
7886 #else
7887 typedef struct IServerSecurityVtbl IServerSecurityVtbl;
7888 struct IServerSecurity {
7889 const IServerSecurityVtbl* lpVtbl;
7891 struct IServerSecurityVtbl {
7892 BEGIN_INTERFACE
7894 /*** IUnknown methods ***/
7895 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7896 IServerSecurity* This,
7897 REFIID riid,
7898 void** ppvObject);
7900 ULONG (STDMETHODCALLTYPE *AddRef)(
7901 IServerSecurity* This);
7903 ULONG (STDMETHODCALLTYPE *Release)(
7904 IServerSecurity* This);
7906 /*** IServerSecurity methods ***/
7907 HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
7908 IServerSecurity* This,
7909 DWORD* pAuthnSvc,
7910 DWORD* pAuthzSvc,
7911 OLECHAR** pServerPrincName,
7912 DWORD* pAuthnLevel,
7913 DWORD* pImpLevel,
7914 void** pPrivs,
7915 DWORD* pCapabilities);
7917 HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(
7918 IServerSecurity* This);
7920 HRESULT (STDMETHODCALLTYPE *RevertToSelf)(
7921 IServerSecurity* This);
7923 BOOL (STDMETHODCALLTYPE *IsImpersonating)(
7924 IServerSecurity* This);
7926 END_INTERFACE
7929 #ifdef COBJMACROS
7930 /*** IUnknown methods ***/
7931 #define IServerSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7932 #define IServerSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
7933 #define IServerSecurity_Release(p) (p)->lpVtbl->Release(p)
7934 /*** IServerSecurity methods ***/
7935 #define IServerSecurity_QueryBlanket(p,a,b,c,d,e,f,g) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g)
7936 #define IServerSecurity_ImpersonateClient(p) (p)->lpVtbl->ImpersonateClient(p)
7937 #define IServerSecurity_RevertToSelf(p) (p)->lpVtbl->RevertToSelf(p)
7938 #define IServerSecurity_IsImpersonating(p) (p)->lpVtbl->IsImpersonating(p)
7939 #endif
7941 #endif
7943 #define IServerSecurity_METHODS \
7944 /*** IUnknown methods ***/ \
7945 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7946 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7947 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7948 /*** IServerSecurity methods ***/ \
7949 STDMETHOD_(HRESULT,QueryBlanket)(THIS_ DWORD* pAuthnSvc, DWORD* pAuthzSvc, OLECHAR** pServerPrincName, DWORD* pAuthnLevel, DWORD* pImpLevel, void** pPrivs, DWORD* pCapabilities) PURE; \
7950 STDMETHOD_(HRESULT,ImpersonateClient)(THIS) PURE; \
7951 STDMETHOD_(HRESULT,RevertToSelf)(THIS) PURE; \
7952 STDMETHOD_(BOOL,IsImpersonating)(THIS) PURE;
7954 HRESULT CALLBACK IServerSecurity_QueryBlanket_Proxy(
7955 IServerSecurity* This,
7956 DWORD* pAuthnSvc,
7957 DWORD* pAuthzSvc,
7958 OLECHAR** pServerPrincName,
7959 DWORD* pAuthnLevel,
7960 DWORD* pImpLevel,
7961 void** pPrivs,
7962 DWORD* pCapabilities);
7963 void __RPC_STUB IServerSecurity_QueryBlanket_Stub(
7964 struct IRpcStubBuffer* This,
7965 struct IRpcChannelBuffer* pRpcChannelBuffer,
7966 PRPC_MESSAGE pRpcMessage,
7967 DWORD* pdwStubPhase);
7968 HRESULT CALLBACK IServerSecurity_ImpersonateClient_Proxy(
7969 IServerSecurity* This);
7970 void __RPC_STUB IServerSecurity_ImpersonateClient_Stub(
7971 struct IRpcStubBuffer* This,
7972 struct IRpcChannelBuffer* pRpcChannelBuffer,
7973 PRPC_MESSAGE pRpcMessage,
7974 DWORD* pdwStubPhase);
7975 HRESULT CALLBACK IServerSecurity_RevertToSelf_Proxy(
7976 IServerSecurity* This);
7977 void __RPC_STUB IServerSecurity_RevertToSelf_Stub(
7978 struct IRpcStubBuffer* This,
7979 struct IRpcChannelBuffer* pRpcChannelBuffer,
7980 PRPC_MESSAGE pRpcMessage,
7981 DWORD* pdwStubPhase);
7982 BOOL CALLBACK IServerSecurity_IsImpersonating_Proxy(
7983 IServerSecurity* This);
7984 void __RPC_STUB IServerSecurity_IsImpersonating_Stub(
7985 struct IRpcStubBuffer* This,
7986 struct IRpcChannelBuffer* pRpcChannelBuffer,
7987 PRPC_MESSAGE pRpcMessage,
7988 DWORD* pdwStubPhase);
7990 #endif /* __IServerSecurity_INTERFACE_DEFINED__ */
7992 #ifndef __IAsyncSetup_FWD_DEFINED__
7993 #define __IAsyncSetup_FWD_DEFINED__
7994 typedef struct IAsyncSetup IAsyncSetup;
7995 #endif
7997 /*****************************************************************************
7998 * IAsyncSetup interface
8000 #ifndef __IAsyncSetup_INTERFACE_DEFINED__
8001 #define __IAsyncSetup_INTERFACE_DEFINED__
8003 DEFINE_GUID(IID_IAsyncSetup, 0x00000024, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8004 #if defined(__cplusplus) && !defined(CINTERFACE)
8005 struct IAsyncSetup : public IUnknown
8007 virtual HRESULT STDMETHODCALLTYPE GetAsyncManager(
8008 REFIID riid,
8009 IUnknown* pOuter,
8010 DWORD dwFlags,
8011 IUnknown** ppInner,
8012 IAsyncManager** ppAsyncMgr) = 0;
8015 #else
8016 typedef struct IAsyncSetupVtbl IAsyncSetupVtbl;
8017 struct IAsyncSetup {
8018 const IAsyncSetupVtbl* lpVtbl;
8020 struct IAsyncSetupVtbl {
8021 BEGIN_INTERFACE
8023 /*** IUnknown methods ***/
8024 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8025 IAsyncSetup* This,
8026 REFIID riid,
8027 void** ppvObject);
8029 ULONG (STDMETHODCALLTYPE *AddRef)(
8030 IAsyncSetup* This);
8032 ULONG (STDMETHODCALLTYPE *Release)(
8033 IAsyncSetup* This);
8035 /*** IAsyncSetup methods ***/
8036 HRESULT (STDMETHODCALLTYPE *GetAsyncManager)(
8037 IAsyncSetup* This,
8038 REFIID riid,
8039 IUnknown* pOuter,
8040 DWORD dwFlags,
8041 IUnknown** ppInner,
8042 IAsyncManager** ppAsyncMgr);
8044 END_INTERFACE
8047 #ifdef COBJMACROS
8048 /*** IUnknown methods ***/
8049 #define IAsyncSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8050 #define IAsyncSetup_AddRef(p) (p)->lpVtbl->AddRef(p)
8051 #define IAsyncSetup_Release(p) (p)->lpVtbl->Release(p)
8052 /*** IAsyncSetup methods ***/
8053 #define IAsyncSetup_GetAsyncManager(p,a,b,c,d,e) (p)->lpVtbl->GetAsyncManager(p,a,b,c,d,e)
8054 #endif
8056 #endif
8058 #define IAsyncSetup_METHODS \
8059 /*** IUnknown methods ***/ \
8060 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8061 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8062 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8063 /*** IAsyncSetup methods ***/ \
8064 STDMETHOD_(HRESULT,GetAsyncManager)(THIS_ REFIID riid, IUnknown* pOuter, DWORD dwFlags, IUnknown** ppInner, IAsyncManager** ppAsyncMgr) PURE;
8066 HRESULT CALLBACK IAsyncSetup_GetAsyncManager_Proxy(
8067 IAsyncSetup* This,
8068 REFIID riid,
8069 IUnknown* pOuter,
8070 DWORD dwFlags,
8071 IUnknown** ppInner,
8072 IAsyncManager** ppAsyncMgr);
8073 void __RPC_STUB IAsyncSetup_GetAsyncManager_Stub(
8074 struct IRpcStubBuffer* This,
8075 struct IRpcChannelBuffer* pRpcChannelBuffer,
8076 PRPC_MESSAGE pRpcMessage,
8077 DWORD* pdwStubPhase);
8079 #endif /* __IAsyncSetup_INTERFACE_DEFINED__ */
8081 typedef enum tagDCOM_CALL_STATE {
8082 DCOM_NONE = 0,
8083 DCOM_CALL_COMPLETE = 1,
8084 DCOM_CALL_CANCELED = 2
8085 } DCOM_CALL_STATE;
8087 /*****************************************************************************
8088 * IAsyncManager interface
8090 #ifndef __IAsyncManager_INTERFACE_DEFINED__
8091 #define __IAsyncManager_INTERFACE_DEFINED__
8093 DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8094 #if defined(__cplusplus) && !defined(CINTERFACE)
8095 struct IAsyncManager : public IUnknown
8097 virtual HRESULT STDMETHODCALLTYPE CompleteCall(
8098 HRESULT Result) = 0;
8100 virtual HRESULT STDMETHODCALLTYPE GetCallContext(
8101 REFIID riid,
8102 void** pInterface) = 0;
8104 virtual HRESULT STDMETHODCALLTYPE GetState(
8105 ULONG* pulStateFlags) = 0;
8108 #else
8109 typedef struct IAsyncManagerVtbl IAsyncManagerVtbl;
8110 struct IAsyncManager {
8111 const IAsyncManagerVtbl* lpVtbl;
8113 struct IAsyncManagerVtbl {
8114 BEGIN_INTERFACE
8116 /*** IUnknown methods ***/
8117 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8118 IAsyncManager* This,
8119 REFIID riid,
8120 void** ppvObject);
8122 ULONG (STDMETHODCALLTYPE *AddRef)(
8123 IAsyncManager* This);
8125 ULONG (STDMETHODCALLTYPE *Release)(
8126 IAsyncManager* This);
8128 /*** IAsyncManager methods ***/
8129 HRESULT (STDMETHODCALLTYPE *CompleteCall)(
8130 IAsyncManager* This,
8131 HRESULT Result);
8133 HRESULT (STDMETHODCALLTYPE *GetCallContext)(
8134 IAsyncManager* This,
8135 REFIID riid,
8136 void** pInterface);
8138 HRESULT (STDMETHODCALLTYPE *GetState)(
8139 IAsyncManager* This,
8140 ULONG* pulStateFlags);
8142 END_INTERFACE
8145 #ifdef COBJMACROS
8146 /*** IUnknown methods ***/
8147 #define IAsyncManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8148 #define IAsyncManager_AddRef(p) (p)->lpVtbl->AddRef(p)
8149 #define IAsyncManager_Release(p) (p)->lpVtbl->Release(p)
8150 /*** IAsyncManager methods ***/
8151 #define IAsyncManager_CompleteCall(p,a) (p)->lpVtbl->CompleteCall(p,a)
8152 #define IAsyncManager_GetCallContext(p,a,b) (p)->lpVtbl->GetCallContext(p,a,b)
8153 #define IAsyncManager_GetState(p,a) (p)->lpVtbl->GetState(p,a)
8154 #endif
8156 #endif
8158 #define IAsyncManager_METHODS \
8159 /*** IUnknown methods ***/ \
8160 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8161 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8162 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8163 /*** IAsyncManager methods ***/ \
8164 STDMETHOD_(HRESULT,CompleteCall)(THIS_ HRESULT Result) PURE; \
8165 STDMETHOD_(HRESULT,GetCallContext)(THIS_ REFIID riid, void** pInterface) PURE; \
8166 STDMETHOD_(HRESULT,GetState)(THIS_ ULONG* pulStateFlags) PURE;
8168 HRESULT CALLBACK IAsyncManager_CompleteCall_Proxy(
8169 IAsyncManager* This,
8170 HRESULT Result);
8171 void __RPC_STUB IAsyncManager_CompleteCall_Stub(
8172 struct IRpcStubBuffer* This,
8173 struct IRpcChannelBuffer* pRpcChannelBuffer,
8174 PRPC_MESSAGE pRpcMessage,
8175 DWORD* pdwStubPhase);
8176 HRESULT CALLBACK IAsyncManager_GetCallContext_Proxy(
8177 IAsyncManager* This,
8178 REFIID riid,
8179 void** pInterface);
8180 void __RPC_STUB IAsyncManager_GetCallContext_Stub(
8181 struct IRpcStubBuffer* This,
8182 struct IRpcChannelBuffer* pRpcChannelBuffer,
8183 PRPC_MESSAGE pRpcMessage,
8184 DWORD* pdwStubPhase);
8185 HRESULT CALLBACK IAsyncManager_GetState_Proxy(
8186 IAsyncManager* This,
8187 ULONG* pulStateFlags);
8188 void __RPC_STUB IAsyncManager_GetState_Stub(
8189 struct IRpcStubBuffer* This,
8190 struct IRpcChannelBuffer* pRpcChannelBuffer,
8191 PRPC_MESSAGE pRpcMessage,
8192 DWORD* pdwStubPhase);
8194 #endif /* __IAsyncManager_INTERFACE_DEFINED__ */
8196 #ifdef __cplusplus
8198 #endif
8199 #endif /* __WIDL_OBJIDL_H */