Update winapi and c2man so they know about -ret16. Remove support for
[wine.git] / include / objidl.h
blob8eb440cc4493af27ec61b653c2e1753aaa4d805e
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 __IStream16_FWD_DEFINED__
17 #define __IStream16_FWD_DEFINED__
18 typedef struct IStream16 IStream16;
19 #endif
21 #ifndef __IEnumString_FWD_DEFINED__
22 #define __IEnumString_FWD_DEFINED__
23 typedef struct IEnumString IEnumString;
24 #endif
26 #ifndef __IRunningObjectTable_FWD_DEFINED__
27 #define __IRunningObjectTable_FWD_DEFINED__
28 typedef struct IRunningObjectTable IRunningObjectTable;
29 #endif
31 #ifndef __IMoniker_FWD_DEFINED__
32 #define __IMoniker_FWD_DEFINED__
33 typedef struct IMoniker IMoniker;
34 #endif
36 #ifndef __IAdviseSink_FWD_DEFINED__
37 #define __IAdviseSink_FWD_DEFINED__
38 typedef struct IAdviseSink IAdviseSink;
39 #endif
41 #ifndef __IAsyncManager_FWD_DEFINED__
42 #define __IAsyncManager_FWD_DEFINED__
43 typedef struct IAsyncManager IAsyncManager;
44 #endif
46 #ifndef __IMarshal_FWD_DEFINED__
47 #define __IMarshal_FWD_DEFINED__
48 typedef struct IMarshal IMarshal;
49 #endif
51 typedef IMarshal *LPMARSHAL;
53 /*****************************************************************************
54 * IMarshal interface
56 #ifndef __IMarshal_INTERFACE_DEFINED__
57 #define __IMarshal_INTERFACE_DEFINED__
59 DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
60 #if defined(__cplusplus) && !defined(CINTERFACE)
61 struct IMarshal : public IUnknown
63 virtual HRESULT STDMETHODCALLTYPE GetUnmarshalClass(
64 REFIID riid,
65 void* pv,
66 DWORD dwDestContext,
67 void* pvDestContext,
68 DWORD mshlflags,
69 CLSID* pCid) = 0;
71 virtual HRESULT STDMETHODCALLTYPE GetMarshalSizeMax(
72 REFIID riid,
73 void* pv,
74 DWORD dwDestContext,
75 void* pvDestContext,
76 DWORD mshlflags,
77 DWORD* pSize) = 0;
79 virtual HRESULT STDMETHODCALLTYPE MarshalInterface(
80 IStream* pStm,
81 REFIID riid,
82 void* pv,
83 DWORD dwDestContext,
84 void* pvDestContext,
85 DWORD mshlflags) = 0;
87 virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface(
88 IStream* pStm,
89 REFIID riid,
90 void** ppv) = 0;
92 virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalData(
93 IStream* pStm) = 0;
95 virtual HRESULT STDMETHODCALLTYPE DisconnectObject(
96 DWORD dwReserved) = 0;
99 #else
100 typedef struct IMarshalVtbl IMarshalVtbl;
101 struct IMarshal {
102 const IMarshalVtbl* lpVtbl;
104 struct IMarshalVtbl {
105 ICOM_MSVTABLE_COMPAT_FIELDS
107 /*** IUnknown methods ***/
108 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
109 IMarshal* This,
110 REFIID riid,
111 void** ppvObject);
113 ULONG (STDMETHODCALLTYPE *AddRef)(
114 IMarshal* This);
116 ULONG (STDMETHODCALLTYPE *Release)(
117 IMarshal* This);
119 /*** IMarshal methods ***/
120 HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
121 IMarshal* This,
122 REFIID riid,
123 void* pv,
124 DWORD dwDestContext,
125 void* pvDestContext,
126 DWORD mshlflags,
127 CLSID* pCid);
129 HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
130 IMarshal* This,
131 REFIID riid,
132 void* pv,
133 DWORD dwDestContext,
134 void* pvDestContext,
135 DWORD mshlflags,
136 DWORD* pSize);
138 HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
139 IMarshal* This,
140 IStream* pStm,
141 REFIID riid,
142 void* pv,
143 DWORD dwDestContext,
144 void* pvDestContext,
145 DWORD mshlflags);
147 HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
148 IMarshal* This,
149 IStream* pStm,
150 REFIID riid,
151 void** ppv);
153 HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
154 IMarshal* This,
155 IStream* pStm);
157 HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
158 IMarshal* This,
159 DWORD dwReserved);
163 /*** IUnknown methods ***/
164 #define IMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
165 #define IMarshal_AddRef(p) (p)->lpVtbl->AddRef(p)
166 #define IMarshal_Release(p) (p)->lpVtbl->Release(p)
167 /*** IMarshal methods ***/
168 #define IMarshal_GetUnmarshalClass(p,a,b,c,d,e,f) (p)->lpVtbl->GetUnmarshalClass(p,a,b,c,d,e,f)
169 #define IMarshal_GetMarshalSizeMax(p,a,b,c,d,e,f) (p)->lpVtbl->GetMarshalSizeMax(p,a,b,c,d,e,f)
170 #define IMarshal_MarshalInterface(p,a,b,c,d,e,f) (p)->lpVtbl->MarshalInterface(p,a,b,c,d,e,f)
171 #define IMarshal_UnmarshalInterface(p,a,b,c) (p)->lpVtbl->UnmarshalInterface(p,a,b,c)
172 #define IMarshal_ReleaseMarshalData(p,a) (p)->lpVtbl->ReleaseMarshalData(p,a)
173 #define IMarshal_DisconnectObject(p,a) (p)->lpVtbl->DisconnectObject(p,a)
175 #endif
177 #define IMarshal_METHODS \
178 ICOM_MSVTABLE_COMPAT_FIELDS \
179 /*** IUnknown methods ***/ \
180 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
181 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
182 STDMETHOD_(ULONG,Release)(THIS) PURE; \
183 /*** IMarshal methods ***/ \
184 STDMETHOD_(HRESULT,GetUnmarshalClass)(THIS_ REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags, CLSID* pCid) PURE; \
185 STDMETHOD_(HRESULT,GetMarshalSizeMax)(THIS_ REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags, DWORD* pSize) PURE; \
186 STDMETHOD_(HRESULT,MarshalInterface)(THIS_ IStream* pStm, REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags) PURE; \
187 STDMETHOD_(HRESULT,UnmarshalInterface)(THIS_ IStream* pStm, REFIID riid, void** ppv) PURE; \
188 STDMETHOD_(HRESULT,ReleaseMarshalData)(THIS_ IStream* pStm) PURE; \
189 STDMETHOD_(HRESULT,DisconnectObject)(THIS_ DWORD dwReserved) PURE;
191 HRESULT CALLBACK IMarshal_GetUnmarshalClass_Proxy(
192 IMarshal* This,
193 REFIID riid,
194 void* pv,
195 DWORD dwDestContext,
196 void* pvDestContext,
197 DWORD mshlflags,
198 CLSID* pCid);
199 void __RPC_STUB IMarshal_GetUnmarshalClass_Stub(
200 struct IRpcStubBuffer* This,
201 struct IRpcChannelBuffer* pRpcChannelBuffer,
202 PRPC_MESSAGE pRpcMessage,
203 DWORD* pdwStubPhase);
204 HRESULT CALLBACK IMarshal_GetMarshalSizeMax_Proxy(
205 IMarshal* This,
206 REFIID riid,
207 void* pv,
208 DWORD dwDestContext,
209 void* pvDestContext,
210 DWORD mshlflags,
211 DWORD* pSize);
212 void __RPC_STUB IMarshal_GetMarshalSizeMax_Stub(
213 struct IRpcStubBuffer* This,
214 struct IRpcChannelBuffer* pRpcChannelBuffer,
215 PRPC_MESSAGE pRpcMessage,
216 DWORD* pdwStubPhase);
217 HRESULT CALLBACK IMarshal_MarshalInterface_Proxy(
218 IMarshal* This,
219 IStream* pStm,
220 REFIID riid,
221 void* pv,
222 DWORD dwDestContext,
223 void* pvDestContext,
224 DWORD mshlflags);
225 void __RPC_STUB IMarshal_MarshalInterface_Stub(
226 struct IRpcStubBuffer* This,
227 struct IRpcChannelBuffer* pRpcChannelBuffer,
228 PRPC_MESSAGE pRpcMessage,
229 DWORD* pdwStubPhase);
230 HRESULT CALLBACK IMarshal_UnmarshalInterface_Proxy(
231 IMarshal* This,
232 IStream* pStm,
233 REFIID riid,
234 void** ppv);
235 void __RPC_STUB IMarshal_UnmarshalInterface_Stub(
236 struct IRpcStubBuffer* This,
237 struct IRpcChannelBuffer* pRpcChannelBuffer,
238 PRPC_MESSAGE pRpcMessage,
239 DWORD* pdwStubPhase);
240 HRESULT CALLBACK IMarshal_ReleaseMarshalData_Proxy(
241 IMarshal* This,
242 IStream* pStm);
243 void __RPC_STUB IMarshal_ReleaseMarshalData_Stub(
244 struct IRpcStubBuffer* This,
245 struct IRpcChannelBuffer* pRpcChannelBuffer,
246 PRPC_MESSAGE pRpcMessage,
247 DWORD* pdwStubPhase);
248 HRESULT CALLBACK IMarshal_DisconnectObject_Proxy(
249 IMarshal* This,
250 DWORD dwReserved);
251 void __RPC_STUB IMarshal_DisconnectObject_Stub(
252 struct IRpcStubBuffer* This,
253 struct IRpcChannelBuffer* pRpcChannelBuffer,
254 PRPC_MESSAGE pRpcMessage,
255 DWORD* pdwStubPhase);
257 #endif /* __IMarshal_INTERFACE_DEFINED__ */
259 #ifndef __IStdMarshalInfo_FWD_DEFINED__
260 #define __IStdMarshalInfo_FWD_DEFINED__
261 typedef struct IStdMarshalInfo IStdMarshalInfo;
262 #endif
264 typedef IStdMarshalInfo *LPSTDMARSHALINFO;
266 /*****************************************************************************
267 * IStdMarshalInfo interface
269 #ifndef __IStdMarshalInfo_INTERFACE_DEFINED__
270 #define __IStdMarshalInfo_INTERFACE_DEFINED__
272 DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
273 #if defined(__cplusplus) && !defined(CINTERFACE)
274 struct IStdMarshalInfo : public IUnknown
276 virtual HRESULT STDMETHODCALLTYPE GetClassForHandler(
277 DWORD dwDestContext,
278 void* pvDestContext,
279 CLSID* pClsid) = 0;
282 #else
283 typedef struct IStdMarshalInfoVtbl IStdMarshalInfoVtbl;
284 struct IStdMarshalInfo {
285 const IStdMarshalInfoVtbl* lpVtbl;
287 struct IStdMarshalInfoVtbl {
288 ICOM_MSVTABLE_COMPAT_FIELDS
290 /*** IUnknown methods ***/
291 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
292 IStdMarshalInfo* This,
293 REFIID riid,
294 void** ppvObject);
296 ULONG (STDMETHODCALLTYPE *AddRef)(
297 IStdMarshalInfo* This);
299 ULONG (STDMETHODCALLTYPE *Release)(
300 IStdMarshalInfo* This);
302 /*** IStdMarshalInfo methods ***/
303 HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(
304 IStdMarshalInfo* This,
305 DWORD dwDestContext,
306 void* pvDestContext,
307 CLSID* pClsid);
311 /*** IUnknown methods ***/
312 #define IStdMarshalInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
313 #define IStdMarshalInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
314 #define IStdMarshalInfo_Release(p) (p)->lpVtbl->Release(p)
315 /*** IStdMarshalInfo methods ***/
316 #define IStdMarshalInfo_GetClassForHandler(p,a,b,c) (p)->lpVtbl->GetClassForHandler(p,a,b,c)
318 #endif
320 #define IStdMarshalInfo_METHODS \
321 ICOM_MSVTABLE_COMPAT_FIELDS \
322 /*** IUnknown methods ***/ \
323 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
324 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
325 STDMETHOD_(ULONG,Release)(THIS) PURE; \
326 /*** IStdMarshalInfo methods ***/ \
327 STDMETHOD_(HRESULT,GetClassForHandler)(THIS_ DWORD dwDestContext, void* pvDestContext, CLSID* pClsid) PURE;
329 HRESULT CALLBACK IStdMarshalInfo_GetClassForHandler_Proxy(
330 IStdMarshalInfo* This,
331 DWORD dwDestContext,
332 void* pvDestContext,
333 CLSID* pClsid);
334 void __RPC_STUB IStdMarshalInfo_GetClassForHandler_Stub(
335 struct IRpcStubBuffer* This,
336 struct IRpcChannelBuffer* pRpcChannelBuffer,
337 PRPC_MESSAGE pRpcMessage,
338 DWORD* pdwStubPhase);
340 #endif /* __IStdMarshalInfo_INTERFACE_DEFINED__ */
342 #ifndef __IExternalConnection_FWD_DEFINED__
343 #define __IExternalConnection_FWD_DEFINED__
344 typedef struct IExternalConnection IExternalConnection;
345 #endif
347 typedef IExternalConnection *LPEXTERNALCONNECTION;
349 typedef enum tagEXTCONN {
350 EXTCONN_STRONG = 0x1,
351 EXTCONN_WEAK = 0x2,
352 EXTCONN_CALLABLE = 0x4
353 } EXTCONN;
355 /*****************************************************************************
356 * IExternalConnection interface
358 #ifndef __IExternalConnection_INTERFACE_DEFINED__
359 #define __IExternalConnection_INTERFACE_DEFINED__
361 DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
362 #if defined(__cplusplus) && !defined(CINTERFACE)
363 struct IExternalConnection : public IUnknown
365 virtual DWORD STDMETHODCALLTYPE AddConnection(
366 DWORD extconn,
367 DWORD reserved) = 0;
369 virtual DWORD STDMETHODCALLTYPE ReleaseConnection(
370 DWORD extconn,
371 DWORD reserved,
372 BOOL fLastReleaseCloses) = 0;
375 #else
376 typedef struct IExternalConnectionVtbl IExternalConnectionVtbl;
377 struct IExternalConnection {
378 const IExternalConnectionVtbl* lpVtbl;
380 struct IExternalConnectionVtbl {
381 ICOM_MSVTABLE_COMPAT_FIELDS
383 /*** IUnknown methods ***/
384 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
385 IExternalConnection* This,
386 REFIID riid,
387 void** ppvObject);
389 ULONG (STDMETHODCALLTYPE *AddRef)(
390 IExternalConnection* This);
392 ULONG (STDMETHODCALLTYPE *Release)(
393 IExternalConnection* This);
395 /*** IExternalConnection methods ***/
396 DWORD (STDMETHODCALLTYPE *AddConnection)(
397 IExternalConnection* This,
398 DWORD extconn,
399 DWORD reserved);
401 DWORD (STDMETHODCALLTYPE *ReleaseConnection)(
402 IExternalConnection* This,
403 DWORD extconn,
404 DWORD reserved,
405 BOOL fLastReleaseCloses);
409 /*** IUnknown methods ***/
410 #define IExternalConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
411 #define IExternalConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
412 #define IExternalConnection_Release(p) (p)->lpVtbl->Release(p)
413 /*** IExternalConnection methods ***/
414 #define IExternalConnection_AddConnection(p,a,b) (p)->lpVtbl->AddConnection(p,a,b)
415 #define IExternalConnection_ReleaseConnection(p,a,b,c) (p)->lpVtbl->ReleaseConnection(p,a,b,c)
417 #endif
419 #define IExternalConnection_METHODS \
420 ICOM_MSVTABLE_COMPAT_FIELDS \
421 /*** IUnknown methods ***/ \
422 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
423 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
424 STDMETHOD_(ULONG,Release)(THIS) PURE; \
425 /*** IExternalConnection methods ***/ \
426 STDMETHOD_(DWORD,AddConnection)(THIS_ DWORD extconn, DWORD reserved) PURE; \
427 STDMETHOD_(DWORD,ReleaseConnection)(THIS_ DWORD extconn, DWORD reserved, BOOL fLastReleaseCloses) PURE;
429 DWORD CALLBACK IExternalConnection_AddConnection_Proxy(
430 IExternalConnection* This,
431 DWORD extconn,
432 DWORD reserved);
433 void __RPC_STUB IExternalConnection_AddConnection_Stub(
434 struct IRpcStubBuffer* This,
435 struct IRpcChannelBuffer* pRpcChannelBuffer,
436 PRPC_MESSAGE pRpcMessage,
437 DWORD* pdwStubPhase);
438 DWORD CALLBACK IExternalConnection_ReleaseConnection_Proxy(
439 IExternalConnection* This,
440 DWORD extconn,
441 DWORD reserved,
442 BOOL fLastReleaseCloses);
443 void __RPC_STUB IExternalConnection_ReleaseConnection_Stub(
444 struct IRpcStubBuffer* This,
445 struct IRpcChannelBuffer* pRpcChannelBuffer,
446 PRPC_MESSAGE pRpcMessage,
447 DWORD* pdwStubPhase);
449 #endif /* __IExternalConnection_INTERFACE_DEFINED__ */
451 #ifndef __IMultiQI_FWD_DEFINED__
452 #define __IMultiQI_FWD_DEFINED__
453 typedef struct IMultiQI IMultiQI;
454 #endif
456 typedef IMultiQI *LPMULTIQI;
458 typedef struct tagMULTI_QI {
459 const IID *pIID;
460 IUnknown *pItf;
461 HRESULT hr;
462 } MULTI_QI;
464 /*****************************************************************************
465 * IMultiQI interface
467 #ifndef __IMultiQI_INTERFACE_DEFINED__
468 #define __IMultiQI_INTERFACE_DEFINED__
470 DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
471 #if defined(__cplusplus) && !defined(CINTERFACE)
472 struct IMultiQI : public IUnknown
474 virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces(
475 ULONG cMQIs,
476 MULTI_QI* pMQIs) = 0;
479 #else
480 typedef struct IMultiQIVtbl IMultiQIVtbl;
481 struct IMultiQI {
482 const IMultiQIVtbl* lpVtbl;
484 struct IMultiQIVtbl {
485 ICOM_MSVTABLE_COMPAT_FIELDS
487 /*** IUnknown methods ***/
488 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
489 IMultiQI* This,
490 REFIID riid,
491 void** ppvObject);
493 ULONG (STDMETHODCALLTYPE *AddRef)(
494 IMultiQI* This);
496 ULONG (STDMETHODCALLTYPE *Release)(
497 IMultiQI* This);
499 /*** IMultiQI methods ***/
500 HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(
501 IMultiQI* This,
502 ULONG cMQIs,
503 MULTI_QI* pMQIs);
507 /*** IUnknown methods ***/
508 #define IMultiQI_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
509 #define IMultiQI_AddRef(p) (p)->lpVtbl->AddRef(p)
510 #define IMultiQI_Release(p) (p)->lpVtbl->Release(p)
511 /*** IMultiQI methods ***/
512 #define IMultiQI_QueryMultipleInterfaces(p,a,b) (p)->lpVtbl->QueryMultipleInterfaces(p,a,b)
514 #endif
516 #define IMultiQI_METHODS \
517 ICOM_MSVTABLE_COMPAT_FIELDS \
518 /*** IUnknown methods ***/ \
519 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
520 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
521 STDMETHOD_(ULONG,Release)(THIS) PURE; \
522 /*** IMultiQI methods ***/ \
523 STDMETHOD_(HRESULT,QueryMultipleInterfaces)(THIS_ ULONG cMQIs, MULTI_QI* pMQIs) PURE;
525 HRESULT CALLBACK IMultiQI_QueryMultipleInterfaces_Proxy(
526 IMultiQI* This,
527 ULONG cMQIs,
528 MULTI_QI* pMQIs);
529 void __RPC_STUB IMultiQI_QueryMultipleInterfaces_Stub(
530 struct IRpcStubBuffer* This,
531 struct IRpcChannelBuffer* pRpcChannelBuffer,
532 PRPC_MESSAGE pRpcMessage,
533 DWORD* pdwStubPhase);
535 #endif /* __IMultiQI_INTERFACE_DEFINED__ */
537 #ifndef __IMalloc_FWD_DEFINED__
538 #define __IMalloc_FWD_DEFINED__
539 typedef struct IMalloc IMalloc;
540 #endif
542 typedef IMalloc *LPMALLOC;
544 /*****************************************************************************
545 * IMalloc interface
547 #ifndef __IMalloc_INTERFACE_DEFINED__
548 #define __IMalloc_INTERFACE_DEFINED__
550 DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
551 #if defined(__cplusplus) && !defined(CINTERFACE)
552 struct IMalloc : public IUnknown
554 virtual LPVOID STDMETHODCALLTYPE Alloc(
555 ULONG cb) = 0;
557 virtual LPVOID STDMETHODCALLTYPE Realloc(
558 LPVOID pv,
559 ULONG cb) = 0;
561 virtual void STDMETHODCALLTYPE Free(
562 LPVOID pv) = 0;
564 virtual ULONG STDMETHODCALLTYPE GetSize(
565 LPVOID pv) = 0;
567 virtual int STDMETHODCALLTYPE DidAlloc(
568 LPVOID pv) = 0;
570 virtual void STDMETHODCALLTYPE HeapMinimize(
571 ) = 0;
574 #else
575 typedef struct IMallocVtbl IMallocVtbl;
576 struct IMalloc {
577 const IMallocVtbl* lpVtbl;
579 struct IMallocVtbl {
580 ICOM_MSVTABLE_COMPAT_FIELDS
582 /*** IUnknown methods ***/
583 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
584 IMalloc* This,
585 REFIID riid,
586 void** ppvObject);
588 ULONG (STDMETHODCALLTYPE *AddRef)(
589 IMalloc* This);
591 ULONG (STDMETHODCALLTYPE *Release)(
592 IMalloc* This);
594 /*** IMalloc methods ***/
595 LPVOID (STDMETHODCALLTYPE *Alloc)(
596 IMalloc* This,
597 ULONG cb);
599 LPVOID (STDMETHODCALLTYPE *Realloc)(
600 IMalloc* This,
601 LPVOID pv,
602 ULONG cb);
604 void (STDMETHODCALLTYPE *Free)(
605 IMalloc* This,
606 LPVOID pv);
608 ULONG (STDMETHODCALLTYPE *GetSize)(
609 IMalloc* This,
610 LPVOID pv);
612 int (STDMETHODCALLTYPE *DidAlloc)(
613 IMalloc* This,
614 LPVOID pv);
616 void (STDMETHODCALLTYPE *HeapMinimize)(
617 IMalloc* This);
621 /*** IUnknown methods ***/
622 #define IMalloc_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
623 #define IMalloc_AddRef(p) (p)->lpVtbl->AddRef(p)
624 #define IMalloc_Release(p) (p)->lpVtbl->Release(p)
625 /*** IMalloc methods ***/
626 #define IMalloc_Alloc(p,a) (p)->lpVtbl->Alloc(p,a)
627 #define IMalloc_Realloc(p,a,b) (p)->lpVtbl->Realloc(p,a,b)
628 #define IMalloc_Free(p,a) (p)->lpVtbl->Free(p,a)
629 #define IMalloc_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
630 #define IMalloc_DidAlloc(p,a) (p)->lpVtbl->DidAlloc(p,a)
631 #define IMalloc_HeapMinimize(p) (p)->lpVtbl->HeapMinimize(p)
633 #endif
635 #define IMalloc_METHODS \
636 ICOM_MSVTABLE_COMPAT_FIELDS \
637 /*** IUnknown methods ***/ \
638 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
639 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
640 STDMETHOD_(ULONG,Release)(THIS) PURE; \
641 /*** IMalloc methods ***/ \
642 STDMETHOD_(LPVOID,Alloc)(THIS_ ULONG cb) PURE; \
643 STDMETHOD_(LPVOID,Realloc)(THIS_ LPVOID pv, ULONG cb) PURE; \
644 STDMETHOD_(void,Free)(THIS_ LPVOID pv) PURE; \
645 STDMETHOD_(ULONG,GetSize)(THIS_ LPVOID pv) PURE; \
646 STDMETHOD_(int,DidAlloc)(THIS_ LPVOID pv) PURE; \
647 STDMETHOD_(void,HeapMinimize)(THIS) PURE;
649 LPVOID CALLBACK IMalloc_Alloc_Proxy(
650 IMalloc* This,
651 ULONG cb);
652 void __RPC_STUB IMalloc_Alloc_Stub(
653 struct IRpcStubBuffer* This,
654 struct IRpcChannelBuffer* pRpcChannelBuffer,
655 PRPC_MESSAGE pRpcMessage,
656 DWORD* pdwStubPhase);
657 LPVOID CALLBACK IMalloc_Realloc_Proxy(
658 IMalloc* This,
659 LPVOID pv,
660 ULONG cb);
661 void __RPC_STUB IMalloc_Realloc_Stub(
662 struct IRpcStubBuffer* This,
663 struct IRpcChannelBuffer* pRpcChannelBuffer,
664 PRPC_MESSAGE pRpcMessage,
665 DWORD* pdwStubPhase);
666 void CALLBACK IMalloc_Free_Proxy(
667 IMalloc* This,
668 LPVOID pv);
669 void __RPC_STUB IMalloc_Free_Stub(
670 struct IRpcStubBuffer* This,
671 struct IRpcChannelBuffer* pRpcChannelBuffer,
672 PRPC_MESSAGE pRpcMessage,
673 DWORD* pdwStubPhase);
674 ULONG CALLBACK IMalloc_GetSize_Proxy(
675 IMalloc* This,
676 LPVOID pv);
677 void __RPC_STUB IMalloc_GetSize_Stub(
678 struct IRpcStubBuffer* This,
679 struct IRpcChannelBuffer* pRpcChannelBuffer,
680 PRPC_MESSAGE pRpcMessage,
681 DWORD* pdwStubPhase);
682 int CALLBACK IMalloc_DidAlloc_Proxy(
683 IMalloc* This,
684 LPVOID pv);
685 void __RPC_STUB IMalloc_DidAlloc_Stub(
686 struct IRpcStubBuffer* This,
687 struct IRpcChannelBuffer* pRpcChannelBuffer,
688 PRPC_MESSAGE pRpcMessage,
689 DWORD* pdwStubPhase);
690 void CALLBACK IMalloc_HeapMinimize_Proxy(
691 IMalloc* This);
692 void __RPC_STUB IMalloc_HeapMinimize_Stub(
693 struct IRpcStubBuffer* This,
694 struct IRpcChannelBuffer* pRpcChannelBuffer,
695 PRPC_MESSAGE pRpcMessage,
696 DWORD* pdwStubPhase);
698 #endif /* __IMalloc_INTERFACE_DEFINED__ */
700 #ifndef __IMallocSpy_FWD_DEFINED__
701 #define __IMallocSpy_FWD_DEFINED__
702 typedef struct IMallocSpy IMallocSpy;
703 #endif
705 typedef IMallocSpy *LPMALLOCSPY;
707 /*****************************************************************************
708 * IMallocSpy interface
710 #ifndef __IMallocSpy_INTERFACE_DEFINED__
711 #define __IMallocSpy_INTERFACE_DEFINED__
713 DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
714 #if defined(__cplusplus) && !defined(CINTERFACE)
715 struct IMallocSpy : public IUnknown
717 virtual ULONG STDMETHODCALLTYPE PreAlloc(
718 ULONG cbRequest) = 0;
720 virtual LPVOID STDMETHODCALLTYPE PostAlloc(
721 LPVOID pActual) = 0;
723 virtual LPVOID STDMETHODCALLTYPE PreFree(
724 LPVOID pRequest,
725 BOOL fSpyed) = 0;
727 virtual void STDMETHODCALLTYPE PostFree(
728 BOOL fSpyed) = 0;
730 virtual ULONG STDMETHODCALLTYPE PreRealloc(
731 LPVOID pRequest,
732 ULONG cbRequest,
733 LPVOID* ppNewRequest,
734 BOOL fSpyed) = 0;
736 virtual LPVOID STDMETHODCALLTYPE PostRealloc(
737 LPVOID pActual,
738 BOOL fSpyed) = 0;
740 virtual LPVOID STDMETHODCALLTYPE PreGetSize(
741 LPVOID pRequest,
742 BOOL fSpyed) = 0;
744 virtual ULONG STDMETHODCALLTYPE PostGetSize(
745 ULONG cbActual,
746 BOOL fSpyed) = 0;
748 virtual LPVOID STDMETHODCALLTYPE PreDidAlloc(
749 LPVOID pRequest,
750 BOOL fSpyed) = 0;
752 virtual int STDMETHODCALLTYPE PostDidAlloc(
753 LPVOID pRequest,
754 BOOL fSpyed,
755 int fActual) = 0;
757 virtual void STDMETHODCALLTYPE PreHeapMinimize(
758 ) = 0;
760 virtual void STDMETHODCALLTYPE PostHeapMinimize(
761 ) = 0;
764 #else
765 typedef struct IMallocSpyVtbl IMallocSpyVtbl;
766 struct IMallocSpy {
767 const IMallocSpyVtbl* lpVtbl;
769 struct IMallocSpyVtbl {
770 ICOM_MSVTABLE_COMPAT_FIELDS
772 /*** IUnknown methods ***/
773 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
774 IMallocSpy* This,
775 REFIID riid,
776 void** ppvObject);
778 ULONG (STDMETHODCALLTYPE *AddRef)(
779 IMallocSpy* This);
781 ULONG (STDMETHODCALLTYPE *Release)(
782 IMallocSpy* This);
784 /*** IMallocSpy methods ***/
785 ULONG (STDMETHODCALLTYPE *PreAlloc)(
786 IMallocSpy* This,
787 ULONG cbRequest);
789 LPVOID (STDMETHODCALLTYPE *PostAlloc)(
790 IMallocSpy* This,
791 LPVOID pActual);
793 LPVOID (STDMETHODCALLTYPE *PreFree)(
794 IMallocSpy* This,
795 LPVOID pRequest,
796 BOOL fSpyed);
798 void (STDMETHODCALLTYPE *PostFree)(
799 IMallocSpy* This,
800 BOOL fSpyed);
802 ULONG (STDMETHODCALLTYPE *PreRealloc)(
803 IMallocSpy* This,
804 LPVOID pRequest,
805 ULONG cbRequest,
806 LPVOID* ppNewRequest,
807 BOOL fSpyed);
809 LPVOID (STDMETHODCALLTYPE *PostRealloc)(
810 IMallocSpy* This,
811 LPVOID pActual,
812 BOOL fSpyed);
814 LPVOID (STDMETHODCALLTYPE *PreGetSize)(
815 IMallocSpy* This,
816 LPVOID pRequest,
817 BOOL fSpyed);
819 ULONG (STDMETHODCALLTYPE *PostGetSize)(
820 IMallocSpy* This,
821 ULONG cbActual,
822 BOOL fSpyed);
824 LPVOID (STDMETHODCALLTYPE *PreDidAlloc)(
825 IMallocSpy* This,
826 LPVOID pRequest,
827 BOOL fSpyed);
829 int (STDMETHODCALLTYPE *PostDidAlloc)(
830 IMallocSpy* This,
831 LPVOID pRequest,
832 BOOL fSpyed,
833 int fActual);
835 void (STDMETHODCALLTYPE *PreHeapMinimize)(
836 IMallocSpy* This);
838 void (STDMETHODCALLTYPE *PostHeapMinimize)(
839 IMallocSpy* This);
843 /*** IUnknown methods ***/
844 #define IMallocSpy_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
845 #define IMallocSpy_AddRef(p) (p)->lpVtbl->AddRef(p)
846 #define IMallocSpy_Release(p) (p)->lpVtbl->Release(p)
847 /*** IMallocSpy methods ***/
848 #define IMallocSpy_PreAlloc(p,a) (p)->lpVtbl->PreAlloc(p,a)
849 #define IMallocSpy_PostAlloc(p,a) (p)->lpVtbl->PostAlloc(p,a)
850 #define IMallocSpy_PreFree(p,a,b) (p)->lpVtbl->PreFree(p,a,b)
851 #define IMallocSpy_PostFree(p,a) (p)->lpVtbl->PostFree(p,a)
852 #define IMallocSpy_PreRealloc(p,a,b,c,d) (p)->lpVtbl->PreRealloc(p,a,b,c,d)
853 #define IMallocSpy_PostRealloc(p,a,b) (p)->lpVtbl->PostRealloc(p,a,b)
854 #define IMallocSpy_PreGetSize(p,a,b) (p)->lpVtbl->PreGetSize(p,a,b)
855 #define IMallocSpy_PostGetSize(p,a,b) (p)->lpVtbl->PostGetSize(p,a,b)
856 #define IMallocSpy_PreDidAlloc(p,a,b) (p)->lpVtbl->PreDidAlloc(p,a,b)
857 #define IMallocSpy_PostDidAlloc(p,a,b,c) (p)->lpVtbl->PostDidAlloc(p,a,b,c)
858 #define IMallocSpy_PreHeapMinimize(p) (p)->lpVtbl->PreHeapMinimize(p)
859 #define IMallocSpy_PostHeapMinimize(p) (p)->lpVtbl->PostHeapMinimize(p)
861 #endif
863 #define IMallocSpy_METHODS \
864 ICOM_MSVTABLE_COMPAT_FIELDS \
865 /*** IUnknown methods ***/ \
866 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
867 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
868 STDMETHOD_(ULONG,Release)(THIS) PURE; \
869 /*** IMallocSpy methods ***/ \
870 STDMETHOD_(ULONG,PreAlloc)(THIS_ ULONG cbRequest) PURE; \
871 STDMETHOD_(LPVOID,PostAlloc)(THIS_ LPVOID pActual) PURE; \
872 STDMETHOD_(LPVOID,PreFree)(THIS_ LPVOID pRequest, BOOL fSpyed) PURE; \
873 STDMETHOD_(void,PostFree)(THIS_ BOOL fSpyed) PURE; \
874 STDMETHOD_(ULONG,PreRealloc)(THIS_ LPVOID pRequest, ULONG cbRequest, LPVOID* ppNewRequest, BOOL fSpyed) PURE; \
875 STDMETHOD_(LPVOID,PostRealloc)(THIS_ LPVOID pActual, BOOL fSpyed) PURE; \
876 STDMETHOD_(LPVOID,PreGetSize)(THIS_ LPVOID pRequest, BOOL fSpyed) PURE; \
877 STDMETHOD_(ULONG,PostGetSize)(THIS_ ULONG cbActual, BOOL fSpyed) PURE; \
878 STDMETHOD_(LPVOID,PreDidAlloc)(THIS_ LPVOID pRequest, BOOL fSpyed) PURE; \
879 STDMETHOD_(int,PostDidAlloc)(THIS_ LPVOID pRequest, BOOL fSpyed, int fActual) PURE; \
880 STDMETHOD_(void,PreHeapMinimize)(THIS) PURE; \
881 STDMETHOD_(void,PostHeapMinimize)(THIS) PURE;
883 ULONG CALLBACK IMallocSpy_PreAlloc_Proxy(
884 IMallocSpy* This,
885 ULONG cbRequest);
886 void __RPC_STUB IMallocSpy_PreAlloc_Stub(
887 struct IRpcStubBuffer* This,
888 struct IRpcChannelBuffer* pRpcChannelBuffer,
889 PRPC_MESSAGE pRpcMessage,
890 DWORD* pdwStubPhase);
891 LPVOID CALLBACK IMallocSpy_PostAlloc_Proxy(
892 IMallocSpy* This,
893 LPVOID pActual);
894 void __RPC_STUB IMallocSpy_PostAlloc_Stub(
895 struct IRpcStubBuffer* This,
896 struct IRpcChannelBuffer* pRpcChannelBuffer,
897 PRPC_MESSAGE pRpcMessage,
898 DWORD* pdwStubPhase);
899 LPVOID CALLBACK IMallocSpy_PreFree_Proxy(
900 IMallocSpy* This,
901 LPVOID pRequest,
902 BOOL fSpyed);
903 void __RPC_STUB IMallocSpy_PreFree_Stub(
904 struct IRpcStubBuffer* This,
905 struct IRpcChannelBuffer* pRpcChannelBuffer,
906 PRPC_MESSAGE pRpcMessage,
907 DWORD* pdwStubPhase);
908 void CALLBACK IMallocSpy_PostFree_Proxy(
909 IMallocSpy* This,
910 BOOL fSpyed);
911 void __RPC_STUB IMallocSpy_PostFree_Stub(
912 struct IRpcStubBuffer* This,
913 struct IRpcChannelBuffer* pRpcChannelBuffer,
914 PRPC_MESSAGE pRpcMessage,
915 DWORD* pdwStubPhase);
916 ULONG CALLBACK IMallocSpy_PreRealloc_Proxy(
917 IMallocSpy* This,
918 LPVOID pRequest,
919 ULONG cbRequest,
920 LPVOID* ppNewRequest,
921 BOOL fSpyed);
922 void __RPC_STUB IMallocSpy_PreRealloc_Stub(
923 struct IRpcStubBuffer* This,
924 struct IRpcChannelBuffer* pRpcChannelBuffer,
925 PRPC_MESSAGE pRpcMessage,
926 DWORD* pdwStubPhase);
927 LPVOID CALLBACK IMallocSpy_PostRealloc_Proxy(
928 IMallocSpy* This,
929 LPVOID pActual,
930 BOOL fSpyed);
931 void __RPC_STUB IMallocSpy_PostRealloc_Stub(
932 struct IRpcStubBuffer* This,
933 struct IRpcChannelBuffer* pRpcChannelBuffer,
934 PRPC_MESSAGE pRpcMessage,
935 DWORD* pdwStubPhase);
936 LPVOID CALLBACK IMallocSpy_PreGetSize_Proxy(
937 IMallocSpy* This,
938 LPVOID pRequest,
939 BOOL fSpyed);
940 void __RPC_STUB IMallocSpy_PreGetSize_Stub(
941 struct IRpcStubBuffer* This,
942 struct IRpcChannelBuffer* pRpcChannelBuffer,
943 PRPC_MESSAGE pRpcMessage,
944 DWORD* pdwStubPhase);
945 ULONG CALLBACK IMallocSpy_PostGetSize_Proxy(
946 IMallocSpy* This,
947 ULONG cbActual,
948 BOOL fSpyed);
949 void __RPC_STUB IMallocSpy_PostGetSize_Stub(
950 struct IRpcStubBuffer* This,
951 struct IRpcChannelBuffer* pRpcChannelBuffer,
952 PRPC_MESSAGE pRpcMessage,
953 DWORD* pdwStubPhase);
954 LPVOID CALLBACK IMallocSpy_PreDidAlloc_Proxy(
955 IMallocSpy* This,
956 LPVOID pRequest,
957 BOOL fSpyed);
958 void __RPC_STUB IMallocSpy_PreDidAlloc_Stub(
959 struct IRpcStubBuffer* This,
960 struct IRpcChannelBuffer* pRpcChannelBuffer,
961 PRPC_MESSAGE pRpcMessage,
962 DWORD* pdwStubPhase);
963 int CALLBACK IMallocSpy_PostDidAlloc_Proxy(
964 IMallocSpy* This,
965 LPVOID pRequest,
966 BOOL fSpyed,
967 int fActual);
968 void __RPC_STUB IMallocSpy_PostDidAlloc_Stub(
969 struct IRpcStubBuffer* This,
970 struct IRpcChannelBuffer* pRpcChannelBuffer,
971 PRPC_MESSAGE pRpcMessage,
972 DWORD* pdwStubPhase);
973 void CALLBACK IMallocSpy_PreHeapMinimize_Proxy(
974 IMallocSpy* This);
975 void __RPC_STUB IMallocSpy_PreHeapMinimize_Stub(
976 struct IRpcStubBuffer* This,
977 struct IRpcChannelBuffer* pRpcChannelBuffer,
978 PRPC_MESSAGE pRpcMessage,
979 DWORD* pdwStubPhase);
980 void CALLBACK IMallocSpy_PostHeapMinimize_Proxy(
981 IMallocSpy* This);
982 void __RPC_STUB IMallocSpy_PostHeapMinimize_Stub(
983 struct IRpcStubBuffer* This,
984 struct IRpcChannelBuffer* pRpcChannelBuffer,
985 PRPC_MESSAGE pRpcMessage,
986 DWORD* pdwStubPhase);
988 #endif /* __IMallocSpy_INTERFACE_DEFINED__ */
990 #ifndef __IEnumUnknown_FWD_DEFINED__
991 #define __IEnumUnknown_FWD_DEFINED__
992 typedef struct IEnumUnknown IEnumUnknown;
993 #endif
995 typedef IEnumUnknown *LPENUMUNKNOWN;
997 /*****************************************************************************
998 * IEnumUnknown interface
1000 #ifndef __IEnumUnknown_INTERFACE_DEFINED__
1001 #define __IEnumUnknown_INTERFACE_DEFINED__
1003 DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1004 #if defined(__cplusplus) && !defined(CINTERFACE)
1005 struct IEnumUnknown : public IUnknown
1007 virtual HRESULT STDMETHODCALLTYPE Next(
1008 ULONG celt,
1009 IUnknown** rgelt,
1010 ULONG* pceltFetched) = 0;
1012 virtual HRESULT STDMETHODCALLTYPE Skip(
1013 ULONG celt) = 0;
1015 virtual HRESULT STDMETHODCALLTYPE Reset(
1016 ) = 0;
1018 virtual HRESULT STDMETHODCALLTYPE Clone(
1019 IEnumUnknown** ppenum) = 0;
1022 #else
1023 typedef struct IEnumUnknownVtbl IEnumUnknownVtbl;
1024 struct IEnumUnknown {
1025 const IEnumUnknownVtbl* lpVtbl;
1027 struct IEnumUnknownVtbl {
1028 ICOM_MSVTABLE_COMPAT_FIELDS
1030 /*** IUnknown methods ***/
1031 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1032 IEnumUnknown* This,
1033 REFIID riid,
1034 void** ppvObject);
1036 ULONG (STDMETHODCALLTYPE *AddRef)(
1037 IEnumUnknown* This);
1039 ULONG (STDMETHODCALLTYPE *Release)(
1040 IEnumUnknown* This);
1042 /*** IEnumUnknown methods ***/
1043 HRESULT (STDMETHODCALLTYPE *Next)(
1044 IEnumUnknown* This,
1045 ULONG celt,
1046 IUnknown** rgelt,
1047 ULONG* pceltFetched);
1049 HRESULT (STDMETHODCALLTYPE *Skip)(
1050 IEnumUnknown* This,
1051 ULONG celt);
1053 HRESULT (STDMETHODCALLTYPE *Reset)(
1054 IEnumUnknown* This);
1056 HRESULT (STDMETHODCALLTYPE *Clone)(
1057 IEnumUnknown* This,
1058 IEnumUnknown** ppenum);
1062 /*** IUnknown methods ***/
1063 #define IEnumUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1064 #define IEnumUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
1065 #define IEnumUnknown_Release(p) (p)->lpVtbl->Release(p)
1066 /*** IEnumUnknown methods ***/
1067 #define IEnumUnknown_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1068 #define IEnumUnknown_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1069 #define IEnumUnknown_Reset(p) (p)->lpVtbl->Reset(p)
1070 #define IEnumUnknown_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1072 #endif
1074 #define IEnumUnknown_METHODS \
1075 ICOM_MSVTABLE_COMPAT_FIELDS \
1076 /*** IUnknown methods ***/ \
1077 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1078 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1079 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1080 /*** IEnumUnknown methods ***/ \
1081 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, IUnknown** rgelt, ULONG* pceltFetched) PURE; \
1082 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
1083 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
1084 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumUnknown** ppenum) PURE;
1086 HRESULT CALLBACK IEnumUnknown_RemoteNext_Proxy(
1087 IEnumUnknown* This,
1088 ULONG celt,
1089 IUnknown** rgelt,
1090 ULONG* pceltFetched);
1091 void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
1092 struct IRpcStubBuffer* This,
1093 struct IRpcChannelBuffer* pRpcChannelBuffer,
1094 PRPC_MESSAGE pRpcMessage,
1095 DWORD* pdwStubPhase);
1096 HRESULT CALLBACK IEnumUnknown_Next_Proxy(
1097 IEnumUnknown* This,
1098 ULONG celt,
1099 IUnknown** rgelt,
1100 ULONG* pceltFetched);
1101 HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
1102 IEnumUnknown* This,
1103 ULONG celt,
1104 IUnknown** rgelt,
1105 ULONG* pceltFetched);
1106 HRESULT CALLBACK IEnumUnknown_Skip_Proxy(
1107 IEnumUnknown* This,
1108 ULONG celt);
1109 void __RPC_STUB IEnumUnknown_Skip_Stub(
1110 struct IRpcStubBuffer* This,
1111 struct IRpcChannelBuffer* pRpcChannelBuffer,
1112 PRPC_MESSAGE pRpcMessage,
1113 DWORD* pdwStubPhase);
1114 HRESULT CALLBACK IEnumUnknown_Reset_Proxy(
1115 IEnumUnknown* This);
1116 void __RPC_STUB IEnumUnknown_Reset_Stub(
1117 struct IRpcStubBuffer* This,
1118 struct IRpcChannelBuffer* pRpcChannelBuffer,
1119 PRPC_MESSAGE pRpcMessage,
1120 DWORD* pdwStubPhase);
1121 HRESULT CALLBACK IEnumUnknown_Clone_Proxy(
1122 IEnumUnknown* This,
1123 IEnumUnknown** ppenum);
1124 void __RPC_STUB IEnumUnknown_Clone_Stub(
1125 struct IRpcStubBuffer* This,
1126 struct IRpcChannelBuffer* pRpcChannelBuffer,
1127 PRPC_MESSAGE pRpcMessage,
1128 DWORD* pdwStubPhase);
1130 #endif /* __IEnumUnknown_INTERFACE_DEFINED__ */
1132 #ifndef __ISurrogate_FWD_DEFINED__
1133 #define __ISurrogate_FWD_DEFINED__
1134 typedef struct ISurrogate ISurrogate;
1135 #endif
1137 typedef ISurrogate *LPSURROGATE;
1139 /*****************************************************************************
1140 * ISurrogate interface
1142 #ifndef __ISurrogate_INTERFACE_DEFINED__
1143 #define __ISurrogate_INTERFACE_DEFINED__
1145 DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1146 #if defined(__cplusplus) && !defined(CINTERFACE)
1147 struct ISurrogate : public IUnknown
1149 virtual HRESULT STDMETHODCALLTYPE LoadDllServer(
1150 REFCLSID Clsid) = 0;
1152 virtual HRESULT STDMETHODCALLTYPE FreeSurrogate(
1153 ) = 0;
1156 #else
1157 typedef struct ISurrogateVtbl ISurrogateVtbl;
1158 struct ISurrogate {
1159 const ISurrogateVtbl* lpVtbl;
1161 struct ISurrogateVtbl {
1162 ICOM_MSVTABLE_COMPAT_FIELDS
1164 /*** IUnknown methods ***/
1165 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1166 ISurrogate* This,
1167 REFIID riid,
1168 void** ppvObject);
1170 ULONG (STDMETHODCALLTYPE *AddRef)(
1171 ISurrogate* This);
1173 ULONG (STDMETHODCALLTYPE *Release)(
1174 ISurrogate* This);
1176 /*** ISurrogate methods ***/
1177 HRESULT (STDMETHODCALLTYPE *LoadDllServer)(
1178 ISurrogate* This,
1179 REFCLSID Clsid);
1181 HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(
1182 ISurrogate* This);
1186 /*** IUnknown methods ***/
1187 #define ISurrogate_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1188 #define ISurrogate_AddRef(p) (p)->lpVtbl->AddRef(p)
1189 #define ISurrogate_Release(p) (p)->lpVtbl->Release(p)
1190 /*** ISurrogate methods ***/
1191 #define ISurrogate_LoadDllServer(p,a) (p)->lpVtbl->LoadDllServer(p,a)
1192 #define ISurrogate_FreeSurrogate(p) (p)->lpVtbl->FreeSurrogate(p)
1194 #endif
1196 #define ISurrogate_METHODS \
1197 ICOM_MSVTABLE_COMPAT_FIELDS \
1198 /*** IUnknown methods ***/ \
1199 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1200 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1201 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1202 /*** ISurrogate methods ***/ \
1203 STDMETHOD_(HRESULT,LoadDllServer)(THIS_ REFCLSID Clsid) PURE; \
1204 STDMETHOD_(HRESULT,FreeSurrogate)(THIS) PURE;
1206 HRESULT CALLBACK ISurrogate_LoadDllServer_Proxy(
1207 ISurrogate* This,
1208 REFCLSID Clsid);
1209 void __RPC_STUB ISurrogate_LoadDllServer_Stub(
1210 struct IRpcStubBuffer* This,
1211 struct IRpcChannelBuffer* pRpcChannelBuffer,
1212 PRPC_MESSAGE pRpcMessage,
1213 DWORD* pdwStubPhase);
1214 HRESULT CALLBACK ISurrogate_FreeSurrogate_Proxy(
1215 ISurrogate* This);
1216 void __RPC_STUB ISurrogate_FreeSurrogate_Stub(
1217 struct IRpcStubBuffer* This,
1218 struct IRpcChannelBuffer* pRpcChannelBuffer,
1219 PRPC_MESSAGE pRpcMessage,
1220 DWORD* pdwStubPhase);
1222 #endif /* __ISurrogate_INTERFACE_DEFINED__ */
1224 #ifndef __IGlobalInterfaceTable_FWD_DEFINED__
1225 #define __IGlobalInterfaceTable_FWD_DEFINED__
1226 typedef struct IGlobalInterfaceTable IGlobalInterfaceTable;
1227 #endif
1229 typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
1231 /*****************************************************************************
1232 * IGlobalInterfaceTable interface
1234 #ifndef __IGlobalInterfaceTable_INTERFACE_DEFINED__
1235 #define __IGlobalInterfaceTable_INTERFACE_DEFINED__
1237 DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1238 #if defined(__cplusplus) && !defined(CINTERFACE)
1239 struct IGlobalInterfaceTable : public IUnknown
1241 virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal(
1242 IUnknown* pUnk,
1243 REFIID riid,
1244 DWORD* pdwCookie) = 0;
1246 virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal(
1247 DWORD dwCookie) = 0;
1249 virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal(
1250 DWORD dwCookie,
1251 REFIID riid,
1252 void** ppv) = 0;
1255 #else
1256 typedef struct IGlobalInterfaceTableVtbl IGlobalInterfaceTableVtbl;
1257 struct IGlobalInterfaceTable {
1258 const IGlobalInterfaceTableVtbl* lpVtbl;
1260 struct IGlobalInterfaceTableVtbl {
1261 ICOM_MSVTABLE_COMPAT_FIELDS
1263 /*** IUnknown methods ***/
1264 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1265 IGlobalInterfaceTable* This,
1266 REFIID riid,
1267 void** ppvObject);
1269 ULONG (STDMETHODCALLTYPE *AddRef)(
1270 IGlobalInterfaceTable* This);
1272 ULONG (STDMETHODCALLTYPE *Release)(
1273 IGlobalInterfaceTable* This);
1275 /*** IGlobalInterfaceTable methods ***/
1276 HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(
1277 IGlobalInterfaceTable* This,
1278 IUnknown* pUnk,
1279 REFIID riid,
1280 DWORD* pdwCookie);
1282 HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(
1283 IGlobalInterfaceTable* This,
1284 DWORD dwCookie);
1286 HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(
1287 IGlobalInterfaceTable* This,
1288 DWORD dwCookie,
1289 REFIID riid,
1290 void** ppv);
1294 /*** IUnknown methods ***/
1295 #define IGlobalInterfaceTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1296 #define IGlobalInterfaceTable_AddRef(p) (p)->lpVtbl->AddRef(p)
1297 #define IGlobalInterfaceTable_Release(p) (p)->lpVtbl->Release(p)
1298 /*** IGlobalInterfaceTable methods ***/
1299 #define IGlobalInterfaceTable_RegisterInterfaceInGlobal(p,a,b,c) (p)->lpVtbl->RegisterInterfaceInGlobal(p,a,b,c)
1300 #define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(p,a) (p)->lpVtbl->RevokeInterfaceFromGlobal(p,a)
1301 #define IGlobalInterfaceTable_GetInterfaceFromGlobal(p,a,b,c) (p)->lpVtbl->GetInterfaceFromGlobal(p,a,b,c)
1303 #endif
1305 #define IGlobalInterfaceTable_METHODS \
1306 ICOM_MSVTABLE_COMPAT_FIELDS \
1307 /*** IUnknown methods ***/ \
1308 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1309 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1310 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1311 /*** IGlobalInterfaceTable methods ***/ \
1312 STDMETHOD_(HRESULT,RegisterInterfaceInGlobal)(THIS_ IUnknown* pUnk, REFIID riid, DWORD* pdwCookie) PURE; \
1313 STDMETHOD_(HRESULT,RevokeInterfaceFromGlobal)(THIS_ DWORD dwCookie) PURE; \
1314 STDMETHOD_(HRESULT,GetInterfaceFromGlobal)(THIS_ DWORD dwCookie, REFIID riid, void** ppv) PURE;
1316 HRESULT CALLBACK IGlobalInterfaceTable_RegisterInterfaceInGlobal_Proxy(
1317 IGlobalInterfaceTable* This,
1318 IUnknown* pUnk,
1319 REFIID riid,
1320 DWORD* pdwCookie);
1321 void __RPC_STUB IGlobalInterfaceTable_RegisterInterfaceInGlobal_Stub(
1322 struct IRpcStubBuffer* This,
1323 struct IRpcChannelBuffer* pRpcChannelBuffer,
1324 PRPC_MESSAGE pRpcMessage,
1325 DWORD* pdwStubPhase);
1326 HRESULT CALLBACK IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Proxy(
1327 IGlobalInterfaceTable* This,
1328 DWORD dwCookie);
1329 void __RPC_STUB IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Stub(
1330 struct IRpcStubBuffer* This,
1331 struct IRpcChannelBuffer* pRpcChannelBuffer,
1332 PRPC_MESSAGE pRpcMessage,
1333 DWORD* pdwStubPhase);
1334 HRESULT CALLBACK IGlobalInterfaceTable_GetInterfaceFromGlobal_Proxy(
1335 IGlobalInterfaceTable* This,
1336 DWORD dwCookie,
1337 REFIID riid,
1338 void** ppv);
1339 void __RPC_STUB IGlobalInterfaceTable_GetInterfaceFromGlobal_Stub(
1340 struct IRpcStubBuffer* This,
1341 struct IRpcChannelBuffer* pRpcChannelBuffer,
1342 PRPC_MESSAGE pRpcMessage,
1343 DWORD* pdwStubPhase);
1345 #endif /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */
1347 #ifndef __IBindCtx_FWD_DEFINED__
1348 #define __IBindCtx_FWD_DEFINED__
1349 typedef struct IBindCtx IBindCtx;
1350 #endif
1352 typedef IBindCtx *LPBINDCTX;
1354 typedef IBindCtx *LPBC;
1356 typedef struct tagBIND_OPTS {
1357 DWORD cbStruct;
1358 DWORD grfFlags;
1359 DWORD grfMode;
1360 DWORD dwTickCountDeadline;
1361 } BIND_OPTS, *LPBIND_OPTS;
1363 typedef struct tagBIND_OPTS2 {
1364 DWORD cbStruct;
1365 DWORD grfFlags;
1366 DWORD grfMode;
1367 DWORD dwTickCountDeadline;
1368 DWORD dwTrackFlags;
1369 DWORD dwClassContext;
1370 LCID locale;
1371 COSERVERINFO *pServerInfo;
1372 } BIND_OPTS2, *LPBIND_OPTS2;
1374 typedef enum tagBIND_FLAGS {
1375 BIND_MAYBOTHERUSER = 1,
1376 BIND_JUSTTESTEXISTENCE = 2
1377 } BIND_FLAGS;
1379 /*****************************************************************************
1380 * IBindCtx interface
1382 #ifndef __IBindCtx_INTERFACE_DEFINED__
1383 #define __IBindCtx_INTERFACE_DEFINED__
1385 DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1386 #if defined(__cplusplus) && !defined(CINTERFACE)
1387 struct IBindCtx : public IUnknown
1389 virtual HRESULT STDMETHODCALLTYPE RegisterObjectBound(
1390 IUnknown* punk) = 0;
1392 virtual HRESULT STDMETHODCALLTYPE RevokeObjectBound(
1393 IUnknown* punk) = 0;
1395 virtual HRESULT STDMETHODCALLTYPE ReleaseBoundObjects(
1396 ) = 0;
1398 virtual HRESULT STDMETHODCALLTYPE SetBindOptions(
1399 BIND_OPTS* pbindopts) = 0;
1401 virtual HRESULT STDMETHODCALLTYPE GetBindOptions(
1402 BIND_OPTS* pbindopts) = 0;
1404 virtual HRESULT STDMETHODCALLTYPE GetRunningObjectTable(
1405 IRunningObjectTable** pprot) = 0;
1407 virtual HRESULT STDMETHODCALLTYPE RegisterObjectParam(
1408 LPOLESTR pszKey,
1409 IUnknown* punk) = 0;
1411 virtual HRESULT STDMETHODCALLTYPE GetObjectParam(
1412 LPOLESTR pszKey,
1413 IUnknown** ppunk) = 0;
1415 virtual HRESULT STDMETHODCALLTYPE EnumObjectParam(
1416 IEnumString** ppenum) = 0;
1418 virtual HRESULT STDMETHODCALLTYPE RevokeObjectParam(
1419 LPOLESTR pszKey) = 0;
1422 #else
1423 typedef struct IBindCtxVtbl IBindCtxVtbl;
1424 struct IBindCtx {
1425 const IBindCtxVtbl* lpVtbl;
1427 struct IBindCtxVtbl {
1428 ICOM_MSVTABLE_COMPAT_FIELDS
1430 /*** IUnknown methods ***/
1431 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1432 IBindCtx* This,
1433 REFIID riid,
1434 void** ppvObject);
1436 ULONG (STDMETHODCALLTYPE *AddRef)(
1437 IBindCtx* This);
1439 ULONG (STDMETHODCALLTYPE *Release)(
1440 IBindCtx* This);
1442 /*** IBindCtx methods ***/
1443 HRESULT (STDMETHODCALLTYPE *RegisterObjectBound)(
1444 IBindCtx* This,
1445 IUnknown* punk);
1447 HRESULT (STDMETHODCALLTYPE *RevokeObjectBound)(
1448 IBindCtx* This,
1449 IUnknown* punk);
1451 HRESULT (STDMETHODCALLTYPE *ReleaseBoundObjects)(
1452 IBindCtx* This);
1454 HRESULT (STDMETHODCALLTYPE *SetBindOptions)(
1455 IBindCtx* This,
1456 BIND_OPTS* pbindopts);
1458 HRESULT (STDMETHODCALLTYPE *GetBindOptions)(
1459 IBindCtx* This,
1460 BIND_OPTS* pbindopts);
1462 HRESULT (STDMETHODCALLTYPE *GetRunningObjectTable)(
1463 IBindCtx* This,
1464 IRunningObjectTable** pprot);
1466 HRESULT (STDMETHODCALLTYPE *RegisterObjectParam)(
1467 IBindCtx* This,
1468 LPOLESTR pszKey,
1469 IUnknown* punk);
1471 HRESULT (STDMETHODCALLTYPE *GetObjectParam)(
1472 IBindCtx* This,
1473 LPOLESTR pszKey,
1474 IUnknown** ppunk);
1476 HRESULT (STDMETHODCALLTYPE *EnumObjectParam)(
1477 IBindCtx* This,
1478 IEnumString** ppenum);
1480 HRESULT (STDMETHODCALLTYPE *RevokeObjectParam)(
1481 IBindCtx* This,
1482 LPOLESTR pszKey);
1486 /*** IUnknown methods ***/
1487 #define IBindCtx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1488 #define IBindCtx_AddRef(p) (p)->lpVtbl->AddRef(p)
1489 #define IBindCtx_Release(p) (p)->lpVtbl->Release(p)
1490 /*** IBindCtx methods ***/
1491 #define IBindCtx_RegisterObjectBound(p,a) (p)->lpVtbl->RegisterObjectBound(p,a)
1492 #define IBindCtx_RevokeObjectBound(p,a) (p)->lpVtbl->RevokeObjectBound(p,a)
1493 #define IBindCtx_ReleaseBoundObjects(p) (p)->lpVtbl->ReleaseBoundObjects(p)
1494 #define IBindCtx_SetBindOptions(p,a) (p)->lpVtbl->SetBindOptions(p,a)
1495 #define IBindCtx_GetBindOptions(p,a) (p)->lpVtbl->GetBindOptions(p,a)
1496 #define IBindCtx_GetRunningObjectTable(p,a) (p)->lpVtbl->GetRunningObjectTable(p,a)
1497 #define IBindCtx_RegisterObjectParam(p,a,b) (p)->lpVtbl->RegisterObjectParam(p,a,b)
1498 #define IBindCtx_GetObjectParam(p,a,b) (p)->lpVtbl->GetObjectParam(p,a,b)
1499 #define IBindCtx_EnumObjectParam(p,a) (p)->lpVtbl->EnumObjectParam(p,a)
1500 #define IBindCtx_RevokeObjectParam(p,a) (p)->lpVtbl->RevokeObjectParam(p,a)
1502 #endif
1504 #define IBindCtx_METHODS \
1505 ICOM_MSVTABLE_COMPAT_FIELDS \
1506 /*** IUnknown methods ***/ \
1507 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1508 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1509 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1510 /*** IBindCtx methods ***/ \
1511 STDMETHOD_(HRESULT,RegisterObjectBound)(THIS_ IUnknown* punk) PURE; \
1512 STDMETHOD_(HRESULT,RevokeObjectBound)(THIS_ IUnknown* punk) PURE; \
1513 STDMETHOD_(HRESULT,ReleaseBoundObjects)(THIS) PURE; \
1514 STDMETHOD_(HRESULT,SetBindOptions)(THIS_ BIND_OPTS* pbindopts) PURE; \
1515 STDMETHOD_(HRESULT,GetBindOptions)(THIS_ BIND_OPTS* pbindopts) PURE; \
1516 STDMETHOD_(HRESULT,GetRunningObjectTable)(THIS_ IRunningObjectTable** pprot) PURE; \
1517 STDMETHOD_(HRESULT,RegisterObjectParam)(THIS_ LPOLESTR pszKey, IUnknown* punk) PURE; \
1518 STDMETHOD_(HRESULT,GetObjectParam)(THIS_ LPOLESTR pszKey, IUnknown** ppunk) PURE; \
1519 STDMETHOD_(HRESULT,EnumObjectParam)(THIS_ IEnumString** ppenum) PURE; \
1520 STDMETHOD_(HRESULT,RevokeObjectParam)(THIS_ LPOLESTR pszKey) PURE;
1522 HRESULT CALLBACK IBindCtx_RegisterObjectBound_Proxy(
1523 IBindCtx* This,
1524 IUnknown* punk);
1525 void __RPC_STUB IBindCtx_RegisterObjectBound_Stub(
1526 struct IRpcStubBuffer* This,
1527 struct IRpcChannelBuffer* pRpcChannelBuffer,
1528 PRPC_MESSAGE pRpcMessage,
1529 DWORD* pdwStubPhase);
1530 HRESULT CALLBACK IBindCtx_RevokeObjectBound_Proxy(
1531 IBindCtx* This,
1532 IUnknown* punk);
1533 void __RPC_STUB IBindCtx_RevokeObjectBound_Stub(
1534 struct IRpcStubBuffer* This,
1535 struct IRpcChannelBuffer* pRpcChannelBuffer,
1536 PRPC_MESSAGE pRpcMessage,
1537 DWORD* pdwStubPhase);
1538 HRESULT CALLBACK IBindCtx_ReleaseBoundObjects_Proxy(
1539 IBindCtx* This);
1540 void __RPC_STUB IBindCtx_ReleaseBoundObjects_Stub(
1541 struct IRpcStubBuffer* This,
1542 struct IRpcChannelBuffer* pRpcChannelBuffer,
1543 PRPC_MESSAGE pRpcMessage,
1544 DWORD* pdwStubPhase);
1545 HRESULT CALLBACK IBindCtx_RemoteSetBindOptions_Proxy(
1546 IBindCtx* This,
1547 BIND_OPTS2* pbindopts);
1548 void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
1549 struct IRpcStubBuffer* This,
1550 struct IRpcChannelBuffer* pRpcChannelBuffer,
1551 PRPC_MESSAGE pRpcMessage,
1552 DWORD* pdwStubPhase);
1553 HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
1554 IBindCtx* This,
1555 BIND_OPTS* pbindopts);
1556 HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
1557 IBindCtx* This,
1558 BIND_OPTS2* pbindopts);
1559 HRESULT CALLBACK IBindCtx_RemoteGetBindOptions_Proxy(
1560 IBindCtx* This,
1561 BIND_OPTS2* pbindopts);
1562 void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
1563 struct IRpcStubBuffer* This,
1564 struct IRpcChannelBuffer* pRpcChannelBuffer,
1565 PRPC_MESSAGE pRpcMessage,
1566 DWORD* pdwStubPhase);
1567 HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
1568 IBindCtx* This,
1569 BIND_OPTS* pbindopts);
1570 HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
1571 IBindCtx* This,
1572 BIND_OPTS2* pbindopts);
1573 HRESULT CALLBACK IBindCtx_GetRunningObjectTable_Proxy(
1574 IBindCtx* This,
1575 IRunningObjectTable** pprot);
1576 void __RPC_STUB IBindCtx_GetRunningObjectTable_Stub(
1577 struct IRpcStubBuffer* This,
1578 struct IRpcChannelBuffer* pRpcChannelBuffer,
1579 PRPC_MESSAGE pRpcMessage,
1580 DWORD* pdwStubPhase);
1581 HRESULT CALLBACK IBindCtx_RegisterObjectParam_Proxy(
1582 IBindCtx* This,
1583 LPOLESTR pszKey,
1584 IUnknown* punk);
1585 void __RPC_STUB IBindCtx_RegisterObjectParam_Stub(
1586 struct IRpcStubBuffer* This,
1587 struct IRpcChannelBuffer* pRpcChannelBuffer,
1588 PRPC_MESSAGE pRpcMessage,
1589 DWORD* pdwStubPhase);
1590 HRESULT CALLBACK IBindCtx_GetObjectParam_Proxy(
1591 IBindCtx* This,
1592 LPOLESTR pszKey,
1593 IUnknown** ppunk);
1594 void __RPC_STUB IBindCtx_GetObjectParam_Stub(
1595 struct IRpcStubBuffer* This,
1596 struct IRpcChannelBuffer* pRpcChannelBuffer,
1597 PRPC_MESSAGE pRpcMessage,
1598 DWORD* pdwStubPhase);
1599 HRESULT CALLBACK IBindCtx_EnumObjectParam_Proxy(
1600 IBindCtx* This,
1601 IEnumString** ppenum);
1602 void __RPC_STUB IBindCtx_EnumObjectParam_Stub(
1603 struct IRpcStubBuffer* This,
1604 struct IRpcChannelBuffer* pRpcChannelBuffer,
1605 PRPC_MESSAGE pRpcMessage,
1606 DWORD* pdwStubPhase);
1607 HRESULT CALLBACK IBindCtx_RevokeObjectParam_Proxy(
1608 IBindCtx* This,
1609 LPOLESTR pszKey);
1610 void __RPC_STUB IBindCtx_RevokeObjectParam_Stub(
1611 struct IRpcStubBuffer* This,
1612 struct IRpcChannelBuffer* pRpcChannelBuffer,
1613 PRPC_MESSAGE pRpcMessage,
1614 DWORD* pdwStubPhase);
1616 #endif /* __IBindCtx_INTERFACE_DEFINED__ */
1618 #ifndef __IEnumMoniker_FWD_DEFINED__
1619 #define __IEnumMoniker_FWD_DEFINED__
1620 typedef struct IEnumMoniker IEnumMoniker;
1621 #endif
1623 typedef IEnumMoniker *LPENUMMONIKER;
1625 /*****************************************************************************
1626 * IEnumMoniker interface
1628 #ifndef __IEnumMoniker_INTERFACE_DEFINED__
1629 #define __IEnumMoniker_INTERFACE_DEFINED__
1631 DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1632 #if defined(__cplusplus) && !defined(CINTERFACE)
1633 struct IEnumMoniker : public IUnknown
1635 virtual HRESULT STDMETHODCALLTYPE Next(
1636 ULONG celt,
1637 IMoniker** rgelt,
1638 ULONG* pceltFetched) = 0;
1640 virtual HRESULT STDMETHODCALLTYPE Skip(
1641 ULONG celt) = 0;
1643 virtual HRESULT STDMETHODCALLTYPE Reset(
1644 ) = 0;
1646 virtual HRESULT STDMETHODCALLTYPE Clone(
1647 IEnumMoniker** ppenum) = 0;
1650 #else
1651 typedef struct IEnumMonikerVtbl IEnumMonikerVtbl;
1652 struct IEnumMoniker {
1653 const IEnumMonikerVtbl* lpVtbl;
1655 struct IEnumMonikerVtbl {
1656 ICOM_MSVTABLE_COMPAT_FIELDS
1658 /*** IUnknown methods ***/
1659 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1660 IEnumMoniker* This,
1661 REFIID riid,
1662 void** ppvObject);
1664 ULONG (STDMETHODCALLTYPE *AddRef)(
1665 IEnumMoniker* This);
1667 ULONG (STDMETHODCALLTYPE *Release)(
1668 IEnumMoniker* This);
1670 /*** IEnumMoniker methods ***/
1671 HRESULT (STDMETHODCALLTYPE *Next)(
1672 IEnumMoniker* This,
1673 ULONG celt,
1674 IMoniker** rgelt,
1675 ULONG* pceltFetched);
1677 HRESULT (STDMETHODCALLTYPE *Skip)(
1678 IEnumMoniker* This,
1679 ULONG celt);
1681 HRESULT (STDMETHODCALLTYPE *Reset)(
1682 IEnumMoniker* This);
1684 HRESULT (STDMETHODCALLTYPE *Clone)(
1685 IEnumMoniker* This,
1686 IEnumMoniker** ppenum);
1690 /*** IUnknown methods ***/
1691 #define IEnumMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1692 #define IEnumMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
1693 #define IEnumMoniker_Release(p) (p)->lpVtbl->Release(p)
1694 /*** IEnumMoniker methods ***/
1695 #define IEnumMoniker_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1696 #define IEnumMoniker_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1697 #define IEnumMoniker_Reset(p) (p)->lpVtbl->Reset(p)
1698 #define IEnumMoniker_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1700 #endif
1702 #define IEnumMoniker_METHODS \
1703 ICOM_MSVTABLE_COMPAT_FIELDS \
1704 /*** IUnknown methods ***/ \
1705 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1706 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1707 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1708 /*** IEnumMoniker methods ***/ \
1709 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, IMoniker** rgelt, ULONG* pceltFetched) PURE; \
1710 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
1711 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
1712 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumMoniker** ppenum) PURE;
1714 HRESULT CALLBACK IEnumMoniker_RemoteNext_Proxy(
1715 IEnumMoniker* This,
1716 ULONG celt,
1717 IMoniker** rgelt,
1718 ULONG* pceltFetched);
1719 void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
1720 struct IRpcStubBuffer* This,
1721 struct IRpcChannelBuffer* pRpcChannelBuffer,
1722 PRPC_MESSAGE pRpcMessage,
1723 DWORD* pdwStubPhase);
1724 HRESULT CALLBACK IEnumMoniker_Next_Proxy(
1725 IEnumMoniker* This,
1726 ULONG celt,
1727 IMoniker** rgelt,
1728 ULONG* pceltFetched);
1729 HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
1730 IEnumMoniker* This,
1731 ULONG celt,
1732 IMoniker** rgelt,
1733 ULONG* pceltFetched);
1734 HRESULT CALLBACK IEnumMoniker_Skip_Proxy(
1735 IEnumMoniker* This,
1736 ULONG celt);
1737 void __RPC_STUB IEnumMoniker_Skip_Stub(
1738 struct IRpcStubBuffer* This,
1739 struct IRpcChannelBuffer* pRpcChannelBuffer,
1740 PRPC_MESSAGE pRpcMessage,
1741 DWORD* pdwStubPhase);
1742 HRESULT CALLBACK IEnumMoniker_Reset_Proxy(
1743 IEnumMoniker* This);
1744 void __RPC_STUB IEnumMoniker_Reset_Stub(
1745 struct IRpcStubBuffer* This,
1746 struct IRpcChannelBuffer* pRpcChannelBuffer,
1747 PRPC_MESSAGE pRpcMessage,
1748 DWORD* pdwStubPhase);
1749 HRESULT CALLBACK IEnumMoniker_Clone_Proxy(
1750 IEnumMoniker* This,
1751 IEnumMoniker** ppenum);
1752 void __RPC_STUB IEnumMoniker_Clone_Stub(
1753 struct IRpcStubBuffer* This,
1754 struct IRpcChannelBuffer* pRpcChannelBuffer,
1755 PRPC_MESSAGE pRpcMessage,
1756 DWORD* pdwStubPhase);
1758 #endif /* __IEnumMoniker_INTERFACE_DEFINED__ */
1760 #ifndef __IRunnableObject_FWD_DEFINED__
1761 #define __IRunnableObject_FWD_DEFINED__
1762 typedef struct IRunnableObject IRunnableObject;
1763 #endif
1765 typedef IRunnableObject *LPRUNNABLEOBJECT;
1767 /*****************************************************************************
1768 * IRunnableObject interface
1770 #ifndef __IRunnableObject_INTERFACE_DEFINED__
1771 #define __IRunnableObject_INTERFACE_DEFINED__
1773 DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1774 #if defined(__cplusplus) && !defined(CINTERFACE)
1775 struct IRunnableObject : public IUnknown
1777 virtual HRESULT STDMETHODCALLTYPE GetRunningClass(
1778 LPCLSID lpClsid) = 0;
1780 virtual HRESULT STDMETHODCALLTYPE Run(
1781 LPBINDCTX pbc) = 0;
1783 virtual BOOL STDMETHODCALLTYPE IsRunning(
1784 ) = 0;
1786 virtual HRESULT STDMETHODCALLTYPE LockRunning(
1787 BOOL fLock,
1788 BOOL fLastUnlockCloses) = 0;
1790 virtual HRESULT STDMETHODCALLTYPE SetContainedObject(
1791 BOOL fContained) = 0;
1794 #else
1795 typedef struct IRunnableObjectVtbl IRunnableObjectVtbl;
1796 struct IRunnableObject {
1797 const IRunnableObjectVtbl* lpVtbl;
1799 struct IRunnableObjectVtbl {
1800 ICOM_MSVTABLE_COMPAT_FIELDS
1802 /*** IUnknown methods ***/
1803 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1804 IRunnableObject* This,
1805 REFIID riid,
1806 void** ppvObject);
1808 ULONG (STDMETHODCALLTYPE *AddRef)(
1809 IRunnableObject* This);
1811 ULONG (STDMETHODCALLTYPE *Release)(
1812 IRunnableObject* This);
1814 /*** IRunnableObject methods ***/
1815 HRESULT (STDMETHODCALLTYPE *GetRunningClass)(
1816 IRunnableObject* This,
1817 LPCLSID lpClsid);
1819 HRESULT (STDMETHODCALLTYPE *Run)(
1820 IRunnableObject* This,
1821 LPBINDCTX pbc);
1823 BOOL (STDMETHODCALLTYPE *IsRunning)(
1824 IRunnableObject* This);
1826 HRESULT (STDMETHODCALLTYPE *LockRunning)(
1827 IRunnableObject* This,
1828 BOOL fLock,
1829 BOOL fLastUnlockCloses);
1831 HRESULT (STDMETHODCALLTYPE *SetContainedObject)(
1832 IRunnableObject* This,
1833 BOOL fContained);
1837 /*** IUnknown methods ***/
1838 #define IRunnableObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1839 #define IRunnableObject_AddRef(p) (p)->lpVtbl->AddRef(p)
1840 #define IRunnableObject_Release(p) (p)->lpVtbl->Release(p)
1841 /*** IRunnableObject methods ***/
1842 #define IRunnableObject_GetRunningClass(p,a) (p)->lpVtbl->GetRunningClass(p,a)
1843 #define IRunnableObject_Run(p,a) (p)->lpVtbl->Run(p,a)
1844 #define IRunnableObject_IsRunning(p) (p)->lpVtbl->IsRunning(p)
1845 #define IRunnableObject_LockRunning(p,a,b) (p)->lpVtbl->LockRunning(p,a,b)
1846 #define IRunnableObject_SetContainedObject(p,a) (p)->lpVtbl->SetContainedObject(p,a)
1848 #endif
1850 #define IRunnableObject_METHODS \
1851 ICOM_MSVTABLE_COMPAT_FIELDS \
1852 /*** IUnknown methods ***/ \
1853 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1854 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1855 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1856 /*** IRunnableObject methods ***/ \
1857 STDMETHOD_(HRESULT,GetRunningClass)(THIS_ LPCLSID lpClsid) PURE; \
1858 STDMETHOD_(HRESULT,Run)(THIS_ LPBINDCTX pbc) PURE; \
1859 STDMETHOD_(BOOL,IsRunning)(THIS) PURE; \
1860 STDMETHOD_(HRESULT,LockRunning)(THIS_ BOOL fLock, BOOL fLastUnlockCloses) PURE; \
1861 STDMETHOD_(HRESULT,SetContainedObject)(THIS_ BOOL fContained) PURE;
1863 HRESULT CALLBACK IRunnableObject_GetRunningClass_Proxy(
1864 IRunnableObject* This,
1865 LPCLSID lpClsid);
1866 void __RPC_STUB IRunnableObject_GetRunningClass_Stub(
1867 struct IRpcStubBuffer* This,
1868 struct IRpcChannelBuffer* pRpcChannelBuffer,
1869 PRPC_MESSAGE pRpcMessage,
1870 DWORD* pdwStubPhase);
1871 HRESULT CALLBACK IRunnableObject_Run_Proxy(
1872 IRunnableObject* This,
1873 LPBINDCTX pbc);
1874 void __RPC_STUB IRunnableObject_Run_Stub(
1875 struct IRpcStubBuffer* This,
1876 struct IRpcChannelBuffer* pRpcChannelBuffer,
1877 PRPC_MESSAGE pRpcMessage,
1878 DWORD* pdwStubPhase);
1879 HRESULT CALLBACK IRunnableObject_RemoteIsRunning_Proxy(
1880 IRunnableObject* This);
1881 void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
1882 struct IRpcStubBuffer* This,
1883 struct IRpcChannelBuffer* pRpcChannelBuffer,
1884 PRPC_MESSAGE pRpcMessage,
1885 DWORD* pdwStubPhase);
1886 BOOL CALLBACK IRunnableObject_IsRunning_Proxy(
1887 IRunnableObject* This);
1888 HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
1889 IRunnableObject* This);
1890 HRESULT CALLBACK IRunnableObject_LockRunning_Proxy(
1891 IRunnableObject* This,
1892 BOOL fLock,
1893 BOOL fLastUnlockCloses);
1894 void __RPC_STUB IRunnableObject_LockRunning_Stub(
1895 struct IRpcStubBuffer* This,
1896 struct IRpcChannelBuffer* pRpcChannelBuffer,
1897 PRPC_MESSAGE pRpcMessage,
1898 DWORD* pdwStubPhase);
1899 HRESULT CALLBACK IRunnableObject_SetContainedObject_Proxy(
1900 IRunnableObject* This,
1901 BOOL fContained);
1902 void __RPC_STUB IRunnableObject_SetContainedObject_Stub(
1903 struct IRpcStubBuffer* This,
1904 struct IRpcChannelBuffer* pRpcChannelBuffer,
1905 PRPC_MESSAGE pRpcMessage,
1906 DWORD* pdwStubPhase);
1908 #endif /* __IRunnableObject_INTERFACE_DEFINED__ */
1910 #ifdef __WINESRC__
1911 #undef GetObject
1912 #endif
1913 typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
1915 /*****************************************************************************
1916 * IRunningObjectTable interface
1918 #ifndef __IRunningObjectTable_INTERFACE_DEFINED__
1919 #define __IRunningObjectTable_INTERFACE_DEFINED__
1921 DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1922 #if defined(__cplusplus) && !defined(CINTERFACE)
1923 struct IRunningObjectTable : public IUnknown
1925 virtual HRESULT STDMETHODCALLTYPE Register(
1926 DWORD grfFlags,
1927 IUnknown* punkObject,
1928 IMoniker* pmkObjectName,
1929 DWORD* pdwRegister) = 0;
1931 virtual HRESULT STDMETHODCALLTYPE Revoke(
1932 DWORD dwRegister) = 0;
1934 virtual HRESULT STDMETHODCALLTYPE IsRunning(
1935 IMoniker* pmkObjectName) = 0;
1937 virtual HRESULT STDMETHODCALLTYPE GetObject(
1938 IMoniker* pmkObjectName,
1939 IUnknown** ppunkObject) = 0;
1941 virtual HRESULT STDMETHODCALLTYPE NoteChangeTime(
1942 DWORD dwRegister,
1943 FILETIME* pfiletime) = 0;
1945 virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
1946 IMoniker* pmkObjectName,
1947 FILETIME* pfiletime) = 0;
1949 virtual HRESULT STDMETHODCALLTYPE EnumRunning(
1950 IEnumMoniker** ppenumMoniker) = 0;
1953 #else
1954 typedef struct IRunningObjectTableVtbl IRunningObjectTableVtbl;
1955 struct IRunningObjectTable {
1956 const IRunningObjectTableVtbl* lpVtbl;
1958 struct IRunningObjectTableVtbl {
1959 ICOM_MSVTABLE_COMPAT_FIELDS
1961 /*** IUnknown methods ***/
1962 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1963 IRunningObjectTable* This,
1964 REFIID riid,
1965 void** ppvObject);
1967 ULONG (STDMETHODCALLTYPE *AddRef)(
1968 IRunningObjectTable* This);
1970 ULONG (STDMETHODCALLTYPE *Release)(
1971 IRunningObjectTable* This);
1973 /*** IRunningObjectTable methods ***/
1974 HRESULT (STDMETHODCALLTYPE *Register)(
1975 IRunningObjectTable* This,
1976 DWORD grfFlags,
1977 IUnknown* punkObject,
1978 IMoniker* pmkObjectName,
1979 DWORD* pdwRegister);
1981 HRESULT (STDMETHODCALLTYPE *Revoke)(
1982 IRunningObjectTable* This,
1983 DWORD dwRegister);
1985 HRESULT (STDMETHODCALLTYPE *IsRunning)(
1986 IRunningObjectTable* This,
1987 IMoniker* pmkObjectName);
1989 HRESULT (STDMETHODCALLTYPE *GetObject)(
1990 IRunningObjectTable* This,
1991 IMoniker* pmkObjectName,
1992 IUnknown** ppunkObject);
1994 HRESULT (STDMETHODCALLTYPE *NoteChangeTime)(
1995 IRunningObjectTable* This,
1996 DWORD dwRegister,
1997 FILETIME* pfiletime);
1999 HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
2000 IRunningObjectTable* This,
2001 IMoniker* pmkObjectName,
2002 FILETIME* pfiletime);
2004 HRESULT (STDMETHODCALLTYPE *EnumRunning)(
2005 IRunningObjectTable* This,
2006 IEnumMoniker** ppenumMoniker);
2010 /*** IUnknown methods ***/
2011 #define IRunningObjectTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2012 #define IRunningObjectTable_AddRef(p) (p)->lpVtbl->AddRef(p)
2013 #define IRunningObjectTable_Release(p) (p)->lpVtbl->Release(p)
2014 /*** IRunningObjectTable methods ***/
2015 #define IRunningObjectTable_Register(p,a,b,c,d) (p)->lpVtbl->Register(p,a,b,c,d)
2016 #define IRunningObjectTable_Revoke(p,a) (p)->lpVtbl->Revoke(p,a)
2017 #define IRunningObjectTable_IsRunning(p,a) (p)->lpVtbl->IsRunning(p,a)
2018 #define IRunningObjectTable_GetObject(p,a,b) (p)->lpVtbl->GetObject(p,a,b)
2019 #define IRunningObjectTable_NoteChangeTime(p,a,b) (p)->lpVtbl->NoteChangeTime(p,a,b)
2020 #define IRunningObjectTable_GetTimeOfLastChange(p,a,b) (p)->lpVtbl->GetTimeOfLastChange(p,a,b)
2021 #define IRunningObjectTable_EnumRunning(p,a) (p)->lpVtbl->EnumRunning(p,a)
2023 #endif
2025 #define IRunningObjectTable_METHODS \
2026 ICOM_MSVTABLE_COMPAT_FIELDS \
2027 /*** IUnknown methods ***/ \
2028 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2029 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2030 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2031 /*** IRunningObjectTable methods ***/ \
2032 STDMETHOD_(HRESULT,Register)(THIS_ DWORD grfFlags, IUnknown* punkObject, IMoniker* pmkObjectName, DWORD* pdwRegister) PURE; \
2033 STDMETHOD_(HRESULT,Revoke)(THIS_ DWORD dwRegister) PURE; \
2034 STDMETHOD_(HRESULT,IsRunning)(THIS_ IMoniker* pmkObjectName) PURE; \
2035 STDMETHOD_(HRESULT,GetObject)(THIS_ IMoniker* pmkObjectName, IUnknown** ppunkObject) PURE; \
2036 STDMETHOD_(HRESULT,NoteChangeTime)(THIS_ DWORD dwRegister, FILETIME* pfiletime) PURE; \
2037 STDMETHOD_(HRESULT,GetTimeOfLastChange)(THIS_ IMoniker* pmkObjectName, FILETIME* pfiletime) PURE; \
2038 STDMETHOD_(HRESULT,EnumRunning)(THIS_ IEnumMoniker** ppenumMoniker) PURE;
2040 HRESULT CALLBACK IRunningObjectTable_Register_Proxy(
2041 IRunningObjectTable* This,
2042 DWORD grfFlags,
2043 IUnknown* punkObject,
2044 IMoniker* pmkObjectName,
2045 DWORD* pdwRegister);
2046 void __RPC_STUB IRunningObjectTable_Register_Stub(
2047 struct IRpcStubBuffer* This,
2048 struct IRpcChannelBuffer* pRpcChannelBuffer,
2049 PRPC_MESSAGE pRpcMessage,
2050 DWORD* pdwStubPhase);
2051 HRESULT CALLBACK IRunningObjectTable_Revoke_Proxy(
2052 IRunningObjectTable* This,
2053 DWORD dwRegister);
2054 void __RPC_STUB IRunningObjectTable_Revoke_Stub(
2055 struct IRpcStubBuffer* This,
2056 struct IRpcChannelBuffer* pRpcChannelBuffer,
2057 PRPC_MESSAGE pRpcMessage,
2058 DWORD* pdwStubPhase);
2059 HRESULT CALLBACK IRunningObjectTable_IsRunning_Proxy(
2060 IRunningObjectTable* This,
2061 IMoniker* pmkObjectName);
2062 void __RPC_STUB IRunningObjectTable_IsRunning_Stub(
2063 struct IRpcStubBuffer* This,
2064 struct IRpcChannelBuffer* pRpcChannelBuffer,
2065 PRPC_MESSAGE pRpcMessage,
2066 DWORD* pdwStubPhase);
2067 HRESULT CALLBACK IRunningObjectTable_GetObject_Proxy(
2068 IRunningObjectTable* This,
2069 IMoniker* pmkObjectName,
2070 IUnknown** ppunkObject);
2071 void __RPC_STUB IRunningObjectTable_GetObject_Stub(
2072 struct IRpcStubBuffer* This,
2073 struct IRpcChannelBuffer* pRpcChannelBuffer,
2074 PRPC_MESSAGE pRpcMessage,
2075 DWORD* pdwStubPhase);
2076 HRESULT CALLBACK IRunningObjectTable_NoteChangeTime_Proxy(
2077 IRunningObjectTable* This,
2078 DWORD dwRegister,
2079 FILETIME* pfiletime);
2080 void __RPC_STUB IRunningObjectTable_NoteChangeTime_Stub(
2081 struct IRpcStubBuffer* This,
2082 struct IRpcChannelBuffer* pRpcChannelBuffer,
2083 PRPC_MESSAGE pRpcMessage,
2084 DWORD* pdwStubPhase);
2085 HRESULT CALLBACK IRunningObjectTable_GetTimeOfLastChange_Proxy(
2086 IRunningObjectTable* This,
2087 IMoniker* pmkObjectName,
2088 FILETIME* pfiletime);
2089 void __RPC_STUB IRunningObjectTable_GetTimeOfLastChange_Stub(
2090 struct IRpcStubBuffer* This,
2091 struct IRpcChannelBuffer* pRpcChannelBuffer,
2092 PRPC_MESSAGE pRpcMessage,
2093 DWORD* pdwStubPhase);
2094 HRESULT CALLBACK IRunningObjectTable_EnumRunning_Proxy(
2095 IRunningObjectTable* This,
2096 IEnumMoniker** ppenumMoniker);
2097 void __RPC_STUB IRunningObjectTable_EnumRunning_Stub(
2098 struct IRpcStubBuffer* This,
2099 struct IRpcChannelBuffer* pRpcChannelBuffer,
2100 PRPC_MESSAGE pRpcMessage,
2101 DWORD* pdwStubPhase);
2103 #endif /* __IRunningObjectTable_INTERFACE_DEFINED__ */
2105 #ifndef __IPersist_FWD_DEFINED__
2106 #define __IPersist_FWD_DEFINED__
2107 typedef struct IPersist IPersist;
2108 #endif
2110 typedef IPersist *LPPERSIST;
2112 /*****************************************************************************
2113 * IPersist interface
2115 #ifndef __IPersist_INTERFACE_DEFINED__
2116 #define __IPersist_INTERFACE_DEFINED__
2118 DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2119 #if defined(__cplusplus) && !defined(CINTERFACE)
2120 struct IPersist : public IUnknown
2122 virtual HRESULT STDMETHODCALLTYPE GetClassID(
2123 CLSID* pClassID) = 0;
2126 #else
2127 typedef struct IPersistVtbl IPersistVtbl;
2128 struct IPersist {
2129 const IPersistVtbl* lpVtbl;
2131 struct IPersistVtbl {
2132 ICOM_MSVTABLE_COMPAT_FIELDS
2134 /*** IUnknown methods ***/
2135 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2136 IPersist* This,
2137 REFIID riid,
2138 void** ppvObject);
2140 ULONG (STDMETHODCALLTYPE *AddRef)(
2141 IPersist* This);
2143 ULONG (STDMETHODCALLTYPE *Release)(
2144 IPersist* This);
2146 /*** IPersist methods ***/
2147 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2148 IPersist* This,
2149 CLSID* pClassID);
2153 /*** IUnknown methods ***/
2154 #define IPersist_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2155 #define IPersist_AddRef(p) (p)->lpVtbl->AddRef(p)
2156 #define IPersist_Release(p) (p)->lpVtbl->Release(p)
2157 /*** IPersist methods ***/
2158 #define IPersist_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2160 #endif
2162 #define IPersist_METHODS \
2163 ICOM_MSVTABLE_COMPAT_FIELDS \
2164 /*** IUnknown methods ***/ \
2165 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2166 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2167 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2168 /*** IPersist methods ***/ \
2169 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE;
2171 HRESULT CALLBACK IPersist_GetClassID_Proxy(
2172 IPersist* This,
2173 CLSID* pClassID);
2174 void __RPC_STUB IPersist_GetClassID_Stub(
2175 struct IRpcStubBuffer* This,
2176 struct IRpcChannelBuffer* pRpcChannelBuffer,
2177 PRPC_MESSAGE pRpcMessage,
2178 DWORD* pdwStubPhase);
2180 #endif /* __IPersist_INTERFACE_DEFINED__ */
2182 #ifndef __IPersistStream_FWD_DEFINED__
2183 #define __IPersistStream_FWD_DEFINED__
2184 typedef struct IPersistStream IPersistStream;
2185 #endif
2187 typedef IPersistStream *LPPERSISTSTREAM;
2189 /*****************************************************************************
2190 * IPersistStream interface
2192 #ifndef __IPersistStream_INTERFACE_DEFINED__
2193 #define __IPersistStream_INTERFACE_DEFINED__
2195 DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2196 #if defined(__cplusplus) && !defined(CINTERFACE)
2197 struct IPersistStream : public IPersist
2199 virtual HRESULT STDMETHODCALLTYPE IsDirty(
2200 ) = 0;
2202 virtual HRESULT STDMETHODCALLTYPE Load(
2203 IStream* pStm) = 0;
2205 virtual HRESULT STDMETHODCALLTYPE Save(
2206 IStream* pStm,
2207 BOOL fClearDirty) = 0;
2209 virtual HRESULT STDMETHODCALLTYPE GetSizeMax(
2210 ULARGE_INTEGER* pcbSize) = 0;
2213 #else
2214 typedef struct IPersistStreamVtbl IPersistStreamVtbl;
2215 struct IPersistStream {
2216 const IPersistStreamVtbl* lpVtbl;
2218 struct IPersistStreamVtbl {
2219 ICOM_MSVTABLE_COMPAT_FIELDS
2221 /*** IUnknown methods ***/
2222 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2223 IPersistStream* This,
2224 REFIID riid,
2225 void** ppvObject);
2227 ULONG (STDMETHODCALLTYPE *AddRef)(
2228 IPersistStream* This);
2230 ULONG (STDMETHODCALLTYPE *Release)(
2231 IPersistStream* This);
2233 /*** IPersist methods ***/
2234 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2235 IPersistStream* This,
2236 CLSID* pClassID);
2238 /*** IPersistStream methods ***/
2239 HRESULT (STDMETHODCALLTYPE *IsDirty)(
2240 IPersistStream* This);
2242 HRESULT (STDMETHODCALLTYPE *Load)(
2243 IPersistStream* This,
2244 IStream* pStm);
2246 HRESULT (STDMETHODCALLTYPE *Save)(
2247 IPersistStream* This,
2248 IStream* pStm,
2249 BOOL fClearDirty);
2251 HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
2252 IPersistStream* This,
2253 ULARGE_INTEGER* pcbSize);
2257 /*** IUnknown methods ***/
2258 #define IPersistStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2259 #define IPersistStream_AddRef(p) (p)->lpVtbl->AddRef(p)
2260 #define IPersistStream_Release(p) (p)->lpVtbl->Release(p)
2261 /*** IPersist methods ***/
2262 #define IPersistStream_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2263 /*** IPersistStream methods ***/
2264 #define IPersistStream_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2265 #define IPersistStream_Load(p,a) (p)->lpVtbl->Load(p,a)
2266 #define IPersistStream_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2267 #define IPersistStream_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2269 #endif
2271 #define IPersistStream_METHODS \
2272 ICOM_MSVTABLE_COMPAT_FIELDS \
2273 /*** IUnknown methods ***/ \
2274 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2275 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2276 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2277 /*** IPersist methods ***/ \
2278 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
2279 /*** IPersistStream methods ***/ \
2280 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
2281 STDMETHOD_(HRESULT,Load)(THIS_ IStream* pStm) PURE; \
2282 STDMETHOD_(HRESULT,Save)(THIS_ IStream* pStm, BOOL fClearDirty) PURE; \
2283 STDMETHOD_(HRESULT,GetSizeMax)(THIS_ ULARGE_INTEGER* pcbSize) PURE;
2285 HRESULT CALLBACK IPersistStream_IsDirty_Proxy(
2286 IPersistStream* This);
2287 void __RPC_STUB IPersistStream_IsDirty_Stub(
2288 struct IRpcStubBuffer* This,
2289 struct IRpcChannelBuffer* pRpcChannelBuffer,
2290 PRPC_MESSAGE pRpcMessage,
2291 DWORD* pdwStubPhase);
2292 HRESULT CALLBACK IPersistStream_Load_Proxy(
2293 IPersistStream* This,
2294 IStream* pStm);
2295 void __RPC_STUB IPersistStream_Load_Stub(
2296 struct IRpcStubBuffer* This,
2297 struct IRpcChannelBuffer* pRpcChannelBuffer,
2298 PRPC_MESSAGE pRpcMessage,
2299 DWORD* pdwStubPhase);
2300 HRESULT CALLBACK IPersistStream_Save_Proxy(
2301 IPersistStream* This,
2302 IStream* pStm,
2303 BOOL fClearDirty);
2304 void __RPC_STUB IPersistStream_Save_Stub(
2305 struct IRpcStubBuffer* This,
2306 struct IRpcChannelBuffer* pRpcChannelBuffer,
2307 PRPC_MESSAGE pRpcMessage,
2308 DWORD* pdwStubPhase);
2309 HRESULT CALLBACK IPersistStream_GetSizeMax_Proxy(
2310 IPersistStream* This,
2311 ULARGE_INTEGER* pcbSize);
2312 void __RPC_STUB IPersistStream_GetSizeMax_Stub(
2313 struct IRpcStubBuffer* This,
2314 struct IRpcChannelBuffer* pRpcChannelBuffer,
2315 PRPC_MESSAGE pRpcMessage,
2316 DWORD* pdwStubPhase);
2318 #endif /* __IPersistStream_INTERFACE_DEFINED__ */
2320 typedef IMoniker *LPMONIKER;
2322 typedef enum tagMKSYS {
2323 MKSYS_NONE = 0,
2324 MKSYS_GENERICCOMPOSITE = 1,
2325 MKSYS_FILEMONIKER = 2,
2326 MKSYS_ANTIMONIKER = 3,
2327 MKSYS_ITEMMONIKER = 4,
2328 MKSYS_POINTERMONIKER = 5,
2329 MKSYS_CLASSMONIKER = 7
2330 } MKSYS;
2332 typedef enum tagMKREDUCE {
2333 MKRREDUCE_ONE = 3 << 16,
2334 MKRREDUCE_TOUSER = 2 << 16,
2335 MKRREDUCE_THROUGHUSER = 1 << 16,
2336 MKRREDUCE_ALL = 0
2337 } MKRREDUCE;
2339 /*****************************************************************************
2340 * IMoniker interface
2342 #ifndef __IMoniker_INTERFACE_DEFINED__
2343 #define __IMoniker_INTERFACE_DEFINED__
2345 DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2346 #if defined(__cplusplus) && !defined(CINTERFACE)
2347 struct IMoniker : public IPersistStream
2349 virtual HRESULT STDMETHODCALLTYPE BindToObject(
2350 IBindCtx* pbc,
2351 IMoniker* pmkToLeft,
2352 REFIID riidResult,
2353 void** ppvResult) = 0;
2355 virtual HRESULT STDMETHODCALLTYPE BindToStorage(
2356 IBindCtx* pbc,
2357 IMoniker* pmkToLeft,
2358 REFIID riid,
2359 void** ppvObj) = 0;
2361 virtual HRESULT STDMETHODCALLTYPE Reduce(
2362 IBindCtx* pbc,
2363 DWORD dwReduceHowFar,
2364 IMoniker** ppmkToLeft,
2365 IMoniker** ppmkReduced) = 0;
2367 virtual HRESULT STDMETHODCALLTYPE ComposeWith(
2368 IMoniker* pmkRight,
2369 BOOL fOnlyIfNotGeneric,
2370 IMoniker** ppmkComposite) = 0;
2372 virtual HRESULT STDMETHODCALLTYPE Enum(
2373 BOOL fForward,
2374 IEnumMoniker** ppenumMoniker) = 0;
2376 virtual HRESULT STDMETHODCALLTYPE IsEqual(
2377 IMoniker* pmkOtherMoniker) = 0;
2379 virtual HRESULT STDMETHODCALLTYPE Hash(
2380 DWORD* pdwHash) = 0;
2382 virtual HRESULT STDMETHODCALLTYPE IsRunning(
2383 IBindCtx* pbc,
2384 IMoniker* pmkToLeft,
2385 IMoniker* pmkNewlyRunning) = 0;
2387 virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
2388 IBindCtx* pbc,
2389 IMoniker* pmkToLeft,
2390 FILETIME* pFileTime) = 0;
2392 virtual HRESULT STDMETHODCALLTYPE Inverse(
2393 IMoniker** ppmk) = 0;
2395 virtual HRESULT STDMETHODCALLTYPE CommonPrefixWith(
2396 IMoniker* pmkOther,
2397 IMoniker** ppmkPrefix) = 0;
2399 virtual HRESULT STDMETHODCALLTYPE RelativePathTo(
2400 IMoniker* pmkOther,
2401 IMoniker** ppmkRelPath) = 0;
2403 virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
2404 IBindCtx* pbc,
2405 IMoniker* pmkToLeft,
2406 LPOLESTR* ppszDisplayName) = 0;
2408 virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
2409 IBindCtx* pbc,
2410 IMoniker* pmkToLeft,
2411 LPOLESTR pszDisplayName,
2412 ULONG* pchEaten,
2413 IMoniker** ppmkOut) = 0;
2415 virtual HRESULT STDMETHODCALLTYPE IsSystemMoniker(
2416 DWORD* pdwMksys) = 0;
2419 #else
2420 typedef struct IMonikerVtbl IMonikerVtbl;
2421 struct IMoniker {
2422 const IMonikerVtbl* lpVtbl;
2424 struct IMonikerVtbl {
2425 ICOM_MSVTABLE_COMPAT_FIELDS
2427 /*** IUnknown methods ***/
2428 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2429 IMoniker* This,
2430 REFIID riid,
2431 void** ppvObject);
2433 ULONG (STDMETHODCALLTYPE *AddRef)(
2434 IMoniker* This);
2436 ULONG (STDMETHODCALLTYPE *Release)(
2437 IMoniker* This);
2439 /*** IPersist methods ***/
2440 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2441 IMoniker* This,
2442 CLSID* pClassID);
2444 /*** IPersistStream methods ***/
2445 HRESULT (STDMETHODCALLTYPE *IsDirty)(
2446 IMoniker* This);
2448 HRESULT (STDMETHODCALLTYPE *Load)(
2449 IMoniker* This,
2450 IStream* pStm);
2452 HRESULT (STDMETHODCALLTYPE *Save)(
2453 IMoniker* This,
2454 IStream* pStm,
2455 BOOL fClearDirty);
2457 HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
2458 IMoniker* This,
2459 ULARGE_INTEGER* pcbSize);
2461 /*** IMoniker methods ***/
2462 HRESULT (STDMETHODCALLTYPE *BindToObject)(
2463 IMoniker* This,
2464 IBindCtx* pbc,
2465 IMoniker* pmkToLeft,
2466 REFIID riidResult,
2467 void** ppvResult);
2469 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
2470 IMoniker* This,
2471 IBindCtx* pbc,
2472 IMoniker* pmkToLeft,
2473 REFIID riid,
2474 void** ppvObj);
2476 HRESULT (STDMETHODCALLTYPE *Reduce)(
2477 IMoniker* This,
2478 IBindCtx* pbc,
2479 DWORD dwReduceHowFar,
2480 IMoniker** ppmkToLeft,
2481 IMoniker** ppmkReduced);
2483 HRESULT (STDMETHODCALLTYPE *ComposeWith)(
2484 IMoniker* This,
2485 IMoniker* pmkRight,
2486 BOOL fOnlyIfNotGeneric,
2487 IMoniker** ppmkComposite);
2489 HRESULT (STDMETHODCALLTYPE *Enum)(
2490 IMoniker* This,
2491 BOOL fForward,
2492 IEnumMoniker** ppenumMoniker);
2494 HRESULT (STDMETHODCALLTYPE *IsEqual)(
2495 IMoniker* This,
2496 IMoniker* pmkOtherMoniker);
2498 HRESULT (STDMETHODCALLTYPE *Hash)(
2499 IMoniker* This,
2500 DWORD* pdwHash);
2502 HRESULT (STDMETHODCALLTYPE *IsRunning)(
2503 IMoniker* This,
2504 IBindCtx* pbc,
2505 IMoniker* pmkToLeft,
2506 IMoniker* pmkNewlyRunning);
2508 HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
2509 IMoniker* This,
2510 IBindCtx* pbc,
2511 IMoniker* pmkToLeft,
2512 FILETIME* pFileTime);
2514 HRESULT (STDMETHODCALLTYPE *Inverse)(
2515 IMoniker* This,
2516 IMoniker** ppmk);
2518 HRESULT (STDMETHODCALLTYPE *CommonPrefixWith)(
2519 IMoniker* This,
2520 IMoniker* pmkOther,
2521 IMoniker** ppmkPrefix);
2523 HRESULT (STDMETHODCALLTYPE *RelativePathTo)(
2524 IMoniker* This,
2525 IMoniker* pmkOther,
2526 IMoniker** ppmkRelPath);
2528 HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
2529 IMoniker* This,
2530 IBindCtx* pbc,
2531 IMoniker* pmkToLeft,
2532 LPOLESTR* ppszDisplayName);
2534 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
2535 IMoniker* This,
2536 IBindCtx* pbc,
2537 IMoniker* pmkToLeft,
2538 LPOLESTR pszDisplayName,
2539 ULONG* pchEaten,
2540 IMoniker** ppmkOut);
2542 HRESULT (STDMETHODCALLTYPE *IsSystemMoniker)(
2543 IMoniker* This,
2544 DWORD* pdwMksys);
2548 /*** IUnknown methods ***/
2549 #define IMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2550 #define IMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
2551 #define IMoniker_Release(p) (p)->lpVtbl->Release(p)
2552 /*** IPersist methods ***/
2553 #define IMoniker_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2554 /*** IPersistStream methods ***/
2555 #define IMoniker_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2556 #define IMoniker_Load(p,a) (p)->lpVtbl->Load(p,a)
2557 #define IMoniker_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2558 #define IMoniker_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2559 /*** IMoniker methods ***/
2560 #define IMoniker_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
2561 #define IMoniker_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
2562 #define IMoniker_Reduce(p,a,b,c,d) (p)->lpVtbl->Reduce(p,a,b,c,d)
2563 #define IMoniker_ComposeWith(p,a,b,c) (p)->lpVtbl->ComposeWith(p,a,b,c)
2564 #define IMoniker_Enum(p,a,b) (p)->lpVtbl->Enum(p,a,b)
2565 #define IMoniker_IsEqual(p,a) (p)->lpVtbl->IsEqual(p,a)
2566 #define IMoniker_Hash(p,a) (p)->lpVtbl->Hash(p,a)
2567 #define IMoniker_IsRunning(p,a,b,c) (p)->lpVtbl->IsRunning(p,a,b,c)
2568 #define IMoniker_GetTimeOfLastChange(p,a,b,c) (p)->lpVtbl->GetTimeOfLastChange(p,a,b,c)
2569 #define IMoniker_Inverse(p,a) (p)->lpVtbl->Inverse(p,a)
2570 #define IMoniker_CommonPrefixWith(p,a,b) (p)->lpVtbl->CommonPrefixWith(p,a,b)
2571 #define IMoniker_RelativePathTo(p,a,b) (p)->lpVtbl->RelativePathTo(p,a,b)
2572 #define IMoniker_GetDisplayName(p,a,b,c) (p)->lpVtbl->GetDisplayName(p,a,b,c)
2573 #define IMoniker_ParseDisplayName(p,a,b,c,d,e) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e)
2574 #define IMoniker_IsSystemMoniker(p,a) (p)->lpVtbl->IsSystemMoniker(p,a)
2576 #endif
2578 #define IMoniker_METHODS \
2579 ICOM_MSVTABLE_COMPAT_FIELDS \
2580 /*** IUnknown methods ***/ \
2581 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2582 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2583 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2584 /*** IPersist methods ***/ \
2585 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
2586 /*** IPersistStream methods ***/ \
2587 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
2588 STDMETHOD_(HRESULT,Load)(THIS_ IStream* pStm) PURE; \
2589 STDMETHOD_(HRESULT,Save)(THIS_ IStream* pStm, BOOL fClearDirty) PURE; \
2590 STDMETHOD_(HRESULT,GetSizeMax)(THIS_ ULARGE_INTEGER* pcbSize) PURE; \
2591 /*** IMoniker methods ***/ \
2592 STDMETHOD_(HRESULT,BindToObject)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riidResult, void** ppvResult) PURE; \
2593 STDMETHOD_(HRESULT,BindToStorage)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, void** ppvObj) PURE; \
2594 STDMETHOD_(HRESULT,Reduce)(THIS_ IBindCtx* pbc, DWORD dwReduceHowFar, IMoniker** ppmkToLeft, IMoniker** ppmkReduced) PURE; \
2595 STDMETHOD_(HRESULT,ComposeWith)(THIS_ IMoniker* pmkRight, BOOL fOnlyIfNotGeneric, IMoniker** ppmkComposite) PURE; \
2596 STDMETHOD_(HRESULT,Enum)(THIS_ BOOL fForward, IEnumMoniker** ppenumMoniker) PURE; \
2597 STDMETHOD_(HRESULT,IsEqual)(THIS_ IMoniker* pmkOtherMoniker) PURE; \
2598 STDMETHOD_(HRESULT,Hash)(THIS_ DWORD* pdwHash) PURE; \
2599 STDMETHOD_(HRESULT,IsRunning)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, IMoniker* pmkNewlyRunning) PURE; \
2600 STDMETHOD_(HRESULT,GetTimeOfLastChange)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, FILETIME* pFileTime) PURE; \
2601 STDMETHOD_(HRESULT,Inverse)(THIS_ IMoniker** ppmk) PURE; \
2602 STDMETHOD_(HRESULT,CommonPrefixWith)(THIS_ IMoniker* pmkOther, IMoniker** ppmkPrefix) PURE; \
2603 STDMETHOD_(HRESULT,RelativePathTo)(THIS_ IMoniker* pmkOther, IMoniker** ppmkRelPath) PURE; \
2604 STDMETHOD_(HRESULT,GetDisplayName)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR* ppszDisplayName) PURE; \
2605 STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR pszDisplayName, ULONG* pchEaten, IMoniker** ppmkOut) PURE; \
2606 STDMETHOD_(HRESULT,IsSystemMoniker)(THIS_ DWORD* pdwMksys) PURE;
2608 HRESULT CALLBACK IMoniker_RemoteBindToObject_Proxy(
2609 IMoniker* This,
2610 IBindCtx* pbc,
2611 IMoniker* pmkToLeft,
2612 REFIID riidResult,
2613 IUnknown** ppvResult);
2614 void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
2615 struct IRpcStubBuffer* This,
2616 struct IRpcChannelBuffer* pRpcChannelBuffer,
2617 PRPC_MESSAGE pRpcMessage,
2618 DWORD* pdwStubPhase);
2619 HRESULT CALLBACK IMoniker_BindToObject_Proxy(
2620 IMoniker* This,
2621 IBindCtx* pbc,
2622 IMoniker* pmkToLeft,
2623 REFIID riidResult,
2624 void** ppvResult);
2625 HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
2626 IMoniker* This,
2627 IBindCtx* pbc,
2628 IMoniker* pmkToLeft,
2629 REFIID riidResult,
2630 IUnknown** ppvResult);
2631 HRESULT CALLBACK IMoniker_RemoteBindToStorage_Proxy(
2632 IMoniker* This,
2633 IBindCtx* pbc,
2634 IMoniker* pmkToLeft,
2635 REFIID riid,
2636 IUnknown** ppvObj);
2637 void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
2638 struct IRpcStubBuffer* This,
2639 struct IRpcChannelBuffer* pRpcChannelBuffer,
2640 PRPC_MESSAGE pRpcMessage,
2641 DWORD* pdwStubPhase);
2642 HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
2643 IMoniker* This,
2644 IBindCtx* pbc,
2645 IMoniker* pmkToLeft,
2646 REFIID riid,
2647 void** ppvObj);
2648 HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
2649 IMoniker* This,
2650 IBindCtx* pbc,
2651 IMoniker* pmkToLeft,
2652 REFIID riid,
2653 IUnknown** ppvObj);
2654 HRESULT CALLBACK IMoniker_Reduce_Proxy(
2655 IMoniker* This,
2656 IBindCtx* pbc,
2657 DWORD dwReduceHowFar,
2658 IMoniker** ppmkToLeft,
2659 IMoniker** ppmkReduced);
2660 void __RPC_STUB IMoniker_Reduce_Stub(
2661 struct IRpcStubBuffer* This,
2662 struct IRpcChannelBuffer* pRpcChannelBuffer,
2663 PRPC_MESSAGE pRpcMessage,
2664 DWORD* pdwStubPhase);
2665 HRESULT CALLBACK IMoniker_ComposeWith_Proxy(
2666 IMoniker* This,
2667 IMoniker* pmkRight,
2668 BOOL fOnlyIfNotGeneric,
2669 IMoniker** ppmkComposite);
2670 void __RPC_STUB IMoniker_ComposeWith_Stub(
2671 struct IRpcStubBuffer* This,
2672 struct IRpcChannelBuffer* pRpcChannelBuffer,
2673 PRPC_MESSAGE pRpcMessage,
2674 DWORD* pdwStubPhase);
2675 HRESULT CALLBACK IMoniker_Enum_Proxy(
2676 IMoniker* This,
2677 BOOL fForward,
2678 IEnumMoniker** ppenumMoniker);
2679 void __RPC_STUB IMoniker_Enum_Stub(
2680 struct IRpcStubBuffer* This,
2681 struct IRpcChannelBuffer* pRpcChannelBuffer,
2682 PRPC_MESSAGE pRpcMessage,
2683 DWORD* pdwStubPhase);
2684 HRESULT CALLBACK IMoniker_IsEqual_Proxy(
2685 IMoniker* This,
2686 IMoniker* pmkOtherMoniker);
2687 void __RPC_STUB IMoniker_IsEqual_Stub(
2688 struct IRpcStubBuffer* This,
2689 struct IRpcChannelBuffer* pRpcChannelBuffer,
2690 PRPC_MESSAGE pRpcMessage,
2691 DWORD* pdwStubPhase);
2692 HRESULT CALLBACK IMoniker_Hash_Proxy(
2693 IMoniker* This,
2694 DWORD* pdwHash);
2695 void __RPC_STUB IMoniker_Hash_Stub(
2696 struct IRpcStubBuffer* This,
2697 struct IRpcChannelBuffer* pRpcChannelBuffer,
2698 PRPC_MESSAGE pRpcMessage,
2699 DWORD* pdwStubPhase);
2700 HRESULT CALLBACK IMoniker_IsRunning_Proxy(
2701 IMoniker* This,
2702 IBindCtx* pbc,
2703 IMoniker* pmkToLeft,
2704 IMoniker* pmkNewlyRunning);
2705 void __RPC_STUB IMoniker_IsRunning_Stub(
2706 struct IRpcStubBuffer* This,
2707 struct IRpcChannelBuffer* pRpcChannelBuffer,
2708 PRPC_MESSAGE pRpcMessage,
2709 DWORD* pdwStubPhase);
2710 HRESULT CALLBACK IMoniker_GetTimeOfLastChange_Proxy(
2711 IMoniker* This,
2712 IBindCtx* pbc,
2713 IMoniker* pmkToLeft,
2714 FILETIME* pFileTime);
2715 void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
2716 struct IRpcStubBuffer* This,
2717 struct IRpcChannelBuffer* pRpcChannelBuffer,
2718 PRPC_MESSAGE pRpcMessage,
2719 DWORD* pdwStubPhase);
2720 HRESULT CALLBACK IMoniker_Inverse_Proxy(
2721 IMoniker* This,
2722 IMoniker** ppmk);
2723 void __RPC_STUB IMoniker_Inverse_Stub(
2724 struct IRpcStubBuffer* This,
2725 struct IRpcChannelBuffer* pRpcChannelBuffer,
2726 PRPC_MESSAGE pRpcMessage,
2727 DWORD* pdwStubPhase);
2728 HRESULT CALLBACK IMoniker_CommonPrefixWith_Proxy(
2729 IMoniker* This,
2730 IMoniker* pmkOther,
2731 IMoniker** ppmkPrefix);
2732 void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
2733 struct IRpcStubBuffer* This,
2734 struct IRpcChannelBuffer* pRpcChannelBuffer,
2735 PRPC_MESSAGE pRpcMessage,
2736 DWORD* pdwStubPhase);
2737 HRESULT CALLBACK IMoniker_RelativePathTo_Proxy(
2738 IMoniker* This,
2739 IMoniker* pmkOther,
2740 IMoniker** ppmkRelPath);
2741 void __RPC_STUB IMoniker_RelativePathTo_Stub(
2742 struct IRpcStubBuffer* This,
2743 struct IRpcChannelBuffer* pRpcChannelBuffer,
2744 PRPC_MESSAGE pRpcMessage,
2745 DWORD* pdwStubPhase);
2746 HRESULT CALLBACK IMoniker_GetDisplayName_Proxy(
2747 IMoniker* This,
2748 IBindCtx* pbc,
2749 IMoniker* pmkToLeft,
2750 LPOLESTR* ppszDisplayName);
2751 void __RPC_STUB IMoniker_GetDisplayName_Stub(
2752 struct IRpcStubBuffer* This,
2753 struct IRpcChannelBuffer* pRpcChannelBuffer,
2754 PRPC_MESSAGE pRpcMessage,
2755 DWORD* pdwStubPhase);
2756 HRESULT CALLBACK IMoniker_ParseDisplayName_Proxy(
2757 IMoniker* This,
2758 IBindCtx* pbc,
2759 IMoniker* pmkToLeft,
2760 LPOLESTR pszDisplayName,
2761 ULONG* pchEaten,
2762 IMoniker** ppmkOut);
2763 void __RPC_STUB IMoniker_ParseDisplayName_Stub(
2764 struct IRpcStubBuffer* This,
2765 struct IRpcChannelBuffer* pRpcChannelBuffer,
2766 PRPC_MESSAGE pRpcMessage,
2767 DWORD* pdwStubPhase);
2768 HRESULT CALLBACK IMoniker_IsSystemMoniker_Proxy(
2769 IMoniker* This,
2770 DWORD* pdwMksys);
2771 void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
2772 struct IRpcStubBuffer* This,
2773 struct IRpcChannelBuffer* pRpcChannelBuffer,
2774 PRPC_MESSAGE pRpcMessage,
2775 DWORD* pdwStubPhase);
2777 #endif /* __IMoniker_INTERFACE_DEFINED__ */
2779 #ifndef __IROTData_FWD_DEFINED__
2780 #define __IROTData_FWD_DEFINED__
2781 typedef struct IROTData IROTData;
2782 #endif
2784 /*****************************************************************************
2785 * IROTData interface
2787 #ifndef __IROTData_INTERFACE_DEFINED__
2788 #define __IROTData_INTERFACE_DEFINED__
2790 DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
2791 #if defined(__cplusplus) && !defined(CINTERFACE)
2792 struct IROTData : public IUnknown
2794 virtual HRESULT STDMETHODCALLTYPE GetComparisonData(
2795 byte* pbData,
2796 ULONG cbMax,
2797 ULONG* pcbData) = 0;
2800 #else
2801 typedef struct IROTDataVtbl IROTDataVtbl;
2802 struct IROTData {
2803 const IROTDataVtbl* lpVtbl;
2805 struct IROTDataVtbl {
2806 ICOM_MSVTABLE_COMPAT_FIELDS
2808 /*** IUnknown methods ***/
2809 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2810 IROTData* This,
2811 REFIID riid,
2812 void** ppvObject);
2814 ULONG (STDMETHODCALLTYPE *AddRef)(
2815 IROTData* This);
2817 ULONG (STDMETHODCALLTYPE *Release)(
2818 IROTData* This);
2820 /*** IROTData methods ***/
2821 HRESULT (STDMETHODCALLTYPE *GetComparisonData)(
2822 IROTData* This,
2823 byte* pbData,
2824 ULONG cbMax,
2825 ULONG* pcbData);
2829 /*** IUnknown methods ***/
2830 #define IROTData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2831 #define IROTData_AddRef(p) (p)->lpVtbl->AddRef(p)
2832 #define IROTData_Release(p) (p)->lpVtbl->Release(p)
2833 /*** IROTData methods ***/
2834 #define IROTData_GetComparisonData(p,a,b,c) (p)->lpVtbl->GetComparisonData(p,a,b,c)
2836 #endif
2838 #define IROTData_METHODS \
2839 ICOM_MSVTABLE_COMPAT_FIELDS \
2840 /*** IUnknown methods ***/ \
2841 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2842 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2843 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2844 /*** IROTData methods ***/ \
2845 STDMETHOD_(HRESULT,GetComparisonData)(THIS_ byte* pbData, ULONG cbMax, ULONG* pcbData) PURE;
2847 HRESULT CALLBACK IROTData_GetComparisonData_Proxy(
2848 IROTData* This,
2849 byte* pbData,
2850 ULONG cbMax,
2851 ULONG* pcbData);
2852 void __RPC_STUB IROTData_GetComparisonData_Stub(
2853 struct IRpcStubBuffer* This,
2854 struct IRpcChannelBuffer* pRpcChannelBuffer,
2855 PRPC_MESSAGE pRpcMessage,
2856 DWORD* pdwStubPhase);
2858 #endif /* __IROTData_INTERFACE_DEFINED__ */
2860 typedef IEnumString *LPENUMSTRING;
2862 /*****************************************************************************
2863 * IEnumString interface
2865 #ifndef __IEnumString_INTERFACE_DEFINED__
2866 #define __IEnumString_INTERFACE_DEFINED__
2868 DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2869 #if defined(__cplusplus) && !defined(CINTERFACE)
2870 struct IEnumString : public IUnknown
2872 virtual HRESULT STDMETHODCALLTYPE Next(
2873 ULONG celt,
2874 LPOLESTR* rgelt,
2875 ULONG* pceltFetched) = 0;
2877 virtual HRESULT STDMETHODCALLTYPE Skip(
2878 ULONG celt) = 0;
2880 virtual HRESULT STDMETHODCALLTYPE Reset(
2881 ) = 0;
2883 virtual HRESULT STDMETHODCALLTYPE Clone(
2884 IEnumString** ppenum) = 0;
2887 #else
2888 typedef struct IEnumStringVtbl IEnumStringVtbl;
2889 struct IEnumString {
2890 const IEnumStringVtbl* lpVtbl;
2892 struct IEnumStringVtbl {
2893 ICOM_MSVTABLE_COMPAT_FIELDS
2895 /*** IUnknown methods ***/
2896 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2897 IEnumString* This,
2898 REFIID riid,
2899 void** ppvObject);
2901 ULONG (STDMETHODCALLTYPE *AddRef)(
2902 IEnumString* This);
2904 ULONG (STDMETHODCALLTYPE *Release)(
2905 IEnumString* This);
2907 /*** IEnumString methods ***/
2908 HRESULT (STDMETHODCALLTYPE *Next)(
2909 IEnumString* This,
2910 ULONG celt,
2911 LPOLESTR* rgelt,
2912 ULONG* pceltFetched);
2914 HRESULT (STDMETHODCALLTYPE *Skip)(
2915 IEnumString* This,
2916 ULONG celt);
2918 HRESULT (STDMETHODCALLTYPE *Reset)(
2919 IEnumString* This);
2921 HRESULT (STDMETHODCALLTYPE *Clone)(
2922 IEnumString* This,
2923 IEnumString** ppenum);
2927 /*** IUnknown methods ***/
2928 #define IEnumString_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2929 #define IEnumString_AddRef(p) (p)->lpVtbl->AddRef(p)
2930 #define IEnumString_Release(p) (p)->lpVtbl->Release(p)
2931 /*** IEnumString methods ***/
2932 #define IEnumString_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
2933 #define IEnumString_Skip(p,a) (p)->lpVtbl->Skip(p,a)
2934 #define IEnumString_Reset(p) (p)->lpVtbl->Reset(p)
2935 #define IEnumString_Clone(p,a) (p)->lpVtbl->Clone(p,a)
2937 #endif
2939 #define IEnumString_METHODS \
2940 ICOM_MSVTABLE_COMPAT_FIELDS \
2941 /*** IUnknown methods ***/ \
2942 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2943 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2944 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2945 /*** IEnumString methods ***/ \
2946 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, LPOLESTR* rgelt, ULONG* pceltFetched) PURE; \
2947 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
2948 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
2949 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumString** ppenum) PURE;
2951 HRESULT CALLBACK IEnumString_RemoteNext_Proxy(
2952 IEnumString* This,
2953 ULONG celt,
2954 LPOLESTR* rgelt,
2955 ULONG* pceltFetched);
2956 void __RPC_STUB IEnumString_RemoteNext_Stub(
2957 struct IRpcStubBuffer* This,
2958 struct IRpcChannelBuffer* pRpcChannelBuffer,
2959 PRPC_MESSAGE pRpcMessage,
2960 DWORD* pdwStubPhase);
2961 HRESULT CALLBACK IEnumString_Next_Proxy(
2962 IEnumString* This,
2963 ULONG celt,
2964 LPOLESTR* rgelt,
2965 ULONG* pceltFetched);
2966 HRESULT __RPC_STUB IEnumString_Next_Stub(
2967 IEnumString* This,
2968 ULONG celt,
2969 LPOLESTR* rgelt,
2970 ULONG* pceltFetched);
2971 HRESULT CALLBACK IEnumString_Skip_Proxy(
2972 IEnumString* This,
2973 ULONG celt);
2974 void __RPC_STUB IEnumString_Skip_Stub(
2975 struct IRpcStubBuffer* This,
2976 struct IRpcChannelBuffer* pRpcChannelBuffer,
2977 PRPC_MESSAGE pRpcMessage,
2978 DWORD* pdwStubPhase);
2979 HRESULT CALLBACK IEnumString_Reset_Proxy(
2980 IEnumString* This);
2981 void __RPC_STUB IEnumString_Reset_Stub(
2982 struct IRpcStubBuffer* This,
2983 struct IRpcChannelBuffer* pRpcChannelBuffer,
2984 PRPC_MESSAGE pRpcMessage,
2985 DWORD* pdwStubPhase);
2986 HRESULT CALLBACK IEnumString_Clone_Proxy(
2987 IEnumString* This,
2988 IEnumString** ppenum);
2989 void __RPC_STUB IEnumString_Clone_Stub(
2990 struct IRpcStubBuffer* This,
2991 struct IRpcChannelBuffer* pRpcChannelBuffer,
2992 PRPC_MESSAGE pRpcMessage,
2993 DWORD* pdwStubPhase);
2995 #endif /* __IEnumString_INTERFACE_DEFINED__ */
2997 #ifndef __IClassActivator_FWD_DEFINED__
2998 #define __IClassActivator_FWD_DEFINED__
2999 typedef struct IClassActivator IClassActivator;
3000 #endif
3002 /*****************************************************************************
3003 * IClassActivator interface
3005 #ifndef __IClassActivator_INTERFACE_DEFINED__
3006 #define __IClassActivator_INTERFACE_DEFINED__
3008 DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3009 #if defined(__cplusplus) && !defined(CINTERFACE)
3010 struct IClassActivator : public IUnknown
3012 virtual HRESULT STDMETHODCALLTYPE GetClassObject(
3013 REFCLSID rclsid,
3014 DWORD dwClassContext,
3015 LCID locale,
3016 REFIID riid,
3017 void** ppv) = 0;
3020 #else
3021 typedef struct IClassActivatorVtbl IClassActivatorVtbl;
3022 struct IClassActivator {
3023 const IClassActivatorVtbl* lpVtbl;
3025 struct IClassActivatorVtbl {
3026 ICOM_MSVTABLE_COMPAT_FIELDS
3028 /*** IUnknown methods ***/
3029 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3030 IClassActivator* This,
3031 REFIID riid,
3032 void** ppvObject);
3034 ULONG (STDMETHODCALLTYPE *AddRef)(
3035 IClassActivator* This);
3037 ULONG (STDMETHODCALLTYPE *Release)(
3038 IClassActivator* This);
3040 /*** IClassActivator methods ***/
3041 HRESULT (STDMETHODCALLTYPE *GetClassObject)(
3042 IClassActivator* This,
3043 REFCLSID rclsid,
3044 DWORD dwClassContext,
3045 LCID locale,
3046 REFIID riid,
3047 void** ppv);
3051 /*** IUnknown methods ***/
3052 #define IClassActivator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3053 #define IClassActivator_AddRef(p) (p)->lpVtbl->AddRef(p)
3054 #define IClassActivator_Release(p) (p)->lpVtbl->Release(p)
3055 /*** IClassActivator methods ***/
3056 #define IClassActivator_GetClassObject(p,a,b,c,d,e) (p)->lpVtbl->GetClassObject(p,a,b,c,d,e)
3058 #endif
3060 #define IClassActivator_METHODS \
3061 ICOM_MSVTABLE_COMPAT_FIELDS \
3062 /*** IUnknown methods ***/ \
3063 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3064 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3065 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3066 /*** IClassActivator methods ***/ \
3067 STDMETHOD_(HRESULT,GetClassObject)(THIS_ REFCLSID rclsid, DWORD dwClassContext, LCID locale, REFIID riid, void** ppv) PURE;
3069 HRESULT CALLBACK IClassActivator_GetClassObject_Proxy(
3070 IClassActivator* This,
3071 REFCLSID rclsid,
3072 DWORD dwClassContext,
3073 LCID locale,
3074 REFIID riid,
3075 void** ppv);
3076 void __RPC_STUB IClassActivator_GetClassObject_Stub(
3077 struct IRpcStubBuffer* This,
3078 struct IRpcChannelBuffer* pRpcChannelBuffer,
3079 PRPC_MESSAGE pRpcMessage,
3080 DWORD* pdwStubPhase);
3082 #endif /* __IClassActivator_INTERFACE_DEFINED__ */
3084 #ifndef __ISequentialStream_FWD_DEFINED__
3085 #define __ISequentialStream_FWD_DEFINED__
3086 typedef struct ISequentialStream ISequentialStream;
3087 #endif
3089 /*****************************************************************************
3090 * ISequentialStream interface
3092 #ifndef __ISequentialStream_INTERFACE_DEFINED__
3093 #define __ISequentialStream_INTERFACE_DEFINED__
3095 DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
3096 #if defined(__cplusplus) && !defined(CINTERFACE)
3097 struct ISequentialStream : public IUnknown
3099 virtual HRESULT STDMETHODCALLTYPE Read(
3100 void* pv,
3101 ULONG cb,
3102 ULONG* pcbRead) = 0;
3104 virtual HRESULT STDMETHODCALLTYPE Write(
3105 const void* pv,
3106 ULONG cb,
3107 ULONG* pcbWritten) = 0;
3110 #else
3111 typedef struct ISequentialStreamVtbl ISequentialStreamVtbl;
3112 struct ISequentialStream {
3113 const ISequentialStreamVtbl* lpVtbl;
3115 struct ISequentialStreamVtbl {
3116 ICOM_MSVTABLE_COMPAT_FIELDS
3118 /*** IUnknown methods ***/
3119 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3120 ISequentialStream* This,
3121 REFIID riid,
3122 void** ppvObject);
3124 ULONG (STDMETHODCALLTYPE *AddRef)(
3125 ISequentialStream* This);
3127 ULONG (STDMETHODCALLTYPE *Release)(
3128 ISequentialStream* This);
3130 /*** ISequentialStream methods ***/
3131 HRESULT (STDMETHODCALLTYPE *Read)(
3132 ISequentialStream* This,
3133 void* pv,
3134 ULONG cb,
3135 ULONG* pcbRead);
3137 HRESULT (STDMETHODCALLTYPE *Write)(
3138 ISequentialStream* This,
3139 const void* pv,
3140 ULONG cb,
3141 ULONG* pcbWritten);
3145 /*** IUnknown methods ***/
3146 #define ISequentialStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3147 #define ISequentialStream_AddRef(p) (p)->lpVtbl->AddRef(p)
3148 #define ISequentialStream_Release(p) (p)->lpVtbl->Release(p)
3149 /*** ISequentialStream methods ***/
3150 #define ISequentialStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3151 #define ISequentialStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3153 #endif
3155 #define ISequentialStream_METHODS \
3156 ICOM_MSVTABLE_COMPAT_FIELDS \
3157 /*** IUnknown methods ***/ \
3158 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3159 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3160 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3161 /*** ISequentialStream methods ***/ \
3162 STDMETHOD_(HRESULT,Read)(THIS_ void* pv, ULONG cb, ULONG* pcbRead) PURE; \
3163 STDMETHOD_(HRESULT,Write)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE;
3165 HRESULT CALLBACK ISequentialStream_RemoteRead_Proxy(
3166 ISequentialStream* This,
3167 byte* pv,
3168 ULONG cb,
3169 ULONG* pcbRead);
3170 void __RPC_STUB ISequentialStream_RemoteRead_Stub(
3171 struct IRpcStubBuffer* This,
3172 struct IRpcChannelBuffer* pRpcChannelBuffer,
3173 PRPC_MESSAGE pRpcMessage,
3174 DWORD* pdwStubPhase);
3175 HRESULT CALLBACK ISequentialStream_Read_Proxy(
3176 ISequentialStream* This,
3177 void* pv,
3178 ULONG cb,
3179 ULONG* pcbRead);
3180 HRESULT __RPC_STUB ISequentialStream_Read_Stub(
3181 ISequentialStream* This,
3182 byte* pv,
3183 ULONG cb,
3184 ULONG* pcbRead);
3185 HRESULT CALLBACK ISequentialStream_RemoteWrite_Proxy(
3186 ISequentialStream* This,
3187 const byte* pv,
3188 ULONG cb,
3189 ULONG* pcbWritten);
3190 void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
3191 struct IRpcStubBuffer* This,
3192 struct IRpcChannelBuffer* pRpcChannelBuffer,
3193 PRPC_MESSAGE pRpcMessage,
3194 DWORD* pdwStubPhase);
3195 HRESULT CALLBACK ISequentialStream_Write_Proxy(
3196 ISequentialStream* This,
3197 const void* pv,
3198 ULONG cb,
3199 ULONG* pcbWritten);
3200 HRESULT __RPC_STUB ISequentialStream_Write_Stub(
3201 ISequentialStream* This,
3202 const byte* pv,
3203 ULONG cb,
3204 ULONG* pcbWritten);
3206 #endif /* __ISequentialStream_INTERFACE_DEFINED__ */
3208 typedef IStream *LPSTREAM;
3210 typedef struct tagSTATSTG {
3211 LPOLESTR pwcsName;
3212 DWORD type;
3213 ULARGE_INTEGER cbSize;
3214 FILETIME mtime;
3215 FILETIME ctime;
3216 FILETIME atime;
3217 DWORD grfMode;
3218 DWORD grfLocksSupported;
3219 CLSID clsid;
3220 DWORD grfStateBits;
3221 DWORD reserved;
3222 } STATSTG;
3224 typedef enum tagSTGTY {
3225 STGTY_STORAGE = 1,
3226 STGTY_STREAM = 2,
3227 STGTY_LOCKBYTES = 3,
3228 STGTY_PROPERTY = 4
3229 } STGTY;
3231 typedef enum tagSTREAM_SEEK {
3232 STREAM_SEEK_SET = 0,
3233 STREAM_SEEK_CUR = 1,
3234 STREAM_SEEK_END = 2
3235 } STREAM_SEEK;
3237 #undef LOCK_MAND
3238 #undef LOCK_READ
3239 #undef LOCK_WRITE
3240 #undef LOCK_RW
3241 typedef enum tagLOCKTYPE {
3242 LOCK_WRITE = 1,
3243 LOCK_EXCLUSIVE = 2,
3244 LOCK_ONLYONCE = 4
3245 } LOCKTYPE;
3247 /*****************************************************************************
3248 * IStream interface
3250 #ifndef __IStream_INTERFACE_DEFINED__
3251 #define __IStream_INTERFACE_DEFINED__
3253 DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3254 #if defined(__cplusplus) && !defined(CINTERFACE)
3255 struct IStream : public ISequentialStream
3257 virtual HRESULT STDMETHODCALLTYPE Seek(
3258 LARGE_INTEGER dlibMove,
3259 DWORD dwOrigin,
3260 ULARGE_INTEGER* plibNewPosition) = 0;
3262 virtual HRESULT STDMETHODCALLTYPE SetSize(
3263 ULARGE_INTEGER libNewSize) = 0;
3265 virtual HRESULT STDMETHODCALLTYPE CopyTo(
3266 IStream* pstm,
3267 ULARGE_INTEGER cb,
3268 ULARGE_INTEGER* pcbRead,
3269 ULARGE_INTEGER* pcbWritten) = 0;
3271 virtual HRESULT STDMETHODCALLTYPE Commit(
3272 DWORD grfCommitFlags) = 0;
3274 virtual HRESULT STDMETHODCALLTYPE Revert(
3275 ) = 0;
3277 virtual HRESULT STDMETHODCALLTYPE LockRegion(
3278 ULARGE_INTEGER libOffset,
3279 ULARGE_INTEGER cb,
3280 DWORD dwLockType) = 0;
3282 virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
3283 ULARGE_INTEGER libOffset,
3284 ULARGE_INTEGER cb,
3285 DWORD dwLockType) = 0;
3287 virtual HRESULT STDMETHODCALLTYPE Stat(
3288 STATSTG* pstatstg,
3289 DWORD grfStatFlag) = 0;
3291 virtual HRESULT STDMETHODCALLTYPE Clone(
3292 IStream** ppstm) = 0;
3295 #else
3296 typedef struct IStreamVtbl IStreamVtbl;
3297 struct IStream {
3298 const IStreamVtbl* lpVtbl;
3300 struct IStreamVtbl {
3301 ICOM_MSVTABLE_COMPAT_FIELDS
3303 /*** IUnknown methods ***/
3304 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3305 IStream* This,
3306 REFIID riid,
3307 void** ppvObject);
3309 ULONG (STDMETHODCALLTYPE *AddRef)(
3310 IStream* This);
3312 ULONG (STDMETHODCALLTYPE *Release)(
3313 IStream* This);
3315 /*** ISequentialStream methods ***/
3316 HRESULT (STDMETHODCALLTYPE *Read)(
3317 IStream* This,
3318 void* pv,
3319 ULONG cb,
3320 ULONG* pcbRead);
3322 HRESULT (STDMETHODCALLTYPE *Write)(
3323 IStream* This,
3324 const void* pv,
3325 ULONG cb,
3326 ULONG* pcbWritten);
3328 /*** IStream methods ***/
3329 HRESULT (STDMETHODCALLTYPE *Seek)(
3330 IStream* This,
3331 LARGE_INTEGER dlibMove,
3332 DWORD dwOrigin,
3333 ULARGE_INTEGER* plibNewPosition);
3335 HRESULT (STDMETHODCALLTYPE *SetSize)(
3336 IStream* This,
3337 ULARGE_INTEGER libNewSize);
3339 HRESULT (STDMETHODCALLTYPE *CopyTo)(
3340 IStream* This,
3341 IStream* pstm,
3342 ULARGE_INTEGER cb,
3343 ULARGE_INTEGER* pcbRead,
3344 ULARGE_INTEGER* pcbWritten);
3346 HRESULT (STDMETHODCALLTYPE *Commit)(
3347 IStream* This,
3348 DWORD grfCommitFlags);
3350 HRESULT (STDMETHODCALLTYPE *Revert)(
3351 IStream* This);
3353 HRESULT (STDMETHODCALLTYPE *LockRegion)(
3354 IStream* This,
3355 ULARGE_INTEGER libOffset,
3356 ULARGE_INTEGER cb,
3357 DWORD dwLockType);
3359 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
3360 IStream* This,
3361 ULARGE_INTEGER libOffset,
3362 ULARGE_INTEGER cb,
3363 DWORD dwLockType);
3365 HRESULT (STDMETHODCALLTYPE *Stat)(
3366 IStream* This,
3367 STATSTG* pstatstg,
3368 DWORD grfStatFlag);
3370 HRESULT (STDMETHODCALLTYPE *Clone)(
3371 IStream* This,
3372 IStream** ppstm);
3376 /*** IUnknown methods ***/
3377 #define IStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3378 #define IStream_AddRef(p) (p)->lpVtbl->AddRef(p)
3379 #define IStream_Release(p) (p)->lpVtbl->Release(p)
3380 /*** ISequentialStream methods ***/
3381 #define IStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3382 #define IStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3383 /*** IStream methods ***/
3384 #define IStream_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
3385 #define IStream_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
3386 #define IStream_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3387 #define IStream_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3388 #define IStream_Revert(p) (p)->lpVtbl->Revert(p)
3389 #define IStream_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
3390 #define IStream_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
3391 #define IStream_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3392 #define IStream_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3394 #endif
3396 #define IStream_METHODS \
3397 ICOM_MSVTABLE_COMPAT_FIELDS \
3398 /*** IUnknown methods ***/ \
3399 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3400 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3401 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3402 /*** ISequentialStream methods ***/ \
3403 STDMETHOD_(HRESULT,Read)(THIS_ void* pv, ULONG cb, ULONG* pcbRead) PURE; \
3404 STDMETHOD_(HRESULT,Write)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
3405 /*** IStream methods ***/ \
3406 STDMETHOD_(HRESULT,Seek)(THIS_ LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition) PURE; \
3407 STDMETHOD_(HRESULT,SetSize)(THIS_ ULARGE_INTEGER libNewSize) PURE; \
3408 STDMETHOD_(HRESULT,CopyTo)(THIS_ IStream* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten) PURE; \
3409 STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
3410 STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
3411 STDMETHOD_(HRESULT,LockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
3412 STDMETHOD_(HRESULT,UnlockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
3413 STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE; \
3414 STDMETHOD_(HRESULT,Clone)(THIS_ IStream** ppstm) PURE;
3416 HRESULT CALLBACK IStream_RemoteSeek_Proxy(
3417 IStream* This,
3418 LARGE_INTEGER dlibMove,
3419 DWORD dwOrigin,
3420 ULARGE_INTEGER* plibNewPosition);
3421 void __RPC_STUB IStream_RemoteSeek_Stub(
3422 struct IRpcStubBuffer* This,
3423 struct IRpcChannelBuffer* pRpcChannelBuffer,
3424 PRPC_MESSAGE pRpcMessage,
3425 DWORD* pdwStubPhase);
3426 HRESULT CALLBACK IStream_Seek_Proxy(
3427 IStream* This,
3428 LARGE_INTEGER dlibMove,
3429 DWORD dwOrigin,
3430 ULARGE_INTEGER* plibNewPosition);
3431 HRESULT __RPC_STUB IStream_Seek_Stub(
3432 IStream* This,
3433 LARGE_INTEGER dlibMove,
3434 DWORD dwOrigin,
3435 ULARGE_INTEGER* plibNewPosition);
3436 HRESULT CALLBACK IStream_SetSize_Proxy(
3437 IStream* This,
3438 ULARGE_INTEGER libNewSize);
3439 void __RPC_STUB IStream_SetSize_Stub(
3440 struct IRpcStubBuffer* This,
3441 struct IRpcChannelBuffer* pRpcChannelBuffer,
3442 PRPC_MESSAGE pRpcMessage,
3443 DWORD* pdwStubPhase);
3444 HRESULT CALLBACK IStream_RemoteCopyTo_Proxy(
3445 IStream* This,
3446 IStream* pstm,
3447 ULARGE_INTEGER cb,
3448 ULARGE_INTEGER* pcbRead,
3449 ULARGE_INTEGER* pcbWritten);
3450 void __RPC_STUB IStream_RemoteCopyTo_Stub(
3451 struct IRpcStubBuffer* This,
3452 struct IRpcChannelBuffer* pRpcChannelBuffer,
3453 PRPC_MESSAGE pRpcMessage,
3454 DWORD* pdwStubPhase);
3455 HRESULT CALLBACK IStream_CopyTo_Proxy(
3456 IStream* This,
3457 IStream* pstm,
3458 ULARGE_INTEGER cb,
3459 ULARGE_INTEGER* pcbRead,
3460 ULARGE_INTEGER* pcbWritten);
3461 HRESULT __RPC_STUB IStream_CopyTo_Stub(
3462 IStream* This,
3463 IStream* pstm,
3464 ULARGE_INTEGER cb,
3465 ULARGE_INTEGER* pcbRead,
3466 ULARGE_INTEGER* pcbWritten);
3467 HRESULT CALLBACK IStream_Commit_Proxy(
3468 IStream* This,
3469 DWORD grfCommitFlags);
3470 void __RPC_STUB IStream_Commit_Stub(
3471 struct IRpcStubBuffer* This,
3472 struct IRpcChannelBuffer* pRpcChannelBuffer,
3473 PRPC_MESSAGE pRpcMessage,
3474 DWORD* pdwStubPhase);
3475 HRESULT CALLBACK IStream_Revert_Proxy(
3476 IStream* This);
3477 void __RPC_STUB IStream_Revert_Stub(
3478 struct IRpcStubBuffer* This,
3479 struct IRpcChannelBuffer* pRpcChannelBuffer,
3480 PRPC_MESSAGE pRpcMessage,
3481 DWORD* pdwStubPhase);
3482 HRESULT CALLBACK IStream_LockRegion_Proxy(
3483 IStream* This,
3484 ULARGE_INTEGER libOffset,
3485 ULARGE_INTEGER cb,
3486 DWORD dwLockType);
3487 void __RPC_STUB IStream_LockRegion_Stub(
3488 struct IRpcStubBuffer* This,
3489 struct IRpcChannelBuffer* pRpcChannelBuffer,
3490 PRPC_MESSAGE pRpcMessage,
3491 DWORD* pdwStubPhase);
3492 HRESULT CALLBACK IStream_UnlockRegion_Proxy(
3493 IStream* This,
3494 ULARGE_INTEGER libOffset,
3495 ULARGE_INTEGER cb,
3496 DWORD dwLockType);
3497 void __RPC_STUB IStream_UnlockRegion_Stub(
3498 struct IRpcStubBuffer* This,
3499 struct IRpcChannelBuffer* pRpcChannelBuffer,
3500 PRPC_MESSAGE pRpcMessage,
3501 DWORD* pdwStubPhase);
3502 HRESULT CALLBACK IStream_Stat_Proxy(
3503 IStream* This,
3504 STATSTG* pstatstg,
3505 DWORD grfStatFlag);
3506 void __RPC_STUB IStream_Stat_Stub(
3507 struct IRpcStubBuffer* This,
3508 struct IRpcChannelBuffer* pRpcChannelBuffer,
3509 PRPC_MESSAGE pRpcMessage,
3510 DWORD* pdwStubPhase);
3511 HRESULT CALLBACK IStream_Clone_Proxy(
3512 IStream* This,
3513 IStream** ppstm);
3514 void __RPC_STUB IStream_Clone_Stub(
3515 struct IRpcStubBuffer* This,
3516 struct IRpcChannelBuffer* pRpcChannelBuffer,
3517 PRPC_MESSAGE pRpcMessage,
3518 DWORD* pdwStubPhase);
3520 #endif /* __IStream_INTERFACE_DEFINED__ */
3522 typedef IStream16 *LPSTREAM16;
3524 typedef struct tagSTATSTG16 {
3525 LPOLESTR16 pwcsName;
3526 DWORD type;
3527 ULARGE_INTEGER cbSize;
3528 FILETIME mtime;
3529 FILETIME ctime;
3530 FILETIME atime;
3531 DWORD grfMode;
3532 DWORD grfLocksSupported;
3533 CLSID clsid;
3534 DWORD grfStateBits;
3535 DWORD reserved;
3536 } STATSTG16;
3538 /*****************************************************************************
3539 * IStream16 interface
3541 #ifndef __IStream16_INTERFACE_DEFINED__
3542 #define __IStream16_INTERFACE_DEFINED__
3544 #if defined(__cplusplus) && !defined(CINTERFACE)
3545 struct IStream16 : public ISequentialStream
3547 virtual HRESULT STDMETHODCALLTYPE Seek(
3548 LARGE_INTEGER dlibMove,
3549 DWORD dwOrigin,
3550 ULARGE_INTEGER* plibNewPosition) = 0;
3552 virtual HRESULT STDMETHODCALLTYPE SetSize(
3553 ULARGE_INTEGER libNewSize) = 0;
3555 virtual HRESULT STDMETHODCALLTYPE CopyTo(
3556 IStream16* pstm,
3557 ULARGE_INTEGER cb,
3558 ULARGE_INTEGER* pcbRead,
3559 ULARGE_INTEGER* pcbWritten) = 0;
3561 virtual HRESULT STDMETHODCALLTYPE Commit(
3562 DWORD grfCommitFlags) = 0;
3564 virtual HRESULT STDMETHODCALLTYPE Revert(
3565 ) = 0;
3567 virtual HRESULT STDMETHODCALLTYPE LockRegion(
3568 ULARGE_INTEGER libOffset,
3569 ULARGE_INTEGER cb,
3570 DWORD dwLockType) = 0;
3572 virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
3573 ULARGE_INTEGER libOffset,
3574 ULARGE_INTEGER cb,
3575 DWORD dwLockType) = 0;
3577 virtual HRESULT STDMETHODCALLTYPE Stat(
3578 STATSTG* pstatstg,
3579 DWORD grfStatFlag) = 0;
3581 virtual HRESULT STDMETHODCALLTYPE Clone(
3582 IStream16** ppstm) = 0;
3585 #else
3586 typedef struct IStream16Vtbl IStream16Vtbl;
3587 struct IStream16 {
3588 const IStream16Vtbl* lpVtbl;
3590 struct IStream16Vtbl {
3591 ICOM_MSVTABLE_COMPAT_FIELDS
3593 /*** IUnknown methods ***/
3594 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3595 IStream16* This,
3596 REFIID riid,
3597 void** ppvObject);
3599 ULONG (STDMETHODCALLTYPE *AddRef)(
3600 IStream16* This);
3602 ULONG (STDMETHODCALLTYPE *Release)(
3603 IStream16* This);
3605 /*** ISequentialStream methods ***/
3606 HRESULT (STDMETHODCALLTYPE *Read)(
3607 IStream16* This,
3608 void* pv,
3609 ULONG cb,
3610 ULONG* pcbRead);
3612 HRESULT (STDMETHODCALLTYPE *Write)(
3613 IStream16* This,
3614 const void* pv,
3615 ULONG cb,
3616 ULONG* pcbWritten);
3618 /*** IStream16 methods ***/
3619 HRESULT (STDMETHODCALLTYPE *Seek)(
3620 IStream16* This,
3621 LARGE_INTEGER dlibMove,
3622 DWORD dwOrigin,
3623 ULARGE_INTEGER* plibNewPosition);
3625 HRESULT (STDMETHODCALLTYPE *SetSize)(
3626 IStream16* This,
3627 ULARGE_INTEGER libNewSize);
3629 HRESULT (STDMETHODCALLTYPE *CopyTo)(
3630 IStream16* This,
3631 IStream16* pstm,
3632 ULARGE_INTEGER cb,
3633 ULARGE_INTEGER* pcbRead,
3634 ULARGE_INTEGER* pcbWritten);
3636 HRESULT (STDMETHODCALLTYPE *Commit)(
3637 IStream16* This,
3638 DWORD grfCommitFlags);
3640 HRESULT (STDMETHODCALLTYPE *Revert)(
3641 IStream16* This);
3643 HRESULT (STDMETHODCALLTYPE *LockRegion)(
3644 IStream16* This,
3645 ULARGE_INTEGER libOffset,
3646 ULARGE_INTEGER cb,
3647 DWORD dwLockType);
3649 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
3650 IStream16* This,
3651 ULARGE_INTEGER libOffset,
3652 ULARGE_INTEGER cb,
3653 DWORD dwLockType);
3655 HRESULT (STDMETHODCALLTYPE *Stat)(
3656 IStream16* This,
3657 STATSTG* pstatstg,
3658 DWORD grfStatFlag);
3660 HRESULT (STDMETHODCALLTYPE *Clone)(
3661 IStream16* This,
3662 IStream16** ppstm);
3666 /*** IUnknown methods ***/
3667 #define IStream16_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3668 #define IStream16_AddRef(p) (p)->lpVtbl->AddRef(p)
3669 #define IStream16_Release(p) (p)->lpVtbl->Release(p)
3670 /*** ISequentialStream methods ***/
3671 #define IStream16_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3672 #define IStream16_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3673 /*** IStream16 methods ***/
3674 #define IStream16_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
3675 #define IStream16_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
3676 #define IStream16_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3677 #define IStream16_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3678 #define IStream16_Revert(p) (p)->lpVtbl->Revert(p)
3679 #define IStream16_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
3680 #define IStream16_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
3681 #define IStream16_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3682 #define IStream16_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3684 #endif
3686 #define IStream16_METHODS \
3687 ICOM_MSVTABLE_COMPAT_FIELDS \
3688 /*** IUnknown methods ***/ \
3689 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3690 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3691 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3692 /*** ISequentialStream methods ***/ \
3693 STDMETHOD_(HRESULT,Read)(THIS_ void* pv, ULONG cb, ULONG* pcbRead) PURE; \
3694 STDMETHOD_(HRESULT,Write)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
3695 /*** IStream16 methods ***/ \
3696 STDMETHOD_(HRESULT,Seek)(THIS_ LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition) PURE; \
3697 STDMETHOD_(HRESULT,SetSize)(THIS_ ULARGE_INTEGER libNewSize) PURE; \
3698 STDMETHOD_(HRESULT,CopyTo)(THIS_ IStream16* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten) PURE; \
3699 STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
3700 STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
3701 STDMETHOD_(HRESULT,LockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
3702 STDMETHOD_(HRESULT,UnlockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
3703 STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE; \
3704 STDMETHOD_(HRESULT,Clone)(THIS_ IStream16** ppstm) PURE;
3706 HRESULT CALLBACK IStream16_RemoteSeek_Proxy(
3707 IStream16* This,
3708 LARGE_INTEGER dlibMove,
3709 DWORD dwOrigin,
3710 ULARGE_INTEGER* plibNewPosition);
3711 void __RPC_STUB IStream16_RemoteSeek_Stub(
3712 struct IRpcStubBuffer* This,
3713 struct IRpcChannelBuffer* pRpcChannelBuffer,
3714 PRPC_MESSAGE pRpcMessage,
3715 DWORD* pdwStubPhase);
3716 HRESULT CALLBACK IStream16_Seek_Proxy(
3717 IStream16* This,
3718 LARGE_INTEGER dlibMove,
3719 DWORD dwOrigin,
3720 ULARGE_INTEGER* plibNewPosition);
3721 HRESULT __RPC_STUB IStream16_Seek_Stub(
3722 IStream16* This,
3723 LARGE_INTEGER dlibMove,
3724 DWORD dwOrigin,
3725 ULARGE_INTEGER* plibNewPosition);
3726 HRESULT CALLBACK IStream16_SetSize_Proxy(
3727 IStream16* This,
3728 ULARGE_INTEGER libNewSize);
3729 void __RPC_STUB IStream16_SetSize_Stub(
3730 struct IRpcStubBuffer* This,
3731 struct IRpcChannelBuffer* pRpcChannelBuffer,
3732 PRPC_MESSAGE pRpcMessage,
3733 DWORD* pdwStubPhase);
3734 HRESULT CALLBACK IStream16_RemoteCopyTo_Proxy(
3735 IStream16* This,
3736 IStream16* pstm,
3737 ULARGE_INTEGER cb,
3738 ULARGE_INTEGER* pcbRead,
3739 ULARGE_INTEGER* pcbWritten);
3740 void __RPC_STUB IStream16_RemoteCopyTo_Stub(
3741 struct IRpcStubBuffer* This,
3742 struct IRpcChannelBuffer* pRpcChannelBuffer,
3743 PRPC_MESSAGE pRpcMessage,
3744 DWORD* pdwStubPhase);
3745 HRESULT CALLBACK IStream16_CopyTo_Proxy(
3746 IStream16* This,
3747 IStream16* pstm,
3748 ULARGE_INTEGER cb,
3749 ULARGE_INTEGER* pcbRead,
3750 ULARGE_INTEGER* pcbWritten);
3751 HRESULT __RPC_STUB IStream16_CopyTo_Stub(
3752 IStream16* This,
3753 IStream16* pstm,
3754 ULARGE_INTEGER cb,
3755 ULARGE_INTEGER* pcbRead,
3756 ULARGE_INTEGER* pcbWritten);
3757 HRESULT CALLBACK IStream16_Commit_Proxy(
3758 IStream16* This,
3759 DWORD grfCommitFlags);
3760 void __RPC_STUB IStream16_Commit_Stub(
3761 struct IRpcStubBuffer* This,
3762 struct IRpcChannelBuffer* pRpcChannelBuffer,
3763 PRPC_MESSAGE pRpcMessage,
3764 DWORD* pdwStubPhase);
3765 HRESULT CALLBACK IStream16_Revert_Proxy(
3766 IStream16* This);
3767 void __RPC_STUB IStream16_Revert_Stub(
3768 struct IRpcStubBuffer* This,
3769 struct IRpcChannelBuffer* pRpcChannelBuffer,
3770 PRPC_MESSAGE pRpcMessage,
3771 DWORD* pdwStubPhase);
3772 HRESULT CALLBACK IStream16_LockRegion_Proxy(
3773 IStream16* This,
3774 ULARGE_INTEGER libOffset,
3775 ULARGE_INTEGER cb,
3776 DWORD dwLockType);
3777 void __RPC_STUB IStream16_LockRegion_Stub(
3778 struct IRpcStubBuffer* This,
3779 struct IRpcChannelBuffer* pRpcChannelBuffer,
3780 PRPC_MESSAGE pRpcMessage,
3781 DWORD* pdwStubPhase);
3782 HRESULT CALLBACK IStream16_UnlockRegion_Proxy(
3783 IStream16* This,
3784 ULARGE_INTEGER libOffset,
3785 ULARGE_INTEGER cb,
3786 DWORD dwLockType);
3787 void __RPC_STUB IStream16_UnlockRegion_Stub(
3788 struct IRpcStubBuffer* This,
3789 struct IRpcChannelBuffer* pRpcChannelBuffer,
3790 PRPC_MESSAGE pRpcMessage,
3791 DWORD* pdwStubPhase);
3792 HRESULT CALLBACK IStream16_Stat_Proxy(
3793 IStream16* This,
3794 STATSTG* pstatstg,
3795 DWORD grfStatFlag);
3796 void __RPC_STUB IStream16_Stat_Stub(
3797 struct IRpcStubBuffer* This,
3798 struct IRpcChannelBuffer* pRpcChannelBuffer,
3799 PRPC_MESSAGE pRpcMessage,
3800 DWORD* pdwStubPhase);
3801 HRESULT CALLBACK IStream16_Clone_Proxy(
3802 IStream16* This,
3803 IStream16** ppstm);
3804 void __RPC_STUB IStream16_Clone_Stub(
3805 struct IRpcStubBuffer* This,
3806 struct IRpcChannelBuffer* pRpcChannelBuffer,
3807 PRPC_MESSAGE pRpcMessage,
3808 DWORD* pdwStubPhase);
3810 #endif /* __IStream16_INTERFACE_DEFINED__ */
3812 #ifndef __IEnumSTATSTG_FWD_DEFINED__
3813 #define __IEnumSTATSTG_FWD_DEFINED__
3814 typedef struct IEnumSTATSTG IEnumSTATSTG;
3815 #endif
3817 typedef IEnumSTATSTG *LPENUMSTATSTG;
3819 /*****************************************************************************
3820 * IEnumSTATSTG interface
3822 #ifndef __IEnumSTATSTG_INTERFACE_DEFINED__
3823 #define __IEnumSTATSTG_INTERFACE_DEFINED__
3825 DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3826 #if defined(__cplusplus) && !defined(CINTERFACE)
3827 struct IEnumSTATSTG : public IUnknown
3829 virtual HRESULT STDMETHODCALLTYPE Next(
3830 ULONG celt,
3831 STATSTG* rgelt,
3832 ULONG* pceltFetched) = 0;
3834 virtual HRESULT STDMETHODCALLTYPE Skip(
3835 ULONG celt) = 0;
3837 virtual HRESULT STDMETHODCALLTYPE Reset(
3838 ) = 0;
3840 virtual HRESULT STDMETHODCALLTYPE Clone(
3841 IEnumSTATSTG** ppenum) = 0;
3844 #else
3845 typedef struct IEnumSTATSTGVtbl IEnumSTATSTGVtbl;
3846 struct IEnumSTATSTG {
3847 const IEnumSTATSTGVtbl* lpVtbl;
3849 struct IEnumSTATSTGVtbl {
3850 ICOM_MSVTABLE_COMPAT_FIELDS
3852 /*** IUnknown methods ***/
3853 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3854 IEnumSTATSTG* This,
3855 REFIID riid,
3856 void** ppvObject);
3858 ULONG (STDMETHODCALLTYPE *AddRef)(
3859 IEnumSTATSTG* This);
3861 ULONG (STDMETHODCALLTYPE *Release)(
3862 IEnumSTATSTG* This);
3864 /*** IEnumSTATSTG methods ***/
3865 HRESULT (STDMETHODCALLTYPE *Next)(
3866 IEnumSTATSTG* This,
3867 ULONG celt,
3868 STATSTG* rgelt,
3869 ULONG* pceltFetched);
3871 HRESULT (STDMETHODCALLTYPE *Skip)(
3872 IEnumSTATSTG* This,
3873 ULONG celt);
3875 HRESULT (STDMETHODCALLTYPE *Reset)(
3876 IEnumSTATSTG* This);
3878 HRESULT (STDMETHODCALLTYPE *Clone)(
3879 IEnumSTATSTG* This,
3880 IEnumSTATSTG** ppenum);
3884 /*** IUnknown methods ***/
3885 #define IEnumSTATSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3886 #define IEnumSTATSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
3887 #define IEnumSTATSTG_Release(p) (p)->lpVtbl->Release(p)
3888 /*** IEnumSTATSTG methods ***/
3889 #define IEnumSTATSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
3890 #define IEnumSTATSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
3891 #define IEnumSTATSTG_Reset(p) (p)->lpVtbl->Reset(p)
3892 #define IEnumSTATSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3894 #endif
3896 #define IEnumSTATSTG_METHODS \
3897 ICOM_MSVTABLE_COMPAT_FIELDS \
3898 /*** IUnknown methods ***/ \
3899 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3900 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3901 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3902 /*** IEnumSTATSTG methods ***/ \
3903 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATSTG* rgelt, ULONG* pceltFetched) PURE; \
3904 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
3905 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
3906 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATSTG** ppenum) PURE;
3908 HRESULT CALLBACK IEnumSTATSTG_RemoteNext_Proxy(
3909 IEnumSTATSTG* This,
3910 ULONG celt,
3911 STATSTG* rgelt,
3912 ULONG* pceltFetched);
3913 void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
3914 struct IRpcStubBuffer* This,
3915 struct IRpcChannelBuffer* pRpcChannelBuffer,
3916 PRPC_MESSAGE pRpcMessage,
3917 DWORD* pdwStubPhase);
3918 HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
3919 IEnumSTATSTG* This,
3920 ULONG celt,
3921 STATSTG* rgelt,
3922 ULONG* pceltFetched);
3923 HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
3924 IEnumSTATSTG* This,
3925 ULONG celt,
3926 STATSTG* rgelt,
3927 ULONG* pceltFetched);
3928 HRESULT CALLBACK IEnumSTATSTG_Skip_Proxy(
3929 IEnumSTATSTG* This,
3930 ULONG celt);
3931 void __RPC_STUB IEnumSTATSTG_Skip_Stub(
3932 struct IRpcStubBuffer* This,
3933 struct IRpcChannelBuffer* pRpcChannelBuffer,
3934 PRPC_MESSAGE pRpcMessage,
3935 DWORD* pdwStubPhase);
3936 HRESULT CALLBACK IEnumSTATSTG_Reset_Proxy(
3937 IEnumSTATSTG* This);
3938 void __RPC_STUB IEnumSTATSTG_Reset_Stub(
3939 struct IRpcStubBuffer* This,
3940 struct IRpcChannelBuffer* pRpcChannelBuffer,
3941 PRPC_MESSAGE pRpcMessage,
3942 DWORD* pdwStubPhase);
3943 HRESULT CALLBACK IEnumSTATSTG_Clone_Proxy(
3944 IEnumSTATSTG* This,
3945 IEnumSTATSTG** ppenum);
3946 void __RPC_STUB IEnumSTATSTG_Clone_Stub(
3947 struct IRpcStubBuffer* This,
3948 struct IRpcChannelBuffer* pRpcChannelBuffer,
3949 PRPC_MESSAGE pRpcMessage,
3950 DWORD* pdwStubPhase);
3952 #endif /* __IEnumSTATSTG_INTERFACE_DEFINED__ */
3954 #ifndef __IStorage_FWD_DEFINED__
3955 #define __IStorage_FWD_DEFINED__
3956 typedef struct IStorage IStorage;
3957 #endif
3959 typedef IStorage *LPSTORAGE;
3961 typedef struct tagRemSNB {
3962 unsigned long ulCntStr;
3963 unsigned long ulCntChar;
3964 OLECHAR rgString[1];
3965 } RemSNB;
3967 typedef RemSNB *wireSNB;
3969 typedef OLECHAR **SNB;
3970 unsigned long __RPC_USER SNB_UserSize (unsigned long *, unsigned long, SNB *);
3971 unsigned char * __RPC_USER SNB_UserMarshal (unsigned long *, unsigned char *, SNB *);
3972 unsigned char * __RPC_USER SNB_UserUnmarshal(unsigned long *, unsigned char *, SNB *);
3973 void __RPC_USER SNB_UserFree (unsigned long *, SNB *);
3975 /*****************************************************************************
3976 * IStorage interface
3978 #ifndef __IStorage_INTERFACE_DEFINED__
3979 #define __IStorage_INTERFACE_DEFINED__
3981 DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3982 #if defined(__cplusplus) && !defined(CINTERFACE)
3983 struct IStorage : public IUnknown
3985 virtual HRESULT STDMETHODCALLTYPE CreateStream(
3986 LPCOLESTR pwcsName,
3987 DWORD grfMode,
3988 DWORD reserved1,
3989 DWORD reserved2,
3990 IStream** ppstm) = 0;
3992 virtual HRESULT STDMETHODCALLTYPE OpenStream(
3993 LPCOLESTR pwcsName,
3994 void* reserved1,
3995 DWORD grfMode,
3996 DWORD reserved2,
3997 IStream** ppstm) = 0;
3999 virtual HRESULT STDMETHODCALLTYPE CreateStorage(
4000 LPCOLESTR pwcsName,
4001 DWORD grfMode,
4002 DWORD dwStgFmt,
4003 DWORD reserved2,
4004 IStorage** ppstg) = 0;
4006 virtual HRESULT STDMETHODCALLTYPE OpenStorage(
4007 LPCOLESTR pwcsName,
4008 IStorage* pstgPriority,
4009 DWORD grfMode,
4010 SNB snbExclude,
4011 DWORD reserved,
4012 IStorage** ppstg) = 0;
4014 virtual HRESULT STDMETHODCALLTYPE CopyTo(
4015 DWORD ciidExclude,
4016 const IID* rgiidExclude,
4017 SNB snbExclude,
4018 IStorage* pstgDest) = 0;
4020 virtual HRESULT STDMETHODCALLTYPE MoveElementTo(
4021 LPCOLESTR pwcsName,
4022 IStorage* pstgDest,
4023 LPCOLESTR pwcsNewName,
4024 DWORD grfFlags) = 0;
4026 virtual HRESULT STDMETHODCALLTYPE Commit(
4027 DWORD grfCommitFlags) = 0;
4029 virtual HRESULT STDMETHODCALLTYPE Revert(
4030 ) = 0;
4032 virtual HRESULT STDMETHODCALLTYPE EnumElements(
4033 DWORD reserved1,
4034 void* reserved2,
4035 DWORD reserved3,
4036 IEnumSTATSTG** ppenum) = 0;
4038 virtual HRESULT STDMETHODCALLTYPE DestroyElement(
4039 LPCOLESTR pwcsName) = 0;
4041 virtual HRESULT STDMETHODCALLTYPE RenameElement(
4042 LPCOLESTR pwcsOldName,
4043 LPCOLESTR pwcsNewName) = 0;
4045 virtual HRESULT STDMETHODCALLTYPE SetElementTimes(
4046 LPCOLESTR pwcsName,
4047 const FILETIME* pctime,
4048 const FILETIME* patime,
4049 const FILETIME* pmtime) = 0;
4051 virtual HRESULT STDMETHODCALLTYPE SetClass(
4052 REFCLSID clsid) = 0;
4054 virtual HRESULT STDMETHODCALLTYPE SetStateBits(
4055 DWORD grfStateBits,
4056 DWORD grfMask) = 0;
4058 virtual HRESULT STDMETHODCALLTYPE Stat(
4059 STATSTG* pstatstg,
4060 DWORD grfStatFlag) = 0;
4063 #else
4064 typedef struct IStorageVtbl IStorageVtbl;
4065 struct IStorage {
4066 const IStorageVtbl* lpVtbl;
4068 struct IStorageVtbl {
4069 ICOM_MSVTABLE_COMPAT_FIELDS
4071 /*** IUnknown methods ***/
4072 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4073 IStorage* This,
4074 REFIID riid,
4075 void** ppvObject);
4077 ULONG (STDMETHODCALLTYPE *AddRef)(
4078 IStorage* This);
4080 ULONG (STDMETHODCALLTYPE *Release)(
4081 IStorage* This);
4083 /*** IStorage methods ***/
4084 HRESULT (STDMETHODCALLTYPE *CreateStream)(
4085 IStorage* This,
4086 LPCOLESTR pwcsName,
4087 DWORD grfMode,
4088 DWORD reserved1,
4089 DWORD reserved2,
4090 IStream** ppstm);
4092 HRESULT (STDMETHODCALLTYPE *OpenStream)(
4093 IStorage* This,
4094 LPCOLESTR pwcsName,
4095 void* reserved1,
4096 DWORD grfMode,
4097 DWORD reserved2,
4098 IStream** ppstm);
4100 HRESULT (STDMETHODCALLTYPE *CreateStorage)(
4101 IStorage* This,
4102 LPCOLESTR pwcsName,
4103 DWORD grfMode,
4104 DWORD dwStgFmt,
4105 DWORD reserved2,
4106 IStorage** ppstg);
4108 HRESULT (STDMETHODCALLTYPE *OpenStorage)(
4109 IStorage* This,
4110 LPCOLESTR pwcsName,
4111 IStorage* pstgPriority,
4112 DWORD grfMode,
4113 SNB snbExclude,
4114 DWORD reserved,
4115 IStorage** ppstg);
4117 HRESULT (STDMETHODCALLTYPE *CopyTo)(
4118 IStorage* This,
4119 DWORD ciidExclude,
4120 const IID* rgiidExclude,
4121 SNB snbExclude,
4122 IStorage* pstgDest);
4124 HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
4125 IStorage* This,
4126 LPCOLESTR pwcsName,
4127 IStorage* pstgDest,
4128 LPCOLESTR pwcsNewName,
4129 DWORD grfFlags);
4131 HRESULT (STDMETHODCALLTYPE *Commit)(
4132 IStorage* This,
4133 DWORD grfCommitFlags);
4135 HRESULT (STDMETHODCALLTYPE *Revert)(
4136 IStorage* This);
4138 HRESULT (STDMETHODCALLTYPE *EnumElements)(
4139 IStorage* This,
4140 DWORD reserved1,
4141 void* reserved2,
4142 DWORD reserved3,
4143 IEnumSTATSTG** ppenum);
4145 HRESULT (STDMETHODCALLTYPE *DestroyElement)(
4146 IStorage* This,
4147 LPCOLESTR pwcsName);
4149 HRESULT (STDMETHODCALLTYPE *RenameElement)(
4150 IStorage* This,
4151 LPCOLESTR pwcsOldName,
4152 LPCOLESTR pwcsNewName);
4154 HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
4155 IStorage* This,
4156 LPCOLESTR pwcsName,
4157 const FILETIME* pctime,
4158 const FILETIME* patime,
4159 const FILETIME* pmtime);
4161 HRESULT (STDMETHODCALLTYPE *SetClass)(
4162 IStorage* This,
4163 REFCLSID clsid);
4165 HRESULT (STDMETHODCALLTYPE *SetStateBits)(
4166 IStorage* This,
4167 DWORD grfStateBits,
4168 DWORD grfMask);
4170 HRESULT (STDMETHODCALLTYPE *Stat)(
4171 IStorage* This,
4172 STATSTG* pstatstg,
4173 DWORD grfStatFlag);
4177 /*** IUnknown methods ***/
4178 #define IStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4179 #define IStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
4180 #define IStorage_Release(p) (p)->lpVtbl->Release(p)
4181 /*** IStorage methods ***/
4182 #define IStorage_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
4183 #define IStorage_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
4184 #define IStorage_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
4185 #define IStorage_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
4186 #define IStorage_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
4187 #define IStorage_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
4188 #define IStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
4189 #define IStorage_Revert(p) (p)->lpVtbl->Revert(p)
4190 #define IStorage_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
4191 #define IStorage_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
4192 #define IStorage_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
4193 #define IStorage_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
4194 #define IStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
4195 #define IStorage_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
4196 #define IStorage_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
4198 #endif
4200 #define IStorage_METHODS \
4201 ICOM_MSVTABLE_COMPAT_FIELDS \
4202 /*** IUnknown methods ***/ \
4203 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4204 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4205 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4206 /*** IStorage methods ***/ \
4207 STDMETHOD_(HRESULT,CreateStream)(THIS_ LPCOLESTR pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream** ppstm) PURE; \
4208 STDMETHOD_(HRESULT,OpenStream)(THIS_ LPCOLESTR pwcsName, void* reserved1, DWORD grfMode, DWORD reserved2, IStream** ppstm) PURE; \
4209 STDMETHOD_(HRESULT,CreateStorage)(THIS_ LPCOLESTR pwcsName, DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage** ppstg) PURE; \
4210 STDMETHOD_(HRESULT,OpenStorage)(THIS_ LPCOLESTR pwcsName, IStorage* pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage** ppstg) PURE; \
4211 STDMETHOD_(HRESULT,CopyTo)(THIS_ DWORD ciidExclude, const IID* rgiidExclude, SNB snbExclude, IStorage* pstgDest) PURE; \
4212 STDMETHOD_(HRESULT,MoveElementTo)(THIS_ LPCOLESTR pwcsName, IStorage* pstgDest, LPCOLESTR pwcsNewName, DWORD grfFlags) PURE; \
4213 STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
4214 STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
4215 STDMETHOD_(HRESULT,EnumElements)(THIS_ DWORD reserved1, void* reserved2, DWORD reserved3, IEnumSTATSTG** ppenum) PURE; \
4216 STDMETHOD_(HRESULT,DestroyElement)(THIS_ LPCOLESTR pwcsName) PURE; \
4217 STDMETHOD_(HRESULT,RenameElement)(THIS_ LPCOLESTR pwcsOldName, LPCOLESTR pwcsNewName) PURE; \
4218 STDMETHOD_(HRESULT,SetElementTimes)(THIS_ LPCOLESTR pwcsName, const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime) PURE; \
4219 STDMETHOD_(HRESULT,SetClass)(THIS_ REFCLSID clsid) PURE; \
4220 STDMETHOD_(HRESULT,SetStateBits)(THIS_ DWORD grfStateBits, DWORD grfMask) PURE; \
4221 STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE;
4223 HRESULT CALLBACK IStorage_CreateStream_Proxy(
4224 IStorage* This,
4225 LPCOLESTR pwcsName,
4226 DWORD grfMode,
4227 DWORD reserved1,
4228 DWORD reserved2,
4229 IStream** ppstm);
4230 void __RPC_STUB IStorage_CreateStream_Stub(
4231 struct IRpcStubBuffer* This,
4232 struct IRpcChannelBuffer* pRpcChannelBuffer,
4233 PRPC_MESSAGE pRpcMessage,
4234 DWORD* pdwStubPhase);
4235 HRESULT CALLBACK IStorage_RemoteOpenStream_Proxy(
4236 IStorage* This,
4237 LPCOLESTR pwcsName,
4238 unsigned long cbReserved1,
4239 byte* reserved1,
4240 DWORD grfMode,
4241 DWORD reserved2,
4242 IStream** ppstm);
4243 void __RPC_STUB IStorage_RemoteOpenStream_Stub(
4244 struct IRpcStubBuffer* This,
4245 struct IRpcChannelBuffer* pRpcChannelBuffer,
4246 PRPC_MESSAGE pRpcMessage,
4247 DWORD* pdwStubPhase);
4248 HRESULT CALLBACK IStorage_OpenStream_Proxy(
4249 IStorage* This,
4250 LPCOLESTR pwcsName,
4251 void* reserved1,
4252 DWORD grfMode,
4253 DWORD reserved2,
4254 IStream** ppstm);
4255 HRESULT __RPC_STUB IStorage_OpenStream_Stub(
4256 IStorage* This,
4257 LPCOLESTR pwcsName,
4258 unsigned long cbReserved1,
4259 byte* reserved1,
4260 DWORD grfMode,
4261 DWORD reserved2,
4262 IStream** ppstm);
4263 HRESULT CALLBACK IStorage_CreateStorage_Proxy(
4264 IStorage* This,
4265 LPCOLESTR pwcsName,
4266 DWORD grfMode,
4267 DWORD dwStgFmt,
4268 DWORD reserved2,
4269 IStorage** ppstg);
4270 void __RPC_STUB IStorage_CreateStorage_Stub(
4271 struct IRpcStubBuffer* This,
4272 struct IRpcChannelBuffer* pRpcChannelBuffer,
4273 PRPC_MESSAGE pRpcMessage,
4274 DWORD* pdwStubPhase);
4275 HRESULT CALLBACK IStorage_OpenStorage_Proxy(
4276 IStorage* This,
4277 LPCOLESTR pwcsName,
4278 IStorage* pstgPriority,
4279 DWORD grfMode,
4280 SNB snbExclude,
4281 DWORD reserved,
4282 IStorage** ppstg);
4283 void __RPC_STUB IStorage_OpenStorage_Stub(
4284 struct IRpcStubBuffer* This,
4285 struct IRpcChannelBuffer* pRpcChannelBuffer,
4286 PRPC_MESSAGE pRpcMessage,
4287 DWORD* pdwStubPhase);
4288 HRESULT CALLBACK IStorage_CopyTo_Proxy(
4289 IStorage* This,
4290 DWORD ciidExclude,
4291 const IID* rgiidExclude,
4292 SNB snbExclude,
4293 IStorage* pstgDest);
4294 void __RPC_STUB IStorage_CopyTo_Stub(
4295 struct IRpcStubBuffer* This,
4296 struct IRpcChannelBuffer* pRpcChannelBuffer,
4297 PRPC_MESSAGE pRpcMessage,
4298 DWORD* pdwStubPhase);
4299 HRESULT CALLBACK IStorage_MoveElementTo_Proxy(
4300 IStorage* This,
4301 LPCOLESTR pwcsName,
4302 IStorage* pstgDest,
4303 LPCOLESTR pwcsNewName,
4304 DWORD grfFlags);
4305 void __RPC_STUB IStorage_MoveElementTo_Stub(
4306 struct IRpcStubBuffer* This,
4307 struct IRpcChannelBuffer* pRpcChannelBuffer,
4308 PRPC_MESSAGE pRpcMessage,
4309 DWORD* pdwStubPhase);
4310 HRESULT CALLBACK IStorage_Commit_Proxy(
4311 IStorage* This,
4312 DWORD grfCommitFlags);
4313 void __RPC_STUB IStorage_Commit_Stub(
4314 struct IRpcStubBuffer* This,
4315 struct IRpcChannelBuffer* pRpcChannelBuffer,
4316 PRPC_MESSAGE pRpcMessage,
4317 DWORD* pdwStubPhase);
4318 HRESULT CALLBACK IStorage_Revert_Proxy(
4319 IStorage* This);
4320 void __RPC_STUB IStorage_Revert_Stub(
4321 struct IRpcStubBuffer* This,
4322 struct IRpcChannelBuffer* pRpcChannelBuffer,
4323 PRPC_MESSAGE pRpcMessage,
4324 DWORD* pdwStubPhase);
4325 HRESULT CALLBACK IStorage_RemoteEnumElements_Proxy(
4326 IStorage* This,
4327 DWORD reserved1,
4328 unsigned long cbReserved2,
4329 byte* reserved2,
4330 DWORD reserved3,
4331 IEnumSTATSTG** ppenum);
4332 void __RPC_STUB IStorage_RemoteEnumElements_Stub(
4333 struct IRpcStubBuffer* This,
4334 struct IRpcChannelBuffer* pRpcChannelBuffer,
4335 PRPC_MESSAGE pRpcMessage,
4336 DWORD* pdwStubPhase);
4337 HRESULT CALLBACK IStorage_EnumElements_Proxy(
4338 IStorage* This,
4339 DWORD reserved1,
4340 void* reserved2,
4341 DWORD reserved3,
4342 IEnumSTATSTG** ppenum);
4343 HRESULT __RPC_STUB IStorage_EnumElements_Stub(
4344 IStorage* This,
4345 DWORD reserved1,
4346 unsigned long cbReserved2,
4347 byte* reserved2,
4348 DWORD reserved3,
4349 IEnumSTATSTG** ppenum);
4350 HRESULT CALLBACK IStorage_DestroyElement_Proxy(
4351 IStorage* This,
4352 LPCOLESTR pwcsName);
4353 void __RPC_STUB IStorage_DestroyElement_Stub(
4354 struct IRpcStubBuffer* This,
4355 struct IRpcChannelBuffer* pRpcChannelBuffer,
4356 PRPC_MESSAGE pRpcMessage,
4357 DWORD* pdwStubPhase);
4358 HRESULT CALLBACK IStorage_RenameElement_Proxy(
4359 IStorage* This,
4360 LPCOLESTR pwcsOldName,
4361 LPCOLESTR pwcsNewName);
4362 void __RPC_STUB IStorage_RenameElement_Stub(
4363 struct IRpcStubBuffer* This,
4364 struct IRpcChannelBuffer* pRpcChannelBuffer,
4365 PRPC_MESSAGE pRpcMessage,
4366 DWORD* pdwStubPhase);
4367 HRESULT CALLBACK IStorage_SetElementTimes_Proxy(
4368 IStorage* This,
4369 LPCOLESTR pwcsName,
4370 const FILETIME* pctime,
4371 const FILETIME* patime,
4372 const FILETIME* pmtime);
4373 void __RPC_STUB IStorage_SetElementTimes_Stub(
4374 struct IRpcStubBuffer* This,
4375 struct IRpcChannelBuffer* pRpcChannelBuffer,
4376 PRPC_MESSAGE pRpcMessage,
4377 DWORD* pdwStubPhase);
4378 HRESULT CALLBACK IStorage_SetClass_Proxy(
4379 IStorage* This,
4380 REFCLSID clsid);
4381 void __RPC_STUB IStorage_SetClass_Stub(
4382 struct IRpcStubBuffer* This,
4383 struct IRpcChannelBuffer* pRpcChannelBuffer,
4384 PRPC_MESSAGE pRpcMessage,
4385 DWORD* pdwStubPhase);
4386 HRESULT CALLBACK IStorage_SetStateBits_Proxy(
4387 IStorage* This,
4388 DWORD grfStateBits,
4389 DWORD grfMask);
4390 void __RPC_STUB IStorage_SetStateBits_Stub(
4391 struct IRpcStubBuffer* This,
4392 struct IRpcChannelBuffer* pRpcChannelBuffer,
4393 PRPC_MESSAGE pRpcMessage,
4394 DWORD* pdwStubPhase);
4395 HRESULT CALLBACK IStorage_Stat_Proxy(
4396 IStorage* This,
4397 STATSTG* pstatstg,
4398 DWORD grfStatFlag);
4399 void __RPC_STUB IStorage_Stat_Stub(
4400 struct IRpcStubBuffer* This,
4401 struct IRpcChannelBuffer* pRpcChannelBuffer,
4402 PRPC_MESSAGE pRpcMessage,
4403 DWORD* pdwStubPhase);
4405 #endif /* __IStorage_INTERFACE_DEFINED__ */
4407 #ifndef __IStorage16_FWD_DEFINED__
4408 #define __IStorage16_FWD_DEFINED__
4409 typedef struct IStorage16 IStorage16;
4410 #endif
4412 typedef IStorage16 *LPSTORAGE16;
4414 typedef struct tagRemSNB16 {
4415 unsigned long ulCntStr;
4416 unsigned long ulCntChar;
4417 OLECHAR16 rgString[1];
4418 } RemSNB16;
4420 typedef RemSNB16 *wireSNB16;
4422 typedef OLECHAR16 **SNB16;
4423 unsigned long __RPC_USER SNB16_UserSize (unsigned long *, unsigned long, SNB16 *);
4424 unsigned char * __RPC_USER SNB16_UserMarshal (unsigned long *, unsigned char *, SNB16 *);
4425 unsigned char * __RPC_USER SNB16_UserUnmarshal(unsigned long *, unsigned char *, SNB16 *);
4426 void __RPC_USER SNB16_UserFree (unsigned long *, SNB16 *);
4428 /*****************************************************************************
4429 * IStorage16 interface
4431 #ifndef __IStorage16_INTERFACE_DEFINED__
4432 #define __IStorage16_INTERFACE_DEFINED__
4434 #if defined(__cplusplus) && !defined(CINTERFACE)
4435 struct IStorage16 : public IUnknown
4437 virtual HRESULT STDMETHODCALLTYPE CreateStream(
4438 LPCOLESTR16 pwcsName,
4439 DWORD grfMode,
4440 DWORD reserved1,
4441 DWORD reserved2,
4442 IStream16** ppstm) = 0;
4444 virtual HRESULT STDMETHODCALLTYPE OpenStream(
4445 LPCOLESTR16 pwcsName,
4446 void* reserved1,
4447 DWORD grfMode,
4448 DWORD reserved2,
4449 IStream16** ppstm) = 0;
4451 virtual HRESULT STDMETHODCALLTYPE CreateStorage(
4452 LPCOLESTR16 pwcsName,
4453 DWORD grfMode,
4454 DWORD dwStgFmt,
4455 DWORD reserved2,
4456 IStorage16** ppstg) = 0;
4458 virtual HRESULT STDMETHODCALLTYPE OpenStorage(
4459 LPCOLESTR16 pwcsName,
4460 IStorage16* pstgPriority,
4461 DWORD grfMode,
4462 SNB16 snbExclude,
4463 DWORD reserved,
4464 IStorage16** ppstg) = 0;
4466 virtual HRESULT STDMETHODCALLTYPE CopyTo(
4467 DWORD ciidExclude,
4468 const IID* rgiidExclude,
4469 SNB16 snbExclude,
4470 IStorage16* pstgDest) = 0;
4472 virtual HRESULT STDMETHODCALLTYPE MoveElementTo(
4473 LPCOLESTR16 pwcsName,
4474 IStorage16* pstgDest,
4475 LPCOLESTR16 pwcsNewName,
4476 DWORD grfFlags) = 0;
4478 virtual HRESULT STDMETHODCALLTYPE Commit(
4479 DWORD grfCommitFlags) = 0;
4481 virtual HRESULT STDMETHODCALLTYPE Revert(
4482 ) = 0;
4484 virtual HRESULT STDMETHODCALLTYPE EnumElements(
4485 DWORD reserved1,
4486 void* reserved2,
4487 DWORD reserved3,
4488 IEnumSTATSTG** ppenum) = 0;
4490 virtual HRESULT STDMETHODCALLTYPE DestroyElement(
4491 LPCOLESTR16 pwcsName) = 0;
4493 virtual HRESULT STDMETHODCALLTYPE RenameElement(
4494 LPCOLESTR16 pwcsOldName,
4495 LPCOLESTR16 pwcsNewName) = 0;
4497 virtual HRESULT STDMETHODCALLTYPE SetElementTimes(
4498 LPCOLESTR16 pwcsName,
4499 const FILETIME* pctime,
4500 const FILETIME* patime,
4501 const FILETIME* pmtime) = 0;
4503 virtual HRESULT STDMETHODCALLTYPE SetClass(
4504 REFCLSID clsid) = 0;
4506 virtual HRESULT STDMETHODCALLTYPE SetStateBits(
4507 DWORD grfStateBits,
4508 DWORD grfMask) = 0;
4510 virtual HRESULT STDMETHODCALLTYPE Stat(
4511 STATSTG* pstatstg,
4512 DWORD grfStatFlag) = 0;
4515 #else
4516 typedef struct IStorage16Vtbl IStorage16Vtbl;
4517 struct IStorage16 {
4518 const IStorage16Vtbl* lpVtbl;
4520 struct IStorage16Vtbl {
4521 ICOM_MSVTABLE_COMPAT_FIELDS
4523 /*** IUnknown methods ***/
4524 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4525 IStorage16* This,
4526 REFIID riid,
4527 void** ppvObject);
4529 ULONG (STDMETHODCALLTYPE *AddRef)(
4530 IStorage16* This);
4532 ULONG (STDMETHODCALLTYPE *Release)(
4533 IStorage16* This);
4535 /*** IStorage16 methods ***/
4536 HRESULT (STDMETHODCALLTYPE *CreateStream)(
4537 IStorage16* This,
4538 LPCOLESTR16 pwcsName,
4539 DWORD grfMode,
4540 DWORD reserved1,
4541 DWORD reserved2,
4542 IStream16** ppstm);
4544 HRESULT (STDMETHODCALLTYPE *OpenStream)(
4545 IStorage16* This,
4546 LPCOLESTR16 pwcsName,
4547 void* reserved1,
4548 DWORD grfMode,
4549 DWORD reserved2,
4550 IStream16** ppstm);
4552 HRESULT (STDMETHODCALLTYPE *CreateStorage)(
4553 IStorage16* This,
4554 LPCOLESTR16 pwcsName,
4555 DWORD grfMode,
4556 DWORD dwStgFmt,
4557 DWORD reserved2,
4558 IStorage16** ppstg);
4560 HRESULT (STDMETHODCALLTYPE *OpenStorage)(
4561 IStorage16* This,
4562 LPCOLESTR16 pwcsName,
4563 IStorage16* pstgPriority,
4564 DWORD grfMode,
4565 SNB16 snbExclude,
4566 DWORD reserved,
4567 IStorage16** ppstg);
4569 HRESULT (STDMETHODCALLTYPE *CopyTo)(
4570 IStorage16* This,
4571 DWORD ciidExclude,
4572 const IID* rgiidExclude,
4573 SNB16 snbExclude,
4574 IStorage16* pstgDest);
4576 HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
4577 IStorage16* This,
4578 LPCOLESTR16 pwcsName,
4579 IStorage16* pstgDest,
4580 LPCOLESTR16 pwcsNewName,
4581 DWORD grfFlags);
4583 HRESULT (STDMETHODCALLTYPE *Commit)(
4584 IStorage16* This,
4585 DWORD grfCommitFlags);
4587 HRESULT (STDMETHODCALLTYPE *Revert)(
4588 IStorage16* This);
4590 HRESULT (STDMETHODCALLTYPE *EnumElements)(
4591 IStorage16* This,
4592 DWORD reserved1,
4593 void* reserved2,
4594 DWORD reserved3,
4595 IEnumSTATSTG** ppenum);
4597 HRESULT (STDMETHODCALLTYPE *DestroyElement)(
4598 IStorage16* This,
4599 LPCOLESTR16 pwcsName);
4601 HRESULT (STDMETHODCALLTYPE *RenameElement)(
4602 IStorage16* This,
4603 LPCOLESTR16 pwcsOldName,
4604 LPCOLESTR16 pwcsNewName);
4606 HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
4607 IStorage16* This,
4608 LPCOLESTR16 pwcsName,
4609 const FILETIME* pctime,
4610 const FILETIME* patime,
4611 const FILETIME* pmtime);
4613 HRESULT (STDMETHODCALLTYPE *SetClass)(
4614 IStorage16* This,
4615 REFCLSID clsid);
4617 HRESULT (STDMETHODCALLTYPE *SetStateBits)(
4618 IStorage16* This,
4619 DWORD grfStateBits,
4620 DWORD grfMask);
4622 HRESULT (STDMETHODCALLTYPE *Stat)(
4623 IStorage16* This,
4624 STATSTG* pstatstg,
4625 DWORD grfStatFlag);
4629 /*** IUnknown methods ***/
4630 #define IStorage16_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4631 #define IStorage16_AddRef(p) (p)->lpVtbl->AddRef(p)
4632 #define IStorage16_Release(p) (p)->lpVtbl->Release(p)
4633 /*** IStorage16 methods ***/
4634 #define IStorage16_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
4635 #define IStorage16_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
4636 #define IStorage16_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
4637 #define IStorage16_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
4638 #define IStorage16_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
4639 #define IStorage16_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
4640 #define IStorage16_Commit(p,a) (p)->lpVtbl->Commit(p,a)
4641 #define IStorage16_Revert(p) (p)->lpVtbl->Revert(p)
4642 #define IStorage16_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
4643 #define IStorage16_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
4644 #define IStorage16_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
4645 #define IStorage16_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
4646 #define IStorage16_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
4647 #define IStorage16_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
4648 #define IStorage16_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
4650 #endif
4652 #define IStorage16_METHODS \
4653 ICOM_MSVTABLE_COMPAT_FIELDS \
4654 /*** IUnknown methods ***/ \
4655 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4656 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4657 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4658 /*** IStorage16 methods ***/ \
4659 STDMETHOD_(HRESULT,CreateStream)(THIS_ LPCOLESTR16 pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream16** ppstm) PURE; \
4660 STDMETHOD_(HRESULT,OpenStream)(THIS_ LPCOLESTR16 pwcsName, void* reserved1, DWORD grfMode, DWORD reserved2, IStream16** ppstm) PURE; \
4661 STDMETHOD_(HRESULT,CreateStorage)(THIS_ LPCOLESTR16 pwcsName, DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage16** ppstg) PURE; \
4662 STDMETHOD_(HRESULT,OpenStorage)(THIS_ LPCOLESTR16 pwcsName, IStorage16* pstgPriority, DWORD grfMode, SNB16 snbExclude, DWORD reserved, IStorage16** ppstg) PURE; \
4663 STDMETHOD_(HRESULT,CopyTo)(THIS_ DWORD ciidExclude, const IID* rgiidExclude, SNB16 snbExclude, IStorage16* pstgDest) PURE; \
4664 STDMETHOD_(HRESULT,MoveElementTo)(THIS_ LPCOLESTR16 pwcsName, IStorage16* pstgDest, LPCOLESTR16 pwcsNewName, DWORD grfFlags) PURE; \
4665 STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
4666 STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
4667 STDMETHOD_(HRESULT,EnumElements)(THIS_ DWORD reserved1, void* reserved2, DWORD reserved3, IEnumSTATSTG** ppenum) PURE; \
4668 STDMETHOD_(HRESULT,DestroyElement)(THIS_ LPCOLESTR16 pwcsName) PURE; \
4669 STDMETHOD_(HRESULT,RenameElement)(THIS_ LPCOLESTR16 pwcsOldName, LPCOLESTR16 pwcsNewName) PURE; \
4670 STDMETHOD_(HRESULT,SetElementTimes)(THIS_ LPCOLESTR16 pwcsName, const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime) PURE; \
4671 STDMETHOD_(HRESULT,SetClass)(THIS_ REFCLSID clsid) PURE; \
4672 STDMETHOD_(HRESULT,SetStateBits)(THIS_ DWORD grfStateBits, DWORD grfMask) PURE; \
4673 STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE;
4675 HRESULT CALLBACK IStorage16_CreateStream_Proxy(
4676 IStorage16* This,
4677 LPCOLESTR16 pwcsName,
4678 DWORD grfMode,
4679 DWORD reserved1,
4680 DWORD reserved2,
4681 IStream16** ppstm);
4682 void __RPC_STUB IStorage16_CreateStream_Stub(
4683 struct IRpcStubBuffer* This,
4684 struct IRpcChannelBuffer* pRpcChannelBuffer,
4685 PRPC_MESSAGE pRpcMessage,
4686 DWORD* pdwStubPhase);
4687 HRESULT CALLBACK IStorage16_RemoteOpenStream_Proxy(
4688 IStorage16* This,
4689 LPCOLESTR16 pwcsName,
4690 unsigned long cbReserved1,
4691 byte* reserved1,
4692 DWORD grfMode,
4693 DWORD reserved2,
4694 IStream16** ppstm);
4695 void __RPC_STUB IStorage16_RemoteOpenStream_Stub(
4696 struct IRpcStubBuffer* This,
4697 struct IRpcChannelBuffer* pRpcChannelBuffer,
4698 PRPC_MESSAGE pRpcMessage,
4699 DWORD* pdwStubPhase);
4700 HRESULT CALLBACK IStorage16_OpenStream_Proxy(
4701 IStorage16* This,
4702 LPCOLESTR16 pwcsName,
4703 void* reserved1,
4704 DWORD grfMode,
4705 DWORD reserved2,
4706 IStream16** ppstm);
4707 HRESULT __RPC_STUB IStorage16_OpenStream_Stub(
4708 IStorage16* This,
4709 LPCOLESTR16 pwcsName,
4710 unsigned long cbReserved1,
4711 byte* reserved1,
4712 DWORD grfMode,
4713 DWORD reserved2,
4714 IStream16** ppstm);
4715 HRESULT CALLBACK IStorage16_CreateStorage_Proxy(
4716 IStorage16* This,
4717 LPCOLESTR16 pwcsName,
4718 DWORD grfMode,
4719 DWORD dwStgFmt,
4720 DWORD reserved2,
4721 IStorage16** ppstg);
4722 void __RPC_STUB IStorage16_CreateStorage_Stub(
4723 struct IRpcStubBuffer* This,
4724 struct IRpcChannelBuffer* pRpcChannelBuffer,
4725 PRPC_MESSAGE pRpcMessage,
4726 DWORD* pdwStubPhase);
4727 HRESULT CALLBACK IStorage16_OpenStorage_Proxy(
4728 IStorage16* This,
4729 LPCOLESTR16 pwcsName,
4730 IStorage16* pstgPriority,
4731 DWORD grfMode,
4732 SNB16 snbExclude,
4733 DWORD reserved,
4734 IStorage16** ppstg);
4735 void __RPC_STUB IStorage16_OpenStorage_Stub(
4736 struct IRpcStubBuffer* This,
4737 struct IRpcChannelBuffer* pRpcChannelBuffer,
4738 PRPC_MESSAGE pRpcMessage,
4739 DWORD* pdwStubPhase);
4740 HRESULT CALLBACK IStorage16_CopyTo_Proxy(
4741 IStorage16* This,
4742 DWORD ciidExclude,
4743 const IID* rgiidExclude,
4744 SNB16 snbExclude,
4745 IStorage16* pstgDest);
4746 void __RPC_STUB IStorage16_CopyTo_Stub(
4747 struct IRpcStubBuffer* This,
4748 struct IRpcChannelBuffer* pRpcChannelBuffer,
4749 PRPC_MESSAGE pRpcMessage,
4750 DWORD* pdwStubPhase);
4751 HRESULT CALLBACK IStorage16_MoveElementTo_Proxy(
4752 IStorage16* This,
4753 LPCOLESTR16 pwcsName,
4754 IStorage16* pstgDest,
4755 LPCOLESTR16 pwcsNewName,
4756 DWORD grfFlags);
4757 void __RPC_STUB IStorage16_MoveElementTo_Stub(
4758 struct IRpcStubBuffer* This,
4759 struct IRpcChannelBuffer* pRpcChannelBuffer,
4760 PRPC_MESSAGE pRpcMessage,
4761 DWORD* pdwStubPhase);
4762 HRESULT CALLBACK IStorage16_Commit_Proxy(
4763 IStorage16* This,
4764 DWORD grfCommitFlags);
4765 void __RPC_STUB IStorage16_Commit_Stub(
4766 struct IRpcStubBuffer* This,
4767 struct IRpcChannelBuffer* pRpcChannelBuffer,
4768 PRPC_MESSAGE pRpcMessage,
4769 DWORD* pdwStubPhase);
4770 HRESULT CALLBACK IStorage16_Revert_Proxy(
4771 IStorage16* This);
4772 void __RPC_STUB IStorage16_Revert_Stub(
4773 struct IRpcStubBuffer* This,
4774 struct IRpcChannelBuffer* pRpcChannelBuffer,
4775 PRPC_MESSAGE pRpcMessage,
4776 DWORD* pdwStubPhase);
4777 HRESULT CALLBACK IStorage16_RemoteEnumElements_Proxy(
4778 IStorage16* This,
4779 DWORD reserved1,
4780 unsigned long cbReserved2,
4781 byte* reserved2,
4782 DWORD reserved3,
4783 IEnumSTATSTG** ppenum);
4784 void __RPC_STUB IStorage16_RemoteEnumElements_Stub(
4785 struct IRpcStubBuffer* This,
4786 struct IRpcChannelBuffer* pRpcChannelBuffer,
4787 PRPC_MESSAGE pRpcMessage,
4788 DWORD* pdwStubPhase);
4789 HRESULT CALLBACK IStorage16_EnumElements_Proxy(
4790 IStorage16* This,
4791 DWORD reserved1,
4792 void* reserved2,
4793 DWORD reserved3,
4794 IEnumSTATSTG** ppenum);
4795 HRESULT __RPC_STUB IStorage16_EnumElements_Stub(
4796 IStorage16* This,
4797 DWORD reserved1,
4798 unsigned long cbReserved2,
4799 byte* reserved2,
4800 DWORD reserved3,
4801 IEnumSTATSTG** ppenum);
4802 HRESULT CALLBACK IStorage16_DestroyElement_Proxy(
4803 IStorage16* This,
4804 LPCOLESTR16 pwcsName);
4805 void __RPC_STUB IStorage16_DestroyElement_Stub(
4806 struct IRpcStubBuffer* This,
4807 struct IRpcChannelBuffer* pRpcChannelBuffer,
4808 PRPC_MESSAGE pRpcMessage,
4809 DWORD* pdwStubPhase);
4810 HRESULT CALLBACK IStorage16_RenameElement_Proxy(
4811 IStorage16* This,
4812 LPCOLESTR16 pwcsOldName,
4813 LPCOLESTR16 pwcsNewName);
4814 void __RPC_STUB IStorage16_RenameElement_Stub(
4815 struct IRpcStubBuffer* This,
4816 struct IRpcChannelBuffer* pRpcChannelBuffer,
4817 PRPC_MESSAGE pRpcMessage,
4818 DWORD* pdwStubPhase);
4819 HRESULT CALLBACK IStorage16_SetElementTimes_Proxy(
4820 IStorage16* This,
4821 LPCOLESTR16 pwcsName,
4822 const FILETIME* pctime,
4823 const FILETIME* patime,
4824 const FILETIME* pmtime);
4825 void __RPC_STUB IStorage16_SetElementTimes_Stub(
4826 struct IRpcStubBuffer* This,
4827 struct IRpcChannelBuffer* pRpcChannelBuffer,
4828 PRPC_MESSAGE pRpcMessage,
4829 DWORD* pdwStubPhase);
4830 HRESULT CALLBACK IStorage16_SetClass_Proxy(
4831 IStorage16* This,
4832 REFCLSID clsid);
4833 void __RPC_STUB IStorage16_SetClass_Stub(
4834 struct IRpcStubBuffer* This,
4835 struct IRpcChannelBuffer* pRpcChannelBuffer,
4836 PRPC_MESSAGE pRpcMessage,
4837 DWORD* pdwStubPhase);
4838 HRESULT CALLBACK IStorage16_SetStateBits_Proxy(
4839 IStorage16* This,
4840 DWORD grfStateBits,
4841 DWORD grfMask);
4842 void __RPC_STUB IStorage16_SetStateBits_Stub(
4843 struct IRpcStubBuffer* This,
4844 struct IRpcChannelBuffer* pRpcChannelBuffer,
4845 PRPC_MESSAGE pRpcMessage,
4846 DWORD* pdwStubPhase);
4847 HRESULT CALLBACK IStorage16_Stat_Proxy(
4848 IStorage16* This,
4849 STATSTG* pstatstg,
4850 DWORD grfStatFlag);
4851 void __RPC_STUB IStorage16_Stat_Stub(
4852 struct IRpcStubBuffer* This,
4853 struct IRpcChannelBuffer* pRpcChannelBuffer,
4854 PRPC_MESSAGE pRpcMessage,
4855 DWORD* pdwStubPhase);
4857 #endif /* __IStorage16_INTERFACE_DEFINED__ */
4859 #ifndef __IPersistFile_FWD_DEFINED__
4860 #define __IPersistFile_FWD_DEFINED__
4861 typedef struct IPersistFile IPersistFile;
4862 #endif
4864 typedef IPersistFile *LPPERSISTFILE;
4866 /*****************************************************************************
4867 * IPersistFile interface
4869 #ifndef __IPersistFile_INTERFACE_DEFINED__
4870 #define __IPersistFile_INTERFACE_DEFINED__
4872 DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4873 #if defined(__cplusplus) && !defined(CINTERFACE)
4874 struct IPersistFile : public IPersist
4876 virtual HRESULT STDMETHODCALLTYPE IsDirty(
4877 ) = 0;
4879 virtual HRESULT STDMETHODCALLTYPE Load(
4880 LPCOLESTR pszFileName,
4881 DWORD dwMode) = 0;
4883 virtual HRESULT STDMETHODCALLTYPE Save(
4884 LPCOLESTR pszFileName,
4885 BOOL fRemember) = 0;
4887 virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
4888 LPCOLESTR pszFileName) = 0;
4890 virtual HRESULT STDMETHODCALLTYPE GetCurFile(
4891 LPOLESTR* ppszFileName) = 0;
4894 #else
4895 typedef struct IPersistFileVtbl IPersistFileVtbl;
4896 struct IPersistFile {
4897 const IPersistFileVtbl* lpVtbl;
4899 struct IPersistFileVtbl {
4900 ICOM_MSVTABLE_COMPAT_FIELDS
4902 /*** IUnknown methods ***/
4903 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4904 IPersistFile* This,
4905 REFIID riid,
4906 void** ppvObject);
4908 ULONG (STDMETHODCALLTYPE *AddRef)(
4909 IPersistFile* This);
4911 ULONG (STDMETHODCALLTYPE *Release)(
4912 IPersistFile* This);
4914 /*** IPersist methods ***/
4915 HRESULT (STDMETHODCALLTYPE *GetClassID)(
4916 IPersistFile* This,
4917 CLSID* pClassID);
4919 /*** IPersistFile methods ***/
4920 HRESULT (STDMETHODCALLTYPE *IsDirty)(
4921 IPersistFile* This);
4923 HRESULT (STDMETHODCALLTYPE *Load)(
4924 IPersistFile* This,
4925 LPCOLESTR pszFileName,
4926 DWORD dwMode);
4928 HRESULT (STDMETHODCALLTYPE *Save)(
4929 IPersistFile* This,
4930 LPCOLESTR pszFileName,
4931 BOOL fRemember);
4933 HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
4934 IPersistFile* This,
4935 LPCOLESTR pszFileName);
4937 HRESULT (STDMETHODCALLTYPE *GetCurFile)(
4938 IPersistFile* This,
4939 LPOLESTR* ppszFileName);
4943 /*** IUnknown methods ***/
4944 #define IPersistFile_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4945 #define IPersistFile_AddRef(p) (p)->lpVtbl->AddRef(p)
4946 #define IPersistFile_Release(p) (p)->lpVtbl->Release(p)
4947 /*** IPersist methods ***/
4948 #define IPersistFile_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4949 /*** IPersistFile methods ***/
4950 #define IPersistFile_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4951 #define IPersistFile_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
4952 #define IPersistFile_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4953 #define IPersistFile_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
4954 #define IPersistFile_GetCurFile(p,a) (p)->lpVtbl->GetCurFile(p,a)
4956 #endif
4958 #define IPersistFile_METHODS \
4959 ICOM_MSVTABLE_COMPAT_FIELDS \
4960 /*** IUnknown methods ***/ \
4961 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4962 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4963 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4964 /*** IPersist methods ***/ \
4965 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
4966 /*** IPersistFile methods ***/ \
4967 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
4968 STDMETHOD_(HRESULT,Load)(THIS_ LPCOLESTR pszFileName, DWORD dwMode) PURE; \
4969 STDMETHOD_(HRESULT,Save)(THIS_ LPCOLESTR pszFileName, BOOL fRemember) PURE; \
4970 STDMETHOD_(HRESULT,SaveCompleted)(THIS_ LPCOLESTR pszFileName) PURE; \
4971 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName) PURE;
4973 HRESULT CALLBACK IPersistFile_IsDirty_Proxy(
4974 IPersistFile* This);
4975 void __RPC_STUB IPersistFile_IsDirty_Stub(
4976 struct IRpcStubBuffer* This,
4977 struct IRpcChannelBuffer* pRpcChannelBuffer,
4978 PRPC_MESSAGE pRpcMessage,
4979 DWORD* pdwStubPhase);
4980 HRESULT CALLBACK IPersistFile_Load_Proxy(
4981 IPersistFile* This,
4982 LPCOLESTR pszFileName,
4983 DWORD dwMode);
4984 void __RPC_STUB IPersistFile_Load_Stub(
4985 struct IRpcStubBuffer* This,
4986 struct IRpcChannelBuffer* pRpcChannelBuffer,
4987 PRPC_MESSAGE pRpcMessage,
4988 DWORD* pdwStubPhase);
4989 HRESULT CALLBACK IPersistFile_Save_Proxy(
4990 IPersistFile* This,
4991 LPCOLESTR pszFileName,
4992 BOOL fRemember);
4993 void __RPC_STUB IPersistFile_Save_Stub(
4994 struct IRpcStubBuffer* This,
4995 struct IRpcChannelBuffer* pRpcChannelBuffer,
4996 PRPC_MESSAGE pRpcMessage,
4997 DWORD* pdwStubPhase);
4998 HRESULT CALLBACK IPersistFile_SaveCompleted_Proxy(
4999 IPersistFile* This,
5000 LPCOLESTR pszFileName);
5001 void __RPC_STUB IPersistFile_SaveCompleted_Stub(
5002 struct IRpcStubBuffer* This,
5003 struct IRpcChannelBuffer* pRpcChannelBuffer,
5004 PRPC_MESSAGE pRpcMessage,
5005 DWORD* pdwStubPhase);
5006 HRESULT CALLBACK IPersistFile_GetCurFile_Proxy(
5007 IPersistFile* This,
5008 LPOLESTR* ppszFileName);
5009 void __RPC_STUB IPersistFile_GetCurFile_Stub(
5010 struct IRpcStubBuffer* This,
5011 struct IRpcChannelBuffer* pRpcChannelBuffer,
5012 PRPC_MESSAGE pRpcMessage,
5013 DWORD* pdwStubPhase);
5015 #endif /* __IPersistFile_INTERFACE_DEFINED__ */
5017 #ifndef __IPersistStorage_FWD_DEFINED__
5018 #define __IPersistStorage_FWD_DEFINED__
5019 typedef struct IPersistStorage IPersistStorage;
5020 #endif
5022 typedef IPersistStorage *LPPERSISTSTORAGE;
5024 /*****************************************************************************
5025 * IPersistStorage interface
5027 #ifndef __IPersistStorage_INTERFACE_DEFINED__
5028 #define __IPersistStorage_INTERFACE_DEFINED__
5030 DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5031 #if defined(__cplusplus) && !defined(CINTERFACE)
5032 struct IPersistStorage : public IPersist
5034 virtual HRESULT STDMETHODCALLTYPE IsDirty(
5035 ) = 0;
5037 virtual HRESULT STDMETHODCALLTYPE InitNew(
5038 IStorage* pStg) = 0;
5040 virtual HRESULT STDMETHODCALLTYPE Load(
5041 IStorage* pStg) = 0;
5043 virtual HRESULT STDMETHODCALLTYPE Save(
5044 IStorage* pStgSave,
5045 BOOL fSameAsLoad) = 0;
5047 virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
5048 IStorage* pStgNew) = 0;
5050 virtual HRESULT STDMETHODCALLTYPE HandsOffStorage(
5051 ) = 0;
5054 #else
5055 typedef struct IPersistStorageVtbl IPersistStorageVtbl;
5056 struct IPersistStorage {
5057 const IPersistStorageVtbl* lpVtbl;
5059 struct IPersistStorageVtbl {
5060 ICOM_MSVTABLE_COMPAT_FIELDS
5062 /*** IUnknown methods ***/
5063 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5064 IPersistStorage* This,
5065 REFIID riid,
5066 void** ppvObject);
5068 ULONG (STDMETHODCALLTYPE *AddRef)(
5069 IPersistStorage* This);
5071 ULONG (STDMETHODCALLTYPE *Release)(
5072 IPersistStorage* This);
5074 /*** IPersist methods ***/
5075 HRESULT (STDMETHODCALLTYPE *GetClassID)(
5076 IPersistStorage* This,
5077 CLSID* pClassID);
5079 /*** IPersistStorage methods ***/
5080 HRESULT (STDMETHODCALLTYPE *IsDirty)(
5081 IPersistStorage* This);
5083 HRESULT (STDMETHODCALLTYPE *InitNew)(
5084 IPersistStorage* This,
5085 IStorage* pStg);
5087 HRESULT (STDMETHODCALLTYPE *Load)(
5088 IPersistStorage* This,
5089 IStorage* pStg);
5091 HRESULT (STDMETHODCALLTYPE *Save)(
5092 IPersistStorage* This,
5093 IStorage* pStgSave,
5094 BOOL fSameAsLoad);
5096 HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
5097 IPersistStorage* This,
5098 IStorage* pStgNew);
5100 HRESULT (STDMETHODCALLTYPE *HandsOffStorage)(
5101 IPersistStorage* This);
5105 /*** IUnknown methods ***/
5106 #define IPersistStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5107 #define IPersistStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
5108 #define IPersistStorage_Release(p) (p)->lpVtbl->Release(p)
5109 /*** IPersist methods ***/
5110 #define IPersistStorage_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
5111 /*** IPersistStorage methods ***/
5112 #define IPersistStorage_IsDirty(p) (p)->lpVtbl->IsDirty(p)
5113 #define IPersistStorage_InitNew(p,a) (p)->lpVtbl->InitNew(p,a)
5114 #define IPersistStorage_Load(p,a) (p)->lpVtbl->Load(p,a)
5115 #define IPersistStorage_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
5116 #define IPersistStorage_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
5117 #define IPersistStorage_HandsOffStorage(p) (p)->lpVtbl->HandsOffStorage(p)
5119 #endif
5121 #define IPersistStorage_METHODS \
5122 ICOM_MSVTABLE_COMPAT_FIELDS \
5123 /*** IUnknown methods ***/ \
5124 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5125 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5126 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5127 /*** IPersist methods ***/ \
5128 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
5129 /*** IPersistStorage methods ***/ \
5130 STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
5131 STDMETHOD_(HRESULT,InitNew)(THIS_ IStorage* pStg) PURE; \
5132 STDMETHOD_(HRESULT,Load)(THIS_ IStorage* pStg) PURE; \
5133 STDMETHOD_(HRESULT,Save)(THIS_ IStorage* pStgSave, BOOL fSameAsLoad) PURE; \
5134 STDMETHOD_(HRESULT,SaveCompleted)(THIS_ IStorage* pStgNew) PURE; \
5135 STDMETHOD_(HRESULT,HandsOffStorage)(THIS) PURE;
5137 HRESULT CALLBACK IPersistStorage_IsDirty_Proxy(
5138 IPersistStorage* This);
5139 void __RPC_STUB IPersistStorage_IsDirty_Stub(
5140 struct IRpcStubBuffer* This,
5141 struct IRpcChannelBuffer* pRpcChannelBuffer,
5142 PRPC_MESSAGE pRpcMessage,
5143 DWORD* pdwStubPhase);
5144 HRESULT CALLBACK IPersistStorage_InitNew_Proxy(
5145 IPersistStorage* This,
5146 IStorage* pStg);
5147 void __RPC_STUB IPersistStorage_InitNew_Stub(
5148 struct IRpcStubBuffer* This,
5149 struct IRpcChannelBuffer* pRpcChannelBuffer,
5150 PRPC_MESSAGE pRpcMessage,
5151 DWORD* pdwStubPhase);
5152 HRESULT CALLBACK IPersistStorage_Load_Proxy(
5153 IPersistStorage* This,
5154 IStorage* pStg);
5155 void __RPC_STUB IPersistStorage_Load_Stub(
5156 struct IRpcStubBuffer* This,
5157 struct IRpcChannelBuffer* pRpcChannelBuffer,
5158 PRPC_MESSAGE pRpcMessage,
5159 DWORD* pdwStubPhase);
5160 HRESULT CALLBACK IPersistStorage_Save_Proxy(
5161 IPersistStorage* This,
5162 IStorage* pStgSave,
5163 BOOL fSameAsLoad);
5164 void __RPC_STUB IPersistStorage_Save_Stub(
5165 struct IRpcStubBuffer* This,
5166 struct IRpcChannelBuffer* pRpcChannelBuffer,
5167 PRPC_MESSAGE pRpcMessage,
5168 DWORD* pdwStubPhase);
5169 HRESULT CALLBACK IPersistStorage_SaveCompleted_Proxy(
5170 IPersistStorage* This,
5171 IStorage* pStgNew);
5172 void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
5173 struct IRpcStubBuffer* This,
5174 struct IRpcChannelBuffer* pRpcChannelBuffer,
5175 PRPC_MESSAGE pRpcMessage,
5176 DWORD* pdwStubPhase);
5177 HRESULT CALLBACK IPersistStorage_HandsOffStorage_Proxy(
5178 IPersistStorage* This);
5179 void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
5180 struct IRpcStubBuffer* This,
5181 struct IRpcChannelBuffer* pRpcChannelBuffer,
5182 PRPC_MESSAGE pRpcMessage,
5183 DWORD* pdwStubPhase);
5185 #endif /* __IPersistStorage_INTERFACE_DEFINED__ */
5187 #ifndef __IRootStorage_FWD_DEFINED__
5188 #define __IRootStorage_FWD_DEFINED__
5189 typedef struct IRootStorage IRootStorage;
5190 #endif
5192 typedef IRootStorage *LPROOTSTORAGE;
5194 /*****************************************************************************
5195 * IRootStorage interface
5197 #ifndef __IRootStorage_INTERFACE_DEFINED__
5198 #define __IRootStorage_INTERFACE_DEFINED__
5200 DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5201 #if defined(__cplusplus) && !defined(CINTERFACE)
5202 struct IRootStorage : public IUnknown
5204 virtual HRESULT STDMETHODCALLTYPE SwitchToFile(
5205 LPOLESTR pszFile) = 0;
5208 #else
5209 typedef struct IRootStorageVtbl IRootStorageVtbl;
5210 struct IRootStorage {
5211 const IRootStorageVtbl* lpVtbl;
5213 struct IRootStorageVtbl {
5214 ICOM_MSVTABLE_COMPAT_FIELDS
5216 /*** IUnknown methods ***/
5217 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5218 IRootStorage* This,
5219 REFIID riid,
5220 void** ppvObject);
5222 ULONG (STDMETHODCALLTYPE *AddRef)(
5223 IRootStorage* This);
5225 ULONG (STDMETHODCALLTYPE *Release)(
5226 IRootStorage* This);
5228 /*** IRootStorage methods ***/
5229 HRESULT (STDMETHODCALLTYPE *SwitchToFile)(
5230 IRootStorage* This,
5231 LPOLESTR pszFile);
5235 /*** IUnknown methods ***/
5236 #define IRootStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5237 #define IRootStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
5238 #define IRootStorage_Release(p) (p)->lpVtbl->Release(p)
5239 /*** IRootStorage methods ***/
5240 #define IRootStorage_SwitchToFile(p,a) (p)->lpVtbl->SwitchToFile(p,a)
5242 #endif
5244 #define IRootStorage_METHODS \
5245 ICOM_MSVTABLE_COMPAT_FIELDS \
5246 /*** IUnknown methods ***/ \
5247 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5248 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5249 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5250 /*** IRootStorage methods ***/ \
5251 STDMETHOD_(HRESULT,SwitchToFile)(THIS_ LPOLESTR pszFile) PURE;
5253 HRESULT CALLBACK IRootStorage_SwitchToFile_Proxy(
5254 IRootStorage* This,
5255 LPOLESTR pszFile);
5256 void __RPC_STUB IRootStorage_SwitchToFile_Stub(
5257 struct IRpcStubBuffer* This,
5258 struct IRpcChannelBuffer* pRpcChannelBuffer,
5259 PRPC_MESSAGE pRpcMessage,
5260 DWORD* pdwStubPhase);
5262 #endif /* __IRootStorage_INTERFACE_DEFINED__ */
5264 #ifndef __ILockBytes_FWD_DEFINED__
5265 #define __ILockBytes_FWD_DEFINED__
5266 typedef struct ILockBytes ILockBytes;
5267 #endif
5269 typedef ILockBytes *LPLOCKBYTES;
5271 /*****************************************************************************
5272 * ILockBytes interface
5274 #ifndef __ILockBytes_INTERFACE_DEFINED__
5275 #define __ILockBytes_INTERFACE_DEFINED__
5277 DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5278 #if defined(__cplusplus) && !defined(CINTERFACE)
5279 struct ILockBytes : public IUnknown
5281 virtual HRESULT STDMETHODCALLTYPE ReadAt(
5282 ULARGE_INTEGER ulOffset,
5283 void* pv,
5284 ULONG cb,
5285 ULONG* pcbRead) = 0;
5287 virtual HRESULT STDMETHODCALLTYPE WriteAt(
5288 ULARGE_INTEGER ulOffset,
5289 const void* pv,
5290 ULONG cb,
5291 ULONG* pcbWritten) = 0;
5293 virtual HRESULT STDMETHODCALLTYPE Flush(
5294 ) = 0;
5296 virtual HRESULT STDMETHODCALLTYPE SetSize(
5297 ULARGE_INTEGER cb) = 0;
5299 virtual HRESULT STDMETHODCALLTYPE LockRegion(
5300 ULARGE_INTEGER libOffset,
5301 ULARGE_INTEGER cb,
5302 DWORD dwLockType) = 0;
5304 virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
5305 ULARGE_INTEGER libOffset,
5306 ULARGE_INTEGER cb,
5307 DWORD dwLockType) = 0;
5309 virtual HRESULT STDMETHODCALLTYPE Stat(
5310 STATSTG* pstatstg,
5311 DWORD grfStatFlag) = 0;
5314 #else
5315 typedef struct ILockBytesVtbl ILockBytesVtbl;
5316 struct ILockBytes {
5317 const ILockBytesVtbl* lpVtbl;
5319 struct ILockBytesVtbl {
5320 ICOM_MSVTABLE_COMPAT_FIELDS
5322 /*** IUnknown methods ***/
5323 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5324 ILockBytes* This,
5325 REFIID riid,
5326 void** ppvObject);
5328 ULONG (STDMETHODCALLTYPE *AddRef)(
5329 ILockBytes* This);
5331 ULONG (STDMETHODCALLTYPE *Release)(
5332 ILockBytes* This);
5334 /*** ILockBytes methods ***/
5335 HRESULT (STDMETHODCALLTYPE *ReadAt)(
5336 ILockBytes* This,
5337 ULARGE_INTEGER ulOffset,
5338 void* pv,
5339 ULONG cb,
5340 ULONG* pcbRead);
5342 HRESULT (STDMETHODCALLTYPE *WriteAt)(
5343 ILockBytes* This,
5344 ULARGE_INTEGER ulOffset,
5345 const void* pv,
5346 ULONG cb,
5347 ULONG* pcbWritten);
5349 HRESULT (STDMETHODCALLTYPE *Flush)(
5350 ILockBytes* This);
5352 HRESULT (STDMETHODCALLTYPE *SetSize)(
5353 ILockBytes* This,
5354 ULARGE_INTEGER cb);
5356 HRESULT (STDMETHODCALLTYPE *LockRegion)(
5357 ILockBytes* This,
5358 ULARGE_INTEGER libOffset,
5359 ULARGE_INTEGER cb,
5360 DWORD dwLockType);
5362 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
5363 ILockBytes* This,
5364 ULARGE_INTEGER libOffset,
5365 ULARGE_INTEGER cb,
5366 DWORD dwLockType);
5368 HRESULT (STDMETHODCALLTYPE *Stat)(
5369 ILockBytes* This,
5370 STATSTG* pstatstg,
5371 DWORD grfStatFlag);
5375 /*** IUnknown methods ***/
5376 #define ILockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5377 #define ILockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
5378 #define ILockBytes_Release(p) (p)->lpVtbl->Release(p)
5379 /*** ILockBytes methods ***/
5380 #define ILockBytes_ReadAt(p,a,b,c,d) (p)->lpVtbl->ReadAt(p,a,b,c,d)
5381 #define ILockBytes_WriteAt(p,a,b,c,d) (p)->lpVtbl->WriteAt(p,a,b,c,d)
5382 #define ILockBytes_Flush(p) (p)->lpVtbl->Flush(p)
5383 #define ILockBytes_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
5384 #define ILockBytes_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
5385 #define ILockBytes_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
5386 #define ILockBytes_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
5388 #endif
5390 #define ILockBytes_METHODS \
5391 ICOM_MSVTABLE_COMPAT_FIELDS \
5392 /*** IUnknown methods ***/ \
5393 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5394 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5395 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5396 /*** ILockBytes methods ***/ \
5397 STDMETHOD_(HRESULT,ReadAt)(THIS_ ULARGE_INTEGER ulOffset, void* pv, ULONG cb, ULONG* pcbRead) PURE; \
5398 STDMETHOD_(HRESULT,WriteAt)(THIS_ ULARGE_INTEGER ulOffset, const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
5399 STDMETHOD_(HRESULT,Flush)(THIS) PURE; \
5400 STDMETHOD_(HRESULT,SetSize)(THIS_ ULARGE_INTEGER cb) PURE; \
5401 STDMETHOD_(HRESULT,LockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
5402 STDMETHOD_(HRESULT,UnlockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE; \
5403 STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE;
5405 HRESULT CALLBACK ILockBytes_RemoteReadAt_Proxy(
5406 ILockBytes* This,
5407 ULARGE_INTEGER ulOffset,
5408 byte* pv,
5409 ULONG cb,
5410 ULONG* pcbRead);
5411 void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
5412 struct IRpcStubBuffer* This,
5413 struct IRpcChannelBuffer* pRpcChannelBuffer,
5414 PRPC_MESSAGE pRpcMessage,
5415 DWORD* pdwStubPhase);
5416 HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
5417 ILockBytes* This,
5418 ULARGE_INTEGER ulOffset,
5419 void* pv,
5420 ULONG cb,
5421 ULONG* pcbRead);
5422 HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
5423 ILockBytes* This,
5424 ULARGE_INTEGER ulOffset,
5425 byte* pv,
5426 ULONG cb,
5427 ULONG* pcbRead);
5428 HRESULT CALLBACK ILockBytes_RemoteWriteAt_Proxy(
5429 ILockBytes* This,
5430 ULARGE_INTEGER ulOffset,
5431 const byte* pv,
5432 ULONG cb,
5433 ULONG* pcbWritten);
5434 void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
5435 struct IRpcStubBuffer* This,
5436 struct IRpcChannelBuffer* pRpcChannelBuffer,
5437 PRPC_MESSAGE pRpcMessage,
5438 DWORD* pdwStubPhase);
5439 HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
5440 ILockBytes* This,
5441 ULARGE_INTEGER ulOffset,
5442 const void* pv,
5443 ULONG cb,
5444 ULONG* pcbWritten);
5445 HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
5446 ILockBytes* This,
5447 ULARGE_INTEGER ulOffset,
5448 const byte* pv,
5449 ULONG cb,
5450 ULONG* pcbWritten);
5451 HRESULT CALLBACK ILockBytes_Flush_Proxy(
5452 ILockBytes* This);
5453 void __RPC_STUB ILockBytes_Flush_Stub(
5454 struct IRpcStubBuffer* This,
5455 struct IRpcChannelBuffer* pRpcChannelBuffer,
5456 PRPC_MESSAGE pRpcMessage,
5457 DWORD* pdwStubPhase);
5458 HRESULT CALLBACK ILockBytes_SetSize_Proxy(
5459 ILockBytes* This,
5460 ULARGE_INTEGER cb);
5461 void __RPC_STUB ILockBytes_SetSize_Stub(
5462 struct IRpcStubBuffer* This,
5463 struct IRpcChannelBuffer* pRpcChannelBuffer,
5464 PRPC_MESSAGE pRpcMessage,
5465 DWORD* pdwStubPhase);
5466 HRESULT CALLBACK ILockBytes_LockRegion_Proxy(
5467 ILockBytes* This,
5468 ULARGE_INTEGER libOffset,
5469 ULARGE_INTEGER cb,
5470 DWORD dwLockType);
5471 void __RPC_STUB ILockBytes_LockRegion_Stub(
5472 struct IRpcStubBuffer* This,
5473 struct IRpcChannelBuffer* pRpcChannelBuffer,
5474 PRPC_MESSAGE pRpcMessage,
5475 DWORD* pdwStubPhase);
5476 HRESULT CALLBACK ILockBytes_UnlockRegion_Proxy(
5477 ILockBytes* This,
5478 ULARGE_INTEGER libOffset,
5479 ULARGE_INTEGER cb,
5480 DWORD dwLockType);
5481 void __RPC_STUB ILockBytes_UnlockRegion_Stub(
5482 struct IRpcStubBuffer* This,
5483 struct IRpcChannelBuffer* pRpcChannelBuffer,
5484 PRPC_MESSAGE pRpcMessage,
5485 DWORD* pdwStubPhase);
5486 HRESULT CALLBACK ILockBytes_Stat_Proxy(
5487 ILockBytes* This,
5488 STATSTG* pstatstg,
5489 DWORD grfStatFlag);
5490 void __RPC_STUB ILockBytes_Stat_Stub(
5491 struct IRpcStubBuffer* This,
5492 struct IRpcChannelBuffer* pRpcChannelBuffer,
5493 PRPC_MESSAGE pRpcMessage,
5494 DWORD* pdwStubPhase);
5496 #endif /* __ILockBytes_INTERFACE_DEFINED__ */
5498 #ifndef __IFillLockBytes_FWD_DEFINED__
5499 #define __IFillLockBytes_FWD_DEFINED__
5500 typedef struct IFillLockBytes IFillLockBytes;
5501 #endif
5503 /*****************************************************************************
5504 * IFillLockBytes interface
5506 #ifndef __IFillLockBytes_INTERFACE_DEFINED__
5507 #define __IFillLockBytes_INTERFACE_DEFINED__
5509 DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
5510 #if defined(__cplusplus) && !defined(CINTERFACE)
5511 struct IFillLockBytes : public IUnknown
5513 virtual HRESULT STDMETHODCALLTYPE FillAppend(
5514 const void* pv,
5515 ULONG cb,
5516 ULONG* pcbWritten) = 0;
5518 virtual HRESULT STDMETHODCALLTYPE FillAt(
5519 ULARGE_INTEGER ulOffset,
5520 const void* pv,
5521 ULONG cb,
5522 ULONG* pcbWritten) = 0;
5524 virtual HRESULT STDMETHODCALLTYPE SetFillSize(
5525 ULARGE_INTEGER ulSize) = 0;
5527 virtual HRESULT STDMETHODCALLTYPE Terminate(
5528 BOOL bCanceled) = 0;
5531 #else
5532 typedef struct IFillLockBytesVtbl IFillLockBytesVtbl;
5533 struct IFillLockBytes {
5534 const IFillLockBytesVtbl* lpVtbl;
5536 struct IFillLockBytesVtbl {
5537 ICOM_MSVTABLE_COMPAT_FIELDS
5539 /*** IUnknown methods ***/
5540 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5541 IFillLockBytes* This,
5542 REFIID riid,
5543 void** ppvObject);
5545 ULONG (STDMETHODCALLTYPE *AddRef)(
5546 IFillLockBytes* This);
5548 ULONG (STDMETHODCALLTYPE *Release)(
5549 IFillLockBytes* This);
5551 /*** IFillLockBytes methods ***/
5552 HRESULT (STDMETHODCALLTYPE *FillAppend)(
5553 IFillLockBytes* This,
5554 const void* pv,
5555 ULONG cb,
5556 ULONG* pcbWritten);
5558 HRESULT (STDMETHODCALLTYPE *FillAt)(
5559 IFillLockBytes* This,
5560 ULARGE_INTEGER ulOffset,
5561 const void* pv,
5562 ULONG cb,
5563 ULONG* pcbWritten);
5565 HRESULT (STDMETHODCALLTYPE *SetFillSize)(
5566 IFillLockBytes* This,
5567 ULARGE_INTEGER ulSize);
5569 HRESULT (STDMETHODCALLTYPE *Terminate)(
5570 IFillLockBytes* This,
5571 BOOL bCanceled);
5575 /*** IUnknown methods ***/
5576 #define IFillLockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5577 #define IFillLockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
5578 #define IFillLockBytes_Release(p) (p)->lpVtbl->Release(p)
5579 /*** IFillLockBytes methods ***/
5580 #define IFillLockBytes_FillAppend(p,a,b,c) (p)->lpVtbl->FillAppend(p,a,b,c)
5581 #define IFillLockBytes_FillAt(p,a,b,c,d) (p)->lpVtbl->FillAt(p,a,b,c,d)
5582 #define IFillLockBytes_SetFillSize(p,a) (p)->lpVtbl->SetFillSize(p,a)
5583 #define IFillLockBytes_Terminate(p,a) (p)->lpVtbl->Terminate(p,a)
5585 #endif
5587 #define IFillLockBytes_METHODS \
5588 ICOM_MSVTABLE_COMPAT_FIELDS \
5589 /*** IUnknown methods ***/ \
5590 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5591 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5592 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5593 /*** IFillLockBytes methods ***/ \
5594 STDMETHOD_(HRESULT,FillAppend)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
5595 STDMETHOD_(HRESULT,FillAt)(THIS_ ULARGE_INTEGER ulOffset, const void* pv, ULONG cb, ULONG* pcbWritten) PURE; \
5596 STDMETHOD_(HRESULT,SetFillSize)(THIS_ ULARGE_INTEGER ulSize) PURE; \
5597 STDMETHOD_(HRESULT,Terminate)(THIS_ BOOL bCanceled) PURE;
5599 HRESULT CALLBACK IFillLockBytes_RemoteFillAppend_Proxy(
5600 IFillLockBytes* This,
5601 const byte* pv,
5602 ULONG cb,
5603 ULONG* pcbWritten);
5604 void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
5605 struct IRpcStubBuffer* This,
5606 struct IRpcChannelBuffer* pRpcChannelBuffer,
5607 PRPC_MESSAGE pRpcMessage,
5608 DWORD* pdwStubPhase);
5609 HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
5610 IFillLockBytes* This,
5611 const void* pv,
5612 ULONG cb,
5613 ULONG* pcbWritten);
5614 HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
5615 IFillLockBytes* This,
5616 const byte* pv,
5617 ULONG cb,
5618 ULONG* pcbWritten);
5619 HRESULT CALLBACK IFillLockBytes_RemoteFillAt_Proxy(
5620 IFillLockBytes* This,
5621 ULARGE_INTEGER ulOffset,
5622 const byte* pv,
5623 ULONG cb,
5624 ULONG* pcbWritten);
5625 void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
5626 struct IRpcStubBuffer* This,
5627 struct IRpcChannelBuffer* pRpcChannelBuffer,
5628 PRPC_MESSAGE pRpcMessage,
5629 DWORD* pdwStubPhase);
5630 HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
5631 IFillLockBytes* This,
5632 ULARGE_INTEGER ulOffset,
5633 const void* pv,
5634 ULONG cb,
5635 ULONG* pcbWritten);
5636 HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
5637 IFillLockBytes* This,
5638 ULARGE_INTEGER ulOffset,
5639 const byte* pv,
5640 ULONG cb,
5641 ULONG* pcbWritten);
5642 HRESULT CALLBACK IFillLockBytes_SetFillSize_Proxy(
5643 IFillLockBytes* This,
5644 ULARGE_INTEGER ulSize);
5645 void __RPC_STUB IFillLockBytes_SetFillSize_Stub(
5646 struct IRpcStubBuffer* This,
5647 struct IRpcChannelBuffer* pRpcChannelBuffer,
5648 PRPC_MESSAGE pRpcMessage,
5649 DWORD* pdwStubPhase);
5650 HRESULT CALLBACK IFillLockBytes_Terminate_Proxy(
5651 IFillLockBytes* This,
5652 BOOL bCanceled);
5653 void __RPC_STUB IFillLockBytes_Terminate_Stub(
5654 struct IRpcStubBuffer* This,
5655 struct IRpcChannelBuffer* pRpcChannelBuffer,
5656 PRPC_MESSAGE pRpcMessage,
5657 DWORD* pdwStubPhase);
5659 #endif /* __IFillLockBytes_INTERFACE_DEFINED__ */
5661 #ifndef __IProgressNotify_FWD_DEFINED__
5662 #define __IProgressNotify_FWD_DEFINED__
5663 typedef struct IProgressNotify IProgressNotify;
5664 #endif
5666 /*****************************************************************************
5667 * IProgressNotify interface
5669 #ifndef __IProgressNotify_INTERFACE_DEFINED__
5670 #define __IProgressNotify_INTERFACE_DEFINED__
5672 DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
5673 #if defined(__cplusplus) && !defined(CINTERFACE)
5674 struct IProgressNotify : public IUnknown
5676 virtual HRESULT STDMETHODCALLTYPE OnProgress(
5677 DWORD dwProgressCurrent,
5678 DWORD dwProgressMaximum,
5679 BOOL fAccurate,
5680 BOOL fOwner) = 0;
5683 #else
5684 typedef struct IProgressNotifyVtbl IProgressNotifyVtbl;
5685 struct IProgressNotify {
5686 const IProgressNotifyVtbl* lpVtbl;
5688 struct IProgressNotifyVtbl {
5689 ICOM_MSVTABLE_COMPAT_FIELDS
5691 /*** IUnknown methods ***/
5692 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5693 IProgressNotify* This,
5694 REFIID riid,
5695 void** ppvObject);
5697 ULONG (STDMETHODCALLTYPE *AddRef)(
5698 IProgressNotify* This);
5700 ULONG (STDMETHODCALLTYPE *Release)(
5701 IProgressNotify* This);
5703 /*** IProgressNotify methods ***/
5704 HRESULT (STDMETHODCALLTYPE *OnProgress)(
5705 IProgressNotify* This,
5706 DWORD dwProgressCurrent,
5707 DWORD dwProgressMaximum,
5708 BOOL fAccurate,
5709 BOOL fOwner);
5713 /*** IUnknown methods ***/
5714 #define IProgressNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5715 #define IProgressNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
5716 #define IProgressNotify_Release(p) (p)->lpVtbl->Release(p)
5717 /*** IProgressNotify methods ***/
5718 #define IProgressNotify_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d)
5720 #endif
5722 #define IProgressNotify_METHODS \
5723 ICOM_MSVTABLE_COMPAT_FIELDS \
5724 /*** IUnknown methods ***/ \
5725 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5726 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5727 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5728 /*** IProgressNotify methods ***/ \
5729 STDMETHOD_(HRESULT,OnProgress)(THIS_ DWORD dwProgressCurrent, DWORD dwProgressMaximum, BOOL fAccurate, BOOL fOwner) PURE;
5731 HRESULT CALLBACK IProgressNotify_OnProgress_Proxy(
5732 IProgressNotify* This,
5733 DWORD dwProgressCurrent,
5734 DWORD dwProgressMaximum,
5735 BOOL fAccurate,
5736 BOOL fOwner);
5737 void __RPC_STUB IProgressNotify_OnProgress_Stub(
5738 struct IRpcStubBuffer* This,
5739 struct IRpcChannelBuffer* pRpcChannelBuffer,
5740 PRPC_MESSAGE pRpcMessage,
5741 DWORD* pdwStubPhase);
5743 #endif /* __IProgressNotify_INTERFACE_DEFINED__ */
5745 #ifndef __ILayoutStorage_FWD_DEFINED__
5746 #define __ILayoutStorage_FWD_DEFINED__
5747 typedef struct ILayoutStorage ILayoutStorage;
5748 #endif
5750 typedef struct tagStorageLayout {
5751 DWORD LayoutType;
5752 OLECHAR *pwcsElementName;
5753 LARGE_INTEGER cOffset;
5754 LARGE_INTEGER cBytes;
5755 } StorageLayout;
5757 /*****************************************************************************
5758 * ILayoutStorage interface
5760 #ifndef __ILayoutStorage_INTERFACE_DEFINED__
5761 #define __ILayoutStorage_INTERFACE_DEFINED__
5763 DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
5764 #if defined(__cplusplus) && !defined(CINTERFACE)
5765 struct ILayoutStorage : public IUnknown
5767 virtual HRESULT STDMETHODCALLTYPE LayoutScript(
5768 StorageLayout* pStorageLayout,
5769 DWORD nEntries,
5770 DWORD glfInterleavedFlag) = 0;
5772 virtual HRESULT STDMETHODCALLTYPE BeginMonitor(
5773 ) = 0;
5775 virtual HRESULT STDMETHODCALLTYPE EndMonitor(
5776 ) = 0;
5778 virtual HRESULT STDMETHODCALLTYPE ReLayoutDocfile(
5779 OLECHAR* pwcsNewDfName) = 0;
5781 virtual HRESULT STDMETHODCALLTYPE ReLayoutDocfileOnILockBytes(
5782 ILockBytes* pILockBytes) = 0;
5785 #else
5786 typedef struct ILayoutStorageVtbl ILayoutStorageVtbl;
5787 struct ILayoutStorage {
5788 const ILayoutStorageVtbl* lpVtbl;
5790 struct ILayoutStorageVtbl {
5791 ICOM_MSVTABLE_COMPAT_FIELDS
5793 /*** IUnknown methods ***/
5794 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5795 ILayoutStorage* This,
5796 REFIID riid,
5797 void** ppvObject);
5799 ULONG (STDMETHODCALLTYPE *AddRef)(
5800 ILayoutStorage* This);
5802 ULONG (STDMETHODCALLTYPE *Release)(
5803 ILayoutStorage* This);
5805 /*** ILayoutStorage methods ***/
5806 HRESULT (STDMETHODCALLTYPE *LayoutScript)(
5807 ILayoutStorage* This,
5808 StorageLayout* pStorageLayout,
5809 DWORD nEntries,
5810 DWORD glfInterleavedFlag);
5812 HRESULT (STDMETHODCALLTYPE *BeginMonitor)(
5813 ILayoutStorage* This);
5815 HRESULT (STDMETHODCALLTYPE *EndMonitor)(
5816 ILayoutStorage* This);
5818 HRESULT (STDMETHODCALLTYPE *ReLayoutDocfile)(
5819 ILayoutStorage* This,
5820 OLECHAR* pwcsNewDfName);
5822 HRESULT (STDMETHODCALLTYPE *ReLayoutDocfileOnILockBytes)(
5823 ILayoutStorage* This,
5824 ILockBytes* pILockBytes);
5828 /*** IUnknown methods ***/
5829 #define ILayoutStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5830 #define ILayoutStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
5831 #define ILayoutStorage_Release(p) (p)->lpVtbl->Release(p)
5832 /*** ILayoutStorage methods ***/
5833 #define ILayoutStorage_LayoutScript(p,a,b,c) (p)->lpVtbl->LayoutScript(p,a,b,c)
5834 #define ILayoutStorage_BeginMonitor(p) (p)->lpVtbl->BeginMonitor(p)
5835 #define ILayoutStorage_EndMonitor(p) (p)->lpVtbl->EndMonitor(p)
5836 #define ILayoutStorage_ReLayoutDocfile(p,a) (p)->lpVtbl->ReLayoutDocfile(p,a)
5837 #define ILayoutStorage_ReLayoutDocfileOnILockBytes(p,a) (p)->lpVtbl->ReLayoutDocfileOnILockBytes(p,a)
5839 #endif
5841 #define ILayoutStorage_METHODS \
5842 ICOM_MSVTABLE_COMPAT_FIELDS \
5843 /*** IUnknown methods ***/ \
5844 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5845 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5846 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5847 /*** ILayoutStorage methods ***/ \
5848 STDMETHOD_(HRESULT,LayoutScript)(THIS_ StorageLayout* pStorageLayout, DWORD nEntries, DWORD glfInterleavedFlag) PURE; \
5849 STDMETHOD_(HRESULT,BeginMonitor)(THIS) PURE; \
5850 STDMETHOD_(HRESULT,EndMonitor)(THIS) PURE; \
5851 STDMETHOD_(HRESULT,ReLayoutDocfile)(THIS_ OLECHAR* pwcsNewDfName) PURE; \
5852 STDMETHOD_(HRESULT,ReLayoutDocfileOnILockBytes)(THIS_ ILockBytes* pILockBytes) PURE;
5854 HRESULT CALLBACK ILayoutStorage_LayoutScript_Proxy(
5855 ILayoutStorage* This,
5856 StorageLayout* pStorageLayout,
5857 DWORD nEntries,
5858 DWORD glfInterleavedFlag);
5859 void __RPC_STUB ILayoutStorage_LayoutScript_Stub(
5860 struct IRpcStubBuffer* This,
5861 struct IRpcChannelBuffer* pRpcChannelBuffer,
5862 PRPC_MESSAGE pRpcMessage,
5863 DWORD* pdwStubPhase);
5864 HRESULT CALLBACK ILayoutStorage_BeginMonitor_Proxy(
5865 ILayoutStorage* This);
5866 void __RPC_STUB ILayoutStorage_BeginMonitor_Stub(
5867 struct IRpcStubBuffer* This,
5868 struct IRpcChannelBuffer* pRpcChannelBuffer,
5869 PRPC_MESSAGE pRpcMessage,
5870 DWORD* pdwStubPhase);
5871 HRESULT CALLBACK ILayoutStorage_EndMonitor_Proxy(
5872 ILayoutStorage* This);
5873 void __RPC_STUB ILayoutStorage_EndMonitor_Stub(
5874 struct IRpcStubBuffer* This,
5875 struct IRpcChannelBuffer* pRpcChannelBuffer,
5876 PRPC_MESSAGE pRpcMessage,
5877 DWORD* pdwStubPhase);
5878 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfile_Proxy(
5879 ILayoutStorage* This,
5880 OLECHAR* pwcsNewDfName);
5881 void __RPC_STUB ILayoutStorage_ReLayoutDocfile_Stub(
5882 struct IRpcStubBuffer* This,
5883 struct IRpcChannelBuffer* pRpcChannelBuffer,
5884 PRPC_MESSAGE pRpcMessage,
5885 DWORD* pdwStubPhase);
5886 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfileOnILockBytes_Proxy(
5887 ILayoutStorage* This,
5888 ILockBytes* pILockBytes);
5889 void __RPC_STUB ILayoutStorage_ReLayoutDocfileOnILockBytes_Stub(
5890 struct IRpcStubBuffer* This,
5891 struct IRpcChannelBuffer* pRpcChannelBuffer,
5892 PRPC_MESSAGE pRpcMessage,
5893 DWORD* pdwStubPhase);
5895 #endif /* __ILayoutStorage_INTERFACE_DEFINED__ */
5897 #ifndef __IEnumFORMATETC_FWD_DEFINED__
5898 #define __IEnumFORMATETC_FWD_DEFINED__
5899 typedef struct IEnumFORMATETC IEnumFORMATETC;
5900 #endif
5902 typedef IEnumFORMATETC *LPENUMFORMATETC;
5904 typedef struct tagDVTARGETDEVICE {
5905 DWORD tdSize;
5906 WORD tdDriverNameOffset;
5907 WORD tdDeviceNameOffset;
5908 WORD tdPortNameOffset;
5909 WORD tdExtDevmodeOffset;
5910 BYTE tdData[1];
5911 } DVTARGETDEVICE;
5913 typedef CLIPFORMAT *LPCLIPFORMAT;
5915 typedef struct tagFORMATETC {
5916 CLIPFORMAT cfFormat;
5917 DVTARGETDEVICE *ptd;
5918 DWORD dwAspect;
5919 LONG lindex;
5920 DWORD tymed;
5921 } FORMATETC, *LPFORMATETC;
5923 /*****************************************************************************
5924 * IEnumFORMATETC interface
5926 #ifndef __IEnumFORMATETC_INTERFACE_DEFINED__
5927 #define __IEnumFORMATETC_INTERFACE_DEFINED__
5929 DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5930 #if defined(__cplusplus) && !defined(CINTERFACE)
5931 struct IEnumFORMATETC : public IUnknown
5933 virtual HRESULT STDMETHODCALLTYPE Next(
5934 ULONG celt,
5935 FORMATETC* rgelt,
5936 ULONG* pceltFetched) = 0;
5938 virtual HRESULT STDMETHODCALLTYPE Skip(
5939 ULONG celt) = 0;
5941 virtual HRESULT STDMETHODCALLTYPE Reset(
5942 ) = 0;
5944 virtual HRESULT STDMETHODCALLTYPE Clone(
5945 IEnumFORMATETC** ppenum) = 0;
5948 #else
5949 typedef struct IEnumFORMATETCVtbl IEnumFORMATETCVtbl;
5950 struct IEnumFORMATETC {
5951 const IEnumFORMATETCVtbl* lpVtbl;
5953 struct IEnumFORMATETCVtbl {
5954 ICOM_MSVTABLE_COMPAT_FIELDS
5956 /*** IUnknown methods ***/
5957 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5958 IEnumFORMATETC* This,
5959 REFIID riid,
5960 void** ppvObject);
5962 ULONG (STDMETHODCALLTYPE *AddRef)(
5963 IEnumFORMATETC* This);
5965 ULONG (STDMETHODCALLTYPE *Release)(
5966 IEnumFORMATETC* This);
5968 /*** IEnumFORMATETC methods ***/
5969 HRESULT (STDMETHODCALLTYPE *Next)(
5970 IEnumFORMATETC* This,
5971 ULONG celt,
5972 FORMATETC* rgelt,
5973 ULONG* pceltFetched);
5975 HRESULT (STDMETHODCALLTYPE *Skip)(
5976 IEnumFORMATETC* This,
5977 ULONG celt);
5979 HRESULT (STDMETHODCALLTYPE *Reset)(
5980 IEnumFORMATETC* This);
5982 HRESULT (STDMETHODCALLTYPE *Clone)(
5983 IEnumFORMATETC* This,
5984 IEnumFORMATETC** ppenum);
5988 /*** IUnknown methods ***/
5989 #define IEnumFORMATETC_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5990 #define IEnumFORMATETC_AddRef(p) (p)->lpVtbl->AddRef(p)
5991 #define IEnumFORMATETC_Release(p) (p)->lpVtbl->Release(p)
5992 /*** IEnumFORMATETC methods ***/
5993 #define IEnumFORMATETC_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5994 #define IEnumFORMATETC_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5995 #define IEnumFORMATETC_Reset(p) (p)->lpVtbl->Reset(p)
5996 #define IEnumFORMATETC_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5998 #endif
6000 #define IEnumFORMATETC_METHODS \
6001 ICOM_MSVTABLE_COMPAT_FIELDS \
6002 /*** IUnknown methods ***/ \
6003 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6004 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6005 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6006 /*** IEnumFORMATETC methods ***/ \
6007 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, FORMATETC* rgelt, ULONG* pceltFetched) PURE; \
6008 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
6009 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
6010 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumFORMATETC** ppenum) PURE;
6012 HRESULT CALLBACK IEnumFORMATETC_RemoteNext_Proxy(
6013 IEnumFORMATETC* This,
6014 ULONG celt,
6015 FORMATETC* rgelt,
6016 ULONG* pceltFetched);
6017 void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
6018 struct IRpcStubBuffer* This,
6019 struct IRpcChannelBuffer* pRpcChannelBuffer,
6020 PRPC_MESSAGE pRpcMessage,
6021 DWORD* pdwStubPhase);
6022 HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
6023 IEnumFORMATETC* This,
6024 ULONG celt,
6025 FORMATETC* rgelt,
6026 ULONG* pceltFetched);
6027 HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
6028 IEnumFORMATETC* This,
6029 ULONG celt,
6030 FORMATETC* rgelt,
6031 ULONG* pceltFetched);
6032 HRESULT CALLBACK IEnumFORMATETC_Skip_Proxy(
6033 IEnumFORMATETC* This,
6034 ULONG celt);
6035 void __RPC_STUB IEnumFORMATETC_Skip_Stub(
6036 struct IRpcStubBuffer* This,
6037 struct IRpcChannelBuffer* pRpcChannelBuffer,
6038 PRPC_MESSAGE pRpcMessage,
6039 DWORD* pdwStubPhase);
6040 HRESULT CALLBACK IEnumFORMATETC_Reset_Proxy(
6041 IEnumFORMATETC* This);
6042 void __RPC_STUB IEnumFORMATETC_Reset_Stub(
6043 struct IRpcStubBuffer* This,
6044 struct IRpcChannelBuffer* pRpcChannelBuffer,
6045 PRPC_MESSAGE pRpcMessage,
6046 DWORD* pdwStubPhase);
6047 HRESULT CALLBACK IEnumFORMATETC_Clone_Proxy(
6048 IEnumFORMATETC* This,
6049 IEnumFORMATETC** ppenum);
6050 void __RPC_STUB IEnumFORMATETC_Clone_Stub(
6051 struct IRpcStubBuffer* This,
6052 struct IRpcChannelBuffer* pRpcChannelBuffer,
6053 PRPC_MESSAGE pRpcMessage,
6054 DWORD* pdwStubPhase);
6056 #endif /* __IEnumFORMATETC_INTERFACE_DEFINED__ */
6058 #ifndef __IEnumSTATDATA_FWD_DEFINED__
6059 #define __IEnumSTATDATA_FWD_DEFINED__
6060 typedef struct IEnumSTATDATA IEnumSTATDATA;
6061 #endif
6063 typedef IEnumSTATDATA *LPENUMSTATDATA;
6065 typedef enum tagADVF {
6066 ADVF_NODATA = 1,
6067 ADVF_PRIMEFIRST = 2,
6068 ADVF_ONLYONCE = 4,
6069 ADVF_DATAONSTOP = 64,
6070 ADVFCACHE_NOHANDLER = 8,
6071 ADVFCACHE_FORCEBUILTIN = 16,
6072 ADVFCACHE_ONSAVE = 32
6073 } ADVF;
6075 typedef struct tagSTATDATA {
6076 FORMATETC formatetc;
6077 DWORD advf;
6078 IAdviseSink *pAdvSink;
6079 DWORD dwConnection;
6080 } STATDATA, *LPSTATDATA;
6082 /*****************************************************************************
6083 * IEnumSTATDATA interface
6085 #ifndef __IEnumSTATDATA_INTERFACE_DEFINED__
6086 #define __IEnumSTATDATA_INTERFACE_DEFINED__
6088 DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6089 #if defined(__cplusplus) && !defined(CINTERFACE)
6090 struct IEnumSTATDATA : public IUnknown
6092 virtual HRESULT STDMETHODCALLTYPE Next(
6093 ULONG celt,
6094 STATDATA* rgelt,
6095 ULONG* pceltFetched) = 0;
6097 virtual HRESULT STDMETHODCALLTYPE Skip(
6098 ULONG celt) = 0;
6100 virtual HRESULT STDMETHODCALLTYPE Reset(
6101 ) = 0;
6103 virtual HRESULT STDMETHODCALLTYPE Clone(
6104 IEnumSTATDATA** ppenum) = 0;
6107 #else
6108 typedef struct IEnumSTATDATAVtbl IEnumSTATDATAVtbl;
6109 struct IEnumSTATDATA {
6110 const IEnumSTATDATAVtbl* lpVtbl;
6112 struct IEnumSTATDATAVtbl {
6113 ICOM_MSVTABLE_COMPAT_FIELDS
6115 /*** IUnknown methods ***/
6116 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6117 IEnumSTATDATA* This,
6118 REFIID riid,
6119 void** ppvObject);
6121 ULONG (STDMETHODCALLTYPE *AddRef)(
6122 IEnumSTATDATA* This);
6124 ULONG (STDMETHODCALLTYPE *Release)(
6125 IEnumSTATDATA* This);
6127 /*** IEnumSTATDATA methods ***/
6128 HRESULT (STDMETHODCALLTYPE *Next)(
6129 IEnumSTATDATA* This,
6130 ULONG celt,
6131 STATDATA* rgelt,
6132 ULONG* pceltFetched);
6134 HRESULT (STDMETHODCALLTYPE *Skip)(
6135 IEnumSTATDATA* This,
6136 ULONG celt);
6138 HRESULT (STDMETHODCALLTYPE *Reset)(
6139 IEnumSTATDATA* This);
6141 HRESULT (STDMETHODCALLTYPE *Clone)(
6142 IEnumSTATDATA* This,
6143 IEnumSTATDATA** ppenum);
6147 /*** IUnknown methods ***/
6148 #define IEnumSTATDATA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6149 #define IEnumSTATDATA_AddRef(p) (p)->lpVtbl->AddRef(p)
6150 #define IEnumSTATDATA_Release(p) (p)->lpVtbl->Release(p)
6151 /*** IEnumSTATDATA methods ***/
6152 #define IEnumSTATDATA_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
6153 #define IEnumSTATDATA_Skip(p,a) (p)->lpVtbl->Skip(p,a)
6154 #define IEnumSTATDATA_Reset(p) (p)->lpVtbl->Reset(p)
6155 #define IEnumSTATDATA_Clone(p,a) (p)->lpVtbl->Clone(p,a)
6157 #endif
6159 #define IEnumSTATDATA_METHODS \
6160 ICOM_MSVTABLE_COMPAT_FIELDS \
6161 /*** IUnknown methods ***/ \
6162 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6163 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6164 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6165 /*** IEnumSTATDATA methods ***/ \
6166 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATDATA* rgelt, ULONG* pceltFetched) PURE; \
6167 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
6168 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
6169 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATDATA** ppenum) PURE;
6171 HRESULT CALLBACK IEnumSTATDATA_RemoteNext_Proxy(
6172 IEnumSTATDATA* This,
6173 ULONG celt,
6174 STATDATA* rgelt,
6175 ULONG* pceltFetched);
6176 void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
6177 struct IRpcStubBuffer* This,
6178 struct IRpcChannelBuffer* pRpcChannelBuffer,
6179 PRPC_MESSAGE pRpcMessage,
6180 DWORD* pdwStubPhase);
6181 HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
6182 IEnumSTATDATA* This,
6183 ULONG celt,
6184 STATDATA* rgelt,
6185 ULONG* pceltFetched);
6186 HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
6187 IEnumSTATDATA* This,
6188 ULONG celt,
6189 STATDATA* rgelt,
6190 ULONG* pceltFetched);
6191 HRESULT CALLBACK IEnumSTATDATA_Skip_Proxy(
6192 IEnumSTATDATA* This,
6193 ULONG celt);
6194 void __RPC_STUB IEnumSTATDATA_Skip_Stub(
6195 struct IRpcStubBuffer* This,
6196 struct IRpcChannelBuffer* pRpcChannelBuffer,
6197 PRPC_MESSAGE pRpcMessage,
6198 DWORD* pdwStubPhase);
6199 HRESULT CALLBACK IEnumSTATDATA_Reset_Proxy(
6200 IEnumSTATDATA* This);
6201 void __RPC_STUB IEnumSTATDATA_Reset_Stub(
6202 struct IRpcStubBuffer* This,
6203 struct IRpcChannelBuffer* pRpcChannelBuffer,
6204 PRPC_MESSAGE pRpcMessage,
6205 DWORD* pdwStubPhase);
6206 HRESULT CALLBACK IEnumSTATDATA_Clone_Proxy(
6207 IEnumSTATDATA* This,
6208 IEnumSTATDATA** ppenum);
6209 void __RPC_STUB IEnumSTATDATA_Clone_Stub(
6210 struct IRpcStubBuffer* This,
6211 struct IRpcChannelBuffer* pRpcChannelBuffer,
6212 PRPC_MESSAGE pRpcMessage,
6213 DWORD* pdwStubPhase);
6215 #endif /* __IEnumSTATDATA_INTERFACE_DEFINED__ */
6217 typedef IAdviseSink *LPADVISESINK;
6219 typedef enum tagTYMED {
6220 TYMED_HGLOBAL = 1,
6221 TYMED_FILE = 2,
6222 TYMED_ISTREAM = 4,
6223 TYMED_ISTORAGE = 8,
6224 TYMED_GDI = 16,
6225 TYMED_MFPICT = 32,
6226 TYMED_ENHMF = 64,
6227 TYMED_NULL = 0
6228 } TYMED;
6230 typedef struct tagRemSTGMEDIUM {
6231 DWORD tymed;
6232 DWORD dwHandleType;
6233 unsigned long pData;
6234 unsigned long pUnkForRelease;
6235 unsigned long cbData;
6236 byte data[1];
6237 } RemSTGMEDIUM;
6239 typedef struct tagSTGMEDIUM {
6240 DWORD tymed;
6241 union {
6242 HBITMAP hBitmap;
6243 HMETAFILEPICT hMetaFilePict;
6244 HENHMETAFILE hEnhMetaFile;
6245 HGLOBAL hGlobal;
6246 LPOLESTR lpszFileName;
6247 IStream *pstm;
6248 IStorage *pstg;
6249 } DUMMYUNIONNAME;
6250 IUnknown *pUnkForRelease;
6251 } uSTGMEDIUM;
6253 typedef struct _GDI_OBJECT {
6254 DWORD ObjectType;
6255 union {
6256 wireHBITMAP hBitmap;
6257 wireHPALETTE hPalette;
6258 wireHGLOBAL hGeneric;
6259 } u;
6260 } GDI_OBJECT;
6262 typedef struct _userSTGMEDIUM {
6263 struct {
6264 DWORD tymed;
6265 union {
6266 wireHMETAFILEPICT hMetaFilePict;
6267 wireHENHMETAFILE hHEnhMetaFile;
6268 GDI_OBJECT *hGdiHandle;
6269 wireHGLOBAL hGlobal;
6270 LPOLESTR lpszFileName;
6271 BYTE_BLOB *pstm;
6272 BYTE_BLOB *pstg;
6273 } u;
6274 } DUMMYSTRUCTNAME;
6275 IUnknown *pUnkForRelease;
6276 } userSTGMEDIUM;
6278 typedef userSTGMEDIUM *wireSTGMEDIUM;
6280 typedef uSTGMEDIUM STGMEDIUM;
6281 unsigned long __RPC_USER STGMEDIUM_UserSize (unsigned long *, unsigned long, STGMEDIUM *);
6282 unsigned char * __RPC_USER STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, STGMEDIUM *);
6283 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, STGMEDIUM *);
6284 void __RPC_USER STGMEDIUM_UserFree (unsigned long *, STGMEDIUM *);
6286 typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
6288 typedef STGMEDIUM ASYNC_STGMEDIUM;
6289 unsigned long __RPC_USER ASYNC_STGMEDIUM_UserSize (unsigned long *, unsigned long, ASYNC_STGMEDIUM *);
6290 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, ASYNC_STGMEDIUM *);
6291 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, ASYNC_STGMEDIUM *);
6292 void __RPC_USER ASYNC_STGMEDIUM_UserFree (unsigned long *, ASYNC_STGMEDIUM *);
6294 typedef STGMEDIUM *LPSTGMEDIUM;
6296 typedef struct _userFLAG_STGMEDIUM {
6297 long ContextFlags;
6298 long fPassOwnership;
6299 userSTGMEDIUM Stgmed;
6300 } userFLAG_STGMEDIUM;
6302 typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
6304 typedef struct _FLAG_STGMEDIUM {
6305 long ContextFlags;
6306 long fPassOwnership;
6307 STGMEDIUM Stgmed;
6308 } FLAG_STGMEDIUM;
6309 unsigned long __RPC_USER FLAG_STGMEDIUM_UserSize (unsigned long *, unsigned long, FLAG_STGMEDIUM *);
6310 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, FLAG_STGMEDIUM *);
6311 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, FLAG_STGMEDIUM *);
6312 void __RPC_USER FLAG_STGMEDIUM_UserFree (unsigned long *, FLAG_STGMEDIUM *);
6314 /*****************************************************************************
6315 * IAdviseSink interface
6317 #ifndef __IAdviseSink_INTERFACE_DEFINED__
6318 #define __IAdviseSink_INTERFACE_DEFINED__
6320 DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6321 #if defined(__cplusplus) && !defined(CINTERFACE)
6322 struct IAdviseSink : public IUnknown
6324 virtual void STDMETHODCALLTYPE OnDataChange(
6325 FORMATETC* pFormatetc,
6326 STGMEDIUM* pStgmed) = 0;
6328 virtual void STDMETHODCALLTYPE OnViewChange(
6329 DWORD dwAspect,
6330 LONG lindex) = 0;
6332 virtual void STDMETHODCALLTYPE OnRename(
6333 IMoniker* pmk) = 0;
6335 virtual void STDMETHODCALLTYPE OnSave(
6336 ) = 0;
6338 virtual void STDMETHODCALLTYPE OnClose(
6339 ) = 0;
6342 #else
6343 typedef struct IAdviseSinkVtbl IAdviseSinkVtbl;
6344 struct IAdviseSink {
6345 const IAdviseSinkVtbl* lpVtbl;
6347 struct IAdviseSinkVtbl {
6348 ICOM_MSVTABLE_COMPAT_FIELDS
6350 /*** IUnknown methods ***/
6351 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6352 IAdviseSink* This,
6353 REFIID riid,
6354 void** ppvObject);
6356 ULONG (STDMETHODCALLTYPE *AddRef)(
6357 IAdviseSink* This);
6359 ULONG (STDMETHODCALLTYPE *Release)(
6360 IAdviseSink* This);
6362 /*** IAdviseSink methods ***/
6363 void (STDMETHODCALLTYPE *OnDataChange)(
6364 IAdviseSink* This,
6365 FORMATETC* pFormatetc,
6366 STGMEDIUM* pStgmed);
6368 void (STDMETHODCALLTYPE *OnViewChange)(
6369 IAdviseSink* This,
6370 DWORD dwAspect,
6371 LONG lindex);
6373 void (STDMETHODCALLTYPE *OnRename)(
6374 IAdviseSink* This,
6375 IMoniker* pmk);
6377 void (STDMETHODCALLTYPE *OnSave)(
6378 IAdviseSink* This);
6380 void (STDMETHODCALLTYPE *OnClose)(
6381 IAdviseSink* This);
6385 /*** IUnknown methods ***/
6386 #define IAdviseSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6387 #define IAdviseSink_AddRef(p) (p)->lpVtbl->AddRef(p)
6388 #define IAdviseSink_Release(p) (p)->lpVtbl->Release(p)
6389 /*** IAdviseSink methods ***/
6390 #define IAdviseSink_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
6391 #define IAdviseSink_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
6392 #define IAdviseSink_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
6393 #define IAdviseSink_OnSave(p) (p)->lpVtbl->OnSave(p)
6394 #define IAdviseSink_OnClose(p) (p)->lpVtbl->OnClose(p)
6396 #endif
6398 #define IAdviseSink_METHODS \
6399 ICOM_MSVTABLE_COMPAT_FIELDS \
6400 /*** IUnknown methods ***/ \
6401 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6402 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6403 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6404 /*** IAdviseSink methods ***/ \
6405 STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC* pFormatetc, STGMEDIUM* pStgmed) PURE; \
6406 STDMETHOD_(void,OnViewChange)(THIS_ DWORD dwAspect, LONG lindex) PURE; \
6407 STDMETHOD_(void,OnRename)(THIS_ IMoniker* pmk) PURE; \
6408 STDMETHOD_(void,OnSave)(THIS) PURE; \
6409 STDMETHOD_(void,OnClose)(THIS) PURE;
6411 HRESULT CALLBACK IAdviseSink_RemoteOnDataChange_Proxy(
6412 IAdviseSink* This,
6413 IAsyncManager** ppIAM,
6414 FORMATETC* pFormatetc,
6415 ASYNC_STGMEDIUM* pStgmed);
6416 void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
6417 struct IRpcStubBuffer* This,
6418 struct IRpcChannelBuffer* pRpcChannelBuffer,
6419 PRPC_MESSAGE pRpcMessage,
6420 DWORD* pdwStubPhase);
6421 void CALLBACK IAdviseSink_OnDataChange_Proxy(
6422 IAdviseSink* This,
6423 FORMATETC* pFormatetc,
6424 STGMEDIUM* pStgmed);
6425 HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
6426 IAdviseSink* This,
6427 IAsyncManager** ppIAM,
6428 FORMATETC* pFormatetc,
6429 ASYNC_STGMEDIUM* pStgmed);
6430 HRESULT CALLBACK IAdviseSink_RemoteOnViewChange_Proxy(
6431 IAdviseSink* This,
6432 IAsyncManager** ppIAM,
6433 DWORD dwAspect,
6434 LONG lindex);
6435 void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
6436 struct IRpcStubBuffer* This,
6437 struct IRpcChannelBuffer* pRpcChannelBuffer,
6438 PRPC_MESSAGE pRpcMessage,
6439 DWORD* pdwStubPhase);
6440 void CALLBACK IAdviseSink_OnViewChange_Proxy(
6441 IAdviseSink* This,
6442 DWORD dwAspect,
6443 LONG lindex);
6444 HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
6445 IAdviseSink* This,
6446 IAsyncManager** ppIAM,
6447 DWORD dwAspect,
6448 LONG lindex);
6449 HRESULT CALLBACK IAdviseSink_RemoteOnRename_Proxy(
6450 IAdviseSink* This,
6451 IAsyncManager** ppIAM,
6452 IMoniker* pmk);
6453 void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
6454 struct IRpcStubBuffer* This,
6455 struct IRpcChannelBuffer* pRpcChannelBuffer,
6456 PRPC_MESSAGE pRpcMessage,
6457 DWORD* pdwStubPhase);
6458 void CALLBACK IAdviseSink_OnRename_Proxy(
6459 IAdviseSink* This,
6460 IMoniker* pmk);
6461 HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
6462 IAdviseSink* This,
6463 IAsyncManager** ppIAM,
6464 IMoniker* pmk);
6465 HRESULT CALLBACK IAdviseSink_RemoteOnSave_Proxy(
6466 IAdviseSink* This,
6467 IAsyncManager** ppIAM);
6468 void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
6469 struct IRpcStubBuffer* This,
6470 struct IRpcChannelBuffer* pRpcChannelBuffer,
6471 PRPC_MESSAGE pRpcMessage,
6472 DWORD* pdwStubPhase);
6473 void CALLBACK IAdviseSink_OnSave_Proxy(
6474 IAdviseSink* This);
6475 HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
6476 IAdviseSink* This,
6477 IAsyncManager** ppIAM);
6478 HRESULT CALLBACK IAdviseSink_RemoteOnClose_Proxy(
6479 IAdviseSink* This);
6480 void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
6481 struct IRpcStubBuffer* This,
6482 struct IRpcChannelBuffer* pRpcChannelBuffer,
6483 PRPC_MESSAGE pRpcMessage,
6484 DWORD* pdwStubPhase);
6485 void CALLBACK IAdviseSink_OnClose_Proxy(
6486 IAdviseSink* This);
6487 HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
6488 IAdviseSink* This);
6490 #endif /* __IAdviseSink_INTERFACE_DEFINED__ */
6492 #ifndef __IAdviseSink2_FWD_DEFINED__
6493 #define __IAdviseSink2_FWD_DEFINED__
6494 typedef struct IAdviseSink2 IAdviseSink2;
6495 #endif
6497 typedef IAdviseSink2 *LPADVISESINK2;
6499 /*****************************************************************************
6500 * IAdviseSink2 interface
6502 #ifndef __IAdviseSink2_INTERFACE_DEFINED__
6503 #define __IAdviseSink2_INTERFACE_DEFINED__
6505 DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6506 #if defined(__cplusplus) && !defined(CINTERFACE)
6507 struct IAdviseSink2 : public IAdviseSink
6509 virtual void STDMETHODCALLTYPE OnLinkSrcChange(
6510 IMoniker* pmk) = 0;
6513 #else
6514 typedef struct IAdviseSink2Vtbl IAdviseSink2Vtbl;
6515 struct IAdviseSink2 {
6516 const IAdviseSink2Vtbl* lpVtbl;
6518 struct IAdviseSink2Vtbl {
6519 ICOM_MSVTABLE_COMPAT_FIELDS
6521 /*** IUnknown methods ***/
6522 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6523 IAdviseSink2* This,
6524 REFIID riid,
6525 void** ppvObject);
6527 ULONG (STDMETHODCALLTYPE *AddRef)(
6528 IAdviseSink2* This);
6530 ULONG (STDMETHODCALLTYPE *Release)(
6531 IAdviseSink2* This);
6533 /*** IAdviseSink methods ***/
6534 void (STDMETHODCALLTYPE *OnDataChange)(
6535 IAdviseSink2* This,
6536 FORMATETC* pFormatetc,
6537 STGMEDIUM* pStgmed);
6539 void (STDMETHODCALLTYPE *OnViewChange)(
6540 IAdviseSink2* This,
6541 DWORD dwAspect,
6542 LONG lindex);
6544 void (STDMETHODCALLTYPE *OnRename)(
6545 IAdviseSink2* This,
6546 IMoniker* pmk);
6548 void (STDMETHODCALLTYPE *OnSave)(
6549 IAdviseSink2* This);
6551 void (STDMETHODCALLTYPE *OnClose)(
6552 IAdviseSink2* This);
6554 /*** IAdviseSink2 methods ***/
6555 void (STDMETHODCALLTYPE *OnLinkSrcChange)(
6556 IAdviseSink2* This,
6557 IMoniker* pmk);
6561 /*** IUnknown methods ***/
6562 #define IAdviseSink2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6563 #define IAdviseSink2_AddRef(p) (p)->lpVtbl->AddRef(p)
6564 #define IAdviseSink2_Release(p) (p)->lpVtbl->Release(p)
6565 /*** IAdviseSink methods ***/
6566 #define IAdviseSink2_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
6567 #define IAdviseSink2_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
6568 #define IAdviseSink2_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
6569 #define IAdviseSink2_OnSave(p) (p)->lpVtbl->OnSave(p)
6570 #define IAdviseSink2_OnClose(p) (p)->lpVtbl->OnClose(p)
6571 /*** IAdviseSink2 methods ***/
6572 #define IAdviseSink2_OnLinkSrcChange(p,a) (p)->lpVtbl->OnLinkSrcChange(p,a)
6574 #endif
6576 #define IAdviseSink2_METHODS \
6577 ICOM_MSVTABLE_COMPAT_FIELDS \
6578 /*** IUnknown methods ***/ \
6579 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6580 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6581 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6582 /*** IAdviseSink methods ***/ \
6583 STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC* pFormatetc, STGMEDIUM* pStgmed) PURE; \
6584 STDMETHOD_(void,OnViewChange)(THIS_ DWORD dwAspect, LONG lindex) PURE; \
6585 STDMETHOD_(void,OnRename)(THIS_ IMoniker* pmk) PURE; \
6586 STDMETHOD_(void,OnSave)(THIS) PURE; \
6587 STDMETHOD_(void,OnClose)(THIS) PURE; \
6588 /*** IAdviseSink2 methods ***/ \
6589 STDMETHOD_(void,OnLinkSrcChange)(THIS_ IMoniker* pmk) PURE;
6591 HRESULT CALLBACK IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
6592 IAdviseSink2* This,
6593 IAsyncManager** ppIAM,
6594 IMoniker* pmk);
6595 void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
6596 struct IRpcStubBuffer* This,
6597 struct IRpcChannelBuffer* pRpcChannelBuffer,
6598 PRPC_MESSAGE pRpcMessage,
6599 DWORD* pdwStubPhase);
6600 void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
6601 IAdviseSink2* This,
6602 IMoniker* pmk);
6603 HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
6604 IAdviseSink2* This,
6605 IAsyncManager** ppIAM,
6606 IMoniker* pmk);
6608 #endif /* __IAdviseSink2_INTERFACE_DEFINED__ */
6610 #ifndef __IDataObject_FWD_DEFINED__
6611 #define __IDataObject_FWD_DEFINED__
6612 typedef struct IDataObject IDataObject;
6613 #endif
6615 typedef IDataObject *LPDATAOBJECT;
6617 typedef enum tagDATADIR {
6618 DATADIR_GET = 1,
6619 DATADIR_SET = 2
6620 } DATADIR;
6622 /*****************************************************************************
6623 * IDataObject interface
6625 #ifndef __IDataObject_INTERFACE_DEFINED__
6626 #define __IDataObject_INTERFACE_DEFINED__
6628 DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6629 #if defined(__cplusplus) && !defined(CINTERFACE)
6630 struct IDataObject : public IUnknown
6632 virtual HRESULT STDMETHODCALLTYPE GetData(
6633 FORMATETC* pformatetcIn,
6634 STGMEDIUM* pmedium) = 0;
6636 virtual HRESULT STDMETHODCALLTYPE GetDataHere(
6637 FORMATETC* pformatetc,
6638 STGMEDIUM* pmedium) = 0;
6640 virtual HRESULT STDMETHODCALLTYPE QueryGetData(
6641 FORMATETC* pformatetc) = 0;
6643 virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(
6644 FORMATETC* pformatectIn,
6645 FORMATETC* pformatetcOut) = 0;
6647 virtual HRESULT STDMETHODCALLTYPE SetData(
6648 FORMATETC* pformatetc,
6649 STGMEDIUM* pmedium,
6650 BOOL fRelease) = 0;
6652 virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(
6653 DWORD dwDirection,
6654 IEnumFORMATETC** ppenumFormatEtc) = 0;
6656 virtual HRESULT STDMETHODCALLTYPE DAdvise(
6657 FORMATETC* pformatetc,
6658 DWORD advf,
6659 IAdviseSink* pAdvSink,
6660 DWORD* pdwConnection) = 0;
6662 virtual HRESULT STDMETHODCALLTYPE DUnadvise(
6663 DWORD dwConnection) = 0;
6665 virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(
6666 IEnumSTATDATA** ppenumAdvise) = 0;
6669 #else
6670 typedef struct IDataObjectVtbl IDataObjectVtbl;
6671 struct IDataObject {
6672 const IDataObjectVtbl* lpVtbl;
6674 struct IDataObjectVtbl {
6675 ICOM_MSVTABLE_COMPAT_FIELDS
6677 /*** IUnknown methods ***/
6678 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6679 IDataObject* This,
6680 REFIID riid,
6681 void** ppvObject);
6683 ULONG (STDMETHODCALLTYPE *AddRef)(
6684 IDataObject* This);
6686 ULONG (STDMETHODCALLTYPE *Release)(
6687 IDataObject* This);
6689 /*** IDataObject methods ***/
6690 HRESULT (STDMETHODCALLTYPE *GetData)(
6691 IDataObject* This,
6692 FORMATETC* pformatetcIn,
6693 STGMEDIUM* pmedium);
6695 HRESULT (STDMETHODCALLTYPE *GetDataHere)(
6696 IDataObject* This,
6697 FORMATETC* pformatetc,
6698 STGMEDIUM* pmedium);
6700 HRESULT (STDMETHODCALLTYPE *QueryGetData)(
6701 IDataObject* This,
6702 FORMATETC* pformatetc);
6704 HRESULT (STDMETHODCALLTYPE *GetCanonicalFormatEtc)(
6705 IDataObject* This,
6706 FORMATETC* pformatectIn,
6707 FORMATETC* pformatetcOut);
6709 HRESULT (STDMETHODCALLTYPE *SetData)(
6710 IDataObject* This,
6711 FORMATETC* pformatetc,
6712 STGMEDIUM* pmedium,
6713 BOOL fRelease);
6715 HRESULT (STDMETHODCALLTYPE *EnumFormatEtc)(
6716 IDataObject* This,
6717 DWORD dwDirection,
6718 IEnumFORMATETC** ppenumFormatEtc);
6720 HRESULT (STDMETHODCALLTYPE *DAdvise)(
6721 IDataObject* This,
6722 FORMATETC* pformatetc,
6723 DWORD advf,
6724 IAdviseSink* pAdvSink,
6725 DWORD* pdwConnection);
6727 HRESULT (STDMETHODCALLTYPE *DUnadvise)(
6728 IDataObject* This,
6729 DWORD dwConnection);
6731 HRESULT (STDMETHODCALLTYPE *EnumDAdvise)(
6732 IDataObject* This,
6733 IEnumSTATDATA** ppenumAdvise);
6737 /*** IUnknown methods ***/
6738 #define IDataObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6739 #define IDataObject_AddRef(p) (p)->lpVtbl->AddRef(p)
6740 #define IDataObject_Release(p) (p)->lpVtbl->Release(p)
6741 /*** IDataObject methods ***/
6742 #define IDataObject_GetData(p,a,b) (p)->lpVtbl->GetData(p,a,b)
6743 #define IDataObject_GetDataHere(p,a,b) (p)->lpVtbl->GetDataHere(p,a,b)
6744 #define IDataObject_QueryGetData(p,a) (p)->lpVtbl->QueryGetData(p,a)
6745 #define IDataObject_GetCanonicalFormatEtc(p,a,b) (p)->lpVtbl->GetCanonicalFormatEtc(p,a,b)
6746 #define IDataObject_SetData(p,a,b,c) (p)->lpVtbl->SetData(p,a,b,c)
6747 #define IDataObject_EnumFormatEtc(p,a,b) (p)->lpVtbl->EnumFormatEtc(p,a,b)
6748 #define IDataObject_DAdvise(p,a,b,c,d) (p)->lpVtbl->DAdvise(p,a,b,c,d)
6749 #define IDataObject_DUnadvise(p,a) (p)->lpVtbl->DUnadvise(p,a)
6750 #define IDataObject_EnumDAdvise(p,a) (p)->lpVtbl->EnumDAdvise(p,a)
6752 #endif
6754 #define IDataObject_METHODS \
6755 ICOM_MSVTABLE_COMPAT_FIELDS \
6756 /*** IUnknown methods ***/ \
6757 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6758 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6759 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6760 /*** IDataObject methods ***/ \
6761 STDMETHOD_(HRESULT,GetData)(THIS_ FORMATETC* pformatetcIn, STGMEDIUM* pmedium) PURE; \
6762 STDMETHOD_(HRESULT,GetDataHere)(THIS_ FORMATETC* pformatetc, STGMEDIUM* pmedium) PURE; \
6763 STDMETHOD_(HRESULT,QueryGetData)(THIS_ FORMATETC* pformatetc) PURE; \
6764 STDMETHOD_(HRESULT,GetCanonicalFormatEtc)(THIS_ FORMATETC* pformatectIn, FORMATETC* pformatetcOut) PURE; \
6765 STDMETHOD_(HRESULT,SetData)(THIS_ FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease) PURE; \
6766 STDMETHOD_(HRESULT,EnumFormatEtc)(THIS_ DWORD dwDirection, IEnumFORMATETC** ppenumFormatEtc) PURE; \
6767 STDMETHOD_(HRESULT,DAdvise)(THIS_ FORMATETC* pformatetc, DWORD advf, IAdviseSink* pAdvSink, DWORD* pdwConnection) PURE; \
6768 STDMETHOD_(HRESULT,DUnadvise)(THIS_ DWORD dwConnection) PURE; \
6769 STDMETHOD_(HRESULT,EnumDAdvise)(THIS_ IEnumSTATDATA** ppenumAdvise) PURE;
6771 HRESULT CALLBACK IDataObject_RemoteGetData_Proxy(
6772 IDataObject* This,
6773 FORMATETC* pformatetcIn,
6774 STGMEDIUM* pRemoteMedium);
6775 void __RPC_STUB IDataObject_RemoteGetData_Stub(
6776 struct IRpcStubBuffer* This,
6777 struct IRpcChannelBuffer* pRpcChannelBuffer,
6778 PRPC_MESSAGE pRpcMessage,
6779 DWORD* pdwStubPhase);
6780 HRESULT CALLBACK IDataObject_GetData_Proxy(
6781 IDataObject* This,
6782 FORMATETC* pformatetcIn,
6783 STGMEDIUM* pmedium);
6784 HRESULT __RPC_STUB IDataObject_GetData_Stub(
6785 IDataObject* This,
6786 FORMATETC* pformatetcIn,
6787 STGMEDIUM* pRemoteMedium);
6788 HRESULT CALLBACK IDataObject_RemoteGetDataHere_Proxy(
6789 IDataObject* This,
6790 FORMATETC* pformatetc,
6791 STGMEDIUM* pRemoteMedium);
6792 void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
6793 struct IRpcStubBuffer* This,
6794 struct IRpcChannelBuffer* pRpcChannelBuffer,
6795 PRPC_MESSAGE pRpcMessage,
6796 DWORD* pdwStubPhase);
6797 HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
6798 IDataObject* This,
6799 FORMATETC* pformatetc,
6800 STGMEDIUM* pmedium);
6801 HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
6802 IDataObject* This,
6803 FORMATETC* pformatetc,
6804 STGMEDIUM* pRemoteMedium);
6805 HRESULT CALLBACK IDataObject_QueryGetData_Proxy(
6806 IDataObject* This,
6807 FORMATETC* pformatetc);
6808 void __RPC_STUB IDataObject_QueryGetData_Stub(
6809 struct IRpcStubBuffer* This,
6810 struct IRpcChannelBuffer* pRpcChannelBuffer,
6811 PRPC_MESSAGE pRpcMessage,
6812 DWORD* pdwStubPhase);
6813 HRESULT CALLBACK IDataObject_GetCanonicalFormatEtc_Proxy(
6814 IDataObject* This,
6815 FORMATETC* pformatectIn,
6816 FORMATETC* pformatetcOut);
6817 void __RPC_STUB IDataObject_GetCanonicalFormatEtc_Stub(
6818 struct IRpcStubBuffer* This,
6819 struct IRpcChannelBuffer* pRpcChannelBuffer,
6820 PRPC_MESSAGE pRpcMessage,
6821 DWORD* pdwStubPhase);
6822 HRESULT CALLBACK IDataObject_RemoteSetData_Proxy(
6823 IDataObject* This,
6824 FORMATETC* pformatetc,
6825 FLAG_STGMEDIUM* pmedium,
6826 BOOL fRelease);
6827 void __RPC_STUB IDataObject_RemoteSetData_Stub(
6828 struct IRpcStubBuffer* This,
6829 struct IRpcChannelBuffer* pRpcChannelBuffer,
6830 PRPC_MESSAGE pRpcMessage,
6831 DWORD* pdwStubPhase);
6832 HRESULT CALLBACK IDataObject_SetData_Proxy(
6833 IDataObject* This,
6834 FORMATETC* pformatetc,
6835 STGMEDIUM* pmedium,
6836 BOOL fRelease);
6837 HRESULT __RPC_STUB IDataObject_SetData_Stub(
6838 IDataObject* This,
6839 FORMATETC* pformatetc,
6840 FLAG_STGMEDIUM* pmedium,
6841 BOOL fRelease);
6842 HRESULT CALLBACK IDataObject_EnumFormatEtc_Proxy(
6843 IDataObject* This,
6844 DWORD dwDirection,
6845 IEnumFORMATETC** ppenumFormatEtc);
6846 void __RPC_STUB IDataObject_EnumFormatEtc_Stub(
6847 struct IRpcStubBuffer* This,
6848 struct IRpcChannelBuffer* pRpcChannelBuffer,
6849 PRPC_MESSAGE pRpcMessage,
6850 DWORD* pdwStubPhase);
6851 HRESULT CALLBACK IDataObject_DAdvise_Proxy(
6852 IDataObject* This,
6853 FORMATETC* pformatetc,
6854 DWORD advf,
6855 IAdviseSink* pAdvSink,
6856 DWORD* pdwConnection);
6857 void __RPC_STUB IDataObject_DAdvise_Stub(
6858 struct IRpcStubBuffer* This,
6859 struct IRpcChannelBuffer* pRpcChannelBuffer,
6860 PRPC_MESSAGE pRpcMessage,
6861 DWORD* pdwStubPhase);
6862 HRESULT CALLBACK IDataObject_DUnadvise_Proxy(
6863 IDataObject* This,
6864 DWORD dwConnection);
6865 void __RPC_STUB IDataObject_DUnadvise_Stub(
6866 struct IRpcStubBuffer* This,
6867 struct IRpcChannelBuffer* pRpcChannelBuffer,
6868 PRPC_MESSAGE pRpcMessage,
6869 DWORD* pdwStubPhase);
6870 HRESULT CALLBACK IDataObject_EnumDAdvise_Proxy(
6871 IDataObject* This,
6872 IEnumSTATDATA** ppenumAdvise);
6873 void __RPC_STUB IDataObject_EnumDAdvise_Stub(
6874 struct IRpcStubBuffer* This,
6875 struct IRpcChannelBuffer* pRpcChannelBuffer,
6876 PRPC_MESSAGE pRpcMessage,
6877 DWORD* pdwStubPhase);
6879 #endif /* __IDataObject_INTERFACE_DEFINED__ */
6881 #ifndef __IDataAdviseHolder_FWD_DEFINED__
6882 #define __IDataAdviseHolder_FWD_DEFINED__
6883 typedef struct IDataAdviseHolder IDataAdviseHolder;
6884 #endif
6886 typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
6888 /*****************************************************************************
6889 * IDataAdviseHolder interface
6891 #ifndef __IDataAdviseHolder_INTERFACE_DEFINED__
6892 #define __IDataAdviseHolder_INTERFACE_DEFINED__
6894 DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6895 #if defined(__cplusplus) && !defined(CINTERFACE)
6896 struct IDataAdviseHolder : public IUnknown
6898 virtual HRESULT STDMETHODCALLTYPE Advise(
6899 IDataObject* pDataObject,
6900 FORMATETC* pFetc,
6901 DWORD advf,
6902 IAdviseSink* pAdvise,
6903 DWORD* pdwConnection) = 0;
6905 virtual HRESULT STDMETHODCALLTYPE Unadvise(
6906 DWORD dwConnection) = 0;
6908 virtual HRESULT STDMETHODCALLTYPE EnumAdvise(
6909 IEnumSTATDATA** ppenumAdvise) = 0;
6911 virtual HRESULT STDMETHODCALLTYPE SendOnDataChange(
6912 IDataObject* pDataObject,
6913 DWORD dwReserved,
6914 DWORD advf) = 0;
6917 #else
6918 typedef struct IDataAdviseHolderVtbl IDataAdviseHolderVtbl;
6919 struct IDataAdviseHolder {
6920 const IDataAdviseHolderVtbl* lpVtbl;
6922 struct IDataAdviseHolderVtbl {
6923 ICOM_MSVTABLE_COMPAT_FIELDS
6925 /*** IUnknown methods ***/
6926 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6927 IDataAdviseHolder* This,
6928 REFIID riid,
6929 void** ppvObject);
6931 ULONG (STDMETHODCALLTYPE *AddRef)(
6932 IDataAdviseHolder* This);
6934 ULONG (STDMETHODCALLTYPE *Release)(
6935 IDataAdviseHolder* This);
6937 /*** IDataAdviseHolder methods ***/
6938 HRESULT (STDMETHODCALLTYPE *Advise)(
6939 IDataAdviseHolder* This,
6940 IDataObject* pDataObject,
6941 FORMATETC* pFetc,
6942 DWORD advf,
6943 IAdviseSink* pAdvise,
6944 DWORD* pdwConnection);
6946 HRESULT (STDMETHODCALLTYPE *Unadvise)(
6947 IDataAdviseHolder* This,
6948 DWORD dwConnection);
6950 HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
6951 IDataAdviseHolder* This,
6952 IEnumSTATDATA** ppenumAdvise);
6954 HRESULT (STDMETHODCALLTYPE *SendOnDataChange)(
6955 IDataAdviseHolder* This,
6956 IDataObject* pDataObject,
6957 DWORD dwReserved,
6958 DWORD advf);
6962 /*** IUnknown methods ***/
6963 #define IDataAdviseHolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6964 #define IDataAdviseHolder_AddRef(p) (p)->lpVtbl->AddRef(p)
6965 #define IDataAdviseHolder_Release(p) (p)->lpVtbl->Release(p)
6966 /*** IDataAdviseHolder methods ***/
6967 #define IDataAdviseHolder_Advise(p,a,b,c,d,e) (p)->lpVtbl->Advise(p,a,b,c,d,e)
6968 #define IDataAdviseHolder_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
6969 #define IDataAdviseHolder_EnumAdvise(p,a) (p)->lpVtbl->EnumAdvise(p,a)
6970 #define IDataAdviseHolder_SendOnDataChange(p,a,b,c) (p)->lpVtbl->SendOnDataChange(p,a,b,c)
6972 #endif
6974 #define IDataAdviseHolder_METHODS \
6975 ICOM_MSVTABLE_COMPAT_FIELDS \
6976 /*** IUnknown methods ***/ \
6977 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6978 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6979 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6980 /*** IDataAdviseHolder methods ***/ \
6981 STDMETHOD_(HRESULT,Advise)(THIS_ IDataObject* pDataObject, FORMATETC* pFetc, DWORD advf, IAdviseSink* pAdvise, DWORD* pdwConnection) PURE; \
6982 STDMETHOD_(HRESULT,Unadvise)(THIS_ DWORD dwConnection) PURE; \
6983 STDMETHOD_(HRESULT,EnumAdvise)(THIS_ IEnumSTATDATA** ppenumAdvise) PURE; \
6984 STDMETHOD_(HRESULT,SendOnDataChange)(THIS_ IDataObject* pDataObject, DWORD dwReserved, DWORD advf) PURE;
6986 HRESULT CALLBACK IDataAdviseHolder_Advise_Proxy(
6987 IDataAdviseHolder* This,
6988 IDataObject* pDataObject,
6989 FORMATETC* pFetc,
6990 DWORD advf,
6991 IAdviseSink* pAdvise,
6992 DWORD* pdwConnection);
6993 void __RPC_STUB IDataAdviseHolder_Advise_Stub(
6994 struct IRpcStubBuffer* This,
6995 struct IRpcChannelBuffer* pRpcChannelBuffer,
6996 PRPC_MESSAGE pRpcMessage,
6997 DWORD* pdwStubPhase);
6998 HRESULT CALLBACK IDataAdviseHolder_Unadvise_Proxy(
6999 IDataAdviseHolder* This,
7000 DWORD dwConnection);
7001 void __RPC_STUB IDataAdviseHolder_Unadvise_Stub(
7002 struct IRpcStubBuffer* This,
7003 struct IRpcChannelBuffer* pRpcChannelBuffer,
7004 PRPC_MESSAGE pRpcMessage,
7005 DWORD* pdwStubPhase);
7006 HRESULT CALLBACK IDataAdviseHolder_EnumAdvise_Proxy(
7007 IDataAdviseHolder* This,
7008 IEnumSTATDATA** ppenumAdvise);
7009 void __RPC_STUB IDataAdviseHolder_EnumAdvise_Stub(
7010 struct IRpcStubBuffer* This,
7011 struct IRpcChannelBuffer* pRpcChannelBuffer,
7012 PRPC_MESSAGE pRpcMessage,
7013 DWORD* pdwStubPhase);
7014 HRESULT CALLBACK IDataAdviseHolder_SendOnDataChange_Proxy(
7015 IDataAdviseHolder* This,
7016 IDataObject* pDataObject,
7017 DWORD dwReserved,
7018 DWORD advf);
7019 void __RPC_STUB IDataAdviseHolder_SendOnDataChange_Stub(
7020 struct IRpcStubBuffer* This,
7021 struct IRpcChannelBuffer* pRpcChannelBuffer,
7022 PRPC_MESSAGE pRpcMessage,
7023 DWORD* pdwStubPhase);
7025 #endif /* __IDataAdviseHolder_INTERFACE_DEFINED__ */
7027 #ifndef __IMessageFilter_FWD_DEFINED__
7028 #define __IMessageFilter_FWD_DEFINED__
7029 typedef struct IMessageFilter IMessageFilter;
7030 #endif
7032 typedef IMessageFilter *LPMESSAGEFILTER;
7034 typedef enum tagCALLTYPE {
7035 CALLTYPE_TOPLEVEL = 1,
7036 CALLTYPE_NESTED = 2,
7037 CALLTYPE_ASYNC = 3,
7038 CALLTYPE_TOPLEVEL_CALLPENDING = 4,
7039 CALLTYPE_ASYNC_CALLPENDING = 5
7040 } CALLTYPE;
7042 typedef enum tagSERVERCALL {
7043 SERVERCALL_ISHANDLED = 0,
7044 SERVERCALL_REJECTED = 1,
7045 SERVERCALL_RETRYLATER = 2
7046 } SERVERCALL;
7048 typedef enum tagPENDINGTYPE {
7049 PENDINGTYPE_TOPLEVEL = 1,
7050 PENDINGTYPE_NESTED = 2
7051 } PENDINGTYPE;
7053 typedef enum tagPENDINGMSG {
7054 PENDINGMSG_CANCELCALL = 0,
7055 PENDINGMSG_WAITNOPROCESS = 1,
7056 PENDINGMSG_WAITDEFPROCESS = 2
7057 } PENDINGMSG;
7059 typedef struct tagINTERFACEINFO {
7060 IUnknown *pUnk;
7061 IID iid;
7062 WORD wMethod;
7063 } INTERFACEINFO, *LPINTERFACEINFO;
7065 /*****************************************************************************
7066 * IMessageFilter interface
7068 #ifndef __IMessageFilter_INTERFACE_DEFINED__
7069 #define __IMessageFilter_INTERFACE_DEFINED__
7071 DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7072 #if defined(__cplusplus) && !defined(CINTERFACE)
7073 struct IMessageFilter : public IUnknown
7075 virtual DWORD STDMETHODCALLTYPE HandleInComingCall(
7076 DWORD dwCallType,
7077 HTASK htaskCaller,
7078 DWORD dwTickCount,
7079 LPINTERFACEINFO lpInterfaceInfo) = 0;
7081 virtual DWORD STDMETHODCALLTYPE RetryRejectedCall(
7082 HTASK htaskCallee,
7083 DWORD dwTickCount,
7084 DWORD dwRejectType) = 0;
7086 virtual DWORD STDMETHODCALLTYPE MessagePending(
7087 HTASK htaskCallee,
7088 DWORD dwTickCount,
7089 DWORD dwPendingType) = 0;
7092 #else
7093 typedef struct IMessageFilterVtbl IMessageFilterVtbl;
7094 struct IMessageFilter {
7095 const IMessageFilterVtbl* lpVtbl;
7097 struct IMessageFilterVtbl {
7098 ICOM_MSVTABLE_COMPAT_FIELDS
7100 /*** IUnknown methods ***/
7101 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7102 IMessageFilter* This,
7103 REFIID riid,
7104 void** ppvObject);
7106 ULONG (STDMETHODCALLTYPE *AddRef)(
7107 IMessageFilter* This);
7109 ULONG (STDMETHODCALLTYPE *Release)(
7110 IMessageFilter* This);
7112 /*** IMessageFilter methods ***/
7113 DWORD (STDMETHODCALLTYPE *HandleInComingCall)(
7114 IMessageFilter* This,
7115 DWORD dwCallType,
7116 HTASK htaskCaller,
7117 DWORD dwTickCount,
7118 LPINTERFACEINFO lpInterfaceInfo);
7120 DWORD (STDMETHODCALLTYPE *RetryRejectedCall)(
7121 IMessageFilter* This,
7122 HTASK htaskCallee,
7123 DWORD dwTickCount,
7124 DWORD dwRejectType);
7126 DWORD (STDMETHODCALLTYPE *MessagePending)(
7127 IMessageFilter* This,
7128 HTASK htaskCallee,
7129 DWORD dwTickCount,
7130 DWORD dwPendingType);
7134 /*** IUnknown methods ***/
7135 #define IMessageFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7136 #define IMessageFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
7137 #define IMessageFilter_Release(p) (p)->lpVtbl->Release(p)
7138 /*** IMessageFilter methods ***/
7139 #define IMessageFilter_HandleInComingCall(p,a,b,c,d) (p)->lpVtbl->HandleInComingCall(p,a,b,c,d)
7140 #define IMessageFilter_RetryRejectedCall(p,a,b,c) (p)->lpVtbl->RetryRejectedCall(p,a,b,c)
7141 #define IMessageFilter_MessagePending(p,a,b,c) (p)->lpVtbl->MessagePending(p,a,b,c)
7143 #endif
7145 #define IMessageFilter_METHODS \
7146 ICOM_MSVTABLE_COMPAT_FIELDS \
7147 /*** IUnknown methods ***/ \
7148 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7149 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7150 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7151 /*** IMessageFilter methods ***/ \
7152 STDMETHOD_(DWORD,HandleInComingCall)(THIS_ DWORD dwCallType, HTASK htaskCaller, DWORD dwTickCount, LPINTERFACEINFO lpInterfaceInfo) PURE; \
7153 STDMETHOD_(DWORD,RetryRejectedCall)(THIS_ HTASK htaskCallee, DWORD dwTickCount, DWORD dwRejectType) PURE; \
7154 STDMETHOD_(DWORD,MessagePending)(THIS_ HTASK htaskCallee, DWORD dwTickCount, DWORD dwPendingType) PURE;
7156 DWORD CALLBACK IMessageFilter_HandleInComingCall_Proxy(
7157 IMessageFilter* This,
7158 DWORD dwCallType,
7159 HTASK htaskCaller,
7160 DWORD dwTickCount,
7161 LPINTERFACEINFO lpInterfaceInfo);
7162 void __RPC_STUB IMessageFilter_HandleInComingCall_Stub(
7163 struct IRpcStubBuffer* This,
7164 struct IRpcChannelBuffer* pRpcChannelBuffer,
7165 PRPC_MESSAGE pRpcMessage,
7166 DWORD* pdwStubPhase);
7167 DWORD CALLBACK IMessageFilter_RetryRejectedCall_Proxy(
7168 IMessageFilter* This,
7169 HTASK htaskCallee,
7170 DWORD dwTickCount,
7171 DWORD dwRejectType);
7172 void __RPC_STUB IMessageFilter_RetryRejectedCall_Stub(
7173 struct IRpcStubBuffer* This,
7174 struct IRpcChannelBuffer* pRpcChannelBuffer,
7175 PRPC_MESSAGE pRpcMessage,
7176 DWORD* pdwStubPhase);
7177 DWORD CALLBACK IMessageFilter_MessagePending_Proxy(
7178 IMessageFilter* This,
7179 HTASK htaskCallee,
7180 DWORD dwTickCount,
7181 DWORD dwPendingType);
7182 void __RPC_STUB IMessageFilter_MessagePending_Stub(
7183 struct IRpcStubBuffer* This,
7184 struct IRpcChannelBuffer* pRpcChannelBuffer,
7185 PRPC_MESSAGE pRpcMessage,
7186 DWORD* pdwStubPhase);
7188 #endif /* __IMessageFilter_INTERFACE_DEFINED__ */
7190 #ifndef __IRpcChannelBuffer_FWD_DEFINED__
7191 #define __IRpcChannelBuffer_FWD_DEFINED__
7192 typedef struct IRpcChannelBuffer IRpcChannelBuffer;
7193 #endif
7195 typedef IRpcChannelBuffer *LPRPCCHANNELBUFFER;
7197 typedef unsigned long RPCOLEDATAREP;
7199 typedef struct tagRPCOLEMESSAGE {
7200 void *reserved1;
7201 RPCOLEDATAREP dataRepresentation;
7202 void *Buffer;
7203 ULONG cbBuffer;
7204 ULONG iMethod;
7205 void *reserved2[5];
7206 ULONG rpcFlags;
7207 } RPCOLEMESSAGE;
7209 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
7211 /*****************************************************************************
7212 * IRpcChannelBuffer interface
7214 #ifndef __IRpcChannelBuffer_INTERFACE_DEFINED__
7215 #define __IRpcChannelBuffer_INTERFACE_DEFINED__
7217 DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7218 #if defined(__cplusplus) && !defined(CINTERFACE)
7219 struct IRpcChannelBuffer : public IUnknown
7221 virtual HRESULT STDMETHODCALLTYPE GetBuffer(
7222 RPCOLEMESSAGE* pMessage,
7223 REFIID riid) = 0;
7225 virtual HRESULT STDMETHODCALLTYPE SendReceive(
7226 RPCOLEMESSAGE* pMessage,
7227 ULONG* pStatus) = 0;
7229 virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
7230 RPCOLEMESSAGE* pMessage) = 0;
7232 virtual HRESULT STDMETHODCALLTYPE GetDestCtx(
7233 DWORD* pdwDestContext,
7234 void** ppvDestContext) = 0;
7236 virtual HRESULT STDMETHODCALLTYPE IsConnected(
7237 ) = 0;
7240 #else
7241 typedef struct IRpcChannelBufferVtbl IRpcChannelBufferVtbl;
7242 struct IRpcChannelBuffer {
7243 const IRpcChannelBufferVtbl* lpVtbl;
7245 struct IRpcChannelBufferVtbl {
7246 ICOM_MSVTABLE_COMPAT_FIELDS
7248 /*** IUnknown methods ***/
7249 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7250 IRpcChannelBuffer* This,
7251 REFIID riid,
7252 void** ppvObject);
7254 ULONG (STDMETHODCALLTYPE *AddRef)(
7255 IRpcChannelBuffer* This);
7257 ULONG (STDMETHODCALLTYPE *Release)(
7258 IRpcChannelBuffer* This);
7260 /*** IRpcChannelBuffer methods ***/
7261 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
7262 IRpcChannelBuffer* This,
7263 RPCOLEMESSAGE* pMessage,
7264 REFIID riid);
7266 HRESULT (STDMETHODCALLTYPE *SendReceive)(
7267 IRpcChannelBuffer* This,
7268 RPCOLEMESSAGE* pMessage,
7269 ULONG* pStatus);
7271 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
7272 IRpcChannelBuffer* This,
7273 RPCOLEMESSAGE* pMessage);
7275 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
7276 IRpcChannelBuffer* This,
7277 DWORD* pdwDestContext,
7278 void** ppvDestContext);
7280 HRESULT (STDMETHODCALLTYPE *IsConnected)(
7281 IRpcChannelBuffer* This);
7285 /*** IUnknown methods ***/
7286 #define IRpcChannelBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7287 #define IRpcChannelBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7288 #define IRpcChannelBuffer_Release(p) (p)->lpVtbl->Release(p)
7289 /*** IRpcChannelBuffer methods ***/
7290 #define IRpcChannelBuffer_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
7291 #define IRpcChannelBuffer_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
7292 #define IRpcChannelBuffer_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
7293 #define IRpcChannelBuffer_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
7294 #define IRpcChannelBuffer_IsConnected(p) (p)->lpVtbl->IsConnected(p)
7296 #endif
7298 #define IRpcChannelBuffer_METHODS \
7299 ICOM_MSVTABLE_COMPAT_FIELDS \
7300 /*** IUnknown methods ***/ \
7301 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7302 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7303 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7304 /*** IRpcChannelBuffer methods ***/ \
7305 STDMETHOD_(HRESULT,GetBuffer)(THIS_ RPCOLEMESSAGE* pMessage, REFIID riid) PURE; \
7306 STDMETHOD_(HRESULT,SendReceive)(THIS_ RPCOLEMESSAGE* pMessage, ULONG* pStatus) PURE; \
7307 STDMETHOD_(HRESULT,FreeBuffer)(THIS_ RPCOLEMESSAGE* pMessage) PURE; \
7308 STDMETHOD_(HRESULT,GetDestCtx)(THIS_ DWORD* pdwDestContext, void** ppvDestContext) PURE; \
7309 STDMETHOD_(HRESULT,IsConnected)(THIS) PURE;
7311 HRESULT CALLBACK IRpcChannelBuffer_GetBuffer_Proxy(
7312 IRpcChannelBuffer* This,
7313 RPCOLEMESSAGE* pMessage,
7314 REFIID riid);
7315 void __RPC_STUB IRpcChannelBuffer_GetBuffer_Stub(
7316 struct IRpcStubBuffer* This,
7317 struct IRpcChannelBuffer* pRpcChannelBuffer,
7318 PRPC_MESSAGE pRpcMessage,
7319 DWORD* pdwStubPhase);
7320 HRESULT CALLBACK IRpcChannelBuffer_SendReceive_Proxy(
7321 IRpcChannelBuffer* This,
7322 RPCOLEMESSAGE* pMessage,
7323 ULONG* pStatus);
7324 void __RPC_STUB IRpcChannelBuffer_SendReceive_Stub(
7325 struct IRpcStubBuffer* This,
7326 struct IRpcChannelBuffer* pRpcChannelBuffer,
7327 PRPC_MESSAGE pRpcMessage,
7328 DWORD* pdwStubPhase);
7329 HRESULT CALLBACK IRpcChannelBuffer_FreeBuffer_Proxy(
7330 IRpcChannelBuffer* This,
7331 RPCOLEMESSAGE* pMessage);
7332 void __RPC_STUB IRpcChannelBuffer_FreeBuffer_Stub(
7333 struct IRpcStubBuffer* This,
7334 struct IRpcChannelBuffer* pRpcChannelBuffer,
7335 PRPC_MESSAGE pRpcMessage,
7336 DWORD* pdwStubPhase);
7337 HRESULT CALLBACK IRpcChannelBuffer_GetDestCtx_Proxy(
7338 IRpcChannelBuffer* This,
7339 DWORD* pdwDestContext,
7340 void** ppvDestContext);
7341 void __RPC_STUB IRpcChannelBuffer_GetDestCtx_Stub(
7342 struct IRpcStubBuffer* This,
7343 struct IRpcChannelBuffer* pRpcChannelBuffer,
7344 PRPC_MESSAGE pRpcMessage,
7345 DWORD* pdwStubPhase);
7346 HRESULT CALLBACK IRpcChannelBuffer_IsConnected_Proxy(
7347 IRpcChannelBuffer* This);
7348 void __RPC_STUB IRpcChannelBuffer_IsConnected_Stub(
7349 struct IRpcStubBuffer* This,
7350 struct IRpcChannelBuffer* pRpcChannelBuffer,
7351 PRPC_MESSAGE pRpcMessage,
7352 DWORD* pdwStubPhase);
7354 #endif /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */
7356 #ifndef __IRpcChannelBuffer2_FWD_DEFINED__
7357 #define __IRpcChannelBuffer2_FWD_DEFINED__
7358 typedef struct IRpcChannelBuffer2 IRpcChannelBuffer2;
7359 #endif
7361 typedef IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2;
7363 /*****************************************************************************
7364 * IRpcChannelBuffer2 interface
7366 #ifndef __IRpcChannelBuffer2_INTERFACE_DEFINED__
7367 #define __IRpcChannelBuffer2_INTERFACE_DEFINED__
7369 DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
7370 #if defined(__cplusplus) && !defined(CINTERFACE)
7371 struct IRpcChannelBuffer2 : public IRpcChannelBuffer
7373 virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion(
7374 DWORD* pdwVersion) = 0;
7377 #else
7378 typedef struct IRpcChannelBuffer2Vtbl IRpcChannelBuffer2Vtbl;
7379 struct IRpcChannelBuffer2 {
7380 const IRpcChannelBuffer2Vtbl* lpVtbl;
7382 struct IRpcChannelBuffer2Vtbl {
7383 ICOM_MSVTABLE_COMPAT_FIELDS
7385 /*** IUnknown methods ***/
7386 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7387 IRpcChannelBuffer2* This,
7388 REFIID riid,
7389 void** ppvObject);
7391 ULONG (STDMETHODCALLTYPE *AddRef)(
7392 IRpcChannelBuffer2* This);
7394 ULONG (STDMETHODCALLTYPE *Release)(
7395 IRpcChannelBuffer2* This);
7397 /*** IRpcChannelBuffer methods ***/
7398 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
7399 IRpcChannelBuffer2* This,
7400 RPCOLEMESSAGE* pMessage,
7401 REFIID riid);
7403 HRESULT (STDMETHODCALLTYPE *SendReceive)(
7404 IRpcChannelBuffer2* This,
7405 RPCOLEMESSAGE* pMessage,
7406 ULONG* pStatus);
7408 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
7409 IRpcChannelBuffer2* This,
7410 RPCOLEMESSAGE* pMessage);
7412 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
7413 IRpcChannelBuffer2* This,
7414 DWORD* pdwDestContext,
7415 void** ppvDestContext);
7417 HRESULT (STDMETHODCALLTYPE *IsConnected)(
7418 IRpcChannelBuffer2* This);
7420 /*** IRpcChannelBuffer2 methods ***/
7421 HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
7422 IRpcChannelBuffer2* This,
7423 DWORD* pdwVersion);
7427 /*** IUnknown methods ***/
7428 #define IRpcChannelBuffer2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7429 #define IRpcChannelBuffer2_AddRef(p) (p)->lpVtbl->AddRef(p)
7430 #define IRpcChannelBuffer2_Release(p) (p)->lpVtbl->Release(p)
7431 /*** IRpcChannelBuffer methods ***/
7432 #define IRpcChannelBuffer2_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
7433 #define IRpcChannelBuffer2_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
7434 #define IRpcChannelBuffer2_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
7435 #define IRpcChannelBuffer2_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
7436 #define IRpcChannelBuffer2_IsConnected(p) (p)->lpVtbl->IsConnected(p)
7437 /*** IRpcChannelBuffer2 methods ***/
7438 #define IRpcChannelBuffer2_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
7440 #endif
7442 #define IRpcChannelBuffer2_METHODS \
7443 ICOM_MSVTABLE_COMPAT_FIELDS \
7444 /*** IUnknown methods ***/ \
7445 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7446 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7447 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7448 /*** IRpcChannelBuffer methods ***/ \
7449 STDMETHOD_(HRESULT,GetBuffer)(THIS_ RPCOLEMESSAGE* pMessage, REFIID riid) PURE; \
7450 STDMETHOD_(HRESULT,SendReceive)(THIS_ RPCOLEMESSAGE* pMessage, ULONG* pStatus) PURE; \
7451 STDMETHOD_(HRESULT,FreeBuffer)(THIS_ RPCOLEMESSAGE* pMessage) PURE; \
7452 STDMETHOD_(HRESULT,GetDestCtx)(THIS_ DWORD* pdwDestContext, void** ppvDestContext) PURE; \
7453 STDMETHOD_(HRESULT,IsConnected)(THIS) PURE; \
7454 /*** IRpcChannelBuffer2 methods ***/ \
7455 STDMETHOD_(HRESULT,GetProtocolVersion)(THIS_ DWORD* pdwVersion) PURE;
7457 HRESULT CALLBACK IRpcChannelBuffer2_GetProtocolVersion_Proxy(
7458 IRpcChannelBuffer2* This,
7459 DWORD* pdwVersion);
7460 void __RPC_STUB IRpcChannelBuffer2_GetProtocolVersion_Stub(
7461 struct IRpcStubBuffer* This,
7462 struct IRpcChannelBuffer* pRpcChannelBuffer,
7463 PRPC_MESSAGE pRpcMessage,
7464 DWORD* pdwStubPhase);
7466 #endif /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */
7468 #ifndef __IRpcChannelBuffer3_FWD_DEFINED__
7469 #define __IRpcChannelBuffer3_FWD_DEFINED__
7470 typedef struct IRpcChannelBuffer3 IRpcChannelBuffer3;
7471 #endif
7473 typedef IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3;
7475 /*****************************************************************************
7476 * IRpcChannelBuffer3 interface
7478 #ifndef __IRpcChannelBuffer3_INTERFACE_DEFINED__
7479 #define __IRpcChannelBuffer3_INTERFACE_DEFINED__
7481 DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
7482 #if defined(__cplusplus) && !defined(CINTERFACE)
7483 struct IRpcChannelBuffer3 : public IRpcChannelBuffer2
7485 virtual HRESULT STDMETHODCALLTYPE Send(
7486 RPCOLEMESSAGE* pMsg,
7487 ULONG* pulStatus) = 0;
7489 virtual HRESULT STDMETHODCALLTYPE Receive(
7490 RPCOLEMESSAGE* pMsg,
7491 ULONG ulSize,
7492 ULONG* pulStatus) = 0;
7494 virtual HRESULT STDMETHODCALLTYPE Cancel(
7495 RPCOLEMESSAGE* pMsg) = 0;
7497 virtual HRESULT STDMETHODCALLTYPE GetCallContext(
7498 RPCOLEMESSAGE* pMsg,
7499 REFIID riid,
7500 void** pInterface) = 0;
7502 virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
7503 RPCOLEMESSAGE* pMsg,
7504 DWORD* pdwDestContext,
7505 void** ppvDestContext) = 0;
7507 virtual HRESULT STDMETHODCALLTYPE GetState(
7508 RPCOLEMESSAGE* pMsg,
7509 DWORD* pState) = 0;
7511 virtual HRESULT STDMETHODCALLTYPE RegisterAsync(
7512 RPCOLEMESSAGE* pMsg,
7513 IAsyncManager* pAsyncMgr) = 0;
7516 #else
7517 typedef struct IRpcChannelBuffer3Vtbl IRpcChannelBuffer3Vtbl;
7518 struct IRpcChannelBuffer3 {
7519 const IRpcChannelBuffer3Vtbl* lpVtbl;
7521 struct IRpcChannelBuffer3Vtbl {
7522 ICOM_MSVTABLE_COMPAT_FIELDS
7524 /*** IUnknown methods ***/
7525 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7526 IRpcChannelBuffer3* This,
7527 REFIID riid,
7528 void** ppvObject);
7530 ULONG (STDMETHODCALLTYPE *AddRef)(
7531 IRpcChannelBuffer3* This);
7533 ULONG (STDMETHODCALLTYPE *Release)(
7534 IRpcChannelBuffer3* This);
7536 /*** IRpcChannelBuffer methods ***/
7537 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
7538 IRpcChannelBuffer3* This,
7539 RPCOLEMESSAGE* pMessage,
7540 REFIID riid);
7542 HRESULT (STDMETHODCALLTYPE *SendReceive)(
7543 IRpcChannelBuffer3* This,
7544 RPCOLEMESSAGE* pMessage,
7545 ULONG* pStatus);
7547 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
7548 IRpcChannelBuffer3* This,
7549 RPCOLEMESSAGE* pMessage);
7551 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
7552 IRpcChannelBuffer3* This,
7553 DWORD* pdwDestContext,
7554 void** ppvDestContext);
7556 HRESULT (STDMETHODCALLTYPE *IsConnected)(
7557 IRpcChannelBuffer3* This);
7559 /*** IRpcChannelBuffer2 methods ***/
7560 HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
7561 IRpcChannelBuffer3* This,
7562 DWORD* pdwVersion);
7564 /*** IRpcChannelBuffer3 methods ***/
7565 HRESULT (STDMETHODCALLTYPE *Send)(
7566 IRpcChannelBuffer3* This,
7567 RPCOLEMESSAGE* pMsg,
7568 ULONG* pulStatus);
7570 HRESULT (STDMETHODCALLTYPE *Receive)(
7571 IRpcChannelBuffer3* This,
7572 RPCOLEMESSAGE* pMsg,
7573 ULONG ulSize,
7574 ULONG* pulStatus);
7576 HRESULT (STDMETHODCALLTYPE *Cancel)(
7577 IRpcChannelBuffer3* This,
7578 RPCOLEMESSAGE* pMsg);
7580 HRESULT (STDMETHODCALLTYPE *GetCallContext)(
7581 IRpcChannelBuffer3* This,
7582 RPCOLEMESSAGE* pMsg,
7583 REFIID riid,
7584 void** pInterface);
7586 HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
7587 IRpcChannelBuffer3* This,
7588 RPCOLEMESSAGE* pMsg,
7589 DWORD* pdwDestContext,
7590 void** ppvDestContext);
7592 HRESULT (STDMETHODCALLTYPE *GetState)(
7593 IRpcChannelBuffer3* This,
7594 RPCOLEMESSAGE* pMsg,
7595 DWORD* pState);
7597 HRESULT (STDMETHODCALLTYPE *RegisterAsync)(
7598 IRpcChannelBuffer3* This,
7599 RPCOLEMESSAGE* pMsg,
7600 IAsyncManager* pAsyncMgr);
7604 /*** IUnknown methods ***/
7605 #define IRpcChannelBuffer3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7606 #define IRpcChannelBuffer3_AddRef(p) (p)->lpVtbl->AddRef(p)
7607 #define IRpcChannelBuffer3_Release(p) (p)->lpVtbl->Release(p)
7608 /*** IRpcChannelBuffer methods ***/
7609 #define IRpcChannelBuffer3_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
7610 #define IRpcChannelBuffer3_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
7611 #define IRpcChannelBuffer3_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
7612 #define IRpcChannelBuffer3_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
7613 #define IRpcChannelBuffer3_IsConnected(p) (p)->lpVtbl->IsConnected(p)
7614 /*** IRpcChannelBuffer2 methods ***/
7615 #define IRpcChannelBuffer3_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
7616 /*** IRpcChannelBuffer3 methods ***/
7617 #define IRpcChannelBuffer3_Send(p,a,b) (p)->lpVtbl->Send(p,a,b)
7618 #define IRpcChannelBuffer3_Receive(p,a,b,c) (p)->lpVtbl->Receive(p,a,b,c)
7619 #define IRpcChannelBuffer3_Cancel(p,a) (p)->lpVtbl->Cancel(p,a)
7620 #define IRpcChannelBuffer3_GetCallContext(p,a,b,c) (p)->lpVtbl->GetCallContext(p,a,b,c)
7621 #define IRpcChannelBuffer3_GetDestCtxEx(p,a,b,c) (p)->lpVtbl->GetDestCtxEx(p,a,b,c)
7622 #define IRpcChannelBuffer3_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
7623 #define IRpcChannelBuffer3_RegisterAsync(p,a,b) (p)->lpVtbl->RegisterAsync(p,a,b)
7625 #endif
7627 #define IRpcChannelBuffer3_METHODS \
7628 ICOM_MSVTABLE_COMPAT_FIELDS \
7629 /*** IUnknown methods ***/ \
7630 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7631 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7632 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7633 /*** IRpcChannelBuffer methods ***/ \
7634 STDMETHOD_(HRESULT,GetBuffer)(THIS_ RPCOLEMESSAGE* pMessage, REFIID riid) PURE; \
7635 STDMETHOD_(HRESULT,SendReceive)(THIS_ RPCOLEMESSAGE* pMessage, ULONG* pStatus) PURE; \
7636 STDMETHOD_(HRESULT,FreeBuffer)(THIS_ RPCOLEMESSAGE* pMessage) PURE; \
7637 STDMETHOD_(HRESULT,GetDestCtx)(THIS_ DWORD* pdwDestContext, void** ppvDestContext) PURE; \
7638 STDMETHOD_(HRESULT,IsConnected)(THIS) PURE; \
7639 /*** IRpcChannelBuffer2 methods ***/ \
7640 STDMETHOD_(HRESULT,GetProtocolVersion)(THIS_ DWORD* pdwVersion) PURE; \
7641 /*** IRpcChannelBuffer3 methods ***/ \
7642 STDMETHOD_(HRESULT,Send)(THIS_ RPCOLEMESSAGE* pMsg, ULONG* pulStatus) PURE; \
7643 STDMETHOD_(HRESULT,Receive)(THIS_ RPCOLEMESSAGE* pMsg, ULONG ulSize, ULONG* pulStatus) PURE; \
7644 STDMETHOD_(HRESULT,Cancel)(THIS_ RPCOLEMESSAGE* pMsg) PURE; \
7645 STDMETHOD_(HRESULT,GetCallContext)(THIS_ RPCOLEMESSAGE* pMsg, REFIID riid, void** pInterface) PURE; \
7646 STDMETHOD_(HRESULT,GetDestCtxEx)(THIS_ RPCOLEMESSAGE* pMsg, DWORD* pdwDestContext, void** ppvDestContext) PURE; \
7647 STDMETHOD_(HRESULT,GetState)(THIS_ RPCOLEMESSAGE* pMsg, DWORD* pState) PURE; \
7648 STDMETHOD_(HRESULT,RegisterAsync)(THIS_ RPCOLEMESSAGE* pMsg, IAsyncManager* pAsyncMgr) PURE;
7650 HRESULT CALLBACK IRpcChannelBuffer3_Send_Proxy(
7651 IRpcChannelBuffer3* This,
7652 RPCOLEMESSAGE* pMsg,
7653 ULONG* pulStatus);
7654 void __RPC_STUB IRpcChannelBuffer3_Send_Stub(
7655 struct IRpcStubBuffer* This,
7656 struct IRpcChannelBuffer* pRpcChannelBuffer,
7657 PRPC_MESSAGE pRpcMessage,
7658 DWORD* pdwStubPhase);
7659 HRESULT CALLBACK IRpcChannelBuffer3_Receive_Proxy(
7660 IRpcChannelBuffer3* This,
7661 RPCOLEMESSAGE* pMsg,
7662 ULONG ulSize,
7663 ULONG* pulStatus);
7664 void __RPC_STUB IRpcChannelBuffer3_Receive_Stub(
7665 struct IRpcStubBuffer* This,
7666 struct IRpcChannelBuffer* pRpcChannelBuffer,
7667 PRPC_MESSAGE pRpcMessage,
7668 DWORD* pdwStubPhase);
7669 HRESULT CALLBACK IRpcChannelBuffer3_Cancel_Proxy(
7670 IRpcChannelBuffer3* This,
7671 RPCOLEMESSAGE* pMsg);
7672 void __RPC_STUB IRpcChannelBuffer3_Cancel_Stub(
7673 struct IRpcStubBuffer* This,
7674 struct IRpcChannelBuffer* pRpcChannelBuffer,
7675 PRPC_MESSAGE pRpcMessage,
7676 DWORD* pdwStubPhase);
7677 HRESULT CALLBACK IRpcChannelBuffer3_GetCallContext_Proxy(
7678 IRpcChannelBuffer3* This,
7679 RPCOLEMESSAGE* pMsg,
7680 REFIID riid,
7681 void** pInterface);
7682 void __RPC_STUB IRpcChannelBuffer3_GetCallContext_Stub(
7683 struct IRpcStubBuffer* This,
7684 struct IRpcChannelBuffer* pRpcChannelBuffer,
7685 PRPC_MESSAGE pRpcMessage,
7686 DWORD* pdwStubPhase);
7687 HRESULT CALLBACK IRpcChannelBuffer3_GetDestCtxEx_Proxy(
7688 IRpcChannelBuffer3* This,
7689 RPCOLEMESSAGE* pMsg,
7690 DWORD* pdwDestContext,
7691 void** ppvDestContext);
7692 void __RPC_STUB IRpcChannelBuffer3_GetDestCtxEx_Stub(
7693 struct IRpcStubBuffer* This,
7694 struct IRpcChannelBuffer* pRpcChannelBuffer,
7695 PRPC_MESSAGE pRpcMessage,
7696 DWORD* pdwStubPhase);
7697 HRESULT CALLBACK IRpcChannelBuffer3_GetState_Proxy(
7698 IRpcChannelBuffer3* This,
7699 RPCOLEMESSAGE* pMsg,
7700 DWORD* pState);
7701 void __RPC_STUB IRpcChannelBuffer3_GetState_Stub(
7702 struct IRpcStubBuffer* This,
7703 struct IRpcChannelBuffer* pRpcChannelBuffer,
7704 PRPC_MESSAGE pRpcMessage,
7705 DWORD* pdwStubPhase);
7706 HRESULT CALLBACK IRpcChannelBuffer3_RegisterAsync_Proxy(
7707 IRpcChannelBuffer3* This,
7708 RPCOLEMESSAGE* pMsg,
7709 IAsyncManager* pAsyncMgr);
7710 void __RPC_STUB IRpcChannelBuffer3_RegisterAsync_Stub(
7711 struct IRpcStubBuffer* This,
7712 struct IRpcChannelBuffer* pRpcChannelBuffer,
7713 PRPC_MESSAGE pRpcMessage,
7714 DWORD* pdwStubPhase);
7716 #endif /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */
7718 #ifndef __IRpcProxyBuffer_FWD_DEFINED__
7719 #define __IRpcProxyBuffer_FWD_DEFINED__
7720 typedef struct IRpcProxyBuffer IRpcProxyBuffer;
7721 #endif
7723 typedef IRpcProxyBuffer *LPRPCPROXYBUFFER;
7725 /*****************************************************************************
7726 * IRpcProxyBuffer interface
7728 #ifndef __IRpcProxyBuffer_INTERFACE_DEFINED__
7729 #define __IRpcProxyBuffer_INTERFACE_DEFINED__
7731 DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7732 #if defined(__cplusplus) && !defined(CINTERFACE)
7733 struct IRpcProxyBuffer : public IUnknown
7735 virtual HRESULT STDMETHODCALLTYPE Connect(
7736 IRpcChannelBuffer* pRpcChannelBuffer) = 0;
7738 virtual void STDMETHODCALLTYPE Disconnect(
7739 ) = 0;
7742 #else
7743 typedef struct IRpcProxyBufferVtbl IRpcProxyBufferVtbl;
7744 struct IRpcProxyBuffer {
7745 const IRpcProxyBufferVtbl* lpVtbl;
7747 struct IRpcProxyBufferVtbl {
7748 ICOM_MSVTABLE_COMPAT_FIELDS
7750 /*** IUnknown methods ***/
7751 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7752 IRpcProxyBuffer* This,
7753 REFIID riid,
7754 void** ppvObject);
7756 ULONG (STDMETHODCALLTYPE *AddRef)(
7757 IRpcProxyBuffer* This);
7759 ULONG (STDMETHODCALLTYPE *Release)(
7760 IRpcProxyBuffer* This);
7762 /*** IRpcProxyBuffer methods ***/
7763 HRESULT (STDMETHODCALLTYPE *Connect)(
7764 IRpcProxyBuffer* This,
7765 IRpcChannelBuffer* pRpcChannelBuffer);
7767 void (STDMETHODCALLTYPE *Disconnect)(
7768 IRpcProxyBuffer* This);
7772 /*** IUnknown methods ***/
7773 #define IRpcProxyBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7774 #define IRpcProxyBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7775 #define IRpcProxyBuffer_Release(p) (p)->lpVtbl->Release(p)
7776 /*** IRpcProxyBuffer methods ***/
7777 #define IRpcProxyBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7778 #define IRpcProxyBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7780 #endif
7782 #define IRpcProxyBuffer_METHODS \
7783 ICOM_MSVTABLE_COMPAT_FIELDS \
7784 /*** IUnknown methods ***/ \
7785 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7786 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7787 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7788 /*** IRpcProxyBuffer methods ***/ \
7789 STDMETHOD_(HRESULT,Connect)(THIS_ IRpcChannelBuffer* pRpcChannelBuffer) PURE; \
7790 STDMETHOD_(void,Disconnect)(THIS) PURE;
7792 HRESULT CALLBACK IRpcProxyBuffer_Connect_Proxy(
7793 IRpcProxyBuffer* This,
7794 IRpcChannelBuffer* pRpcChannelBuffer);
7795 void __RPC_STUB IRpcProxyBuffer_Connect_Stub(
7796 struct IRpcStubBuffer* This,
7797 struct IRpcChannelBuffer* pRpcChannelBuffer,
7798 PRPC_MESSAGE pRpcMessage,
7799 DWORD* pdwStubPhase);
7800 void CALLBACK IRpcProxyBuffer_Disconnect_Proxy(
7801 IRpcProxyBuffer* This);
7802 void __RPC_STUB IRpcProxyBuffer_Disconnect_Stub(
7803 struct IRpcStubBuffer* This,
7804 struct IRpcChannelBuffer* pRpcChannelBuffer,
7805 PRPC_MESSAGE pRpcMessage,
7806 DWORD* pdwStubPhase);
7808 #endif /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */
7810 #ifndef __IRpcStubBuffer_FWD_DEFINED__
7811 #define __IRpcStubBuffer_FWD_DEFINED__
7812 typedef struct IRpcStubBuffer IRpcStubBuffer;
7813 #endif
7815 typedef IRpcStubBuffer *LPRPCSTUBBUFFER;
7817 /*****************************************************************************
7818 * IRpcStubBuffer interface
7820 #ifndef __IRpcStubBuffer_INTERFACE_DEFINED__
7821 #define __IRpcStubBuffer_INTERFACE_DEFINED__
7823 DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7824 #if defined(__cplusplus) && !defined(CINTERFACE)
7825 struct IRpcStubBuffer : public IUnknown
7827 virtual HRESULT STDMETHODCALLTYPE Connect(
7828 IUnknown* pUnkServer) = 0;
7830 virtual void STDMETHODCALLTYPE Disconnect(
7831 ) = 0;
7833 virtual HRESULT STDMETHODCALLTYPE Invoke(
7834 RPCOLEMESSAGE* _prpcmsg,
7835 IRpcChannelBuffer* _pRpcChannelBuffer) = 0;
7837 virtual IRpcStubBuffer* STDMETHODCALLTYPE IsIIDSupported(
7838 REFIID riid) = 0;
7840 virtual ULONG STDMETHODCALLTYPE CountRefs(
7841 ) = 0;
7843 virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface(
7844 void** ppv) = 0;
7846 virtual void STDMETHODCALLTYPE DebugServerRelease(
7847 void* pv) = 0;
7850 #else
7851 typedef struct IRpcStubBufferVtbl IRpcStubBufferVtbl;
7852 struct IRpcStubBuffer {
7853 const IRpcStubBufferVtbl* lpVtbl;
7855 struct IRpcStubBufferVtbl {
7856 ICOM_MSVTABLE_COMPAT_FIELDS
7858 /*** IUnknown methods ***/
7859 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7860 IRpcStubBuffer* This,
7861 REFIID riid,
7862 void** ppvObject);
7864 ULONG (STDMETHODCALLTYPE *AddRef)(
7865 IRpcStubBuffer* This);
7867 ULONG (STDMETHODCALLTYPE *Release)(
7868 IRpcStubBuffer* This);
7870 /*** IRpcStubBuffer methods ***/
7871 HRESULT (STDMETHODCALLTYPE *Connect)(
7872 IRpcStubBuffer* This,
7873 IUnknown* pUnkServer);
7875 void (STDMETHODCALLTYPE *Disconnect)(
7876 IRpcStubBuffer* This);
7878 HRESULT (STDMETHODCALLTYPE *Invoke)(
7879 IRpcStubBuffer* This,
7880 RPCOLEMESSAGE* _prpcmsg,
7881 IRpcChannelBuffer* _pRpcChannelBuffer);
7883 IRpcStubBuffer* (STDMETHODCALLTYPE *IsIIDSupported)(
7884 IRpcStubBuffer* This,
7885 REFIID riid);
7887 ULONG (STDMETHODCALLTYPE *CountRefs)(
7888 IRpcStubBuffer* This);
7890 HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(
7891 IRpcStubBuffer* This,
7892 void** ppv);
7894 void (STDMETHODCALLTYPE *DebugServerRelease)(
7895 IRpcStubBuffer* This,
7896 void* pv);
7900 /*** IUnknown methods ***/
7901 #define IRpcStubBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7902 #define IRpcStubBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7903 #define IRpcStubBuffer_Release(p) (p)->lpVtbl->Release(p)
7904 /*** IRpcStubBuffer methods ***/
7905 #define IRpcStubBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7906 #define IRpcStubBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7907 #define IRpcStubBuffer_Invoke(p,a,b) (p)->lpVtbl->Invoke(p,a,b)
7908 #define IRpcStubBuffer_IsIIDSupported(p,a) (p)->lpVtbl->IsIIDSupported(p,a)
7909 #define IRpcStubBuffer_CountRefs(p) (p)->lpVtbl->CountRefs(p)
7910 #define IRpcStubBuffer_DebugServerQueryInterface(p,a) (p)->lpVtbl->DebugServerQueryInterface(p,a)
7911 #define IRpcStubBuffer_DebugServerRelease(p,a) (p)->lpVtbl->DebugServerRelease(p,a)
7913 #endif
7915 #define IRpcStubBuffer_METHODS \
7916 ICOM_MSVTABLE_COMPAT_FIELDS \
7917 /*** IUnknown methods ***/ \
7918 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7919 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7920 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7921 /*** IRpcStubBuffer methods ***/ \
7922 STDMETHOD_(HRESULT,Connect)(THIS_ IUnknown* pUnkServer) PURE; \
7923 STDMETHOD_(void,Disconnect)(THIS) PURE; \
7924 STDMETHOD_(HRESULT,Invoke)(THIS_ RPCOLEMESSAGE* _prpcmsg, IRpcChannelBuffer* _pRpcChannelBuffer) PURE; \
7925 STDMETHOD_(IRpcStubBuffer*,IsIIDSupported)(THIS_ REFIID riid) PURE; \
7926 STDMETHOD_(ULONG,CountRefs)(THIS) PURE; \
7927 STDMETHOD_(HRESULT,DebugServerQueryInterface)(THIS_ void** ppv) PURE; \
7928 STDMETHOD_(void,DebugServerRelease)(THIS_ void* pv) PURE;
7930 HRESULT CALLBACK IRpcStubBuffer_Connect_Proxy(
7931 IRpcStubBuffer* This,
7932 IUnknown* pUnkServer);
7933 void __RPC_STUB IRpcStubBuffer_Connect_Stub(
7934 struct IRpcStubBuffer* This,
7935 struct IRpcChannelBuffer* pRpcChannelBuffer,
7936 PRPC_MESSAGE pRpcMessage,
7937 DWORD* pdwStubPhase);
7938 void CALLBACK IRpcStubBuffer_Disconnect_Proxy(
7939 IRpcStubBuffer* This);
7940 void __RPC_STUB IRpcStubBuffer_Disconnect_Stub(
7941 struct IRpcStubBuffer* This,
7942 struct IRpcChannelBuffer* pRpcChannelBuffer,
7943 PRPC_MESSAGE pRpcMessage,
7944 DWORD* pdwStubPhase);
7945 HRESULT CALLBACK IRpcStubBuffer_Invoke_Proxy(
7946 IRpcStubBuffer* This,
7947 RPCOLEMESSAGE* _prpcmsg,
7948 IRpcChannelBuffer* _pRpcChannelBuffer);
7949 void __RPC_STUB IRpcStubBuffer_Invoke_Stub(
7950 struct IRpcStubBuffer* This,
7951 struct IRpcChannelBuffer* pRpcChannelBuffer,
7952 PRPC_MESSAGE pRpcMessage,
7953 DWORD* pdwStubPhase);
7954 IRpcStubBuffer* CALLBACK IRpcStubBuffer_IsIIDSupported_Proxy(
7955 IRpcStubBuffer* This,
7956 REFIID riid);
7957 void __RPC_STUB IRpcStubBuffer_IsIIDSupported_Stub(
7958 struct IRpcStubBuffer* This,
7959 struct IRpcChannelBuffer* pRpcChannelBuffer,
7960 PRPC_MESSAGE pRpcMessage,
7961 DWORD* pdwStubPhase);
7962 ULONG CALLBACK IRpcStubBuffer_CountRefs_Proxy(
7963 IRpcStubBuffer* This);
7964 void __RPC_STUB IRpcStubBuffer_CountRefs_Stub(
7965 struct IRpcStubBuffer* This,
7966 struct IRpcChannelBuffer* pRpcChannelBuffer,
7967 PRPC_MESSAGE pRpcMessage,
7968 DWORD* pdwStubPhase);
7969 HRESULT CALLBACK IRpcStubBuffer_DebugServerQueryInterface_Proxy(
7970 IRpcStubBuffer* This,
7971 void** ppv);
7972 void __RPC_STUB IRpcStubBuffer_DebugServerQueryInterface_Stub(
7973 struct IRpcStubBuffer* This,
7974 struct IRpcChannelBuffer* pRpcChannelBuffer,
7975 PRPC_MESSAGE pRpcMessage,
7976 DWORD* pdwStubPhase);
7977 void CALLBACK IRpcStubBuffer_DebugServerRelease_Proxy(
7978 IRpcStubBuffer* This,
7979 void* pv);
7980 void __RPC_STUB IRpcStubBuffer_DebugServerRelease_Stub(
7981 struct IRpcStubBuffer* This,
7982 struct IRpcChannelBuffer* pRpcChannelBuffer,
7983 PRPC_MESSAGE pRpcMessage,
7984 DWORD* pdwStubPhase);
7986 #endif /* __IRpcStubBuffer_INTERFACE_DEFINED__ */
7988 #ifndef __IPSFactoryBuffer_FWD_DEFINED__
7989 #define __IPSFactoryBuffer_FWD_DEFINED__
7990 typedef struct IPSFactoryBuffer IPSFactoryBuffer;
7991 #endif
7993 typedef IPSFactoryBuffer *LPPSFACTORYBUFFER;
7995 /*****************************************************************************
7996 * IPSFactoryBuffer interface
7998 #ifndef __IPSFactoryBuffer_INTERFACE_DEFINED__
7999 #define __IPSFactoryBuffer_INTERFACE_DEFINED__
8001 DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
8002 #if defined(__cplusplus) && !defined(CINTERFACE)
8003 struct IPSFactoryBuffer : public IUnknown
8005 virtual HRESULT STDMETHODCALLTYPE CreateProxy(
8006 IUnknown* pUnkOuter,
8007 REFIID riid,
8008 IRpcProxyBuffer** ppProxy,
8009 void** ppv) = 0;
8011 virtual HRESULT STDMETHODCALLTYPE CreateStub(
8012 REFIID riid,
8013 IUnknown* pUnkServer,
8014 IRpcStubBuffer** ppStub) = 0;
8017 #else
8018 typedef struct IPSFactoryBufferVtbl IPSFactoryBufferVtbl;
8019 struct IPSFactoryBuffer {
8020 const IPSFactoryBufferVtbl* lpVtbl;
8022 struct IPSFactoryBufferVtbl {
8023 ICOM_MSVTABLE_COMPAT_FIELDS
8025 /*** IUnknown methods ***/
8026 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8027 IPSFactoryBuffer* This,
8028 REFIID riid,
8029 void** ppvObject);
8031 ULONG (STDMETHODCALLTYPE *AddRef)(
8032 IPSFactoryBuffer* This);
8034 ULONG (STDMETHODCALLTYPE *Release)(
8035 IPSFactoryBuffer* This);
8037 /*** IPSFactoryBuffer methods ***/
8038 HRESULT (STDMETHODCALLTYPE *CreateProxy)(
8039 IPSFactoryBuffer* This,
8040 IUnknown* pUnkOuter,
8041 REFIID riid,
8042 IRpcProxyBuffer** ppProxy,
8043 void** ppv);
8045 HRESULT (STDMETHODCALLTYPE *CreateStub)(
8046 IPSFactoryBuffer* This,
8047 REFIID riid,
8048 IUnknown* pUnkServer,
8049 IRpcStubBuffer** ppStub);
8053 /*** IUnknown methods ***/
8054 #define IPSFactoryBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8055 #define IPSFactoryBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
8056 #define IPSFactoryBuffer_Release(p) (p)->lpVtbl->Release(p)
8057 /*** IPSFactoryBuffer methods ***/
8058 #define IPSFactoryBuffer_CreateProxy(p,a,b,c,d) (p)->lpVtbl->CreateProxy(p,a,b,c,d)
8059 #define IPSFactoryBuffer_CreateStub(p,a,b,c) (p)->lpVtbl->CreateStub(p,a,b,c)
8061 #endif
8063 #define IPSFactoryBuffer_METHODS \
8064 ICOM_MSVTABLE_COMPAT_FIELDS \
8065 /*** IUnknown methods ***/ \
8066 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8067 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8068 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8069 /*** IPSFactoryBuffer methods ***/ \
8070 STDMETHOD_(HRESULT,CreateProxy)(THIS_ IUnknown* pUnkOuter, REFIID riid, IRpcProxyBuffer** ppProxy, void** ppv) PURE; \
8071 STDMETHOD_(HRESULT,CreateStub)(THIS_ REFIID riid, IUnknown* pUnkServer, IRpcStubBuffer** ppStub) PURE;
8073 HRESULT CALLBACK IPSFactoryBuffer_CreateProxy_Proxy(
8074 IPSFactoryBuffer* This,
8075 IUnknown* pUnkOuter,
8076 REFIID riid,
8077 IRpcProxyBuffer** ppProxy,
8078 void** ppv);
8079 void __RPC_STUB IPSFactoryBuffer_CreateProxy_Stub(
8080 struct IRpcStubBuffer* This,
8081 struct IRpcChannelBuffer* pRpcChannelBuffer,
8082 PRPC_MESSAGE pRpcMessage,
8083 DWORD* pdwStubPhase);
8084 HRESULT CALLBACK IPSFactoryBuffer_CreateStub_Proxy(
8085 IPSFactoryBuffer* This,
8086 REFIID riid,
8087 IUnknown* pUnkServer,
8088 IRpcStubBuffer** ppStub);
8089 void __RPC_STUB IPSFactoryBuffer_CreateStub_Stub(
8090 struct IRpcStubBuffer* This,
8091 struct IRpcChannelBuffer* pRpcChannelBuffer,
8092 PRPC_MESSAGE pRpcMessage,
8093 DWORD* pdwStubPhase);
8095 #endif /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */
8097 #ifndef __IChannelHook_FWD_DEFINED__
8098 #define __IChannelHook_FWD_DEFINED__
8099 typedef struct IChannelHook IChannelHook;
8100 #endif
8102 typedef IChannelHook *LPCHANNELHOOK;
8104 typedef struct SChannelHookCallInfo {
8105 IID iid;
8106 DWORD cbSize;
8107 GUID uCausality;
8108 DWORD dwServerPid;
8109 DWORD iMethod;
8110 void *pObject;
8111 } SChannelHookCallInfo;
8113 /*****************************************************************************
8114 * IChannelHook interface
8116 #ifndef __IChannelHook_INTERFACE_DEFINED__
8117 #define __IChannelHook_INTERFACE_DEFINED__
8119 DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
8120 #if defined(__cplusplus) && !defined(CINTERFACE)
8121 struct IChannelHook : public IUnknown
8123 virtual void STDMETHODCALLTYPE ClientGetSize(
8124 REFGUID uExtent,
8125 REFIID riid,
8126 ULONG* pDataSize) = 0;
8128 virtual void STDMETHODCALLTYPE ClientFillBuffer(
8129 REFGUID uExtent,
8130 REFIID riid,
8131 ULONG* pDataSize,
8132 void* pDataBuffer) = 0;
8134 virtual void STDMETHODCALLTYPE ClientNotify(
8135 REFGUID uExtent,
8136 REFIID riid,
8137 ULONG cbDataSize,
8138 void* pDataBuffer,
8139 DWORD lDataRep,
8140 HRESULT hrFault) = 0;
8142 virtual void STDMETHODCALLTYPE ServerNotify(
8143 REFGUID uExtent,
8144 REFIID riid,
8145 ULONG cbDataSize,
8146 void* pDataBuffer,
8147 DWORD lDataRep) = 0;
8149 virtual void STDMETHODCALLTYPE ServerGetSize(
8150 REFGUID uExtent,
8151 REFIID riid,
8152 HRESULT hrFault,
8153 ULONG* pDataSize) = 0;
8155 virtual void STDMETHODCALLTYPE ServerFillBuffer(
8156 REFGUID uExtent,
8157 REFIID riid,
8158 ULONG* pDataSize,
8159 void* pDataBuffer,
8160 HRESULT hrFault) = 0;
8163 #else
8164 typedef struct IChannelHookVtbl IChannelHookVtbl;
8165 struct IChannelHook {
8166 const IChannelHookVtbl* lpVtbl;
8168 struct IChannelHookVtbl {
8169 ICOM_MSVTABLE_COMPAT_FIELDS
8171 /*** IUnknown methods ***/
8172 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8173 IChannelHook* This,
8174 REFIID riid,
8175 void** ppvObject);
8177 ULONG (STDMETHODCALLTYPE *AddRef)(
8178 IChannelHook* This);
8180 ULONG (STDMETHODCALLTYPE *Release)(
8181 IChannelHook* This);
8183 /*** IChannelHook methods ***/
8184 void (STDMETHODCALLTYPE *ClientGetSize)(
8185 IChannelHook* This,
8186 REFGUID uExtent,
8187 REFIID riid,
8188 ULONG* pDataSize);
8190 void (STDMETHODCALLTYPE *ClientFillBuffer)(
8191 IChannelHook* This,
8192 REFGUID uExtent,
8193 REFIID riid,
8194 ULONG* pDataSize,
8195 void* pDataBuffer);
8197 void (STDMETHODCALLTYPE *ClientNotify)(
8198 IChannelHook* This,
8199 REFGUID uExtent,
8200 REFIID riid,
8201 ULONG cbDataSize,
8202 void* pDataBuffer,
8203 DWORD lDataRep,
8204 HRESULT hrFault);
8206 void (STDMETHODCALLTYPE *ServerNotify)(
8207 IChannelHook* This,
8208 REFGUID uExtent,
8209 REFIID riid,
8210 ULONG cbDataSize,
8211 void* pDataBuffer,
8212 DWORD lDataRep);
8214 void (STDMETHODCALLTYPE *ServerGetSize)(
8215 IChannelHook* This,
8216 REFGUID uExtent,
8217 REFIID riid,
8218 HRESULT hrFault,
8219 ULONG* pDataSize);
8221 void (STDMETHODCALLTYPE *ServerFillBuffer)(
8222 IChannelHook* This,
8223 REFGUID uExtent,
8224 REFIID riid,
8225 ULONG* pDataSize,
8226 void* pDataBuffer,
8227 HRESULT hrFault);
8231 /*** IUnknown methods ***/
8232 #define IChannelHook_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8233 #define IChannelHook_AddRef(p) (p)->lpVtbl->AddRef(p)
8234 #define IChannelHook_Release(p) (p)->lpVtbl->Release(p)
8235 /*** IChannelHook methods ***/
8236 #define IChannelHook_ClientGetSize(p,a,b,c) (p)->lpVtbl->ClientGetSize(p,a,b,c)
8237 #define IChannelHook_ClientFillBuffer(p,a,b,c,d) (p)->lpVtbl->ClientFillBuffer(p,a,b,c,d)
8238 #define IChannelHook_ClientNotify(p,a,b,c,d,e,f) (p)->lpVtbl->ClientNotify(p,a,b,c,d,e,f)
8239 #define IChannelHook_ServerNotify(p,a,b,c,d,e) (p)->lpVtbl->ServerNotify(p,a,b,c,d,e)
8240 #define IChannelHook_ServerGetSize(p,a,b,c,d) (p)->lpVtbl->ServerGetSize(p,a,b,c,d)
8241 #define IChannelHook_ServerFillBuffer(p,a,b,c,d,e) (p)->lpVtbl->ServerFillBuffer(p,a,b,c,d,e)
8243 #endif
8245 #define IChannelHook_METHODS \
8246 ICOM_MSVTABLE_COMPAT_FIELDS \
8247 /*** IUnknown methods ***/ \
8248 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8249 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8250 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8251 /*** IChannelHook methods ***/ \
8252 STDMETHOD_(void,ClientGetSize)(THIS_ REFGUID uExtent, REFIID riid, ULONG* pDataSize) PURE; \
8253 STDMETHOD_(void,ClientFillBuffer)(THIS_ REFGUID uExtent, REFIID riid, ULONG* pDataSize, void* pDataBuffer) PURE; \
8254 STDMETHOD_(void,ClientNotify)(THIS_ REFGUID uExtent, REFIID riid, ULONG cbDataSize, void* pDataBuffer, DWORD lDataRep, HRESULT hrFault) PURE; \
8255 STDMETHOD_(void,ServerNotify)(THIS_ REFGUID uExtent, REFIID riid, ULONG cbDataSize, void* pDataBuffer, DWORD lDataRep) PURE; \
8256 STDMETHOD_(void,ServerGetSize)(THIS_ REFGUID uExtent, REFIID riid, HRESULT hrFault, ULONG* pDataSize) PURE; \
8257 STDMETHOD_(void,ServerFillBuffer)(THIS_ REFGUID uExtent, REFIID riid, ULONG* pDataSize, void* pDataBuffer, HRESULT hrFault) PURE;
8259 void CALLBACK IChannelHook_ClientGetSize_Proxy(
8260 IChannelHook* This,
8261 REFGUID uExtent,
8262 REFIID riid,
8263 ULONG* pDataSize);
8264 void __RPC_STUB IChannelHook_ClientGetSize_Stub(
8265 struct IRpcStubBuffer* This,
8266 struct IRpcChannelBuffer* pRpcChannelBuffer,
8267 PRPC_MESSAGE pRpcMessage,
8268 DWORD* pdwStubPhase);
8269 void CALLBACK IChannelHook_ClientFillBuffer_Proxy(
8270 IChannelHook* This,
8271 REFGUID uExtent,
8272 REFIID riid,
8273 ULONG* pDataSize,
8274 void* pDataBuffer);
8275 void __RPC_STUB IChannelHook_ClientFillBuffer_Stub(
8276 struct IRpcStubBuffer* This,
8277 struct IRpcChannelBuffer* pRpcChannelBuffer,
8278 PRPC_MESSAGE pRpcMessage,
8279 DWORD* pdwStubPhase);
8280 void CALLBACK IChannelHook_ClientNotify_Proxy(
8281 IChannelHook* This,
8282 REFGUID uExtent,
8283 REFIID riid,
8284 ULONG cbDataSize,
8285 void* pDataBuffer,
8286 DWORD lDataRep,
8287 HRESULT hrFault);
8288 void __RPC_STUB IChannelHook_ClientNotify_Stub(
8289 struct IRpcStubBuffer* This,
8290 struct IRpcChannelBuffer* pRpcChannelBuffer,
8291 PRPC_MESSAGE pRpcMessage,
8292 DWORD* pdwStubPhase);
8293 void CALLBACK IChannelHook_ServerNotify_Proxy(
8294 IChannelHook* This,
8295 REFGUID uExtent,
8296 REFIID riid,
8297 ULONG cbDataSize,
8298 void* pDataBuffer,
8299 DWORD lDataRep);
8300 void __RPC_STUB IChannelHook_ServerNotify_Stub(
8301 struct IRpcStubBuffer* This,
8302 struct IRpcChannelBuffer* pRpcChannelBuffer,
8303 PRPC_MESSAGE pRpcMessage,
8304 DWORD* pdwStubPhase);
8305 void CALLBACK IChannelHook_ServerGetSize_Proxy(
8306 IChannelHook* This,
8307 REFGUID uExtent,
8308 REFIID riid,
8309 HRESULT hrFault,
8310 ULONG* pDataSize);
8311 void __RPC_STUB IChannelHook_ServerGetSize_Stub(
8312 struct IRpcStubBuffer* This,
8313 struct IRpcChannelBuffer* pRpcChannelBuffer,
8314 PRPC_MESSAGE pRpcMessage,
8315 DWORD* pdwStubPhase);
8316 void CALLBACK IChannelHook_ServerFillBuffer_Proxy(
8317 IChannelHook* This,
8318 REFGUID uExtent,
8319 REFIID riid,
8320 ULONG* pDataSize,
8321 void* pDataBuffer,
8322 HRESULT hrFault);
8323 void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
8324 struct IRpcStubBuffer* This,
8325 struct IRpcChannelBuffer* pRpcChannelBuffer,
8326 PRPC_MESSAGE pRpcMessage,
8327 DWORD* pdwStubPhase);
8329 #endif /* __IChannelHook_INTERFACE_DEFINED__ */
8331 #ifndef __IEnumSTATPROPSTG_FWD_DEFINED__
8332 #define __IEnumSTATPROPSTG_FWD_DEFINED__
8333 typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
8334 #endif
8336 #ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__
8337 #define __IEnumSTATPROPSETSTG_FWD_DEFINED__
8338 typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
8339 #endif
8341 #ifndef __IPropertyStorage_FWD_DEFINED__
8342 #define __IPropertyStorage_FWD_DEFINED__
8343 typedef struct IPropertyStorage IPropertyStorage;
8344 #endif
8346 typedef IPropertyStorage *LPPROPERTYSTORAGE;
8348 extern const FMTID FMTID_SummaryInformation;
8350 extern const FMTID FMTID_DocSummaryInformation;
8352 extern const FMTID FMTID_UserDefinedProperties;
8354 #define PROPSETFLAG_DEFAULT (0)
8356 #define PROPSETFLAG_NONSIMPLE (1)
8358 #define PROPSETFLAG_ANSI (2)
8360 #define PROPSETFLAG_UNBUFFERED (4)
8362 typedef struct tagPROPVARIANT PROPVARIANT;
8364 typedef struct tagCAUB {
8365 ULONG cElems;
8366 unsigned char *pElems;
8367 } CAUB;
8369 typedef struct tagCAI {
8370 ULONG cElems;
8371 short *pElems;
8372 } CAI;
8374 typedef struct tagCAUI {
8375 ULONG cElems;
8376 USHORT *pElems;
8377 } CAUI;
8379 typedef struct tagCAL {
8380 ULONG cElems;
8381 long *pElems;
8382 } CAL;
8384 typedef struct tagCAUL {
8385 ULONG cElems;
8386 ULONG *pElems;
8387 } CAUL;
8389 typedef struct tagCAFLT {
8390 ULONG cElems;
8391 float *pElems;
8392 } CAFLT;
8394 typedef struct tagCADBL {
8395 ULONG cElems;
8396 double *pElems;
8397 } CADBL;
8399 typedef struct tagCACY {
8400 ULONG cElems;
8401 CY *pElems;
8402 } CACY;
8404 typedef struct tagCADATE {
8405 ULONG cElems;
8406 DATE *pElems;
8407 } CADATE;
8409 typedef struct tagCABSTR {
8410 ULONG cElems;
8411 BSTR *pElems;
8412 } CABSTR;
8414 typedef struct tagCABSTRBLOB {
8415 ULONG cElems;
8416 BSTRBLOB *pElems;
8417 } CABSTRBLOB;
8419 typedef struct tagCABOOL {
8420 ULONG cElems;
8421 VARIANT_BOOL *pElems;
8422 } CABOOL;
8424 typedef struct tagCASCODE {
8425 ULONG cElems;
8426 SCODE *pElems;
8427 } CASCODE;
8429 typedef struct tagCAPROPVARIANT {
8430 ULONG cElems;
8431 PROPVARIANT *pElems;
8432 } CAPROPVARIANT;
8434 typedef struct tagCAH {
8435 ULONG cElems;
8436 LARGE_INTEGER *pElems;
8437 } CAH;
8439 typedef struct tagCAUH {
8440 ULONG cElems;
8441 ULARGE_INTEGER *pElems;
8442 } CAUH;
8444 typedef struct tagCALPSTR {
8445 ULONG cElems;
8446 LPSTR *pElems;
8447 } CALPSTR;
8449 typedef struct tagCALPWSTR {
8450 ULONG cElems;
8451 LPWSTR *pElems;
8452 } CALPWSTR;
8454 typedef struct tagCAFILETIME {
8455 ULONG cElems;
8456 FILETIME *pElems;
8457 } CAFILETIME;
8459 typedef struct tagCACLIPDATA {
8460 ULONG cElems;
8461 CLIPDATA *pElems;
8462 } CACLIPDATA;
8464 typedef struct tagCACLSID {
8465 ULONG cElems;
8466 CLSID *pElems;
8467 } CACLSID;
8469 struct tagPROPVARIANT {
8470 VARTYPE vt;
8471 WORD wReserved1;
8472 WORD wReserved2;
8473 WORD wReserved3;
8474 union {
8475 char cVal;
8476 UCHAR bVal;
8477 short iVal;
8478 USHORT uiVal;
8479 VARIANT_BOOL boolVal;
8480 long lVal;
8481 ULONG ulVal;
8482 float fltVal;
8483 SCODE scode;
8484 LARGE_INTEGER hVal;
8485 ULARGE_INTEGER uhVal;
8486 double dblVal;
8487 CY cyVal;
8488 DATE date;
8489 FILETIME filetime;
8490 CLSID *puuid;
8491 BLOB blob;
8492 CLIPDATA *pclipdata;
8493 IStream *pStream;
8494 IStorage *pStorage;
8495 BSTR bstrVal;
8496 BSTRBLOB bstrblobVal;
8497 LPSTR pszVal;
8498 LPWSTR pwszVal;
8499 CAUB caub;
8500 CAI cai;
8501 CAUI caui;
8502 CABOOL cabool;
8503 CAL cal;
8504 CAUL caul;
8505 CAFLT caflt;
8506 CASCODE cascode;
8507 CAH cah;
8508 CAUH cauh;
8509 CADBL cadbl;
8510 CACY cacy;
8511 CADATE cadate;
8512 CAFILETIME cafiletime;
8513 CACLSID cauuid;
8514 CACLIPDATA caclipdata;
8515 CABSTR cabstr;
8516 CABSTRBLOB cabstrblob;
8517 CALPSTR calpstr;
8518 CALPWSTR calpwstr;
8519 CAPROPVARIANT capropvar;
8520 } DUMMYUNIONNAME;
8523 typedef struct tagPROPVARIANT *LPPROPVARIANT;
8525 #define PRSPEC_INVALID (0xffffffff)
8527 #define PRSPEC_LPWSTR (0)
8529 #define PRSPEC_PROPID (1)
8531 typedef struct tagPROPSPEC {
8532 ULONG ulKind;
8533 union {
8534 PROPID propid;
8535 LPOLESTR lpwstr;
8536 } DUMMYUNIONNAME;
8537 } PROPSPEC;
8539 typedef struct tagSTATPROPSTG {
8540 LPOLESTR lpwstrName;
8541 PROPID propid;
8542 VARTYPE vt;
8543 } STATPROPSTG;
8545 typedef struct tagSTATPROPSETSTG {
8546 FMTID fmtid;
8547 CLSID clsid;
8548 DWORD grfFlags;
8549 FILETIME mtime;
8550 FILETIME ctime;
8551 FILETIME atime;
8552 DWORD dwOSVersion;
8553 } STATPROPSETSTG;
8555 /*****************************************************************************
8556 * IPropertyStorage interface
8558 #ifndef __IPropertyStorage_INTERFACE_DEFINED__
8559 #define __IPropertyStorage_INTERFACE_DEFINED__
8561 DEFINE_GUID(IID_IPropertyStorage, 0x00000138, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8562 #if defined(__cplusplus) && !defined(CINTERFACE)
8563 struct IPropertyStorage : public IUnknown
8565 virtual HRESULT STDMETHODCALLTYPE ReadMultiple(
8566 ULONG cpspec,
8567 const PROPSPEC rgpspec[],
8568 PROPVARIANT rgpropvar[]) = 0;
8570 virtual HRESULT STDMETHODCALLTYPE WriteMultiple(
8571 ULONG cpspec,
8572 const PROPSPEC rgpspec[],
8573 const PROPVARIANT rgpropvar[],
8574 PROPID propidNameFirst) = 0;
8576 virtual HRESULT STDMETHODCALLTYPE DeleteMultiple(
8577 ULONG cpspec,
8578 const PROPSPEC rgpspec[]) = 0;
8580 virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames(
8581 ULONG cpropid,
8582 const PROPID rgpropid[],
8583 LPOLESTR rglpwstrName[]) = 0;
8585 virtual HRESULT STDMETHODCALLTYPE WritePropertyNames(
8586 ULONG cpropid,
8587 const PROPID rgpropid[],
8588 const LPOLESTR rglpwstrName[]) = 0;
8590 virtual HRESULT STDMETHODCALLTYPE DeletePropertyNames(
8591 ULONG cpropid,
8592 const PROPID rgpropid[]) = 0;
8594 virtual HRESULT STDMETHODCALLTYPE Commit(
8595 DWORD grfCommitFlags) = 0;
8597 virtual HRESULT STDMETHODCALLTYPE Revert(
8598 ) = 0;
8600 virtual HRESULT STDMETHODCALLTYPE Enum(
8601 IEnumSTATPROPSTG** ppenum) = 0;
8603 virtual HRESULT STDMETHODCALLTYPE SetTimes(
8604 const FILETIME* pctime,
8605 const FILETIME* patime,
8606 const FILETIME* pmtime) = 0;
8608 virtual HRESULT STDMETHODCALLTYPE SetClass(
8609 REFCLSID clsid) = 0;
8611 virtual HRESULT STDMETHODCALLTYPE Stat(
8612 STATPROPSETSTG* statpsstg) = 0;
8615 #else
8616 typedef struct IPropertyStorageVtbl IPropertyStorageVtbl;
8617 struct IPropertyStorage {
8618 const IPropertyStorageVtbl* lpVtbl;
8620 struct IPropertyStorageVtbl {
8621 ICOM_MSVTABLE_COMPAT_FIELDS
8623 /*** IUnknown methods ***/
8624 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8625 IPropertyStorage* This,
8626 REFIID riid,
8627 void** ppvObject);
8629 ULONG (STDMETHODCALLTYPE *AddRef)(
8630 IPropertyStorage* This);
8632 ULONG (STDMETHODCALLTYPE *Release)(
8633 IPropertyStorage* This);
8635 /*** IPropertyStorage methods ***/
8636 HRESULT (STDMETHODCALLTYPE *ReadMultiple)(
8637 IPropertyStorage* This,
8638 ULONG cpspec,
8639 const PROPSPEC rgpspec[],
8640 PROPVARIANT rgpropvar[]);
8642 HRESULT (STDMETHODCALLTYPE *WriteMultiple)(
8643 IPropertyStorage* This,
8644 ULONG cpspec,
8645 const PROPSPEC rgpspec[],
8646 const PROPVARIANT rgpropvar[],
8647 PROPID propidNameFirst);
8649 HRESULT (STDMETHODCALLTYPE *DeleteMultiple)(
8650 IPropertyStorage* This,
8651 ULONG cpspec,
8652 const PROPSPEC rgpspec[]);
8654 HRESULT (STDMETHODCALLTYPE *ReadPropertyNames)(
8655 IPropertyStorage* This,
8656 ULONG cpropid,
8657 const PROPID rgpropid[],
8658 LPOLESTR rglpwstrName[]);
8660 HRESULT (STDMETHODCALLTYPE *WritePropertyNames)(
8661 IPropertyStorage* This,
8662 ULONG cpropid,
8663 const PROPID rgpropid[],
8664 const LPOLESTR rglpwstrName[]);
8666 HRESULT (STDMETHODCALLTYPE *DeletePropertyNames)(
8667 IPropertyStorage* This,
8668 ULONG cpropid,
8669 const PROPID rgpropid[]);
8671 HRESULT (STDMETHODCALLTYPE *Commit)(
8672 IPropertyStorage* This,
8673 DWORD grfCommitFlags);
8675 HRESULT (STDMETHODCALLTYPE *Revert)(
8676 IPropertyStorage* This);
8678 HRESULT (STDMETHODCALLTYPE *Enum)(
8679 IPropertyStorage* This,
8680 IEnumSTATPROPSTG** ppenum);
8682 HRESULT (STDMETHODCALLTYPE *SetTimes)(
8683 IPropertyStorage* This,
8684 const FILETIME* pctime,
8685 const FILETIME* patime,
8686 const FILETIME* pmtime);
8688 HRESULT (STDMETHODCALLTYPE *SetClass)(
8689 IPropertyStorage* This,
8690 REFCLSID clsid);
8692 HRESULT (STDMETHODCALLTYPE *Stat)(
8693 IPropertyStorage* This,
8694 STATPROPSETSTG* statpsstg);
8698 /*** IUnknown methods ***/
8699 #define IPropertyStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8700 #define IPropertyStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
8701 #define IPropertyStorage_Release(p) (p)->lpVtbl->Release(p)
8702 /*** IPropertyStorage methods ***/
8703 #define IPropertyStorage_ReadMultiple(p,a,b,c) (p)->lpVtbl->ReadMultiple(p,a,b,c)
8704 #define IPropertyStorage_WriteMultiple(p,a,b,c,d) (p)->lpVtbl->WriteMultiple(p,a,b,c,d)
8705 #define IPropertyStorage_DeleteMultiple(p,a,b) (p)->lpVtbl->DeleteMultiple(p,a,b)
8706 #define IPropertyStorage_ReadPropertyNames(p,a,b,c) (p)->lpVtbl->ReadPropertyNames(p,a,b,c)
8707 #define IPropertyStorage_WritePropertyNames(p,a,b,c) (p)->lpVtbl->WritePropertyNames(p,a,b,c)
8708 #define IPropertyStorage_DeletePropertyNames(p,a,b) (p)->lpVtbl->DeletePropertyNames(p,a,b)
8709 #define IPropertyStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
8710 #define IPropertyStorage_Revert(p) (p)->lpVtbl->Revert(p)
8711 #define IPropertyStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
8712 #define IPropertyStorage_SetTimes(p,a,b,c) (p)->lpVtbl->SetTimes(p,a,b,c)
8713 #define IPropertyStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
8714 #define IPropertyStorage_Stat(p,a) (p)->lpVtbl->Stat(p,a)
8716 #endif
8718 #define IPropertyStorage_METHODS \
8719 ICOM_MSVTABLE_COMPAT_FIELDS \
8720 /*** IUnknown methods ***/ \
8721 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8722 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8723 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8724 /*** IPropertyStorage methods ***/ \
8725 STDMETHOD_(HRESULT,ReadMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[], PROPVARIANT rgpropvar[]) PURE; \
8726 STDMETHOD_(HRESULT,WriteMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[], const PROPVARIANT rgpropvar[], PROPID propidNameFirst) PURE; \
8727 STDMETHOD_(HRESULT,DeleteMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[]) PURE; \
8728 STDMETHOD_(HRESULT,ReadPropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[], LPOLESTR rglpwstrName[]) PURE; \
8729 STDMETHOD_(HRESULT,WritePropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[], const LPOLESTR rglpwstrName[]) PURE; \
8730 STDMETHOD_(HRESULT,DeletePropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[]) PURE; \
8731 STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
8732 STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
8733 STDMETHOD_(HRESULT,Enum)(THIS_ IEnumSTATPROPSTG** ppenum) PURE; \
8734 STDMETHOD_(HRESULT,SetTimes)(THIS_ const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime) PURE; \
8735 STDMETHOD_(HRESULT,SetClass)(THIS_ REFCLSID clsid) PURE; \
8736 STDMETHOD_(HRESULT,Stat)(THIS_ STATPROPSETSTG* statpsstg) PURE;
8738 HRESULT CALLBACK IPropertyStorage_ReadMultiple_Proxy(
8739 IPropertyStorage* This,
8740 ULONG cpspec,
8741 const PROPSPEC rgpspec[],
8742 PROPVARIANT rgpropvar[]);
8743 void __RPC_STUB IPropertyStorage_ReadMultiple_Stub(
8744 struct IRpcStubBuffer* This,
8745 struct IRpcChannelBuffer* pRpcChannelBuffer,
8746 PRPC_MESSAGE pRpcMessage,
8747 DWORD* pdwStubPhase);
8748 HRESULT CALLBACK IPropertyStorage_WriteMultiple_Proxy(
8749 IPropertyStorage* This,
8750 ULONG cpspec,
8751 const PROPSPEC rgpspec[],
8752 const PROPVARIANT rgpropvar[],
8753 PROPID propidNameFirst);
8754 void __RPC_STUB IPropertyStorage_WriteMultiple_Stub(
8755 struct IRpcStubBuffer* This,
8756 struct IRpcChannelBuffer* pRpcChannelBuffer,
8757 PRPC_MESSAGE pRpcMessage,
8758 DWORD* pdwStubPhase);
8759 HRESULT CALLBACK IPropertyStorage_DeleteMultiple_Proxy(
8760 IPropertyStorage* This,
8761 ULONG cpspec,
8762 const PROPSPEC rgpspec[]);
8763 void __RPC_STUB IPropertyStorage_DeleteMultiple_Stub(
8764 struct IRpcStubBuffer* This,
8765 struct IRpcChannelBuffer* pRpcChannelBuffer,
8766 PRPC_MESSAGE pRpcMessage,
8767 DWORD* pdwStubPhase);
8768 HRESULT CALLBACK IPropertyStorage_ReadPropertyNames_Proxy(
8769 IPropertyStorage* This,
8770 ULONG cpropid,
8771 const PROPID rgpropid[],
8772 LPOLESTR rglpwstrName[]);
8773 void __RPC_STUB IPropertyStorage_ReadPropertyNames_Stub(
8774 struct IRpcStubBuffer* This,
8775 struct IRpcChannelBuffer* pRpcChannelBuffer,
8776 PRPC_MESSAGE pRpcMessage,
8777 DWORD* pdwStubPhase);
8778 HRESULT CALLBACK IPropertyStorage_WritePropertyNames_Proxy(
8779 IPropertyStorage* This,
8780 ULONG cpropid,
8781 const PROPID rgpropid[],
8782 const LPOLESTR rglpwstrName[]);
8783 void __RPC_STUB IPropertyStorage_WritePropertyNames_Stub(
8784 struct IRpcStubBuffer* This,
8785 struct IRpcChannelBuffer* pRpcChannelBuffer,
8786 PRPC_MESSAGE pRpcMessage,
8787 DWORD* pdwStubPhase);
8788 HRESULT CALLBACK IPropertyStorage_DeletePropertyNames_Proxy(
8789 IPropertyStorage* This,
8790 ULONG cpropid,
8791 const PROPID rgpropid[]);
8792 void __RPC_STUB IPropertyStorage_DeletePropertyNames_Stub(
8793 struct IRpcStubBuffer* This,
8794 struct IRpcChannelBuffer* pRpcChannelBuffer,
8795 PRPC_MESSAGE pRpcMessage,
8796 DWORD* pdwStubPhase);
8797 HRESULT CALLBACK IPropertyStorage_Commit_Proxy(
8798 IPropertyStorage* This,
8799 DWORD grfCommitFlags);
8800 void __RPC_STUB IPropertyStorage_Commit_Stub(
8801 struct IRpcStubBuffer* This,
8802 struct IRpcChannelBuffer* pRpcChannelBuffer,
8803 PRPC_MESSAGE pRpcMessage,
8804 DWORD* pdwStubPhase);
8805 HRESULT CALLBACK IPropertyStorage_Revert_Proxy(
8806 IPropertyStorage* This);
8807 void __RPC_STUB IPropertyStorage_Revert_Stub(
8808 struct IRpcStubBuffer* This,
8809 struct IRpcChannelBuffer* pRpcChannelBuffer,
8810 PRPC_MESSAGE pRpcMessage,
8811 DWORD* pdwStubPhase);
8812 HRESULT CALLBACK IPropertyStorage_Enum_Proxy(
8813 IPropertyStorage* This,
8814 IEnumSTATPROPSTG** ppenum);
8815 void __RPC_STUB IPropertyStorage_Enum_Stub(
8816 struct IRpcStubBuffer* This,
8817 struct IRpcChannelBuffer* pRpcChannelBuffer,
8818 PRPC_MESSAGE pRpcMessage,
8819 DWORD* pdwStubPhase);
8820 HRESULT CALLBACK IPropertyStorage_SetTimes_Proxy(
8821 IPropertyStorage* This,
8822 const FILETIME* pctime,
8823 const FILETIME* patime,
8824 const FILETIME* pmtime);
8825 void __RPC_STUB IPropertyStorage_SetTimes_Stub(
8826 struct IRpcStubBuffer* This,
8827 struct IRpcChannelBuffer* pRpcChannelBuffer,
8828 PRPC_MESSAGE pRpcMessage,
8829 DWORD* pdwStubPhase);
8830 HRESULT CALLBACK IPropertyStorage_SetClass_Proxy(
8831 IPropertyStorage* This,
8832 REFCLSID clsid);
8833 void __RPC_STUB IPropertyStorage_SetClass_Stub(
8834 struct IRpcStubBuffer* This,
8835 struct IRpcChannelBuffer* pRpcChannelBuffer,
8836 PRPC_MESSAGE pRpcMessage,
8837 DWORD* pdwStubPhase);
8838 HRESULT CALLBACK IPropertyStorage_Stat_Proxy(
8839 IPropertyStorage* This,
8840 STATPROPSETSTG* statpsstg);
8841 void __RPC_STUB IPropertyStorage_Stat_Stub(
8842 struct IRpcStubBuffer* This,
8843 struct IRpcChannelBuffer* pRpcChannelBuffer,
8844 PRPC_MESSAGE pRpcMessage,
8845 DWORD* pdwStubPhase);
8847 #endif /* __IPropertyStorage_INTERFACE_DEFINED__ */
8849 #ifndef __IPropertySetStorage_FWD_DEFINED__
8850 #define __IPropertySetStorage_FWD_DEFINED__
8851 typedef struct IPropertySetStorage IPropertySetStorage;
8852 #endif
8854 typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
8856 /*****************************************************************************
8857 * IPropertySetStorage interface
8859 #ifndef __IPropertySetStorage_INTERFACE_DEFINED__
8860 #define __IPropertySetStorage_INTERFACE_DEFINED__
8862 DEFINE_GUID(IID_IPropertySetStorage, 0x0000013a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8863 #if defined(__cplusplus) && !defined(CINTERFACE)
8864 struct IPropertySetStorage : public IUnknown
8866 virtual HRESULT STDMETHODCALLTYPE Create(
8867 REFFMTID rfmtid,
8868 const CLSID* pclsid,
8869 DWORD grfFlags,
8870 DWORD grfMode,
8871 IPropertyStorage** ppprstg) = 0;
8873 virtual HRESULT STDMETHODCALLTYPE Open(
8874 REFFMTID rfmtid,
8875 DWORD grfMode,
8876 IPropertyStorage** ppprstg) = 0;
8878 virtual HRESULT STDMETHODCALLTYPE Delete(
8879 REFFMTID rfmtid) = 0;
8881 virtual HRESULT STDMETHODCALLTYPE Enum(
8882 IEnumSTATPROPSETSTG** ppenum) = 0;
8885 #else
8886 typedef struct IPropertySetStorageVtbl IPropertySetStorageVtbl;
8887 struct IPropertySetStorage {
8888 const IPropertySetStorageVtbl* lpVtbl;
8890 struct IPropertySetStorageVtbl {
8891 ICOM_MSVTABLE_COMPAT_FIELDS
8893 /*** IUnknown methods ***/
8894 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8895 IPropertySetStorage* This,
8896 REFIID riid,
8897 void** ppvObject);
8899 ULONG (STDMETHODCALLTYPE *AddRef)(
8900 IPropertySetStorage* This);
8902 ULONG (STDMETHODCALLTYPE *Release)(
8903 IPropertySetStorage* This);
8905 /*** IPropertySetStorage methods ***/
8906 HRESULT (STDMETHODCALLTYPE *Create)(
8907 IPropertySetStorage* This,
8908 REFFMTID rfmtid,
8909 const CLSID* pclsid,
8910 DWORD grfFlags,
8911 DWORD grfMode,
8912 IPropertyStorage** ppprstg);
8914 HRESULT (STDMETHODCALLTYPE *Open)(
8915 IPropertySetStorage* This,
8916 REFFMTID rfmtid,
8917 DWORD grfMode,
8918 IPropertyStorage** ppprstg);
8920 HRESULT (STDMETHODCALLTYPE *Delete)(
8921 IPropertySetStorage* This,
8922 REFFMTID rfmtid);
8924 HRESULT (STDMETHODCALLTYPE *Enum)(
8925 IPropertySetStorage* This,
8926 IEnumSTATPROPSETSTG** ppenum);
8930 /*** IUnknown methods ***/
8931 #define IPropertySetStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8932 #define IPropertySetStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
8933 #define IPropertySetStorage_Release(p) (p)->lpVtbl->Release(p)
8934 /*** IPropertySetStorage methods ***/
8935 #define IPropertySetStorage_Create(p,a,b,c,d,e) (p)->lpVtbl->Create(p,a,b,c,d,e)
8936 #define IPropertySetStorage_Open(p,a,b,c) (p)->lpVtbl->Open(p,a,b,c)
8937 #define IPropertySetStorage_Delete(p,a) (p)->lpVtbl->Delete(p,a)
8938 #define IPropertySetStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
8940 #endif
8942 #define IPropertySetStorage_METHODS \
8943 ICOM_MSVTABLE_COMPAT_FIELDS \
8944 /*** IUnknown methods ***/ \
8945 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
8946 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
8947 STDMETHOD_(ULONG,Release)(THIS) PURE; \
8948 /*** IPropertySetStorage methods ***/ \
8949 STDMETHOD_(HRESULT,Create)(THIS_ REFFMTID rfmtid, const CLSID* pclsid, DWORD grfFlags, DWORD grfMode, IPropertyStorage** ppprstg) PURE; \
8950 STDMETHOD_(HRESULT,Open)(THIS_ REFFMTID rfmtid, DWORD grfMode, IPropertyStorage** ppprstg) PURE; \
8951 STDMETHOD_(HRESULT,Delete)(THIS_ REFFMTID rfmtid) PURE; \
8952 STDMETHOD_(HRESULT,Enum)(THIS_ IEnumSTATPROPSETSTG** ppenum) PURE;
8954 HRESULT CALLBACK IPropertySetStorage_Create_Proxy(
8955 IPropertySetStorage* This,
8956 REFFMTID rfmtid,
8957 const CLSID* pclsid,
8958 DWORD grfFlags,
8959 DWORD grfMode,
8960 IPropertyStorage** ppprstg);
8961 void __RPC_STUB IPropertySetStorage_Create_Stub(
8962 struct IRpcStubBuffer* This,
8963 struct IRpcChannelBuffer* pRpcChannelBuffer,
8964 PRPC_MESSAGE pRpcMessage,
8965 DWORD* pdwStubPhase);
8966 HRESULT CALLBACK IPropertySetStorage_Open_Proxy(
8967 IPropertySetStorage* This,
8968 REFFMTID rfmtid,
8969 DWORD grfMode,
8970 IPropertyStorage** ppprstg);
8971 void __RPC_STUB IPropertySetStorage_Open_Stub(
8972 struct IRpcStubBuffer* This,
8973 struct IRpcChannelBuffer* pRpcChannelBuffer,
8974 PRPC_MESSAGE pRpcMessage,
8975 DWORD* pdwStubPhase);
8976 HRESULT CALLBACK IPropertySetStorage_Delete_Proxy(
8977 IPropertySetStorage* This,
8978 REFFMTID rfmtid);
8979 void __RPC_STUB IPropertySetStorage_Delete_Stub(
8980 struct IRpcStubBuffer* This,
8981 struct IRpcChannelBuffer* pRpcChannelBuffer,
8982 PRPC_MESSAGE pRpcMessage,
8983 DWORD* pdwStubPhase);
8984 HRESULT CALLBACK IPropertySetStorage_Enum_Proxy(
8985 IPropertySetStorage* This,
8986 IEnumSTATPROPSETSTG** ppenum);
8987 void __RPC_STUB IPropertySetStorage_Enum_Stub(
8988 struct IRpcStubBuffer* This,
8989 struct IRpcChannelBuffer* pRpcChannelBuffer,
8990 PRPC_MESSAGE pRpcMessage,
8991 DWORD* pdwStubPhase);
8993 #endif /* __IPropertySetStorage_INTERFACE_DEFINED__ */
8995 typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
8997 /*****************************************************************************
8998 * IEnumSTATPROPSTG interface
9000 #ifndef __IEnumSTATPROPSTG_INTERFACE_DEFINED__
9001 #define __IEnumSTATPROPSTG_INTERFACE_DEFINED__
9003 DEFINE_GUID(IID_IEnumSTATPROPSTG, 0x00000139, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9004 #if defined(__cplusplus) && !defined(CINTERFACE)
9005 struct IEnumSTATPROPSTG : public IUnknown
9007 virtual HRESULT STDMETHODCALLTYPE Next(
9008 ULONG celt,
9009 STATPROPSTG* rgelt,
9010 ULONG* pceltFetched) = 0;
9012 virtual HRESULT STDMETHODCALLTYPE Skip(
9013 ULONG celt) = 0;
9015 virtual HRESULT STDMETHODCALLTYPE Reset(
9016 ) = 0;
9018 virtual HRESULT STDMETHODCALLTYPE Clone(
9019 IEnumSTATPROPSTG** ppenum) = 0;
9022 #else
9023 typedef struct IEnumSTATPROPSTGVtbl IEnumSTATPROPSTGVtbl;
9024 struct IEnumSTATPROPSTG {
9025 const IEnumSTATPROPSTGVtbl* lpVtbl;
9027 struct IEnumSTATPROPSTGVtbl {
9028 ICOM_MSVTABLE_COMPAT_FIELDS
9030 /*** IUnknown methods ***/
9031 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9032 IEnumSTATPROPSTG* This,
9033 REFIID riid,
9034 void** ppvObject);
9036 ULONG (STDMETHODCALLTYPE *AddRef)(
9037 IEnumSTATPROPSTG* This);
9039 ULONG (STDMETHODCALLTYPE *Release)(
9040 IEnumSTATPROPSTG* This);
9042 /*** IEnumSTATPROPSTG methods ***/
9043 HRESULT (STDMETHODCALLTYPE *Next)(
9044 IEnumSTATPROPSTG* This,
9045 ULONG celt,
9046 STATPROPSTG* rgelt,
9047 ULONG* pceltFetched);
9049 HRESULT (STDMETHODCALLTYPE *Skip)(
9050 IEnumSTATPROPSTG* This,
9051 ULONG celt);
9053 HRESULT (STDMETHODCALLTYPE *Reset)(
9054 IEnumSTATPROPSTG* This);
9056 HRESULT (STDMETHODCALLTYPE *Clone)(
9057 IEnumSTATPROPSTG* This,
9058 IEnumSTATPROPSTG** ppenum);
9062 /*** IUnknown methods ***/
9063 #define IEnumSTATPROPSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
9064 #define IEnumSTATPROPSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
9065 #define IEnumSTATPROPSTG_Release(p) (p)->lpVtbl->Release(p)
9066 /*** IEnumSTATPROPSTG methods ***/
9067 #define IEnumSTATPROPSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
9068 #define IEnumSTATPROPSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
9069 #define IEnumSTATPROPSTG_Reset(p) (p)->lpVtbl->Reset(p)
9070 #define IEnumSTATPROPSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
9072 #endif
9074 #define IEnumSTATPROPSTG_METHODS \
9075 ICOM_MSVTABLE_COMPAT_FIELDS \
9076 /*** IUnknown methods ***/ \
9077 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
9078 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
9079 STDMETHOD_(ULONG,Release)(THIS) PURE; \
9080 /*** IEnumSTATPROPSTG methods ***/ \
9081 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATPROPSTG* rgelt, ULONG* pceltFetched) PURE; \
9082 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
9083 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
9084 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATPROPSTG** ppenum) PURE;
9086 HRESULT CALLBACK IEnumSTATPROPSTG_RemoteNext_Proxy(
9087 IEnumSTATPROPSTG* This,
9088 ULONG celt,
9089 STATPROPSTG* rgelt,
9090 ULONG* pceltFetched);
9091 void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(
9092 struct IRpcStubBuffer* This,
9093 struct IRpcChannelBuffer* pRpcChannelBuffer,
9094 PRPC_MESSAGE pRpcMessage,
9095 DWORD* pdwStubPhase);
9096 HRESULT CALLBACK IEnumSTATPROPSTG_Next_Proxy(
9097 IEnumSTATPROPSTG* This,
9098 ULONG celt,
9099 STATPROPSTG* rgelt,
9100 ULONG* pceltFetched);
9101 HRESULT __RPC_STUB IEnumSTATPROPSTG_Next_Stub(
9102 IEnumSTATPROPSTG* This,
9103 ULONG celt,
9104 STATPROPSTG* rgelt,
9105 ULONG* pceltFetched);
9106 HRESULT CALLBACK IEnumSTATPROPSTG_Skip_Proxy(
9107 IEnumSTATPROPSTG* This,
9108 ULONG celt);
9109 void __RPC_STUB IEnumSTATPROPSTG_Skip_Stub(
9110 struct IRpcStubBuffer* This,
9111 struct IRpcChannelBuffer* pRpcChannelBuffer,
9112 PRPC_MESSAGE pRpcMessage,
9113 DWORD* pdwStubPhase);
9114 HRESULT CALLBACK IEnumSTATPROPSTG_Reset_Proxy(
9115 IEnumSTATPROPSTG* This);
9116 void __RPC_STUB IEnumSTATPROPSTG_Reset_Stub(
9117 struct IRpcStubBuffer* This,
9118 struct IRpcChannelBuffer* pRpcChannelBuffer,
9119 PRPC_MESSAGE pRpcMessage,
9120 DWORD* pdwStubPhase);
9121 HRESULT CALLBACK IEnumSTATPROPSTG_Clone_Proxy(
9122 IEnumSTATPROPSTG* This,
9123 IEnumSTATPROPSTG** ppenum);
9124 void __RPC_STUB IEnumSTATPROPSTG_Clone_Stub(
9125 struct IRpcStubBuffer* This,
9126 struct IRpcChannelBuffer* pRpcChannelBuffer,
9127 PRPC_MESSAGE pRpcMessage,
9128 DWORD* pdwStubPhase);
9130 #endif /* __IEnumSTATPROPSTG_INTERFACE_DEFINED__ */
9132 typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
9134 /*****************************************************************************
9135 * IEnumSTATPROPSETSTG interface
9137 #ifndef __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
9138 #define __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
9140 DEFINE_GUID(IID_IEnumSTATPROPSETSTG, 0x0000013b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9141 #if defined(__cplusplus) && !defined(CINTERFACE)
9142 struct IEnumSTATPROPSETSTG : public IUnknown
9144 virtual HRESULT STDMETHODCALLTYPE Next(
9145 ULONG celt,
9146 STATPROPSETSTG* rgelt,
9147 ULONG* pceltFetched) = 0;
9149 virtual HRESULT STDMETHODCALLTYPE Skip(
9150 ULONG celt) = 0;
9152 virtual HRESULT STDMETHODCALLTYPE Reset(
9153 ) = 0;
9155 virtual HRESULT STDMETHODCALLTYPE Clone(
9156 IEnumSTATPROPSETSTG** ppenum) = 0;
9159 #else
9160 typedef struct IEnumSTATPROPSETSTGVtbl IEnumSTATPROPSETSTGVtbl;
9161 struct IEnumSTATPROPSETSTG {
9162 const IEnumSTATPROPSETSTGVtbl* lpVtbl;
9164 struct IEnumSTATPROPSETSTGVtbl {
9165 ICOM_MSVTABLE_COMPAT_FIELDS
9167 /*** IUnknown methods ***/
9168 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9169 IEnumSTATPROPSETSTG* This,
9170 REFIID riid,
9171 void** ppvObject);
9173 ULONG (STDMETHODCALLTYPE *AddRef)(
9174 IEnumSTATPROPSETSTG* This);
9176 ULONG (STDMETHODCALLTYPE *Release)(
9177 IEnumSTATPROPSETSTG* This);
9179 /*** IEnumSTATPROPSETSTG methods ***/
9180 HRESULT (STDMETHODCALLTYPE *Next)(
9181 IEnumSTATPROPSETSTG* This,
9182 ULONG celt,
9183 STATPROPSETSTG* rgelt,
9184 ULONG* pceltFetched);
9186 HRESULT (STDMETHODCALLTYPE *Skip)(
9187 IEnumSTATPROPSETSTG* This,
9188 ULONG celt);
9190 HRESULT (STDMETHODCALLTYPE *Reset)(
9191 IEnumSTATPROPSETSTG* This);
9193 HRESULT (STDMETHODCALLTYPE *Clone)(
9194 IEnumSTATPROPSETSTG* This,
9195 IEnumSTATPROPSETSTG** ppenum);
9199 /*** IUnknown methods ***/
9200 #define IEnumSTATPROPSETSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
9201 #define IEnumSTATPROPSETSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
9202 #define IEnumSTATPROPSETSTG_Release(p) (p)->lpVtbl->Release(p)
9203 /*** IEnumSTATPROPSETSTG methods ***/
9204 #define IEnumSTATPROPSETSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
9205 #define IEnumSTATPROPSETSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
9206 #define IEnumSTATPROPSETSTG_Reset(p) (p)->lpVtbl->Reset(p)
9207 #define IEnumSTATPROPSETSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
9209 #endif
9211 #define IEnumSTATPROPSETSTG_METHODS \
9212 ICOM_MSVTABLE_COMPAT_FIELDS \
9213 /*** IUnknown methods ***/ \
9214 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
9215 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
9216 STDMETHOD_(ULONG,Release)(THIS) PURE; \
9217 /*** IEnumSTATPROPSETSTG methods ***/ \
9218 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATPROPSETSTG* rgelt, ULONG* pceltFetched) PURE; \
9219 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
9220 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
9221 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATPROPSETSTG** ppenum) PURE;
9223 HRESULT CALLBACK IEnumSTATPROPSETSTG_RemoteNext_Proxy(
9224 IEnumSTATPROPSETSTG* This,
9225 ULONG celt,
9226 STATPROPSETSTG* rgelt,
9227 ULONG* pceltFetched);
9228 void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(
9229 struct IRpcStubBuffer* This,
9230 struct IRpcChannelBuffer* pRpcChannelBuffer,
9231 PRPC_MESSAGE pRpcMessage,
9232 DWORD* pdwStubPhase);
9233 HRESULT CALLBACK IEnumSTATPROPSETSTG_Next_Proxy(
9234 IEnumSTATPROPSETSTG* This,
9235 ULONG celt,
9236 STATPROPSETSTG* rgelt,
9237 ULONG* pceltFetched);
9238 HRESULT __RPC_STUB IEnumSTATPROPSETSTG_Next_Stub(
9239 IEnumSTATPROPSETSTG* This,
9240 ULONG celt,
9241 STATPROPSETSTG* rgelt,
9242 ULONG* pceltFetched);
9243 HRESULT CALLBACK IEnumSTATPROPSETSTG_Skip_Proxy(
9244 IEnumSTATPROPSETSTG* This,
9245 ULONG celt);
9246 void __RPC_STUB IEnumSTATPROPSETSTG_Skip_Stub(
9247 struct IRpcStubBuffer* This,
9248 struct IRpcChannelBuffer* pRpcChannelBuffer,
9249 PRPC_MESSAGE pRpcMessage,
9250 DWORD* pdwStubPhase);
9251 HRESULT CALLBACK IEnumSTATPROPSETSTG_Reset_Proxy(
9252 IEnumSTATPROPSETSTG* This);
9253 void __RPC_STUB IEnumSTATPROPSETSTG_Reset_Stub(
9254 struct IRpcStubBuffer* This,
9255 struct IRpcChannelBuffer* pRpcChannelBuffer,
9256 PRPC_MESSAGE pRpcMessage,
9257 DWORD* pdwStubPhase);
9258 HRESULT CALLBACK IEnumSTATPROPSETSTG_Clone_Proxy(
9259 IEnumSTATPROPSETSTG* This,
9260 IEnumSTATPROPSETSTG** ppenum);
9261 void __RPC_STUB IEnumSTATPROPSETSTG_Clone_Stub(
9262 struct IRpcStubBuffer* This,
9263 struct IRpcChannelBuffer* pRpcChannelBuffer,
9264 PRPC_MESSAGE pRpcMessage,
9265 DWORD* pdwStubPhase);
9267 #endif /* __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ */
9269 #ifndef __IClientSecurity_FWD_DEFINED__
9270 #define __IClientSecurity_FWD_DEFINED__
9271 typedef struct IClientSecurity IClientSecurity;
9272 #endif
9274 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
9275 DWORD dwAuthnSvc;
9276 DWORD dwAuthzSvc;
9277 OLECHAR *pPrincipalName;
9278 HRESULT hr;
9279 } SOLE_AUTHENTICATION_SERVICE;
9281 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
9283 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
9284 EOAC_NONE = 0x0,
9285 EOAC_MUTUAL_AUTH = 0x1,
9286 EOAC_CLOAKING = 0x10,
9287 EOAC_SECURE_REFS = 0x2,
9288 EOAC_ACCESS_CONTROL = 0x4,
9289 EOAC_APPID = 0x8
9290 } EOLE_AUTHENTICATION_CAPABILITIES;
9292 /*****************************************************************************
9293 * IClientSecurity interface
9295 #ifndef __IClientSecurity_INTERFACE_DEFINED__
9296 #define __IClientSecurity_INTERFACE_DEFINED__
9298 DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9299 #if defined(__cplusplus) && !defined(CINTERFACE)
9300 struct IClientSecurity : public IUnknown
9302 virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
9303 IUnknown* pProxy,
9304 DWORD* pAuthnSvc,
9305 DWORD* pAuthzSvc,
9306 OLECHAR** pServerPrincName,
9307 DWORD* pAuthnLevel,
9308 DWORD* pImpLevel,
9309 void** pAuthInfo,
9310 DWORD* pCapabilites) = 0;
9312 virtual HRESULT STDMETHODCALLTYPE SetBlanket(
9313 IUnknown* pProxy,
9314 DWORD AuthnSvc,
9315 DWORD AuthzSvc,
9316 OLECHAR* pServerPrincName,
9317 DWORD AuthnLevel,
9318 DWORD ImpLevel,
9319 void* pAuthInfo,
9320 DWORD Capabilities) = 0;
9322 virtual HRESULT STDMETHODCALLTYPE CopyProxy(
9323 IUnknown* pProxy,
9324 IUnknown** ppCopy) = 0;
9327 #else
9328 typedef struct IClientSecurityVtbl IClientSecurityVtbl;
9329 struct IClientSecurity {
9330 const IClientSecurityVtbl* lpVtbl;
9332 struct IClientSecurityVtbl {
9333 ICOM_MSVTABLE_COMPAT_FIELDS
9335 /*** IUnknown methods ***/
9336 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9337 IClientSecurity* This,
9338 REFIID riid,
9339 void** ppvObject);
9341 ULONG (STDMETHODCALLTYPE *AddRef)(
9342 IClientSecurity* This);
9344 ULONG (STDMETHODCALLTYPE *Release)(
9345 IClientSecurity* This);
9347 /*** IClientSecurity methods ***/
9348 HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
9349 IClientSecurity* This,
9350 IUnknown* pProxy,
9351 DWORD* pAuthnSvc,
9352 DWORD* pAuthzSvc,
9353 OLECHAR** pServerPrincName,
9354 DWORD* pAuthnLevel,
9355 DWORD* pImpLevel,
9356 void** pAuthInfo,
9357 DWORD* pCapabilites);
9359 HRESULT (STDMETHODCALLTYPE *SetBlanket)(
9360 IClientSecurity* This,
9361 IUnknown* pProxy,
9362 DWORD AuthnSvc,
9363 DWORD AuthzSvc,
9364 OLECHAR* pServerPrincName,
9365 DWORD AuthnLevel,
9366 DWORD ImpLevel,
9367 void* pAuthInfo,
9368 DWORD Capabilities);
9370 HRESULT (STDMETHODCALLTYPE *CopyProxy)(
9371 IClientSecurity* This,
9372 IUnknown* pProxy,
9373 IUnknown** ppCopy);
9377 /*** IUnknown methods ***/
9378 #define IClientSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
9379 #define IClientSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
9380 #define IClientSecurity_Release(p) (p)->lpVtbl->Release(p)
9381 /*** IClientSecurity methods ***/
9382 #define IClientSecurity_QueryBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g,h)
9383 #define IClientSecurity_SetBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->SetBlanket(p,a,b,c,d,e,f,g,h)
9384 #define IClientSecurity_CopyProxy(p,a,b) (p)->lpVtbl->CopyProxy(p,a,b)
9386 #endif
9388 #define IClientSecurity_METHODS \
9389 ICOM_MSVTABLE_COMPAT_FIELDS \
9390 /*** IUnknown methods ***/ \
9391 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
9392 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
9393 STDMETHOD_(ULONG,Release)(THIS) PURE; \
9394 /*** IClientSecurity methods ***/ \
9395 STDMETHOD_(HRESULT,QueryBlanket)(THIS_ IUnknown* pProxy, DWORD* pAuthnSvc, DWORD* pAuthzSvc, OLECHAR** pServerPrincName, DWORD* pAuthnLevel, DWORD* pImpLevel, void** pAuthInfo, DWORD* pCapabilites) PURE; \
9396 STDMETHOD_(HRESULT,SetBlanket)(THIS_ IUnknown* pProxy, DWORD AuthnSvc, DWORD AuthzSvc, OLECHAR* pServerPrincName, DWORD AuthnLevel, DWORD ImpLevel, void* pAuthInfo, DWORD Capabilities) PURE; \
9397 STDMETHOD_(HRESULT,CopyProxy)(THIS_ IUnknown* pProxy, IUnknown** ppCopy) PURE;
9399 HRESULT CALLBACK IClientSecurity_QueryBlanket_Proxy(
9400 IClientSecurity* This,
9401 IUnknown* pProxy,
9402 DWORD* pAuthnSvc,
9403 DWORD* pAuthzSvc,
9404 OLECHAR** pServerPrincName,
9405 DWORD* pAuthnLevel,
9406 DWORD* pImpLevel,
9407 void** pAuthInfo,
9408 DWORD* pCapabilites);
9409 void __RPC_STUB IClientSecurity_QueryBlanket_Stub(
9410 struct IRpcStubBuffer* This,
9411 struct IRpcChannelBuffer* pRpcChannelBuffer,
9412 PRPC_MESSAGE pRpcMessage,
9413 DWORD* pdwStubPhase);
9414 HRESULT CALLBACK IClientSecurity_SetBlanket_Proxy(
9415 IClientSecurity* This,
9416 IUnknown* pProxy,
9417 DWORD AuthnSvc,
9418 DWORD AuthzSvc,
9419 OLECHAR* pServerPrincName,
9420 DWORD AuthnLevel,
9421 DWORD ImpLevel,
9422 void* pAuthInfo,
9423 DWORD Capabilities);
9424 void __RPC_STUB IClientSecurity_SetBlanket_Stub(
9425 struct IRpcStubBuffer* This,
9426 struct IRpcChannelBuffer* pRpcChannelBuffer,
9427 PRPC_MESSAGE pRpcMessage,
9428 DWORD* pdwStubPhase);
9429 HRESULT CALLBACK IClientSecurity_CopyProxy_Proxy(
9430 IClientSecurity* This,
9431 IUnknown* pProxy,
9432 IUnknown** ppCopy);
9433 void __RPC_STUB IClientSecurity_CopyProxy_Stub(
9434 struct IRpcStubBuffer* This,
9435 struct IRpcChannelBuffer* pRpcChannelBuffer,
9436 PRPC_MESSAGE pRpcMessage,
9437 DWORD* pdwStubPhase);
9439 #endif /* __IClientSecurity_INTERFACE_DEFINED__ */
9441 #ifndef __IServerSecurity_FWD_DEFINED__
9442 #define __IServerSecurity_FWD_DEFINED__
9443 typedef struct IServerSecurity IServerSecurity;
9444 #endif
9446 /*****************************************************************************
9447 * IServerSecurity interface
9449 #ifndef __IServerSecurity_INTERFACE_DEFINED__
9450 #define __IServerSecurity_INTERFACE_DEFINED__
9452 DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9453 #if defined(__cplusplus) && !defined(CINTERFACE)
9454 struct IServerSecurity : public IUnknown
9456 virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
9457 DWORD* pAuthnSvc,
9458 DWORD* pAuthzSvc,
9459 OLECHAR** pServerPrincName,
9460 DWORD* pAuthnLevel,
9461 DWORD* pImpLevel,
9462 void** pPrivs,
9463 DWORD* pCapabilities) = 0;
9465 virtual HRESULT STDMETHODCALLTYPE ImpersonateClient(
9466 ) = 0;
9468 virtual HRESULT STDMETHODCALLTYPE RevertToSelf(
9469 ) = 0;
9471 virtual BOOL STDMETHODCALLTYPE IsImpersonating(
9472 ) = 0;
9475 #else
9476 typedef struct IServerSecurityVtbl IServerSecurityVtbl;
9477 struct IServerSecurity {
9478 const IServerSecurityVtbl* lpVtbl;
9480 struct IServerSecurityVtbl {
9481 ICOM_MSVTABLE_COMPAT_FIELDS
9483 /*** IUnknown methods ***/
9484 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9485 IServerSecurity* This,
9486 REFIID riid,
9487 void** ppvObject);
9489 ULONG (STDMETHODCALLTYPE *AddRef)(
9490 IServerSecurity* This);
9492 ULONG (STDMETHODCALLTYPE *Release)(
9493 IServerSecurity* This);
9495 /*** IServerSecurity methods ***/
9496 HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
9497 IServerSecurity* This,
9498 DWORD* pAuthnSvc,
9499 DWORD* pAuthzSvc,
9500 OLECHAR** pServerPrincName,
9501 DWORD* pAuthnLevel,
9502 DWORD* pImpLevel,
9503 void** pPrivs,
9504 DWORD* pCapabilities);
9506 HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(
9507 IServerSecurity* This);
9509 HRESULT (STDMETHODCALLTYPE *RevertToSelf)(
9510 IServerSecurity* This);
9512 BOOL (STDMETHODCALLTYPE *IsImpersonating)(
9513 IServerSecurity* This);
9517 /*** IUnknown methods ***/
9518 #define IServerSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
9519 #define IServerSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
9520 #define IServerSecurity_Release(p) (p)->lpVtbl->Release(p)
9521 /*** IServerSecurity methods ***/
9522 #define IServerSecurity_QueryBlanket(p,a,b,c,d,e,f,g) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g)
9523 #define IServerSecurity_ImpersonateClient(p) (p)->lpVtbl->ImpersonateClient(p)
9524 #define IServerSecurity_RevertToSelf(p) (p)->lpVtbl->RevertToSelf(p)
9525 #define IServerSecurity_IsImpersonating(p) (p)->lpVtbl->IsImpersonating(p)
9527 #endif
9529 #define IServerSecurity_METHODS \
9530 ICOM_MSVTABLE_COMPAT_FIELDS \
9531 /*** IUnknown methods ***/ \
9532 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
9533 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
9534 STDMETHOD_(ULONG,Release)(THIS) PURE; \
9535 /*** IServerSecurity methods ***/ \
9536 STDMETHOD_(HRESULT,QueryBlanket)(THIS_ DWORD* pAuthnSvc, DWORD* pAuthzSvc, OLECHAR** pServerPrincName, DWORD* pAuthnLevel, DWORD* pImpLevel, void** pPrivs, DWORD* pCapabilities) PURE; \
9537 STDMETHOD_(HRESULT,ImpersonateClient)(THIS) PURE; \
9538 STDMETHOD_(HRESULT,RevertToSelf)(THIS) PURE; \
9539 STDMETHOD_(BOOL,IsImpersonating)(THIS) PURE;
9541 HRESULT CALLBACK IServerSecurity_QueryBlanket_Proxy(
9542 IServerSecurity* This,
9543 DWORD* pAuthnSvc,
9544 DWORD* pAuthzSvc,
9545 OLECHAR** pServerPrincName,
9546 DWORD* pAuthnLevel,
9547 DWORD* pImpLevel,
9548 void** pPrivs,
9549 DWORD* pCapabilities);
9550 void __RPC_STUB IServerSecurity_QueryBlanket_Stub(
9551 struct IRpcStubBuffer* This,
9552 struct IRpcChannelBuffer* pRpcChannelBuffer,
9553 PRPC_MESSAGE pRpcMessage,
9554 DWORD* pdwStubPhase);
9555 HRESULT CALLBACK IServerSecurity_ImpersonateClient_Proxy(
9556 IServerSecurity* This);
9557 void __RPC_STUB IServerSecurity_ImpersonateClient_Stub(
9558 struct IRpcStubBuffer* This,
9559 struct IRpcChannelBuffer* pRpcChannelBuffer,
9560 PRPC_MESSAGE pRpcMessage,
9561 DWORD* pdwStubPhase);
9562 HRESULT CALLBACK IServerSecurity_RevertToSelf_Proxy(
9563 IServerSecurity* This);
9564 void __RPC_STUB IServerSecurity_RevertToSelf_Stub(
9565 struct IRpcStubBuffer* This,
9566 struct IRpcChannelBuffer* pRpcChannelBuffer,
9567 PRPC_MESSAGE pRpcMessage,
9568 DWORD* pdwStubPhase);
9569 BOOL CALLBACK IServerSecurity_IsImpersonating_Proxy(
9570 IServerSecurity* This);
9571 void __RPC_STUB IServerSecurity_IsImpersonating_Stub(
9572 struct IRpcStubBuffer* This,
9573 struct IRpcChannelBuffer* pRpcChannelBuffer,
9574 PRPC_MESSAGE pRpcMessage,
9575 DWORD* pdwStubPhase);
9577 #endif /* __IServerSecurity_INTERFACE_DEFINED__ */
9579 #ifndef __IAsyncSetup_FWD_DEFINED__
9580 #define __IAsyncSetup_FWD_DEFINED__
9581 typedef struct IAsyncSetup IAsyncSetup;
9582 #endif
9584 /*****************************************************************************
9585 * IAsyncSetup interface
9587 #ifndef __IAsyncSetup_INTERFACE_DEFINED__
9588 #define __IAsyncSetup_INTERFACE_DEFINED__
9590 DEFINE_GUID(IID_IAsyncSetup, 0x00000024, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9591 #if defined(__cplusplus) && !defined(CINTERFACE)
9592 struct IAsyncSetup : public IUnknown
9594 virtual HRESULT STDMETHODCALLTYPE GetAsyncManager(
9595 REFIID riid,
9596 IUnknown* pOuter,
9597 DWORD dwFlags,
9598 IUnknown** ppInner,
9599 IAsyncManager** ppAsyncMgr) = 0;
9602 #else
9603 typedef struct IAsyncSetupVtbl IAsyncSetupVtbl;
9604 struct IAsyncSetup {
9605 const IAsyncSetupVtbl* lpVtbl;
9607 struct IAsyncSetupVtbl {
9608 ICOM_MSVTABLE_COMPAT_FIELDS
9610 /*** IUnknown methods ***/
9611 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9612 IAsyncSetup* This,
9613 REFIID riid,
9614 void** ppvObject);
9616 ULONG (STDMETHODCALLTYPE *AddRef)(
9617 IAsyncSetup* This);
9619 ULONG (STDMETHODCALLTYPE *Release)(
9620 IAsyncSetup* This);
9622 /*** IAsyncSetup methods ***/
9623 HRESULT (STDMETHODCALLTYPE *GetAsyncManager)(
9624 IAsyncSetup* This,
9625 REFIID riid,
9626 IUnknown* pOuter,
9627 DWORD dwFlags,
9628 IUnknown** ppInner,
9629 IAsyncManager** ppAsyncMgr);
9633 /*** IUnknown methods ***/
9634 #define IAsyncSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
9635 #define IAsyncSetup_AddRef(p) (p)->lpVtbl->AddRef(p)
9636 #define IAsyncSetup_Release(p) (p)->lpVtbl->Release(p)
9637 /*** IAsyncSetup methods ***/
9638 #define IAsyncSetup_GetAsyncManager(p,a,b,c,d,e) (p)->lpVtbl->GetAsyncManager(p,a,b,c,d,e)
9640 #endif
9642 #define IAsyncSetup_METHODS \
9643 ICOM_MSVTABLE_COMPAT_FIELDS \
9644 /*** IUnknown methods ***/ \
9645 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
9646 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
9647 STDMETHOD_(ULONG,Release)(THIS) PURE; \
9648 /*** IAsyncSetup methods ***/ \
9649 STDMETHOD_(HRESULT,GetAsyncManager)(THIS_ REFIID riid, IUnknown* pOuter, DWORD dwFlags, IUnknown** ppInner, IAsyncManager** ppAsyncMgr) PURE;
9651 HRESULT CALLBACK IAsyncSetup_GetAsyncManager_Proxy(
9652 IAsyncSetup* This,
9653 REFIID riid,
9654 IUnknown* pOuter,
9655 DWORD dwFlags,
9656 IUnknown** ppInner,
9657 IAsyncManager** ppAsyncMgr);
9658 void __RPC_STUB IAsyncSetup_GetAsyncManager_Stub(
9659 struct IRpcStubBuffer* This,
9660 struct IRpcChannelBuffer* pRpcChannelBuffer,
9661 PRPC_MESSAGE pRpcMessage,
9662 DWORD* pdwStubPhase);
9664 #endif /* __IAsyncSetup_INTERFACE_DEFINED__ */
9666 typedef enum tagDCOM_CALL_STATE {
9667 DCOM_NONE = 0,
9668 DCOM_CALL_COMPLETE = 1,
9669 DCOM_CALL_CANCELED = 2
9670 } DCOM_CALL_STATE;
9672 /*****************************************************************************
9673 * IAsyncManager interface
9675 #ifndef __IAsyncManager_INTERFACE_DEFINED__
9676 #define __IAsyncManager_INTERFACE_DEFINED__
9678 DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9679 #if defined(__cplusplus) && !defined(CINTERFACE)
9680 struct IAsyncManager : public IUnknown
9682 virtual HRESULT STDMETHODCALLTYPE CompleteCall(
9683 HRESULT Result) = 0;
9685 virtual HRESULT STDMETHODCALLTYPE GetCallContext(
9686 REFIID riid,
9687 void** pInterface) = 0;
9689 virtual HRESULT STDMETHODCALLTYPE GetState(
9690 ULONG* pulStateFlags) = 0;
9693 #else
9694 typedef struct IAsyncManagerVtbl IAsyncManagerVtbl;
9695 struct IAsyncManager {
9696 const IAsyncManagerVtbl* lpVtbl;
9698 struct IAsyncManagerVtbl {
9699 ICOM_MSVTABLE_COMPAT_FIELDS
9701 /*** IUnknown methods ***/
9702 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9703 IAsyncManager* This,
9704 REFIID riid,
9705 void** ppvObject);
9707 ULONG (STDMETHODCALLTYPE *AddRef)(
9708 IAsyncManager* This);
9710 ULONG (STDMETHODCALLTYPE *Release)(
9711 IAsyncManager* This);
9713 /*** IAsyncManager methods ***/
9714 HRESULT (STDMETHODCALLTYPE *CompleteCall)(
9715 IAsyncManager* This,
9716 HRESULT Result);
9718 HRESULT (STDMETHODCALLTYPE *GetCallContext)(
9719 IAsyncManager* This,
9720 REFIID riid,
9721 void** pInterface);
9723 HRESULT (STDMETHODCALLTYPE *GetState)(
9724 IAsyncManager* This,
9725 ULONG* pulStateFlags);
9729 /*** IUnknown methods ***/
9730 #define IAsyncManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
9731 #define IAsyncManager_AddRef(p) (p)->lpVtbl->AddRef(p)
9732 #define IAsyncManager_Release(p) (p)->lpVtbl->Release(p)
9733 /*** IAsyncManager methods ***/
9734 #define IAsyncManager_CompleteCall(p,a) (p)->lpVtbl->CompleteCall(p,a)
9735 #define IAsyncManager_GetCallContext(p,a,b) (p)->lpVtbl->GetCallContext(p,a,b)
9736 #define IAsyncManager_GetState(p,a) (p)->lpVtbl->GetState(p,a)
9738 #endif
9740 #define IAsyncManager_METHODS \
9741 ICOM_MSVTABLE_COMPAT_FIELDS \
9742 /*** IUnknown methods ***/ \
9743 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
9744 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
9745 STDMETHOD_(ULONG,Release)(THIS) PURE; \
9746 /*** IAsyncManager methods ***/ \
9747 STDMETHOD_(HRESULT,CompleteCall)(THIS_ HRESULT Result) PURE; \
9748 STDMETHOD_(HRESULT,GetCallContext)(THIS_ REFIID riid, void** pInterface) PURE; \
9749 STDMETHOD_(HRESULT,GetState)(THIS_ ULONG* pulStateFlags) PURE;
9751 HRESULT CALLBACK IAsyncManager_CompleteCall_Proxy(
9752 IAsyncManager* This,
9753 HRESULT Result);
9754 void __RPC_STUB IAsyncManager_CompleteCall_Stub(
9755 struct IRpcStubBuffer* This,
9756 struct IRpcChannelBuffer* pRpcChannelBuffer,
9757 PRPC_MESSAGE pRpcMessage,
9758 DWORD* pdwStubPhase);
9759 HRESULT CALLBACK IAsyncManager_GetCallContext_Proxy(
9760 IAsyncManager* This,
9761 REFIID riid,
9762 void** pInterface);
9763 void __RPC_STUB IAsyncManager_GetCallContext_Stub(
9764 struct IRpcStubBuffer* This,
9765 struct IRpcChannelBuffer* pRpcChannelBuffer,
9766 PRPC_MESSAGE pRpcMessage,
9767 DWORD* pdwStubPhase);
9768 HRESULT CALLBACK IAsyncManager_GetState_Proxy(
9769 IAsyncManager* This,
9770 ULONG* pulStateFlags);
9771 void __RPC_STUB IAsyncManager_GetState_Stub(
9772 struct IRpcStubBuffer* This,
9773 struct IRpcChannelBuffer* pRpcChannelBuffer,
9774 PRPC_MESSAGE pRpcMessage,
9775 DWORD* pdwStubPhase);
9777 #endif /* __IAsyncManager_INTERFACE_DEFINED__ */
9779 #ifdef __cplusplus
9781 #endif
9782 #endif /* __WIDL_OBJIDL_H */