DSB.SetFormat:Trace the requested format as soon as possible in case
[wine/wine-kai.git] / include / objidl.h
blob4752d9e3da8f01aaedc59d659ec5bc45a42ac633
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 typedef struct IStream IStream;
12 typedef struct IStream16 IStream16;
13 typedef struct IEnumString IEnumString;
14 typedef struct IRunningObjectTable IRunningObjectTable;
15 typedef struct IMoniker IMoniker;
16 typedef struct IAdviseSink IAdviseSink;
17 typedef struct IAsyncManager IAsyncManager;
18 typedef struct IMarshal IMarshal;
19 typedef IMarshal *LPMARSHAL;
21 /*****************************************************************************
22 * IMarshal interface
24 DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
25 #if defined(__cplusplus) && !defined(CINTERFACE)
26 struct IMarshal: IUnknown {
28 virtual HRESULT CALLBACK GetUnmarshalClass(
29 REFIID riid,
30 void* pv,
31 DWORD dwDestContext,
32 void* pvDestContext,
33 DWORD mshlflags,
34 CLSID* pCid) = 0;
36 virtual HRESULT CALLBACK GetMarshalSizeMax(
37 REFIID riid,
38 void* pv,
39 DWORD dwDestContext,
40 void* pvDestContext,
41 DWORD mshlflags,
42 DWORD* pSize) = 0;
44 virtual HRESULT CALLBACK MarshalInterface(
45 IStream* pStm,
46 REFIID riid,
47 void* pv,
48 DWORD dwDestContext,
49 void* pvDestContext,
50 DWORD mshlflags) = 0;
52 virtual HRESULT CALLBACK UnmarshalInterface(
53 IStream* pStm,
54 REFIID riid,
55 void** ppv) = 0;
57 virtual HRESULT CALLBACK ReleaseMarshalData(
58 IStream* pStm) = 0;
60 virtual HRESULT CALLBACK DisconnectObject(
61 DWORD dwReserved) = 0;
63 } ICOM_COM_INTERFACE_ATTRIBUTE;
64 #else
65 typedef struct IMarshalVtbl IMarshalVtbl;
66 struct IMarshal {
67 const IMarshalVtbl* lpVtbl;
69 struct IMarshalVtbl {
70 ICOM_MSVTABLE_COMPAT_FIELDS
72 /*** IUnknown methods ***/
73 HRESULT (CALLBACK *QueryInterface)(
74 IMarshal* This,
75 REFIID riid,
76 void** ppvObject);
78 ULONG (CALLBACK *AddRef)(
79 IMarshal* This);
81 ULONG (CALLBACK *Release)(
82 IMarshal* This);
84 /*** IMarshal methods ***/
85 HRESULT (CALLBACK *GetUnmarshalClass)(
86 IMarshal* This,
87 REFIID riid,
88 void* pv,
89 DWORD dwDestContext,
90 void* pvDestContext,
91 DWORD mshlflags,
92 CLSID* pCid);
94 HRESULT (CALLBACK *GetMarshalSizeMax)(
95 IMarshal* This,
96 REFIID riid,
97 void* pv,
98 DWORD dwDestContext,
99 void* pvDestContext,
100 DWORD mshlflags,
101 DWORD* pSize);
103 HRESULT (CALLBACK *MarshalInterface)(
104 IMarshal* This,
105 IStream* pStm,
106 REFIID riid,
107 void* pv,
108 DWORD dwDestContext,
109 void* pvDestContext,
110 DWORD mshlflags);
112 HRESULT (CALLBACK *UnmarshalInterface)(
113 IMarshal* This,
114 IStream* pStm,
115 REFIID riid,
116 void** ppv);
118 HRESULT (CALLBACK *ReleaseMarshalData)(
119 IMarshal* This,
120 IStream* pStm);
122 HRESULT (CALLBACK *DisconnectObject)(
123 IMarshal* This,
124 DWORD dwReserved);
128 #define IMarshal_IMETHODS \
129 IUnknown_IMETHODS \
130 ICOM_METHOD6 (HRESULT,GetUnmarshalClass,REFIID,riid,void*,pv,DWORD,dwDestContext,void*,pvDestContext,DWORD,mshlflags,CLSID*,pCid) \
131 ICOM_METHOD6 (HRESULT,GetMarshalSizeMax,REFIID,riid,void*,pv,DWORD,dwDestContext,void*,pvDestContext,DWORD,mshlflags,DWORD*,pSize) \
132 ICOM_METHOD6 (HRESULT,MarshalInterface,IStream*,pStm,REFIID,riid,void*,pv,DWORD,dwDestContext,void*,pvDestContext,DWORD,mshlflags) \
133 ICOM_METHOD3 (HRESULT,UnmarshalInterface,IStream*,pStm,REFIID,riid,void**,ppv) \
134 ICOM_METHOD1 (HRESULT,ReleaseMarshalData,IStream*,pStm) \
135 ICOM_METHOD1 (HRESULT,DisconnectObject,DWORD,dwReserved)
137 /*** IUnknown methods ***/
138 #define IMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
139 #define IMarshal_AddRef(p) (p)->lpVtbl->AddRef(p)
140 #define IMarshal_Release(p) (p)->lpVtbl->Release(p)
141 /*** IMarshal methods ***/
142 #define IMarshal_GetUnmarshalClass(p,a,b,c,d,e,f) (p)->lpVtbl->GetUnmarshalClass(p,a,b,c,d,e,f)
143 #define IMarshal_GetMarshalSizeMax(p,a,b,c,d,e,f) (p)->lpVtbl->GetMarshalSizeMax(p,a,b,c,d,e,f)
144 #define IMarshal_MarshalInterface(p,a,b,c,d,e,f) (p)->lpVtbl->MarshalInterface(p,a,b,c,d,e,f)
145 #define IMarshal_UnmarshalInterface(p,a,b,c) (p)->lpVtbl->UnmarshalInterface(p,a,b,c)
146 #define IMarshal_ReleaseMarshalData(p,a) (p)->lpVtbl->ReleaseMarshalData(p,a)
147 #define IMarshal_DisconnectObject(p,a) (p)->lpVtbl->DisconnectObject(p,a)
149 #endif
151 HRESULT CALLBACK IMarshal_GetUnmarshalClass_Proxy(
152 IMarshal* This,
153 REFIID riid,
154 void* pv,
155 DWORD dwDestContext,
156 void* pvDestContext,
157 DWORD mshlflags,
158 CLSID* pCid);
159 void __RPC_STUB IMarshal_GetUnmarshalClass_Stub(
160 struct IRpcStubBuffer* This,
161 struct IRpcChannelBuffer* pRpcChannelBuffer,
162 PRPC_MESSAGE pRpcMessage,
163 DWORD* pdwStubPhase);
164 HRESULT CALLBACK IMarshal_GetMarshalSizeMax_Proxy(
165 IMarshal* This,
166 REFIID riid,
167 void* pv,
168 DWORD dwDestContext,
169 void* pvDestContext,
170 DWORD mshlflags,
171 DWORD* pSize);
172 void __RPC_STUB IMarshal_GetMarshalSizeMax_Stub(
173 struct IRpcStubBuffer* This,
174 struct IRpcChannelBuffer* pRpcChannelBuffer,
175 PRPC_MESSAGE pRpcMessage,
176 DWORD* pdwStubPhase);
177 HRESULT CALLBACK IMarshal_MarshalInterface_Proxy(
178 IMarshal* This,
179 IStream* pStm,
180 REFIID riid,
181 void* pv,
182 DWORD dwDestContext,
183 void* pvDestContext,
184 DWORD mshlflags);
185 void __RPC_STUB IMarshal_MarshalInterface_Stub(
186 struct IRpcStubBuffer* This,
187 struct IRpcChannelBuffer* pRpcChannelBuffer,
188 PRPC_MESSAGE pRpcMessage,
189 DWORD* pdwStubPhase);
190 HRESULT CALLBACK IMarshal_UnmarshalInterface_Proxy(
191 IMarshal* This,
192 IStream* pStm,
193 REFIID riid,
194 void** ppv);
195 void __RPC_STUB IMarshal_UnmarshalInterface_Stub(
196 struct IRpcStubBuffer* This,
197 struct IRpcChannelBuffer* pRpcChannelBuffer,
198 PRPC_MESSAGE pRpcMessage,
199 DWORD* pdwStubPhase);
200 HRESULT CALLBACK IMarshal_ReleaseMarshalData_Proxy(
201 IMarshal* This,
202 IStream* pStm);
203 void __RPC_STUB IMarshal_ReleaseMarshalData_Stub(
204 struct IRpcStubBuffer* This,
205 struct IRpcChannelBuffer* pRpcChannelBuffer,
206 PRPC_MESSAGE pRpcMessage,
207 DWORD* pdwStubPhase);
208 HRESULT CALLBACK IMarshal_DisconnectObject_Proxy(
209 IMarshal* This,
210 DWORD dwReserved);
211 void __RPC_STUB IMarshal_DisconnectObject_Stub(
212 struct IRpcStubBuffer* This,
213 struct IRpcChannelBuffer* pRpcChannelBuffer,
214 PRPC_MESSAGE pRpcMessage,
215 DWORD* pdwStubPhase);
217 typedef struct IStdMarshalInfo IStdMarshalInfo;
218 typedef IStdMarshalInfo *LPSTDMARSHALINFO;
220 /*****************************************************************************
221 * IStdMarshalInfo interface
223 DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
224 #if defined(__cplusplus) && !defined(CINTERFACE)
225 struct IStdMarshalInfo: IUnknown {
227 virtual HRESULT CALLBACK GetClassForHandler(
228 DWORD dwDestContext,
229 void* pvDestContext,
230 CLSID* pClsid) = 0;
232 } ICOM_COM_INTERFACE_ATTRIBUTE;
233 #else
234 typedef struct IStdMarshalInfoVtbl IStdMarshalInfoVtbl;
235 struct IStdMarshalInfo {
236 const IStdMarshalInfoVtbl* lpVtbl;
238 struct IStdMarshalInfoVtbl {
239 ICOM_MSVTABLE_COMPAT_FIELDS
241 /*** IUnknown methods ***/
242 HRESULT (CALLBACK *QueryInterface)(
243 IStdMarshalInfo* This,
244 REFIID riid,
245 void** ppvObject);
247 ULONG (CALLBACK *AddRef)(
248 IStdMarshalInfo* This);
250 ULONG (CALLBACK *Release)(
251 IStdMarshalInfo* This);
253 /*** IStdMarshalInfo methods ***/
254 HRESULT (CALLBACK *GetClassForHandler)(
255 IStdMarshalInfo* This,
256 DWORD dwDestContext,
257 void* pvDestContext,
258 CLSID* pClsid);
262 #define IStdMarshalInfo_IMETHODS \
263 IUnknown_IMETHODS \
264 ICOM_METHOD3 (HRESULT,GetClassForHandler,DWORD,dwDestContext,void*,pvDestContext,CLSID*,pClsid)
266 /*** IUnknown methods ***/
267 #define IStdMarshalInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
268 #define IStdMarshalInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
269 #define IStdMarshalInfo_Release(p) (p)->lpVtbl->Release(p)
270 /*** IStdMarshalInfo methods ***/
271 #define IStdMarshalInfo_GetClassForHandler(p,a,b,c) (p)->lpVtbl->GetClassForHandler(p,a,b,c)
273 #endif
275 HRESULT CALLBACK IStdMarshalInfo_GetClassForHandler_Proxy(
276 IStdMarshalInfo* This,
277 DWORD dwDestContext,
278 void* pvDestContext,
279 CLSID* pClsid);
280 void __RPC_STUB IStdMarshalInfo_GetClassForHandler_Stub(
281 struct IRpcStubBuffer* This,
282 struct IRpcChannelBuffer* pRpcChannelBuffer,
283 PRPC_MESSAGE pRpcMessage,
284 DWORD* pdwStubPhase);
286 typedef struct IExternalConnection IExternalConnection;
287 typedef IExternalConnection *LPEXTERNALCONNECTION;
289 typedef enum tagEXTCONN {
290 EXTCONN_STRONG = 0x1,
291 EXTCONN_WEAK = 0x2,
292 EXTCONN_CALLABLE = 0x4
293 } EXTCONN;
295 /*****************************************************************************
296 * IExternalConnection interface
298 DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
299 #if defined(__cplusplus) && !defined(CINTERFACE)
300 struct IExternalConnection: IUnknown {
302 virtual DWORD CALLBACK AddConnection(
303 DWORD extconn,
304 DWORD reserved) = 0;
306 virtual DWORD CALLBACK ReleaseConnection(
307 DWORD extconn,
308 DWORD reserved,
309 BOOL fLastReleaseCloses) = 0;
311 } ICOM_COM_INTERFACE_ATTRIBUTE;
312 #else
313 typedef struct IExternalConnectionVtbl IExternalConnectionVtbl;
314 struct IExternalConnection {
315 const IExternalConnectionVtbl* lpVtbl;
317 struct IExternalConnectionVtbl {
318 ICOM_MSVTABLE_COMPAT_FIELDS
320 /*** IUnknown methods ***/
321 HRESULT (CALLBACK *QueryInterface)(
322 IExternalConnection* This,
323 REFIID riid,
324 void** ppvObject);
326 ULONG (CALLBACK *AddRef)(
327 IExternalConnection* This);
329 ULONG (CALLBACK *Release)(
330 IExternalConnection* This);
332 /*** IExternalConnection methods ***/
333 DWORD (CALLBACK *AddConnection)(
334 IExternalConnection* This,
335 DWORD extconn,
336 DWORD reserved);
338 DWORD (CALLBACK *ReleaseConnection)(
339 IExternalConnection* This,
340 DWORD extconn,
341 DWORD reserved,
342 BOOL fLastReleaseCloses);
346 #define IExternalConnection_IMETHODS \
347 IUnknown_IMETHODS \
348 ICOM_METHOD2 (DWORD,AddConnection,DWORD,extconn,DWORD,reserved) \
349 ICOM_METHOD3 (DWORD,ReleaseConnection,DWORD,extconn,DWORD,reserved,BOOL,fLastReleaseCloses)
351 /*** IUnknown methods ***/
352 #define IExternalConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
353 #define IExternalConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
354 #define IExternalConnection_Release(p) (p)->lpVtbl->Release(p)
355 /*** IExternalConnection methods ***/
356 #define IExternalConnection_AddConnection(p,a,b) (p)->lpVtbl->AddConnection(p,a,b)
357 #define IExternalConnection_ReleaseConnection(p,a,b,c) (p)->lpVtbl->ReleaseConnection(p,a,b,c)
359 #endif
361 DWORD CALLBACK IExternalConnection_AddConnection_Proxy(
362 IExternalConnection* This,
363 DWORD extconn,
364 DWORD reserved);
365 void __RPC_STUB IExternalConnection_AddConnection_Stub(
366 struct IRpcStubBuffer* This,
367 struct IRpcChannelBuffer* pRpcChannelBuffer,
368 PRPC_MESSAGE pRpcMessage,
369 DWORD* pdwStubPhase);
370 DWORD CALLBACK IExternalConnection_ReleaseConnection_Proxy(
371 IExternalConnection* This,
372 DWORD extconn,
373 DWORD reserved,
374 BOOL fLastReleaseCloses);
375 void __RPC_STUB IExternalConnection_ReleaseConnection_Stub(
376 struct IRpcStubBuffer* This,
377 struct IRpcChannelBuffer* pRpcChannelBuffer,
378 PRPC_MESSAGE pRpcMessage,
379 DWORD* pdwStubPhase);
381 typedef struct IMultiQI IMultiQI;
382 typedef IMultiQI *LPMULTIQI;
384 typedef struct tagMULTI_QI {
385 const IID *pIID;
386 IUnknown *pItf;
387 HRESULT hr;
388 } MULTI_QI;
390 /*****************************************************************************
391 * IMultiQI interface
393 DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
394 #if defined(__cplusplus) && !defined(CINTERFACE)
395 struct IMultiQI: IUnknown {
397 virtual HRESULT CALLBACK QueryMultipleInterfaces(
398 ULONG cMQIs,
399 MULTI_QI* pMQIs) = 0;
401 } ICOM_COM_INTERFACE_ATTRIBUTE;
402 #else
403 typedef struct IMultiQIVtbl IMultiQIVtbl;
404 struct IMultiQI {
405 const IMultiQIVtbl* lpVtbl;
407 struct IMultiQIVtbl {
408 ICOM_MSVTABLE_COMPAT_FIELDS
410 /*** IUnknown methods ***/
411 HRESULT (CALLBACK *QueryInterface)(
412 IMultiQI* This,
413 REFIID riid,
414 void** ppvObject);
416 ULONG (CALLBACK *AddRef)(
417 IMultiQI* This);
419 ULONG (CALLBACK *Release)(
420 IMultiQI* This);
422 /*** IMultiQI methods ***/
423 HRESULT (CALLBACK *QueryMultipleInterfaces)(
424 IMultiQI* This,
425 ULONG cMQIs,
426 MULTI_QI* pMQIs);
430 #define IMultiQI_IMETHODS \
431 IUnknown_IMETHODS \
432 ICOM_METHOD2 (HRESULT,QueryMultipleInterfaces,ULONG,cMQIs,MULTI_QI*,pMQIs)
434 /*** IUnknown methods ***/
435 #define IMultiQI_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
436 #define IMultiQI_AddRef(p) (p)->lpVtbl->AddRef(p)
437 #define IMultiQI_Release(p) (p)->lpVtbl->Release(p)
438 /*** IMultiQI methods ***/
439 #define IMultiQI_QueryMultipleInterfaces(p,a,b) (p)->lpVtbl->QueryMultipleInterfaces(p,a,b)
441 #endif
443 HRESULT CALLBACK IMultiQI_QueryMultipleInterfaces_Proxy(
444 IMultiQI* This,
445 ULONG cMQIs,
446 MULTI_QI* pMQIs);
447 void __RPC_STUB IMultiQI_QueryMultipleInterfaces_Stub(
448 struct IRpcStubBuffer* This,
449 struct IRpcChannelBuffer* pRpcChannelBuffer,
450 PRPC_MESSAGE pRpcMessage,
451 DWORD* pdwStubPhase);
453 typedef struct IMalloc IMalloc;
454 typedef IMalloc *LPMALLOC;
456 /*****************************************************************************
457 * IMalloc interface
459 DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
460 #if defined(__cplusplus) && !defined(CINTERFACE)
461 struct IMalloc: IUnknown {
463 virtual LPVOID CALLBACK Alloc(
464 ULONG cb) = 0;
466 virtual LPVOID CALLBACK Realloc(
467 LPVOID pv,
468 ULONG cb) = 0;
470 virtual void CALLBACK Free(
471 LPVOID pv) = 0;
473 virtual ULONG CALLBACK GetSize(
474 LPVOID pv) = 0;
476 virtual int CALLBACK DidAlloc(
477 LPVOID pv) = 0;
479 virtual void CALLBACK HeapMinimize(
480 ) = 0;
482 } ICOM_COM_INTERFACE_ATTRIBUTE;
483 #else
484 typedef struct IMallocVtbl IMallocVtbl;
485 struct IMalloc {
486 const IMallocVtbl* lpVtbl;
488 struct IMallocVtbl {
489 ICOM_MSVTABLE_COMPAT_FIELDS
491 /*** IUnknown methods ***/
492 HRESULT (CALLBACK *QueryInterface)(
493 IMalloc* This,
494 REFIID riid,
495 void** ppvObject);
497 ULONG (CALLBACK *AddRef)(
498 IMalloc* This);
500 ULONG (CALLBACK *Release)(
501 IMalloc* This);
503 /*** IMalloc methods ***/
504 LPVOID (CALLBACK *Alloc)(
505 IMalloc* This,
506 ULONG cb);
508 LPVOID (CALLBACK *Realloc)(
509 IMalloc* This,
510 LPVOID pv,
511 ULONG cb);
513 void (CALLBACK *Free)(
514 IMalloc* This,
515 LPVOID pv);
517 ULONG (CALLBACK *GetSize)(
518 IMalloc* This,
519 LPVOID pv);
521 int (CALLBACK *DidAlloc)(
522 IMalloc* This,
523 LPVOID pv);
525 void (CALLBACK *HeapMinimize)(
526 IMalloc* This);
530 #define IMalloc_IMETHODS \
531 IUnknown_IMETHODS \
532 ICOM_METHOD1 (LPVOID,Alloc,ULONG,cb) \
533 ICOM_METHOD2 (LPVOID,Realloc,LPVOID,pv,ULONG,cb) \
534 ICOM_VMETHOD1(Free,LPVOID,pv) \
535 ICOM_METHOD1 (ULONG,GetSize,LPVOID,pv) \
536 ICOM_METHOD1 (int,DidAlloc,LPVOID,pv) \
537 ICOM_VMETHOD (HeapMinimize)
539 /*** IUnknown methods ***/
540 #define IMalloc_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
541 #define IMalloc_AddRef(p) (p)->lpVtbl->AddRef(p)
542 #define IMalloc_Release(p) (p)->lpVtbl->Release(p)
543 /*** IMalloc methods ***/
544 #define IMalloc_Alloc(p,a) (p)->lpVtbl->Alloc(p,a)
545 #define IMalloc_Realloc(p,a,b) (p)->lpVtbl->Realloc(p,a,b)
546 #define IMalloc_Free(p,a) (p)->lpVtbl->Free(p,a)
547 #define IMalloc_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
548 #define IMalloc_DidAlloc(p,a) (p)->lpVtbl->DidAlloc(p,a)
549 #define IMalloc_HeapMinimize(p) (p)->lpVtbl->HeapMinimize(p)
551 #endif
553 LPVOID CALLBACK IMalloc_Alloc_Proxy(
554 IMalloc* This,
555 ULONG cb);
556 void __RPC_STUB IMalloc_Alloc_Stub(
557 struct IRpcStubBuffer* This,
558 struct IRpcChannelBuffer* pRpcChannelBuffer,
559 PRPC_MESSAGE pRpcMessage,
560 DWORD* pdwStubPhase);
561 LPVOID CALLBACK IMalloc_Realloc_Proxy(
562 IMalloc* This,
563 LPVOID pv,
564 ULONG cb);
565 void __RPC_STUB IMalloc_Realloc_Stub(
566 struct IRpcStubBuffer* This,
567 struct IRpcChannelBuffer* pRpcChannelBuffer,
568 PRPC_MESSAGE pRpcMessage,
569 DWORD* pdwStubPhase);
570 void CALLBACK IMalloc_Free_Proxy(
571 IMalloc* This,
572 LPVOID pv);
573 void __RPC_STUB IMalloc_Free_Stub(
574 struct IRpcStubBuffer* This,
575 struct IRpcChannelBuffer* pRpcChannelBuffer,
576 PRPC_MESSAGE pRpcMessage,
577 DWORD* pdwStubPhase);
578 ULONG CALLBACK IMalloc_GetSize_Proxy(
579 IMalloc* This,
580 LPVOID pv);
581 void __RPC_STUB IMalloc_GetSize_Stub(
582 struct IRpcStubBuffer* This,
583 struct IRpcChannelBuffer* pRpcChannelBuffer,
584 PRPC_MESSAGE pRpcMessage,
585 DWORD* pdwStubPhase);
586 int CALLBACK IMalloc_DidAlloc_Proxy(
587 IMalloc* This,
588 LPVOID pv);
589 void __RPC_STUB IMalloc_DidAlloc_Stub(
590 struct IRpcStubBuffer* This,
591 struct IRpcChannelBuffer* pRpcChannelBuffer,
592 PRPC_MESSAGE pRpcMessage,
593 DWORD* pdwStubPhase);
594 void CALLBACK IMalloc_HeapMinimize_Proxy(
595 IMalloc* This);
596 void __RPC_STUB IMalloc_HeapMinimize_Stub(
597 struct IRpcStubBuffer* This,
598 struct IRpcChannelBuffer* pRpcChannelBuffer,
599 PRPC_MESSAGE pRpcMessage,
600 DWORD* pdwStubPhase);
602 typedef struct IMallocSpy IMallocSpy;
603 typedef IMallocSpy *LPMALLOCSPY;
605 /*****************************************************************************
606 * IMallocSpy interface
608 DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
609 #if defined(__cplusplus) && !defined(CINTERFACE)
610 struct IMallocSpy: IUnknown {
612 virtual ULONG CALLBACK PreAlloc(
613 ULONG cbRequest) = 0;
615 virtual LPVOID CALLBACK PostAlloc(
616 LPVOID pActual) = 0;
618 virtual LPVOID CALLBACK PreFree(
619 LPVOID pRequest,
620 BOOL fSpyed) = 0;
622 virtual void CALLBACK PostFree(
623 BOOL fSpyed) = 0;
625 virtual ULONG CALLBACK PreRealloc(
626 LPVOID pRequest,
627 ULONG cbRequest,
628 LPVOID* ppNewRequest,
629 BOOL fSpyed) = 0;
631 virtual LPVOID CALLBACK PostRealloc(
632 LPVOID pActual,
633 BOOL fSpyed) = 0;
635 virtual LPVOID CALLBACK PreGetSize(
636 LPVOID pRequest,
637 BOOL fSpyed) = 0;
639 virtual ULONG CALLBACK PostGetSize(
640 ULONG cbActual,
641 BOOL fSpyed) = 0;
643 virtual LPVOID CALLBACK PreDidAlloc(
644 LPVOID pRequest,
645 BOOL fSpyed) = 0;
647 virtual int CALLBACK PostDidAlloc(
648 LPVOID pRequest,
649 BOOL fSpyed,
650 int fActual) = 0;
652 virtual void CALLBACK PreHeapMinimize(
653 ) = 0;
655 virtual void CALLBACK PostHeapMinimize(
656 ) = 0;
658 } ICOM_COM_INTERFACE_ATTRIBUTE;
659 #else
660 typedef struct IMallocSpyVtbl IMallocSpyVtbl;
661 struct IMallocSpy {
662 const IMallocSpyVtbl* lpVtbl;
664 struct IMallocSpyVtbl {
665 ICOM_MSVTABLE_COMPAT_FIELDS
667 /*** IUnknown methods ***/
668 HRESULT (CALLBACK *QueryInterface)(
669 IMallocSpy* This,
670 REFIID riid,
671 void** ppvObject);
673 ULONG (CALLBACK *AddRef)(
674 IMallocSpy* This);
676 ULONG (CALLBACK *Release)(
677 IMallocSpy* This);
679 /*** IMallocSpy methods ***/
680 ULONG (CALLBACK *PreAlloc)(
681 IMallocSpy* This,
682 ULONG cbRequest);
684 LPVOID (CALLBACK *PostAlloc)(
685 IMallocSpy* This,
686 LPVOID pActual);
688 LPVOID (CALLBACK *PreFree)(
689 IMallocSpy* This,
690 LPVOID pRequest,
691 BOOL fSpyed);
693 void (CALLBACK *PostFree)(
694 IMallocSpy* This,
695 BOOL fSpyed);
697 ULONG (CALLBACK *PreRealloc)(
698 IMallocSpy* This,
699 LPVOID pRequest,
700 ULONG cbRequest,
701 LPVOID* ppNewRequest,
702 BOOL fSpyed);
704 LPVOID (CALLBACK *PostRealloc)(
705 IMallocSpy* This,
706 LPVOID pActual,
707 BOOL fSpyed);
709 LPVOID (CALLBACK *PreGetSize)(
710 IMallocSpy* This,
711 LPVOID pRequest,
712 BOOL fSpyed);
714 ULONG (CALLBACK *PostGetSize)(
715 IMallocSpy* This,
716 ULONG cbActual,
717 BOOL fSpyed);
719 LPVOID (CALLBACK *PreDidAlloc)(
720 IMallocSpy* This,
721 LPVOID pRequest,
722 BOOL fSpyed);
724 int (CALLBACK *PostDidAlloc)(
725 IMallocSpy* This,
726 LPVOID pRequest,
727 BOOL fSpyed,
728 int fActual);
730 void (CALLBACK *PreHeapMinimize)(
731 IMallocSpy* This);
733 void (CALLBACK *PostHeapMinimize)(
734 IMallocSpy* This);
738 #define IMallocSpy_IMETHODS \
739 IUnknown_IMETHODS \
740 ICOM_METHOD1 (ULONG,PreAlloc,ULONG,cbRequest) \
741 ICOM_METHOD1 (LPVOID,PostAlloc,LPVOID,pActual) \
742 ICOM_METHOD2 (LPVOID,PreFree,LPVOID,pRequest,BOOL,fSpyed) \
743 ICOM_VMETHOD1(PostFree,BOOL,fSpyed) \
744 ICOM_METHOD4 (ULONG,PreRealloc,LPVOID,pRequest,ULONG,cbRequest,LPVOID*,ppNewRequest,BOOL,fSpyed) \
745 ICOM_METHOD2 (LPVOID,PostRealloc,LPVOID,pActual,BOOL,fSpyed) \
746 ICOM_METHOD2 (LPVOID,PreGetSize,LPVOID,pRequest,BOOL,fSpyed) \
747 ICOM_METHOD2 (ULONG,PostGetSize,ULONG,cbActual,BOOL,fSpyed) \
748 ICOM_METHOD2 (LPVOID,PreDidAlloc,LPVOID,pRequest,BOOL,fSpyed) \
749 ICOM_METHOD3 (int,PostDidAlloc,LPVOID,pRequest,BOOL,fSpyed,int,fActual) \
750 ICOM_VMETHOD (PreHeapMinimize) \
751 ICOM_VMETHOD (PostHeapMinimize)
753 /*** IUnknown methods ***/
754 #define IMallocSpy_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
755 #define IMallocSpy_AddRef(p) (p)->lpVtbl->AddRef(p)
756 #define IMallocSpy_Release(p) (p)->lpVtbl->Release(p)
757 /*** IMallocSpy methods ***/
758 #define IMallocSpy_PreAlloc(p,a) (p)->lpVtbl->PreAlloc(p,a)
759 #define IMallocSpy_PostAlloc(p,a) (p)->lpVtbl->PostAlloc(p,a)
760 #define IMallocSpy_PreFree(p,a,b) (p)->lpVtbl->PreFree(p,a,b)
761 #define IMallocSpy_PostFree(p,a) (p)->lpVtbl->PostFree(p,a)
762 #define IMallocSpy_PreRealloc(p,a,b,c,d) (p)->lpVtbl->PreRealloc(p,a,b,c,d)
763 #define IMallocSpy_PostRealloc(p,a,b) (p)->lpVtbl->PostRealloc(p,a,b)
764 #define IMallocSpy_PreGetSize(p,a,b) (p)->lpVtbl->PreGetSize(p,a,b)
765 #define IMallocSpy_PostGetSize(p,a,b) (p)->lpVtbl->PostGetSize(p,a,b)
766 #define IMallocSpy_PreDidAlloc(p,a,b) (p)->lpVtbl->PreDidAlloc(p,a,b)
767 #define IMallocSpy_PostDidAlloc(p,a,b,c) (p)->lpVtbl->PostDidAlloc(p,a,b,c)
768 #define IMallocSpy_PreHeapMinimize(p) (p)->lpVtbl->PreHeapMinimize(p)
769 #define IMallocSpy_PostHeapMinimize(p) (p)->lpVtbl->PostHeapMinimize(p)
771 #endif
773 ULONG CALLBACK IMallocSpy_PreAlloc_Proxy(
774 IMallocSpy* This,
775 ULONG cbRequest);
776 void __RPC_STUB IMallocSpy_PreAlloc_Stub(
777 struct IRpcStubBuffer* This,
778 struct IRpcChannelBuffer* pRpcChannelBuffer,
779 PRPC_MESSAGE pRpcMessage,
780 DWORD* pdwStubPhase);
781 LPVOID CALLBACK IMallocSpy_PostAlloc_Proxy(
782 IMallocSpy* This,
783 LPVOID pActual);
784 void __RPC_STUB IMallocSpy_PostAlloc_Stub(
785 struct IRpcStubBuffer* This,
786 struct IRpcChannelBuffer* pRpcChannelBuffer,
787 PRPC_MESSAGE pRpcMessage,
788 DWORD* pdwStubPhase);
789 LPVOID CALLBACK IMallocSpy_PreFree_Proxy(
790 IMallocSpy* This,
791 LPVOID pRequest,
792 BOOL fSpyed);
793 void __RPC_STUB IMallocSpy_PreFree_Stub(
794 struct IRpcStubBuffer* This,
795 struct IRpcChannelBuffer* pRpcChannelBuffer,
796 PRPC_MESSAGE pRpcMessage,
797 DWORD* pdwStubPhase);
798 void CALLBACK IMallocSpy_PostFree_Proxy(
799 IMallocSpy* This,
800 BOOL fSpyed);
801 void __RPC_STUB IMallocSpy_PostFree_Stub(
802 struct IRpcStubBuffer* This,
803 struct IRpcChannelBuffer* pRpcChannelBuffer,
804 PRPC_MESSAGE pRpcMessage,
805 DWORD* pdwStubPhase);
806 ULONG CALLBACK IMallocSpy_PreRealloc_Proxy(
807 IMallocSpy* This,
808 LPVOID pRequest,
809 ULONG cbRequest,
810 LPVOID* ppNewRequest,
811 BOOL fSpyed);
812 void __RPC_STUB IMallocSpy_PreRealloc_Stub(
813 struct IRpcStubBuffer* This,
814 struct IRpcChannelBuffer* pRpcChannelBuffer,
815 PRPC_MESSAGE pRpcMessage,
816 DWORD* pdwStubPhase);
817 LPVOID CALLBACK IMallocSpy_PostRealloc_Proxy(
818 IMallocSpy* This,
819 LPVOID pActual,
820 BOOL fSpyed);
821 void __RPC_STUB IMallocSpy_PostRealloc_Stub(
822 struct IRpcStubBuffer* This,
823 struct IRpcChannelBuffer* pRpcChannelBuffer,
824 PRPC_MESSAGE pRpcMessage,
825 DWORD* pdwStubPhase);
826 LPVOID CALLBACK IMallocSpy_PreGetSize_Proxy(
827 IMallocSpy* This,
828 LPVOID pRequest,
829 BOOL fSpyed);
830 void __RPC_STUB IMallocSpy_PreGetSize_Stub(
831 struct IRpcStubBuffer* This,
832 struct IRpcChannelBuffer* pRpcChannelBuffer,
833 PRPC_MESSAGE pRpcMessage,
834 DWORD* pdwStubPhase);
835 ULONG CALLBACK IMallocSpy_PostGetSize_Proxy(
836 IMallocSpy* This,
837 ULONG cbActual,
838 BOOL fSpyed);
839 void __RPC_STUB IMallocSpy_PostGetSize_Stub(
840 struct IRpcStubBuffer* This,
841 struct IRpcChannelBuffer* pRpcChannelBuffer,
842 PRPC_MESSAGE pRpcMessage,
843 DWORD* pdwStubPhase);
844 LPVOID CALLBACK IMallocSpy_PreDidAlloc_Proxy(
845 IMallocSpy* This,
846 LPVOID pRequest,
847 BOOL fSpyed);
848 void __RPC_STUB IMallocSpy_PreDidAlloc_Stub(
849 struct IRpcStubBuffer* This,
850 struct IRpcChannelBuffer* pRpcChannelBuffer,
851 PRPC_MESSAGE pRpcMessage,
852 DWORD* pdwStubPhase);
853 int CALLBACK IMallocSpy_PostDidAlloc_Proxy(
854 IMallocSpy* This,
855 LPVOID pRequest,
856 BOOL fSpyed,
857 int fActual);
858 void __RPC_STUB IMallocSpy_PostDidAlloc_Stub(
859 struct IRpcStubBuffer* This,
860 struct IRpcChannelBuffer* pRpcChannelBuffer,
861 PRPC_MESSAGE pRpcMessage,
862 DWORD* pdwStubPhase);
863 void CALLBACK IMallocSpy_PreHeapMinimize_Proxy(
864 IMallocSpy* This);
865 void __RPC_STUB IMallocSpy_PreHeapMinimize_Stub(
866 struct IRpcStubBuffer* This,
867 struct IRpcChannelBuffer* pRpcChannelBuffer,
868 PRPC_MESSAGE pRpcMessage,
869 DWORD* pdwStubPhase);
870 void CALLBACK IMallocSpy_PostHeapMinimize_Proxy(
871 IMallocSpy* This);
872 void __RPC_STUB IMallocSpy_PostHeapMinimize_Stub(
873 struct IRpcStubBuffer* This,
874 struct IRpcChannelBuffer* pRpcChannelBuffer,
875 PRPC_MESSAGE pRpcMessage,
876 DWORD* pdwStubPhase);
878 typedef struct IEnumUnknown IEnumUnknown;
879 typedef IEnumUnknown *LPENUMUNKNOWN;
881 /*****************************************************************************
882 * IEnumUnknown interface
884 DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
885 #if defined(__cplusplus) && !defined(CINTERFACE)
886 struct IEnumUnknown: IUnknown {
888 virtual HRESULT CALLBACK Next(
889 ULONG celt,
890 IUnknown** rgelt,
891 ULONG* pceltFetched) = 0;
893 virtual HRESULT CALLBACK Skip(
894 ULONG celt) = 0;
896 virtual HRESULT CALLBACK Reset(
897 ) = 0;
899 virtual HRESULT CALLBACK Clone(
900 IEnumUnknown** ppenum) = 0;
902 } ICOM_COM_INTERFACE_ATTRIBUTE;
903 #else
904 typedef struct IEnumUnknownVtbl IEnumUnknownVtbl;
905 struct IEnumUnknown {
906 const IEnumUnknownVtbl* lpVtbl;
908 struct IEnumUnknownVtbl {
909 ICOM_MSVTABLE_COMPAT_FIELDS
911 /*** IUnknown methods ***/
912 HRESULT (CALLBACK *QueryInterface)(
913 IEnumUnknown* This,
914 REFIID riid,
915 void** ppvObject);
917 ULONG (CALLBACK *AddRef)(
918 IEnumUnknown* This);
920 ULONG (CALLBACK *Release)(
921 IEnumUnknown* This);
923 /*** IEnumUnknown methods ***/
924 HRESULT (CALLBACK *Next)(
925 IEnumUnknown* This,
926 ULONG celt,
927 IUnknown** rgelt,
928 ULONG* pceltFetched);
930 HRESULT (CALLBACK *Skip)(
931 IEnumUnknown* This,
932 ULONG celt);
934 HRESULT (CALLBACK *Reset)(
935 IEnumUnknown* This);
937 HRESULT (CALLBACK *Clone)(
938 IEnumUnknown* This,
939 IEnumUnknown** ppenum);
943 #define IEnumUnknown_IMETHODS \
944 IUnknown_IMETHODS \
945 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,IUnknown**,rgelt,ULONG*,pceltFetched) \
946 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
947 ICOM_METHOD (HRESULT,Reset) \
948 ICOM_METHOD1 (HRESULT,Clone,IEnumUnknown**,ppenum)
950 /*** IUnknown methods ***/
951 #define IEnumUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
952 #define IEnumUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
953 #define IEnumUnknown_Release(p) (p)->lpVtbl->Release(p)
954 /*** IEnumUnknown methods ***/
955 #define IEnumUnknown_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
956 #define IEnumUnknown_Skip(p,a) (p)->lpVtbl->Skip(p,a)
957 #define IEnumUnknown_Reset(p) (p)->lpVtbl->Reset(p)
958 #define IEnumUnknown_Clone(p,a) (p)->lpVtbl->Clone(p,a)
960 #endif
962 HRESULT CALLBACK IEnumUnknown_RemoteNext_Proxy(
963 IEnumUnknown* This,
964 ULONG celt,
965 IUnknown** rgelt,
966 ULONG* pceltFetched);
967 void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
968 struct IRpcStubBuffer* This,
969 struct IRpcChannelBuffer* pRpcChannelBuffer,
970 PRPC_MESSAGE pRpcMessage,
971 DWORD* pdwStubPhase);
972 HRESULT CALLBACK IEnumUnknown_Next_Proxy(
973 IEnumUnknown* This,
974 ULONG celt,
975 IUnknown** rgelt,
976 ULONG* pceltFetched);
977 HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
978 IEnumUnknown* This,
979 ULONG celt,
980 IUnknown** rgelt,
981 ULONG* pceltFetched);
982 HRESULT CALLBACK IEnumUnknown_Skip_Proxy(
983 IEnumUnknown* This,
984 ULONG celt);
985 void __RPC_STUB IEnumUnknown_Skip_Stub(
986 struct IRpcStubBuffer* This,
987 struct IRpcChannelBuffer* pRpcChannelBuffer,
988 PRPC_MESSAGE pRpcMessage,
989 DWORD* pdwStubPhase);
990 HRESULT CALLBACK IEnumUnknown_Reset_Proxy(
991 IEnumUnknown* This);
992 void __RPC_STUB IEnumUnknown_Reset_Stub(
993 struct IRpcStubBuffer* This,
994 struct IRpcChannelBuffer* pRpcChannelBuffer,
995 PRPC_MESSAGE pRpcMessage,
996 DWORD* pdwStubPhase);
997 HRESULT CALLBACK IEnumUnknown_Clone_Proxy(
998 IEnumUnknown* This,
999 IEnumUnknown** ppenum);
1000 void __RPC_STUB IEnumUnknown_Clone_Stub(
1001 struct IRpcStubBuffer* This,
1002 struct IRpcChannelBuffer* pRpcChannelBuffer,
1003 PRPC_MESSAGE pRpcMessage,
1004 DWORD* pdwStubPhase);
1006 typedef struct ISurrogate ISurrogate;
1007 typedef ISurrogate *LPSURROGATE;
1009 /*****************************************************************************
1010 * ISurrogate interface
1012 DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1013 #if defined(__cplusplus) && !defined(CINTERFACE)
1014 struct ISurrogate: IUnknown {
1016 virtual HRESULT CALLBACK LoadDllServer(
1017 REFCLSID Clsid) = 0;
1019 virtual HRESULT CALLBACK FreeSurrogate(
1020 ) = 0;
1022 } ICOM_COM_INTERFACE_ATTRIBUTE;
1023 #else
1024 typedef struct ISurrogateVtbl ISurrogateVtbl;
1025 struct ISurrogate {
1026 const ISurrogateVtbl* lpVtbl;
1028 struct ISurrogateVtbl {
1029 ICOM_MSVTABLE_COMPAT_FIELDS
1031 /*** IUnknown methods ***/
1032 HRESULT (CALLBACK *QueryInterface)(
1033 ISurrogate* This,
1034 REFIID riid,
1035 void** ppvObject);
1037 ULONG (CALLBACK *AddRef)(
1038 ISurrogate* This);
1040 ULONG (CALLBACK *Release)(
1041 ISurrogate* This);
1043 /*** ISurrogate methods ***/
1044 HRESULT (CALLBACK *LoadDllServer)(
1045 ISurrogate* This,
1046 REFCLSID Clsid);
1048 HRESULT (CALLBACK *FreeSurrogate)(
1049 ISurrogate* This);
1053 #define ISurrogate_IMETHODS \
1054 IUnknown_IMETHODS \
1055 ICOM_METHOD1 (HRESULT,LoadDllServer,REFCLSID,Clsid) \
1056 ICOM_METHOD (HRESULT,FreeSurrogate)
1058 /*** IUnknown methods ***/
1059 #define ISurrogate_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1060 #define ISurrogate_AddRef(p) (p)->lpVtbl->AddRef(p)
1061 #define ISurrogate_Release(p) (p)->lpVtbl->Release(p)
1062 /*** ISurrogate methods ***/
1063 #define ISurrogate_LoadDllServer(p,a) (p)->lpVtbl->LoadDllServer(p,a)
1064 #define ISurrogate_FreeSurrogate(p) (p)->lpVtbl->FreeSurrogate(p)
1066 #endif
1068 HRESULT CALLBACK ISurrogate_LoadDllServer_Proxy(
1069 ISurrogate* This,
1070 REFCLSID Clsid);
1071 void __RPC_STUB ISurrogate_LoadDllServer_Stub(
1072 struct IRpcStubBuffer* This,
1073 struct IRpcChannelBuffer* pRpcChannelBuffer,
1074 PRPC_MESSAGE pRpcMessage,
1075 DWORD* pdwStubPhase);
1076 HRESULT CALLBACK ISurrogate_FreeSurrogate_Proxy(
1077 ISurrogate* This);
1078 void __RPC_STUB ISurrogate_FreeSurrogate_Stub(
1079 struct IRpcStubBuffer* This,
1080 struct IRpcChannelBuffer* pRpcChannelBuffer,
1081 PRPC_MESSAGE pRpcMessage,
1082 DWORD* pdwStubPhase);
1084 typedef struct IGlobalInterfaceTable IGlobalInterfaceTable;
1085 typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
1087 /*****************************************************************************
1088 * IGlobalInterfaceTable interface
1090 DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1091 #if defined(__cplusplus) && !defined(CINTERFACE)
1092 struct IGlobalInterfaceTable: IUnknown {
1094 virtual HRESULT CALLBACK RegisterInterfaceInGlobal(
1095 IUnknown* pUnk,
1096 REFIID riid,
1097 DWORD* pdwCookie) = 0;
1099 virtual HRESULT CALLBACK RevokeInterfaceFromGlobal(
1100 DWORD dwCookie) = 0;
1102 virtual HRESULT CALLBACK GetInterfaceFromGlobal(
1103 DWORD dwCookie,
1104 REFIID riid,
1105 void** ppv) = 0;
1107 } ICOM_COM_INTERFACE_ATTRIBUTE;
1108 #else
1109 typedef struct IGlobalInterfaceTableVtbl IGlobalInterfaceTableVtbl;
1110 struct IGlobalInterfaceTable {
1111 const IGlobalInterfaceTableVtbl* lpVtbl;
1113 struct IGlobalInterfaceTableVtbl {
1114 ICOM_MSVTABLE_COMPAT_FIELDS
1116 /*** IUnknown methods ***/
1117 HRESULT (CALLBACK *QueryInterface)(
1118 IGlobalInterfaceTable* This,
1119 REFIID riid,
1120 void** ppvObject);
1122 ULONG (CALLBACK *AddRef)(
1123 IGlobalInterfaceTable* This);
1125 ULONG (CALLBACK *Release)(
1126 IGlobalInterfaceTable* This);
1128 /*** IGlobalInterfaceTable methods ***/
1129 HRESULT (CALLBACK *RegisterInterfaceInGlobal)(
1130 IGlobalInterfaceTable* This,
1131 IUnknown* pUnk,
1132 REFIID riid,
1133 DWORD* pdwCookie);
1135 HRESULT (CALLBACK *RevokeInterfaceFromGlobal)(
1136 IGlobalInterfaceTable* This,
1137 DWORD dwCookie);
1139 HRESULT (CALLBACK *GetInterfaceFromGlobal)(
1140 IGlobalInterfaceTable* This,
1141 DWORD dwCookie,
1142 REFIID riid,
1143 void** ppv);
1147 #define IGlobalInterfaceTable_IMETHODS \
1148 IUnknown_IMETHODS \
1149 ICOM_METHOD3 (HRESULT,RegisterInterfaceInGlobal,IUnknown*,pUnk,REFIID,riid,DWORD*,pdwCookie) \
1150 ICOM_METHOD1 (HRESULT,RevokeInterfaceFromGlobal,DWORD,dwCookie) \
1151 ICOM_METHOD3 (HRESULT,GetInterfaceFromGlobal,DWORD,dwCookie,REFIID,riid,void**,ppv)
1153 /*** IUnknown methods ***/
1154 #define IGlobalInterfaceTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1155 #define IGlobalInterfaceTable_AddRef(p) (p)->lpVtbl->AddRef(p)
1156 #define IGlobalInterfaceTable_Release(p) (p)->lpVtbl->Release(p)
1157 /*** IGlobalInterfaceTable methods ***/
1158 #define IGlobalInterfaceTable_RegisterInterfaceInGlobal(p,a,b,c) (p)->lpVtbl->RegisterInterfaceInGlobal(p,a,b,c)
1159 #define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(p,a) (p)->lpVtbl->RevokeInterfaceFromGlobal(p,a)
1160 #define IGlobalInterfaceTable_GetInterfaceFromGlobal(p,a,b,c) (p)->lpVtbl->GetInterfaceFromGlobal(p,a,b,c)
1162 #endif
1164 HRESULT CALLBACK IGlobalInterfaceTable_RegisterInterfaceInGlobal_Proxy(
1165 IGlobalInterfaceTable* This,
1166 IUnknown* pUnk,
1167 REFIID riid,
1168 DWORD* pdwCookie);
1169 void __RPC_STUB IGlobalInterfaceTable_RegisterInterfaceInGlobal_Stub(
1170 struct IRpcStubBuffer* This,
1171 struct IRpcChannelBuffer* pRpcChannelBuffer,
1172 PRPC_MESSAGE pRpcMessage,
1173 DWORD* pdwStubPhase);
1174 HRESULT CALLBACK IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Proxy(
1175 IGlobalInterfaceTable* This,
1176 DWORD dwCookie);
1177 void __RPC_STUB IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Stub(
1178 struct IRpcStubBuffer* This,
1179 struct IRpcChannelBuffer* pRpcChannelBuffer,
1180 PRPC_MESSAGE pRpcMessage,
1181 DWORD* pdwStubPhase);
1182 HRESULT CALLBACK IGlobalInterfaceTable_GetInterfaceFromGlobal_Proxy(
1183 IGlobalInterfaceTable* This,
1184 DWORD dwCookie,
1185 REFIID riid,
1186 void** ppv);
1187 void __RPC_STUB IGlobalInterfaceTable_GetInterfaceFromGlobal_Stub(
1188 struct IRpcStubBuffer* This,
1189 struct IRpcChannelBuffer* pRpcChannelBuffer,
1190 PRPC_MESSAGE pRpcMessage,
1191 DWORD* pdwStubPhase);
1193 typedef struct IBindCtx IBindCtx;
1194 typedef IBindCtx *LPBINDCTX;
1196 typedef IBindCtx *LPBC;
1198 typedef struct tagBIND_OPTS {
1199 DWORD cbStruct;
1200 DWORD grfFlags;
1201 DWORD grfMode;
1202 DWORD dwTickCountDeadline;
1203 } BIND_OPTS, *LPBIND_OPTS;
1205 typedef struct tagBIND_OPTS2 {
1206 DWORD cbStruct;
1207 DWORD grfFlags;
1208 DWORD grfMode;
1209 DWORD dwTickCountDeadline;
1210 DWORD dwTrackFlags;
1211 DWORD dwClassContext;
1212 LCID locale;
1213 COSERVERINFO *pServerInfo;
1214 } BIND_OPTS2, *LPBIND_OPTS2;
1216 typedef enum tagBIND_FLAGS {
1217 BIND_MAYBOTHERUSER = 1,
1218 BIND_JUSTTESTEXISTENCE = 2
1219 } BIND_FLAGS;
1221 /*****************************************************************************
1222 * IBindCtx interface
1224 DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1225 #if defined(__cplusplus) && !defined(CINTERFACE)
1226 struct IBindCtx: IUnknown {
1228 virtual HRESULT CALLBACK RegisterObjectBound(
1229 IUnknown* punk) = 0;
1231 virtual HRESULT CALLBACK RevokeObjectBound(
1232 IUnknown* punk) = 0;
1234 virtual HRESULT CALLBACK ReleaseBoundObjects(
1235 ) = 0;
1237 virtual HRESULT CALLBACK SetBindOptions(
1238 BIND_OPTS* pbindopts) = 0;
1240 virtual HRESULT CALLBACK GetBindOptions(
1241 BIND_OPTS* pbindopts) = 0;
1243 virtual HRESULT CALLBACK GetRunningObjectTable(
1244 IRunningObjectTable** pprot) = 0;
1246 virtual HRESULT CALLBACK RegisterObjectParam(
1247 LPOLESTR pszKey,
1248 IUnknown* punk) = 0;
1250 virtual HRESULT CALLBACK GetObjectParam(
1251 LPOLESTR pszKey,
1252 IUnknown** ppunk) = 0;
1254 virtual HRESULT CALLBACK EnumObjectParam(
1255 IEnumString** ppenum) = 0;
1257 virtual HRESULT CALLBACK RevokeObjectParam(
1258 LPOLESTR pszKey) = 0;
1260 } ICOM_COM_INTERFACE_ATTRIBUTE;
1261 #else
1262 typedef struct IBindCtxVtbl IBindCtxVtbl;
1263 struct IBindCtx {
1264 const IBindCtxVtbl* lpVtbl;
1266 struct IBindCtxVtbl {
1267 ICOM_MSVTABLE_COMPAT_FIELDS
1269 /*** IUnknown methods ***/
1270 HRESULT (CALLBACK *QueryInterface)(
1271 IBindCtx* This,
1272 REFIID riid,
1273 void** ppvObject);
1275 ULONG (CALLBACK *AddRef)(
1276 IBindCtx* This);
1278 ULONG (CALLBACK *Release)(
1279 IBindCtx* This);
1281 /*** IBindCtx methods ***/
1282 HRESULT (CALLBACK *RegisterObjectBound)(
1283 IBindCtx* This,
1284 IUnknown* punk);
1286 HRESULT (CALLBACK *RevokeObjectBound)(
1287 IBindCtx* This,
1288 IUnknown* punk);
1290 HRESULT (CALLBACK *ReleaseBoundObjects)(
1291 IBindCtx* This);
1293 HRESULT (CALLBACK *SetBindOptions)(
1294 IBindCtx* This,
1295 BIND_OPTS* pbindopts);
1297 HRESULT (CALLBACK *GetBindOptions)(
1298 IBindCtx* This,
1299 BIND_OPTS* pbindopts);
1301 HRESULT (CALLBACK *GetRunningObjectTable)(
1302 IBindCtx* This,
1303 IRunningObjectTable** pprot);
1305 HRESULT (CALLBACK *RegisterObjectParam)(
1306 IBindCtx* This,
1307 LPOLESTR pszKey,
1308 IUnknown* punk);
1310 HRESULT (CALLBACK *GetObjectParam)(
1311 IBindCtx* This,
1312 LPOLESTR pszKey,
1313 IUnknown** ppunk);
1315 HRESULT (CALLBACK *EnumObjectParam)(
1316 IBindCtx* This,
1317 IEnumString** ppenum);
1319 HRESULT (CALLBACK *RevokeObjectParam)(
1320 IBindCtx* This,
1321 LPOLESTR pszKey);
1325 #define IBindCtx_IMETHODS \
1326 IUnknown_IMETHODS \
1327 ICOM_METHOD1 (HRESULT,RegisterObjectBound,IUnknown*,punk) \
1328 ICOM_METHOD1 (HRESULT,RevokeObjectBound,IUnknown*,punk) \
1329 ICOM_METHOD (HRESULT,ReleaseBoundObjects) \
1330 ICOM_METHOD1 (HRESULT,SetBindOptions,BIND_OPTS*,pbindopts) \
1331 ICOM_METHOD1 (HRESULT,GetBindOptions,BIND_OPTS*,pbindopts) \
1332 ICOM_METHOD1 (HRESULT,GetRunningObjectTable,IRunningObjectTable**,pprot) \
1333 ICOM_METHOD2 (HRESULT,RegisterObjectParam,LPOLESTR,pszKey,IUnknown*,punk) \
1334 ICOM_METHOD2 (HRESULT,GetObjectParam,LPOLESTR,pszKey,IUnknown**,ppunk) \
1335 ICOM_METHOD1 (HRESULT,EnumObjectParam,IEnumString**,ppenum) \
1336 ICOM_METHOD1 (HRESULT,RevokeObjectParam,LPOLESTR,pszKey)
1338 /*** IUnknown methods ***/
1339 #define IBindCtx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1340 #define IBindCtx_AddRef(p) (p)->lpVtbl->AddRef(p)
1341 #define IBindCtx_Release(p) (p)->lpVtbl->Release(p)
1342 /*** IBindCtx methods ***/
1343 #define IBindCtx_RegisterObjectBound(p,a) (p)->lpVtbl->RegisterObjectBound(p,a)
1344 #define IBindCtx_RevokeObjectBound(p,a) (p)->lpVtbl->RevokeObjectBound(p,a)
1345 #define IBindCtx_ReleaseBoundObjects(p) (p)->lpVtbl->ReleaseBoundObjects(p)
1346 #define IBindCtx_SetBindOptions(p,a) (p)->lpVtbl->SetBindOptions(p,a)
1347 #define IBindCtx_GetBindOptions(p,a) (p)->lpVtbl->GetBindOptions(p,a)
1348 #define IBindCtx_GetRunningObjectTable(p,a) (p)->lpVtbl->GetRunningObjectTable(p,a)
1349 #define IBindCtx_RegisterObjectParam(p,a,b) (p)->lpVtbl->RegisterObjectParam(p,a,b)
1350 #define IBindCtx_GetObjectParam(p,a,b) (p)->lpVtbl->GetObjectParam(p,a,b)
1351 #define IBindCtx_EnumObjectParam(p,a) (p)->lpVtbl->EnumObjectParam(p,a)
1352 #define IBindCtx_RevokeObjectParam(p,a) (p)->lpVtbl->RevokeObjectParam(p,a)
1354 #endif
1356 HRESULT CALLBACK IBindCtx_RegisterObjectBound_Proxy(
1357 IBindCtx* This,
1358 IUnknown* punk);
1359 void __RPC_STUB IBindCtx_RegisterObjectBound_Stub(
1360 struct IRpcStubBuffer* This,
1361 struct IRpcChannelBuffer* pRpcChannelBuffer,
1362 PRPC_MESSAGE pRpcMessage,
1363 DWORD* pdwStubPhase);
1364 HRESULT CALLBACK IBindCtx_RevokeObjectBound_Proxy(
1365 IBindCtx* This,
1366 IUnknown* punk);
1367 void __RPC_STUB IBindCtx_RevokeObjectBound_Stub(
1368 struct IRpcStubBuffer* This,
1369 struct IRpcChannelBuffer* pRpcChannelBuffer,
1370 PRPC_MESSAGE pRpcMessage,
1371 DWORD* pdwStubPhase);
1372 HRESULT CALLBACK IBindCtx_ReleaseBoundObjects_Proxy(
1373 IBindCtx* This);
1374 void __RPC_STUB IBindCtx_ReleaseBoundObjects_Stub(
1375 struct IRpcStubBuffer* This,
1376 struct IRpcChannelBuffer* pRpcChannelBuffer,
1377 PRPC_MESSAGE pRpcMessage,
1378 DWORD* pdwStubPhase);
1379 HRESULT CALLBACK IBindCtx_RemoteSetBindOptions_Proxy(
1380 IBindCtx* This,
1381 BIND_OPTS2* pbindopts);
1382 void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
1383 struct IRpcStubBuffer* This,
1384 struct IRpcChannelBuffer* pRpcChannelBuffer,
1385 PRPC_MESSAGE pRpcMessage,
1386 DWORD* pdwStubPhase);
1387 HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
1388 IBindCtx* This,
1389 BIND_OPTS* pbindopts);
1390 HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
1391 IBindCtx* This,
1392 BIND_OPTS2* pbindopts);
1393 HRESULT CALLBACK IBindCtx_RemoteGetBindOptions_Proxy(
1394 IBindCtx* This,
1395 BIND_OPTS2* pbindopts);
1396 void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
1397 struct IRpcStubBuffer* This,
1398 struct IRpcChannelBuffer* pRpcChannelBuffer,
1399 PRPC_MESSAGE pRpcMessage,
1400 DWORD* pdwStubPhase);
1401 HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
1402 IBindCtx* This,
1403 BIND_OPTS* pbindopts);
1404 HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
1405 IBindCtx* This,
1406 BIND_OPTS2* pbindopts);
1407 HRESULT CALLBACK IBindCtx_GetRunningObjectTable_Proxy(
1408 IBindCtx* This,
1409 IRunningObjectTable** pprot);
1410 void __RPC_STUB IBindCtx_GetRunningObjectTable_Stub(
1411 struct IRpcStubBuffer* This,
1412 struct IRpcChannelBuffer* pRpcChannelBuffer,
1413 PRPC_MESSAGE pRpcMessage,
1414 DWORD* pdwStubPhase);
1415 HRESULT CALLBACK IBindCtx_RegisterObjectParam_Proxy(
1416 IBindCtx* This,
1417 LPOLESTR pszKey,
1418 IUnknown* punk);
1419 void __RPC_STUB IBindCtx_RegisterObjectParam_Stub(
1420 struct IRpcStubBuffer* This,
1421 struct IRpcChannelBuffer* pRpcChannelBuffer,
1422 PRPC_MESSAGE pRpcMessage,
1423 DWORD* pdwStubPhase);
1424 HRESULT CALLBACK IBindCtx_GetObjectParam_Proxy(
1425 IBindCtx* This,
1426 LPOLESTR pszKey,
1427 IUnknown** ppunk);
1428 void __RPC_STUB IBindCtx_GetObjectParam_Stub(
1429 struct IRpcStubBuffer* This,
1430 struct IRpcChannelBuffer* pRpcChannelBuffer,
1431 PRPC_MESSAGE pRpcMessage,
1432 DWORD* pdwStubPhase);
1433 HRESULT CALLBACK IBindCtx_EnumObjectParam_Proxy(
1434 IBindCtx* This,
1435 IEnumString** ppenum);
1436 void __RPC_STUB IBindCtx_EnumObjectParam_Stub(
1437 struct IRpcStubBuffer* This,
1438 struct IRpcChannelBuffer* pRpcChannelBuffer,
1439 PRPC_MESSAGE pRpcMessage,
1440 DWORD* pdwStubPhase);
1441 HRESULT CALLBACK IBindCtx_RevokeObjectParam_Proxy(
1442 IBindCtx* This,
1443 LPOLESTR pszKey);
1444 void __RPC_STUB IBindCtx_RevokeObjectParam_Stub(
1445 struct IRpcStubBuffer* This,
1446 struct IRpcChannelBuffer* pRpcChannelBuffer,
1447 PRPC_MESSAGE pRpcMessage,
1448 DWORD* pdwStubPhase);
1450 typedef struct IEnumMoniker IEnumMoniker;
1451 typedef IEnumMoniker *LPENUMMONIKER;
1453 /*****************************************************************************
1454 * IEnumMoniker interface
1456 DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1457 #if defined(__cplusplus) && !defined(CINTERFACE)
1458 struct IEnumMoniker: IUnknown {
1460 virtual HRESULT CALLBACK Next(
1461 ULONG celt,
1462 IMoniker** rgelt,
1463 ULONG* pceltFetched) = 0;
1465 virtual HRESULT CALLBACK Skip(
1466 ULONG celt) = 0;
1468 virtual HRESULT CALLBACK Reset(
1469 ) = 0;
1471 virtual HRESULT CALLBACK Clone(
1472 IEnumMoniker** ppenum) = 0;
1474 } ICOM_COM_INTERFACE_ATTRIBUTE;
1475 #else
1476 typedef struct IEnumMonikerVtbl IEnumMonikerVtbl;
1477 struct IEnumMoniker {
1478 const IEnumMonikerVtbl* lpVtbl;
1480 struct IEnumMonikerVtbl {
1481 ICOM_MSVTABLE_COMPAT_FIELDS
1483 /*** IUnknown methods ***/
1484 HRESULT (CALLBACK *QueryInterface)(
1485 IEnumMoniker* This,
1486 REFIID riid,
1487 void** ppvObject);
1489 ULONG (CALLBACK *AddRef)(
1490 IEnumMoniker* This);
1492 ULONG (CALLBACK *Release)(
1493 IEnumMoniker* This);
1495 /*** IEnumMoniker methods ***/
1496 HRESULT (CALLBACK *Next)(
1497 IEnumMoniker* This,
1498 ULONG celt,
1499 IMoniker** rgelt,
1500 ULONG* pceltFetched);
1502 HRESULT (CALLBACK *Skip)(
1503 IEnumMoniker* This,
1504 ULONG celt);
1506 HRESULT (CALLBACK *Reset)(
1507 IEnumMoniker* This);
1509 HRESULT (CALLBACK *Clone)(
1510 IEnumMoniker* This,
1511 IEnumMoniker** ppenum);
1515 #define IEnumMoniker_IMETHODS \
1516 IUnknown_IMETHODS \
1517 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,IMoniker**,rgelt,ULONG*,pceltFetched) \
1518 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
1519 ICOM_METHOD (HRESULT,Reset) \
1520 ICOM_METHOD1 (HRESULT,Clone,IEnumMoniker**,ppenum)
1522 /*** IUnknown methods ***/
1523 #define IEnumMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1524 #define IEnumMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
1525 #define IEnumMoniker_Release(p) (p)->lpVtbl->Release(p)
1526 /*** IEnumMoniker methods ***/
1527 #define IEnumMoniker_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1528 #define IEnumMoniker_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1529 #define IEnumMoniker_Reset(p) (p)->lpVtbl->Reset(p)
1530 #define IEnumMoniker_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1532 #endif
1534 HRESULT CALLBACK IEnumMoniker_RemoteNext_Proxy(
1535 IEnumMoniker* This,
1536 ULONG celt,
1537 IMoniker** rgelt,
1538 ULONG* pceltFetched);
1539 void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
1540 struct IRpcStubBuffer* This,
1541 struct IRpcChannelBuffer* pRpcChannelBuffer,
1542 PRPC_MESSAGE pRpcMessage,
1543 DWORD* pdwStubPhase);
1544 HRESULT CALLBACK IEnumMoniker_Next_Proxy(
1545 IEnumMoniker* This,
1546 ULONG celt,
1547 IMoniker** rgelt,
1548 ULONG* pceltFetched);
1549 HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
1550 IEnumMoniker* This,
1551 ULONG celt,
1552 IMoniker** rgelt,
1553 ULONG* pceltFetched);
1554 HRESULT CALLBACK IEnumMoniker_Skip_Proxy(
1555 IEnumMoniker* This,
1556 ULONG celt);
1557 void __RPC_STUB IEnumMoniker_Skip_Stub(
1558 struct IRpcStubBuffer* This,
1559 struct IRpcChannelBuffer* pRpcChannelBuffer,
1560 PRPC_MESSAGE pRpcMessage,
1561 DWORD* pdwStubPhase);
1562 HRESULT CALLBACK IEnumMoniker_Reset_Proxy(
1563 IEnumMoniker* This);
1564 void __RPC_STUB IEnumMoniker_Reset_Stub(
1565 struct IRpcStubBuffer* This,
1566 struct IRpcChannelBuffer* pRpcChannelBuffer,
1567 PRPC_MESSAGE pRpcMessage,
1568 DWORD* pdwStubPhase);
1569 HRESULT CALLBACK IEnumMoniker_Clone_Proxy(
1570 IEnumMoniker* This,
1571 IEnumMoniker** ppenum);
1572 void __RPC_STUB IEnumMoniker_Clone_Stub(
1573 struct IRpcStubBuffer* This,
1574 struct IRpcChannelBuffer* pRpcChannelBuffer,
1575 PRPC_MESSAGE pRpcMessage,
1576 DWORD* pdwStubPhase);
1578 typedef struct IRunnableObject IRunnableObject;
1579 typedef IRunnableObject *LPRUNNABLEOBJECT;
1581 /*****************************************************************************
1582 * IRunnableObject interface
1584 DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1585 #if defined(__cplusplus) && !defined(CINTERFACE)
1586 struct IRunnableObject: IUnknown {
1588 virtual HRESULT CALLBACK GetRunningClass(
1589 LPCLSID lpClsid) = 0;
1591 virtual HRESULT CALLBACK Run(
1592 LPBINDCTX pbc) = 0;
1594 virtual BOOL CALLBACK IsRunning(
1595 ) = 0;
1597 virtual HRESULT CALLBACK LockRunning(
1598 BOOL fLock,
1599 BOOL fLastUnlockCloses) = 0;
1601 virtual HRESULT CALLBACK SetContainedObject(
1602 BOOL fContained) = 0;
1604 } ICOM_COM_INTERFACE_ATTRIBUTE;
1605 #else
1606 typedef struct IRunnableObjectVtbl IRunnableObjectVtbl;
1607 struct IRunnableObject {
1608 const IRunnableObjectVtbl* lpVtbl;
1610 struct IRunnableObjectVtbl {
1611 ICOM_MSVTABLE_COMPAT_FIELDS
1613 /*** IUnknown methods ***/
1614 HRESULT (CALLBACK *QueryInterface)(
1615 IRunnableObject* This,
1616 REFIID riid,
1617 void** ppvObject);
1619 ULONG (CALLBACK *AddRef)(
1620 IRunnableObject* This);
1622 ULONG (CALLBACK *Release)(
1623 IRunnableObject* This);
1625 /*** IRunnableObject methods ***/
1626 HRESULT (CALLBACK *GetRunningClass)(
1627 IRunnableObject* This,
1628 LPCLSID lpClsid);
1630 HRESULT (CALLBACK *Run)(
1631 IRunnableObject* This,
1632 LPBINDCTX pbc);
1634 BOOL (CALLBACK *IsRunning)(
1635 IRunnableObject* This);
1637 HRESULT (CALLBACK *LockRunning)(
1638 IRunnableObject* This,
1639 BOOL fLock,
1640 BOOL fLastUnlockCloses);
1642 HRESULT (CALLBACK *SetContainedObject)(
1643 IRunnableObject* This,
1644 BOOL fContained);
1648 #define IRunnableObject_IMETHODS \
1649 IUnknown_IMETHODS \
1650 ICOM_METHOD1 (HRESULT,GetRunningClass,LPCLSID,lpClsid) \
1651 ICOM_METHOD1 (HRESULT,Run,LPBINDCTX,pbc) \
1652 ICOM_METHOD (BOOL,IsRunning) \
1653 ICOM_METHOD2 (HRESULT,LockRunning,BOOL,fLock,BOOL,fLastUnlockCloses) \
1654 ICOM_METHOD1 (HRESULT,SetContainedObject,BOOL,fContained)
1656 /*** IUnknown methods ***/
1657 #define IRunnableObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1658 #define IRunnableObject_AddRef(p) (p)->lpVtbl->AddRef(p)
1659 #define IRunnableObject_Release(p) (p)->lpVtbl->Release(p)
1660 /*** IRunnableObject methods ***/
1661 #define IRunnableObject_GetRunningClass(p,a) (p)->lpVtbl->GetRunningClass(p,a)
1662 #define IRunnableObject_Run(p,a) (p)->lpVtbl->Run(p,a)
1663 #define IRunnableObject_IsRunning(p) (p)->lpVtbl->IsRunning(p)
1664 #define IRunnableObject_LockRunning(p,a,b) (p)->lpVtbl->LockRunning(p,a,b)
1665 #define IRunnableObject_SetContainedObject(p,a) (p)->lpVtbl->SetContainedObject(p,a)
1667 #endif
1669 HRESULT CALLBACK IRunnableObject_GetRunningClass_Proxy(
1670 IRunnableObject* This,
1671 LPCLSID lpClsid);
1672 void __RPC_STUB IRunnableObject_GetRunningClass_Stub(
1673 struct IRpcStubBuffer* This,
1674 struct IRpcChannelBuffer* pRpcChannelBuffer,
1675 PRPC_MESSAGE pRpcMessage,
1676 DWORD* pdwStubPhase);
1677 HRESULT CALLBACK IRunnableObject_Run_Proxy(
1678 IRunnableObject* This,
1679 LPBINDCTX pbc);
1680 void __RPC_STUB IRunnableObject_Run_Stub(
1681 struct IRpcStubBuffer* This,
1682 struct IRpcChannelBuffer* pRpcChannelBuffer,
1683 PRPC_MESSAGE pRpcMessage,
1684 DWORD* pdwStubPhase);
1685 HRESULT CALLBACK IRunnableObject_RemoteIsRunning_Proxy(
1686 IRunnableObject* This);
1687 void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
1688 struct IRpcStubBuffer* This,
1689 struct IRpcChannelBuffer* pRpcChannelBuffer,
1690 PRPC_MESSAGE pRpcMessage,
1691 DWORD* pdwStubPhase);
1692 BOOL CALLBACK IRunnableObject_IsRunning_Proxy(
1693 IRunnableObject* This);
1694 HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
1695 IRunnableObject* This);
1696 HRESULT CALLBACK IRunnableObject_LockRunning_Proxy(
1697 IRunnableObject* This,
1698 BOOL fLock,
1699 BOOL fLastUnlockCloses);
1700 void __RPC_STUB IRunnableObject_LockRunning_Stub(
1701 struct IRpcStubBuffer* This,
1702 struct IRpcChannelBuffer* pRpcChannelBuffer,
1703 PRPC_MESSAGE pRpcMessage,
1704 DWORD* pdwStubPhase);
1705 HRESULT CALLBACK IRunnableObject_SetContainedObject_Proxy(
1706 IRunnableObject* This,
1707 BOOL fContained);
1708 void __RPC_STUB IRunnableObject_SetContainedObject_Stub(
1709 struct IRpcStubBuffer* This,
1710 struct IRpcChannelBuffer* pRpcChannelBuffer,
1711 PRPC_MESSAGE pRpcMessage,
1712 DWORD* pdwStubPhase);
1714 #ifdef __WINESRC__
1715 #undef GetObject
1716 #endif
1717 typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
1719 /*****************************************************************************
1720 * IRunningObjectTable interface
1722 DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1723 #if defined(__cplusplus) && !defined(CINTERFACE)
1724 struct IRunningObjectTable: IUnknown {
1726 virtual HRESULT CALLBACK Register(
1727 DWORD grfFlags,
1728 IUnknown* punkObject,
1729 IMoniker* pmkObjectName,
1730 DWORD* pdwRegister) = 0;
1732 virtual HRESULT CALLBACK Revoke(
1733 DWORD dwRegister) = 0;
1735 virtual HRESULT CALLBACK IsRunning(
1736 IMoniker* pmkObjectName) = 0;
1738 virtual HRESULT CALLBACK GetObject(
1739 IMoniker* pmkObjectName,
1740 IUnknown** ppunkObject) = 0;
1742 virtual HRESULT CALLBACK NoteChangeTime(
1743 DWORD dwRegister,
1744 FILETIME* pfiletime) = 0;
1746 virtual HRESULT CALLBACK GetTimeOfLastChange(
1747 IMoniker* pmkObjectName,
1748 FILETIME* pfiletime) = 0;
1750 virtual HRESULT CALLBACK EnumRunning(
1751 IEnumMoniker** ppenumMoniker) = 0;
1753 } ICOM_COM_INTERFACE_ATTRIBUTE;
1754 #else
1755 typedef struct IRunningObjectTableVtbl IRunningObjectTableVtbl;
1756 struct IRunningObjectTable {
1757 const IRunningObjectTableVtbl* lpVtbl;
1759 struct IRunningObjectTableVtbl {
1760 ICOM_MSVTABLE_COMPAT_FIELDS
1762 /*** IUnknown methods ***/
1763 HRESULT (CALLBACK *QueryInterface)(
1764 IRunningObjectTable* This,
1765 REFIID riid,
1766 void** ppvObject);
1768 ULONG (CALLBACK *AddRef)(
1769 IRunningObjectTable* This);
1771 ULONG (CALLBACK *Release)(
1772 IRunningObjectTable* This);
1774 /*** IRunningObjectTable methods ***/
1775 HRESULT (CALLBACK *Register)(
1776 IRunningObjectTable* This,
1777 DWORD grfFlags,
1778 IUnknown* punkObject,
1779 IMoniker* pmkObjectName,
1780 DWORD* pdwRegister);
1782 HRESULT (CALLBACK *Revoke)(
1783 IRunningObjectTable* This,
1784 DWORD dwRegister);
1786 HRESULT (CALLBACK *IsRunning)(
1787 IRunningObjectTable* This,
1788 IMoniker* pmkObjectName);
1790 HRESULT (CALLBACK *GetObject)(
1791 IRunningObjectTable* This,
1792 IMoniker* pmkObjectName,
1793 IUnknown** ppunkObject);
1795 HRESULT (CALLBACK *NoteChangeTime)(
1796 IRunningObjectTable* This,
1797 DWORD dwRegister,
1798 FILETIME* pfiletime);
1800 HRESULT (CALLBACK *GetTimeOfLastChange)(
1801 IRunningObjectTable* This,
1802 IMoniker* pmkObjectName,
1803 FILETIME* pfiletime);
1805 HRESULT (CALLBACK *EnumRunning)(
1806 IRunningObjectTable* This,
1807 IEnumMoniker** ppenumMoniker);
1811 #define IRunningObjectTable_IMETHODS \
1812 IUnknown_IMETHODS \
1813 ICOM_METHOD4 (HRESULT,Register,DWORD,grfFlags,IUnknown*,punkObject,IMoniker*,pmkObjectName,DWORD*,pdwRegister) \
1814 ICOM_METHOD1 (HRESULT,Revoke,DWORD,dwRegister) \
1815 ICOM_METHOD1 (HRESULT,IsRunning,IMoniker*,pmkObjectName) \
1816 ICOM_METHOD2 (HRESULT,GetObject,IMoniker*,pmkObjectName,IUnknown**,ppunkObject) \
1817 ICOM_METHOD2 (HRESULT,NoteChangeTime,DWORD,dwRegister,FILETIME*,pfiletime) \
1818 ICOM_METHOD2 (HRESULT,GetTimeOfLastChange,IMoniker*,pmkObjectName,FILETIME*,pfiletime) \
1819 ICOM_METHOD1 (HRESULT,EnumRunning,IEnumMoniker**,ppenumMoniker)
1821 /*** IUnknown methods ***/
1822 #define IRunningObjectTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1823 #define IRunningObjectTable_AddRef(p) (p)->lpVtbl->AddRef(p)
1824 #define IRunningObjectTable_Release(p) (p)->lpVtbl->Release(p)
1825 /*** IRunningObjectTable methods ***/
1826 #define IRunningObjectTable_Register(p,a,b,c,d) (p)->lpVtbl->Register(p,a,b,c,d)
1827 #define IRunningObjectTable_Revoke(p,a) (p)->lpVtbl->Revoke(p,a)
1828 #define IRunningObjectTable_IsRunning(p,a) (p)->lpVtbl->IsRunning(p,a)
1829 #define IRunningObjectTable_GetObject(p,a,b) (p)->lpVtbl->GetObject(p,a,b)
1830 #define IRunningObjectTable_NoteChangeTime(p,a,b) (p)->lpVtbl->NoteChangeTime(p,a,b)
1831 #define IRunningObjectTable_GetTimeOfLastChange(p,a,b) (p)->lpVtbl->GetTimeOfLastChange(p,a,b)
1832 #define IRunningObjectTable_EnumRunning(p,a) (p)->lpVtbl->EnumRunning(p,a)
1834 #endif
1836 HRESULT CALLBACK IRunningObjectTable_Register_Proxy(
1837 IRunningObjectTable* This,
1838 DWORD grfFlags,
1839 IUnknown* punkObject,
1840 IMoniker* pmkObjectName,
1841 DWORD* pdwRegister);
1842 void __RPC_STUB IRunningObjectTable_Register_Stub(
1843 struct IRpcStubBuffer* This,
1844 struct IRpcChannelBuffer* pRpcChannelBuffer,
1845 PRPC_MESSAGE pRpcMessage,
1846 DWORD* pdwStubPhase);
1847 HRESULT CALLBACK IRunningObjectTable_Revoke_Proxy(
1848 IRunningObjectTable* This,
1849 DWORD dwRegister);
1850 void __RPC_STUB IRunningObjectTable_Revoke_Stub(
1851 struct IRpcStubBuffer* This,
1852 struct IRpcChannelBuffer* pRpcChannelBuffer,
1853 PRPC_MESSAGE pRpcMessage,
1854 DWORD* pdwStubPhase);
1855 HRESULT CALLBACK IRunningObjectTable_IsRunning_Proxy(
1856 IRunningObjectTable* This,
1857 IMoniker* pmkObjectName);
1858 void __RPC_STUB IRunningObjectTable_IsRunning_Stub(
1859 struct IRpcStubBuffer* This,
1860 struct IRpcChannelBuffer* pRpcChannelBuffer,
1861 PRPC_MESSAGE pRpcMessage,
1862 DWORD* pdwStubPhase);
1863 HRESULT CALLBACK IRunningObjectTable_GetObject_Proxy(
1864 IRunningObjectTable* This,
1865 IMoniker* pmkObjectName,
1866 IUnknown** ppunkObject);
1867 void __RPC_STUB IRunningObjectTable_GetObject_Stub(
1868 struct IRpcStubBuffer* This,
1869 struct IRpcChannelBuffer* pRpcChannelBuffer,
1870 PRPC_MESSAGE pRpcMessage,
1871 DWORD* pdwStubPhase);
1872 HRESULT CALLBACK IRunningObjectTable_NoteChangeTime_Proxy(
1873 IRunningObjectTable* This,
1874 DWORD dwRegister,
1875 FILETIME* pfiletime);
1876 void __RPC_STUB IRunningObjectTable_NoteChangeTime_Stub(
1877 struct IRpcStubBuffer* This,
1878 struct IRpcChannelBuffer* pRpcChannelBuffer,
1879 PRPC_MESSAGE pRpcMessage,
1880 DWORD* pdwStubPhase);
1881 HRESULT CALLBACK IRunningObjectTable_GetTimeOfLastChange_Proxy(
1882 IRunningObjectTable* This,
1883 IMoniker* pmkObjectName,
1884 FILETIME* pfiletime);
1885 void __RPC_STUB IRunningObjectTable_GetTimeOfLastChange_Stub(
1886 struct IRpcStubBuffer* This,
1887 struct IRpcChannelBuffer* pRpcChannelBuffer,
1888 PRPC_MESSAGE pRpcMessage,
1889 DWORD* pdwStubPhase);
1890 HRESULT CALLBACK IRunningObjectTable_EnumRunning_Proxy(
1891 IRunningObjectTable* This,
1892 IEnumMoniker** ppenumMoniker);
1893 void __RPC_STUB IRunningObjectTable_EnumRunning_Stub(
1894 struct IRpcStubBuffer* This,
1895 struct IRpcChannelBuffer* pRpcChannelBuffer,
1896 PRPC_MESSAGE pRpcMessage,
1897 DWORD* pdwStubPhase);
1899 typedef struct IPersist IPersist;
1900 typedef IPersist *LPPERSIST;
1902 /*****************************************************************************
1903 * IPersist interface
1905 DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1906 #if defined(__cplusplus) && !defined(CINTERFACE)
1907 struct IPersist: IUnknown {
1909 virtual HRESULT CALLBACK GetClassID(
1910 CLSID* pClassID) = 0;
1912 } ICOM_COM_INTERFACE_ATTRIBUTE;
1913 #else
1914 typedef struct IPersistVtbl IPersistVtbl;
1915 struct IPersist {
1916 const IPersistVtbl* lpVtbl;
1918 struct IPersistVtbl {
1919 ICOM_MSVTABLE_COMPAT_FIELDS
1921 /*** IUnknown methods ***/
1922 HRESULT (CALLBACK *QueryInterface)(
1923 IPersist* This,
1924 REFIID riid,
1925 void** ppvObject);
1927 ULONG (CALLBACK *AddRef)(
1928 IPersist* This);
1930 ULONG (CALLBACK *Release)(
1931 IPersist* This);
1933 /*** IPersist methods ***/
1934 HRESULT (CALLBACK *GetClassID)(
1935 IPersist* This,
1936 CLSID* pClassID);
1940 #define IPersist_IMETHODS \
1941 IUnknown_IMETHODS \
1942 ICOM_METHOD1 (HRESULT,GetClassID,CLSID*,pClassID)
1944 /*** IUnknown methods ***/
1945 #define IPersist_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1946 #define IPersist_AddRef(p) (p)->lpVtbl->AddRef(p)
1947 #define IPersist_Release(p) (p)->lpVtbl->Release(p)
1948 /*** IPersist methods ***/
1949 #define IPersist_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
1951 #endif
1953 HRESULT CALLBACK IPersist_GetClassID_Proxy(
1954 IPersist* This,
1955 CLSID* pClassID);
1956 void __RPC_STUB IPersist_GetClassID_Stub(
1957 struct IRpcStubBuffer* This,
1958 struct IRpcChannelBuffer* pRpcChannelBuffer,
1959 PRPC_MESSAGE pRpcMessage,
1960 DWORD* pdwStubPhase);
1962 typedef struct IPersistStream IPersistStream;
1963 typedef IPersistStream *LPPERSISTSTREAM;
1965 /*****************************************************************************
1966 * IPersistStream interface
1968 DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1969 #if defined(__cplusplus) && !defined(CINTERFACE)
1970 struct IPersistStream: IPersist {
1972 virtual HRESULT CALLBACK IsDirty(
1973 ) = 0;
1975 virtual HRESULT CALLBACK Load(
1976 IStream* pStm) = 0;
1978 virtual HRESULT CALLBACK Save(
1979 IStream* pStm,
1980 BOOL fClearDirty) = 0;
1982 virtual HRESULT CALLBACK GetSizeMax(
1983 ULARGE_INTEGER* pcbSize) = 0;
1985 } ICOM_COM_INTERFACE_ATTRIBUTE;
1986 #else
1987 typedef struct IPersistStreamVtbl IPersistStreamVtbl;
1988 struct IPersistStream {
1989 const IPersistStreamVtbl* lpVtbl;
1991 struct IPersistStreamVtbl {
1992 ICOM_MSVTABLE_COMPAT_FIELDS
1994 /*** IUnknown methods ***/
1995 HRESULT (CALLBACK *QueryInterface)(
1996 IPersistStream* This,
1997 REFIID riid,
1998 void** ppvObject);
2000 ULONG (CALLBACK *AddRef)(
2001 IPersistStream* This);
2003 ULONG (CALLBACK *Release)(
2004 IPersistStream* This);
2006 /*** IPersist methods ***/
2007 HRESULT (CALLBACK *GetClassID)(
2008 IPersistStream* This,
2009 CLSID* pClassID);
2011 /*** IPersistStream methods ***/
2012 HRESULT (CALLBACK *IsDirty)(
2013 IPersistStream* This);
2015 HRESULT (CALLBACK *Load)(
2016 IPersistStream* This,
2017 IStream* pStm);
2019 HRESULT (CALLBACK *Save)(
2020 IPersistStream* This,
2021 IStream* pStm,
2022 BOOL fClearDirty);
2024 HRESULT (CALLBACK *GetSizeMax)(
2025 IPersistStream* This,
2026 ULARGE_INTEGER* pcbSize);
2030 #define IPersistStream_IMETHODS \
2031 IPersist_IMETHODS \
2032 ICOM_METHOD (HRESULT,IsDirty) \
2033 ICOM_METHOD1 (HRESULT,Load,IStream*,pStm) \
2034 ICOM_METHOD2 (HRESULT,Save,IStream*,pStm,BOOL,fClearDirty) \
2035 ICOM_METHOD1 (HRESULT,GetSizeMax,ULARGE_INTEGER*,pcbSize)
2037 /*** IUnknown methods ***/
2038 #define IPersistStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2039 #define IPersistStream_AddRef(p) (p)->lpVtbl->AddRef(p)
2040 #define IPersistStream_Release(p) (p)->lpVtbl->Release(p)
2041 /*** IPersist methods ***/
2042 #define IPersistStream_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2043 /*** IPersistStream methods ***/
2044 #define IPersistStream_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2045 #define IPersistStream_Load(p,a) (p)->lpVtbl->Load(p,a)
2046 #define IPersistStream_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2047 #define IPersistStream_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2049 #endif
2051 HRESULT CALLBACK IPersistStream_IsDirty_Proxy(
2052 IPersistStream* This);
2053 void __RPC_STUB IPersistStream_IsDirty_Stub(
2054 struct IRpcStubBuffer* This,
2055 struct IRpcChannelBuffer* pRpcChannelBuffer,
2056 PRPC_MESSAGE pRpcMessage,
2057 DWORD* pdwStubPhase);
2058 HRESULT CALLBACK IPersistStream_Load_Proxy(
2059 IPersistStream* This,
2060 IStream* pStm);
2061 void __RPC_STUB IPersistStream_Load_Stub(
2062 struct IRpcStubBuffer* This,
2063 struct IRpcChannelBuffer* pRpcChannelBuffer,
2064 PRPC_MESSAGE pRpcMessage,
2065 DWORD* pdwStubPhase);
2066 HRESULT CALLBACK IPersistStream_Save_Proxy(
2067 IPersistStream* This,
2068 IStream* pStm,
2069 BOOL fClearDirty);
2070 void __RPC_STUB IPersistStream_Save_Stub(
2071 struct IRpcStubBuffer* This,
2072 struct IRpcChannelBuffer* pRpcChannelBuffer,
2073 PRPC_MESSAGE pRpcMessage,
2074 DWORD* pdwStubPhase);
2075 HRESULT CALLBACK IPersistStream_GetSizeMax_Proxy(
2076 IPersistStream* This,
2077 ULARGE_INTEGER* pcbSize);
2078 void __RPC_STUB IPersistStream_GetSizeMax_Stub(
2079 struct IRpcStubBuffer* This,
2080 struct IRpcChannelBuffer* pRpcChannelBuffer,
2081 PRPC_MESSAGE pRpcMessage,
2082 DWORD* pdwStubPhase);
2084 typedef IMoniker *LPMONIKER;
2086 typedef enum tagMKSYS {
2087 MKSYS_NONE = 0,
2088 MKSYS_GENERICCOMPOSITE = 1,
2089 MKSYS_FILEMONIKER = 2,
2090 MKSYS_ANTIMONIKER = 3,
2091 MKSYS_ITEMMONIKER = 4,
2092 MKSYS_POINTERMONIKER = 5,
2093 MKSYS_CLASSMONIKER = 7
2094 } MKSYS;
2096 typedef enum tagMKREDUCE {
2097 MKRREDUCE_ONE = 3 << 16,
2098 MKRREDUCE_TOUSER = 2 << 16,
2099 MKRREDUCE_THROUGHUSER = 1 << 16,
2100 MKRREDUCE_ALL = 0
2101 } MKRREDUCE;
2103 /*****************************************************************************
2104 * IMoniker interface
2106 DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2107 #if defined(__cplusplus) && !defined(CINTERFACE)
2108 struct IMoniker: IPersistStream {
2110 virtual HRESULT CALLBACK BindToObject(
2111 IBindCtx* pbc,
2112 IMoniker* pmkToLeft,
2113 REFIID riidResult,
2114 void** ppvResult) = 0;
2116 virtual HRESULT CALLBACK BindToStorage(
2117 IBindCtx* pbc,
2118 IMoniker* pmkToLeft,
2119 REFIID riid,
2120 void** ppvObj) = 0;
2122 virtual HRESULT CALLBACK Reduce(
2123 IBindCtx* pbc,
2124 DWORD dwReduceHowFar,
2125 IMoniker** ppmkToLeft,
2126 IMoniker** ppmkReduced) = 0;
2128 virtual HRESULT CALLBACK ComposeWith(
2129 IMoniker* pmkRight,
2130 BOOL fOnlyIfNotGeneric,
2131 IMoniker** ppmkComposite) = 0;
2133 virtual HRESULT CALLBACK Enum(
2134 BOOL fForward,
2135 IEnumMoniker** ppenumMoniker) = 0;
2137 virtual HRESULT CALLBACK IsEqual(
2138 IMoniker* pmkOtherMoniker) = 0;
2140 virtual HRESULT CALLBACK Hash(
2141 DWORD* pdwHash) = 0;
2143 virtual HRESULT CALLBACK IsRunning(
2144 IBindCtx* pbc,
2145 IMoniker* pmkToLeft,
2146 IMoniker* pmkNewlyRunning) = 0;
2148 virtual HRESULT CALLBACK GetTimeOfLastChange(
2149 IBindCtx* pbc,
2150 IMoniker* pmkToLeft,
2151 FILETIME* pFileTime) = 0;
2153 virtual HRESULT CALLBACK Inverse(
2154 IMoniker** ppmk) = 0;
2156 virtual HRESULT CALLBACK CommonPrefixWith(
2157 IMoniker* pmkOther,
2158 IMoniker** ppmkPrefix) = 0;
2160 virtual HRESULT CALLBACK RelativePathTo(
2161 IMoniker* pmkOther,
2162 IMoniker** ppmkRelPath) = 0;
2164 virtual HRESULT CALLBACK GetDisplayName(
2165 IBindCtx* pbc,
2166 IMoniker* pmkToLeft,
2167 LPOLESTR* ppszDisplayName) = 0;
2169 virtual HRESULT CALLBACK ParseDisplayName(
2170 IBindCtx* pbc,
2171 IMoniker* pmkToLeft,
2172 LPOLESTR pszDisplayName,
2173 ULONG* pchEaten,
2174 IMoniker** ppmkOut) = 0;
2176 virtual HRESULT CALLBACK IsSystemMoniker(
2177 DWORD* pdwMksys) = 0;
2179 } ICOM_COM_INTERFACE_ATTRIBUTE;
2180 #else
2181 typedef struct IMonikerVtbl IMonikerVtbl;
2182 struct IMoniker {
2183 const IMonikerVtbl* lpVtbl;
2185 struct IMonikerVtbl {
2186 ICOM_MSVTABLE_COMPAT_FIELDS
2188 /*** IUnknown methods ***/
2189 HRESULT (CALLBACK *QueryInterface)(
2190 IMoniker* This,
2191 REFIID riid,
2192 void** ppvObject);
2194 ULONG (CALLBACK *AddRef)(
2195 IMoniker* This);
2197 ULONG (CALLBACK *Release)(
2198 IMoniker* This);
2200 /*** IPersist methods ***/
2201 HRESULT (CALLBACK *GetClassID)(
2202 IMoniker* This,
2203 CLSID* pClassID);
2205 /*** IPersistStream methods ***/
2206 HRESULT (CALLBACK *IsDirty)(
2207 IMoniker* This);
2209 HRESULT (CALLBACK *Load)(
2210 IMoniker* This,
2211 IStream* pStm);
2213 HRESULT (CALLBACK *Save)(
2214 IMoniker* This,
2215 IStream* pStm,
2216 BOOL fClearDirty);
2218 HRESULT (CALLBACK *GetSizeMax)(
2219 IMoniker* This,
2220 ULARGE_INTEGER* pcbSize);
2222 /*** IMoniker methods ***/
2223 HRESULT (CALLBACK *BindToObject)(
2224 IMoniker* This,
2225 IBindCtx* pbc,
2226 IMoniker* pmkToLeft,
2227 REFIID riidResult,
2228 void** ppvResult);
2230 HRESULT (CALLBACK *BindToStorage)(
2231 IMoniker* This,
2232 IBindCtx* pbc,
2233 IMoniker* pmkToLeft,
2234 REFIID riid,
2235 void** ppvObj);
2237 HRESULT (CALLBACK *Reduce)(
2238 IMoniker* This,
2239 IBindCtx* pbc,
2240 DWORD dwReduceHowFar,
2241 IMoniker** ppmkToLeft,
2242 IMoniker** ppmkReduced);
2244 HRESULT (CALLBACK *ComposeWith)(
2245 IMoniker* This,
2246 IMoniker* pmkRight,
2247 BOOL fOnlyIfNotGeneric,
2248 IMoniker** ppmkComposite);
2250 HRESULT (CALLBACK *Enum)(
2251 IMoniker* This,
2252 BOOL fForward,
2253 IEnumMoniker** ppenumMoniker);
2255 HRESULT (CALLBACK *IsEqual)(
2256 IMoniker* This,
2257 IMoniker* pmkOtherMoniker);
2259 HRESULT (CALLBACK *Hash)(
2260 IMoniker* This,
2261 DWORD* pdwHash);
2263 HRESULT (CALLBACK *IsRunning)(
2264 IMoniker* This,
2265 IBindCtx* pbc,
2266 IMoniker* pmkToLeft,
2267 IMoniker* pmkNewlyRunning);
2269 HRESULT (CALLBACK *GetTimeOfLastChange)(
2270 IMoniker* This,
2271 IBindCtx* pbc,
2272 IMoniker* pmkToLeft,
2273 FILETIME* pFileTime);
2275 HRESULT (CALLBACK *Inverse)(
2276 IMoniker* This,
2277 IMoniker** ppmk);
2279 HRESULT (CALLBACK *CommonPrefixWith)(
2280 IMoniker* This,
2281 IMoniker* pmkOther,
2282 IMoniker** ppmkPrefix);
2284 HRESULT (CALLBACK *RelativePathTo)(
2285 IMoniker* This,
2286 IMoniker* pmkOther,
2287 IMoniker** ppmkRelPath);
2289 HRESULT (CALLBACK *GetDisplayName)(
2290 IMoniker* This,
2291 IBindCtx* pbc,
2292 IMoniker* pmkToLeft,
2293 LPOLESTR* ppszDisplayName);
2295 HRESULT (CALLBACK *ParseDisplayName)(
2296 IMoniker* This,
2297 IBindCtx* pbc,
2298 IMoniker* pmkToLeft,
2299 LPOLESTR pszDisplayName,
2300 ULONG* pchEaten,
2301 IMoniker** ppmkOut);
2303 HRESULT (CALLBACK *IsSystemMoniker)(
2304 IMoniker* This,
2305 DWORD* pdwMksys);
2309 #define IMoniker_IMETHODS \
2310 IPersistStream_IMETHODS \
2311 ICOM_METHOD4 (HRESULT,BindToObject,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riidResult,void**,ppvResult) \
2312 ICOM_METHOD4 (HRESULT,BindToStorage,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riid,void**,ppvObj) \
2313 ICOM_METHOD4 (HRESULT,Reduce,IBindCtx*,pbc,DWORD,dwReduceHowFar,IMoniker**,ppmkToLeft,IMoniker**,ppmkReduced) \
2314 ICOM_METHOD3 (HRESULT,ComposeWith,IMoniker*,pmkRight,BOOL,fOnlyIfNotGeneric,IMoniker**,ppmkComposite) \
2315 ICOM_METHOD2 (HRESULT,Enum,BOOL,fForward,IEnumMoniker**,ppenumMoniker) \
2316 ICOM_METHOD1 (HRESULT,IsEqual,IMoniker*,pmkOtherMoniker) \
2317 ICOM_METHOD1 (HRESULT,Hash,DWORD*,pdwHash) \
2318 ICOM_METHOD3 (HRESULT,IsRunning,IBindCtx*,pbc,IMoniker*,pmkToLeft,IMoniker*,pmkNewlyRunning) \
2319 ICOM_METHOD3 (HRESULT,GetTimeOfLastChange,IBindCtx*,pbc,IMoniker*,pmkToLeft,FILETIME*,pFileTime) \
2320 ICOM_METHOD1 (HRESULT,Inverse,IMoniker**,ppmk) \
2321 ICOM_METHOD2 (HRESULT,CommonPrefixWith,IMoniker*,pmkOther,IMoniker**,ppmkPrefix) \
2322 ICOM_METHOD2 (HRESULT,RelativePathTo,IMoniker*,pmkOther,IMoniker**,ppmkRelPath) \
2323 ICOM_METHOD3 (HRESULT,GetDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR*,ppszDisplayName) \
2324 ICOM_METHOD5 (HRESULT,ParseDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR,pszDisplayName,ULONG*,pchEaten,IMoniker**,ppmkOut) \
2325 ICOM_METHOD1 (HRESULT,IsSystemMoniker,DWORD*,pdwMksys)
2327 /*** IUnknown methods ***/
2328 #define IMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2329 #define IMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
2330 #define IMoniker_Release(p) (p)->lpVtbl->Release(p)
2331 /*** IPersist methods ***/
2332 #define IMoniker_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2333 /*** IPersistStream methods ***/
2334 #define IMoniker_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2335 #define IMoniker_Load(p,a) (p)->lpVtbl->Load(p,a)
2336 #define IMoniker_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2337 #define IMoniker_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2338 /*** IMoniker methods ***/
2339 #define IMoniker_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
2340 #define IMoniker_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
2341 #define IMoniker_Reduce(p,a,b,c,d) (p)->lpVtbl->Reduce(p,a,b,c,d)
2342 #define IMoniker_ComposeWith(p,a,b,c) (p)->lpVtbl->ComposeWith(p,a,b,c)
2343 #define IMoniker_Enum(p,a,b) (p)->lpVtbl->Enum(p,a,b)
2344 #define IMoniker_IsEqual(p,a) (p)->lpVtbl->IsEqual(p,a)
2345 #define IMoniker_Hash(p,a) (p)->lpVtbl->Hash(p,a)
2346 #define IMoniker_IsRunning(p,a,b,c) (p)->lpVtbl->IsRunning(p,a,b,c)
2347 #define IMoniker_GetTimeOfLastChange(p,a,b,c) (p)->lpVtbl->GetTimeOfLastChange(p,a,b,c)
2348 #define IMoniker_Inverse(p,a) (p)->lpVtbl->Inverse(p,a)
2349 #define IMoniker_CommonPrefixWith(p,a,b) (p)->lpVtbl->CommonPrefixWith(p,a,b)
2350 #define IMoniker_RelativePathTo(p,a,b) (p)->lpVtbl->RelativePathTo(p,a,b)
2351 #define IMoniker_GetDisplayName(p,a,b,c) (p)->lpVtbl->GetDisplayName(p,a,b,c)
2352 #define IMoniker_ParseDisplayName(p,a,b,c,d,e) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e)
2353 #define IMoniker_IsSystemMoniker(p,a) (p)->lpVtbl->IsSystemMoniker(p,a)
2355 #endif
2357 HRESULT CALLBACK IMoniker_RemoteBindToObject_Proxy(
2358 IMoniker* This,
2359 IBindCtx* pbc,
2360 IMoniker* pmkToLeft,
2361 REFIID riidResult,
2362 IUnknown** ppvResult);
2363 void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
2364 struct IRpcStubBuffer* This,
2365 struct IRpcChannelBuffer* pRpcChannelBuffer,
2366 PRPC_MESSAGE pRpcMessage,
2367 DWORD* pdwStubPhase);
2368 HRESULT CALLBACK IMoniker_BindToObject_Proxy(
2369 IMoniker* This,
2370 IBindCtx* pbc,
2371 IMoniker* pmkToLeft,
2372 REFIID riidResult,
2373 void** ppvResult);
2374 HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
2375 IMoniker* This,
2376 IBindCtx* pbc,
2377 IMoniker* pmkToLeft,
2378 REFIID riidResult,
2379 IUnknown** ppvResult);
2380 HRESULT CALLBACK IMoniker_RemoteBindToStorage_Proxy(
2381 IMoniker* This,
2382 IBindCtx* pbc,
2383 IMoniker* pmkToLeft,
2384 REFIID riid,
2385 IUnknown** ppvObj);
2386 void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
2387 struct IRpcStubBuffer* This,
2388 struct IRpcChannelBuffer* pRpcChannelBuffer,
2389 PRPC_MESSAGE pRpcMessage,
2390 DWORD* pdwStubPhase);
2391 HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
2392 IMoniker* This,
2393 IBindCtx* pbc,
2394 IMoniker* pmkToLeft,
2395 REFIID riid,
2396 void** ppvObj);
2397 HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
2398 IMoniker* This,
2399 IBindCtx* pbc,
2400 IMoniker* pmkToLeft,
2401 REFIID riid,
2402 IUnknown** ppvObj);
2403 HRESULT CALLBACK IMoniker_Reduce_Proxy(
2404 IMoniker* This,
2405 IBindCtx* pbc,
2406 DWORD dwReduceHowFar,
2407 IMoniker** ppmkToLeft,
2408 IMoniker** ppmkReduced);
2409 void __RPC_STUB IMoniker_Reduce_Stub(
2410 struct IRpcStubBuffer* This,
2411 struct IRpcChannelBuffer* pRpcChannelBuffer,
2412 PRPC_MESSAGE pRpcMessage,
2413 DWORD* pdwStubPhase);
2414 HRESULT CALLBACK IMoniker_ComposeWith_Proxy(
2415 IMoniker* This,
2416 IMoniker* pmkRight,
2417 BOOL fOnlyIfNotGeneric,
2418 IMoniker** ppmkComposite);
2419 void __RPC_STUB IMoniker_ComposeWith_Stub(
2420 struct IRpcStubBuffer* This,
2421 struct IRpcChannelBuffer* pRpcChannelBuffer,
2422 PRPC_MESSAGE pRpcMessage,
2423 DWORD* pdwStubPhase);
2424 HRESULT CALLBACK IMoniker_Enum_Proxy(
2425 IMoniker* This,
2426 BOOL fForward,
2427 IEnumMoniker** ppenumMoniker);
2428 void __RPC_STUB IMoniker_Enum_Stub(
2429 struct IRpcStubBuffer* This,
2430 struct IRpcChannelBuffer* pRpcChannelBuffer,
2431 PRPC_MESSAGE pRpcMessage,
2432 DWORD* pdwStubPhase);
2433 HRESULT CALLBACK IMoniker_IsEqual_Proxy(
2434 IMoniker* This,
2435 IMoniker* pmkOtherMoniker);
2436 void __RPC_STUB IMoniker_IsEqual_Stub(
2437 struct IRpcStubBuffer* This,
2438 struct IRpcChannelBuffer* pRpcChannelBuffer,
2439 PRPC_MESSAGE pRpcMessage,
2440 DWORD* pdwStubPhase);
2441 HRESULT CALLBACK IMoniker_Hash_Proxy(
2442 IMoniker* This,
2443 DWORD* pdwHash);
2444 void __RPC_STUB IMoniker_Hash_Stub(
2445 struct IRpcStubBuffer* This,
2446 struct IRpcChannelBuffer* pRpcChannelBuffer,
2447 PRPC_MESSAGE pRpcMessage,
2448 DWORD* pdwStubPhase);
2449 HRESULT CALLBACK IMoniker_IsRunning_Proxy(
2450 IMoniker* This,
2451 IBindCtx* pbc,
2452 IMoniker* pmkToLeft,
2453 IMoniker* pmkNewlyRunning);
2454 void __RPC_STUB IMoniker_IsRunning_Stub(
2455 struct IRpcStubBuffer* This,
2456 struct IRpcChannelBuffer* pRpcChannelBuffer,
2457 PRPC_MESSAGE pRpcMessage,
2458 DWORD* pdwStubPhase);
2459 HRESULT CALLBACK IMoniker_GetTimeOfLastChange_Proxy(
2460 IMoniker* This,
2461 IBindCtx* pbc,
2462 IMoniker* pmkToLeft,
2463 FILETIME* pFileTime);
2464 void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
2465 struct IRpcStubBuffer* This,
2466 struct IRpcChannelBuffer* pRpcChannelBuffer,
2467 PRPC_MESSAGE pRpcMessage,
2468 DWORD* pdwStubPhase);
2469 HRESULT CALLBACK IMoniker_Inverse_Proxy(
2470 IMoniker* This,
2471 IMoniker** ppmk);
2472 void __RPC_STUB IMoniker_Inverse_Stub(
2473 struct IRpcStubBuffer* This,
2474 struct IRpcChannelBuffer* pRpcChannelBuffer,
2475 PRPC_MESSAGE pRpcMessage,
2476 DWORD* pdwStubPhase);
2477 HRESULT CALLBACK IMoniker_CommonPrefixWith_Proxy(
2478 IMoniker* This,
2479 IMoniker* pmkOther,
2480 IMoniker** ppmkPrefix);
2481 void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
2482 struct IRpcStubBuffer* This,
2483 struct IRpcChannelBuffer* pRpcChannelBuffer,
2484 PRPC_MESSAGE pRpcMessage,
2485 DWORD* pdwStubPhase);
2486 HRESULT CALLBACK IMoniker_RelativePathTo_Proxy(
2487 IMoniker* This,
2488 IMoniker* pmkOther,
2489 IMoniker** ppmkRelPath);
2490 void __RPC_STUB IMoniker_RelativePathTo_Stub(
2491 struct IRpcStubBuffer* This,
2492 struct IRpcChannelBuffer* pRpcChannelBuffer,
2493 PRPC_MESSAGE pRpcMessage,
2494 DWORD* pdwStubPhase);
2495 HRESULT CALLBACK IMoniker_GetDisplayName_Proxy(
2496 IMoniker* This,
2497 IBindCtx* pbc,
2498 IMoniker* pmkToLeft,
2499 LPOLESTR* ppszDisplayName);
2500 void __RPC_STUB IMoniker_GetDisplayName_Stub(
2501 struct IRpcStubBuffer* This,
2502 struct IRpcChannelBuffer* pRpcChannelBuffer,
2503 PRPC_MESSAGE pRpcMessage,
2504 DWORD* pdwStubPhase);
2505 HRESULT CALLBACK IMoniker_ParseDisplayName_Proxy(
2506 IMoniker* This,
2507 IBindCtx* pbc,
2508 IMoniker* pmkToLeft,
2509 LPOLESTR pszDisplayName,
2510 ULONG* pchEaten,
2511 IMoniker** ppmkOut);
2512 void __RPC_STUB IMoniker_ParseDisplayName_Stub(
2513 struct IRpcStubBuffer* This,
2514 struct IRpcChannelBuffer* pRpcChannelBuffer,
2515 PRPC_MESSAGE pRpcMessage,
2516 DWORD* pdwStubPhase);
2517 HRESULT CALLBACK IMoniker_IsSystemMoniker_Proxy(
2518 IMoniker* This,
2519 DWORD* pdwMksys);
2520 void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
2521 struct IRpcStubBuffer* This,
2522 struct IRpcChannelBuffer* pRpcChannelBuffer,
2523 PRPC_MESSAGE pRpcMessage,
2524 DWORD* pdwStubPhase);
2526 typedef struct IROTData IROTData;
2527 /*****************************************************************************
2528 * IROTData interface
2530 DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
2531 #if defined(__cplusplus) && !defined(CINTERFACE)
2532 struct IROTData: IUnknown {
2534 virtual HRESULT CALLBACK GetComparisonData(
2535 byte* pbData,
2536 ULONG cbMax,
2537 ULONG* pcbData) = 0;
2539 } ICOM_COM_INTERFACE_ATTRIBUTE;
2540 #else
2541 typedef struct IROTDataVtbl IROTDataVtbl;
2542 struct IROTData {
2543 const IROTDataVtbl* lpVtbl;
2545 struct IROTDataVtbl {
2546 ICOM_MSVTABLE_COMPAT_FIELDS
2548 /*** IUnknown methods ***/
2549 HRESULT (CALLBACK *QueryInterface)(
2550 IROTData* This,
2551 REFIID riid,
2552 void** ppvObject);
2554 ULONG (CALLBACK *AddRef)(
2555 IROTData* This);
2557 ULONG (CALLBACK *Release)(
2558 IROTData* This);
2560 /*** IROTData methods ***/
2561 HRESULT (CALLBACK *GetComparisonData)(
2562 IROTData* This,
2563 byte* pbData,
2564 ULONG cbMax,
2565 ULONG* pcbData);
2569 #define IROTData_IMETHODS \
2570 IUnknown_IMETHODS \
2571 ICOM_METHOD3 (HRESULT,GetComparisonData,byte*,pbData,ULONG,cbMax,ULONG*,pcbData)
2573 /*** IUnknown methods ***/
2574 #define IROTData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2575 #define IROTData_AddRef(p) (p)->lpVtbl->AddRef(p)
2576 #define IROTData_Release(p) (p)->lpVtbl->Release(p)
2577 /*** IROTData methods ***/
2578 #define IROTData_GetComparisonData(p,a,b,c) (p)->lpVtbl->GetComparisonData(p,a,b,c)
2580 #endif
2582 HRESULT CALLBACK IROTData_GetComparisonData_Proxy(
2583 IROTData* This,
2584 byte* pbData,
2585 ULONG cbMax,
2586 ULONG* pcbData);
2587 void __RPC_STUB IROTData_GetComparisonData_Stub(
2588 struct IRpcStubBuffer* This,
2589 struct IRpcChannelBuffer* pRpcChannelBuffer,
2590 PRPC_MESSAGE pRpcMessage,
2591 DWORD* pdwStubPhase);
2593 typedef IEnumString *LPENUMSTRING;
2595 /*****************************************************************************
2596 * IEnumString interface
2598 DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2599 #if defined(__cplusplus) && !defined(CINTERFACE)
2600 struct IEnumString: IUnknown {
2602 virtual HRESULT CALLBACK Next(
2603 ULONG celt,
2604 LPOLESTR* rgelt,
2605 ULONG* pceltFetched) = 0;
2607 virtual HRESULT CALLBACK Skip(
2608 ULONG celt) = 0;
2610 virtual HRESULT CALLBACK Reset(
2611 ) = 0;
2613 virtual HRESULT CALLBACK Clone(
2614 IEnumString** ppenum) = 0;
2616 } ICOM_COM_INTERFACE_ATTRIBUTE;
2617 #else
2618 typedef struct IEnumStringVtbl IEnumStringVtbl;
2619 struct IEnumString {
2620 const IEnumStringVtbl* lpVtbl;
2622 struct IEnumStringVtbl {
2623 ICOM_MSVTABLE_COMPAT_FIELDS
2625 /*** IUnknown methods ***/
2626 HRESULT (CALLBACK *QueryInterface)(
2627 IEnumString* This,
2628 REFIID riid,
2629 void** ppvObject);
2631 ULONG (CALLBACK *AddRef)(
2632 IEnumString* This);
2634 ULONG (CALLBACK *Release)(
2635 IEnumString* This);
2637 /*** IEnumString methods ***/
2638 HRESULT (CALLBACK *Next)(
2639 IEnumString* This,
2640 ULONG celt,
2641 LPOLESTR* rgelt,
2642 ULONG* pceltFetched);
2644 HRESULT (CALLBACK *Skip)(
2645 IEnumString* This,
2646 ULONG celt);
2648 HRESULT (CALLBACK *Reset)(
2649 IEnumString* This);
2651 HRESULT (CALLBACK *Clone)(
2652 IEnumString* This,
2653 IEnumString** ppenum);
2657 #define IEnumString_IMETHODS \
2658 IUnknown_IMETHODS \
2659 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,LPOLESTR*,rgelt,ULONG*,pceltFetched) \
2660 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
2661 ICOM_METHOD (HRESULT,Reset) \
2662 ICOM_METHOD1 (HRESULT,Clone,IEnumString**,ppenum)
2664 /*** IUnknown methods ***/
2665 #define IEnumString_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2666 #define IEnumString_AddRef(p) (p)->lpVtbl->AddRef(p)
2667 #define IEnumString_Release(p) (p)->lpVtbl->Release(p)
2668 /*** IEnumString methods ***/
2669 #define IEnumString_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
2670 #define IEnumString_Skip(p,a) (p)->lpVtbl->Skip(p,a)
2671 #define IEnumString_Reset(p) (p)->lpVtbl->Reset(p)
2672 #define IEnumString_Clone(p,a) (p)->lpVtbl->Clone(p,a)
2674 #endif
2676 HRESULT CALLBACK IEnumString_RemoteNext_Proxy(
2677 IEnumString* This,
2678 ULONG celt,
2679 LPOLESTR* rgelt,
2680 ULONG* pceltFetched);
2681 void __RPC_STUB IEnumString_RemoteNext_Stub(
2682 struct IRpcStubBuffer* This,
2683 struct IRpcChannelBuffer* pRpcChannelBuffer,
2684 PRPC_MESSAGE pRpcMessage,
2685 DWORD* pdwStubPhase);
2686 HRESULT CALLBACK IEnumString_Next_Proxy(
2687 IEnumString* This,
2688 ULONG celt,
2689 LPOLESTR* rgelt,
2690 ULONG* pceltFetched);
2691 HRESULT __RPC_STUB IEnumString_Next_Stub(
2692 IEnumString* This,
2693 ULONG celt,
2694 LPOLESTR* rgelt,
2695 ULONG* pceltFetched);
2696 HRESULT CALLBACK IEnumString_Skip_Proxy(
2697 IEnumString* This,
2698 ULONG celt);
2699 void __RPC_STUB IEnumString_Skip_Stub(
2700 struct IRpcStubBuffer* This,
2701 struct IRpcChannelBuffer* pRpcChannelBuffer,
2702 PRPC_MESSAGE pRpcMessage,
2703 DWORD* pdwStubPhase);
2704 HRESULT CALLBACK IEnumString_Reset_Proxy(
2705 IEnumString* This);
2706 void __RPC_STUB IEnumString_Reset_Stub(
2707 struct IRpcStubBuffer* This,
2708 struct IRpcChannelBuffer* pRpcChannelBuffer,
2709 PRPC_MESSAGE pRpcMessage,
2710 DWORD* pdwStubPhase);
2711 HRESULT CALLBACK IEnumString_Clone_Proxy(
2712 IEnumString* This,
2713 IEnumString** ppenum);
2714 void __RPC_STUB IEnumString_Clone_Stub(
2715 struct IRpcStubBuffer* This,
2716 struct IRpcChannelBuffer* pRpcChannelBuffer,
2717 PRPC_MESSAGE pRpcMessage,
2718 DWORD* pdwStubPhase);
2720 typedef struct IClassActivator IClassActivator;
2721 /*****************************************************************************
2722 * IClassActivator interface
2724 DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2725 #if defined(__cplusplus) && !defined(CINTERFACE)
2726 struct IClassActivator: IUnknown {
2728 virtual HRESULT CALLBACK GetClassObject(
2729 REFCLSID rclsid,
2730 DWORD dwClassContext,
2731 LCID locale,
2732 REFIID riid,
2733 void** ppv) = 0;
2735 } ICOM_COM_INTERFACE_ATTRIBUTE;
2736 #else
2737 typedef struct IClassActivatorVtbl IClassActivatorVtbl;
2738 struct IClassActivator {
2739 const IClassActivatorVtbl* lpVtbl;
2741 struct IClassActivatorVtbl {
2742 ICOM_MSVTABLE_COMPAT_FIELDS
2744 /*** IUnknown methods ***/
2745 HRESULT (CALLBACK *QueryInterface)(
2746 IClassActivator* This,
2747 REFIID riid,
2748 void** ppvObject);
2750 ULONG (CALLBACK *AddRef)(
2751 IClassActivator* This);
2753 ULONG (CALLBACK *Release)(
2754 IClassActivator* This);
2756 /*** IClassActivator methods ***/
2757 HRESULT (CALLBACK *GetClassObject)(
2758 IClassActivator* This,
2759 REFCLSID rclsid,
2760 DWORD dwClassContext,
2761 LCID locale,
2762 REFIID riid,
2763 void** ppv);
2767 #define IClassActivator_IMETHODS \
2768 IUnknown_IMETHODS \
2769 ICOM_METHOD5 (HRESULT,GetClassObject,REFCLSID,rclsid,DWORD,dwClassContext,LCID,locale,REFIID,riid,void**,ppv)
2771 /*** IUnknown methods ***/
2772 #define IClassActivator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2773 #define IClassActivator_AddRef(p) (p)->lpVtbl->AddRef(p)
2774 #define IClassActivator_Release(p) (p)->lpVtbl->Release(p)
2775 /*** IClassActivator methods ***/
2776 #define IClassActivator_GetClassObject(p,a,b,c,d,e) (p)->lpVtbl->GetClassObject(p,a,b,c,d,e)
2778 #endif
2780 HRESULT CALLBACK IClassActivator_GetClassObject_Proxy(
2781 IClassActivator* This,
2782 REFCLSID rclsid,
2783 DWORD dwClassContext,
2784 LCID locale,
2785 REFIID riid,
2786 void** ppv);
2787 void __RPC_STUB IClassActivator_GetClassObject_Stub(
2788 struct IRpcStubBuffer* This,
2789 struct IRpcChannelBuffer* pRpcChannelBuffer,
2790 PRPC_MESSAGE pRpcMessage,
2791 DWORD* pdwStubPhase);
2793 typedef struct ISequentialStream ISequentialStream;
2794 /*****************************************************************************
2795 * ISequentialStream interface
2797 DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
2798 #if defined(__cplusplus) && !defined(CINTERFACE)
2799 struct ISequentialStream: IUnknown {
2801 virtual HRESULT CALLBACK Read(
2802 void* pv,
2803 ULONG cb,
2804 ULONG* pcbRead) = 0;
2806 virtual HRESULT CALLBACK Write(
2807 const void* pv,
2808 ULONG cb,
2809 ULONG* pcbWritten) = 0;
2811 } ICOM_COM_INTERFACE_ATTRIBUTE;
2812 #else
2813 typedef struct ISequentialStreamVtbl ISequentialStreamVtbl;
2814 struct ISequentialStream {
2815 const ISequentialStreamVtbl* lpVtbl;
2817 struct ISequentialStreamVtbl {
2818 ICOM_MSVTABLE_COMPAT_FIELDS
2820 /*** IUnknown methods ***/
2821 HRESULT (CALLBACK *QueryInterface)(
2822 ISequentialStream* This,
2823 REFIID riid,
2824 void** ppvObject);
2826 ULONG (CALLBACK *AddRef)(
2827 ISequentialStream* This);
2829 ULONG (CALLBACK *Release)(
2830 ISequentialStream* This);
2832 /*** ISequentialStream methods ***/
2833 HRESULT (CALLBACK *Read)(
2834 ISequentialStream* This,
2835 void* pv,
2836 ULONG cb,
2837 ULONG* pcbRead);
2839 HRESULT (CALLBACK *Write)(
2840 ISequentialStream* This,
2841 const void* pv,
2842 ULONG cb,
2843 ULONG* pcbWritten);
2847 #define ISequentialStream_IMETHODS \
2848 IUnknown_IMETHODS \
2849 ICOM_METHOD3 (HRESULT,Read,void*,pv,ULONG,cb,ULONG*,pcbRead) \
2850 ICOM_METHOD3 (HRESULT,Write,const void*,pv,ULONG,cb,ULONG*,pcbWritten)
2852 /*** IUnknown methods ***/
2853 #define ISequentialStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2854 #define ISequentialStream_AddRef(p) (p)->lpVtbl->AddRef(p)
2855 #define ISequentialStream_Release(p) (p)->lpVtbl->Release(p)
2856 /*** ISequentialStream methods ***/
2857 #define ISequentialStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
2858 #define ISequentialStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
2860 #endif
2862 HRESULT CALLBACK ISequentialStream_RemoteRead_Proxy(
2863 ISequentialStream* This,
2864 byte* pv,
2865 ULONG cb,
2866 ULONG* pcbRead);
2867 void __RPC_STUB ISequentialStream_RemoteRead_Stub(
2868 struct IRpcStubBuffer* This,
2869 struct IRpcChannelBuffer* pRpcChannelBuffer,
2870 PRPC_MESSAGE pRpcMessage,
2871 DWORD* pdwStubPhase);
2872 HRESULT CALLBACK ISequentialStream_Read_Proxy(
2873 ISequentialStream* This,
2874 void* pv,
2875 ULONG cb,
2876 ULONG* pcbRead);
2877 HRESULT __RPC_STUB ISequentialStream_Read_Stub(
2878 ISequentialStream* This,
2879 byte* pv,
2880 ULONG cb,
2881 ULONG* pcbRead);
2882 HRESULT CALLBACK ISequentialStream_RemoteWrite_Proxy(
2883 ISequentialStream* This,
2884 const byte* pv,
2885 ULONG cb,
2886 ULONG* pcbWritten);
2887 void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
2888 struct IRpcStubBuffer* This,
2889 struct IRpcChannelBuffer* pRpcChannelBuffer,
2890 PRPC_MESSAGE pRpcMessage,
2891 DWORD* pdwStubPhase);
2892 HRESULT CALLBACK ISequentialStream_Write_Proxy(
2893 ISequentialStream* This,
2894 const void* pv,
2895 ULONG cb,
2896 ULONG* pcbWritten);
2897 HRESULT __RPC_STUB ISequentialStream_Write_Stub(
2898 ISequentialStream* This,
2899 const byte* pv,
2900 ULONG cb,
2901 ULONG* pcbWritten);
2903 typedef IStream *LPSTREAM;
2905 typedef struct tagSTATSTG {
2906 LPOLESTR pwcsName;
2907 DWORD type;
2908 ULARGE_INTEGER cbSize;
2909 FILETIME mtime;
2910 FILETIME ctime;
2911 FILETIME atime;
2912 DWORD grfMode;
2913 DWORD grfLocksSupported;
2914 CLSID clsid;
2915 DWORD grfStateBits;
2916 DWORD reserved;
2917 } STATSTG;
2919 typedef enum tagSTGTY {
2920 STGTY_STORAGE = 1,
2921 STGTY_STREAM = 2,
2922 STGTY_LOCKBYTES = 3,
2923 STGTY_PROPERTY = 4
2924 } STGTY;
2926 typedef enum tagSTREAM_SEEK {
2927 STREAM_SEEK_SET = 0,
2928 STREAM_SEEK_CUR = 1,
2929 STREAM_SEEK_END = 2
2930 } STREAM_SEEK;
2932 #undef LOCK_MAND
2933 #undef LOCK_READ
2934 #undef LOCK_WRITE
2935 #undef LOCK_RW
2936 typedef enum tagLOCKTYPE {
2937 LOCK_WRITE = 1,
2938 LOCK_EXCLUSIVE = 2,
2939 LOCK_ONLYONCE = 4
2940 } LOCKTYPE;
2942 /*****************************************************************************
2943 * IStream interface
2945 DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2946 #if defined(__cplusplus) && !defined(CINTERFACE)
2947 struct IStream: ISequentialStream {
2949 virtual HRESULT CALLBACK Seek(
2950 LARGE_INTEGER dlibMove,
2951 DWORD dwOrigin,
2952 ULARGE_INTEGER* plibNewPosition) = 0;
2954 virtual HRESULT CALLBACK SetSize(
2955 ULARGE_INTEGER libNewSize) = 0;
2957 virtual HRESULT CALLBACK CopyTo(
2958 IStream* pstm,
2959 ULARGE_INTEGER cb,
2960 ULARGE_INTEGER* pcbRead,
2961 ULARGE_INTEGER* pcbWritten) = 0;
2963 virtual HRESULT CALLBACK Commit(
2964 DWORD grfCommitFlags) = 0;
2966 virtual HRESULT CALLBACK Revert(
2967 ) = 0;
2969 virtual HRESULT CALLBACK LockRegion(
2970 ULARGE_INTEGER libOffset,
2971 ULARGE_INTEGER cb,
2972 DWORD dwLockType) = 0;
2974 virtual HRESULT CALLBACK UnlockRegion(
2975 ULARGE_INTEGER libOffset,
2976 ULARGE_INTEGER cb,
2977 DWORD dwLockType) = 0;
2979 virtual HRESULT CALLBACK Stat(
2980 STATSTG* pstatstg,
2981 DWORD grfStatFlag) = 0;
2983 virtual HRESULT CALLBACK Clone(
2984 IStream** ppstm) = 0;
2986 } ICOM_COM_INTERFACE_ATTRIBUTE;
2987 #else
2988 typedef struct IStreamVtbl IStreamVtbl;
2989 struct IStream {
2990 const IStreamVtbl* lpVtbl;
2992 struct IStreamVtbl {
2993 ICOM_MSVTABLE_COMPAT_FIELDS
2995 /*** IUnknown methods ***/
2996 HRESULT (CALLBACK *QueryInterface)(
2997 IStream* This,
2998 REFIID riid,
2999 void** ppvObject);
3001 ULONG (CALLBACK *AddRef)(
3002 IStream* This);
3004 ULONG (CALLBACK *Release)(
3005 IStream* This);
3007 /*** ISequentialStream methods ***/
3008 HRESULT (CALLBACK *Read)(
3009 IStream* This,
3010 void* pv,
3011 ULONG cb,
3012 ULONG* pcbRead);
3014 HRESULT (CALLBACK *Write)(
3015 IStream* This,
3016 const void* pv,
3017 ULONG cb,
3018 ULONG* pcbWritten);
3020 /*** IStream methods ***/
3021 HRESULT (CALLBACK *Seek)(
3022 IStream* This,
3023 LARGE_INTEGER dlibMove,
3024 DWORD dwOrigin,
3025 ULARGE_INTEGER* plibNewPosition);
3027 HRESULT (CALLBACK *SetSize)(
3028 IStream* This,
3029 ULARGE_INTEGER libNewSize);
3031 HRESULT (CALLBACK *CopyTo)(
3032 IStream* This,
3033 IStream* pstm,
3034 ULARGE_INTEGER cb,
3035 ULARGE_INTEGER* pcbRead,
3036 ULARGE_INTEGER* pcbWritten);
3038 HRESULT (CALLBACK *Commit)(
3039 IStream* This,
3040 DWORD grfCommitFlags);
3042 HRESULT (CALLBACK *Revert)(
3043 IStream* This);
3045 HRESULT (CALLBACK *LockRegion)(
3046 IStream* This,
3047 ULARGE_INTEGER libOffset,
3048 ULARGE_INTEGER cb,
3049 DWORD dwLockType);
3051 HRESULT (CALLBACK *UnlockRegion)(
3052 IStream* This,
3053 ULARGE_INTEGER libOffset,
3054 ULARGE_INTEGER cb,
3055 DWORD dwLockType);
3057 HRESULT (CALLBACK *Stat)(
3058 IStream* This,
3059 STATSTG* pstatstg,
3060 DWORD grfStatFlag);
3062 HRESULT (CALLBACK *Clone)(
3063 IStream* This,
3064 IStream** ppstm);
3068 #define IStream_IMETHODS \
3069 ISequentialStream_IMETHODS \
3070 ICOM_METHOD3 (HRESULT,Seek,LARGE_INTEGER,dlibMove,DWORD,dwOrigin,ULARGE_INTEGER*,plibNewPosition) \
3071 ICOM_METHOD1 (HRESULT,SetSize,ULARGE_INTEGER,libNewSize) \
3072 ICOM_METHOD4 (HRESULT,CopyTo,IStream*,pstm,ULARGE_INTEGER,cb,ULARGE_INTEGER*,pcbRead,ULARGE_INTEGER*,pcbWritten) \
3073 ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
3074 ICOM_METHOD (HRESULT,Revert) \
3075 ICOM_METHOD3 (HRESULT,LockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
3076 ICOM_METHOD3 (HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
3077 ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag) \
3078 ICOM_METHOD1 (HRESULT,Clone,IStream**,ppstm)
3080 /*** IUnknown methods ***/
3081 #define IStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3082 #define IStream_AddRef(p) (p)->lpVtbl->AddRef(p)
3083 #define IStream_Release(p) (p)->lpVtbl->Release(p)
3084 /*** ISequentialStream methods ***/
3085 #define IStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3086 #define IStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3087 /*** IStream methods ***/
3088 #define IStream_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
3089 #define IStream_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
3090 #define IStream_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3091 #define IStream_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3092 #define IStream_Revert(p) (p)->lpVtbl->Revert(p)
3093 #define IStream_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
3094 #define IStream_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
3095 #define IStream_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3096 #define IStream_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3098 #endif
3100 HRESULT CALLBACK IStream_RemoteSeek_Proxy(
3101 IStream* This,
3102 LARGE_INTEGER dlibMove,
3103 DWORD dwOrigin,
3104 ULARGE_INTEGER* plibNewPosition);
3105 void __RPC_STUB IStream_RemoteSeek_Stub(
3106 struct IRpcStubBuffer* This,
3107 struct IRpcChannelBuffer* pRpcChannelBuffer,
3108 PRPC_MESSAGE pRpcMessage,
3109 DWORD* pdwStubPhase);
3110 HRESULT CALLBACK IStream_Seek_Proxy(
3111 IStream* This,
3112 LARGE_INTEGER dlibMove,
3113 DWORD dwOrigin,
3114 ULARGE_INTEGER* plibNewPosition);
3115 HRESULT __RPC_STUB IStream_Seek_Stub(
3116 IStream* This,
3117 LARGE_INTEGER dlibMove,
3118 DWORD dwOrigin,
3119 ULARGE_INTEGER* plibNewPosition);
3120 HRESULT CALLBACK IStream_SetSize_Proxy(
3121 IStream* This,
3122 ULARGE_INTEGER libNewSize);
3123 void __RPC_STUB IStream_SetSize_Stub(
3124 struct IRpcStubBuffer* This,
3125 struct IRpcChannelBuffer* pRpcChannelBuffer,
3126 PRPC_MESSAGE pRpcMessage,
3127 DWORD* pdwStubPhase);
3128 HRESULT CALLBACK IStream_RemoteCopyTo_Proxy(
3129 IStream* This,
3130 IStream* pstm,
3131 ULARGE_INTEGER cb,
3132 ULARGE_INTEGER* pcbRead,
3133 ULARGE_INTEGER* pcbWritten);
3134 void __RPC_STUB IStream_RemoteCopyTo_Stub(
3135 struct IRpcStubBuffer* This,
3136 struct IRpcChannelBuffer* pRpcChannelBuffer,
3137 PRPC_MESSAGE pRpcMessage,
3138 DWORD* pdwStubPhase);
3139 HRESULT CALLBACK IStream_CopyTo_Proxy(
3140 IStream* This,
3141 IStream* pstm,
3142 ULARGE_INTEGER cb,
3143 ULARGE_INTEGER* pcbRead,
3144 ULARGE_INTEGER* pcbWritten);
3145 HRESULT __RPC_STUB IStream_CopyTo_Stub(
3146 IStream* This,
3147 IStream* pstm,
3148 ULARGE_INTEGER cb,
3149 ULARGE_INTEGER* pcbRead,
3150 ULARGE_INTEGER* pcbWritten);
3151 HRESULT CALLBACK IStream_Commit_Proxy(
3152 IStream* This,
3153 DWORD grfCommitFlags);
3154 void __RPC_STUB IStream_Commit_Stub(
3155 struct IRpcStubBuffer* This,
3156 struct IRpcChannelBuffer* pRpcChannelBuffer,
3157 PRPC_MESSAGE pRpcMessage,
3158 DWORD* pdwStubPhase);
3159 HRESULT CALLBACK IStream_Revert_Proxy(
3160 IStream* This);
3161 void __RPC_STUB IStream_Revert_Stub(
3162 struct IRpcStubBuffer* This,
3163 struct IRpcChannelBuffer* pRpcChannelBuffer,
3164 PRPC_MESSAGE pRpcMessage,
3165 DWORD* pdwStubPhase);
3166 HRESULT CALLBACK IStream_LockRegion_Proxy(
3167 IStream* This,
3168 ULARGE_INTEGER libOffset,
3169 ULARGE_INTEGER cb,
3170 DWORD dwLockType);
3171 void __RPC_STUB IStream_LockRegion_Stub(
3172 struct IRpcStubBuffer* This,
3173 struct IRpcChannelBuffer* pRpcChannelBuffer,
3174 PRPC_MESSAGE pRpcMessage,
3175 DWORD* pdwStubPhase);
3176 HRESULT CALLBACK IStream_UnlockRegion_Proxy(
3177 IStream* This,
3178 ULARGE_INTEGER libOffset,
3179 ULARGE_INTEGER cb,
3180 DWORD dwLockType);
3181 void __RPC_STUB IStream_UnlockRegion_Stub(
3182 struct IRpcStubBuffer* This,
3183 struct IRpcChannelBuffer* pRpcChannelBuffer,
3184 PRPC_MESSAGE pRpcMessage,
3185 DWORD* pdwStubPhase);
3186 HRESULT CALLBACK IStream_Stat_Proxy(
3187 IStream* This,
3188 STATSTG* pstatstg,
3189 DWORD grfStatFlag);
3190 void __RPC_STUB IStream_Stat_Stub(
3191 struct IRpcStubBuffer* This,
3192 struct IRpcChannelBuffer* pRpcChannelBuffer,
3193 PRPC_MESSAGE pRpcMessage,
3194 DWORD* pdwStubPhase);
3195 HRESULT CALLBACK IStream_Clone_Proxy(
3196 IStream* This,
3197 IStream** ppstm);
3198 void __RPC_STUB IStream_Clone_Stub(
3199 struct IRpcStubBuffer* This,
3200 struct IRpcChannelBuffer* pRpcChannelBuffer,
3201 PRPC_MESSAGE pRpcMessage,
3202 DWORD* pdwStubPhase);
3204 typedef IStream16 *LPSTREAM16;
3206 typedef struct tagSTATSTG16 {
3207 LPOLESTR16 pwcsName;
3208 DWORD type;
3209 ULARGE_INTEGER cbSize;
3210 FILETIME mtime;
3211 FILETIME ctime;
3212 FILETIME atime;
3213 DWORD grfMode;
3214 DWORD grfLocksSupported;
3215 CLSID clsid;
3216 DWORD grfStateBits;
3217 DWORD reserved;
3218 } STATSTG16;
3220 /*****************************************************************************
3221 * IStream16 interface
3223 #if defined(__cplusplus) && !defined(CINTERFACE)
3224 struct IStream16: ISequentialStream {
3226 virtual HRESULT CALLBACK Seek(
3227 LARGE_INTEGER dlibMove,
3228 DWORD dwOrigin,
3229 ULARGE_INTEGER* plibNewPosition) = 0;
3231 virtual HRESULT CALLBACK SetSize(
3232 ULARGE_INTEGER libNewSize) = 0;
3234 virtual HRESULT CALLBACK CopyTo(
3235 IStream16* pstm,
3236 ULARGE_INTEGER cb,
3237 ULARGE_INTEGER* pcbRead,
3238 ULARGE_INTEGER* pcbWritten) = 0;
3240 virtual HRESULT CALLBACK Commit(
3241 DWORD grfCommitFlags) = 0;
3243 virtual HRESULT CALLBACK Revert(
3244 ) = 0;
3246 virtual HRESULT CALLBACK LockRegion(
3247 ULARGE_INTEGER libOffset,
3248 ULARGE_INTEGER cb,
3249 DWORD dwLockType) = 0;
3251 virtual HRESULT CALLBACK UnlockRegion(
3252 ULARGE_INTEGER libOffset,
3253 ULARGE_INTEGER cb,
3254 DWORD dwLockType) = 0;
3256 virtual HRESULT CALLBACK Stat(
3257 STATSTG* pstatstg,
3258 DWORD grfStatFlag) = 0;
3260 virtual HRESULT CALLBACK Clone(
3261 IStream16** ppstm) = 0;
3263 } ICOM_COM_INTERFACE_ATTRIBUTE;
3264 #else
3265 typedef struct IStream16Vtbl IStream16Vtbl;
3266 struct IStream16 {
3267 const IStream16Vtbl* lpVtbl;
3269 struct IStream16Vtbl {
3270 ICOM_MSVTABLE_COMPAT_FIELDS
3272 /*** IUnknown methods ***/
3273 HRESULT (CALLBACK *QueryInterface)(
3274 IStream16* This,
3275 REFIID riid,
3276 void** ppvObject);
3278 ULONG (CALLBACK *AddRef)(
3279 IStream16* This);
3281 ULONG (CALLBACK *Release)(
3282 IStream16* This);
3284 /*** ISequentialStream methods ***/
3285 HRESULT (CALLBACK *Read)(
3286 IStream16* This,
3287 void* pv,
3288 ULONG cb,
3289 ULONG* pcbRead);
3291 HRESULT (CALLBACK *Write)(
3292 IStream16* This,
3293 const void* pv,
3294 ULONG cb,
3295 ULONG* pcbWritten);
3297 /*** IStream16 methods ***/
3298 HRESULT (CALLBACK *Seek)(
3299 IStream16* This,
3300 LARGE_INTEGER dlibMove,
3301 DWORD dwOrigin,
3302 ULARGE_INTEGER* plibNewPosition);
3304 HRESULT (CALLBACK *SetSize)(
3305 IStream16* This,
3306 ULARGE_INTEGER libNewSize);
3308 HRESULT (CALLBACK *CopyTo)(
3309 IStream16* This,
3310 IStream16* pstm,
3311 ULARGE_INTEGER cb,
3312 ULARGE_INTEGER* pcbRead,
3313 ULARGE_INTEGER* pcbWritten);
3315 HRESULT (CALLBACK *Commit)(
3316 IStream16* This,
3317 DWORD grfCommitFlags);
3319 HRESULT (CALLBACK *Revert)(
3320 IStream16* This);
3322 HRESULT (CALLBACK *LockRegion)(
3323 IStream16* This,
3324 ULARGE_INTEGER libOffset,
3325 ULARGE_INTEGER cb,
3326 DWORD dwLockType);
3328 HRESULT (CALLBACK *UnlockRegion)(
3329 IStream16* This,
3330 ULARGE_INTEGER libOffset,
3331 ULARGE_INTEGER cb,
3332 DWORD dwLockType);
3334 HRESULT (CALLBACK *Stat)(
3335 IStream16* This,
3336 STATSTG* pstatstg,
3337 DWORD grfStatFlag);
3339 HRESULT (CALLBACK *Clone)(
3340 IStream16* This,
3341 IStream16** ppstm);
3345 #define IStream16_IMETHODS \
3346 ISequentialStream_IMETHODS \
3347 ICOM_METHOD3 (HRESULT,Seek,LARGE_INTEGER,dlibMove,DWORD,dwOrigin,ULARGE_INTEGER*,plibNewPosition) \
3348 ICOM_METHOD1 (HRESULT,SetSize,ULARGE_INTEGER,libNewSize) \
3349 ICOM_METHOD4 (HRESULT,CopyTo,IStream16*,pstm,ULARGE_INTEGER,cb,ULARGE_INTEGER*,pcbRead,ULARGE_INTEGER*,pcbWritten) \
3350 ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
3351 ICOM_METHOD (HRESULT,Revert) \
3352 ICOM_METHOD3 (HRESULT,LockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
3353 ICOM_METHOD3 (HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
3354 ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag) \
3355 ICOM_METHOD1 (HRESULT,Clone,IStream16**,ppstm)
3357 /*** IUnknown methods ***/
3358 #define IStream16_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3359 #define IStream16_AddRef(p) (p)->lpVtbl->AddRef(p)
3360 #define IStream16_Release(p) (p)->lpVtbl->Release(p)
3361 /*** ISequentialStream methods ***/
3362 #define IStream16_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3363 #define IStream16_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3364 /*** IStream16 methods ***/
3365 #define IStream16_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
3366 #define IStream16_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
3367 #define IStream16_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3368 #define IStream16_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3369 #define IStream16_Revert(p) (p)->lpVtbl->Revert(p)
3370 #define IStream16_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
3371 #define IStream16_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
3372 #define IStream16_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3373 #define IStream16_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3375 #endif
3377 HRESULT CALLBACK IStream16_RemoteSeek_Proxy(
3378 IStream16* This,
3379 LARGE_INTEGER dlibMove,
3380 DWORD dwOrigin,
3381 ULARGE_INTEGER* plibNewPosition);
3382 void __RPC_STUB IStream16_RemoteSeek_Stub(
3383 struct IRpcStubBuffer* This,
3384 struct IRpcChannelBuffer* pRpcChannelBuffer,
3385 PRPC_MESSAGE pRpcMessage,
3386 DWORD* pdwStubPhase);
3387 HRESULT CALLBACK IStream16_Seek_Proxy(
3388 IStream16* This,
3389 LARGE_INTEGER dlibMove,
3390 DWORD dwOrigin,
3391 ULARGE_INTEGER* plibNewPosition);
3392 HRESULT __RPC_STUB IStream16_Seek_Stub(
3393 IStream16* This,
3394 LARGE_INTEGER dlibMove,
3395 DWORD dwOrigin,
3396 ULARGE_INTEGER* plibNewPosition);
3397 HRESULT CALLBACK IStream16_SetSize_Proxy(
3398 IStream16* This,
3399 ULARGE_INTEGER libNewSize);
3400 void __RPC_STUB IStream16_SetSize_Stub(
3401 struct IRpcStubBuffer* This,
3402 struct IRpcChannelBuffer* pRpcChannelBuffer,
3403 PRPC_MESSAGE pRpcMessage,
3404 DWORD* pdwStubPhase);
3405 HRESULT CALLBACK IStream16_RemoteCopyTo_Proxy(
3406 IStream16* This,
3407 IStream16* pstm,
3408 ULARGE_INTEGER cb,
3409 ULARGE_INTEGER* pcbRead,
3410 ULARGE_INTEGER* pcbWritten);
3411 void __RPC_STUB IStream16_RemoteCopyTo_Stub(
3412 struct IRpcStubBuffer* This,
3413 struct IRpcChannelBuffer* pRpcChannelBuffer,
3414 PRPC_MESSAGE pRpcMessage,
3415 DWORD* pdwStubPhase);
3416 HRESULT CALLBACK IStream16_CopyTo_Proxy(
3417 IStream16* This,
3418 IStream16* pstm,
3419 ULARGE_INTEGER cb,
3420 ULARGE_INTEGER* pcbRead,
3421 ULARGE_INTEGER* pcbWritten);
3422 HRESULT __RPC_STUB IStream16_CopyTo_Stub(
3423 IStream16* This,
3424 IStream16* pstm,
3425 ULARGE_INTEGER cb,
3426 ULARGE_INTEGER* pcbRead,
3427 ULARGE_INTEGER* pcbWritten);
3428 HRESULT CALLBACK IStream16_Commit_Proxy(
3429 IStream16* This,
3430 DWORD grfCommitFlags);
3431 void __RPC_STUB IStream16_Commit_Stub(
3432 struct IRpcStubBuffer* This,
3433 struct IRpcChannelBuffer* pRpcChannelBuffer,
3434 PRPC_MESSAGE pRpcMessage,
3435 DWORD* pdwStubPhase);
3436 HRESULT CALLBACK IStream16_Revert_Proxy(
3437 IStream16* This);
3438 void __RPC_STUB IStream16_Revert_Stub(
3439 struct IRpcStubBuffer* This,
3440 struct IRpcChannelBuffer* pRpcChannelBuffer,
3441 PRPC_MESSAGE pRpcMessage,
3442 DWORD* pdwStubPhase);
3443 HRESULT CALLBACK IStream16_LockRegion_Proxy(
3444 IStream16* This,
3445 ULARGE_INTEGER libOffset,
3446 ULARGE_INTEGER cb,
3447 DWORD dwLockType);
3448 void __RPC_STUB IStream16_LockRegion_Stub(
3449 struct IRpcStubBuffer* This,
3450 struct IRpcChannelBuffer* pRpcChannelBuffer,
3451 PRPC_MESSAGE pRpcMessage,
3452 DWORD* pdwStubPhase);
3453 HRESULT CALLBACK IStream16_UnlockRegion_Proxy(
3454 IStream16* This,
3455 ULARGE_INTEGER libOffset,
3456 ULARGE_INTEGER cb,
3457 DWORD dwLockType);
3458 void __RPC_STUB IStream16_UnlockRegion_Stub(
3459 struct IRpcStubBuffer* This,
3460 struct IRpcChannelBuffer* pRpcChannelBuffer,
3461 PRPC_MESSAGE pRpcMessage,
3462 DWORD* pdwStubPhase);
3463 HRESULT CALLBACK IStream16_Stat_Proxy(
3464 IStream16* This,
3465 STATSTG* pstatstg,
3466 DWORD grfStatFlag);
3467 void __RPC_STUB IStream16_Stat_Stub(
3468 struct IRpcStubBuffer* This,
3469 struct IRpcChannelBuffer* pRpcChannelBuffer,
3470 PRPC_MESSAGE pRpcMessage,
3471 DWORD* pdwStubPhase);
3472 HRESULT CALLBACK IStream16_Clone_Proxy(
3473 IStream16* This,
3474 IStream16** ppstm);
3475 void __RPC_STUB IStream16_Clone_Stub(
3476 struct IRpcStubBuffer* This,
3477 struct IRpcChannelBuffer* pRpcChannelBuffer,
3478 PRPC_MESSAGE pRpcMessage,
3479 DWORD* pdwStubPhase);
3481 typedef struct IEnumSTATSTG IEnumSTATSTG;
3482 typedef IEnumSTATSTG *LPENUMSTATSTG;
3484 /*****************************************************************************
3485 * IEnumSTATSTG interface
3487 DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3488 #if defined(__cplusplus) && !defined(CINTERFACE)
3489 struct IEnumSTATSTG: IUnknown {
3491 virtual HRESULT CALLBACK Next(
3492 ULONG celt,
3493 STATSTG* rgelt,
3494 ULONG* pceltFetched) = 0;
3496 virtual HRESULT CALLBACK Skip(
3497 ULONG celt) = 0;
3499 virtual HRESULT CALLBACK Reset(
3500 ) = 0;
3502 virtual HRESULT CALLBACK Clone(
3503 IEnumSTATSTG** ppenum) = 0;
3505 } ICOM_COM_INTERFACE_ATTRIBUTE;
3506 #else
3507 typedef struct IEnumSTATSTGVtbl IEnumSTATSTGVtbl;
3508 struct IEnumSTATSTG {
3509 const IEnumSTATSTGVtbl* lpVtbl;
3511 struct IEnumSTATSTGVtbl {
3512 ICOM_MSVTABLE_COMPAT_FIELDS
3514 /*** IUnknown methods ***/
3515 HRESULT (CALLBACK *QueryInterface)(
3516 IEnumSTATSTG* This,
3517 REFIID riid,
3518 void** ppvObject);
3520 ULONG (CALLBACK *AddRef)(
3521 IEnumSTATSTG* This);
3523 ULONG (CALLBACK *Release)(
3524 IEnumSTATSTG* This);
3526 /*** IEnumSTATSTG methods ***/
3527 HRESULT (CALLBACK *Next)(
3528 IEnumSTATSTG* This,
3529 ULONG celt,
3530 STATSTG* rgelt,
3531 ULONG* pceltFetched);
3533 HRESULT (CALLBACK *Skip)(
3534 IEnumSTATSTG* This,
3535 ULONG celt);
3537 HRESULT (CALLBACK *Reset)(
3538 IEnumSTATSTG* This);
3540 HRESULT (CALLBACK *Clone)(
3541 IEnumSTATSTG* This,
3542 IEnumSTATSTG** ppenum);
3546 #define IEnumSTATSTG_IMETHODS \
3547 IUnknown_IMETHODS \
3548 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATSTG*,rgelt,ULONG*,pceltFetched) \
3549 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
3550 ICOM_METHOD (HRESULT,Reset) \
3551 ICOM_METHOD1 (HRESULT,Clone,IEnumSTATSTG**,ppenum)
3553 /*** IUnknown methods ***/
3554 #define IEnumSTATSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3555 #define IEnumSTATSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
3556 #define IEnumSTATSTG_Release(p) (p)->lpVtbl->Release(p)
3557 /*** IEnumSTATSTG methods ***/
3558 #define IEnumSTATSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
3559 #define IEnumSTATSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
3560 #define IEnumSTATSTG_Reset(p) (p)->lpVtbl->Reset(p)
3561 #define IEnumSTATSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3563 #endif
3565 HRESULT CALLBACK IEnumSTATSTG_RemoteNext_Proxy(
3566 IEnumSTATSTG* This,
3567 ULONG celt,
3568 STATSTG* rgelt,
3569 ULONG* pceltFetched);
3570 void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
3571 struct IRpcStubBuffer* This,
3572 struct IRpcChannelBuffer* pRpcChannelBuffer,
3573 PRPC_MESSAGE pRpcMessage,
3574 DWORD* pdwStubPhase);
3575 HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
3576 IEnumSTATSTG* This,
3577 ULONG celt,
3578 STATSTG* rgelt,
3579 ULONG* pceltFetched);
3580 HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
3581 IEnumSTATSTG* This,
3582 ULONG celt,
3583 STATSTG* rgelt,
3584 ULONG* pceltFetched);
3585 HRESULT CALLBACK IEnumSTATSTG_Skip_Proxy(
3586 IEnumSTATSTG* This,
3587 ULONG celt);
3588 void __RPC_STUB IEnumSTATSTG_Skip_Stub(
3589 struct IRpcStubBuffer* This,
3590 struct IRpcChannelBuffer* pRpcChannelBuffer,
3591 PRPC_MESSAGE pRpcMessage,
3592 DWORD* pdwStubPhase);
3593 HRESULT CALLBACK IEnumSTATSTG_Reset_Proxy(
3594 IEnumSTATSTG* This);
3595 void __RPC_STUB IEnumSTATSTG_Reset_Stub(
3596 struct IRpcStubBuffer* This,
3597 struct IRpcChannelBuffer* pRpcChannelBuffer,
3598 PRPC_MESSAGE pRpcMessage,
3599 DWORD* pdwStubPhase);
3600 HRESULT CALLBACK IEnumSTATSTG_Clone_Proxy(
3601 IEnumSTATSTG* This,
3602 IEnumSTATSTG** ppenum);
3603 void __RPC_STUB IEnumSTATSTG_Clone_Stub(
3604 struct IRpcStubBuffer* This,
3605 struct IRpcChannelBuffer* pRpcChannelBuffer,
3606 PRPC_MESSAGE pRpcMessage,
3607 DWORD* pdwStubPhase);
3609 typedef struct IStorage IStorage;
3610 typedef IStorage *LPSTORAGE;
3612 typedef struct tagRemSNB {
3613 unsigned long ulCntStr;
3614 unsigned long ulCntChar;
3615 OLECHAR rgString[1];
3616 } RemSNB;
3618 typedef RemSNB *wireSNB;
3620 typedef OLECHAR **SNB;
3621 unsigned long __RPC_USER SNB_UserSize (unsigned long *, unsigned long, SNB *);
3622 unsigned char * __RPC_USER SNB_UserMarshal (unsigned long *, unsigned char *, SNB *);
3623 unsigned char * __RPC_USER SNB_UserUnmarshal(unsigned long *, unsigned char *, SNB *);
3624 void __RPC_USER SNB_UserFree (unsigned long *, SNB *);
3626 /*****************************************************************************
3627 * IStorage interface
3629 DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3630 #if defined(__cplusplus) && !defined(CINTERFACE)
3631 struct IStorage: IUnknown {
3633 virtual HRESULT CALLBACK CreateStream(
3634 LPCOLESTR pwcsName,
3635 DWORD grfMode,
3636 DWORD reserved1,
3637 DWORD reserved2,
3638 IStream** ppstm) = 0;
3640 virtual HRESULT CALLBACK OpenStream(
3641 LPCOLESTR pwcsName,
3642 void* reserved1,
3643 DWORD grfMode,
3644 DWORD reserved2,
3645 IStream** ppstm) = 0;
3647 virtual HRESULT CALLBACK CreateStorage(
3648 LPCOLESTR pwcsName,
3649 DWORD grfMode,
3650 DWORD dwStgFmt,
3651 DWORD reserved2,
3652 IStorage** ppstg) = 0;
3654 virtual HRESULT CALLBACK OpenStorage(
3655 LPCOLESTR pwcsName,
3656 IStorage* pstgPriority,
3657 DWORD grfMode,
3658 SNB snbExclude,
3659 DWORD reserved,
3660 IStorage** ppstg) = 0;
3662 virtual HRESULT CALLBACK CopyTo(
3663 DWORD ciidExclude,
3664 const IID* rgiidExclude,
3665 SNB snbExclude,
3666 IStorage* pstgDest) = 0;
3668 virtual HRESULT CALLBACK MoveElementTo(
3669 LPCOLESTR pwcsName,
3670 IStorage* pstgDest,
3671 LPCOLESTR pwcsNewName,
3672 DWORD grfFlags) = 0;
3674 virtual HRESULT CALLBACK Commit(
3675 DWORD grfCommitFlags) = 0;
3677 virtual HRESULT CALLBACK Revert(
3678 ) = 0;
3680 virtual HRESULT CALLBACK EnumElements(
3681 DWORD reserved1,
3682 void* reserved2,
3683 DWORD reserved3,
3684 IEnumSTATSTG** ppenum) = 0;
3686 virtual HRESULT CALLBACK DestroyElement(
3687 LPCOLESTR pwcsName) = 0;
3689 virtual HRESULT CALLBACK RenameElement(
3690 LPCOLESTR pwcsOldName,
3691 LPCOLESTR pwcsNewName) = 0;
3693 virtual HRESULT CALLBACK SetElementTimes(
3694 LPCOLESTR pwcsName,
3695 const FILETIME* pctime,
3696 const FILETIME* patime,
3697 const FILETIME* pmtime) = 0;
3699 virtual HRESULT CALLBACK SetClass(
3700 REFCLSID clsid) = 0;
3702 virtual HRESULT CALLBACK SetStateBits(
3703 DWORD grfStateBits,
3704 DWORD grfMask) = 0;
3706 virtual HRESULT CALLBACK Stat(
3707 STATSTG* pstatstg,
3708 DWORD grfStatFlag) = 0;
3710 } ICOM_COM_INTERFACE_ATTRIBUTE;
3711 #else
3712 typedef struct IStorageVtbl IStorageVtbl;
3713 struct IStorage {
3714 const IStorageVtbl* lpVtbl;
3716 struct IStorageVtbl {
3717 ICOM_MSVTABLE_COMPAT_FIELDS
3719 /*** IUnknown methods ***/
3720 HRESULT (CALLBACK *QueryInterface)(
3721 IStorage* This,
3722 REFIID riid,
3723 void** ppvObject);
3725 ULONG (CALLBACK *AddRef)(
3726 IStorage* This);
3728 ULONG (CALLBACK *Release)(
3729 IStorage* This);
3731 /*** IStorage methods ***/
3732 HRESULT (CALLBACK *CreateStream)(
3733 IStorage* This,
3734 LPCOLESTR pwcsName,
3735 DWORD grfMode,
3736 DWORD reserved1,
3737 DWORD reserved2,
3738 IStream** ppstm);
3740 HRESULT (CALLBACK *OpenStream)(
3741 IStorage* This,
3742 LPCOLESTR pwcsName,
3743 void* reserved1,
3744 DWORD grfMode,
3745 DWORD reserved2,
3746 IStream** ppstm);
3748 HRESULT (CALLBACK *CreateStorage)(
3749 IStorage* This,
3750 LPCOLESTR pwcsName,
3751 DWORD grfMode,
3752 DWORD dwStgFmt,
3753 DWORD reserved2,
3754 IStorage** ppstg);
3756 HRESULT (CALLBACK *OpenStorage)(
3757 IStorage* This,
3758 LPCOLESTR pwcsName,
3759 IStorage* pstgPriority,
3760 DWORD grfMode,
3761 SNB snbExclude,
3762 DWORD reserved,
3763 IStorage** ppstg);
3765 HRESULT (CALLBACK *CopyTo)(
3766 IStorage* This,
3767 DWORD ciidExclude,
3768 const IID* rgiidExclude,
3769 SNB snbExclude,
3770 IStorage* pstgDest);
3772 HRESULT (CALLBACK *MoveElementTo)(
3773 IStorage* This,
3774 LPCOLESTR pwcsName,
3775 IStorage* pstgDest,
3776 LPCOLESTR pwcsNewName,
3777 DWORD grfFlags);
3779 HRESULT (CALLBACK *Commit)(
3780 IStorage* This,
3781 DWORD grfCommitFlags);
3783 HRESULT (CALLBACK *Revert)(
3784 IStorage* This);
3786 HRESULT (CALLBACK *EnumElements)(
3787 IStorage* This,
3788 DWORD reserved1,
3789 void* reserved2,
3790 DWORD reserved3,
3791 IEnumSTATSTG** ppenum);
3793 HRESULT (CALLBACK *DestroyElement)(
3794 IStorage* This,
3795 LPCOLESTR pwcsName);
3797 HRESULT (CALLBACK *RenameElement)(
3798 IStorage* This,
3799 LPCOLESTR pwcsOldName,
3800 LPCOLESTR pwcsNewName);
3802 HRESULT (CALLBACK *SetElementTimes)(
3803 IStorage* This,
3804 LPCOLESTR pwcsName,
3805 const FILETIME* pctime,
3806 const FILETIME* patime,
3807 const FILETIME* pmtime);
3809 HRESULT (CALLBACK *SetClass)(
3810 IStorage* This,
3811 REFCLSID clsid);
3813 HRESULT (CALLBACK *SetStateBits)(
3814 IStorage* This,
3815 DWORD grfStateBits,
3816 DWORD grfMask);
3818 HRESULT (CALLBACK *Stat)(
3819 IStorage* This,
3820 STATSTG* pstatstg,
3821 DWORD grfStatFlag);
3825 #define IStorage_IMETHODS \
3826 IUnknown_IMETHODS \
3827 ICOM_METHOD5 (HRESULT,CreateStream,LPCOLESTR,pwcsName,DWORD,grfMode,DWORD,reserved1,DWORD,reserved2,IStream**,ppstm) \
3828 ICOM_METHOD5 (HRESULT,OpenStream,LPCOLESTR,pwcsName,void*,reserved1,DWORD,grfMode,DWORD,reserved2,IStream**,ppstm) \
3829 ICOM_METHOD5 (HRESULT,CreateStorage,LPCOLESTR,pwcsName,DWORD,grfMode,DWORD,dwStgFmt,DWORD,reserved2,IStorage**,ppstg) \
3830 ICOM_METHOD6 (HRESULT,OpenStorage,LPCOLESTR,pwcsName,IStorage*,pstgPriority,DWORD,grfMode,SNB,snbExclude,DWORD,reserved,IStorage**,ppstg) \
3831 ICOM_METHOD4 (HRESULT,CopyTo,DWORD,ciidExclude,const IID*,rgiidExclude,SNB,snbExclude,IStorage*,pstgDest) \
3832 ICOM_METHOD4 (HRESULT,MoveElementTo,LPCOLESTR,pwcsName,IStorage*,pstgDest,LPCOLESTR,pwcsNewName,DWORD,grfFlags) \
3833 ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
3834 ICOM_METHOD (HRESULT,Revert) \
3835 ICOM_METHOD4 (HRESULT,EnumElements,DWORD,reserved1,void*,reserved2,DWORD,reserved3,IEnumSTATSTG**,ppenum) \
3836 ICOM_METHOD1 (HRESULT,DestroyElement,LPCOLESTR,pwcsName) \
3837 ICOM_METHOD2 (HRESULT,RenameElement,LPCOLESTR,pwcsOldName,LPCOLESTR,pwcsNewName) \
3838 ICOM_METHOD4 (HRESULT,SetElementTimes,LPCOLESTR,pwcsName,const FILETIME*,pctime,const FILETIME*,patime,const FILETIME*,pmtime) \
3839 ICOM_METHOD1 (HRESULT,SetClass,REFCLSID,clsid) \
3840 ICOM_METHOD2 (HRESULT,SetStateBits,DWORD,grfStateBits,DWORD,grfMask) \
3841 ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag)
3843 /*** IUnknown methods ***/
3844 #define IStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3845 #define IStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
3846 #define IStorage_Release(p) (p)->lpVtbl->Release(p)
3847 /*** IStorage methods ***/
3848 #define IStorage_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
3849 #define IStorage_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
3850 #define IStorage_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
3851 #define IStorage_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
3852 #define IStorage_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3853 #define IStorage_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
3854 #define IStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3855 #define IStorage_Revert(p) (p)->lpVtbl->Revert(p)
3856 #define IStorage_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
3857 #define IStorage_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
3858 #define IStorage_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
3859 #define IStorage_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
3860 #define IStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
3861 #define IStorage_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
3862 #define IStorage_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3864 #endif
3866 HRESULT CALLBACK IStorage_CreateStream_Proxy(
3867 IStorage* This,
3868 LPCOLESTR pwcsName,
3869 DWORD grfMode,
3870 DWORD reserved1,
3871 DWORD reserved2,
3872 IStream** ppstm);
3873 void __RPC_STUB IStorage_CreateStream_Stub(
3874 struct IRpcStubBuffer* This,
3875 struct IRpcChannelBuffer* pRpcChannelBuffer,
3876 PRPC_MESSAGE pRpcMessage,
3877 DWORD* pdwStubPhase);
3878 HRESULT CALLBACK IStorage_RemoteOpenStream_Proxy(
3879 IStorage* This,
3880 LPCOLESTR pwcsName,
3881 unsigned long cbReserved1,
3882 byte* reserved1,
3883 DWORD grfMode,
3884 DWORD reserved2,
3885 IStream** ppstm);
3886 void __RPC_STUB IStorage_RemoteOpenStream_Stub(
3887 struct IRpcStubBuffer* This,
3888 struct IRpcChannelBuffer* pRpcChannelBuffer,
3889 PRPC_MESSAGE pRpcMessage,
3890 DWORD* pdwStubPhase);
3891 HRESULT CALLBACK IStorage_OpenStream_Proxy(
3892 IStorage* This,
3893 LPCOLESTR pwcsName,
3894 void* reserved1,
3895 DWORD grfMode,
3896 DWORD reserved2,
3897 IStream** ppstm);
3898 HRESULT __RPC_STUB IStorage_OpenStream_Stub(
3899 IStorage* This,
3900 LPCOLESTR pwcsName,
3901 unsigned long cbReserved1,
3902 byte* reserved1,
3903 DWORD grfMode,
3904 DWORD reserved2,
3905 IStream** ppstm);
3906 HRESULT CALLBACK IStorage_CreateStorage_Proxy(
3907 IStorage* This,
3908 LPCOLESTR pwcsName,
3909 DWORD grfMode,
3910 DWORD dwStgFmt,
3911 DWORD reserved2,
3912 IStorage** ppstg);
3913 void __RPC_STUB IStorage_CreateStorage_Stub(
3914 struct IRpcStubBuffer* This,
3915 struct IRpcChannelBuffer* pRpcChannelBuffer,
3916 PRPC_MESSAGE pRpcMessage,
3917 DWORD* pdwStubPhase);
3918 HRESULT CALLBACK IStorage_OpenStorage_Proxy(
3919 IStorage* This,
3920 LPCOLESTR pwcsName,
3921 IStorage* pstgPriority,
3922 DWORD grfMode,
3923 SNB snbExclude,
3924 DWORD reserved,
3925 IStorage** ppstg);
3926 void __RPC_STUB IStorage_OpenStorage_Stub(
3927 struct IRpcStubBuffer* This,
3928 struct IRpcChannelBuffer* pRpcChannelBuffer,
3929 PRPC_MESSAGE pRpcMessage,
3930 DWORD* pdwStubPhase);
3931 HRESULT CALLBACK IStorage_CopyTo_Proxy(
3932 IStorage* This,
3933 DWORD ciidExclude,
3934 const IID* rgiidExclude,
3935 SNB snbExclude,
3936 IStorage* pstgDest);
3937 void __RPC_STUB IStorage_CopyTo_Stub(
3938 struct IRpcStubBuffer* This,
3939 struct IRpcChannelBuffer* pRpcChannelBuffer,
3940 PRPC_MESSAGE pRpcMessage,
3941 DWORD* pdwStubPhase);
3942 HRESULT CALLBACK IStorage_MoveElementTo_Proxy(
3943 IStorage* This,
3944 LPCOLESTR pwcsName,
3945 IStorage* pstgDest,
3946 LPCOLESTR pwcsNewName,
3947 DWORD grfFlags);
3948 void __RPC_STUB IStorage_MoveElementTo_Stub(
3949 struct IRpcStubBuffer* This,
3950 struct IRpcChannelBuffer* pRpcChannelBuffer,
3951 PRPC_MESSAGE pRpcMessage,
3952 DWORD* pdwStubPhase);
3953 HRESULT CALLBACK IStorage_Commit_Proxy(
3954 IStorage* This,
3955 DWORD grfCommitFlags);
3956 void __RPC_STUB IStorage_Commit_Stub(
3957 struct IRpcStubBuffer* This,
3958 struct IRpcChannelBuffer* pRpcChannelBuffer,
3959 PRPC_MESSAGE pRpcMessage,
3960 DWORD* pdwStubPhase);
3961 HRESULT CALLBACK IStorage_Revert_Proxy(
3962 IStorage* This);
3963 void __RPC_STUB IStorage_Revert_Stub(
3964 struct IRpcStubBuffer* This,
3965 struct IRpcChannelBuffer* pRpcChannelBuffer,
3966 PRPC_MESSAGE pRpcMessage,
3967 DWORD* pdwStubPhase);
3968 HRESULT CALLBACK IStorage_RemoteEnumElements_Proxy(
3969 IStorage* This,
3970 DWORD reserved1,
3971 unsigned long cbReserved2,
3972 byte* reserved2,
3973 DWORD reserved3,
3974 IEnumSTATSTG** ppenum);
3975 void __RPC_STUB IStorage_RemoteEnumElements_Stub(
3976 struct IRpcStubBuffer* This,
3977 struct IRpcChannelBuffer* pRpcChannelBuffer,
3978 PRPC_MESSAGE pRpcMessage,
3979 DWORD* pdwStubPhase);
3980 HRESULT CALLBACK IStorage_EnumElements_Proxy(
3981 IStorage* This,
3982 DWORD reserved1,
3983 void* reserved2,
3984 DWORD reserved3,
3985 IEnumSTATSTG** ppenum);
3986 HRESULT __RPC_STUB IStorage_EnumElements_Stub(
3987 IStorage* This,
3988 DWORD reserved1,
3989 unsigned long cbReserved2,
3990 byte* reserved2,
3991 DWORD reserved3,
3992 IEnumSTATSTG** ppenum);
3993 HRESULT CALLBACK IStorage_DestroyElement_Proxy(
3994 IStorage* This,
3995 LPCOLESTR pwcsName);
3996 void __RPC_STUB IStorage_DestroyElement_Stub(
3997 struct IRpcStubBuffer* This,
3998 struct IRpcChannelBuffer* pRpcChannelBuffer,
3999 PRPC_MESSAGE pRpcMessage,
4000 DWORD* pdwStubPhase);
4001 HRESULT CALLBACK IStorage_RenameElement_Proxy(
4002 IStorage* This,
4003 LPCOLESTR pwcsOldName,
4004 LPCOLESTR pwcsNewName);
4005 void __RPC_STUB IStorage_RenameElement_Stub(
4006 struct IRpcStubBuffer* This,
4007 struct IRpcChannelBuffer* pRpcChannelBuffer,
4008 PRPC_MESSAGE pRpcMessage,
4009 DWORD* pdwStubPhase);
4010 HRESULT CALLBACK IStorage_SetElementTimes_Proxy(
4011 IStorage* This,
4012 LPCOLESTR pwcsName,
4013 const FILETIME* pctime,
4014 const FILETIME* patime,
4015 const FILETIME* pmtime);
4016 void __RPC_STUB IStorage_SetElementTimes_Stub(
4017 struct IRpcStubBuffer* This,
4018 struct IRpcChannelBuffer* pRpcChannelBuffer,
4019 PRPC_MESSAGE pRpcMessage,
4020 DWORD* pdwStubPhase);
4021 HRESULT CALLBACK IStorage_SetClass_Proxy(
4022 IStorage* This,
4023 REFCLSID clsid);
4024 void __RPC_STUB IStorage_SetClass_Stub(
4025 struct IRpcStubBuffer* This,
4026 struct IRpcChannelBuffer* pRpcChannelBuffer,
4027 PRPC_MESSAGE pRpcMessage,
4028 DWORD* pdwStubPhase);
4029 HRESULT CALLBACK IStorage_SetStateBits_Proxy(
4030 IStorage* This,
4031 DWORD grfStateBits,
4032 DWORD grfMask);
4033 void __RPC_STUB IStorage_SetStateBits_Stub(
4034 struct IRpcStubBuffer* This,
4035 struct IRpcChannelBuffer* pRpcChannelBuffer,
4036 PRPC_MESSAGE pRpcMessage,
4037 DWORD* pdwStubPhase);
4038 HRESULT CALLBACK IStorage_Stat_Proxy(
4039 IStorage* This,
4040 STATSTG* pstatstg,
4041 DWORD grfStatFlag);
4042 void __RPC_STUB IStorage_Stat_Stub(
4043 struct IRpcStubBuffer* This,
4044 struct IRpcChannelBuffer* pRpcChannelBuffer,
4045 PRPC_MESSAGE pRpcMessage,
4046 DWORD* pdwStubPhase);
4048 typedef struct IStorage16 IStorage16;
4049 typedef IStorage16 *LPSTORAGE16;
4051 typedef struct tagRemSNB16 {
4052 unsigned long ulCntStr;
4053 unsigned long ulCntChar;
4054 OLECHAR16 rgString[1];
4055 } RemSNB16;
4057 typedef RemSNB16 *wireSNB16;
4059 typedef OLECHAR16 **SNB16;
4060 unsigned long __RPC_USER SNB16_UserSize (unsigned long *, unsigned long, SNB16 *);
4061 unsigned char * __RPC_USER SNB16_UserMarshal (unsigned long *, unsigned char *, SNB16 *);
4062 unsigned char * __RPC_USER SNB16_UserUnmarshal(unsigned long *, unsigned char *, SNB16 *);
4063 void __RPC_USER SNB16_UserFree (unsigned long *, SNB16 *);
4065 /*****************************************************************************
4066 * IStorage16 interface
4068 #if defined(__cplusplus) && !defined(CINTERFACE)
4069 struct IStorage16: IUnknown {
4071 virtual HRESULT CALLBACK CreateStream(
4072 LPCOLESTR16 pwcsName,
4073 DWORD grfMode,
4074 DWORD reserved1,
4075 DWORD reserved2,
4076 IStream16** ppstm) = 0;
4078 virtual HRESULT CALLBACK OpenStream(
4079 LPCOLESTR16 pwcsName,
4080 void* reserved1,
4081 DWORD grfMode,
4082 DWORD reserved2,
4083 IStream16** ppstm) = 0;
4085 virtual HRESULT CALLBACK CreateStorage(
4086 LPCOLESTR16 pwcsName,
4087 DWORD grfMode,
4088 DWORD dwStgFmt,
4089 DWORD reserved2,
4090 IStorage16** ppstg) = 0;
4092 virtual HRESULT CALLBACK OpenStorage(
4093 LPCOLESTR16 pwcsName,
4094 IStorage16* pstgPriority,
4095 DWORD grfMode,
4096 SNB16 snbExclude,
4097 DWORD reserved,
4098 IStorage16** ppstg) = 0;
4100 virtual HRESULT CALLBACK CopyTo(
4101 DWORD ciidExclude,
4102 const IID* rgiidExclude,
4103 SNB16 snbExclude,
4104 IStorage16* pstgDest) = 0;
4106 virtual HRESULT CALLBACK MoveElementTo(
4107 LPCOLESTR16 pwcsName,
4108 IStorage16* pstgDest,
4109 LPCOLESTR16 pwcsNewName,
4110 DWORD grfFlags) = 0;
4112 virtual HRESULT CALLBACK Commit(
4113 DWORD grfCommitFlags) = 0;
4115 virtual HRESULT CALLBACK Revert(
4116 ) = 0;
4118 virtual HRESULT CALLBACK EnumElements(
4119 DWORD reserved1,
4120 void* reserved2,
4121 DWORD reserved3,
4122 IEnumSTATSTG** ppenum) = 0;
4124 virtual HRESULT CALLBACK DestroyElement(
4125 LPCOLESTR16 pwcsName) = 0;
4127 virtual HRESULT CALLBACK RenameElement(
4128 LPCOLESTR16 pwcsOldName,
4129 LPCOLESTR16 pwcsNewName) = 0;
4131 virtual HRESULT CALLBACK SetElementTimes(
4132 LPCOLESTR16 pwcsName,
4133 const FILETIME* pctime,
4134 const FILETIME* patime,
4135 const FILETIME* pmtime) = 0;
4137 virtual HRESULT CALLBACK SetClass(
4138 REFCLSID clsid) = 0;
4140 virtual HRESULT CALLBACK SetStateBits(
4141 DWORD grfStateBits,
4142 DWORD grfMask) = 0;
4144 virtual HRESULT CALLBACK Stat(
4145 STATSTG* pstatstg,
4146 DWORD grfStatFlag) = 0;
4148 } ICOM_COM_INTERFACE_ATTRIBUTE;
4149 #else
4150 typedef struct IStorage16Vtbl IStorage16Vtbl;
4151 struct IStorage16 {
4152 const IStorage16Vtbl* lpVtbl;
4154 struct IStorage16Vtbl {
4155 ICOM_MSVTABLE_COMPAT_FIELDS
4157 /*** IUnknown methods ***/
4158 HRESULT (CALLBACK *QueryInterface)(
4159 IStorage16* This,
4160 REFIID riid,
4161 void** ppvObject);
4163 ULONG (CALLBACK *AddRef)(
4164 IStorage16* This);
4166 ULONG (CALLBACK *Release)(
4167 IStorage16* This);
4169 /*** IStorage16 methods ***/
4170 HRESULT (CALLBACK *CreateStream)(
4171 IStorage16* This,
4172 LPCOLESTR16 pwcsName,
4173 DWORD grfMode,
4174 DWORD reserved1,
4175 DWORD reserved2,
4176 IStream16** ppstm);
4178 HRESULT (CALLBACK *OpenStream)(
4179 IStorage16* This,
4180 LPCOLESTR16 pwcsName,
4181 void* reserved1,
4182 DWORD grfMode,
4183 DWORD reserved2,
4184 IStream16** ppstm);
4186 HRESULT (CALLBACK *CreateStorage)(
4187 IStorage16* This,
4188 LPCOLESTR16 pwcsName,
4189 DWORD grfMode,
4190 DWORD dwStgFmt,
4191 DWORD reserved2,
4192 IStorage16** ppstg);
4194 HRESULT (CALLBACK *OpenStorage)(
4195 IStorage16* This,
4196 LPCOLESTR16 pwcsName,
4197 IStorage16* pstgPriority,
4198 DWORD grfMode,
4199 SNB16 snbExclude,
4200 DWORD reserved,
4201 IStorage16** ppstg);
4203 HRESULT (CALLBACK *CopyTo)(
4204 IStorage16* This,
4205 DWORD ciidExclude,
4206 const IID* rgiidExclude,
4207 SNB16 snbExclude,
4208 IStorage16* pstgDest);
4210 HRESULT (CALLBACK *MoveElementTo)(
4211 IStorage16* This,
4212 LPCOLESTR16 pwcsName,
4213 IStorage16* pstgDest,
4214 LPCOLESTR16 pwcsNewName,
4215 DWORD grfFlags);
4217 HRESULT (CALLBACK *Commit)(
4218 IStorage16* This,
4219 DWORD grfCommitFlags);
4221 HRESULT (CALLBACK *Revert)(
4222 IStorage16* This);
4224 HRESULT (CALLBACK *EnumElements)(
4225 IStorage16* This,
4226 DWORD reserved1,
4227 void* reserved2,
4228 DWORD reserved3,
4229 IEnumSTATSTG** ppenum);
4231 HRESULT (CALLBACK *DestroyElement)(
4232 IStorage16* This,
4233 LPCOLESTR16 pwcsName);
4235 HRESULT (CALLBACK *RenameElement)(
4236 IStorage16* This,
4237 LPCOLESTR16 pwcsOldName,
4238 LPCOLESTR16 pwcsNewName);
4240 HRESULT (CALLBACK *SetElementTimes)(
4241 IStorage16* This,
4242 LPCOLESTR16 pwcsName,
4243 const FILETIME* pctime,
4244 const FILETIME* patime,
4245 const FILETIME* pmtime);
4247 HRESULT (CALLBACK *SetClass)(
4248 IStorage16* This,
4249 REFCLSID clsid);
4251 HRESULT (CALLBACK *SetStateBits)(
4252 IStorage16* This,
4253 DWORD grfStateBits,
4254 DWORD grfMask);
4256 HRESULT (CALLBACK *Stat)(
4257 IStorage16* This,
4258 STATSTG* pstatstg,
4259 DWORD grfStatFlag);
4263 #define IStorage16_IMETHODS \
4264 IUnknown_IMETHODS \
4265 ICOM_METHOD5 (HRESULT,CreateStream,LPCOLESTR16,pwcsName,DWORD,grfMode,DWORD,reserved1,DWORD,reserved2,IStream16**,ppstm) \
4266 ICOM_METHOD5 (HRESULT,OpenStream,LPCOLESTR16,pwcsName,void*,reserved1,DWORD,grfMode,DWORD,reserved2,IStream16**,ppstm) \
4267 ICOM_METHOD5 (HRESULT,CreateStorage,LPCOLESTR16,pwcsName,DWORD,grfMode,DWORD,dwStgFmt,DWORD,reserved2,IStorage16**,ppstg) \
4268 ICOM_METHOD6 (HRESULT,OpenStorage,LPCOLESTR16,pwcsName,IStorage16*,pstgPriority,DWORD,grfMode,SNB16,snbExclude,DWORD,reserved,IStorage16**,ppstg) \
4269 ICOM_METHOD4 (HRESULT,CopyTo,DWORD,ciidExclude,const IID*,rgiidExclude,SNB16,snbExclude,IStorage16*,pstgDest) \
4270 ICOM_METHOD4 (HRESULT,MoveElementTo,LPCOLESTR16,pwcsName,IStorage16*,pstgDest,LPCOLESTR16,pwcsNewName,DWORD,grfFlags) \
4271 ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
4272 ICOM_METHOD (HRESULT,Revert) \
4273 ICOM_METHOD4 (HRESULT,EnumElements,DWORD,reserved1,void*,reserved2,DWORD,reserved3,IEnumSTATSTG**,ppenum) \
4274 ICOM_METHOD1 (HRESULT,DestroyElement,LPCOLESTR16,pwcsName) \
4275 ICOM_METHOD2 (HRESULT,RenameElement,LPCOLESTR16,pwcsOldName,LPCOLESTR16,pwcsNewName) \
4276 ICOM_METHOD4 (HRESULT,SetElementTimes,LPCOLESTR16,pwcsName,const FILETIME*,pctime,const FILETIME*,patime,const FILETIME*,pmtime) \
4277 ICOM_METHOD1 (HRESULT,SetClass,REFCLSID,clsid) \
4278 ICOM_METHOD2 (HRESULT,SetStateBits,DWORD,grfStateBits,DWORD,grfMask) \
4279 ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag)
4281 /*** IUnknown methods ***/
4282 #define IStorage16_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4283 #define IStorage16_AddRef(p) (p)->lpVtbl->AddRef(p)
4284 #define IStorage16_Release(p) (p)->lpVtbl->Release(p)
4285 /*** IStorage16 methods ***/
4286 #define IStorage16_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
4287 #define IStorage16_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
4288 #define IStorage16_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
4289 #define IStorage16_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
4290 #define IStorage16_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
4291 #define IStorage16_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
4292 #define IStorage16_Commit(p,a) (p)->lpVtbl->Commit(p,a)
4293 #define IStorage16_Revert(p) (p)->lpVtbl->Revert(p)
4294 #define IStorage16_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
4295 #define IStorage16_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
4296 #define IStorage16_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
4297 #define IStorage16_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
4298 #define IStorage16_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
4299 #define IStorage16_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
4300 #define IStorage16_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
4302 #endif
4304 HRESULT CALLBACK IStorage16_CreateStream_Proxy(
4305 IStorage16* This,
4306 LPCOLESTR16 pwcsName,
4307 DWORD grfMode,
4308 DWORD reserved1,
4309 DWORD reserved2,
4310 IStream16** ppstm);
4311 void __RPC_STUB IStorage16_CreateStream_Stub(
4312 struct IRpcStubBuffer* This,
4313 struct IRpcChannelBuffer* pRpcChannelBuffer,
4314 PRPC_MESSAGE pRpcMessage,
4315 DWORD* pdwStubPhase);
4316 HRESULT CALLBACK IStorage16_RemoteOpenStream_Proxy(
4317 IStorage16* This,
4318 LPCOLESTR16 pwcsName,
4319 unsigned long cbReserved1,
4320 byte* reserved1,
4321 DWORD grfMode,
4322 DWORD reserved2,
4323 IStream16** ppstm);
4324 void __RPC_STUB IStorage16_RemoteOpenStream_Stub(
4325 struct IRpcStubBuffer* This,
4326 struct IRpcChannelBuffer* pRpcChannelBuffer,
4327 PRPC_MESSAGE pRpcMessage,
4328 DWORD* pdwStubPhase);
4329 HRESULT CALLBACK IStorage16_OpenStream_Proxy(
4330 IStorage16* This,
4331 LPCOLESTR16 pwcsName,
4332 void* reserved1,
4333 DWORD grfMode,
4334 DWORD reserved2,
4335 IStream16** ppstm);
4336 HRESULT __RPC_STUB IStorage16_OpenStream_Stub(
4337 IStorage16* This,
4338 LPCOLESTR16 pwcsName,
4339 unsigned long cbReserved1,
4340 byte* reserved1,
4341 DWORD grfMode,
4342 DWORD reserved2,
4343 IStream16** ppstm);
4344 HRESULT CALLBACK IStorage16_CreateStorage_Proxy(
4345 IStorage16* This,
4346 LPCOLESTR16 pwcsName,
4347 DWORD grfMode,
4348 DWORD dwStgFmt,
4349 DWORD reserved2,
4350 IStorage16** ppstg);
4351 void __RPC_STUB IStorage16_CreateStorage_Stub(
4352 struct IRpcStubBuffer* This,
4353 struct IRpcChannelBuffer* pRpcChannelBuffer,
4354 PRPC_MESSAGE pRpcMessage,
4355 DWORD* pdwStubPhase);
4356 HRESULT CALLBACK IStorage16_OpenStorage_Proxy(
4357 IStorage16* This,
4358 LPCOLESTR16 pwcsName,
4359 IStorage16* pstgPriority,
4360 DWORD grfMode,
4361 SNB16 snbExclude,
4362 DWORD reserved,
4363 IStorage16** ppstg);
4364 void __RPC_STUB IStorage16_OpenStorage_Stub(
4365 struct IRpcStubBuffer* This,
4366 struct IRpcChannelBuffer* pRpcChannelBuffer,
4367 PRPC_MESSAGE pRpcMessage,
4368 DWORD* pdwStubPhase);
4369 HRESULT CALLBACK IStorage16_CopyTo_Proxy(
4370 IStorage16* This,
4371 DWORD ciidExclude,
4372 const IID* rgiidExclude,
4373 SNB16 snbExclude,
4374 IStorage16* pstgDest);
4375 void __RPC_STUB IStorage16_CopyTo_Stub(
4376 struct IRpcStubBuffer* This,
4377 struct IRpcChannelBuffer* pRpcChannelBuffer,
4378 PRPC_MESSAGE pRpcMessage,
4379 DWORD* pdwStubPhase);
4380 HRESULT CALLBACK IStorage16_MoveElementTo_Proxy(
4381 IStorage16* This,
4382 LPCOLESTR16 pwcsName,
4383 IStorage16* pstgDest,
4384 LPCOLESTR16 pwcsNewName,
4385 DWORD grfFlags);
4386 void __RPC_STUB IStorage16_MoveElementTo_Stub(
4387 struct IRpcStubBuffer* This,
4388 struct IRpcChannelBuffer* pRpcChannelBuffer,
4389 PRPC_MESSAGE pRpcMessage,
4390 DWORD* pdwStubPhase);
4391 HRESULT CALLBACK IStorage16_Commit_Proxy(
4392 IStorage16* This,
4393 DWORD grfCommitFlags);
4394 void __RPC_STUB IStorage16_Commit_Stub(
4395 struct IRpcStubBuffer* This,
4396 struct IRpcChannelBuffer* pRpcChannelBuffer,
4397 PRPC_MESSAGE pRpcMessage,
4398 DWORD* pdwStubPhase);
4399 HRESULT CALLBACK IStorage16_Revert_Proxy(
4400 IStorage16* This);
4401 void __RPC_STUB IStorage16_Revert_Stub(
4402 struct IRpcStubBuffer* This,
4403 struct IRpcChannelBuffer* pRpcChannelBuffer,
4404 PRPC_MESSAGE pRpcMessage,
4405 DWORD* pdwStubPhase);
4406 HRESULT CALLBACK IStorage16_RemoteEnumElements_Proxy(
4407 IStorage16* This,
4408 DWORD reserved1,
4409 unsigned long cbReserved2,
4410 byte* reserved2,
4411 DWORD reserved3,
4412 IEnumSTATSTG** ppenum);
4413 void __RPC_STUB IStorage16_RemoteEnumElements_Stub(
4414 struct IRpcStubBuffer* This,
4415 struct IRpcChannelBuffer* pRpcChannelBuffer,
4416 PRPC_MESSAGE pRpcMessage,
4417 DWORD* pdwStubPhase);
4418 HRESULT CALLBACK IStorage16_EnumElements_Proxy(
4419 IStorage16* This,
4420 DWORD reserved1,
4421 void* reserved2,
4422 DWORD reserved3,
4423 IEnumSTATSTG** ppenum);
4424 HRESULT __RPC_STUB IStorage16_EnumElements_Stub(
4425 IStorage16* This,
4426 DWORD reserved1,
4427 unsigned long cbReserved2,
4428 byte* reserved2,
4429 DWORD reserved3,
4430 IEnumSTATSTG** ppenum);
4431 HRESULT CALLBACK IStorage16_DestroyElement_Proxy(
4432 IStorage16* This,
4433 LPCOLESTR16 pwcsName);
4434 void __RPC_STUB IStorage16_DestroyElement_Stub(
4435 struct IRpcStubBuffer* This,
4436 struct IRpcChannelBuffer* pRpcChannelBuffer,
4437 PRPC_MESSAGE pRpcMessage,
4438 DWORD* pdwStubPhase);
4439 HRESULT CALLBACK IStorage16_RenameElement_Proxy(
4440 IStorage16* This,
4441 LPCOLESTR16 pwcsOldName,
4442 LPCOLESTR16 pwcsNewName);
4443 void __RPC_STUB IStorage16_RenameElement_Stub(
4444 struct IRpcStubBuffer* This,
4445 struct IRpcChannelBuffer* pRpcChannelBuffer,
4446 PRPC_MESSAGE pRpcMessage,
4447 DWORD* pdwStubPhase);
4448 HRESULT CALLBACK IStorage16_SetElementTimes_Proxy(
4449 IStorage16* This,
4450 LPCOLESTR16 pwcsName,
4451 const FILETIME* pctime,
4452 const FILETIME* patime,
4453 const FILETIME* pmtime);
4454 void __RPC_STUB IStorage16_SetElementTimes_Stub(
4455 struct IRpcStubBuffer* This,
4456 struct IRpcChannelBuffer* pRpcChannelBuffer,
4457 PRPC_MESSAGE pRpcMessage,
4458 DWORD* pdwStubPhase);
4459 HRESULT CALLBACK IStorage16_SetClass_Proxy(
4460 IStorage16* This,
4461 REFCLSID clsid);
4462 void __RPC_STUB IStorage16_SetClass_Stub(
4463 struct IRpcStubBuffer* This,
4464 struct IRpcChannelBuffer* pRpcChannelBuffer,
4465 PRPC_MESSAGE pRpcMessage,
4466 DWORD* pdwStubPhase);
4467 HRESULT CALLBACK IStorage16_SetStateBits_Proxy(
4468 IStorage16* This,
4469 DWORD grfStateBits,
4470 DWORD grfMask);
4471 void __RPC_STUB IStorage16_SetStateBits_Stub(
4472 struct IRpcStubBuffer* This,
4473 struct IRpcChannelBuffer* pRpcChannelBuffer,
4474 PRPC_MESSAGE pRpcMessage,
4475 DWORD* pdwStubPhase);
4476 HRESULT CALLBACK IStorage16_Stat_Proxy(
4477 IStorage16* This,
4478 STATSTG* pstatstg,
4479 DWORD grfStatFlag);
4480 void __RPC_STUB IStorage16_Stat_Stub(
4481 struct IRpcStubBuffer* This,
4482 struct IRpcChannelBuffer* pRpcChannelBuffer,
4483 PRPC_MESSAGE pRpcMessage,
4484 DWORD* pdwStubPhase);
4486 typedef struct IPersistFile IPersistFile;
4487 typedef IPersistFile *LPPERSISTFILE;
4489 /*****************************************************************************
4490 * IPersistFile interface
4492 DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4493 #if defined(__cplusplus) && !defined(CINTERFACE)
4494 struct IPersistFile: IPersist {
4496 virtual HRESULT CALLBACK IsDirty(
4497 ) = 0;
4499 virtual HRESULT CALLBACK Load(
4500 LPCOLESTR pszFileName,
4501 DWORD dwMode) = 0;
4503 virtual HRESULT CALLBACK Save(
4504 LPCOLESTR pszFileName,
4505 BOOL fRemember) = 0;
4507 virtual HRESULT CALLBACK SaveCompleted(
4508 LPCOLESTR pszFileName) = 0;
4510 virtual HRESULT CALLBACK GetCurFile(
4511 LPOLESTR* ppszFileName) = 0;
4513 } ICOM_COM_INTERFACE_ATTRIBUTE;
4514 #else
4515 typedef struct IPersistFileVtbl IPersistFileVtbl;
4516 struct IPersistFile {
4517 const IPersistFileVtbl* lpVtbl;
4519 struct IPersistFileVtbl {
4520 ICOM_MSVTABLE_COMPAT_FIELDS
4522 /*** IUnknown methods ***/
4523 HRESULT (CALLBACK *QueryInterface)(
4524 IPersistFile* This,
4525 REFIID riid,
4526 void** ppvObject);
4528 ULONG (CALLBACK *AddRef)(
4529 IPersistFile* This);
4531 ULONG (CALLBACK *Release)(
4532 IPersistFile* This);
4534 /*** IPersist methods ***/
4535 HRESULT (CALLBACK *GetClassID)(
4536 IPersistFile* This,
4537 CLSID* pClassID);
4539 /*** IPersistFile methods ***/
4540 HRESULT (CALLBACK *IsDirty)(
4541 IPersistFile* This);
4543 HRESULT (CALLBACK *Load)(
4544 IPersistFile* This,
4545 LPCOLESTR pszFileName,
4546 DWORD dwMode);
4548 HRESULT (CALLBACK *Save)(
4549 IPersistFile* This,
4550 LPCOLESTR pszFileName,
4551 BOOL fRemember);
4553 HRESULT (CALLBACK *SaveCompleted)(
4554 IPersistFile* This,
4555 LPCOLESTR pszFileName);
4557 HRESULT (CALLBACK *GetCurFile)(
4558 IPersistFile* This,
4559 LPOLESTR* ppszFileName);
4563 #define IPersistFile_IMETHODS \
4564 IPersist_IMETHODS \
4565 ICOM_METHOD (HRESULT,IsDirty) \
4566 ICOM_METHOD2 (HRESULT,Load,LPCOLESTR,pszFileName,DWORD,dwMode) \
4567 ICOM_METHOD2 (HRESULT,Save,LPCOLESTR,pszFileName,BOOL,fRemember) \
4568 ICOM_METHOD1 (HRESULT,SaveCompleted,LPCOLESTR,pszFileName) \
4569 ICOM_METHOD1 (HRESULT,GetCurFile,LPOLESTR*,ppszFileName)
4571 /*** IUnknown methods ***/
4572 #define IPersistFile_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4573 #define IPersistFile_AddRef(p) (p)->lpVtbl->AddRef(p)
4574 #define IPersistFile_Release(p) (p)->lpVtbl->Release(p)
4575 /*** IPersist methods ***/
4576 #define IPersistFile_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4577 /*** IPersistFile methods ***/
4578 #define IPersistFile_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4579 #define IPersistFile_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
4580 #define IPersistFile_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4581 #define IPersistFile_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
4582 #define IPersistFile_GetCurFile(p,a) (p)->lpVtbl->GetCurFile(p,a)
4584 #endif
4586 HRESULT CALLBACK IPersistFile_IsDirty_Proxy(
4587 IPersistFile* This);
4588 void __RPC_STUB IPersistFile_IsDirty_Stub(
4589 struct IRpcStubBuffer* This,
4590 struct IRpcChannelBuffer* pRpcChannelBuffer,
4591 PRPC_MESSAGE pRpcMessage,
4592 DWORD* pdwStubPhase);
4593 HRESULT CALLBACK IPersistFile_Load_Proxy(
4594 IPersistFile* This,
4595 LPCOLESTR pszFileName,
4596 DWORD dwMode);
4597 void __RPC_STUB IPersistFile_Load_Stub(
4598 struct IRpcStubBuffer* This,
4599 struct IRpcChannelBuffer* pRpcChannelBuffer,
4600 PRPC_MESSAGE pRpcMessage,
4601 DWORD* pdwStubPhase);
4602 HRESULT CALLBACK IPersistFile_Save_Proxy(
4603 IPersistFile* This,
4604 LPCOLESTR pszFileName,
4605 BOOL fRemember);
4606 void __RPC_STUB IPersistFile_Save_Stub(
4607 struct IRpcStubBuffer* This,
4608 struct IRpcChannelBuffer* pRpcChannelBuffer,
4609 PRPC_MESSAGE pRpcMessage,
4610 DWORD* pdwStubPhase);
4611 HRESULT CALLBACK IPersistFile_SaveCompleted_Proxy(
4612 IPersistFile* This,
4613 LPCOLESTR pszFileName);
4614 void __RPC_STUB IPersistFile_SaveCompleted_Stub(
4615 struct IRpcStubBuffer* This,
4616 struct IRpcChannelBuffer* pRpcChannelBuffer,
4617 PRPC_MESSAGE pRpcMessage,
4618 DWORD* pdwStubPhase);
4619 HRESULT CALLBACK IPersistFile_GetCurFile_Proxy(
4620 IPersistFile* This,
4621 LPOLESTR* ppszFileName);
4622 void __RPC_STUB IPersistFile_GetCurFile_Stub(
4623 struct IRpcStubBuffer* This,
4624 struct IRpcChannelBuffer* pRpcChannelBuffer,
4625 PRPC_MESSAGE pRpcMessage,
4626 DWORD* pdwStubPhase);
4628 typedef struct IPersistStorage IPersistStorage;
4629 typedef IPersistStorage *LPPERSISTSTORAGE;
4631 /*****************************************************************************
4632 * IPersistStorage interface
4634 DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4635 #if defined(__cplusplus) && !defined(CINTERFACE)
4636 struct IPersistStorage: IPersist {
4638 virtual HRESULT CALLBACK IsDirty(
4639 ) = 0;
4641 virtual HRESULT CALLBACK InitNew(
4642 IStorage* pStg) = 0;
4644 virtual HRESULT CALLBACK Load(
4645 IStorage* pStg) = 0;
4647 virtual HRESULT CALLBACK Save(
4648 IStorage* pStgSave,
4649 BOOL fSameAsLoad) = 0;
4651 virtual HRESULT CALLBACK SaveCompleted(
4652 IStorage* pStgNew) = 0;
4654 virtual HRESULT CALLBACK HandsOffStorage(
4655 ) = 0;
4657 } ICOM_COM_INTERFACE_ATTRIBUTE;
4658 #else
4659 typedef struct IPersistStorageVtbl IPersistStorageVtbl;
4660 struct IPersistStorage {
4661 const IPersistStorageVtbl* lpVtbl;
4663 struct IPersistStorageVtbl {
4664 ICOM_MSVTABLE_COMPAT_FIELDS
4666 /*** IUnknown methods ***/
4667 HRESULT (CALLBACK *QueryInterface)(
4668 IPersistStorage* This,
4669 REFIID riid,
4670 void** ppvObject);
4672 ULONG (CALLBACK *AddRef)(
4673 IPersistStorage* This);
4675 ULONG (CALLBACK *Release)(
4676 IPersistStorage* This);
4678 /*** IPersist methods ***/
4679 HRESULT (CALLBACK *GetClassID)(
4680 IPersistStorage* This,
4681 CLSID* pClassID);
4683 /*** IPersistStorage methods ***/
4684 HRESULT (CALLBACK *IsDirty)(
4685 IPersistStorage* This);
4687 HRESULT (CALLBACK *InitNew)(
4688 IPersistStorage* This,
4689 IStorage* pStg);
4691 HRESULT (CALLBACK *Load)(
4692 IPersistStorage* This,
4693 IStorage* pStg);
4695 HRESULT (CALLBACK *Save)(
4696 IPersistStorage* This,
4697 IStorage* pStgSave,
4698 BOOL fSameAsLoad);
4700 HRESULT (CALLBACK *SaveCompleted)(
4701 IPersistStorage* This,
4702 IStorage* pStgNew);
4704 HRESULT (CALLBACK *HandsOffStorage)(
4705 IPersistStorage* This);
4709 #define IPersistStorage_IMETHODS \
4710 IPersist_IMETHODS \
4711 ICOM_METHOD (HRESULT,IsDirty) \
4712 ICOM_METHOD1 (HRESULT,InitNew,IStorage*,pStg) \
4713 ICOM_METHOD1 (HRESULT,Load,IStorage*,pStg) \
4714 ICOM_METHOD2 (HRESULT,Save,IStorage*,pStgSave,BOOL,fSameAsLoad) \
4715 ICOM_METHOD1 (HRESULT,SaveCompleted,IStorage*,pStgNew) \
4716 ICOM_METHOD (HRESULT,HandsOffStorage)
4718 /*** IUnknown methods ***/
4719 #define IPersistStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4720 #define IPersistStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
4721 #define IPersistStorage_Release(p) (p)->lpVtbl->Release(p)
4722 /*** IPersist methods ***/
4723 #define IPersistStorage_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4724 /*** IPersistStorage methods ***/
4725 #define IPersistStorage_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4726 #define IPersistStorage_InitNew(p,a) (p)->lpVtbl->InitNew(p,a)
4727 #define IPersistStorage_Load(p,a) (p)->lpVtbl->Load(p,a)
4728 #define IPersistStorage_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4729 #define IPersistStorage_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
4730 #define IPersistStorage_HandsOffStorage(p) (p)->lpVtbl->HandsOffStorage(p)
4732 #endif
4734 HRESULT CALLBACK IPersistStorage_IsDirty_Proxy(
4735 IPersistStorage* This);
4736 void __RPC_STUB IPersistStorage_IsDirty_Stub(
4737 struct IRpcStubBuffer* This,
4738 struct IRpcChannelBuffer* pRpcChannelBuffer,
4739 PRPC_MESSAGE pRpcMessage,
4740 DWORD* pdwStubPhase);
4741 HRESULT CALLBACK IPersistStorage_InitNew_Proxy(
4742 IPersistStorage* This,
4743 IStorage* pStg);
4744 void __RPC_STUB IPersistStorage_InitNew_Stub(
4745 struct IRpcStubBuffer* This,
4746 struct IRpcChannelBuffer* pRpcChannelBuffer,
4747 PRPC_MESSAGE pRpcMessage,
4748 DWORD* pdwStubPhase);
4749 HRESULT CALLBACK IPersistStorage_Load_Proxy(
4750 IPersistStorage* This,
4751 IStorage* pStg);
4752 void __RPC_STUB IPersistStorage_Load_Stub(
4753 struct IRpcStubBuffer* This,
4754 struct IRpcChannelBuffer* pRpcChannelBuffer,
4755 PRPC_MESSAGE pRpcMessage,
4756 DWORD* pdwStubPhase);
4757 HRESULT CALLBACK IPersistStorage_Save_Proxy(
4758 IPersistStorage* This,
4759 IStorage* pStgSave,
4760 BOOL fSameAsLoad);
4761 void __RPC_STUB IPersistStorage_Save_Stub(
4762 struct IRpcStubBuffer* This,
4763 struct IRpcChannelBuffer* pRpcChannelBuffer,
4764 PRPC_MESSAGE pRpcMessage,
4765 DWORD* pdwStubPhase);
4766 HRESULT CALLBACK IPersistStorage_SaveCompleted_Proxy(
4767 IPersistStorage* This,
4768 IStorage* pStgNew);
4769 void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
4770 struct IRpcStubBuffer* This,
4771 struct IRpcChannelBuffer* pRpcChannelBuffer,
4772 PRPC_MESSAGE pRpcMessage,
4773 DWORD* pdwStubPhase);
4774 HRESULT CALLBACK IPersistStorage_HandsOffStorage_Proxy(
4775 IPersistStorage* This);
4776 void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
4777 struct IRpcStubBuffer* This,
4778 struct IRpcChannelBuffer* pRpcChannelBuffer,
4779 PRPC_MESSAGE pRpcMessage,
4780 DWORD* pdwStubPhase);
4782 typedef struct IRootStorage IRootStorage;
4783 typedef IRootStorage *LPROOTSTORAGE;
4785 /*****************************************************************************
4786 * IRootStorage interface
4788 DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4789 #if defined(__cplusplus) && !defined(CINTERFACE)
4790 struct IRootStorage: IUnknown {
4792 virtual HRESULT CALLBACK SwitchToFile(
4793 LPOLESTR pszFile) = 0;
4795 } ICOM_COM_INTERFACE_ATTRIBUTE;
4796 #else
4797 typedef struct IRootStorageVtbl IRootStorageVtbl;
4798 struct IRootStorage {
4799 const IRootStorageVtbl* lpVtbl;
4801 struct IRootStorageVtbl {
4802 ICOM_MSVTABLE_COMPAT_FIELDS
4804 /*** IUnknown methods ***/
4805 HRESULT (CALLBACK *QueryInterface)(
4806 IRootStorage* This,
4807 REFIID riid,
4808 void** ppvObject);
4810 ULONG (CALLBACK *AddRef)(
4811 IRootStorage* This);
4813 ULONG (CALLBACK *Release)(
4814 IRootStorage* This);
4816 /*** IRootStorage methods ***/
4817 HRESULT (CALLBACK *SwitchToFile)(
4818 IRootStorage* This,
4819 LPOLESTR pszFile);
4823 #define IRootStorage_IMETHODS \
4824 IUnknown_IMETHODS \
4825 ICOM_METHOD1 (HRESULT,SwitchToFile,LPOLESTR,pszFile)
4827 /*** IUnknown methods ***/
4828 #define IRootStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4829 #define IRootStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
4830 #define IRootStorage_Release(p) (p)->lpVtbl->Release(p)
4831 /*** IRootStorage methods ***/
4832 #define IRootStorage_SwitchToFile(p,a) (p)->lpVtbl->SwitchToFile(p,a)
4834 #endif
4836 HRESULT CALLBACK IRootStorage_SwitchToFile_Proxy(
4837 IRootStorage* This,
4838 LPOLESTR pszFile);
4839 void __RPC_STUB IRootStorage_SwitchToFile_Stub(
4840 struct IRpcStubBuffer* This,
4841 struct IRpcChannelBuffer* pRpcChannelBuffer,
4842 PRPC_MESSAGE pRpcMessage,
4843 DWORD* pdwStubPhase);
4845 typedef struct ILockBytes ILockBytes;
4846 typedef ILockBytes *LPLOCKBYTES;
4848 /*****************************************************************************
4849 * ILockBytes interface
4851 DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4852 #if defined(__cplusplus) && !defined(CINTERFACE)
4853 struct ILockBytes: IUnknown {
4855 virtual HRESULT CALLBACK ReadAt(
4856 ULARGE_INTEGER ulOffset,
4857 void* pv,
4858 ULONG cb,
4859 ULONG* pcbRead) = 0;
4861 virtual HRESULT CALLBACK WriteAt(
4862 ULARGE_INTEGER ulOffset,
4863 const void* pv,
4864 ULONG cb,
4865 ULONG* pcbWritten) = 0;
4867 virtual HRESULT CALLBACK Flush(
4868 ) = 0;
4870 virtual HRESULT CALLBACK SetSize(
4871 ULARGE_INTEGER cb) = 0;
4873 virtual HRESULT CALLBACK LockRegion(
4874 ULARGE_INTEGER libOffset,
4875 ULARGE_INTEGER cb,
4876 DWORD dwLockType) = 0;
4878 virtual HRESULT CALLBACK UnlockRegion(
4879 ULARGE_INTEGER libOffset,
4880 ULARGE_INTEGER cb,
4881 DWORD dwLockType) = 0;
4883 virtual HRESULT CALLBACK Stat(
4884 STATSTG* pstatstg,
4885 DWORD grfStatFlag) = 0;
4887 } ICOM_COM_INTERFACE_ATTRIBUTE;
4888 #else
4889 typedef struct ILockBytesVtbl ILockBytesVtbl;
4890 struct ILockBytes {
4891 const ILockBytesVtbl* lpVtbl;
4893 struct ILockBytesVtbl {
4894 ICOM_MSVTABLE_COMPAT_FIELDS
4896 /*** IUnknown methods ***/
4897 HRESULT (CALLBACK *QueryInterface)(
4898 ILockBytes* This,
4899 REFIID riid,
4900 void** ppvObject);
4902 ULONG (CALLBACK *AddRef)(
4903 ILockBytes* This);
4905 ULONG (CALLBACK *Release)(
4906 ILockBytes* This);
4908 /*** ILockBytes methods ***/
4909 HRESULT (CALLBACK *ReadAt)(
4910 ILockBytes* This,
4911 ULARGE_INTEGER ulOffset,
4912 void* pv,
4913 ULONG cb,
4914 ULONG* pcbRead);
4916 HRESULT (CALLBACK *WriteAt)(
4917 ILockBytes* This,
4918 ULARGE_INTEGER ulOffset,
4919 const void* pv,
4920 ULONG cb,
4921 ULONG* pcbWritten);
4923 HRESULT (CALLBACK *Flush)(
4924 ILockBytes* This);
4926 HRESULT (CALLBACK *SetSize)(
4927 ILockBytes* This,
4928 ULARGE_INTEGER cb);
4930 HRESULT (CALLBACK *LockRegion)(
4931 ILockBytes* This,
4932 ULARGE_INTEGER libOffset,
4933 ULARGE_INTEGER cb,
4934 DWORD dwLockType);
4936 HRESULT (CALLBACK *UnlockRegion)(
4937 ILockBytes* This,
4938 ULARGE_INTEGER libOffset,
4939 ULARGE_INTEGER cb,
4940 DWORD dwLockType);
4942 HRESULT (CALLBACK *Stat)(
4943 ILockBytes* This,
4944 STATSTG* pstatstg,
4945 DWORD grfStatFlag);
4949 #define ILockBytes_IMETHODS \
4950 IUnknown_IMETHODS \
4951 ICOM_METHOD4 (HRESULT,ReadAt,ULARGE_INTEGER,ulOffset,void*,pv,ULONG,cb,ULONG*,pcbRead) \
4952 ICOM_METHOD4 (HRESULT,WriteAt,ULARGE_INTEGER,ulOffset,const void*,pv,ULONG,cb,ULONG*,pcbWritten) \
4953 ICOM_METHOD (HRESULT,Flush) \
4954 ICOM_METHOD1 (HRESULT,SetSize,ULARGE_INTEGER,cb) \
4955 ICOM_METHOD3 (HRESULT,LockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
4956 ICOM_METHOD3 (HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
4957 ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag)
4959 /*** IUnknown methods ***/
4960 #define ILockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4961 #define ILockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
4962 #define ILockBytes_Release(p) (p)->lpVtbl->Release(p)
4963 /*** ILockBytes methods ***/
4964 #define ILockBytes_ReadAt(p,a,b,c,d) (p)->lpVtbl->ReadAt(p,a,b,c,d)
4965 #define ILockBytes_WriteAt(p,a,b,c,d) (p)->lpVtbl->WriteAt(p,a,b,c,d)
4966 #define ILockBytes_Flush(p) (p)->lpVtbl->Flush(p)
4967 #define ILockBytes_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
4968 #define ILockBytes_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
4969 #define ILockBytes_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
4970 #define ILockBytes_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
4972 #endif
4974 HRESULT CALLBACK ILockBytes_RemoteReadAt_Proxy(
4975 ILockBytes* This,
4976 ULARGE_INTEGER ulOffset,
4977 byte* pv,
4978 ULONG cb,
4979 ULONG* pcbRead);
4980 void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
4981 struct IRpcStubBuffer* This,
4982 struct IRpcChannelBuffer* pRpcChannelBuffer,
4983 PRPC_MESSAGE pRpcMessage,
4984 DWORD* pdwStubPhase);
4985 HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
4986 ILockBytes* This,
4987 ULARGE_INTEGER ulOffset,
4988 void* pv,
4989 ULONG cb,
4990 ULONG* pcbRead);
4991 HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
4992 ILockBytes* This,
4993 ULARGE_INTEGER ulOffset,
4994 byte* pv,
4995 ULONG cb,
4996 ULONG* pcbRead);
4997 HRESULT CALLBACK ILockBytes_RemoteWriteAt_Proxy(
4998 ILockBytes* This,
4999 ULARGE_INTEGER ulOffset,
5000 const byte* pv,
5001 ULONG cb,
5002 ULONG* pcbWritten);
5003 void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
5004 struct IRpcStubBuffer* This,
5005 struct IRpcChannelBuffer* pRpcChannelBuffer,
5006 PRPC_MESSAGE pRpcMessage,
5007 DWORD* pdwStubPhase);
5008 HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
5009 ILockBytes* This,
5010 ULARGE_INTEGER ulOffset,
5011 const void* pv,
5012 ULONG cb,
5013 ULONG* pcbWritten);
5014 HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
5015 ILockBytes* This,
5016 ULARGE_INTEGER ulOffset,
5017 const byte* pv,
5018 ULONG cb,
5019 ULONG* pcbWritten);
5020 HRESULT CALLBACK ILockBytes_Flush_Proxy(
5021 ILockBytes* This);
5022 void __RPC_STUB ILockBytes_Flush_Stub(
5023 struct IRpcStubBuffer* This,
5024 struct IRpcChannelBuffer* pRpcChannelBuffer,
5025 PRPC_MESSAGE pRpcMessage,
5026 DWORD* pdwStubPhase);
5027 HRESULT CALLBACK ILockBytes_SetSize_Proxy(
5028 ILockBytes* This,
5029 ULARGE_INTEGER cb);
5030 void __RPC_STUB ILockBytes_SetSize_Stub(
5031 struct IRpcStubBuffer* This,
5032 struct IRpcChannelBuffer* pRpcChannelBuffer,
5033 PRPC_MESSAGE pRpcMessage,
5034 DWORD* pdwStubPhase);
5035 HRESULT CALLBACK ILockBytes_LockRegion_Proxy(
5036 ILockBytes* This,
5037 ULARGE_INTEGER libOffset,
5038 ULARGE_INTEGER cb,
5039 DWORD dwLockType);
5040 void __RPC_STUB ILockBytes_LockRegion_Stub(
5041 struct IRpcStubBuffer* This,
5042 struct IRpcChannelBuffer* pRpcChannelBuffer,
5043 PRPC_MESSAGE pRpcMessage,
5044 DWORD* pdwStubPhase);
5045 HRESULT CALLBACK ILockBytes_UnlockRegion_Proxy(
5046 ILockBytes* This,
5047 ULARGE_INTEGER libOffset,
5048 ULARGE_INTEGER cb,
5049 DWORD dwLockType);
5050 void __RPC_STUB ILockBytes_UnlockRegion_Stub(
5051 struct IRpcStubBuffer* This,
5052 struct IRpcChannelBuffer* pRpcChannelBuffer,
5053 PRPC_MESSAGE pRpcMessage,
5054 DWORD* pdwStubPhase);
5055 HRESULT CALLBACK ILockBytes_Stat_Proxy(
5056 ILockBytes* This,
5057 STATSTG* pstatstg,
5058 DWORD grfStatFlag);
5059 void __RPC_STUB ILockBytes_Stat_Stub(
5060 struct IRpcStubBuffer* This,
5061 struct IRpcChannelBuffer* pRpcChannelBuffer,
5062 PRPC_MESSAGE pRpcMessage,
5063 DWORD* pdwStubPhase);
5065 typedef struct IFillLockBytes IFillLockBytes;
5066 /*****************************************************************************
5067 * IFillLockBytes interface
5069 DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
5070 #if defined(__cplusplus) && !defined(CINTERFACE)
5071 struct IFillLockBytes: IUnknown {
5073 virtual HRESULT CALLBACK FillAppend(
5074 const void* pv,
5075 ULONG cb,
5076 ULONG* pcbWritten) = 0;
5078 virtual HRESULT CALLBACK FillAt(
5079 ULARGE_INTEGER ulOffset,
5080 const void* pv,
5081 ULONG cb,
5082 ULONG* pcbWritten) = 0;
5084 virtual HRESULT CALLBACK SetFillSize(
5085 ULARGE_INTEGER ulSize) = 0;
5087 virtual HRESULT CALLBACK Terminate(
5088 BOOL bCanceled) = 0;
5090 } ICOM_COM_INTERFACE_ATTRIBUTE;
5091 #else
5092 typedef struct IFillLockBytesVtbl IFillLockBytesVtbl;
5093 struct IFillLockBytes {
5094 const IFillLockBytesVtbl* lpVtbl;
5096 struct IFillLockBytesVtbl {
5097 ICOM_MSVTABLE_COMPAT_FIELDS
5099 /*** IUnknown methods ***/
5100 HRESULT (CALLBACK *QueryInterface)(
5101 IFillLockBytes* This,
5102 REFIID riid,
5103 void** ppvObject);
5105 ULONG (CALLBACK *AddRef)(
5106 IFillLockBytes* This);
5108 ULONG (CALLBACK *Release)(
5109 IFillLockBytes* This);
5111 /*** IFillLockBytes methods ***/
5112 HRESULT (CALLBACK *FillAppend)(
5113 IFillLockBytes* This,
5114 const void* pv,
5115 ULONG cb,
5116 ULONG* pcbWritten);
5118 HRESULT (CALLBACK *FillAt)(
5119 IFillLockBytes* This,
5120 ULARGE_INTEGER ulOffset,
5121 const void* pv,
5122 ULONG cb,
5123 ULONG* pcbWritten);
5125 HRESULT (CALLBACK *SetFillSize)(
5126 IFillLockBytes* This,
5127 ULARGE_INTEGER ulSize);
5129 HRESULT (CALLBACK *Terminate)(
5130 IFillLockBytes* This,
5131 BOOL bCanceled);
5135 #define IFillLockBytes_IMETHODS \
5136 IUnknown_IMETHODS \
5137 ICOM_METHOD3 (HRESULT,FillAppend,const void*,pv,ULONG,cb,ULONG*,pcbWritten) \
5138 ICOM_METHOD4 (HRESULT,FillAt,ULARGE_INTEGER,ulOffset,const void*,pv,ULONG,cb,ULONG*,pcbWritten) \
5139 ICOM_METHOD1 (HRESULT,SetFillSize,ULARGE_INTEGER,ulSize) \
5140 ICOM_METHOD1 (HRESULT,Terminate,BOOL,bCanceled)
5142 /*** IUnknown methods ***/
5143 #define IFillLockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5144 #define IFillLockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
5145 #define IFillLockBytes_Release(p) (p)->lpVtbl->Release(p)
5146 /*** IFillLockBytes methods ***/
5147 #define IFillLockBytes_FillAppend(p,a,b,c) (p)->lpVtbl->FillAppend(p,a,b,c)
5148 #define IFillLockBytes_FillAt(p,a,b,c,d) (p)->lpVtbl->FillAt(p,a,b,c,d)
5149 #define IFillLockBytes_SetFillSize(p,a) (p)->lpVtbl->SetFillSize(p,a)
5150 #define IFillLockBytes_Terminate(p,a) (p)->lpVtbl->Terminate(p,a)
5152 #endif
5154 HRESULT CALLBACK IFillLockBytes_RemoteFillAppend_Proxy(
5155 IFillLockBytes* This,
5156 const byte* pv,
5157 ULONG cb,
5158 ULONG* pcbWritten);
5159 void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
5160 struct IRpcStubBuffer* This,
5161 struct IRpcChannelBuffer* pRpcChannelBuffer,
5162 PRPC_MESSAGE pRpcMessage,
5163 DWORD* pdwStubPhase);
5164 HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
5165 IFillLockBytes* This,
5166 const void* pv,
5167 ULONG cb,
5168 ULONG* pcbWritten);
5169 HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
5170 IFillLockBytes* This,
5171 const byte* pv,
5172 ULONG cb,
5173 ULONG* pcbWritten);
5174 HRESULT CALLBACK IFillLockBytes_RemoteFillAt_Proxy(
5175 IFillLockBytes* This,
5176 ULARGE_INTEGER ulOffset,
5177 const byte* pv,
5178 ULONG cb,
5179 ULONG* pcbWritten);
5180 void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
5181 struct IRpcStubBuffer* This,
5182 struct IRpcChannelBuffer* pRpcChannelBuffer,
5183 PRPC_MESSAGE pRpcMessage,
5184 DWORD* pdwStubPhase);
5185 HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
5186 IFillLockBytes* This,
5187 ULARGE_INTEGER ulOffset,
5188 const void* pv,
5189 ULONG cb,
5190 ULONG* pcbWritten);
5191 HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
5192 IFillLockBytes* This,
5193 ULARGE_INTEGER ulOffset,
5194 const byte* pv,
5195 ULONG cb,
5196 ULONG* pcbWritten);
5197 HRESULT CALLBACK IFillLockBytes_SetFillSize_Proxy(
5198 IFillLockBytes* This,
5199 ULARGE_INTEGER ulSize);
5200 void __RPC_STUB IFillLockBytes_SetFillSize_Stub(
5201 struct IRpcStubBuffer* This,
5202 struct IRpcChannelBuffer* pRpcChannelBuffer,
5203 PRPC_MESSAGE pRpcMessage,
5204 DWORD* pdwStubPhase);
5205 HRESULT CALLBACK IFillLockBytes_Terminate_Proxy(
5206 IFillLockBytes* This,
5207 BOOL bCanceled);
5208 void __RPC_STUB IFillLockBytes_Terminate_Stub(
5209 struct IRpcStubBuffer* This,
5210 struct IRpcChannelBuffer* pRpcChannelBuffer,
5211 PRPC_MESSAGE pRpcMessage,
5212 DWORD* pdwStubPhase);
5214 typedef struct IProgressNotify IProgressNotify;
5215 /*****************************************************************************
5216 * IProgressNotify interface
5218 DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
5219 #if defined(__cplusplus) && !defined(CINTERFACE)
5220 struct IProgressNotify: IUnknown {
5222 virtual HRESULT CALLBACK OnProgress(
5223 DWORD dwProgressCurrent,
5224 DWORD dwProgressMaximum,
5225 BOOL fAccurate,
5226 BOOL fOwner) = 0;
5228 } ICOM_COM_INTERFACE_ATTRIBUTE;
5229 #else
5230 typedef struct IProgressNotifyVtbl IProgressNotifyVtbl;
5231 struct IProgressNotify {
5232 const IProgressNotifyVtbl* lpVtbl;
5234 struct IProgressNotifyVtbl {
5235 ICOM_MSVTABLE_COMPAT_FIELDS
5237 /*** IUnknown methods ***/
5238 HRESULT (CALLBACK *QueryInterface)(
5239 IProgressNotify* This,
5240 REFIID riid,
5241 void** ppvObject);
5243 ULONG (CALLBACK *AddRef)(
5244 IProgressNotify* This);
5246 ULONG (CALLBACK *Release)(
5247 IProgressNotify* This);
5249 /*** IProgressNotify methods ***/
5250 HRESULT (CALLBACK *OnProgress)(
5251 IProgressNotify* This,
5252 DWORD dwProgressCurrent,
5253 DWORD dwProgressMaximum,
5254 BOOL fAccurate,
5255 BOOL fOwner);
5259 #define IProgressNotify_IMETHODS \
5260 IUnknown_IMETHODS \
5261 ICOM_METHOD4 (HRESULT,OnProgress,DWORD,dwProgressCurrent,DWORD,dwProgressMaximum,BOOL,fAccurate,BOOL,fOwner)
5263 /*** IUnknown methods ***/
5264 #define IProgressNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5265 #define IProgressNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
5266 #define IProgressNotify_Release(p) (p)->lpVtbl->Release(p)
5267 /*** IProgressNotify methods ***/
5268 #define IProgressNotify_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d)
5270 #endif
5272 HRESULT CALLBACK IProgressNotify_OnProgress_Proxy(
5273 IProgressNotify* This,
5274 DWORD dwProgressCurrent,
5275 DWORD dwProgressMaximum,
5276 BOOL fAccurate,
5277 BOOL fOwner);
5278 void __RPC_STUB IProgressNotify_OnProgress_Stub(
5279 struct IRpcStubBuffer* This,
5280 struct IRpcChannelBuffer* pRpcChannelBuffer,
5281 PRPC_MESSAGE pRpcMessage,
5282 DWORD* pdwStubPhase);
5284 typedef struct ILayoutStorage ILayoutStorage;
5285 typedef struct tagStorageLayout {
5286 DWORD LayoutType;
5287 OLECHAR *pwcsElementName;
5288 LARGE_INTEGER cOffset;
5289 LARGE_INTEGER cBytes;
5290 } StorageLayout;
5292 /*****************************************************************************
5293 * ILayoutStorage interface
5295 DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
5296 #if defined(__cplusplus) && !defined(CINTERFACE)
5297 struct ILayoutStorage: IUnknown {
5299 virtual HRESULT CALLBACK LayoutScript(
5300 StorageLayout* pStorageLayout,
5301 DWORD nEntries,
5302 DWORD glfInterleavedFlag) = 0;
5304 virtual HRESULT CALLBACK BeginMonitor(
5305 ) = 0;
5307 virtual HRESULT CALLBACK EndMonitor(
5308 ) = 0;
5310 virtual HRESULT CALLBACK ReLayoutDocfile(
5311 OLECHAR* pwcsNewDfName) = 0;
5313 virtual HRESULT CALLBACK ReLayoutDocfileOnILockBytes(
5314 ILockBytes* pILockBytes) = 0;
5316 } ICOM_COM_INTERFACE_ATTRIBUTE;
5317 #else
5318 typedef struct ILayoutStorageVtbl ILayoutStorageVtbl;
5319 struct ILayoutStorage {
5320 const ILayoutStorageVtbl* lpVtbl;
5322 struct ILayoutStorageVtbl {
5323 ICOM_MSVTABLE_COMPAT_FIELDS
5325 /*** IUnknown methods ***/
5326 HRESULT (CALLBACK *QueryInterface)(
5327 ILayoutStorage* This,
5328 REFIID riid,
5329 void** ppvObject);
5331 ULONG (CALLBACK *AddRef)(
5332 ILayoutStorage* This);
5334 ULONG (CALLBACK *Release)(
5335 ILayoutStorage* This);
5337 /*** ILayoutStorage methods ***/
5338 HRESULT (CALLBACK *LayoutScript)(
5339 ILayoutStorage* This,
5340 StorageLayout* pStorageLayout,
5341 DWORD nEntries,
5342 DWORD glfInterleavedFlag);
5344 HRESULT (CALLBACK *BeginMonitor)(
5345 ILayoutStorage* This);
5347 HRESULT (CALLBACK *EndMonitor)(
5348 ILayoutStorage* This);
5350 HRESULT (CALLBACK *ReLayoutDocfile)(
5351 ILayoutStorage* This,
5352 OLECHAR* pwcsNewDfName);
5354 HRESULT (CALLBACK *ReLayoutDocfileOnILockBytes)(
5355 ILayoutStorage* This,
5356 ILockBytes* pILockBytes);
5360 #define ILayoutStorage_IMETHODS \
5361 IUnknown_IMETHODS \
5362 ICOM_METHOD3 (HRESULT,LayoutScript,StorageLayout*,pStorageLayout,DWORD,nEntries,DWORD,glfInterleavedFlag) \
5363 ICOM_METHOD (HRESULT,BeginMonitor) \
5364 ICOM_METHOD (HRESULT,EndMonitor) \
5365 ICOM_METHOD1 (HRESULT,ReLayoutDocfile,OLECHAR*,pwcsNewDfName) \
5366 ICOM_METHOD1 (HRESULT,ReLayoutDocfileOnILockBytes,ILockBytes*,pILockBytes)
5368 /*** IUnknown methods ***/
5369 #define ILayoutStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5370 #define ILayoutStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
5371 #define ILayoutStorage_Release(p) (p)->lpVtbl->Release(p)
5372 /*** ILayoutStorage methods ***/
5373 #define ILayoutStorage_LayoutScript(p,a,b,c) (p)->lpVtbl->LayoutScript(p,a,b,c)
5374 #define ILayoutStorage_BeginMonitor(p) (p)->lpVtbl->BeginMonitor(p)
5375 #define ILayoutStorage_EndMonitor(p) (p)->lpVtbl->EndMonitor(p)
5376 #define ILayoutStorage_ReLayoutDocfile(p,a) (p)->lpVtbl->ReLayoutDocfile(p,a)
5377 #define ILayoutStorage_ReLayoutDocfileOnILockBytes(p,a) (p)->lpVtbl->ReLayoutDocfileOnILockBytes(p,a)
5379 #endif
5381 HRESULT CALLBACK ILayoutStorage_LayoutScript_Proxy(
5382 ILayoutStorage* This,
5383 StorageLayout* pStorageLayout,
5384 DWORD nEntries,
5385 DWORD glfInterleavedFlag);
5386 void __RPC_STUB ILayoutStorage_LayoutScript_Stub(
5387 struct IRpcStubBuffer* This,
5388 struct IRpcChannelBuffer* pRpcChannelBuffer,
5389 PRPC_MESSAGE pRpcMessage,
5390 DWORD* pdwStubPhase);
5391 HRESULT CALLBACK ILayoutStorage_BeginMonitor_Proxy(
5392 ILayoutStorage* This);
5393 void __RPC_STUB ILayoutStorage_BeginMonitor_Stub(
5394 struct IRpcStubBuffer* This,
5395 struct IRpcChannelBuffer* pRpcChannelBuffer,
5396 PRPC_MESSAGE pRpcMessage,
5397 DWORD* pdwStubPhase);
5398 HRESULT CALLBACK ILayoutStorage_EndMonitor_Proxy(
5399 ILayoutStorage* This);
5400 void __RPC_STUB ILayoutStorage_EndMonitor_Stub(
5401 struct IRpcStubBuffer* This,
5402 struct IRpcChannelBuffer* pRpcChannelBuffer,
5403 PRPC_MESSAGE pRpcMessage,
5404 DWORD* pdwStubPhase);
5405 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfile_Proxy(
5406 ILayoutStorage* This,
5407 OLECHAR* pwcsNewDfName);
5408 void __RPC_STUB ILayoutStorage_ReLayoutDocfile_Stub(
5409 struct IRpcStubBuffer* This,
5410 struct IRpcChannelBuffer* pRpcChannelBuffer,
5411 PRPC_MESSAGE pRpcMessage,
5412 DWORD* pdwStubPhase);
5413 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfileOnILockBytes_Proxy(
5414 ILayoutStorage* This,
5415 ILockBytes* pILockBytes);
5416 void __RPC_STUB ILayoutStorage_ReLayoutDocfileOnILockBytes_Stub(
5417 struct IRpcStubBuffer* This,
5418 struct IRpcChannelBuffer* pRpcChannelBuffer,
5419 PRPC_MESSAGE pRpcMessage,
5420 DWORD* pdwStubPhase);
5422 typedef struct IEnumFORMATETC IEnumFORMATETC;
5423 typedef IEnumFORMATETC *LPENUMFORMATETC;
5425 typedef struct tagDVTARGETDEVICE {
5426 DWORD tdSize;
5427 WORD tdDriverNameOffset;
5428 WORD tdDeviceNameOffset;
5429 WORD tdPortNameOffset;
5430 WORD tdExtDevmodeOffset;
5431 BYTE tdData[1];
5432 } DVTARGETDEVICE;
5434 typedef CLIPFORMAT *LPCLIPFORMAT;
5436 typedef struct tagFORMATETC {
5437 CLIPFORMAT cfFormat;
5438 DVTARGETDEVICE *ptd;
5439 DWORD dwAspect;
5440 LONG lindex;
5441 DWORD tymed;
5442 } FORMATETC, *LPFORMATETC;
5444 /*****************************************************************************
5445 * IEnumFORMATETC interface
5447 DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5448 #if defined(__cplusplus) && !defined(CINTERFACE)
5449 struct IEnumFORMATETC: IUnknown {
5451 virtual HRESULT CALLBACK Next(
5452 ULONG celt,
5453 FORMATETC* rgelt,
5454 ULONG* pceltFetched) = 0;
5456 virtual HRESULT CALLBACK Skip(
5457 ULONG celt) = 0;
5459 virtual HRESULT CALLBACK Reset(
5460 ) = 0;
5462 virtual HRESULT CALLBACK Clone(
5463 IEnumFORMATETC** ppenum) = 0;
5465 } ICOM_COM_INTERFACE_ATTRIBUTE;
5466 #else
5467 typedef struct IEnumFORMATETCVtbl IEnumFORMATETCVtbl;
5468 struct IEnumFORMATETC {
5469 const IEnumFORMATETCVtbl* lpVtbl;
5471 struct IEnumFORMATETCVtbl {
5472 ICOM_MSVTABLE_COMPAT_FIELDS
5474 /*** IUnknown methods ***/
5475 HRESULT (CALLBACK *QueryInterface)(
5476 IEnumFORMATETC* This,
5477 REFIID riid,
5478 void** ppvObject);
5480 ULONG (CALLBACK *AddRef)(
5481 IEnumFORMATETC* This);
5483 ULONG (CALLBACK *Release)(
5484 IEnumFORMATETC* This);
5486 /*** IEnumFORMATETC methods ***/
5487 HRESULT (CALLBACK *Next)(
5488 IEnumFORMATETC* This,
5489 ULONG celt,
5490 FORMATETC* rgelt,
5491 ULONG* pceltFetched);
5493 HRESULT (CALLBACK *Skip)(
5494 IEnumFORMATETC* This,
5495 ULONG celt);
5497 HRESULT (CALLBACK *Reset)(
5498 IEnumFORMATETC* This);
5500 HRESULT (CALLBACK *Clone)(
5501 IEnumFORMATETC* This,
5502 IEnumFORMATETC** ppenum);
5506 #define IEnumFORMATETC_IMETHODS \
5507 IUnknown_IMETHODS \
5508 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,FORMATETC*,rgelt,ULONG*,pceltFetched) \
5509 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
5510 ICOM_METHOD (HRESULT,Reset) \
5511 ICOM_METHOD1 (HRESULT,Clone,IEnumFORMATETC**,ppenum)
5513 /*** IUnknown methods ***/
5514 #define IEnumFORMATETC_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5515 #define IEnumFORMATETC_AddRef(p) (p)->lpVtbl->AddRef(p)
5516 #define IEnumFORMATETC_Release(p) (p)->lpVtbl->Release(p)
5517 /*** IEnumFORMATETC methods ***/
5518 #define IEnumFORMATETC_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5519 #define IEnumFORMATETC_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5520 #define IEnumFORMATETC_Reset(p) (p)->lpVtbl->Reset(p)
5521 #define IEnumFORMATETC_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5523 #endif
5525 HRESULT CALLBACK IEnumFORMATETC_RemoteNext_Proxy(
5526 IEnumFORMATETC* This,
5527 ULONG celt,
5528 FORMATETC* rgelt,
5529 ULONG* pceltFetched);
5530 void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
5531 struct IRpcStubBuffer* This,
5532 struct IRpcChannelBuffer* pRpcChannelBuffer,
5533 PRPC_MESSAGE pRpcMessage,
5534 DWORD* pdwStubPhase);
5535 HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
5536 IEnumFORMATETC* This,
5537 ULONG celt,
5538 FORMATETC* rgelt,
5539 ULONG* pceltFetched);
5540 HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
5541 IEnumFORMATETC* This,
5542 ULONG celt,
5543 FORMATETC* rgelt,
5544 ULONG* pceltFetched);
5545 HRESULT CALLBACK IEnumFORMATETC_Skip_Proxy(
5546 IEnumFORMATETC* This,
5547 ULONG celt);
5548 void __RPC_STUB IEnumFORMATETC_Skip_Stub(
5549 struct IRpcStubBuffer* This,
5550 struct IRpcChannelBuffer* pRpcChannelBuffer,
5551 PRPC_MESSAGE pRpcMessage,
5552 DWORD* pdwStubPhase);
5553 HRESULT CALLBACK IEnumFORMATETC_Reset_Proxy(
5554 IEnumFORMATETC* This);
5555 void __RPC_STUB IEnumFORMATETC_Reset_Stub(
5556 struct IRpcStubBuffer* This,
5557 struct IRpcChannelBuffer* pRpcChannelBuffer,
5558 PRPC_MESSAGE pRpcMessage,
5559 DWORD* pdwStubPhase);
5560 HRESULT CALLBACK IEnumFORMATETC_Clone_Proxy(
5561 IEnumFORMATETC* This,
5562 IEnumFORMATETC** ppenum);
5563 void __RPC_STUB IEnumFORMATETC_Clone_Stub(
5564 struct IRpcStubBuffer* This,
5565 struct IRpcChannelBuffer* pRpcChannelBuffer,
5566 PRPC_MESSAGE pRpcMessage,
5567 DWORD* pdwStubPhase);
5569 typedef struct IEnumSTATDATA IEnumSTATDATA;
5570 typedef IEnumSTATDATA *LPENUMSTATDATA;
5572 typedef enum tagADVF {
5573 ADVF_NODATA = 1,
5574 ADVF_PRIMEFIRST = 2,
5575 ADVF_ONLYONCE = 4,
5576 ADVF_DATAONSTOP = 64,
5577 ADVFCACHE_NOHANDLER = 8,
5578 ADVFCACHE_FORCEBUILTIN = 16,
5579 ADVFCACHE_ONSAVE = 32
5580 } ADVF;
5582 typedef struct tagSTATDATA {
5583 FORMATETC formatetc;
5584 DWORD advf;
5585 IAdviseSink *pAdvSink;
5586 DWORD dwConnection;
5587 } STATDATA, *LPSTATDATA;
5589 /*****************************************************************************
5590 * IEnumSTATDATA interface
5592 DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5593 #if defined(__cplusplus) && !defined(CINTERFACE)
5594 struct IEnumSTATDATA: IUnknown {
5596 virtual HRESULT CALLBACK Next(
5597 ULONG celt,
5598 STATDATA* rgelt,
5599 ULONG* pceltFetched) = 0;
5601 virtual HRESULT CALLBACK Skip(
5602 ULONG celt) = 0;
5604 virtual HRESULT CALLBACK Reset(
5605 ) = 0;
5607 virtual HRESULT CALLBACK Clone(
5608 IEnumSTATDATA** ppenum) = 0;
5610 } ICOM_COM_INTERFACE_ATTRIBUTE;
5611 #else
5612 typedef struct IEnumSTATDATAVtbl IEnumSTATDATAVtbl;
5613 struct IEnumSTATDATA {
5614 const IEnumSTATDATAVtbl* lpVtbl;
5616 struct IEnumSTATDATAVtbl {
5617 ICOM_MSVTABLE_COMPAT_FIELDS
5619 /*** IUnknown methods ***/
5620 HRESULT (CALLBACK *QueryInterface)(
5621 IEnumSTATDATA* This,
5622 REFIID riid,
5623 void** ppvObject);
5625 ULONG (CALLBACK *AddRef)(
5626 IEnumSTATDATA* This);
5628 ULONG (CALLBACK *Release)(
5629 IEnumSTATDATA* This);
5631 /*** IEnumSTATDATA methods ***/
5632 HRESULT (CALLBACK *Next)(
5633 IEnumSTATDATA* This,
5634 ULONG celt,
5635 STATDATA* rgelt,
5636 ULONG* pceltFetched);
5638 HRESULT (CALLBACK *Skip)(
5639 IEnumSTATDATA* This,
5640 ULONG celt);
5642 HRESULT (CALLBACK *Reset)(
5643 IEnumSTATDATA* This);
5645 HRESULT (CALLBACK *Clone)(
5646 IEnumSTATDATA* This,
5647 IEnumSTATDATA** ppenum);
5651 #define IEnumSTATDATA_IMETHODS \
5652 IUnknown_IMETHODS \
5653 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATDATA*,rgelt,ULONG*,pceltFetched) \
5654 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
5655 ICOM_METHOD (HRESULT,Reset) \
5656 ICOM_METHOD1 (HRESULT,Clone,IEnumSTATDATA**,ppenum)
5658 /*** IUnknown methods ***/
5659 #define IEnumSTATDATA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5660 #define IEnumSTATDATA_AddRef(p) (p)->lpVtbl->AddRef(p)
5661 #define IEnumSTATDATA_Release(p) (p)->lpVtbl->Release(p)
5662 /*** IEnumSTATDATA methods ***/
5663 #define IEnumSTATDATA_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5664 #define IEnumSTATDATA_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5665 #define IEnumSTATDATA_Reset(p) (p)->lpVtbl->Reset(p)
5666 #define IEnumSTATDATA_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5668 #endif
5670 HRESULT CALLBACK IEnumSTATDATA_RemoteNext_Proxy(
5671 IEnumSTATDATA* This,
5672 ULONG celt,
5673 STATDATA* rgelt,
5674 ULONG* pceltFetched);
5675 void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
5676 struct IRpcStubBuffer* This,
5677 struct IRpcChannelBuffer* pRpcChannelBuffer,
5678 PRPC_MESSAGE pRpcMessage,
5679 DWORD* pdwStubPhase);
5680 HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
5681 IEnumSTATDATA* This,
5682 ULONG celt,
5683 STATDATA* rgelt,
5684 ULONG* pceltFetched);
5685 HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
5686 IEnumSTATDATA* This,
5687 ULONG celt,
5688 STATDATA* rgelt,
5689 ULONG* pceltFetched);
5690 HRESULT CALLBACK IEnumSTATDATA_Skip_Proxy(
5691 IEnumSTATDATA* This,
5692 ULONG celt);
5693 void __RPC_STUB IEnumSTATDATA_Skip_Stub(
5694 struct IRpcStubBuffer* This,
5695 struct IRpcChannelBuffer* pRpcChannelBuffer,
5696 PRPC_MESSAGE pRpcMessage,
5697 DWORD* pdwStubPhase);
5698 HRESULT CALLBACK IEnumSTATDATA_Reset_Proxy(
5699 IEnumSTATDATA* This);
5700 void __RPC_STUB IEnumSTATDATA_Reset_Stub(
5701 struct IRpcStubBuffer* This,
5702 struct IRpcChannelBuffer* pRpcChannelBuffer,
5703 PRPC_MESSAGE pRpcMessage,
5704 DWORD* pdwStubPhase);
5705 HRESULT CALLBACK IEnumSTATDATA_Clone_Proxy(
5706 IEnumSTATDATA* This,
5707 IEnumSTATDATA** ppenum);
5708 void __RPC_STUB IEnumSTATDATA_Clone_Stub(
5709 struct IRpcStubBuffer* This,
5710 struct IRpcChannelBuffer* pRpcChannelBuffer,
5711 PRPC_MESSAGE pRpcMessage,
5712 DWORD* pdwStubPhase);
5714 typedef IAdviseSink *LPADVISESINK;
5716 typedef enum tagTYMED {
5717 TYMED_HGLOBAL = 1,
5718 TYMED_FILE = 2,
5719 TYMED_ISTREAM = 4,
5720 TYMED_ISTORAGE = 8,
5721 TYMED_GDI = 16,
5722 TYMED_MFPICT = 32,
5723 TYMED_ENHMF = 64,
5724 TYMED_NULL = 0
5725 } TYMED;
5727 typedef struct tagRemSTGMEDIUM {
5728 DWORD tymed;
5729 DWORD dwHandleType;
5730 unsigned long pData;
5731 unsigned long pUnkForRelease;
5732 unsigned long cbData;
5733 byte data[1];
5734 } RemSTGMEDIUM;
5736 typedef struct tagSTGMEDIUM {
5737 DWORD tymed;
5738 union {
5739 HBITMAP hBitmap;
5740 HMETAFILEPICT hMetaFilePict;
5741 HENHMETAFILE hEnhMetaFile;
5742 HGLOBAL hGlobal;
5743 LPOLESTR lpszFileName;
5744 IStream *pstm;
5745 IStorage *pstg;
5746 } DUMMYUNIONNAME;
5747 IUnknown *pUnkForRelease;
5748 } uSTGMEDIUM;
5750 typedef struct _GDI_OBJECT {
5751 DWORD ObjectType;
5752 union {
5753 wireHBITMAP hBitmap;
5754 wireHPALETTE hPalette;
5755 wireHGLOBAL hGeneric;
5756 } u;
5757 } GDI_OBJECT;
5759 typedef struct _userSTGMEDIUM {
5760 struct _STGMEDIUM_UNION {
5761 DWORD tymed;
5762 union {
5763 wireHMETAFILEPICT hMetaFilePict;
5764 wireHENHMETAFILE hHEnhMetaFile;
5765 GDI_OBJECT *hGdiHandle;
5766 wireHGLOBAL hGlobal;
5767 LPOLESTR lpszFileName;
5768 BYTE_BLOB *pstm;
5769 BYTE_BLOB *pstg;
5770 } u;
5771 } DUMMYSTRUCTNAME;
5772 IUnknown *pUnkForRelease;
5773 } userSTGMEDIUM;
5775 typedef userSTGMEDIUM *wireSTGMEDIUM;
5777 typedef uSTGMEDIUM STGMEDIUM;
5778 unsigned long __RPC_USER STGMEDIUM_UserSize (unsigned long *, unsigned long, STGMEDIUM *);
5779 unsigned char * __RPC_USER STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, STGMEDIUM *);
5780 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, STGMEDIUM *);
5781 void __RPC_USER STGMEDIUM_UserFree (unsigned long *, STGMEDIUM *);
5783 typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
5785 typedef STGMEDIUM ASYNC_STGMEDIUM;
5786 unsigned long __RPC_USER ASYNC_STGMEDIUM_UserSize (unsigned long *, unsigned long, ASYNC_STGMEDIUM *);
5787 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, ASYNC_STGMEDIUM *);
5788 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, ASYNC_STGMEDIUM *);
5789 void __RPC_USER ASYNC_STGMEDIUM_UserFree (unsigned long *, ASYNC_STGMEDIUM *);
5791 typedef STGMEDIUM *LPSTGMEDIUM;
5793 typedef struct _userFLAG_STGMEDIUM {
5794 long ContextFlags;
5795 long fPassOwnership;
5796 userSTGMEDIUM Stgmed;
5797 } userFLAG_STGMEDIUM;
5799 typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
5801 typedef struct _FLAG_STGMEDIUM {
5802 long ContextFlags;
5803 long fPassOwnership;
5804 STGMEDIUM Stgmed;
5805 } FLAG_STGMEDIUM;
5806 unsigned long __RPC_USER FLAG_STGMEDIUM_UserSize (unsigned long *, unsigned long, FLAG_STGMEDIUM *);
5807 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, FLAG_STGMEDIUM *);
5808 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, FLAG_STGMEDIUM *);
5809 void __RPC_USER FLAG_STGMEDIUM_UserFree (unsigned long *, FLAG_STGMEDIUM *);
5811 /*****************************************************************************
5812 * IAdviseSink interface
5814 DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5815 #if defined(__cplusplus) && !defined(CINTERFACE)
5816 struct IAdviseSink: IUnknown {
5818 virtual void CALLBACK OnDataChange(
5819 FORMATETC* pFormatetc,
5820 STGMEDIUM* pStgmed) = 0;
5822 virtual void CALLBACK OnViewChange(
5823 DWORD dwAspect,
5824 LONG lindex) = 0;
5826 virtual void CALLBACK OnRename(
5827 IMoniker* pmk) = 0;
5829 virtual void CALLBACK OnSave(
5830 ) = 0;
5832 virtual void CALLBACK OnClose(
5833 ) = 0;
5835 } ICOM_COM_INTERFACE_ATTRIBUTE;
5836 #else
5837 typedef struct IAdviseSinkVtbl IAdviseSinkVtbl;
5838 struct IAdviseSink {
5839 const IAdviseSinkVtbl* lpVtbl;
5841 struct IAdviseSinkVtbl {
5842 ICOM_MSVTABLE_COMPAT_FIELDS
5844 /*** IUnknown methods ***/
5845 HRESULT (CALLBACK *QueryInterface)(
5846 IAdviseSink* This,
5847 REFIID riid,
5848 void** ppvObject);
5850 ULONG (CALLBACK *AddRef)(
5851 IAdviseSink* This);
5853 ULONG (CALLBACK *Release)(
5854 IAdviseSink* This);
5856 /*** IAdviseSink methods ***/
5857 void (CALLBACK *OnDataChange)(
5858 IAdviseSink* This,
5859 FORMATETC* pFormatetc,
5860 STGMEDIUM* pStgmed);
5862 void (CALLBACK *OnViewChange)(
5863 IAdviseSink* This,
5864 DWORD dwAspect,
5865 LONG lindex);
5867 void (CALLBACK *OnRename)(
5868 IAdviseSink* This,
5869 IMoniker* pmk);
5871 void (CALLBACK *OnSave)(
5872 IAdviseSink* This);
5874 void (CALLBACK *OnClose)(
5875 IAdviseSink* This);
5879 #define IAdviseSink_IMETHODS \
5880 IUnknown_IMETHODS \
5881 ICOM_VMETHOD2(OnDataChange,FORMATETC*,pFormatetc,STGMEDIUM*,pStgmed) \
5882 ICOM_VMETHOD2(OnViewChange,DWORD,dwAspect,LONG,lindex) \
5883 ICOM_VMETHOD1(OnRename,IMoniker*,pmk) \
5884 ICOM_VMETHOD (OnSave) \
5885 ICOM_VMETHOD (OnClose)
5887 /*** IUnknown methods ***/
5888 #define IAdviseSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5889 #define IAdviseSink_AddRef(p) (p)->lpVtbl->AddRef(p)
5890 #define IAdviseSink_Release(p) (p)->lpVtbl->Release(p)
5891 /*** IAdviseSink methods ***/
5892 #define IAdviseSink_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
5893 #define IAdviseSink_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
5894 #define IAdviseSink_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
5895 #define IAdviseSink_OnSave(p) (p)->lpVtbl->OnSave(p)
5896 #define IAdviseSink_OnClose(p) (p)->lpVtbl->OnClose(p)
5898 #endif
5900 HRESULT CALLBACK IAdviseSink_RemoteOnDataChange_Proxy(
5901 IAdviseSink* This,
5902 IAsyncManager** ppIAM,
5903 FORMATETC* pFormatetc,
5904 ASYNC_STGMEDIUM* pStgmed);
5905 void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
5906 struct IRpcStubBuffer* This,
5907 struct IRpcChannelBuffer* pRpcChannelBuffer,
5908 PRPC_MESSAGE pRpcMessage,
5909 DWORD* pdwStubPhase);
5910 void CALLBACK IAdviseSink_OnDataChange_Proxy(
5911 IAdviseSink* This,
5912 FORMATETC* pFormatetc,
5913 STGMEDIUM* pStgmed);
5914 HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
5915 IAdviseSink* This,
5916 IAsyncManager** ppIAM,
5917 FORMATETC* pFormatetc,
5918 ASYNC_STGMEDIUM* pStgmed);
5919 HRESULT CALLBACK IAdviseSink_RemoteOnViewChange_Proxy(
5920 IAdviseSink* This,
5921 IAsyncManager** ppIAM,
5922 DWORD dwAspect,
5923 LONG lindex);
5924 void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
5925 struct IRpcStubBuffer* This,
5926 struct IRpcChannelBuffer* pRpcChannelBuffer,
5927 PRPC_MESSAGE pRpcMessage,
5928 DWORD* pdwStubPhase);
5929 void CALLBACK IAdviseSink_OnViewChange_Proxy(
5930 IAdviseSink* This,
5931 DWORD dwAspect,
5932 LONG lindex);
5933 HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
5934 IAdviseSink* This,
5935 IAsyncManager** ppIAM,
5936 DWORD dwAspect,
5937 LONG lindex);
5938 HRESULT CALLBACK IAdviseSink_RemoteOnRename_Proxy(
5939 IAdviseSink* This,
5940 IAsyncManager** ppIAM,
5941 IMoniker* pmk);
5942 void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
5943 struct IRpcStubBuffer* This,
5944 struct IRpcChannelBuffer* pRpcChannelBuffer,
5945 PRPC_MESSAGE pRpcMessage,
5946 DWORD* pdwStubPhase);
5947 void CALLBACK IAdviseSink_OnRename_Proxy(
5948 IAdviseSink* This,
5949 IMoniker* pmk);
5950 HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
5951 IAdviseSink* This,
5952 IAsyncManager** ppIAM,
5953 IMoniker* pmk);
5954 HRESULT CALLBACK IAdviseSink_RemoteOnSave_Proxy(
5955 IAdviseSink* This,
5956 IAsyncManager** ppIAM);
5957 void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
5958 struct IRpcStubBuffer* This,
5959 struct IRpcChannelBuffer* pRpcChannelBuffer,
5960 PRPC_MESSAGE pRpcMessage,
5961 DWORD* pdwStubPhase);
5962 void CALLBACK IAdviseSink_OnSave_Proxy(
5963 IAdviseSink* This);
5964 HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
5965 IAdviseSink* This,
5966 IAsyncManager** ppIAM);
5967 HRESULT CALLBACK IAdviseSink_RemoteOnClose_Proxy(
5968 IAdviseSink* This);
5969 void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
5970 struct IRpcStubBuffer* This,
5971 struct IRpcChannelBuffer* pRpcChannelBuffer,
5972 PRPC_MESSAGE pRpcMessage,
5973 DWORD* pdwStubPhase);
5974 void CALLBACK IAdviseSink_OnClose_Proxy(
5975 IAdviseSink* This);
5976 HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
5977 IAdviseSink* This);
5979 typedef struct IAdviseSink2 IAdviseSink2;
5980 typedef IAdviseSink2 *LPADVISESINK2;
5982 /*****************************************************************************
5983 * IAdviseSink2 interface
5985 DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5986 #if defined(__cplusplus) && !defined(CINTERFACE)
5987 struct IAdviseSink2: IAdviseSink {
5989 virtual void CALLBACK OnLinkSrcChange(
5990 IMoniker* pmk) = 0;
5992 } ICOM_COM_INTERFACE_ATTRIBUTE;
5993 #else
5994 typedef struct IAdviseSink2Vtbl IAdviseSink2Vtbl;
5995 struct IAdviseSink2 {
5996 const IAdviseSink2Vtbl* lpVtbl;
5998 struct IAdviseSink2Vtbl {
5999 ICOM_MSVTABLE_COMPAT_FIELDS
6001 /*** IUnknown methods ***/
6002 HRESULT (CALLBACK *QueryInterface)(
6003 IAdviseSink2* This,
6004 REFIID riid,
6005 void** ppvObject);
6007 ULONG (CALLBACK *AddRef)(
6008 IAdviseSink2* This);
6010 ULONG (CALLBACK *Release)(
6011 IAdviseSink2* This);
6013 /*** IAdviseSink methods ***/
6014 void (CALLBACK *OnDataChange)(
6015 IAdviseSink2* This,
6016 FORMATETC* pFormatetc,
6017 STGMEDIUM* pStgmed);
6019 void (CALLBACK *OnViewChange)(
6020 IAdviseSink2* This,
6021 DWORD dwAspect,
6022 LONG lindex);
6024 void (CALLBACK *OnRename)(
6025 IAdviseSink2* This,
6026 IMoniker* pmk);
6028 void (CALLBACK *OnSave)(
6029 IAdviseSink2* This);
6031 void (CALLBACK *OnClose)(
6032 IAdviseSink2* This);
6034 /*** IAdviseSink2 methods ***/
6035 void (CALLBACK *OnLinkSrcChange)(
6036 IAdviseSink2* This,
6037 IMoniker* pmk);
6041 #define IAdviseSink2_IMETHODS \
6042 IAdviseSink_IMETHODS \
6043 ICOM_VMETHOD1(OnLinkSrcChange,IMoniker*,pmk)
6045 /*** IUnknown methods ***/
6046 #define IAdviseSink2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6047 #define IAdviseSink2_AddRef(p) (p)->lpVtbl->AddRef(p)
6048 #define IAdviseSink2_Release(p) (p)->lpVtbl->Release(p)
6049 /*** IAdviseSink methods ***/
6050 #define IAdviseSink2_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
6051 #define IAdviseSink2_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
6052 #define IAdviseSink2_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
6053 #define IAdviseSink2_OnSave(p) (p)->lpVtbl->OnSave(p)
6054 #define IAdviseSink2_OnClose(p) (p)->lpVtbl->OnClose(p)
6055 /*** IAdviseSink2 methods ***/
6056 #define IAdviseSink2_OnLinkSrcChange(p,a) (p)->lpVtbl->OnLinkSrcChange(p,a)
6058 #endif
6060 HRESULT CALLBACK IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
6061 IAdviseSink2* This,
6062 IAsyncManager** ppIAM,
6063 IMoniker* pmk);
6064 void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
6065 struct IRpcStubBuffer* This,
6066 struct IRpcChannelBuffer* pRpcChannelBuffer,
6067 PRPC_MESSAGE pRpcMessage,
6068 DWORD* pdwStubPhase);
6069 void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
6070 IAdviseSink2* This,
6071 IMoniker* pmk);
6072 HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
6073 IAdviseSink2* This,
6074 IAsyncManager** ppIAM,
6075 IMoniker* pmk);
6077 typedef struct IDataObject IDataObject;
6078 typedef IDataObject *LPDATAOBJECT;
6080 typedef enum tagDATADIR {
6081 DATADIR_GET = 1,
6082 DATADIR_SET = 2
6083 } DATADIR;
6085 /*****************************************************************************
6086 * IDataObject interface
6088 DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6089 #if defined(__cplusplus) && !defined(CINTERFACE)
6090 struct IDataObject: IUnknown {
6092 virtual HRESULT CALLBACK GetData(
6093 FORMATETC* pformatetcIn,
6094 STGMEDIUM* pmedium) = 0;
6096 virtual HRESULT CALLBACK GetDataHere(
6097 FORMATETC* pformatetc,
6098 STGMEDIUM* pmedium) = 0;
6100 virtual HRESULT CALLBACK QueryGetData(
6101 FORMATETC* pformatetc) = 0;
6103 virtual HRESULT CALLBACK GetCanonicalFormatEtc(
6104 FORMATETC* pformatectIn,
6105 FORMATETC* pformatetcOut) = 0;
6107 virtual HRESULT CALLBACK SetData(
6108 FORMATETC* pformatetc,
6109 STGMEDIUM* pmedium,
6110 BOOL fRelease) = 0;
6112 virtual HRESULT CALLBACK EnumFormatEtc(
6113 DWORD dwDirection,
6114 IEnumFORMATETC** ppenumFormatEtc) = 0;
6116 virtual HRESULT CALLBACK DAdvise(
6117 FORMATETC* pformatetc,
6118 DWORD advf,
6119 IAdviseSink* pAdvSink,
6120 DWORD* pdwConnection) = 0;
6122 virtual HRESULT CALLBACK DUnadvise(
6123 DWORD dwConnection) = 0;
6125 virtual HRESULT CALLBACK EnumDAdvise(
6126 IEnumSTATDATA** ppenumAdvise) = 0;
6128 } ICOM_COM_INTERFACE_ATTRIBUTE;
6129 #else
6130 typedef struct IDataObjectVtbl IDataObjectVtbl;
6131 struct IDataObject {
6132 const IDataObjectVtbl* lpVtbl;
6134 struct IDataObjectVtbl {
6135 ICOM_MSVTABLE_COMPAT_FIELDS
6137 /*** IUnknown methods ***/
6138 HRESULT (CALLBACK *QueryInterface)(
6139 IDataObject* This,
6140 REFIID riid,
6141 void** ppvObject);
6143 ULONG (CALLBACK *AddRef)(
6144 IDataObject* This);
6146 ULONG (CALLBACK *Release)(
6147 IDataObject* This);
6149 /*** IDataObject methods ***/
6150 HRESULT (CALLBACK *GetData)(
6151 IDataObject* This,
6152 FORMATETC* pformatetcIn,
6153 STGMEDIUM* pmedium);
6155 HRESULT (CALLBACK *GetDataHere)(
6156 IDataObject* This,
6157 FORMATETC* pformatetc,
6158 STGMEDIUM* pmedium);
6160 HRESULT (CALLBACK *QueryGetData)(
6161 IDataObject* This,
6162 FORMATETC* pformatetc);
6164 HRESULT (CALLBACK *GetCanonicalFormatEtc)(
6165 IDataObject* This,
6166 FORMATETC* pformatectIn,
6167 FORMATETC* pformatetcOut);
6169 HRESULT (CALLBACK *SetData)(
6170 IDataObject* This,
6171 FORMATETC* pformatetc,
6172 STGMEDIUM* pmedium,
6173 BOOL fRelease);
6175 HRESULT (CALLBACK *EnumFormatEtc)(
6176 IDataObject* This,
6177 DWORD dwDirection,
6178 IEnumFORMATETC** ppenumFormatEtc);
6180 HRESULT (CALLBACK *DAdvise)(
6181 IDataObject* This,
6182 FORMATETC* pformatetc,
6183 DWORD advf,
6184 IAdviseSink* pAdvSink,
6185 DWORD* pdwConnection);
6187 HRESULT (CALLBACK *DUnadvise)(
6188 IDataObject* This,
6189 DWORD dwConnection);
6191 HRESULT (CALLBACK *EnumDAdvise)(
6192 IDataObject* This,
6193 IEnumSTATDATA** ppenumAdvise);
6197 #define IDataObject_IMETHODS \
6198 IUnknown_IMETHODS \
6199 ICOM_METHOD2 (HRESULT,GetData,FORMATETC*,pformatetcIn,STGMEDIUM*,pmedium) \
6200 ICOM_METHOD2 (HRESULT,GetDataHere,FORMATETC*,pformatetc,STGMEDIUM*,pmedium) \
6201 ICOM_METHOD1 (HRESULT,QueryGetData,FORMATETC*,pformatetc) \
6202 ICOM_METHOD2 (HRESULT,GetCanonicalFormatEtc,FORMATETC*,pformatectIn,FORMATETC*,pformatetcOut) \
6203 ICOM_METHOD3 (HRESULT,SetData,FORMATETC*,pformatetc,STGMEDIUM*,pmedium,BOOL,fRelease) \
6204 ICOM_METHOD2 (HRESULT,EnumFormatEtc,DWORD,dwDirection,IEnumFORMATETC**,ppenumFormatEtc) \
6205 ICOM_METHOD4 (HRESULT,DAdvise,FORMATETC*,pformatetc,DWORD,advf,IAdviseSink*,pAdvSink,DWORD*,pdwConnection) \
6206 ICOM_METHOD1 (HRESULT,DUnadvise,DWORD,dwConnection) \
6207 ICOM_METHOD1 (HRESULT,EnumDAdvise,IEnumSTATDATA**,ppenumAdvise)
6209 /*** IUnknown methods ***/
6210 #define IDataObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6211 #define IDataObject_AddRef(p) (p)->lpVtbl->AddRef(p)
6212 #define IDataObject_Release(p) (p)->lpVtbl->Release(p)
6213 /*** IDataObject methods ***/
6214 #define IDataObject_GetData(p,a,b) (p)->lpVtbl->GetData(p,a,b)
6215 #define IDataObject_GetDataHere(p,a,b) (p)->lpVtbl->GetDataHere(p,a,b)
6216 #define IDataObject_QueryGetData(p,a) (p)->lpVtbl->QueryGetData(p,a)
6217 #define IDataObject_GetCanonicalFormatEtc(p,a,b) (p)->lpVtbl->GetCanonicalFormatEtc(p,a,b)
6218 #define IDataObject_SetData(p,a,b,c) (p)->lpVtbl->SetData(p,a,b,c)
6219 #define IDataObject_EnumFormatEtc(p,a,b) (p)->lpVtbl->EnumFormatEtc(p,a,b)
6220 #define IDataObject_DAdvise(p,a,b,c,d) (p)->lpVtbl->DAdvise(p,a,b,c,d)
6221 #define IDataObject_DUnadvise(p,a) (p)->lpVtbl->DUnadvise(p,a)
6222 #define IDataObject_EnumDAdvise(p,a) (p)->lpVtbl->EnumDAdvise(p,a)
6224 #endif
6226 HRESULT CALLBACK IDataObject_RemoteGetData_Proxy(
6227 IDataObject* This,
6228 FORMATETC* pformatetcIn,
6229 STGMEDIUM* pRemoteMedium);
6230 void __RPC_STUB IDataObject_RemoteGetData_Stub(
6231 struct IRpcStubBuffer* This,
6232 struct IRpcChannelBuffer* pRpcChannelBuffer,
6233 PRPC_MESSAGE pRpcMessage,
6234 DWORD* pdwStubPhase);
6235 HRESULT CALLBACK IDataObject_GetData_Proxy(
6236 IDataObject* This,
6237 FORMATETC* pformatetcIn,
6238 STGMEDIUM* pmedium);
6239 HRESULT __RPC_STUB IDataObject_GetData_Stub(
6240 IDataObject* This,
6241 FORMATETC* pformatetcIn,
6242 STGMEDIUM* pRemoteMedium);
6243 HRESULT CALLBACK IDataObject_RemoteGetDataHere_Proxy(
6244 IDataObject* This,
6245 FORMATETC* pformatetc,
6246 STGMEDIUM* pRemoteMedium);
6247 void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
6248 struct IRpcStubBuffer* This,
6249 struct IRpcChannelBuffer* pRpcChannelBuffer,
6250 PRPC_MESSAGE pRpcMessage,
6251 DWORD* pdwStubPhase);
6252 HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
6253 IDataObject* This,
6254 FORMATETC* pformatetc,
6255 STGMEDIUM* pmedium);
6256 HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
6257 IDataObject* This,
6258 FORMATETC* pformatetc,
6259 STGMEDIUM* pRemoteMedium);
6260 HRESULT CALLBACK IDataObject_QueryGetData_Proxy(
6261 IDataObject* This,
6262 FORMATETC* pformatetc);
6263 void __RPC_STUB IDataObject_QueryGetData_Stub(
6264 struct IRpcStubBuffer* This,
6265 struct IRpcChannelBuffer* pRpcChannelBuffer,
6266 PRPC_MESSAGE pRpcMessage,
6267 DWORD* pdwStubPhase);
6268 HRESULT CALLBACK IDataObject_GetCanonicalFormatEtc_Proxy(
6269 IDataObject* This,
6270 FORMATETC* pformatectIn,
6271 FORMATETC* pformatetcOut);
6272 void __RPC_STUB IDataObject_GetCanonicalFormatEtc_Stub(
6273 struct IRpcStubBuffer* This,
6274 struct IRpcChannelBuffer* pRpcChannelBuffer,
6275 PRPC_MESSAGE pRpcMessage,
6276 DWORD* pdwStubPhase);
6277 HRESULT CALLBACK IDataObject_RemoteSetData_Proxy(
6278 IDataObject* This,
6279 FORMATETC* pformatetc,
6280 FLAG_STGMEDIUM* pmedium,
6281 BOOL fRelease);
6282 void __RPC_STUB IDataObject_RemoteSetData_Stub(
6283 struct IRpcStubBuffer* This,
6284 struct IRpcChannelBuffer* pRpcChannelBuffer,
6285 PRPC_MESSAGE pRpcMessage,
6286 DWORD* pdwStubPhase);
6287 HRESULT CALLBACK IDataObject_SetData_Proxy(
6288 IDataObject* This,
6289 FORMATETC* pformatetc,
6290 STGMEDIUM* pmedium,
6291 BOOL fRelease);
6292 HRESULT __RPC_STUB IDataObject_SetData_Stub(
6293 IDataObject* This,
6294 FORMATETC* pformatetc,
6295 FLAG_STGMEDIUM* pmedium,
6296 BOOL fRelease);
6297 HRESULT CALLBACK IDataObject_EnumFormatEtc_Proxy(
6298 IDataObject* This,
6299 DWORD dwDirection,
6300 IEnumFORMATETC** ppenumFormatEtc);
6301 void __RPC_STUB IDataObject_EnumFormatEtc_Stub(
6302 struct IRpcStubBuffer* This,
6303 struct IRpcChannelBuffer* pRpcChannelBuffer,
6304 PRPC_MESSAGE pRpcMessage,
6305 DWORD* pdwStubPhase);
6306 HRESULT CALLBACK IDataObject_DAdvise_Proxy(
6307 IDataObject* This,
6308 FORMATETC* pformatetc,
6309 DWORD advf,
6310 IAdviseSink* pAdvSink,
6311 DWORD* pdwConnection);
6312 void __RPC_STUB IDataObject_DAdvise_Stub(
6313 struct IRpcStubBuffer* This,
6314 struct IRpcChannelBuffer* pRpcChannelBuffer,
6315 PRPC_MESSAGE pRpcMessage,
6316 DWORD* pdwStubPhase);
6317 HRESULT CALLBACK IDataObject_DUnadvise_Proxy(
6318 IDataObject* This,
6319 DWORD dwConnection);
6320 void __RPC_STUB IDataObject_DUnadvise_Stub(
6321 struct IRpcStubBuffer* This,
6322 struct IRpcChannelBuffer* pRpcChannelBuffer,
6323 PRPC_MESSAGE pRpcMessage,
6324 DWORD* pdwStubPhase);
6325 HRESULT CALLBACK IDataObject_EnumDAdvise_Proxy(
6326 IDataObject* This,
6327 IEnumSTATDATA** ppenumAdvise);
6328 void __RPC_STUB IDataObject_EnumDAdvise_Stub(
6329 struct IRpcStubBuffer* This,
6330 struct IRpcChannelBuffer* pRpcChannelBuffer,
6331 PRPC_MESSAGE pRpcMessage,
6332 DWORD* pdwStubPhase);
6334 typedef struct IDataAdviseHolder IDataAdviseHolder;
6335 typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
6337 /*****************************************************************************
6338 * IDataAdviseHolder interface
6340 DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6341 #if defined(__cplusplus) && !defined(CINTERFACE)
6342 struct IDataAdviseHolder: IUnknown {
6344 virtual HRESULT CALLBACK Advise(
6345 IDataObject* pDataObject,
6346 FORMATETC* pFetc,
6347 DWORD advf,
6348 IAdviseSink* pAdvise,
6349 DWORD* pdwConnection) = 0;
6351 virtual HRESULT CALLBACK Unadvise(
6352 DWORD dwConnection) = 0;
6354 virtual HRESULT CALLBACK EnumAdvise(
6355 IEnumSTATDATA** ppenumAdvise) = 0;
6357 virtual HRESULT CALLBACK SendOnDataChange(
6358 IDataObject* pDataObject,
6359 DWORD dwReserved,
6360 DWORD advf) = 0;
6362 } ICOM_COM_INTERFACE_ATTRIBUTE;
6363 #else
6364 typedef struct IDataAdviseHolderVtbl IDataAdviseHolderVtbl;
6365 struct IDataAdviseHolder {
6366 const IDataAdviseHolderVtbl* lpVtbl;
6368 struct IDataAdviseHolderVtbl {
6369 ICOM_MSVTABLE_COMPAT_FIELDS
6371 /*** IUnknown methods ***/
6372 HRESULT (CALLBACK *QueryInterface)(
6373 IDataAdviseHolder* This,
6374 REFIID riid,
6375 void** ppvObject);
6377 ULONG (CALLBACK *AddRef)(
6378 IDataAdviseHolder* This);
6380 ULONG (CALLBACK *Release)(
6381 IDataAdviseHolder* This);
6383 /*** IDataAdviseHolder methods ***/
6384 HRESULT (CALLBACK *Advise)(
6385 IDataAdviseHolder* This,
6386 IDataObject* pDataObject,
6387 FORMATETC* pFetc,
6388 DWORD advf,
6389 IAdviseSink* pAdvise,
6390 DWORD* pdwConnection);
6392 HRESULT (CALLBACK *Unadvise)(
6393 IDataAdviseHolder* This,
6394 DWORD dwConnection);
6396 HRESULT (CALLBACK *EnumAdvise)(
6397 IDataAdviseHolder* This,
6398 IEnumSTATDATA** ppenumAdvise);
6400 HRESULT (CALLBACK *SendOnDataChange)(
6401 IDataAdviseHolder* This,
6402 IDataObject* pDataObject,
6403 DWORD dwReserved,
6404 DWORD advf);
6408 #define IDataAdviseHolder_IMETHODS \
6409 IUnknown_IMETHODS \
6410 ICOM_METHOD5 (HRESULT,Advise,IDataObject*,pDataObject,FORMATETC*,pFetc,DWORD,advf,IAdviseSink*,pAdvise,DWORD*,pdwConnection) \
6411 ICOM_METHOD1 (HRESULT,Unadvise,DWORD,dwConnection) \
6412 ICOM_METHOD1 (HRESULT,EnumAdvise,IEnumSTATDATA**,ppenumAdvise) \
6413 ICOM_METHOD3 (HRESULT,SendOnDataChange,IDataObject*,pDataObject,DWORD,dwReserved,DWORD,advf)
6415 /*** IUnknown methods ***/
6416 #define IDataAdviseHolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6417 #define IDataAdviseHolder_AddRef(p) (p)->lpVtbl->AddRef(p)
6418 #define IDataAdviseHolder_Release(p) (p)->lpVtbl->Release(p)
6419 /*** IDataAdviseHolder methods ***/
6420 #define IDataAdviseHolder_Advise(p,a,b,c,d,e) (p)->lpVtbl->Advise(p,a,b,c,d,e)
6421 #define IDataAdviseHolder_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
6422 #define IDataAdviseHolder_EnumAdvise(p,a) (p)->lpVtbl->EnumAdvise(p,a)
6423 #define IDataAdviseHolder_SendOnDataChange(p,a,b,c) (p)->lpVtbl->SendOnDataChange(p,a,b,c)
6425 #endif
6427 HRESULT CALLBACK IDataAdviseHolder_Advise_Proxy(
6428 IDataAdviseHolder* This,
6429 IDataObject* pDataObject,
6430 FORMATETC* pFetc,
6431 DWORD advf,
6432 IAdviseSink* pAdvise,
6433 DWORD* pdwConnection);
6434 void __RPC_STUB IDataAdviseHolder_Advise_Stub(
6435 struct IRpcStubBuffer* This,
6436 struct IRpcChannelBuffer* pRpcChannelBuffer,
6437 PRPC_MESSAGE pRpcMessage,
6438 DWORD* pdwStubPhase);
6439 HRESULT CALLBACK IDataAdviseHolder_Unadvise_Proxy(
6440 IDataAdviseHolder* This,
6441 DWORD dwConnection);
6442 void __RPC_STUB IDataAdviseHolder_Unadvise_Stub(
6443 struct IRpcStubBuffer* This,
6444 struct IRpcChannelBuffer* pRpcChannelBuffer,
6445 PRPC_MESSAGE pRpcMessage,
6446 DWORD* pdwStubPhase);
6447 HRESULT CALLBACK IDataAdviseHolder_EnumAdvise_Proxy(
6448 IDataAdviseHolder* This,
6449 IEnumSTATDATA** ppenumAdvise);
6450 void __RPC_STUB IDataAdviseHolder_EnumAdvise_Stub(
6451 struct IRpcStubBuffer* This,
6452 struct IRpcChannelBuffer* pRpcChannelBuffer,
6453 PRPC_MESSAGE pRpcMessage,
6454 DWORD* pdwStubPhase);
6455 HRESULT CALLBACK IDataAdviseHolder_SendOnDataChange_Proxy(
6456 IDataAdviseHolder* This,
6457 IDataObject* pDataObject,
6458 DWORD dwReserved,
6459 DWORD advf);
6460 void __RPC_STUB IDataAdviseHolder_SendOnDataChange_Stub(
6461 struct IRpcStubBuffer* This,
6462 struct IRpcChannelBuffer* pRpcChannelBuffer,
6463 PRPC_MESSAGE pRpcMessage,
6464 DWORD* pdwStubPhase);
6466 typedef struct IMessageFilter IMessageFilter;
6467 typedef IMessageFilter *LPMESSAGEFILTER;
6469 typedef enum tagCALLTYPE {
6470 CALLTYPE_TOPLEVEL = 1,
6471 CALLTYPE_NESTED = 2,
6472 CALLTYPE_ASYNC = 3,
6473 CALLTYPE_TOPLEVEL_CALLPENDING = 4,
6474 CALLTYPE_ASYNC_CALLPENDING = 5
6475 } CALLTYPE;
6477 typedef enum tagSERVERCALL {
6478 SERVERCALL_ISHANDLED = 0,
6479 SERVERCALL_REJECTED = 1,
6480 SERVERCALL_RETRYLATER = 2
6481 } SERVERCALL;
6483 typedef enum tagPENDINGTYPE {
6484 PENDINGTYPE_TOPLEVEL = 1,
6485 PENDINGTYPE_NESTED = 2
6486 } PENDINGTYPE;
6488 typedef enum tagPENDINGMSG {
6489 PENDINGMSG_CANCELCALL = 0,
6490 PENDINGMSG_WAITNOPROCESS = 1,
6491 PENDINGMSG_WAITDEFPROCESS = 2
6492 } PENDINGMSG;
6494 typedef struct tagINTERFACEINFO {
6495 IUnknown *pUnk;
6496 IID iid;
6497 WORD wMethod;
6498 } INTERFACEINFO, *LPINTERFACEINFO;
6500 /*****************************************************************************
6501 * IMessageFilter interface
6503 DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6504 #if defined(__cplusplus) && !defined(CINTERFACE)
6505 struct IMessageFilter: IUnknown {
6507 virtual DWORD CALLBACK HandleInComingCall(
6508 DWORD dwCallType,
6509 HTASK htaskCaller,
6510 DWORD dwTickCount,
6511 LPINTERFACEINFO lpInterfaceInfo) = 0;
6513 virtual DWORD CALLBACK RetryRejectedCall(
6514 HTASK htaskCallee,
6515 DWORD dwTickCount,
6516 DWORD dwRejectType) = 0;
6518 virtual DWORD CALLBACK MessagePending(
6519 HTASK htaskCallee,
6520 DWORD dwTickCount,
6521 DWORD dwPendingType) = 0;
6523 } ICOM_COM_INTERFACE_ATTRIBUTE;
6524 #else
6525 typedef struct IMessageFilterVtbl IMessageFilterVtbl;
6526 struct IMessageFilter {
6527 const IMessageFilterVtbl* lpVtbl;
6529 struct IMessageFilterVtbl {
6530 ICOM_MSVTABLE_COMPAT_FIELDS
6532 /*** IUnknown methods ***/
6533 HRESULT (CALLBACK *QueryInterface)(
6534 IMessageFilter* This,
6535 REFIID riid,
6536 void** ppvObject);
6538 ULONG (CALLBACK *AddRef)(
6539 IMessageFilter* This);
6541 ULONG (CALLBACK *Release)(
6542 IMessageFilter* This);
6544 /*** IMessageFilter methods ***/
6545 DWORD (CALLBACK *HandleInComingCall)(
6546 IMessageFilter* This,
6547 DWORD dwCallType,
6548 HTASK htaskCaller,
6549 DWORD dwTickCount,
6550 LPINTERFACEINFO lpInterfaceInfo);
6552 DWORD (CALLBACK *RetryRejectedCall)(
6553 IMessageFilter* This,
6554 HTASK htaskCallee,
6555 DWORD dwTickCount,
6556 DWORD dwRejectType);
6558 DWORD (CALLBACK *MessagePending)(
6559 IMessageFilter* This,
6560 HTASK htaskCallee,
6561 DWORD dwTickCount,
6562 DWORD dwPendingType);
6566 #define IMessageFilter_IMETHODS \
6567 IUnknown_IMETHODS \
6568 ICOM_METHOD4 (DWORD,HandleInComingCall,DWORD,dwCallType,HTASK,htaskCaller,DWORD,dwTickCount,LPINTERFACEINFO,lpInterfaceInfo) \
6569 ICOM_METHOD3 (DWORD,RetryRejectedCall,HTASK,htaskCallee,DWORD,dwTickCount,DWORD,dwRejectType) \
6570 ICOM_METHOD3 (DWORD,MessagePending,HTASK,htaskCallee,DWORD,dwTickCount,DWORD,dwPendingType)
6572 /*** IUnknown methods ***/
6573 #define IMessageFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6574 #define IMessageFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
6575 #define IMessageFilter_Release(p) (p)->lpVtbl->Release(p)
6576 /*** IMessageFilter methods ***/
6577 #define IMessageFilter_HandleInComingCall(p,a,b,c,d) (p)->lpVtbl->HandleInComingCall(p,a,b,c,d)
6578 #define IMessageFilter_RetryRejectedCall(p,a,b,c) (p)->lpVtbl->RetryRejectedCall(p,a,b,c)
6579 #define IMessageFilter_MessagePending(p,a,b,c) (p)->lpVtbl->MessagePending(p,a,b,c)
6581 #endif
6583 DWORD CALLBACK IMessageFilter_HandleInComingCall_Proxy(
6584 IMessageFilter* This,
6585 DWORD dwCallType,
6586 HTASK htaskCaller,
6587 DWORD dwTickCount,
6588 LPINTERFACEINFO lpInterfaceInfo);
6589 void __RPC_STUB IMessageFilter_HandleInComingCall_Stub(
6590 struct IRpcStubBuffer* This,
6591 struct IRpcChannelBuffer* pRpcChannelBuffer,
6592 PRPC_MESSAGE pRpcMessage,
6593 DWORD* pdwStubPhase);
6594 DWORD CALLBACK IMessageFilter_RetryRejectedCall_Proxy(
6595 IMessageFilter* This,
6596 HTASK htaskCallee,
6597 DWORD dwTickCount,
6598 DWORD dwRejectType);
6599 void __RPC_STUB IMessageFilter_RetryRejectedCall_Stub(
6600 struct IRpcStubBuffer* This,
6601 struct IRpcChannelBuffer* pRpcChannelBuffer,
6602 PRPC_MESSAGE pRpcMessage,
6603 DWORD* pdwStubPhase);
6604 DWORD CALLBACK IMessageFilter_MessagePending_Proxy(
6605 IMessageFilter* This,
6606 HTASK htaskCallee,
6607 DWORD dwTickCount,
6608 DWORD dwPendingType);
6609 void __RPC_STUB IMessageFilter_MessagePending_Stub(
6610 struct IRpcStubBuffer* This,
6611 struct IRpcChannelBuffer* pRpcChannelBuffer,
6612 PRPC_MESSAGE pRpcMessage,
6613 DWORD* pdwStubPhase);
6615 typedef struct IRpcChannelBuffer IRpcChannelBuffer;
6616 typedef IRpcChannelBuffer *LPRPCCHANNELBUFFER;
6618 typedef unsigned long RPCOLEDATAREP;
6620 typedef struct tagRPCOLEMESSAGE {
6621 void *reserved1;
6622 RPCOLEDATAREP dataRepresentation;
6623 void *Buffer;
6624 ULONG cbBuffer;
6625 ULONG iMethod;
6626 void *reserved2[5];
6627 ULONG rpcFlags;
6628 } RPCOLEMESSAGE;
6630 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
6632 /*****************************************************************************
6633 * IRpcChannelBuffer interface
6635 DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
6636 #if defined(__cplusplus) && !defined(CINTERFACE)
6637 struct IRpcChannelBuffer: IUnknown {
6639 virtual HRESULT CALLBACK GetBuffer(
6640 RPCOLEMESSAGE* pMessage,
6641 REFIID riid) = 0;
6643 virtual HRESULT CALLBACK SendReceive(
6644 RPCOLEMESSAGE* pMessage,
6645 ULONG* pStatus) = 0;
6647 virtual HRESULT CALLBACK FreeBuffer(
6648 RPCOLEMESSAGE* pMessage) = 0;
6650 virtual HRESULT CALLBACK GetDestCtx(
6651 DWORD* pdwDestContext,
6652 void** ppvDestContext) = 0;
6654 virtual HRESULT CALLBACK IsConnected(
6655 ) = 0;
6657 } ICOM_COM_INTERFACE_ATTRIBUTE;
6658 #else
6659 typedef struct IRpcChannelBufferVtbl IRpcChannelBufferVtbl;
6660 struct IRpcChannelBuffer {
6661 const IRpcChannelBufferVtbl* lpVtbl;
6663 struct IRpcChannelBufferVtbl {
6664 ICOM_MSVTABLE_COMPAT_FIELDS
6666 /*** IUnknown methods ***/
6667 HRESULT (CALLBACK *QueryInterface)(
6668 IRpcChannelBuffer* This,
6669 REFIID riid,
6670 void** ppvObject);
6672 ULONG (CALLBACK *AddRef)(
6673 IRpcChannelBuffer* This);
6675 ULONG (CALLBACK *Release)(
6676 IRpcChannelBuffer* This);
6678 /*** IRpcChannelBuffer methods ***/
6679 HRESULT (CALLBACK *GetBuffer)(
6680 IRpcChannelBuffer* This,
6681 RPCOLEMESSAGE* pMessage,
6682 REFIID riid);
6684 HRESULT (CALLBACK *SendReceive)(
6685 IRpcChannelBuffer* This,
6686 RPCOLEMESSAGE* pMessage,
6687 ULONG* pStatus);
6689 HRESULT (CALLBACK *FreeBuffer)(
6690 IRpcChannelBuffer* This,
6691 RPCOLEMESSAGE* pMessage);
6693 HRESULT (CALLBACK *GetDestCtx)(
6694 IRpcChannelBuffer* This,
6695 DWORD* pdwDestContext,
6696 void** ppvDestContext);
6698 HRESULT (CALLBACK *IsConnected)(
6699 IRpcChannelBuffer* This);
6703 #define IRpcChannelBuffer_IMETHODS \
6704 IUnknown_IMETHODS \
6705 ICOM_METHOD2 (HRESULT,GetBuffer,RPCOLEMESSAGE*,pMessage,REFIID,riid) \
6706 ICOM_METHOD2 (HRESULT,SendReceive,RPCOLEMESSAGE*,pMessage,ULONG*,pStatus) \
6707 ICOM_METHOD1 (HRESULT,FreeBuffer,RPCOLEMESSAGE*,pMessage) \
6708 ICOM_METHOD2 (HRESULT,GetDestCtx,DWORD*,pdwDestContext,void**,ppvDestContext) \
6709 ICOM_METHOD (HRESULT,IsConnected)
6711 /*** IUnknown methods ***/
6712 #define IRpcChannelBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6713 #define IRpcChannelBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
6714 #define IRpcChannelBuffer_Release(p) (p)->lpVtbl->Release(p)
6715 /*** IRpcChannelBuffer methods ***/
6716 #define IRpcChannelBuffer_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6717 #define IRpcChannelBuffer_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6718 #define IRpcChannelBuffer_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6719 #define IRpcChannelBuffer_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6720 #define IRpcChannelBuffer_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6722 #endif
6724 HRESULT CALLBACK IRpcChannelBuffer_GetBuffer_Proxy(
6725 IRpcChannelBuffer* This,
6726 RPCOLEMESSAGE* pMessage,
6727 REFIID riid);
6728 void __RPC_STUB IRpcChannelBuffer_GetBuffer_Stub(
6729 struct IRpcStubBuffer* This,
6730 struct IRpcChannelBuffer* pRpcChannelBuffer,
6731 PRPC_MESSAGE pRpcMessage,
6732 DWORD* pdwStubPhase);
6733 HRESULT CALLBACK IRpcChannelBuffer_SendReceive_Proxy(
6734 IRpcChannelBuffer* This,
6735 RPCOLEMESSAGE* pMessage,
6736 ULONG* pStatus);
6737 void __RPC_STUB IRpcChannelBuffer_SendReceive_Stub(
6738 struct IRpcStubBuffer* This,
6739 struct IRpcChannelBuffer* pRpcChannelBuffer,
6740 PRPC_MESSAGE pRpcMessage,
6741 DWORD* pdwStubPhase);
6742 HRESULT CALLBACK IRpcChannelBuffer_FreeBuffer_Proxy(
6743 IRpcChannelBuffer* This,
6744 RPCOLEMESSAGE* pMessage);
6745 void __RPC_STUB IRpcChannelBuffer_FreeBuffer_Stub(
6746 struct IRpcStubBuffer* This,
6747 struct IRpcChannelBuffer* pRpcChannelBuffer,
6748 PRPC_MESSAGE pRpcMessage,
6749 DWORD* pdwStubPhase);
6750 HRESULT CALLBACK IRpcChannelBuffer_GetDestCtx_Proxy(
6751 IRpcChannelBuffer* This,
6752 DWORD* pdwDestContext,
6753 void** ppvDestContext);
6754 void __RPC_STUB IRpcChannelBuffer_GetDestCtx_Stub(
6755 struct IRpcStubBuffer* This,
6756 struct IRpcChannelBuffer* pRpcChannelBuffer,
6757 PRPC_MESSAGE pRpcMessage,
6758 DWORD* pdwStubPhase);
6759 HRESULT CALLBACK IRpcChannelBuffer_IsConnected_Proxy(
6760 IRpcChannelBuffer* This);
6761 void __RPC_STUB IRpcChannelBuffer_IsConnected_Stub(
6762 struct IRpcStubBuffer* This,
6763 struct IRpcChannelBuffer* pRpcChannelBuffer,
6764 PRPC_MESSAGE pRpcMessage,
6765 DWORD* pdwStubPhase);
6767 typedef struct IRpcChannelBuffer2 IRpcChannelBuffer2;
6768 typedef IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2;
6770 /*****************************************************************************
6771 * IRpcChannelBuffer2 interface
6773 DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
6774 #if defined(__cplusplus) && !defined(CINTERFACE)
6775 struct IRpcChannelBuffer2: IRpcChannelBuffer {
6777 virtual HRESULT CALLBACK GetProtocolVersion(
6778 DWORD* pdwVersion) = 0;
6780 } ICOM_COM_INTERFACE_ATTRIBUTE;
6781 #else
6782 typedef struct IRpcChannelBuffer2Vtbl IRpcChannelBuffer2Vtbl;
6783 struct IRpcChannelBuffer2 {
6784 const IRpcChannelBuffer2Vtbl* lpVtbl;
6786 struct IRpcChannelBuffer2Vtbl {
6787 ICOM_MSVTABLE_COMPAT_FIELDS
6789 /*** IUnknown methods ***/
6790 HRESULT (CALLBACK *QueryInterface)(
6791 IRpcChannelBuffer2* This,
6792 REFIID riid,
6793 void** ppvObject);
6795 ULONG (CALLBACK *AddRef)(
6796 IRpcChannelBuffer2* This);
6798 ULONG (CALLBACK *Release)(
6799 IRpcChannelBuffer2* This);
6801 /*** IRpcChannelBuffer methods ***/
6802 HRESULT (CALLBACK *GetBuffer)(
6803 IRpcChannelBuffer2* This,
6804 RPCOLEMESSAGE* pMessage,
6805 REFIID riid);
6807 HRESULT (CALLBACK *SendReceive)(
6808 IRpcChannelBuffer2* This,
6809 RPCOLEMESSAGE* pMessage,
6810 ULONG* pStatus);
6812 HRESULT (CALLBACK *FreeBuffer)(
6813 IRpcChannelBuffer2* This,
6814 RPCOLEMESSAGE* pMessage);
6816 HRESULT (CALLBACK *GetDestCtx)(
6817 IRpcChannelBuffer2* This,
6818 DWORD* pdwDestContext,
6819 void** ppvDestContext);
6821 HRESULT (CALLBACK *IsConnected)(
6822 IRpcChannelBuffer2* This);
6824 /*** IRpcChannelBuffer2 methods ***/
6825 HRESULT (CALLBACK *GetProtocolVersion)(
6826 IRpcChannelBuffer2* This,
6827 DWORD* pdwVersion);
6831 #define IRpcChannelBuffer2_IMETHODS \
6832 IRpcChannelBuffer_IMETHODS \
6833 ICOM_METHOD1 (HRESULT,GetProtocolVersion,DWORD*,pdwVersion)
6835 /*** IUnknown methods ***/
6836 #define IRpcChannelBuffer2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6837 #define IRpcChannelBuffer2_AddRef(p) (p)->lpVtbl->AddRef(p)
6838 #define IRpcChannelBuffer2_Release(p) (p)->lpVtbl->Release(p)
6839 /*** IRpcChannelBuffer methods ***/
6840 #define IRpcChannelBuffer2_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6841 #define IRpcChannelBuffer2_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6842 #define IRpcChannelBuffer2_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6843 #define IRpcChannelBuffer2_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6844 #define IRpcChannelBuffer2_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6845 /*** IRpcChannelBuffer2 methods ***/
6846 #define IRpcChannelBuffer2_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
6848 #endif
6850 HRESULT CALLBACK IRpcChannelBuffer2_GetProtocolVersion_Proxy(
6851 IRpcChannelBuffer2* This,
6852 DWORD* pdwVersion);
6853 void __RPC_STUB IRpcChannelBuffer2_GetProtocolVersion_Stub(
6854 struct IRpcStubBuffer* This,
6855 struct IRpcChannelBuffer* pRpcChannelBuffer,
6856 PRPC_MESSAGE pRpcMessage,
6857 DWORD* pdwStubPhase);
6859 typedef struct IRpcChannelBuffer3 IRpcChannelBuffer3;
6860 typedef IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3;
6862 /*****************************************************************************
6863 * IRpcChannelBuffer3 interface
6865 DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
6866 #if defined(__cplusplus) && !defined(CINTERFACE)
6867 struct IRpcChannelBuffer3: IRpcChannelBuffer2 {
6869 virtual HRESULT CALLBACK Send(
6870 RPCOLEMESSAGE* pMsg,
6871 ULONG* pulStatus) = 0;
6873 virtual HRESULT CALLBACK Receive(
6874 RPCOLEMESSAGE* pMsg,
6875 ULONG ulSize,
6876 ULONG* pulStatus) = 0;
6878 virtual HRESULT CALLBACK Cancel(
6879 RPCOLEMESSAGE* pMsg) = 0;
6881 virtual HRESULT CALLBACK GetCallContext(
6882 RPCOLEMESSAGE* pMsg,
6883 REFIID riid,
6884 void** pInterface) = 0;
6886 virtual HRESULT CALLBACK GetDestCtxEx(
6887 RPCOLEMESSAGE* pMsg,
6888 DWORD* pdwDestContext,
6889 void** ppvDestContext) = 0;
6891 virtual HRESULT CALLBACK GetState(
6892 RPCOLEMESSAGE* pMsg,
6893 DWORD* pState) = 0;
6895 virtual HRESULT CALLBACK RegisterAsync(
6896 RPCOLEMESSAGE* pMsg,
6897 IAsyncManager* pAsyncMgr) = 0;
6899 } ICOM_COM_INTERFACE_ATTRIBUTE;
6900 #else
6901 typedef struct IRpcChannelBuffer3Vtbl IRpcChannelBuffer3Vtbl;
6902 struct IRpcChannelBuffer3 {
6903 const IRpcChannelBuffer3Vtbl* lpVtbl;
6905 struct IRpcChannelBuffer3Vtbl {
6906 ICOM_MSVTABLE_COMPAT_FIELDS
6908 /*** IUnknown methods ***/
6909 HRESULT (CALLBACK *QueryInterface)(
6910 IRpcChannelBuffer3* This,
6911 REFIID riid,
6912 void** ppvObject);
6914 ULONG (CALLBACK *AddRef)(
6915 IRpcChannelBuffer3* This);
6917 ULONG (CALLBACK *Release)(
6918 IRpcChannelBuffer3* This);
6920 /*** IRpcChannelBuffer methods ***/
6921 HRESULT (CALLBACK *GetBuffer)(
6922 IRpcChannelBuffer3* This,
6923 RPCOLEMESSAGE* pMessage,
6924 REFIID riid);
6926 HRESULT (CALLBACK *SendReceive)(
6927 IRpcChannelBuffer3* This,
6928 RPCOLEMESSAGE* pMessage,
6929 ULONG* pStatus);
6931 HRESULT (CALLBACK *FreeBuffer)(
6932 IRpcChannelBuffer3* This,
6933 RPCOLEMESSAGE* pMessage);
6935 HRESULT (CALLBACK *GetDestCtx)(
6936 IRpcChannelBuffer3* This,
6937 DWORD* pdwDestContext,
6938 void** ppvDestContext);
6940 HRESULT (CALLBACK *IsConnected)(
6941 IRpcChannelBuffer3* This);
6943 /*** IRpcChannelBuffer2 methods ***/
6944 HRESULT (CALLBACK *GetProtocolVersion)(
6945 IRpcChannelBuffer3* This,
6946 DWORD* pdwVersion);
6948 /*** IRpcChannelBuffer3 methods ***/
6949 HRESULT (CALLBACK *Send)(
6950 IRpcChannelBuffer3* This,
6951 RPCOLEMESSAGE* pMsg,
6952 ULONG* pulStatus);
6954 HRESULT (CALLBACK *Receive)(
6955 IRpcChannelBuffer3* This,
6956 RPCOLEMESSAGE* pMsg,
6957 ULONG ulSize,
6958 ULONG* pulStatus);
6960 HRESULT (CALLBACK *Cancel)(
6961 IRpcChannelBuffer3* This,
6962 RPCOLEMESSAGE* pMsg);
6964 HRESULT (CALLBACK *GetCallContext)(
6965 IRpcChannelBuffer3* This,
6966 RPCOLEMESSAGE* pMsg,
6967 REFIID riid,
6968 void** pInterface);
6970 HRESULT (CALLBACK *GetDestCtxEx)(
6971 IRpcChannelBuffer3* This,
6972 RPCOLEMESSAGE* pMsg,
6973 DWORD* pdwDestContext,
6974 void** ppvDestContext);
6976 HRESULT (CALLBACK *GetState)(
6977 IRpcChannelBuffer3* This,
6978 RPCOLEMESSAGE* pMsg,
6979 DWORD* pState);
6981 HRESULT (CALLBACK *RegisterAsync)(
6982 IRpcChannelBuffer3* This,
6983 RPCOLEMESSAGE* pMsg,
6984 IAsyncManager* pAsyncMgr);
6988 #define IRpcChannelBuffer3_IMETHODS \
6989 IRpcChannelBuffer2_IMETHODS \
6990 ICOM_METHOD2 (HRESULT,Send,RPCOLEMESSAGE*,pMsg,ULONG*,pulStatus) \
6991 ICOM_METHOD3 (HRESULT,Receive,RPCOLEMESSAGE*,pMsg,ULONG,ulSize,ULONG*,pulStatus) \
6992 ICOM_METHOD1 (HRESULT,Cancel,RPCOLEMESSAGE*,pMsg) \
6993 ICOM_METHOD3 (HRESULT,GetCallContext,RPCOLEMESSAGE*,pMsg,REFIID,riid,void**,pInterface) \
6994 ICOM_METHOD3 (HRESULT,GetDestCtxEx,RPCOLEMESSAGE*,pMsg,DWORD*,pdwDestContext,void**,ppvDestContext) \
6995 ICOM_METHOD2 (HRESULT,GetState,RPCOLEMESSAGE*,pMsg,DWORD*,pState) \
6996 ICOM_METHOD2 (HRESULT,RegisterAsync,RPCOLEMESSAGE*,pMsg,IAsyncManager*,pAsyncMgr)
6998 /*** IUnknown methods ***/
6999 #define IRpcChannelBuffer3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7000 #define IRpcChannelBuffer3_AddRef(p) (p)->lpVtbl->AddRef(p)
7001 #define IRpcChannelBuffer3_Release(p) (p)->lpVtbl->Release(p)
7002 /*** IRpcChannelBuffer methods ***/
7003 #define IRpcChannelBuffer3_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
7004 #define IRpcChannelBuffer3_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
7005 #define IRpcChannelBuffer3_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
7006 #define IRpcChannelBuffer3_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
7007 #define IRpcChannelBuffer3_IsConnected(p) (p)->lpVtbl->IsConnected(p)
7008 /*** IRpcChannelBuffer2 methods ***/
7009 #define IRpcChannelBuffer3_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
7010 /*** IRpcChannelBuffer3 methods ***/
7011 #define IRpcChannelBuffer3_Send(p,a,b) (p)->lpVtbl->Send(p,a,b)
7012 #define IRpcChannelBuffer3_Receive(p,a,b,c) (p)->lpVtbl->Receive(p,a,b,c)
7013 #define IRpcChannelBuffer3_Cancel(p,a) (p)->lpVtbl->Cancel(p,a)
7014 #define IRpcChannelBuffer3_GetCallContext(p,a,b,c) (p)->lpVtbl->GetCallContext(p,a,b,c)
7015 #define IRpcChannelBuffer3_GetDestCtxEx(p,a,b,c) (p)->lpVtbl->GetDestCtxEx(p,a,b,c)
7016 #define IRpcChannelBuffer3_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
7017 #define IRpcChannelBuffer3_RegisterAsync(p,a,b) (p)->lpVtbl->RegisterAsync(p,a,b)
7019 #endif
7021 HRESULT CALLBACK IRpcChannelBuffer3_Send_Proxy(
7022 IRpcChannelBuffer3* This,
7023 RPCOLEMESSAGE* pMsg,
7024 ULONG* pulStatus);
7025 void __RPC_STUB IRpcChannelBuffer3_Send_Stub(
7026 struct IRpcStubBuffer* This,
7027 struct IRpcChannelBuffer* pRpcChannelBuffer,
7028 PRPC_MESSAGE pRpcMessage,
7029 DWORD* pdwStubPhase);
7030 HRESULT CALLBACK IRpcChannelBuffer3_Receive_Proxy(
7031 IRpcChannelBuffer3* This,
7032 RPCOLEMESSAGE* pMsg,
7033 ULONG ulSize,
7034 ULONG* pulStatus);
7035 void __RPC_STUB IRpcChannelBuffer3_Receive_Stub(
7036 struct IRpcStubBuffer* This,
7037 struct IRpcChannelBuffer* pRpcChannelBuffer,
7038 PRPC_MESSAGE pRpcMessage,
7039 DWORD* pdwStubPhase);
7040 HRESULT CALLBACK IRpcChannelBuffer3_Cancel_Proxy(
7041 IRpcChannelBuffer3* This,
7042 RPCOLEMESSAGE* pMsg);
7043 void __RPC_STUB IRpcChannelBuffer3_Cancel_Stub(
7044 struct IRpcStubBuffer* This,
7045 struct IRpcChannelBuffer* pRpcChannelBuffer,
7046 PRPC_MESSAGE pRpcMessage,
7047 DWORD* pdwStubPhase);
7048 HRESULT CALLBACK IRpcChannelBuffer3_GetCallContext_Proxy(
7049 IRpcChannelBuffer3* This,
7050 RPCOLEMESSAGE* pMsg,
7051 REFIID riid,
7052 void** pInterface);
7053 void __RPC_STUB IRpcChannelBuffer3_GetCallContext_Stub(
7054 struct IRpcStubBuffer* This,
7055 struct IRpcChannelBuffer* pRpcChannelBuffer,
7056 PRPC_MESSAGE pRpcMessage,
7057 DWORD* pdwStubPhase);
7058 HRESULT CALLBACK IRpcChannelBuffer3_GetDestCtxEx_Proxy(
7059 IRpcChannelBuffer3* This,
7060 RPCOLEMESSAGE* pMsg,
7061 DWORD* pdwDestContext,
7062 void** ppvDestContext);
7063 void __RPC_STUB IRpcChannelBuffer3_GetDestCtxEx_Stub(
7064 struct IRpcStubBuffer* This,
7065 struct IRpcChannelBuffer* pRpcChannelBuffer,
7066 PRPC_MESSAGE pRpcMessage,
7067 DWORD* pdwStubPhase);
7068 HRESULT CALLBACK IRpcChannelBuffer3_GetState_Proxy(
7069 IRpcChannelBuffer3* This,
7070 RPCOLEMESSAGE* pMsg,
7071 DWORD* pState);
7072 void __RPC_STUB IRpcChannelBuffer3_GetState_Stub(
7073 struct IRpcStubBuffer* This,
7074 struct IRpcChannelBuffer* pRpcChannelBuffer,
7075 PRPC_MESSAGE pRpcMessage,
7076 DWORD* pdwStubPhase);
7077 HRESULT CALLBACK IRpcChannelBuffer3_RegisterAsync_Proxy(
7078 IRpcChannelBuffer3* This,
7079 RPCOLEMESSAGE* pMsg,
7080 IAsyncManager* pAsyncMgr);
7081 void __RPC_STUB IRpcChannelBuffer3_RegisterAsync_Stub(
7082 struct IRpcStubBuffer* This,
7083 struct IRpcChannelBuffer* pRpcChannelBuffer,
7084 PRPC_MESSAGE pRpcMessage,
7085 DWORD* pdwStubPhase);
7087 typedef struct IRpcProxyBuffer IRpcProxyBuffer;
7088 typedef IRpcProxyBuffer *LPRPCPROXYBUFFER;
7090 /*****************************************************************************
7091 * IRpcProxyBuffer interface
7093 DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7094 #if defined(__cplusplus) && !defined(CINTERFACE)
7095 struct IRpcProxyBuffer: IUnknown {
7097 virtual HRESULT CALLBACK Connect(
7098 IRpcChannelBuffer* pRpcChannelBuffer) = 0;
7100 virtual void CALLBACK Disconnect(
7101 ) = 0;
7103 } ICOM_COM_INTERFACE_ATTRIBUTE;
7104 #else
7105 typedef struct IRpcProxyBufferVtbl IRpcProxyBufferVtbl;
7106 struct IRpcProxyBuffer {
7107 const IRpcProxyBufferVtbl* lpVtbl;
7109 struct IRpcProxyBufferVtbl {
7110 ICOM_MSVTABLE_COMPAT_FIELDS
7112 /*** IUnknown methods ***/
7113 HRESULT (CALLBACK *QueryInterface)(
7114 IRpcProxyBuffer* This,
7115 REFIID riid,
7116 void** ppvObject);
7118 ULONG (CALLBACK *AddRef)(
7119 IRpcProxyBuffer* This);
7121 ULONG (CALLBACK *Release)(
7122 IRpcProxyBuffer* This);
7124 /*** IRpcProxyBuffer methods ***/
7125 HRESULT (CALLBACK *Connect)(
7126 IRpcProxyBuffer* This,
7127 IRpcChannelBuffer* pRpcChannelBuffer);
7129 void (CALLBACK *Disconnect)(
7130 IRpcProxyBuffer* This);
7134 #define IRpcProxyBuffer_IMETHODS \
7135 IUnknown_IMETHODS \
7136 ICOM_METHOD1 (HRESULT,Connect,IRpcChannelBuffer*,pRpcChannelBuffer) \
7137 ICOM_VMETHOD (Disconnect)
7139 /*** IUnknown methods ***/
7140 #define IRpcProxyBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7141 #define IRpcProxyBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7142 #define IRpcProxyBuffer_Release(p) (p)->lpVtbl->Release(p)
7143 /*** IRpcProxyBuffer methods ***/
7144 #define IRpcProxyBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7145 #define IRpcProxyBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7147 #endif
7149 HRESULT CALLBACK IRpcProxyBuffer_Connect_Proxy(
7150 IRpcProxyBuffer* This,
7151 IRpcChannelBuffer* pRpcChannelBuffer);
7152 void __RPC_STUB IRpcProxyBuffer_Connect_Stub(
7153 struct IRpcStubBuffer* This,
7154 struct IRpcChannelBuffer* pRpcChannelBuffer,
7155 PRPC_MESSAGE pRpcMessage,
7156 DWORD* pdwStubPhase);
7157 void CALLBACK IRpcProxyBuffer_Disconnect_Proxy(
7158 IRpcProxyBuffer* This);
7159 void __RPC_STUB IRpcProxyBuffer_Disconnect_Stub(
7160 struct IRpcStubBuffer* This,
7161 struct IRpcChannelBuffer* pRpcChannelBuffer,
7162 PRPC_MESSAGE pRpcMessage,
7163 DWORD* pdwStubPhase);
7165 typedef struct IRpcStubBuffer IRpcStubBuffer;
7166 typedef IRpcStubBuffer *LPRPCSTUBBUFFER;
7168 /*****************************************************************************
7169 * IRpcStubBuffer interface
7171 DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7172 #if defined(__cplusplus) && !defined(CINTERFACE)
7173 struct IRpcStubBuffer: IUnknown {
7175 virtual HRESULT CALLBACK Connect(
7176 IUnknown* pUnkServer) = 0;
7178 virtual void CALLBACK Disconnect(
7179 ) = 0;
7181 virtual HRESULT CALLBACK Invoke(
7182 RPCOLEMESSAGE* _prpcmsg,
7183 IRpcChannelBuffer* _pRpcChannelBuffer) = 0;
7185 virtual IRpcStubBuffer* CALLBACK IsIIDSupported(
7186 REFIID riid) = 0;
7188 virtual ULONG CALLBACK CountRefs(
7189 ) = 0;
7191 virtual HRESULT CALLBACK DebugServerQueryInterface(
7192 void** ppv) = 0;
7194 virtual void CALLBACK DebugServerRelease(
7195 void* pv) = 0;
7197 } ICOM_COM_INTERFACE_ATTRIBUTE;
7198 #else
7199 typedef struct IRpcStubBufferVtbl IRpcStubBufferVtbl;
7200 struct IRpcStubBuffer {
7201 const IRpcStubBufferVtbl* lpVtbl;
7203 struct IRpcStubBufferVtbl {
7204 ICOM_MSVTABLE_COMPAT_FIELDS
7206 /*** IUnknown methods ***/
7207 HRESULT (CALLBACK *QueryInterface)(
7208 IRpcStubBuffer* This,
7209 REFIID riid,
7210 void** ppvObject);
7212 ULONG (CALLBACK *AddRef)(
7213 IRpcStubBuffer* This);
7215 ULONG (CALLBACK *Release)(
7216 IRpcStubBuffer* This);
7218 /*** IRpcStubBuffer methods ***/
7219 HRESULT (CALLBACK *Connect)(
7220 IRpcStubBuffer* This,
7221 IUnknown* pUnkServer);
7223 void (CALLBACK *Disconnect)(
7224 IRpcStubBuffer* This);
7226 HRESULT (CALLBACK *Invoke)(
7227 IRpcStubBuffer* This,
7228 RPCOLEMESSAGE* _prpcmsg,
7229 IRpcChannelBuffer* _pRpcChannelBuffer);
7231 IRpcStubBuffer* (CALLBACK *IsIIDSupported)(
7232 IRpcStubBuffer* This,
7233 REFIID riid);
7235 ULONG (CALLBACK *CountRefs)(
7236 IRpcStubBuffer* This);
7238 HRESULT (CALLBACK *DebugServerQueryInterface)(
7239 IRpcStubBuffer* This,
7240 void** ppv);
7242 void (CALLBACK *DebugServerRelease)(
7243 IRpcStubBuffer* This,
7244 void* pv);
7248 #define IRpcStubBuffer_IMETHODS \
7249 IUnknown_IMETHODS \
7250 ICOM_METHOD1 (HRESULT,Connect,IUnknown*,pUnkServer) \
7251 ICOM_VMETHOD (Disconnect) \
7252 ICOM_METHOD2 (HRESULT,Invoke,RPCOLEMESSAGE*,_prpcmsg,IRpcChannelBuffer*,_pRpcChannelBuffer) \
7253 ICOM_METHOD1 (IRpcStubBuffer*,IsIIDSupported,REFIID,riid) \
7254 ICOM_METHOD (ULONG,CountRefs) \
7255 ICOM_METHOD1 (HRESULT,DebugServerQueryInterface,void**,ppv) \
7256 ICOM_VMETHOD1(DebugServerRelease,void*,pv)
7258 /*** IUnknown methods ***/
7259 #define IRpcStubBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7260 #define IRpcStubBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7261 #define IRpcStubBuffer_Release(p) (p)->lpVtbl->Release(p)
7262 /*** IRpcStubBuffer methods ***/
7263 #define IRpcStubBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7264 #define IRpcStubBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7265 #define IRpcStubBuffer_Invoke(p,a,b) (p)->lpVtbl->Invoke(p,a,b)
7266 #define IRpcStubBuffer_IsIIDSupported(p,a) (p)->lpVtbl->IsIIDSupported(p,a)
7267 #define IRpcStubBuffer_CountRefs(p) (p)->lpVtbl->CountRefs(p)
7268 #define IRpcStubBuffer_DebugServerQueryInterface(p,a) (p)->lpVtbl->DebugServerQueryInterface(p,a)
7269 #define IRpcStubBuffer_DebugServerRelease(p,a) (p)->lpVtbl->DebugServerRelease(p,a)
7271 #endif
7273 HRESULT CALLBACK IRpcStubBuffer_Connect_Proxy(
7274 IRpcStubBuffer* This,
7275 IUnknown* pUnkServer);
7276 void __RPC_STUB IRpcStubBuffer_Connect_Stub(
7277 struct IRpcStubBuffer* This,
7278 struct IRpcChannelBuffer* pRpcChannelBuffer,
7279 PRPC_MESSAGE pRpcMessage,
7280 DWORD* pdwStubPhase);
7281 void CALLBACK IRpcStubBuffer_Disconnect_Proxy(
7282 IRpcStubBuffer* This);
7283 void __RPC_STUB IRpcStubBuffer_Disconnect_Stub(
7284 struct IRpcStubBuffer* This,
7285 struct IRpcChannelBuffer* pRpcChannelBuffer,
7286 PRPC_MESSAGE pRpcMessage,
7287 DWORD* pdwStubPhase);
7288 HRESULT CALLBACK IRpcStubBuffer_Invoke_Proxy(
7289 IRpcStubBuffer* This,
7290 RPCOLEMESSAGE* _prpcmsg,
7291 IRpcChannelBuffer* _pRpcChannelBuffer);
7292 void __RPC_STUB IRpcStubBuffer_Invoke_Stub(
7293 struct IRpcStubBuffer* This,
7294 struct IRpcChannelBuffer* pRpcChannelBuffer,
7295 PRPC_MESSAGE pRpcMessage,
7296 DWORD* pdwStubPhase);
7297 IRpcStubBuffer* CALLBACK IRpcStubBuffer_IsIIDSupported_Proxy(
7298 IRpcStubBuffer* This,
7299 REFIID riid);
7300 void __RPC_STUB IRpcStubBuffer_IsIIDSupported_Stub(
7301 struct IRpcStubBuffer* This,
7302 struct IRpcChannelBuffer* pRpcChannelBuffer,
7303 PRPC_MESSAGE pRpcMessage,
7304 DWORD* pdwStubPhase);
7305 ULONG CALLBACK IRpcStubBuffer_CountRefs_Proxy(
7306 IRpcStubBuffer* This);
7307 void __RPC_STUB IRpcStubBuffer_CountRefs_Stub(
7308 struct IRpcStubBuffer* This,
7309 struct IRpcChannelBuffer* pRpcChannelBuffer,
7310 PRPC_MESSAGE pRpcMessage,
7311 DWORD* pdwStubPhase);
7312 HRESULT CALLBACK IRpcStubBuffer_DebugServerQueryInterface_Proxy(
7313 IRpcStubBuffer* This,
7314 void** ppv);
7315 void __RPC_STUB IRpcStubBuffer_DebugServerQueryInterface_Stub(
7316 struct IRpcStubBuffer* This,
7317 struct IRpcChannelBuffer* pRpcChannelBuffer,
7318 PRPC_MESSAGE pRpcMessage,
7319 DWORD* pdwStubPhase);
7320 void CALLBACK IRpcStubBuffer_DebugServerRelease_Proxy(
7321 IRpcStubBuffer* This,
7322 void* pv);
7323 void __RPC_STUB IRpcStubBuffer_DebugServerRelease_Stub(
7324 struct IRpcStubBuffer* This,
7325 struct IRpcChannelBuffer* pRpcChannelBuffer,
7326 PRPC_MESSAGE pRpcMessage,
7327 DWORD* pdwStubPhase);
7329 typedef struct IPSFactoryBuffer IPSFactoryBuffer;
7330 typedef IPSFactoryBuffer *LPPSFACTORYBUFFER;
7332 /*****************************************************************************
7333 * IPSFactoryBuffer interface
7335 DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7336 #if defined(__cplusplus) && !defined(CINTERFACE)
7337 struct IPSFactoryBuffer: IUnknown {
7339 virtual HRESULT CALLBACK CreateProxy(
7340 IUnknown* pUnkOuter,
7341 REFIID riid,
7342 IRpcProxyBuffer** ppProxy,
7343 void** ppv) = 0;
7345 virtual HRESULT CALLBACK CreateStub(
7346 REFIID riid,
7347 IUnknown* pUnkServer,
7348 IRpcStubBuffer** ppStub) = 0;
7350 } ICOM_COM_INTERFACE_ATTRIBUTE;
7351 #else
7352 typedef struct IPSFactoryBufferVtbl IPSFactoryBufferVtbl;
7353 struct IPSFactoryBuffer {
7354 const IPSFactoryBufferVtbl* lpVtbl;
7356 struct IPSFactoryBufferVtbl {
7357 ICOM_MSVTABLE_COMPAT_FIELDS
7359 /*** IUnknown methods ***/
7360 HRESULT (CALLBACK *QueryInterface)(
7361 IPSFactoryBuffer* This,
7362 REFIID riid,
7363 void** ppvObject);
7365 ULONG (CALLBACK *AddRef)(
7366 IPSFactoryBuffer* This);
7368 ULONG (CALLBACK *Release)(
7369 IPSFactoryBuffer* This);
7371 /*** IPSFactoryBuffer methods ***/
7372 HRESULT (CALLBACK *CreateProxy)(
7373 IPSFactoryBuffer* This,
7374 IUnknown* pUnkOuter,
7375 REFIID riid,
7376 IRpcProxyBuffer** ppProxy,
7377 void** ppv);
7379 HRESULT (CALLBACK *CreateStub)(
7380 IPSFactoryBuffer* This,
7381 REFIID riid,
7382 IUnknown* pUnkServer,
7383 IRpcStubBuffer** ppStub);
7387 #define IPSFactoryBuffer_IMETHODS \
7388 IUnknown_IMETHODS \
7389 ICOM_METHOD4 (HRESULT,CreateProxy,IUnknown*,pUnkOuter,REFIID,riid,IRpcProxyBuffer**,ppProxy,void**,ppv) \
7390 ICOM_METHOD3 (HRESULT,CreateStub,REFIID,riid,IUnknown*,pUnkServer,IRpcStubBuffer**,ppStub)
7392 /*** IUnknown methods ***/
7393 #define IPSFactoryBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7394 #define IPSFactoryBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7395 #define IPSFactoryBuffer_Release(p) (p)->lpVtbl->Release(p)
7396 /*** IPSFactoryBuffer methods ***/
7397 #define IPSFactoryBuffer_CreateProxy(p,a,b,c,d) (p)->lpVtbl->CreateProxy(p,a,b,c,d)
7398 #define IPSFactoryBuffer_CreateStub(p,a,b,c) (p)->lpVtbl->CreateStub(p,a,b,c)
7400 #endif
7402 HRESULT CALLBACK IPSFactoryBuffer_CreateProxy_Proxy(
7403 IPSFactoryBuffer* This,
7404 IUnknown* pUnkOuter,
7405 REFIID riid,
7406 IRpcProxyBuffer** ppProxy,
7407 void** ppv);
7408 void __RPC_STUB IPSFactoryBuffer_CreateProxy_Stub(
7409 struct IRpcStubBuffer* This,
7410 struct IRpcChannelBuffer* pRpcChannelBuffer,
7411 PRPC_MESSAGE pRpcMessage,
7412 DWORD* pdwStubPhase);
7413 HRESULT CALLBACK IPSFactoryBuffer_CreateStub_Proxy(
7414 IPSFactoryBuffer* This,
7415 REFIID riid,
7416 IUnknown* pUnkServer,
7417 IRpcStubBuffer** ppStub);
7418 void __RPC_STUB IPSFactoryBuffer_CreateStub_Stub(
7419 struct IRpcStubBuffer* This,
7420 struct IRpcChannelBuffer* pRpcChannelBuffer,
7421 PRPC_MESSAGE pRpcMessage,
7422 DWORD* pdwStubPhase);
7424 typedef struct IChannelHook IChannelHook;
7425 typedef IChannelHook *LPCHANNELHOOK;
7427 typedef struct SChannelHookCallInfo {
7428 IID iid;
7429 DWORD cbSize;
7430 GUID uCausality;
7431 DWORD dwServerPid;
7432 DWORD iMethod;
7433 void *pObject;
7434 } SChannelHookCallInfo;
7436 /*****************************************************************************
7437 * IChannelHook interface
7439 DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
7440 #if defined(__cplusplus) && !defined(CINTERFACE)
7441 struct IChannelHook: IUnknown {
7443 virtual void CALLBACK ClientGetSize(
7444 REFGUID uExtent,
7445 REFIID riid,
7446 ULONG* pDataSize) = 0;
7448 virtual void CALLBACK ClientFillBuffer(
7449 REFGUID uExtent,
7450 REFIID riid,
7451 ULONG* pDataSize,
7452 void* pDataBuffer) = 0;
7454 virtual void CALLBACK ClientNotify(
7455 REFGUID uExtent,
7456 REFIID riid,
7457 ULONG cbDataSize,
7458 void* pDataBuffer,
7459 DWORD lDataRep,
7460 HRESULT hrFault) = 0;
7462 virtual void CALLBACK ServerNotify(
7463 REFGUID uExtent,
7464 REFIID riid,
7465 ULONG cbDataSize,
7466 void* pDataBuffer,
7467 DWORD lDataRep) = 0;
7469 virtual void CALLBACK ServerGetSize(
7470 REFGUID uExtent,
7471 REFIID riid,
7472 HRESULT hrFault,
7473 ULONG* pDataSize) = 0;
7475 virtual void CALLBACK ServerFillBuffer(
7476 REFGUID uExtent,
7477 REFIID riid,
7478 ULONG* pDataSize,
7479 void* pDataBuffer,
7480 HRESULT hrFault) = 0;
7482 } ICOM_COM_INTERFACE_ATTRIBUTE;
7483 #else
7484 typedef struct IChannelHookVtbl IChannelHookVtbl;
7485 struct IChannelHook {
7486 const IChannelHookVtbl* lpVtbl;
7488 struct IChannelHookVtbl {
7489 ICOM_MSVTABLE_COMPAT_FIELDS
7491 /*** IUnknown methods ***/
7492 HRESULT (CALLBACK *QueryInterface)(
7493 IChannelHook* This,
7494 REFIID riid,
7495 void** ppvObject);
7497 ULONG (CALLBACK *AddRef)(
7498 IChannelHook* This);
7500 ULONG (CALLBACK *Release)(
7501 IChannelHook* This);
7503 /*** IChannelHook methods ***/
7504 void (CALLBACK *ClientGetSize)(
7505 IChannelHook* This,
7506 REFGUID uExtent,
7507 REFIID riid,
7508 ULONG* pDataSize);
7510 void (CALLBACK *ClientFillBuffer)(
7511 IChannelHook* This,
7512 REFGUID uExtent,
7513 REFIID riid,
7514 ULONG* pDataSize,
7515 void* pDataBuffer);
7517 void (CALLBACK *ClientNotify)(
7518 IChannelHook* This,
7519 REFGUID uExtent,
7520 REFIID riid,
7521 ULONG cbDataSize,
7522 void* pDataBuffer,
7523 DWORD lDataRep,
7524 HRESULT hrFault);
7526 void (CALLBACK *ServerNotify)(
7527 IChannelHook* This,
7528 REFGUID uExtent,
7529 REFIID riid,
7530 ULONG cbDataSize,
7531 void* pDataBuffer,
7532 DWORD lDataRep);
7534 void (CALLBACK *ServerGetSize)(
7535 IChannelHook* This,
7536 REFGUID uExtent,
7537 REFIID riid,
7538 HRESULT hrFault,
7539 ULONG* pDataSize);
7541 void (CALLBACK *ServerFillBuffer)(
7542 IChannelHook* This,
7543 REFGUID uExtent,
7544 REFIID riid,
7545 ULONG* pDataSize,
7546 void* pDataBuffer,
7547 HRESULT hrFault);
7551 #define IChannelHook_IMETHODS \
7552 IUnknown_IMETHODS \
7553 ICOM_VMETHOD3(ClientGetSize,REFGUID,uExtent,REFIID,riid,ULONG*,pDataSize) \
7554 ICOM_VMETHOD4(ClientFillBuffer,REFGUID,uExtent,REFIID,riid,ULONG*,pDataSize,void*,pDataBuffer) \
7555 ICOM_VMETHOD6(ClientNotify,REFGUID,uExtent,REFIID,riid,ULONG,cbDataSize,void*,pDataBuffer,DWORD,lDataRep,HRESULT,hrFault) \
7556 ICOM_VMETHOD5(ServerNotify,REFGUID,uExtent,REFIID,riid,ULONG,cbDataSize,void*,pDataBuffer,DWORD,lDataRep) \
7557 ICOM_VMETHOD4(ServerGetSize,REFGUID,uExtent,REFIID,riid,HRESULT,hrFault,ULONG*,pDataSize) \
7558 ICOM_VMETHOD5(ServerFillBuffer,REFGUID,uExtent,REFIID,riid,ULONG*,pDataSize,void*,pDataBuffer,HRESULT,hrFault)
7560 /*** IUnknown methods ***/
7561 #define IChannelHook_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7562 #define IChannelHook_AddRef(p) (p)->lpVtbl->AddRef(p)
7563 #define IChannelHook_Release(p) (p)->lpVtbl->Release(p)
7564 /*** IChannelHook methods ***/
7565 #define IChannelHook_ClientGetSize(p,a,b,c) (p)->lpVtbl->ClientGetSize(p,a,b,c)
7566 #define IChannelHook_ClientFillBuffer(p,a,b,c,d) (p)->lpVtbl->ClientFillBuffer(p,a,b,c,d)
7567 #define IChannelHook_ClientNotify(p,a,b,c,d,e,f) (p)->lpVtbl->ClientNotify(p,a,b,c,d,e,f)
7568 #define IChannelHook_ServerNotify(p,a,b,c,d,e) (p)->lpVtbl->ServerNotify(p,a,b,c,d,e)
7569 #define IChannelHook_ServerGetSize(p,a,b,c,d) (p)->lpVtbl->ServerGetSize(p,a,b,c,d)
7570 #define IChannelHook_ServerFillBuffer(p,a,b,c,d,e) (p)->lpVtbl->ServerFillBuffer(p,a,b,c,d,e)
7572 #endif
7574 void CALLBACK IChannelHook_ClientGetSize_Proxy(
7575 IChannelHook* This,
7576 REFGUID uExtent,
7577 REFIID riid,
7578 ULONG* pDataSize);
7579 void __RPC_STUB IChannelHook_ClientGetSize_Stub(
7580 struct IRpcStubBuffer* This,
7581 struct IRpcChannelBuffer* pRpcChannelBuffer,
7582 PRPC_MESSAGE pRpcMessage,
7583 DWORD* pdwStubPhase);
7584 void CALLBACK IChannelHook_ClientFillBuffer_Proxy(
7585 IChannelHook* This,
7586 REFGUID uExtent,
7587 REFIID riid,
7588 ULONG* pDataSize,
7589 void* pDataBuffer);
7590 void __RPC_STUB IChannelHook_ClientFillBuffer_Stub(
7591 struct IRpcStubBuffer* This,
7592 struct IRpcChannelBuffer* pRpcChannelBuffer,
7593 PRPC_MESSAGE pRpcMessage,
7594 DWORD* pdwStubPhase);
7595 void CALLBACK IChannelHook_ClientNotify_Proxy(
7596 IChannelHook* This,
7597 REFGUID uExtent,
7598 REFIID riid,
7599 ULONG cbDataSize,
7600 void* pDataBuffer,
7601 DWORD lDataRep,
7602 HRESULT hrFault);
7603 void __RPC_STUB IChannelHook_ClientNotify_Stub(
7604 struct IRpcStubBuffer* This,
7605 struct IRpcChannelBuffer* pRpcChannelBuffer,
7606 PRPC_MESSAGE pRpcMessage,
7607 DWORD* pdwStubPhase);
7608 void CALLBACK IChannelHook_ServerNotify_Proxy(
7609 IChannelHook* This,
7610 REFGUID uExtent,
7611 REFIID riid,
7612 ULONG cbDataSize,
7613 void* pDataBuffer,
7614 DWORD lDataRep);
7615 void __RPC_STUB IChannelHook_ServerNotify_Stub(
7616 struct IRpcStubBuffer* This,
7617 struct IRpcChannelBuffer* pRpcChannelBuffer,
7618 PRPC_MESSAGE pRpcMessage,
7619 DWORD* pdwStubPhase);
7620 void CALLBACK IChannelHook_ServerGetSize_Proxy(
7621 IChannelHook* This,
7622 REFGUID uExtent,
7623 REFIID riid,
7624 HRESULT hrFault,
7625 ULONG* pDataSize);
7626 void __RPC_STUB IChannelHook_ServerGetSize_Stub(
7627 struct IRpcStubBuffer* This,
7628 struct IRpcChannelBuffer* pRpcChannelBuffer,
7629 PRPC_MESSAGE pRpcMessage,
7630 DWORD* pdwStubPhase);
7631 void CALLBACK IChannelHook_ServerFillBuffer_Proxy(
7632 IChannelHook* This,
7633 REFGUID uExtent,
7634 REFIID riid,
7635 ULONG* pDataSize,
7636 void* pDataBuffer,
7637 HRESULT hrFault);
7638 void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
7639 struct IRpcStubBuffer* This,
7640 struct IRpcChannelBuffer* pRpcChannelBuffer,
7641 PRPC_MESSAGE pRpcMessage,
7642 DWORD* pdwStubPhase);
7644 typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
7645 typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
7646 typedef struct IPropertyStorage IPropertyStorage;
7647 typedef IPropertyStorage *LPPROPERTYSTORAGE;
7649 extern const FMTID FMTID_SummaryInformation;
7651 extern const FMTID FMTID_DocSummaryInformation;
7653 extern const FMTID FMTID_UserDefinedProperties;
7655 #define PROPSETFLAG_DEFAULT (0)
7657 #define PROPSETFLAG_NONSIMPLE (1)
7659 #define PROPSETFLAG_ANSI (2)
7661 #define PROPSETFLAG_UNBUFFERED (4)
7663 typedef struct tagPROPVARIANT PROPVARIANT;
7665 typedef struct tagCAUB {
7666 ULONG cElems;
7667 unsigned char *pElems;
7668 } CAUB;
7670 typedef struct tagCAI {
7671 ULONG cElems;
7672 short *pElems;
7673 } CAI;
7675 typedef struct tagCAUI {
7676 ULONG cElems;
7677 USHORT *pElems;
7678 } CAUI;
7680 typedef struct tagCAL {
7681 ULONG cElems;
7682 long *pElems;
7683 } CAL;
7685 typedef struct tagCAUL {
7686 ULONG cElems;
7687 ULONG *pElems;
7688 } CAUL;
7690 typedef struct tagCAFLT {
7691 ULONG cElems;
7692 float *pElems;
7693 } CAFLT;
7695 typedef struct tagCADBL {
7696 ULONG cElems;
7697 double *pElems;
7698 } CADBL;
7700 typedef struct tagCACY {
7701 ULONG cElems;
7702 CY *pElems;
7703 } CACY;
7705 typedef struct tagCADATE {
7706 ULONG cElems;
7707 DATE *pElems;
7708 } CADATE;
7710 typedef struct tagCABSTR {
7711 ULONG cElems;
7712 BSTR *pElems;
7713 } CABSTR;
7715 typedef struct tagCABSTRBLOB {
7716 ULONG cElems;
7717 BSTRBLOB *pElems;
7718 } CABSTRBLOB;
7720 typedef struct tagCABOOL {
7721 ULONG cElems;
7722 VARIANT_BOOL *pElems;
7723 } CABOOL;
7725 typedef struct tagCASCODE {
7726 ULONG cElems;
7727 SCODE *pElems;
7728 } CASCODE;
7730 typedef struct tagCAPROPVARIANT {
7731 ULONG cElems;
7732 PROPVARIANT *pElems;
7733 } CAPROPVARIANT;
7735 typedef struct tagCAH {
7736 ULONG cElems;
7737 LARGE_INTEGER *pElems;
7738 } CAH;
7740 typedef struct tagCAUH {
7741 ULONG cElems;
7742 ULARGE_INTEGER *pElems;
7743 } CAUH;
7745 typedef struct tagCALPSTR {
7746 ULONG cElems;
7747 LPSTR *pElems;
7748 } CALPSTR;
7750 typedef struct tagCALPWSTR {
7751 ULONG cElems;
7752 LPWSTR *pElems;
7753 } CALPWSTR;
7755 typedef struct tagCAFILETIME {
7756 ULONG cElems;
7757 FILETIME *pElems;
7758 } CAFILETIME;
7760 typedef struct tagCACLIPDATA {
7761 ULONG cElems;
7762 CLIPDATA *pElems;
7763 } CACLIPDATA;
7765 typedef struct tagCACLSID {
7766 ULONG cElems;
7767 CLSID *pElems;
7768 } CACLSID;
7770 struct tagPROPVARIANT {
7771 VARTYPE vt;
7772 WORD wReserved1;
7773 WORD wReserved2;
7774 WORD wReserved3;
7775 union {
7776 UCHAR bVal;
7777 short iVal;
7778 USHORT uiVal;
7779 VARIANT_BOOL boolVal;
7780 long lVal;
7781 ULONG ulVal;
7782 float fltVal;
7783 SCODE scode;
7784 LARGE_INTEGER hVal;
7785 ULARGE_INTEGER uhVal;
7786 double dblVal;
7787 CY cyVal;
7788 DATE date;
7789 FILETIME filetime;
7790 CLSID *puuid;
7791 BLOB blob;
7792 CLIPDATA *pclipdata;
7793 IStream *pStream;
7794 IStorage *pStorage;
7795 BSTR bstrVal;
7796 BSTRBLOB bstrblobVal;
7797 LPSTR pszVal;
7798 LPWSTR pwszVal;
7799 CAUB caub;
7800 CAI cai;
7801 CAUI caui;
7802 CABOOL cabool;
7803 CAL cal;
7804 CAUL caul;
7805 CAFLT caflt;
7806 CASCODE cascode;
7807 CAH cah;
7808 CAUH cauh;
7809 CADBL cadbl;
7810 CACY cacy;
7811 CADATE cadate;
7812 CAFILETIME cafiletime;
7813 CACLSID cauuid;
7814 CACLIPDATA caclipdata;
7815 CABSTR cabstr;
7816 CABSTRBLOB cabstrblob;
7817 CALPSTR calpstr;
7818 CALPWSTR calpwstr;
7819 CAPROPVARIANT capropvar;
7820 } DUMMYUNIONNAME;
7823 typedef struct tagPROPVARIANT *LPPROPVARIANT;
7825 #define PRSPEC_INVALID (0x7fffffff)
7827 #define PRSPEC_LPWSTR (0)
7829 #define PRSPEC_PROPID (1)
7831 typedef struct tagPROPSPEC {
7832 ULONG ulKind;
7833 union {
7834 PROPID propid;
7835 LPOLESTR lpwstr;
7836 } DUMMYUNIONNAME;
7837 } PROPSPEC;
7839 typedef struct tagSTATPROPSTG {
7840 LPOLESTR lpwstrName;
7841 PROPID propid;
7842 VARTYPE vt;
7843 } STATPROPSTG;
7845 typedef struct tagSTATPROPSETSTG {
7846 FMTID fmtid;
7847 CLSID clsid;
7848 DWORD grfFlags;
7849 FILETIME mtime;
7850 FILETIME ctime;
7851 FILETIME atime;
7852 DWORD dwOSVersion;
7853 } STATPROPSETSTG;
7855 /*****************************************************************************
7856 * IPropertyStorage interface
7858 DEFINE_GUID(IID_IPropertyStorage, 0x00000138, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7859 #if defined(__cplusplus) && !defined(CINTERFACE)
7860 struct IPropertyStorage: IUnknown {
7862 virtual HRESULT CALLBACK ReadMultiple(
7863 ULONG cpspec,
7864 const PROPSPEC rgpspec[],
7865 PROPVARIANT rgpropvar[]) = 0;
7867 virtual HRESULT CALLBACK WriteMultiple(
7868 ULONG cpspec,
7869 const PROPSPEC rgpspec[],
7870 const PROPVARIANT rgpropvar[],
7871 PROPID propidNameFirst) = 0;
7873 virtual HRESULT CALLBACK DeleteMultiple(
7874 ULONG cpspec,
7875 const PROPSPEC rgpspec[]) = 0;
7877 virtual HRESULT CALLBACK ReadPropertyNames(
7878 ULONG cpropid,
7879 const PROPID rgpropid[],
7880 LPOLESTR rglpwstrName[]) = 0;
7882 virtual HRESULT CALLBACK WritePropertyNames(
7883 ULONG cpropid,
7884 const PROPID rgpropid[],
7885 const LPOLESTR rglpwstrName[]) = 0;
7887 virtual HRESULT CALLBACK DeletePropertyNames(
7888 ULONG cpropid,
7889 const PROPID rgpropid[]) = 0;
7891 virtual HRESULT CALLBACK Commit(
7892 DWORD grfCommitFlags) = 0;
7894 virtual HRESULT CALLBACK Revert(
7895 ) = 0;
7897 virtual HRESULT CALLBACK Enum(
7898 IEnumSTATPROPSTG** ppenum) = 0;
7900 virtual HRESULT CALLBACK SetTimes(
7901 const FILETIME* pctime,
7902 const FILETIME* patime,
7903 const FILETIME* pmtime) = 0;
7905 virtual HRESULT CALLBACK SetClass(
7906 REFCLSID clsid) = 0;
7908 virtual HRESULT CALLBACK Stat(
7909 STATPROPSETSTG* statpsstg) = 0;
7911 } ICOM_COM_INTERFACE_ATTRIBUTE;
7912 #else
7913 typedef struct IPropertyStorageVtbl IPropertyStorageVtbl;
7914 struct IPropertyStorage {
7915 const IPropertyStorageVtbl* lpVtbl;
7917 struct IPropertyStorageVtbl {
7918 ICOM_MSVTABLE_COMPAT_FIELDS
7920 /*** IUnknown methods ***/
7921 HRESULT (CALLBACK *QueryInterface)(
7922 IPropertyStorage* This,
7923 REFIID riid,
7924 void** ppvObject);
7926 ULONG (CALLBACK *AddRef)(
7927 IPropertyStorage* This);
7929 ULONG (CALLBACK *Release)(
7930 IPropertyStorage* This);
7932 /*** IPropertyStorage methods ***/
7933 HRESULT (CALLBACK *ReadMultiple)(
7934 IPropertyStorage* This,
7935 ULONG cpspec,
7936 const PROPSPEC rgpspec[],
7937 PROPVARIANT rgpropvar[]);
7939 HRESULT (CALLBACK *WriteMultiple)(
7940 IPropertyStorage* This,
7941 ULONG cpspec,
7942 const PROPSPEC rgpspec[],
7943 const PROPVARIANT rgpropvar[],
7944 PROPID propidNameFirst);
7946 HRESULT (CALLBACK *DeleteMultiple)(
7947 IPropertyStorage* This,
7948 ULONG cpspec,
7949 const PROPSPEC rgpspec[]);
7951 HRESULT (CALLBACK *ReadPropertyNames)(
7952 IPropertyStorage* This,
7953 ULONG cpropid,
7954 const PROPID rgpropid[],
7955 LPOLESTR rglpwstrName[]);
7957 HRESULT (CALLBACK *WritePropertyNames)(
7958 IPropertyStorage* This,
7959 ULONG cpropid,
7960 const PROPID rgpropid[],
7961 const LPOLESTR rglpwstrName[]);
7963 HRESULT (CALLBACK *DeletePropertyNames)(
7964 IPropertyStorage* This,
7965 ULONG cpropid,
7966 const PROPID rgpropid[]);
7968 HRESULT (CALLBACK *Commit)(
7969 IPropertyStorage* This,
7970 DWORD grfCommitFlags);
7972 HRESULT (CALLBACK *Revert)(
7973 IPropertyStorage* This);
7975 HRESULT (CALLBACK *Enum)(
7976 IPropertyStorage* This,
7977 IEnumSTATPROPSTG** ppenum);
7979 HRESULT (CALLBACK *SetTimes)(
7980 IPropertyStorage* This,
7981 const FILETIME* pctime,
7982 const FILETIME* patime,
7983 const FILETIME* pmtime);
7985 HRESULT (CALLBACK *SetClass)(
7986 IPropertyStorage* This,
7987 REFCLSID clsid);
7989 HRESULT (CALLBACK *Stat)(
7990 IPropertyStorage* This,
7991 STATPROPSETSTG* statpsstg);
7995 #define IPropertyStorage_IMETHODS \
7996 IUnknown_IMETHODS \
7997 ICOM_METHOD3 (HRESULT,ReadMultiple,ULONG,cpspec,const PROPSPEC*,rgpspec,PROPVARIANT*,rgpropvar) \
7998 ICOM_METHOD4 (HRESULT,WriteMultiple,ULONG,cpspec,const PROPSPEC*,rgpspec,const PROPVARIANT*,rgpropvar,PROPID,propidNameFirst) \
7999 ICOM_METHOD2 (HRESULT,DeleteMultiple,ULONG,cpspec,const PROPSPEC*,rgpspec) \
8000 ICOM_METHOD3 (HRESULT,ReadPropertyNames,ULONG,cpropid,const PROPID*,rgpropid,LPOLESTR*,rglpwstrName) \
8001 ICOM_METHOD3 (HRESULT,WritePropertyNames,ULONG,cpropid,const PROPID*,rgpropid,const LPOLESTR*,rglpwstrName) \
8002 ICOM_METHOD2 (HRESULT,DeletePropertyNames,ULONG,cpropid,const PROPID*,rgpropid) \
8003 ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
8004 ICOM_METHOD (HRESULT,Revert) \
8005 ICOM_METHOD1 (HRESULT,Enum,IEnumSTATPROPSTG**,ppenum) \
8006 ICOM_METHOD3 (HRESULT,SetTimes,const FILETIME*,pctime,const FILETIME*,patime,const FILETIME*,pmtime) \
8007 ICOM_METHOD1 (HRESULT,SetClass,REFCLSID,clsid) \
8008 ICOM_METHOD1 (HRESULT,Stat,STATPROPSETSTG*,statpsstg)
8010 /*** IUnknown methods ***/
8011 #define IPropertyStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8012 #define IPropertyStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
8013 #define IPropertyStorage_Release(p) (p)->lpVtbl->Release(p)
8014 /*** IPropertyStorage methods ***/
8015 #define IPropertyStorage_ReadMultiple(p,a,b,c) (p)->lpVtbl->ReadMultiple(p,a,b,c)
8016 #define IPropertyStorage_WriteMultiple(p,a,b,c,d) (p)->lpVtbl->WriteMultiple(p,a,b,c,d)
8017 #define IPropertyStorage_DeleteMultiple(p,a,b) (p)->lpVtbl->DeleteMultiple(p,a,b)
8018 #define IPropertyStorage_ReadPropertyNames(p,a,b,c) (p)->lpVtbl->ReadPropertyNames(p,a,b,c)
8019 #define IPropertyStorage_WritePropertyNames(p,a,b,c) (p)->lpVtbl->WritePropertyNames(p,a,b,c)
8020 #define IPropertyStorage_DeletePropertyNames(p,a,b) (p)->lpVtbl->DeletePropertyNames(p,a,b)
8021 #define IPropertyStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
8022 #define IPropertyStorage_Revert(p) (p)->lpVtbl->Revert(p)
8023 #define IPropertyStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
8024 #define IPropertyStorage_SetTimes(p,a,b,c) (p)->lpVtbl->SetTimes(p,a,b,c)
8025 #define IPropertyStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
8026 #define IPropertyStorage_Stat(p,a) (p)->lpVtbl->Stat(p,a)
8028 #endif
8030 HRESULT CALLBACK IPropertyStorage_ReadMultiple_Proxy(
8031 IPropertyStorage* This,
8032 ULONG cpspec,
8033 const PROPSPEC rgpspec[],
8034 PROPVARIANT rgpropvar[]);
8035 void __RPC_STUB IPropertyStorage_ReadMultiple_Stub(
8036 struct IRpcStubBuffer* This,
8037 struct IRpcChannelBuffer* pRpcChannelBuffer,
8038 PRPC_MESSAGE pRpcMessage,
8039 DWORD* pdwStubPhase);
8040 HRESULT CALLBACK IPropertyStorage_WriteMultiple_Proxy(
8041 IPropertyStorage* This,
8042 ULONG cpspec,
8043 const PROPSPEC rgpspec[],
8044 const PROPVARIANT rgpropvar[],
8045 PROPID propidNameFirst);
8046 void __RPC_STUB IPropertyStorage_WriteMultiple_Stub(
8047 struct IRpcStubBuffer* This,
8048 struct IRpcChannelBuffer* pRpcChannelBuffer,
8049 PRPC_MESSAGE pRpcMessage,
8050 DWORD* pdwStubPhase);
8051 HRESULT CALLBACK IPropertyStorage_DeleteMultiple_Proxy(
8052 IPropertyStorage* This,
8053 ULONG cpspec,
8054 const PROPSPEC rgpspec[]);
8055 void __RPC_STUB IPropertyStorage_DeleteMultiple_Stub(
8056 struct IRpcStubBuffer* This,
8057 struct IRpcChannelBuffer* pRpcChannelBuffer,
8058 PRPC_MESSAGE pRpcMessage,
8059 DWORD* pdwStubPhase);
8060 HRESULT CALLBACK IPropertyStorage_ReadPropertyNames_Proxy(
8061 IPropertyStorage* This,
8062 ULONG cpropid,
8063 const PROPID rgpropid[],
8064 LPOLESTR rglpwstrName[]);
8065 void __RPC_STUB IPropertyStorage_ReadPropertyNames_Stub(
8066 struct IRpcStubBuffer* This,
8067 struct IRpcChannelBuffer* pRpcChannelBuffer,
8068 PRPC_MESSAGE pRpcMessage,
8069 DWORD* pdwStubPhase);
8070 HRESULT CALLBACK IPropertyStorage_WritePropertyNames_Proxy(
8071 IPropertyStorage* This,
8072 ULONG cpropid,
8073 const PROPID rgpropid[],
8074 const LPOLESTR rglpwstrName[]);
8075 void __RPC_STUB IPropertyStorage_WritePropertyNames_Stub(
8076 struct IRpcStubBuffer* This,
8077 struct IRpcChannelBuffer* pRpcChannelBuffer,
8078 PRPC_MESSAGE pRpcMessage,
8079 DWORD* pdwStubPhase);
8080 HRESULT CALLBACK IPropertyStorage_DeletePropertyNames_Proxy(
8081 IPropertyStorage* This,
8082 ULONG cpropid,
8083 const PROPID rgpropid[]);
8084 void __RPC_STUB IPropertyStorage_DeletePropertyNames_Stub(
8085 struct IRpcStubBuffer* This,
8086 struct IRpcChannelBuffer* pRpcChannelBuffer,
8087 PRPC_MESSAGE pRpcMessage,
8088 DWORD* pdwStubPhase);
8089 HRESULT CALLBACK IPropertyStorage_Commit_Proxy(
8090 IPropertyStorage* This,
8091 DWORD grfCommitFlags);
8092 void __RPC_STUB IPropertyStorage_Commit_Stub(
8093 struct IRpcStubBuffer* This,
8094 struct IRpcChannelBuffer* pRpcChannelBuffer,
8095 PRPC_MESSAGE pRpcMessage,
8096 DWORD* pdwStubPhase);
8097 HRESULT CALLBACK IPropertyStorage_Revert_Proxy(
8098 IPropertyStorage* This);
8099 void __RPC_STUB IPropertyStorage_Revert_Stub(
8100 struct IRpcStubBuffer* This,
8101 struct IRpcChannelBuffer* pRpcChannelBuffer,
8102 PRPC_MESSAGE pRpcMessage,
8103 DWORD* pdwStubPhase);
8104 HRESULT CALLBACK IPropertyStorage_Enum_Proxy(
8105 IPropertyStorage* This,
8106 IEnumSTATPROPSTG** ppenum);
8107 void __RPC_STUB IPropertyStorage_Enum_Stub(
8108 struct IRpcStubBuffer* This,
8109 struct IRpcChannelBuffer* pRpcChannelBuffer,
8110 PRPC_MESSAGE pRpcMessage,
8111 DWORD* pdwStubPhase);
8112 HRESULT CALLBACK IPropertyStorage_SetTimes_Proxy(
8113 IPropertyStorage* This,
8114 const FILETIME* pctime,
8115 const FILETIME* patime,
8116 const FILETIME* pmtime);
8117 void __RPC_STUB IPropertyStorage_SetTimes_Stub(
8118 struct IRpcStubBuffer* This,
8119 struct IRpcChannelBuffer* pRpcChannelBuffer,
8120 PRPC_MESSAGE pRpcMessage,
8121 DWORD* pdwStubPhase);
8122 HRESULT CALLBACK IPropertyStorage_SetClass_Proxy(
8123 IPropertyStorage* This,
8124 REFCLSID clsid);
8125 void __RPC_STUB IPropertyStorage_SetClass_Stub(
8126 struct IRpcStubBuffer* This,
8127 struct IRpcChannelBuffer* pRpcChannelBuffer,
8128 PRPC_MESSAGE pRpcMessage,
8129 DWORD* pdwStubPhase);
8130 HRESULT CALLBACK IPropertyStorage_Stat_Proxy(
8131 IPropertyStorage* This,
8132 STATPROPSETSTG* statpsstg);
8133 void __RPC_STUB IPropertyStorage_Stat_Stub(
8134 struct IRpcStubBuffer* This,
8135 struct IRpcChannelBuffer* pRpcChannelBuffer,
8136 PRPC_MESSAGE pRpcMessage,
8137 DWORD* pdwStubPhase);
8139 typedef struct IPropertySetStorage IPropertySetStorage;
8140 typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
8142 /*****************************************************************************
8143 * IPropertySetStorage interface
8145 DEFINE_GUID(IID_IPropertySetStorage, 0x0000013a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8146 #if defined(__cplusplus) && !defined(CINTERFACE)
8147 struct IPropertySetStorage: IUnknown {
8149 virtual HRESULT CALLBACK Create(
8150 REFFMTID rfmtid,
8151 const CLSID* pclsid,
8152 DWORD grfFlags,
8153 DWORD grfMode,
8154 IPropertyStorage** ppprstg) = 0;
8156 virtual HRESULT CALLBACK Open(
8157 REFFMTID rfmtid,
8158 DWORD grfMode,
8159 IPropertyStorage** ppprstg) = 0;
8161 virtual HRESULT CALLBACK Delete(
8162 REFFMTID rfmtid) = 0;
8164 virtual HRESULT CALLBACK Enum(
8165 IEnumSTATPROPSETSTG** ppenum) = 0;
8167 } ICOM_COM_INTERFACE_ATTRIBUTE;
8168 #else
8169 typedef struct IPropertySetStorageVtbl IPropertySetStorageVtbl;
8170 struct IPropertySetStorage {
8171 const IPropertySetStorageVtbl* lpVtbl;
8173 struct IPropertySetStorageVtbl {
8174 ICOM_MSVTABLE_COMPAT_FIELDS
8176 /*** IUnknown methods ***/
8177 HRESULT (CALLBACK *QueryInterface)(
8178 IPropertySetStorage* This,
8179 REFIID riid,
8180 void** ppvObject);
8182 ULONG (CALLBACK *AddRef)(
8183 IPropertySetStorage* This);
8185 ULONG (CALLBACK *Release)(
8186 IPropertySetStorage* This);
8188 /*** IPropertySetStorage methods ***/
8189 HRESULT (CALLBACK *Create)(
8190 IPropertySetStorage* This,
8191 REFFMTID rfmtid,
8192 const CLSID* pclsid,
8193 DWORD grfFlags,
8194 DWORD grfMode,
8195 IPropertyStorage** ppprstg);
8197 HRESULT (CALLBACK *Open)(
8198 IPropertySetStorage* This,
8199 REFFMTID rfmtid,
8200 DWORD grfMode,
8201 IPropertyStorage** ppprstg);
8203 HRESULT (CALLBACK *Delete)(
8204 IPropertySetStorage* This,
8205 REFFMTID rfmtid);
8207 HRESULT (CALLBACK *Enum)(
8208 IPropertySetStorage* This,
8209 IEnumSTATPROPSETSTG** ppenum);
8213 #define IPropertySetStorage_IMETHODS \
8214 IUnknown_IMETHODS \
8215 ICOM_METHOD5 (HRESULT,Create,REFFMTID,rfmtid,const CLSID*,pclsid,DWORD,grfFlags,DWORD,grfMode,IPropertyStorage**,ppprstg) \
8216 ICOM_METHOD3 (HRESULT,Open,REFFMTID,rfmtid,DWORD,grfMode,IPropertyStorage**,ppprstg) \
8217 ICOM_METHOD1 (HRESULT,Delete,REFFMTID,rfmtid) \
8218 ICOM_METHOD1 (HRESULT,Enum,IEnumSTATPROPSETSTG**,ppenum)
8220 /*** IUnknown methods ***/
8221 #define IPropertySetStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8222 #define IPropertySetStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
8223 #define IPropertySetStorage_Release(p) (p)->lpVtbl->Release(p)
8224 /*** IPropertySetStorage methods ***/
8225 #define IPropertySetStorage_Create(p,a,b,c,d,e) (p)->lpVtbl->Create(p,a,b,c,d,e)
8226 #define IPropertySetStorage_Open(p,a,b,c) (p)->lpVtbl->Open(p,a,b,c)
8227 #define IPropertySetStorage_Delete(p,a) (p)->lpVtbl->Delete(p,a)
8228 #define IPropertySetStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
8230 #endif
8232 HRESULT CALLBACK IPropertySetStorage_Create_Proxy(
8233 IPropertySetStorage* This,
8234 REFFMTID rfmtid,
8235 const CLSID* pclsid,
8236 DWORD grfFlags,
8237 DWORD grfMode,
8238 IPropertyStorage** ppprstg);
8239 void __RPC_STUB IPropertySetStorage_Create_Stub(
8240 struct IRpcStubBuffer* This,
8241 struct IRpcChannelBuffer* pRpcChannelBuffer,
8242 PRPC_MESSAGE pRpcMessage,
8243 DWORD* pdwStubPhase);
8244 HRESULT CALLBACK IPropertySetStorage_Open_Proxy(
8245 IPropertySetStorage* This,
8246 REFFMTID rfmtid,
8247 DWORD grfMode,
8248 IPropertyStorage** ppprstg);
8249 void __RPC_STUB IPropertySetStorage_Open_Stub(
8250 struct IRpcStubBuffer* This,
8251 struct IRpcChannelBuffer* pRpcChannelBuffer,
8252 PRPC_MESSAGE pRpcMessage,
8253 DWORD* pdwStubPhase);
8254 HRESULT CALLBACK IPropertySetStorage_Delete_Proxy(
8255 IPropertySetStorage* This,
8256 REFFMTID rfmtid);
8257 void __RPC_STUB IPropertySetStorage_Delete_Stub(
8258 struct IRpcStubBuffer* This,
8259 struct IRpcChannelBuffer* pRpcChannelBuffer,
8260 PRPC_MESSAGE pRpcMessage,
8261 DWORD* pdwStubPhase);
8262 HRESULT CALLBACK IPropertySetStorage_Enum_Proxy(
8263 IPropertySetStorage* This,
8264 IEnumSTATPROPSETSTG** ppenum);
8265 void __RPC_STUB IPropertySetStorage_Enum_Stub(
8266 struct IRpcStubBuffer* This,
8267 struct IRpcChannelBuffer* pRpcChannelBuffer,
8268 PRPC_MESSAGE pRpcMessage,
8269 DWORD* pdwStubPhase);
8271 typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
8273 /*****************************************************************************
8274 * IEnumSTATPROPSTG interface
8276 DEFINE_GUID(IID_IEnumSTATPROPSTG, 0x00000139, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8277 #if defined(__cplusplus) && !defined(CINTERFACE)
8278 struct IEnumSTATPROPSTG: IUnknown {
8280 virtual HRESULT CALLBACK Next(
8281 ULONG celt,
8282 STATPROPSTG* rgelt,
8283 ULONG* pceltFetched) = 0;
8285 virtual HRESULT CALLBACK Skip(
8286 ULONG celt) = 0;
8288 virtual HRESULT CALLBACK Reset(
8289 ) = 0;
8291 virtual HRESULT CALLBACK Clone(
8292 IEnumSTATPROPSTG** ppenum) = 0;
8294 } ICOM_COM_INTERFACE_ATTRIBUTE;
8295 #else
8296 typedef struct IEnumSTATPROPSTGVtbl IEnumSTATPROPSTGVtbl;
8297 struct IEnumSTATPROPSTG {
8298 const IEnumSTATPROPSTGVtbl* lpVtbl;
8300 struct IEnumSTATPROPSTGVtbl {
8301 ICOM_MSVTABLE_COMPAT_FIELDS
8303 /*** IUnknown methods ***/
8304 HRESULT (CALLBACK *QueryInterface)(
8305 IEnumSTATPROPSTG* This,
8306 REFIID riid,
8307 void** ppvObject);
8309 ULONG (CALLBACK *AddRef)(
8310 IEnumSTATPROPSTG* This);
8312 ULONG (CALLBACK *Release)(
8313 IEnumSTATPROPSTG* This);
8315 /*** IEnumSTATPROPSTG methods ***/
8316 HRESULT (CALLBACK *Next)(
8317 IEnumSTATPROPSTG* This,
8318 ULONG celt,
8319 STATPROPSTG* rgelt,
8320 ULONG* pceltFetched);
8322 HRESULT (CALLBACK *Skip)(
8323 IEnumSTATPROPSTG* This,
8324 ULONG celt);
8326 HRESULT (CALLBACK *Reset)(
8327 IEnumSTATPROPSTG* This);
8329 HRESULT (CALLBACK *Clone)(
8330 IEnumSTATPROPSTG* This,
8331 IEnumSTATPROPSTG** ppenum);
8335 #define IEnumSTATPROPSTG_IMETHODS \
8336 IUnknown_IMETHODS \
8337 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATPROPSTG*,rgelt,ULONG*,pceltFetched) \
8338 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
8339 ICOM_METHOD (HRESULT,Reset) \
8340 ICOM_METHOD1 (HRESULT,Clone,IEnumSTATPROPSTG**,ppenum)
8342 /*** IUnknown methods ***/
8343 #define IEnumSTATPROPSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8344 #define IEnumSTATPROPSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
8345 #define IEnumSTATPROPSTG_Release(p) (p)->lpVtbl->Release(p)
8346 /*** IEnumSTATPROPSTG methods ***/
8347 #define IEnumSTATPROPSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
8348 #define IEnumSTATPROPSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
8349 #define IEnumSTATPROPSTG_Reset(p) (p)->lpVtbl->Reset(p)
8350 #define IEnumSTATPROPSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
8352 #endif
8354 HRESULT CALLBACK IEnumSTATPROPSTG_RemoteNext_Proxy(
8355 IEnumSTATPROPSTG* This,
8356 ULONG celt,
8357 STATPROPSTG* rgelt,
8358 ULONG* pceltFetched);
8359 void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(
8360 struct IRpcStubBuffer* This,
8361 struct IRpcChannelBuffer* pRpcChannelBuffer,
8362 PRPC_MESSAGE pRpcMessage,
8363 DWORD* pdwStubPhase);
8364 HRESULT CALLBACK IEnumSTATPROPSTG_Next_Proxy(
8365 IEnumSTATPROPSTG* This,
8366 ULONG celt,
8367 STATPROPSTG* rgelt,
8368 ULONG* pceltFetched);
8369 HRESULT __RPC_STUB IEnumSTATPROPSTG_Next_Stub(
8370 IEnumSTATPROPSTG* This,
8371 ULONG celt,
8372 STATPROPSTG* rgelt,
8373 ULONG* pceltFetched);
8374 HRESULT CALLBACK IEnumSTATPROPSTG_Skip_Proxy(
8375 IEnumSTATPROPSTG* This,
8376 ULONG celt);
8377 void __RPC_STUB IEnumSTATPROPSTG_Skip_Stub(
8378 struct IRpcStubBuffer* This,
8379 struct IRpcChannelBuffer* pRpcChannelBuffer,
8380 PRPC_MESSAGE pRpcMessage,
8381 DWORD* pdwStubPhase);
8382 HRESULT CALLBACK IEnumSTATPROPSTG_Reset_Proxy(
8383 IEnumSTATPROPSTG* This);
8384 void __RPC_STUB IEnumSTATPROPSTG_Reset_Stub(
8385 struct IRpcStubBuffer* This,
8386 struct IRpcChannelBuffer* pRpcChannelBuffer,
8387 PRPC_MESSAGE pRpcMessage,
8388 DWORD* pdwStubPhase);
8389 HRESULT CALLBACK IEnumSTATPROPSTG_Clone_Proxy(
8390 IEnumSTATPROPSTG* This,
8391 IEnumSTATPROPSTG** ppenum);
8392 void __RPC_STUB IEnumSTATPROPSTG_Clone_Stub(
8393 struct IRpcStubBuffer* This,
8394 struct IRpcChannelBuffer* pRpcChannelBuffer,
8395 PRPC_MESSAGE pRpcMessage,
8396 DWORD* pdwStubPhase);
8398 typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
8400 /*****************************************************************************
8401 * IEnumSTATPROPSETSTG interface
8403 DEFINE_GUID(IID_IEnumSTATPROPSETSTG, 0x0000013b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8404 #if defined(__cplusplus) && !defined(CINTERFACE)
8405 struct IEnumSTATPROPSETSTG: IUnknown {
8407 virtual HRESULT CALLBACK Next(
8408 ULONG celt,
8409 STATPROPSETSTG* rgelt,
8410 ULONG* pceltFetched) = 0;
8412 virtual HRESULT CALLBACK Skip(
8413 ULONG celt) = 0;
8415 virtual HRESULT CALLBACK Reset(
8416 ) = 0;
8418 virtual HRESULT CALLBACK Clone(
8419 IEnumSTATPROPSETSTG** ppenum) = 0;
8421 } ICOM_COM_INTERFACE_ATTRIBUTE;
8422 #else
8423 typedef struct IEnumSTATPROPSETSTGVtbl IEnumSTATPROPSETSTGVtbl;
8424 struct IEnumSTATPROPSETSTG {
8425 const IEnumSTATPROPSETSTGVtbl* lpVtbl;
8427 struct IEnumSTATPROPSETSTGVtbl {
8428 ICOM_MSVTABLE_COMPAT_FIELDS
8430 /*** IUnknown methods ***/
8431 HRESULT (CALLBACK *QueryInterface)(
8432 IEnumSTATPROPSETSTG* This,
8433 REFIID riid,
8434 void** ppvObject);
8436 ULONG (CALLBACK *AddRef)(
8437 IEnumSTATPROPSETSTG* This);
8439 ULONG (CALLBACK *Release)(
8440 IEnumSTATPROPSETSTG* This);
8442 /*** IEnumSTATPROPSETSTG methods ***/
8443 HRESULT (CALLBACK *Next)(
8444 IEnumSTATPROPSETSTG* This,
8445 ULONG celt,
8446 STATPROPSETSTG* rgelt,
8447 ULONG* pceltFetched);
8449 HRESULT (CALLBACK *Skip)(
8450 IEnumSTATPROPSETSTG* This,
8451 ULONG celt);
8453 HRESULT (CALLBACK *Reset)(
8454 IEnumSTATPROPSETSTG* This);
8456 HRESULT (CALLBACK *Clone)(
8457 IEnumSTATPROPSETSTG* This,
8458 IEnumSTATPROPSETSTG** ppenum);
8462 #define IEnumSTATPROPSETSTG_IMETHODS \
8463 IUnknown_IMETHODS \
8464 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATPROPSETSTG*,rgelt,ULONG*,pceltFetched) \
8465 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
8466 ICOM_METHOD (HRESULT,Reset) \
8467 ICOM_METHOD1 (HRESULT,Clone,IEnumSTATPROPSETSTG**,ppenum)
8469 /*** IUnknown methods ***/
8470 #define IEnumSTATPROPSETSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8471 #define IEnumSTATPROPSETSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
8472 #define IEnumSTATPROPSETSTG_Release(p) (p)->lpVtbl->Release(p)
8473 /*** IEnumSTATPROPSETSTG methods ***/
8474 #define IEnumSTATPROPSETSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
8475 #define IEnumSTATPROPSETSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
8476 #define IEnumSTATPROPSETSTG_Reset(p) (p)->lpVtbl->Reset(p)
8477 #define IEnumSTATPROPSETSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
8479 #endif
8481 HRESULT CALLBACK IEnumSTATPROPSETSTG_RemoteNext_Proxy(
8482 IEnumSTATPROPSETSTG* This,
8483 ULONG celt,
8484 STATPROPSETSTG* rgelt,
8485 ULONG* pceltFetched);
8486 void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(
8487 struct IRpcStubBuffer* This,
8488 struct IRpcChannelBuffer* pRpcChannelBuffer,
8489 PRPC_MESSAGE pRpcMessage,
8490 DWORD* pdwStubPhase);
8491 HRESULT CALLBACK IEnumSTATPROPSETSTG_Next_Proxy(
8492 IEnumSTATPROPSETSTG* This,
8493 ULONG celt,
8494 STATPROPSETSTG* rgelt,
8495 ULONG* pceltFetched);
8496 HRESULT __RPC_STUB IEnumSTATPROPSETSTG_Next_Stub(
8497 IEnumSTATPROPSETSTG* This,
8498 ULONG celt,
8499 STATPROPSETSTG* rgelt,
8500 ULONG* pceltFetched);
8501 HRESULT CALLBACK IEnumSTATPROPSETSTG_Skip_Proxy(
8502 IEnumSTATPROPSETSTG* This,
8503 ULONG celt);
8504 void __RPC_STUB IEnumSTATPROPSETSTG_Skip_Stub(
8505 struct IRpcStubBuffer* This,
8506 struct IRpcChannelBuffer* pRpcChannelBuffer,
8507 PRPC_MESSAGE pRpcMessage,
8508 DWORD* pdwStubPhase);
8509 HRESULT CALLBACK IEnumSTATPROPSETSTG_Reset_Proxy(
8510 IEnumSTATPROPSETSTG* This);
8511 void __RPC_STUB IEnumSTATPROPSETSTG_Reset_Stub(
8512 struct IRpcStubBuffer* This,
8513 struct IRpcChannelBuffer* pRpcChannelBuffer,
8514 PRPC_MESSAGE pRpcMessage,
8515 DWORD* pdwStubPhase);
8516 HRESULT CALLBACK IEnumSTATPROPSETSTG_Clone_Proxy(
8517 IEnumSTATPROPSETSTG* This,
8518 IEnumSTATPROPSETSTG** ppenum);
8519 void __RPC_STUB IEnumSTATPROPSETSTG_Clone_Stub(
8520 struct IRpcStubBuffer* This,
8521 struct IRpcChannelBuffer* pRpcChannelBuffer,
8522 PRPC_MESSAGE pRpcMessage,
8523 DWORD* pdwStubPhase);
8525 typedef struct IClientSecurity IClientSecurity;
8526 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
8527 DWORD dwAuthnSvc;
8528 DWORD dwAuthzSvc;
8529 OLECHAR *pPrincipalName;
8530 HRESULT hr;
8531 } SOLE_AUTHENTICATION_SERVICE;
8533 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
8535 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
8536 EOAC_NONE = 0x0,
8537 EOAC_MUTUAL_AUTH = 0x1,
8538 EOAC_CLOAKING = 0x10,
8539 EOAC_SECURE_REFS = 0x2,
8540 EOAC_ACCESS_CONTROL = 0x4,
8541 EOAC_APPID = 0x8
8542 } EOLE_AUTHENTICATION_CAPABILITIES;
8544 /*****************************************************************************
8545 * IClientSecurity interface
8547 DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8548 #if defined(__cplusplus) && !defined(CINTERFACE)
8549 struct IClientSecurity: IUnknown {
8551 virtual HRESULT CALLBACK QueryBlanket(
8552 IUnknown* pProxy,
8553 DWORD* pAuthnSvc,
8554 DWORD* pAuthzSvc,
8555 OLECHAR** pServerPrincName,
8556 DWORD* pAuthnLevel,
8557 DWORD* pImpLevel,
8558 void** pAuthInfo,
8559 DWORD* pCapabilites) = 0;
8561 virtual HRESULT CALLBACK SetBlanket(
8562 IUnknown* pProxy,
8563 DWORD AuthnSvc,
8564 DWORD AuthzSvc,
8565 OLECHAR* pServerPrincName,
8566 DWORD AuthnLevel,
8567 DWORD ImpLevel,
8568 void* pAuthInfo,
8569 DWORD Capabilities) = 0;
8571 virtual HRESULT CALLBACK CopyProxy(
8572 IUnknown* pProxy,
8573 IUnknown** ppCopy) = 0;
8575 } ICOM_COM_INTERFACE_ATTRIBUTE;
8576 #else
8577 typedef struct IClientSecurityVtbl IClientSecurityVtbl;
8578 struct IClientSecurity {
8579 const IClientSecurityVtbl* lpVtbl;
8581 struct IClientSecurityVtbl {
8582 ICOM_MSVTABLE_COMPAT_FIELDS
8584 /*** IUnknown methods ***/
8585 HRESULT (CALLBACK *QueryInterface)(
8586 IClientSecurity* This,
8587 REFIID riid,
8588 void** ppvObject);
8590 ULONG (CALLBACK *AddRef)(
8591 IClientSecurity* This);
8593 ULONG (CALLBACK *Release)(
8594 IClientSecurity* This);
8596 /*** IClientSecurity methods ***/
8597 HRESULT (CALLBACK *QueryBlanket)(
8598 IClientSecurity* This,
8599 IUnknown* pProxy,
8600 DWORD* pAuthnSvc,
8601 DWORD* pAuthzSvc,
8602 OLECHAR** pServerPrincName,
8603 DWORD* pAuthnLevel,
8604 DWORD* pImpLevel,
8605 void** pAuthInfo,
8606 DWORD* pCapabilites);
8608 HRESULT (CALLBACK *SetBlanket)(
8609 IClientSecurity* This,
8610 IUnknown* pProxy,
8611 DWORD AuthnSvc,
8612 DWORD AuthzSvc,
8613 OLECHAR* pServerPrincName,
8614 DWORD AuthnLevel,
8615 DWORD ImpLevel,
8616 void* pAuthInfo,
8617 DWORD Capabilities);
8619 HRESULT (CALLBACK *CopyProxy)(
8620 IClientSecurity* This,
8621 IUnknown* pProxy,
8622 IUnknown** ppCopy);
8626 #define IClientSecurity_IMETHODS \
8627 IUnknown_IMETHODS \
8628 ICOM_METHOD8 (HRESULT,QueryBlanket,IUnknown*,pProxy,DWORD*,pAuthnSvc,DWORD*,pAuthzSvc,OLECHAR**,pServerPrincName,DWORD*,pAuthnLevel,DWORD*,pImpLevel,void**,pAuthInfo,DWORD*,pCapabilites) \
8629 ICOM_METHOD8 (HRESULT,SetBlanket,IUnknown*,pProxy,DWORD,AuthnSvc,DWORD,AuthzSvc,OLECHAR*,pServerPrincName,DWORD,AuthnLevel,DWORD,ImpLevel,void*,pAuthInfo,DWORD,Capabilities) \
8630 ICOM_METHOD2 (HRESULT,CopyProxy,IUnknown*,pProxy,IUnknown**,ppCopy)
8632 /*** IUnknown methods ***/
8633 #define IClientSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8634 #define IClientSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
8635 #define IClientSecurity_Release(p) (p)->lpVtbl->Release(p)
8636 /*** IClientSecurity methods ***/
8637 #define IClientSecurity_QueryBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g,h)
8638 #define IClientSecurity_SetBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->SetBlanket(p,a,b,c,d,e,f,g,h)
8639 #define IClientSecurity_CopyProxy(p,a,b) (p)->lpVtbl->CopyProxy(p,a,b)
8641 #endif
8643 HRESULT CALLBACK IClientSecurity_QueryBlanket_Proxy(
8644 IClientSecurity* This,
8645 IUnknown* pProxy,
8646 DWORD* pAuthnSvc,
8647 DWORD* pAuthzSvc,
8648 OLECHAR** pServerPrincName,
8649 DWORD* pAuthnLevel,
8650 DWORD* pImpLevel,
8651 void** pAuthInfo,
8652 DWORD* pCapabilites);
8653 void __RPC_STUB IClientSecurity_QueryBlanket_Stub(
8654 struct IRpcStubBuffer* This,
8655 struct IRpcChannelBuffer* pRpcChannelBuffer,
8656 PRPC_MESSAGE pRpcMessage,
8657 DWORD* pdwStubPhase);
8658 HRESULT CALLBACK IClientSecurity_SetBlanket_Proxy(
8659 IClientSecurity* This,
8660 IUnknown* pProxy,
8661 DWORD AuthnSvc,
8662 DWORD AuthzSvc,
8663 OLECHAR* pServerPrincName,
8664 DWORD AuthnLevel,
8665 DWORD ImpLevel,
8666 void* pAuthInfo,
8667 DWORD Capabilities);
8668 void __RPC_STUB IClientSecurity_SetBlanket_Stub(
8669 struct IRpcStubBuffer* This,
8670 struct IRpcChannelBuffer* pRpcChannelBuffer,
8671 PRPC_MESSAGE pRpcMessage,
8672 DWORD* pdwStubPhase);
8673 HRESULT CALLBACK IClientSecurity_CopyProxy_Proxy(
8674 IClientSecurity* This,
8675 IUnknown* pProxy,
8676 IUnknown** ppCopy);
8677 void __RPC_STUB IClientSecurity_CopyProxy_Stub(
8678 struct IRpcStubBuffer* This,
8679 struct IRpcChannelBuffer* pRpcChannelBuffer,
8680 PRPC_MESSAGE pRpcMessage,
8681 DWORD* pdwStubPhase);
8683 typedef struct IServerSecurity IServerSecurity;
8684 /*****************************************************************************
8685 * IServerSecurity interface
8687 DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8688 #if defined(__cplusplus) && !defined(CINTERFACE)
8689 struct IServerSecurity: IUnknown {
8691 virtual HRESULT CALLBACK QueryBlanket(
8692 DWORD* pAuthnSvc,
8693 DWORD* pAuthzSvc,
8694 OLECHAR** pServerPrincName,
8695 DWORD* pAuthnLevel,
8696 DWORD* pImpLevel,
8697 void** pPrivs,
8698 DWORD* pCapabilities) = 0;
8700 virtual HRESULT CALLBACK ImpersonateClient(
8701 ) = 0;
8703 virtual HRESULT CALLBACK RevertToSelf(
8704 ) = 0;
8706 virtual BOOL CALLBACK IsImpersonating(
8707 ) = 0;
8709 } ICOM_COM_INTERFACE_ATTRIBUTE;
8710 #else
8711 typedef struct IServerSecurityVtbl IServerSecurityVtbl;
8712 struct IServerSecurity {
8713 const IServerSecurityVtbl* lpVtbl;
8715 struct IServerSecurityVtbl {
8716 ICOM_MSVTABLE_COMPAT_FIELDS
8718 /*** IUnknown methods ***/
8719 HRESULT (CALLBACK *QueryInterface)(
8720 IServerSecurity* This,
8721 REFIID riid,
8722 void** ppvObject);
8724 ULONG (CALLBACK *AddRef)(
8725 IServerSecurity* This);
8727 ULONG (CALLBACK *Release)(
8728 IServerSecurity* This);
8730 /*** IServerSecurity methods ***/
8731 HRESULT (CALLBACK *QueryBlanket)(
8732 IServerSecurity* This,
8733 DWORD* pAuthnSvc,
8734 DWORD* pAuthzSvc,
8735 OLECHAR** pServerPrincName,
8736 DWORD* pAuthnLevel,
8737 DWORD* pImpLevel,
8738 void** pPrivs,
8739 DWORD* pCapabilities);
8741 HRESULT (CALLBACK *ImpersonateClient)(
8742 IServerSecurity* This);
8744 HRESULT (CALLBACK *RevertToSelf)(
8745 IServerSecurity* This);
8747 BOOL (CALLBACK *IsImpersonating)(
8748 IServerSecurity* This);
8752 #define IServerSecurity_IMETHODS \
8753 IUnknown_IMETHODS \
8754 ICOM_METHOD7 (HRESULT,QueryBlanket,DWORD*,pAuthnSvc,DWORD*,pAuthzSvc,OLECHAR**,pServerPrincName,DWORD*,pAuthnLevel,DWORD*,pImpLevel,void**,pPrivs,DWORD*,pCapabilities) \
8755 ICOM_METHOD (HRESULT,ImpersonateClient) \
8756 ICOM_METHOD (HRESULT,RevertToSelf) \
8757 ICOM_METHOD (BOOL,IsImpersonating)
8759 /*** IUnknown methods ***/
8760 #define IServerSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8761 #define IServerSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
8762 #define IServerSecurity_Release(p) (p)->lpVtbl->Release(p)
8763 /*** IServerSecurity methods ***/
8764 #define IServerSecurity_QueryBlanket(p,a,b,c,d,e,f,g) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g)
8765 #define IServerSecurity_ImpersonateClient(p) (p)->lpVtbl->ImpersonateClient(p)
8766 #define IServerSecurity_RevertToSelf(p) (p)->lpVtbl->RevertToSelf(p)
8767 #define IServerSecurity_IsImpersonating(p) (p)->lpVtbl->IsImpersonating(p)
8769 #endif
8771 HRESULT CALLBACK IServerSecurity_QueryBlanket_Proxy(
8772 IServerSecurity* This,
8773 DWORD* pAuthnSvc,
8774 DWORD* pAuthzSvc,
8775 OLECHAR** pServerPrincName,
8776 DWORD* pAuthnLevel,
8777 DWORD* pImpLevel,
8778 void** pPrivs,
8779 DWORD* pCapabilities);
8780 void __RPC_STUB IServerSecurity_QueryBlanket_Stub(
8781 struct IRpcStubBuffer* This,
8782 struct IRpcChannelBuffer* pRpcChannelBuffer,
8783 PRPC_MESSAGE pRpcMessage,
8784 DWORD* pdwStubPhase);
8785 HRESULT CALLBACK IServerSecurity_ImpersonateClient_Proxy(
8786 IServerSecurity* This);
8787 void __RPC_STUB IServerSecurity_ImpersonateClient_Stub(
8788 struct IRpcStubBuffer* This,
8789 struct IRpcChannelBuffer* pRpcChannelBuffer,
8790 PRPC_MESSAGE pRpcMessage,
8791 DWORD* pdwStubPhase);
8792 HRESULT CALLBACK IServerSecurity_RevertToSelf_Proxy(
8793 IServerSecurity* This);
8794 void __RPC_STUB IServerSecurity_RevertToSelf_Stub(
8795 struct IRpcStubBuffer* This,
8796 struct IRpcChannelBuffer* pRpcChannelBuffer,
8797 PRPC_MESSAGE pRpcMessage,
8798 DWORD* pdwStubPhase);
8799 BOOL CALLBACK IServerSecurity_IsImpersonating_Proxy(
8800 IServerSecurity* This);
8801 void __RPC_STUB IServerSecurity_IsImpersonating_Stub(
8802 struct IRpcStubBuffer* This,
8803 struct IRpcChannelBuffer* pRpcChannelBuffer,
8804 PRPC_MESSAGE pRpcMessage,
8805 DWORD* pdwStubPhase);
8807 typedef struct IAsyncSetup IAsyncSetup;
8808 /*****************************************************************************
8809 * IAsyncSetup interface
8811 DEFINE_GUID(IID_IAsyncSetup, 0x00000024, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8812 #if defined(__cplusplus) && !defined(CINTERFACE)
8813 struct IAsyncSetup: IUnknown {
8815 virtual HRESULT CALLBACK GetAsyncManager(
8816 REFIID riid,
8817 IUnknown* pOuter,
8818 DWORD dwFlags,
8819 IUnknown** ppInner,
8820 IAsyncManager** ppAsyncMgr) = 0;
8822 } ICOM_COM_INTERFACE_ATTRIBUTE;
8823 #else
8824 typedef struct IAsyncSetupVtbl IAsyncSetupVtbl;
8825 struct IAsyncSetup {
8826 const IAsyncSetupVtbl* lpVtbl;
8828 struct IAsyncSetupVtbl {
8829 ICOM_MSVTABLE_COMPAT_FIELDS
8831 /*** IUnknown methods ***/
8832 HRESULT (CALLBACK *QueryInterface)(
8833 IAsyncSetup* This,
8834 REFIID riid,
8835 void** ppvObject);
8837 ULONG (CALLBACK *AddRef)(
8838 IAsyncSetup* This);
8840 ULONG (CALLBACK *Release)(
8841 IAsyncSetup* This);
8843 /*** IAsyncSetup methods ***/
8844 HRESULT (CALLBACK *GetAsyncManager)(
8845 IAsyncSetup* This,
8846 REFIID riid,
8847 IUnknown* pOuter,
8848 DWORD dwFlags,
8849 IUnknown** ppInner,
8850 IAsyncManager** ppAsyncMgr);
8854 #define IAsyncSetup_IMETHODS \
8855 IUnknown_IMETHODS \
8856 ICOM_METHOD5 (HRESULT,GetAsyncManager,REFIID,riid,IUnknown*,pOuter,DWORD,dwFlags,IUnknown**,ppInner,IAsyncManager**,ppAsyncMgr)
8858 /*** IUnknown methods ***/
8859 #define IAsyncSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8860 #define IAsyncSetup_AddRef(p) (p)->lpVtbl->AddRef(p)
8861 #define IAsyncSetup_Release(p) (p)->lpVtbl->Release(p)
8862 /*** IAsyncSetup methods ***/
8863 #define IAsyncSetup_GetAsyncManager(p,a,b,c,d,e) (p)->lpVtbl->GetAsyncManager(p,a,b,c,d,e)
8865 #endif
8867 HRESULT CALLBACK IAsyncSetup_GetAsyncManager_Proxy(
8868 IAsyncSetup* This,
8869 REFIID riid,
8870 IUnknown* pOuter,
8871 DWORD dwFlags,
8872 IUnknown** ppInner,
8873 IAsyncManager** ppAsyncMgr);
8874 void __RPC_STUB IAsyncSetup_GetAsyncManager_Stub(
8875 struct IRpcStubBuffer* This,
8876 struct IRpcChannelBuffer* pRpcChannelBuffer,
8877 PRPC_MESSAGE pRpcMessage,
8878 DWORD* pdwStubPhase);
8880 typedef enum tagDCOM_CALL_STATE {
8881 DCOM_NONE = 0,
8882 DCOM_CALL_COMPLETE = 1,
8883 DCOM_CALL_CANCELED = 2
8884 } DCOM_CALL_STATE;
8886 /*****************************************************************************
8887 * IAsyncManager interface
8889 DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8890 #if defined(__cplusplus) && !defined(CINTERFACE)
8891 struct IAsyncManager: IUnknown {
8893 virtual HRESULT CALLBACK CompleteCall(
8894 HRESULT Result) = 0;
8896 virtual HRESULT CALLBACK GetCallContext(
8897 REFIID riid,
8898 void** pInterface) = 0;
8900 virtual HRESULT CALLBACK GetState(
8901 ULONG* pulStateFlags) = 0;
8903 } ICOM_COM_INTERFACE_ATTRIBUTE;
8904 #else
8905 typedef struct IAsyncManagerVtbl IAsyncManagerVtbl;
8906 struct IAsyncManager {
8907 const IAsyncManagerVtbl* lpVtbl;
8909 struct IAsyncManagerVtbl {
8910 ICOM_MSVTABLE_COMPAT_FIELDS
8912 /*** IUnknown methods ***/
8913 HRESULT (CALLBACK *QueryInterface)(
8914 IAsyncManager* This,
8915 REFIID riid,
8916 void** ppvObject);
8918 ULONG (CALLBACK *AddRef)(
8919 IAsyncManager* This);
8921 ULONG (CALLBACK *Release)(
8922 IAsyncManager* This);
8924 /*** IAsyncManager methods ***/
8925 HRESULT (CALLBACK *CompleteCall)(
8926 IAsyncManager* This,
8927 HRESULT Result);
8929 HRESULT (CALLBACK *GetCallContext)(
8930 IAsyncManager* This,
8931 REFIID riid,
8932 void** pInterface);
8934 HRESULT (CALLBACK *GetState)(
8935 IAsyncManager* This,
8936 ULONG* pulStateFlags);
8940 #define IAsyncManager_IMETHODS \
8941 IUnknown_IMETHODS \
8942 ICOM_METHOD1 (HRESULT,CompleteCall,HRESULT,Result) \
8943 ICOM_METHOD2 (HRESULT,GetCallContext,REFIID,riid,void**,pInterface) \
8944 ICOM_METHOD1 (HRESULT,GetState,ULONG*,pulStateFlags)
8946 /*** IUnknown methods ***/
8947 #define IAsyncManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8948 #define IAsyncManager_AddRef(p) (p)->lpVtbl->AddRef(p)
8949 #define IAsyncManager_Release(p) (p)->lpVtbl->Release(p)
8950 /*** IAsyncManager methods ***/
8951 #define IAsyncManager_CompleteCall(p,a) (p)->lpVtbl->CompleteCall(p,a)
8952 #define IAsyncManager_GetCallContext(p,a,b) (p)->lpVtbl->GetCallContext(p,a,b)
8953 #define IAsyncManager_GetState(p,a) (p)->lpVtbl->GetState(p,a)
8955 #endif
8957 HRESULT CALLBACK IAsyncManager_CompleteCall_Proxy(
8958 IAsyncManager* This,
8959 HRESULT Result);
8960 void __RPC_STUB IAsyncManager_CompleteCall_Stub(
8961 struct IRpcStubBuffer* This,
8962 struct IRpcChannelBuffer* pRpcChannelBuffer,
8963 PRPC_MESSAGE pRpcMessage,
8964 DWORD* pdwStubPhase);
8965 HRESULT CALLBACK IAsyncManager_GetCallContext_Proxy(
8966 IAsyncManager* This,
8967 REFIID riid,
8968 void** pInterface);
8969 void __RPC_STUB IAsyncManager_GetCallContext_Stub(
8970 struct IRpcStubBuffer* This,
8971 struct IRpcChannelBuffer* pRpcChannelBuffer,
8972 PRPC_MESSAGE pRpcMessage,
8973 DWORD* pdwStubPhase);
8974 HRESULT CALLBACK IAsyncManager_GetState_Proxy(
8975 IAsyncManager* This,
8976 ULONG* pulStateFlags);
8977 void __RPC_STUB IAsyncManager_GetState_Stub(
8978 struct IRpcStubBuffer* This,
8979 struct IRpcChannelBuffer* pRpcChannelBuffer,
8980 PRPC_MESSAGE pRpcMessage,
8981 DWORD* pdwStubPhase);
8983 #ifdef __cplusplus
8985 #endif
8986 #endif /* __WIDL_OBJIDL_H */