1 /*** Autogenerated by WIDL 0.1 from objidl.idl - Do not edit ***/
5 #ifndef __WIDL_OBJIDL_H
6 #define __WIDL_OBJIDL_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 /*****************************************************************************
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 STDMETHODCALLTYPE GetUnmarshalClass(
36 virtual HRESULT STDMETHODCALLTYPE GetMarshalSizeMax(
44 virtual HRESULT STDMETHODCALLTYPE MarshalInterface(
52 virtual HRESULT STDMETHODCALLTYPE UnmarshalInterface(
57 virtual HRESULT STDMETHODCALLTYPE ReleaseMarshalData(
60 virtual HRESULT STDMETHODCALLTYPE DisconnectObject(
61 DWORD dwReserved) = 0;
63 } ICOM_COM_INTERFACE_ATTRIBUTE;
65 typedef struct IMarshalVtbl IMarshalVtbl;
67 const IMarshalVtbl* lpVtbl;
70 ICOM_MSVTABLE_COMPAT_FIELDS
72 /*** IUnknown methods ***/
73 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
78 ULONG (STDMETHODCALLTYPE *AddRef)(
81 ULONG (STDMETHODCALLTYPE *Release)(
84 /*** IMarshal methods ***/
85 HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
94 HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
103 HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
112 HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
118 HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
122 HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
128 #define IMarshal_IMETHODS \
129 /*** IUnknown methods ***/ \
130 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
131 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
132 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
133 /*** IMarshal methods ***/ \
134 HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(INTERFACE *This, REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags, CLSID* pCid); \
135 HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(INTERFACE *This, REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags, DWORD* pSize); \
136 HRESULT (STDMETHODCALLTYPE *MarshalInterface)(INTERFACE *This, IStream* pStm, REFIID riid, void* pv, DWORD dwDestContext, void* pvDestContext, DWORD mshlflags); \
137 HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(INTERFACE *This, IStream* pStm, REFIID riid, void** ppv); \
138 HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(INTERFACE *This, IStream* pStm); \
139 HRESULT (STDMETHODCALLTYPE *DisconnectObject)(INTERFACE *This, DWORD dwReserved);
141 /*** IUnknown methods ***/
142 #define IMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
143 #define IMarshal_AddRef(p) (p)->lpVtbl->AddRef(p)
144 #define IMarshal_Release(p) (p)->lpVtbl->Release(p)
145 /*** IMarshal methods ***/
146 #define IMarshal_GetUnmarshalClass(p,a,b,c,d,e,f) (p)->lpVtbl->GetUnmarshalClass(p,a,b,c,d,e,f)
147 #define IMarshal_GetMarshalSizeMax(p,a,b,c,d,e,f) (p)->lpVtbl->GetMarshalSizeMax(p,a,b,c,d,e,f)
148 #define IMarshal_MarshalInterface(p,a,b,c,d,e,f) (p)->lpVtbl->MarshalInterface(p,a,b,c,d,e,f)
149 #define IMarshal_UnmarshalInterface(p,a,b,c) (p)->lpVtbl->UnmarshalInterface(p,a,b,c)
150 #define IMarshal_ReleaseMarshalData(p,a) (p)->lpVtbl->ReleaseMarshalData(p,a)
151 #define IMarshal_DisconnectObject(p,a) (p)->lpVtbl->DisconnectObject(p,a)
155 HRESULT CALLBACK IMarshal_GetUnmarshalClass_Proxy(
163 void __RPC_STUB IMarshal_GetUnmarshalClass_Stub(
164 struct IRpcStubBuffer* This,
165 struct IRpcChannelBuffer* pRpcChannelBuffer,
166 PRPC_MESSAGE pRpcMessage,
167 DWORD* pdwStubPhase);
168 HRESULT CALLBACK IMarshal_GetMarshalSizeMax_Proxy(
176 void __RPC_STUB IMarshal_GetMarshalSizeMax_Stub(
177 struct IRpcStubBuffer* This,
178 struct IRpcChannelBuffer* pRpcChannelBuffer,
179 PRPC_MESSAGE pRpcMessage,
180 DWORD* pdwStubPhase);
181 HRESULT CALLBACK IMarshal_MarshalInterface_Proxy(
189 void __RPC_STUB IMarshal_MarshalInterface_Stub(
190 struct IRpcStubBuffer* This,
191 struct IRpcChannelBuffer* pRpcChannelBuffer,
192 PRPC_MESSAGE pRpcMessage,
193 DWORD* pdwStubPhase);
194 HRESULT CALLBACK IMarshal_UnmarshalInterface_Proxy(
199 void __RPC_STUB IMarshal_UnmarshalInterface_Stub(
200 struct IRpcStubBuffer* This,
201 struct IRpcChannelBuffer* pRpcChannelBuffer,
202 PRPC_MESSAGE pRpcMessage,
203 DWORD* pdwStubPhase);
204 HRESULT CALLBACK IMarshal_ReleaseMarshalData_Proxy(
207 void __RPC_STUB IMarshal_ReleaseMarshalData_Stub(
208 struct IRpcStubBuffer* This,
209 struct IRpcChannelBuffer* pRpcChannelBuffer,
210 PRPC_MESSAGE pRpcMessage,
211 DWORD* pdwStubPhase);
212 HRESULT CALLBACK IMarshal_DisconnectObject_Proxy(
215 void __RPC_STUB IMarshal_DisconnectObject_Stub(
216 struct IRpcStubBuffer* This,
217 struct IRpcChannelBuffer* pRpcChannelBuffer,
218 PRPC_MESSAGE pRpcMessage,
219 DWORD* pdwStubPhase);
221 typedef struct IStdMarshalInfo IStdMarshalInfo;
222 typedef IStdMarshalInfo *LPSTDMARSHALINFO;
224 /*****************************************************************************
225 * IStdMarshalInfo interface
227 DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
228 #if defined(__cplusplus) && !defined(CINTERFACE)
229 struct IStdMarshalInfo: IUnknown {
231 virtual HRESULT STDMETHODCALLTYPE GetClassForHandler(
236 } ICOM_COM_INTERFACE_ATTRIBUTE;
238 typedef struct IStdMarshalInfoVtbl IStdMarshalInfoVtbl;
239 struct IStdMarshalInfo {
240 const IStdMarshalInfoVtbl* lpVtbl;
242 struct IStdMarshalInfoVtbl {
243 ICOM_MSVTABLE_COMPAT_FIELDS
245 /*** IUnknown methods ***/
246 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
247 IStdMarshalInfo* This,
251 ULONG (STDMETHODCALLTYPE *AddRef)(
252 IStdMarshalInfo* This);
254 ULONG (STDMETHODCALLTYPE *Release)(
255 IStdMarshalInfo* This);
257 /*** IStdMarshalInfo methods ***/
258 HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(
259 IStdMarshalInfo* This,
266 #define IStdMarshalInfo_IMETHODS \
267 /*** IUnknown methods ***/ \
268 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
269 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
270 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
271 /*** IStdMarshalInfo methods ***/ \
272 HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(INTERFACE *This, DWORD dwDestContext, void* pvDestContext, CLSID* pClsid);
274 /*** IUnknown methods ***/
275 #define IStdMarshalInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
276 #define IStdMarshalInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
277 #define IStdMarshalInfo_Release(p) (p)->lpVtbl->Release(p)
278 /*** IStdMarshalInfo methods ***/
279 #define IStdMarshalInfo_GetClassForHandler(p,a,b,c) (p)->lpVtbl->GetClassForHandler(p,a,b,c)
283 HRESULT CALLBACK IStdMarshalInfo_GetClassForHandler_Proxy(
284 IStdMarshalInfo* This,
288 void __RPC_STUB IStdMarshalInfo_GetClassForHandler_Stub(
289 struct IRpcStubBuffer* This,
290 struct IRpcChannelBuffer* pRpcChannelBuffer,
291 PRPC_MESSAGE pRpcMessage,
292 DWORD* pdwStubPhase);
294 typedef struct IExternalConnection IExternalConnection;
295 typedef IExternalConnection *LPEXTERNALCONNECTION;
297 typedef enum tagEXTCONN {
298 EXTCONN_STRONG = 0x1,
300 EXTCONN_CALLABLE = 0x4
303 /*****************************************************************************
304 * IExternalConnection interface
306 DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
307 #if defined(__cplusplus) && !defined(CINTERFACE)
308 struct IExternalConnection: IUnknown {
310 virtual DWORD STDMETHODCALLTYPE AddConnection(
314 virtual DWORD STDMETHODCALLTYPE ReleaseConnection(
317 BOOL fLastReleaseCloses) = 0;
319 } ICOM_COM_INTERFACE_ATTRIBUTE;
321 typedef struct IExternalConnectionVtbl IExternalConnectionVtbl;
322 struct IExternalConnection {
323 const IExternalConnectionVtbl* lpVtbl;
325 struct IExternalConnectionVtbl {
326 ICOM_MSVTABLE_COMPAT_FIELDS
328 /*** IUnknown methods ***/
329 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
330 IExternalConnection* This,
334 ULONG (STDMETHODCALLTYPE *AddRef)(
335 IExternalConnection* This);
337 ULONG (STDMETHODCALLTYPE *Release)(
338 IExternalConnection* This);
340 /*** IExternalConnection methods ***/
341 DWORD (STDMETHODCALLTYPE *AddConnection)(
342 IExternalConnection* This,
346 DWORD (STDMETHODCALLTYPE *ReleaseConnection)(
347 IExternalConnection* This,
350 BOOL fLastReleaseCloses);
354 #define IExternalConnection_IMETHODS \
355 /*** IUnknown methods ***/ \
356 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
357 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
358 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
359 /*** IExternalConnection methods ***/ \
360 DWORD (STDMETHODCALLTYPE *AddConnection)(INTERFACE *This, DWORD extconn, DWORD reserved); \
361 DWORD (STDMETHODCALLTYPE *ReleaseConnection)(INTERFACE *This, DWORD extconn, DWORD reserved, BOOL fLastReleaseCloses);
363 /*** IUnknown methods ***/
364 #define IExternalConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
365 #define IExternalConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
366 #define IExternalConnection_Release(p) (p)->lpVtbl->Release(p)
367 /*** IExternalConnection methods ***/
368 #define IExternalConnection_AddConnection(p,a,b) (p)->lpVtbl->AddConnection(p,a,b)
369 #define IExternalConnection_ReleaseConnection(p,a,b,c) (p)->lpVtbl->ReleaseConnection(p,a,b,c)
373 DWORD CALLBACK IExternalConnection_AddConnection_Proxy(
374 IExternalConnection* This,
377 void __RPC_STUB IExternalConnection_AddConnection_Stub(
378 struct IRpcStubBuffer* This,
379 struct IRpcChannelBuffer* pRpcChannelBuffer,
380 PRPC_MESSAGE pRpcMessage,
381 DWORD* pdwStubPhase);
382 DWORD CALLBACK IExternalConnection_ReleaseConnection_Proxy(
383 IExternalConnection* This,
386 BOOL fLastReleaseCloses);
387 void __RPC_STUB IExternalConnection_ReleaseConnection_Stub(
388 struct IRpcStubBuffer* This,
389 struct IRpcChannelBuffer* pRpcChannelBuffer,
390 PRPC_MESSAGE pRpcMessage,
391 DWORD* pdwStubPhase);
393 typedef struct IMultiQI IMultiQI;
394 typedef IMultiQI *LPMULTIQI;
396 typedef struct tagMULTI_QI {
402 /*****************************************************************************
405 DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
406 #if defined(__cplusplus) && !defined(CINTERFACE)
407 struct IMultiQI: IUnknown {
409 virtual HRESULT STDMETHODCALLTYPE QueryMultipleInterfaces(
411 MULTI_QI* pMQIs) = 0;
413 } ICOM_COM_INTERFACE_ATTRIBUTE;
415 typedef struct IMultiQIVtbl IMultiQIVtbl;
417 const IMultiQIVtbl* lpVtbl;
419 struct IMultiQIVtbl {
420 ICOM_MSVTABLE_COMPAT_FIELDS
422 /*** IUnknown methods ***/
423 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
428 ULONG (STDMETHODCALLTYPE *AddRef)(
431 ULONG (STDMETHODCALLTYPE *Release)(
434 /*** IMultiQI methods ***/
435 HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(
442 #define IMultiQI_IMETHODS \
443 /*** IUnknown methods ***/ \
444 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
445 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
446 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
447 /*** IMultiQI methods ***/ \
448 HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(INTERFACE *This, ULONG cMQIs, MULTI_QI* pMQIs);
450 /*** IUnknown methods ***/
451 #define IMultiQI_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
452 #define IMultiQI_AddRef(p) (p)->lpVtbl->AddRef(p)
453 #define IMultiQI_Release(p) (p)->lpVtbl->Release(p)
454 /*** IMultiQI methods ***/
455 #define IMultiQI_QueryMultipleInterfaces(p,a,b) (p)->lpVtbl->QueryMultipleInterfaces(p,a,b)
459 HRESULT CALLBACK IMultiQI_QueryMultipleInterfaces_Proxy(
463 void __RPC_STUB IMultiQI_QueryMultipleInterfaces_Stub(
464 struct IRpcStubBuffer* This,
465 struct IRpcChannelBuffer* pRpcChannelBuffer,
466 PRPC_MESSAGE pRpcMessage,
467 DWORD* pdwStubPhase);
469 typedef struct IMalloc IMalloc;
470 typedef IMalloc *LPMALLOC;
472 /*****************************************************************************
475 DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
476 #if defined(__cplusplus) && !defined(CINTERFACE)
477 struct IMalloc: IUnknown {
479 virtual LPVOID STDMETHODCALLTYPE Alloc(
482 virtual LPVOID STDMETHODCALLTYPE Realloc(
486 virtual void STDMETHODCALLTYPE Free(
489 virtual ULONG STDMETHODCALLTYPE GetSize(
492 virtual int STDMETHODCALLTYPE DidAlloc(
495 virtual void STDMETHODCALLTYPE HeapMinimize(
498 } ICOM_COM_INTERFACE_ATTRIBUTE;
500 typedef struct IMallocVtbl IMallocVtbl;
502 const IMallocVtbl* lpVtbl;
505 ICOM_MSVTABLE_COMPAT_FIELDS
507 /*** IUnknown methods ***/
508 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
513 ULONG (STDMETHODCALLTYPE *AddRef)(
516 ULONG (STDMETHODCALLTYPE *Release)(
519 /*** IMalloc methods ***/
520 LPVOID (STDMETHODCALLTYPE *Alloc)(
524 LPVOID (STDMETHODCALLTYPE *Realloc)(
529 void (STDMETHODCALLTYPE *Free)(
533 ULONG (STDMETHODCALLTYPE *GetSize)(
537 int (STDMETHODCALLTYPE *DidAlloc)(
541 void (STDMETHODCALLTYPE *HeapMinimize)(
546 #define IMalloc_IMETHODS \
547 /*** IUnknown methods ***/ \
548 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
549 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
550 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
551 /*** IMalloc methods ***/ \
552 LPVOID (STDMETHODCALLTYPE *Alloc)(INTERFACE *This, ULONG cb); \
553 LPVOID (STDMETHODCALLTYPE *Realloc)(INTERFACE *This, LPVOID pv, ULONG cb); \
554 void (STDMETHODCALLTYPE *Free)(INTERFACE *This, LPVOID pv); \
555 ULONG (STDMETHODCALLTYPE *GetSize)(INTERFACE *This, LPVOID pv); \
556 int (STDMETHODCALLTYPE *DidAlloc)(INTERFACE *This, LPVOID pv); \
557 void (STDMETHODCALLTYPE *HeapMinimize)(INTERFACE *This);
559 /*** IUnknown methods ***/
560 #define IMalloc_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
561 #define IMalloc_AddRef(p) (p)->lpVtbl->AddRef(p)
562 #define IMalloc_Release(p) (p)->lpVtbl->Release(p)
563 /*** IMalloc methods ***/
564 #define IMalloc_Alloc(p,a) (p)->lpVtbl->Alloc(p,a)
565 #define IMalloc_Realloc(p,a,b) (p)->lpVtbl->Realloc(p,a,b)
566 #define IMalloc_Free(p,a) (p)->lpVtbl->Free(p,a)
567 #define IMalloc_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
568 #define IMalloc_DidAlloc(p,a) (p)->lpVtbl->DidAlloc(p,a)
569 #define IMalloc_HeapMinimize(p) (p)->lpVtbl->HeapMinimize(p)
573 LPVOID CALLBACK IMalloc_Alloc_Proxy(
576 void __RPC_STUB IMalloc_Alloc_Stub(
577 struct IRpcStubBuffer* This,
578 struct IRpcChannelBuffer* pRpcChannelBuffer,
579 PRPC_MESSAGE pRpcMessage,
580 DWORD* pdwStubPhase);
581 LPVOID CALLBACK IMalloc_Realloc_Proxy(
585 void __RPC_STUB IMalloc_Realloc_Stub(
586 struct IRpcStubBuffer* This,
587 struct IRpcChannelBuffer* pRpcChannelBuffer,
588 PRPC_MESSAGE pRpcMessage,
589 DWORD* pdwStubPhase);
590 void CALLBACK IMalloc_Free_Proxy(
593 void __RPC_STUB IMalloc_Free_Stub(
594 struct IRpcStubBuffer* This,
595 struct IRpcChannelBuffer* pRpcChannelBuffer,
596 PRPC_MESSAGE pRpcMessage,
597 DWORD* pdwStubPhase);
598 ULONG CALLBACK IMalloc_GetSize_Proxy(
601 void __RPC_STUB IMalloc_GetSize_Stub(
602 struct IRpcStubBuffer* This,
603 struct IRpcChannelBuffer* pRpcChannelBuffer,
604 PRPC_MESSAGE pRpcMessage,
605 DWORD* pdwStubPhase);
606 int CALLBACK IMalloc_DidAlloc_Proxy(
609 void __RPC_STUB IMalloc_DidAlloc_Stub(
610 struct IRpcStubBuffer* This,
611 struct IRpcChannelBuffer* pRpcChannelBuffer,
612 PRPC_MESSAGE pRpcMessage,
613 DWORD* pdwStubPhase);
614 void CALLBACK IMalloc_HeapMinimize_Proxy(
616 void __RPC_STUB IMalloc_HeapMinimize_Stub(
617 struct IRpcStubBuffer* This,
618 struct IRpcChannelBuffer* pRpcChannelBuffer,
619 PRPC_MESSAGE pRpcMessage,
620 DWORD* pdwStubPhase);
622 typedef struct IMallocSpy IMallocSpy;
623 typedef IMallocSpy *LPMALLOCSPY;
625 /*****************************************************************************
626 * IMallocSpy interface
628 DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
629 #if defined(__cplusplus) && !defined(CINTERFACE)
630 struct IMallocSpy: IUnknown {
632 virtual ULONG STDMETHODCALLTYPE PreAlloc(
633 ULONG cbRequest) = 0;
635 virtual LPVOID STDMETHODCALLTYPE PostAlloc(
638 virtual LPVOID STDMETHODCALLTYPE PreFree(
642 virtual void STDMETHODCALLTYPE PostFree(
645 virtual ULONG STDMETHODCALLTYPE PreRealloc(
648 LPVOID* ppNewRequest,
651 virtual LPVOID STDMETHODCALLTYPE PostRealloc(
655 virtual LPVOID STDMETHODCALLTYPE PreGetSize(
659 virtual ULONG STDMETHODCALLTYPE PostGetSize(
663 virtual LPVOID STDMETHODCALLTYPE PreDidAlloc(
667 virtual int STDMETHODCALLTYPE PostDidAlloc(
672 virtual void STDMETHODCALLTYPE PreHeapMinimize(
675 virtual void STDMETHODCALLTYPE PostHeapMinimize(
678 } ICOM_COM_INTERFACE_ATTRIBUTE;
680 typedef struct IMallocSpyVtbl IMallocSpyVtbl;
682 const IMallocSpyVtbl* lpVtbl;
684 struct IMallocSpyVtbl {
685 ICOM_MSVTABLE_COMPAT_FIELDS
687 /*** IUnknown methods ***/
688 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
693 ULONG (STDMETHODCALLTYPE *AddRef)(
696 ULONG (STDMETHODCALLTYPE *Release)(
699 /*** IMallocSpy methods ***/
700 ULONG (STDMETHODCALLTYPE *PreAlloc)(
704 LPVOID (STDMETHODCALLTYPE *PostAlloc)(
708 LPVOID (STDMETHODCALLTYPE *PreFree)(
713 void (STDMETHODCALLTYPE *PostFree)(
717 ULONG (STDMETHODCALLTYPE *PreRealloc)(
721 LPVOID* ppNewRequest,
724 LPVOID (STDMETHODCALLTYPE *PostRealloc)(
729 LPVOID (STDMETHODCALLTYPE *PreGetSize)(
734 ULONG (STDMETHODCALLTYPE *PostGetSize)(
739 LPVOID (STDMETHODCALLTYPE *PreDidAlloc)(
744 int (STDMETHODCALLTYPE *PostDidAlloc)(
750 void (STDMETHODCALLTYPE *PreHeapMinimize)(
753 void (STDMETHODCALLTYPE *PostHeapMinimize)(
758 #define IMallocSpy_IMETHODS \
759 /*** IUnknown methods ***/ \
760 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
761 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
762 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
763 /*** IMallocSpy methods ***/ \
764 ULONG (STDMETHODCALLTYPE *PreAlloc)(INTERFACE *This, ULONG cbRequest); \
765 LPVOID (STDMETHODCALLTYPE *PostAlloc)(INTERFACE *This, LPVOID pActual); \
766 LPVOID (STDMETHODCALLTYPE *PreFree)(INTERFACE *This, LPVOID pRequest, BOOL fSpyed); \
767 void (STDMETHODCALLTYPE *PostFree)(INTERFACE *This, BOOL fSpyed); \
768 ULONG (STDMETHODCALLTYPE *PreRealloc)(INTERFACE *This, LPVOID pRequest, ULONG cbRequest, LPVOID* ppNewRequest, BOOL fSpyed); \
769 LPVOID (STDMETHODCALLTYPE *PostRealloc)(INTERFACE *This, LPVOID pActual, BOOL fSpyed); \
770 LPVOID (STDMETHODCALLTYPE *PreGetSize)(INTERFACE *This, LPVOID pRequest, BOOL fSpyed); \
771 ULONG (STDMETHODCALLTYPE *PostGetSize)(INTERFACE *This, ULONG cbActual, BOOL fSpyed); \
772 LPVOID (STDMETHODCALLTYPE *PreDidAlloc)(INTERFACE *This, LPVOID pRequest, BOOL fSpyed); \
773 int (STDMETHODCALLTYPE *PostDidAlloc)(INTERFACE *This, LPVOID pRequest, BOOL fSpyed, int fActual); \
774 void (STDMETHODCALLTYPE *PreHeapMinimize)(INTERFACE *This); \
775 void (STDMETHODCALLTYPE *PostHeapMinimize)(INTERFACE *This);
777 /*** IUnknown methods ***/
778 #define IMallocSpy_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
779 #define IMallocSpy_AddRef(p) (p)->lpVtbl->AddRef(p)
780 #define IMallocSpy_Release(p) (p)->lpVtbl->Release(p)
781 /*** IMallocSpy methods ***/
782 #define IMallocSpy_PreAlloc(p,a) (p)->lpVtbl->PreAlloc(p,a)
783 #define IMallocSpy_PostAlloc(p,a) (p)->lpVtbl->PostAlloc(p,a)
784 #define IMallocSpy_PreFree(p,a,b) (p)->lpVtbl->PreFree(p,a,b)
785 #define IMallocSpy_PostFree(p,a) (p)->lpVtbl->PostFree(p,a)
786 #define IMallocSpy_PreRealloc(p,a,b,c,d) (p)->lpVtbl->PreRealloc(p,a,b,c,d)
787 #define IMallocSpy_PostRealloc(p,a,b) (p)->lpVtbl->PostRealloc(p,a,b)
788 #define IMallocSpy_PreGetSize(p,a,b) (p)->lpVtbl->PreGetSize(p,a,b)
789 #define IMallocSpy_PostGetSize(p,a,b) (p)->lpVtbl->PostGetSize(p,a,b)
790 #define IMallocSpy_PreDidAlloc(p,a,b) (p)->lpVtbl->PreDidAlloc(p,a,b)
791 #define IMallocSpy_PostDidAlloc(p,a,b,c) (p)->lpVtbl->PostDidAlloc(p,a,b,c)
792 #define IMallocSpy_PreHeapMinimize(p) (p)->lpVtbl->PreHeapMinimize(p)
793 #define IMallocSpy_PostHeapMinimize(p) (p)->lpVtbl->PostHeapMinimize(p)
797 ULONG CALLBACK IMallocSpy_PreAlloc_Proxy(
800 void __RPC_STUB IMallocSpy_PreAlloc_Stub(
801 struct IRpcStubBuffer* This,
802 struct IRpcChannelBuffer* pRpcChannelBuffer,
803 PRPC_MESSAGE pRpcMessage,
804 DWORD* pdwStubPhase);
805 LPVOID CALLBACK IMallocSpy_PostAlloc_Proxy(
808 void __RPC_STUB IMallocSpy_PostAlloc_Stub(
809 struct IRpcStubBuffer* This,
810 struct IRpcChannelBuffer* pRpcChannelBuffer,
811 PRPC_MESSAGE pRpcMessage,
812 DWORD* pdwStubPhase);
813 LPVOID CALLBACK IMallocSpy_PreFree_Proxy(
817 void __RPC_STUB IMallocSpy_PreFree_Stub(
818 struct IRpcStubBuffer* This,
819 struct IRpcChannelBuffer* pRpcChannelBuffer,
820 PRPC_MESSAGE pRpcMessage,
821 DWORD* pdwStubPhase);
822 void CALLBACK IMallocSpy_PostFree_Proxy(
825 void __RPC_STUB IMallocSpy_PostFree_Stub(
826 struct IRpcStubBuffer* This,
827 struct IRpcChannelBuffer* pRpcChannelBuffer,
828 PRPC_MESSAGE pRpcMessage,
829 DWORD* pdwStubPhase);
830 ULONG CALLBACK IMallocSpy_PreRealloc_Proxy(
834 LPVOID* ppNewRequest,
836 void __RPC_STUB IMallocSpy_PreRealloc_Stub(
837 struct IRpcStubBuffer* This,
838 struct IRpcChannelBuffer* pRpcChannelBuffer,
839 PRPC_MESSAGE pRpcMessage,
840 DWORD* pdwStubPhase);
841 LPVOID CALLBACK IMallocSpy_PostRealloc_Proxy(
845 void __RPC_STUB IMallocSpy_PostRealloc_Stub(
846 struct IRpcStubBuffer* This,
847 struct IRpcChannelBuffer* pRpcChannelBuffer,
848 PRPC_MESSAGE pRpcMessage,
849 DWORD* pdwStubPhase);
850 LPVOID CALLBACK IMallocSpy_PreGetSize_Proxy(
854 void __RPC_STUB IMallocSpy_PreGetSize_Stub(
855 struct IRpcStubBuffer* This,
856 struct IRpcChannelBuffer* pRpcChannelBuffer,
857 PRPC_MESSAGE pRpcMessage,
858 DWORD* pdwStubPhase);
859 ULONG CALLBACK IMallocSpy_PostGetSize_Proxy(
863 void __RPC_STUB IMallocSpy_PostGetSize_Stub(
864 struct IRpcStubBuffer* This,
865 struct IRpcChannelBuffer* pRpcChannelBuffer,
866 PRPC_MESSAGE pRpcMessage,
867 DWORD* pdwStubPhase);
868 LPVOID CALLBACK IMallocSpy_PreDidAlloc_Proxy(
872 void __RPC_STUB IMallocSpy_PreDidAlloc_Stub(
873 struct IRpcStubBuffer* This,
874 struct IRpcChannelBuffer* pRpcChannelBuffer,
875 PRPC_MESSAGE pRpcMessage,
876 DWORD* pdwStubPhase);
877 int CALLBACK IMallocSpy_PostDidAlloc_Proxy(
882 void __RPC_STUB IMallocSpy_PostDidAlloc_Stub(
883 struct IRpcStubBuffer* This,
884 struct IRpcChannelBuffer* pRpcChannelBuffer,
885 PRPC_MESSAGE pRpcMessage,
886 DWORD* pdwStubPhase);
887 void CALLBACK IMallocSpy_PreHeapMinimize_Proxy(
889 void __RPC_STUB IMallocSpy_PreHeapMinimize_Stub(
890 struct IRpcStubBuffer* This,
891 struct IRpcChannelBuffer* pRpcChannelBuffer,
892 PRPC_MESSAGE pRpcMessage,
893 DWORD* pdwStubPhase);
894 void CALLBACK IMallocSpy_PostHeapMinimize_Proxy(
896 void __RPC_STUB IMallocSpy_PostHeapMinimize_Stub(
897 struct IRpcStubBuffer* This,
898 struct IRpcChannelBuffer* pRpcChannelBuffer,
899 PRPC_MESSAGE pRpcMessage,
900 DWORD* pdwStubPhase);
902 typedef struct IEnumUnknown IEnumUnknown;
903 typedef IEnumUnknown *LPENUMUNKNOWN;
905 /*****************************************************************************
906 * IEnumUnknown interface
908 DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
909 #if defined(__cplusplus) && !defined(CINTERFACE)
910 struct IEnumUnknown: IUnknown {
912 virtual HRESULT STDMETHODCALLTYPE Next(
915 ULONG* pceltFetched) = 0;
917 virtual HRESULT STDMETHODCALLTYPE Skip(
920 virtual HRESULT STDMETHODCALLTYPE Reset(
923 virtual HRESULT STDMETHODCALLTYPE Clone(
924 IEnumUnknown** ppenum) = 0;
926 } ICOM_COM_INTERFACE_ATTRIBUTE;
928 typedef struct IEnumUnknownVtbl IEnumUnknownVtbl;
929 struct IEnumUnknown {
930 const IEnumUnknownVtbl* lpVtbl;
932 struct IEnumUnknownVtbl {
933 ICOM_MSVTABLE_COMPAT_FIELDS
935 /*** IUnknown methods ***/
936 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
941 ULONG (STDMETHODCALLTYPE *AddRef)(
944 ULONG (STDMETHODCALLTYPE *Release)(
947 /*** IEnumUnknown methods ***/
948 HRESULT (STDMETHODCALLTYPE *Next)(
952 ULONG* pceltFetched);
954 HRESULT (STDMETHODCALLTYPE *Skip)(
958 HRESULT (STDMETHODCALLTYPE *Reset)(
961 HRESULT (STDMETHODCALLTYPE *Clone)(
963 IEnumUnknown** ppenum);
967 #define IEnumUnknown_IMETHODS \
968 /*** IUnknown methods ***/ \
969 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
970 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
971 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
972 /*** IEnumUnknown methods ***/ \
973 HRESULT (STDMETHODCALLTYPE *Next)(INTERFACE *This, ULONG celt, IUnknown** rgelt, ULONG* pceltFetched); \
974 HRESULT (STDMETHODCALLTYPE *Skip)(INTERFACE *This, ULONG celt); \
975 HRESULT (STDMETHODCALLTYPE *Reset)(INTERFACE *This); \
976 HRESULT (STDMETHODCALLTYPE *Clone)(INTERFACE *This, IEnumUnknown** ppenum);
978 /*** IUnknown methods ***/
979 #define IEnumUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
980 #define IEnumUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
981 #define IEnumUnknown_Release(p) (p)->lpVtbl->Release(p)
982 /*** IEnumUnknown methods ***/
983 #define IEnumUnknown_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
984 #define IEnumUnknown_Skip(p,a) (p)->lpVtbl->Skip(p,a)
985 #define IEnumUnknown_Reset(p) (p)->lpVtbl->Reset(p)
986 #define IEnumUnknown_Clone(p,a) (p)->lpVtbl->Clone(p,a)
990 HRESULT CALLBACK IEnumUnknown_RemoteNext_Proxy(
994 ULONG* pceltFetched);
995 void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
996 struct IRpcStubBuffer* This,
997 struct IRpcChannelBuffer* pRpcChannelBuffer,
998 PRPC_MESSAGE pRpcMessage,
999 DWORD* pdwStubPhase);
1000 HRESULT CALLBACK IEnumUnknown_Next_Proxy(
1004 ULONG* pceltFetched);
1005 HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
1009 ULONG* pceltFetched);
1010 HRESULT CALLBACK IEnumUnknown_Skip_Proxy(
1013 void __RPC_STUB IEnumUnknown_Skip_Stub(
1014 struct IRpcStubBuffer* This,
1015 struct IRpcChannelBuffer* pRpcChannelBuffer,
1016 PRPC_MESSAGE pRpcMessage,
1017 DWORD* pdwStubPhase);
1018 HRESULT CALLBACK IEnumUnknown_Reset_Proxy(
1019 IEnumUnknown* This);
1020 void __RPC_STUB IEnumUnknown_Reset_Stub(
1021 struct IRpcStubBuffer* This,
1022 struct IRpcChannelBuffer* pRpcChannelBuffer,
1023 PRPC_MESSAGE pRpcMessage,
1024 DWORD* pdwStubPhase);
1025 HRESULT CALLBACK IEnumUnknown_Clone_Proxy(
1027 IEnumUnknown** ppenum);
1028 void __RPC_STUB IEnumUnknown_Clone_Stub(
1029 struct IRpcStubBuffer* This,
1030 struct IRpcChannelBuffer* pRpcChannelBuffer,
1031 PRPC_MESSAGE pRpcMessage,
1032 DWORD* pdwStubPhase);
1034 typedef struct ISurrogate ISurrogate;
1035 typedef ISurrogate *LPSURROGATE;
1037 /*****************************************************************************
1038 * ISurrogate interface
1040 DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1041 #if defined(__cplusplus) && !defined(CINTERFACE)
1042 struct ISurrogate: IUnknown {
1044 virtual HRESULT STDMETHODCALLTYPE LoadDllServer(
1045 REFCLSID Clsid) = 0;
1047 virtual HRESULT STDMETHODCALLTYPE FreeSurrogate(
1050 } ICOM_COM_INTERFACE_ATTRIBUTE;
1052 typedef struct ISurrogateVtbl ISurrogateVtbl;
1054 const ISurrogateVtbl* lpVtbl;
1056 struct ISurrogateVtbl {
1057 ICOM_MSVTABLE_COMPAT_FIELDS
1059 /*** IUnknown methods ***/
1060 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1065 ULONG (STDMETHODCALLTYPE *AddRef)(
1068 ULONG (STDMETHODCALLTYPE *Release)(
1071 /*** ISurrogate methods ***/
1072 HRESULT (STDMETHODCALLTYPE *LoadDllServer)(
1076 HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(
1081 #define ISurrogate_IMETHODS \
1082 /*** IUnknown methods ***/ \
1083 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
1084 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
1085 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
1086 /*** ISurrogate methods ***/ \
1087 HRESULT (STDMETHODCALLTYPE *LoadDllServer)(INTERFACE *This, REFCLSID Clsid); \
1088 HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(INTERFACE *This);
1090 /*** IUnknown methods ***/
1091 #define ISurrogate_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1092 #define ISurrogate_AddRef(p) (p)->lpVtbl->AddRef(p)
1093 #define ISurrogate_Release(p) (p)->lpVtbl->Release(p)
1094 /*** ISurrogate methods ***/
1095 #define ISurrogate_LoadDllServer(p,a) (p)->lpVtbl->LoadDllServer(p,a)
1096 #define ISurrogate_FreeSurrogate(p) (p)->lpVtbl->FreeSurrogate(p)
1100 HRESULT CALLBACK ISurrogate_LoadDllServer_Proxy(
1103 void __RPC_STUB ISurrogate_LoadDllServer_Stub(
1104 struct IRpcStubBuffer* This,
1105 struct IRpcChannelBuffer* pRpcChannelBuffer,
1106 PRPC_MESSAGE pRpcMessage,
1107 DWORD* pdwStubPhase);
1108 HRESULT CALLBACK ISurrogate_FreeSurrogate_Proxy(
1110 void __RPC_STUB ISurrogate_FreeSurrogate_Stub(
1111 struct IRpcStubBuffer* This,
1112 struct IRpcChannelBuffer* pRpcChannelBuffer,
1113 PRPC_MESSAGE pRpcMessage,
1114 DWORD* pdwStubPhase);
1116 typedef struct IGlobalInterfaceTable IGlobalInterfaceTable;
1117 typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
1119 /*****************************************************************************
1120 * IGlobalInterfaceTable interface
1122 DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1123 #if defined(__cplusplus) && !defined(CINTERFACE)
1124 struct IGlobalInterfaceTable: IUnknown {
1126 virtual HRESULT STDMETHODCALLTYPE RegisterInterfaceInGlobal(
1129 DWORD* pdwCookie) = 0;
1131 virtual HRESULT STDMETHODCALLTYPE RevokeInterfaceFromGlobal(
1132 DWORD dwCookie) = 0;
1134 virtual HRESULT STDMETHODCALLTYPE GetInterfaceFromGlobal(
1139 } ICOM_COM_INTERFACE_ATTRIBUTE;
1141 typedef struct IGlobalInterfaceTableVtbl IGlobalInterfaceTableVtbl;
1142 struct IGlobalInterfaceTable {
1143 const IGlobalInterfaceTableVtbl* lpVtbl;
1145 struct IGlobalInterfaceTableVtbl {
1146 ICOM_MSVTABLE_COMPAT_FIELDS
1148 /*** IUnknown methods ***/
1149 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1150 IGlobalInterfaceTable* This,
1154 ULONG (STDMETHODCALLTYPE *AddRef)(
1155 IGlobalInterfaceTable* This);
1157 ULONG (STDMETHODCALLTYPE *Release)(
1158 IGlobalInterfaceTable* This);
1160 /*** IGlobalInterfaceTable methods ***/
1161 HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(
1162 IGlobalInterfaceTable* This,
1167 HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(
1168 IGlobalInterfaceTable* This,
1171 HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(
1172 IGlobalInterfaceTable* This,
1179 #define IGlobalInterfaceTable_IMETHODS \
1180 /*** IUnknown methods ***/ \
1181 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
1182 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
1183 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
1184 /*** IGlobalInterfaceTable methods ***/ \
1185 HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(INTERFACE *This, IUnknown* pUnk, REFIID riid, DWORD* pdwCookie); \
1186 HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(INTERFACE *This, DWORD dwCookie); \
1187 HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(INTERFACE *This, DWORD dwCookie, REFIID riid, void** ppv);
1189 /*** IUnknown methods ***/
1190 #define IGlobalInterfaceTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1191 #define IGlobalInterfaceTable_AddRef(p) (p)->lpVtbl->AddRef(p)
1192 #define IGlobalInterfaceTable_Release(p) (p)->lpVtbl->Release(p)
1193 /*** IGlobalInterfaceTable methods ***/
1194 #define IGlobalInterfaceTable_RegisterInterfaceInGlobal(p,a,b,c) (p)->lpVtbl->RegisterInterfaceInGlobal(p,a,b,c)
1195 #define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(p,a) (p)->lpVtbl->RevokeInterfaceFromGlobal(p,a)
1196 #define IGlobalInterfaceTable_GetInterfaceFromGlobal(p,a,b,c) (p)->lpVtbl->GetInterfaceFromGlobal(p,a,b,c)
1200 HRESULT CALLBACK IGlobalInterfaceTable_RegisterInterfaceInGlobal_Proxy(
1201 IGlobalInterfaceTable* This,
1205 void __RPC_STUB IGlobalInterfaceTable_RegisterInterfaceInGlobal_Stub(
1206 struct IRpcStubBuffer* This,
1207 struct IRpcChannelBuffer* pRpcChannelBuffer,
1208 PRPC_MESSAGE pRpcMessage,
1209 DWORD* pdwStubPhase);
1210 HRESULT CALLBACK IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Proxy(
1211 IGlobalInterfaceTable* This,
1213 void __RPC_STUB IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Stub(
1214 struct IRpcStubBuffer* This,
1215 struct IRpcChannelBuffer* pRpcChannelBuffer,
1216 PRPC_MESSAGE pRpcMessage,
1217 DWORD* pdwStubPhase);
1218 HRESULT CALLBACK IGlobalInterfaceTable_GetInterfaceFromGlobal_Proxy(
1219 IGlobalInterfaceTable* This,
1223 void __RPC_STUB IGlobalInterfaceTable_GetInterfaceFromGlobal_Stub(
1224 struct IRpcStubBuffer* This,
1225 struct IRpcChannelBuffer* pRpcChannelBuffer,
1226 PRPC_MESSAGE pRpcMessage,
1227 DWORD* pdwStubPhase);
1229 typedef struct IBindCtx IBindCtx;
1230 typedef IBindCtx *LPBINDCTX;
1232 typedef IBindCtx *LPBC;
1234 typedef struct tagBIND_OPTS {
1238 DWORD dwTickCountDeadline;
1239 } BIND_OPTS, *LPBIND_OPTS;
1241 typedef struct tagBIND_OPTS2 {
1245 DWORD dwTickCountDeadline;
1247 DWORD dwClassContext;
1249 COSERVERINFO *pServerInfo;
1250 } BIND_OPTS2, *LPBIND_OPTS2;
1252 typedef enum tagBIND_FLAGS {
1253 BIND_MAYBOTHERUSER = 1,
1254 BIND_JUSTTESTEXISTENCE = 2
1257 /*****************************************************************************
1258 * IBindCtx interface
1260 DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1261 #if defined(__cplusplus) && !defined(CINTERFACE)
1262 struct IBindCtx: IUnknown {
1264 virtual HRESULT STDMETHODCALLTYPE RegisterObjectBound(
1265 IUnknown* punk) = 0;
1267 virtual HRESULT STDMETHODCALLTYPE RevokeObjectBound(
1268 IUnknown* punk) = 0;
1270 virtual HRESULT STDMETHODCALLTYPE ReleaseBoundObjects(
1273 virtual HRESULT STDMETHODCALLTYPE SetBindOptions(
1274 BIND_OPTS* pbindopts) = 0;
1276 virtual HRESULT STDMETHODCALLTYPE GetBindOptions(
1277 BIND_OPTS* pbindopts) = 0;
1279 virtual HRESULT STDMETHODCALLTYPE GetRunningObjectTable(
1280 IRunningObjectTable** pprot) = 0;
1282 virtual HRESULT STDMETHODCALLTYPE RegisterObjectParam(
1284 IUnknown* punk) = 0;
1286 virtual HRESULT STDMETHODCALLTYPE GetObjectParam(
1288 IUnknown** ppunk) = 0;
1290 virtual HRESULT STDMETHODCALLTYPE EnumObjectParam(
1291 IEnumString** ppenum) = 0;
1293 virtual HRESULT STDMETHODCALLTYPE RevokeObjectParam(
1294 LPOLESTR pszKey) = 0;
1296 } ICOM_COM_INTERFACE_ATTRIBUTE;
1298 typedef struct IBindCtxVtbl IBindCtxVtbl;
1300 const IBindCtxVtbl* lpVtbl;
1302 struct IBindCtxVtbl {
1303 ICOM_MSVTABLE_COMPAT_FIELDS
1305 /*** IUnknown methods ***/
1306 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1311 ULONG (STDMETHODCALLTYPE *AddRef)(
1314 ULONG (STDMETHODCALLTYPE *Release)(
1317 /*** IBindCtx methods ***/
1318 HRESULT (STDMETHODCALLTYPE *RegisterObjectBound)(
1322 HRESULT (STDMETHODCALLTYPE *RevokeObjectBound)(
1326 HRESULT (STDMETHODCALLTYPE *ReleaseBoundObjects)(
1329 HRESULT (STDMETHODCALLTYPE *SetBindOptions)(
1331 BIND_OPTS* pbindopts);
1333 HRESULT (STDMETHODCALLTYPE *GetBindOptions)(
1335 BIND_OPTS* pbindopts);
1337 HRESULT (STDMETHODCALLTYPE *GetRunningObjectTable)(
1339 IRunningObjectTable** pprot);
1341 HRESULT (STDMETHODCALLTYPE *RegisterObjectParam)(
1346 HRESULT (STDMETHODCALLTYPE *GetObjectParam)(
1351 HRESULT (STDMETHODCALLTYPE *EnumObjectParam)(
1353 IEnumString** ppenum);
1355 HRESULT (STDMETHODCALLTYPE *RevokeObjectParam)(
1361 #define IBindCtx_IMETHODS \
1362 /*** IUnknown methods ***/ \
1363 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
1364 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
1365 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
1366 /*** IBindCtx methods ***/ \
1367 HRESULT (STDMETHODCALLTYPE *RegisterObjectBound)(INTERFACE *This, IUnknown* punk); \
1368 HRESULT (STDMETHODCALLTYPE *RevokeObjectBound)(INTERFACE *This, IUnknown* punk); \
1369 HRESULT (STDMETHODCALLTYPE *ReleaseBoundObjects)(INTERFACE *This); \
1370 HRESULT (STDMETHODCALLTYPE *SetBindOptions)(INTERFACE *This, BIND_OPTS* pbindopts); \
1371 HRESULT (STDMETHODCALLTYPE *GetBindOptions)(INTERFACE *This, BIND_OPTS* pbindopts); \
1372 HRESULT (STDMETHODCALLTYPE *GetRunningObjectTable)(INTERFACE *This, IRunningObjectTable** pprot); \
1373 HRESULT (STDMETHODCALLTYPE *RegisterObjectParam)(INTERFACE *This, LPOLESTR pszKey, IUnknown* punk); \
1374 HRESULT (STDMETHODCALLTYPE *GetObjectParam)(INTERFACE *This, LPOLESTR pszKey, IUnknown** ppunk); \
1375 HRESULT (STDMETHODCALLTYPE *EnumObjectParam)(INTERFACE *This, IEnumString** ppenum); \
1376 HRESULT (STDMETHODCALLTYPE *RevokeObjectParam)(INTERFACE *This, LPOLESTR pszKey);
1378 /*** IUnknown methods ***/
1379 #define IBindCtx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1380 #define IBindCtx_AddRef(p) (p)->lpVtbl->AddRef(p)
1381 #define IBindCtx_Release(p) (p)->lpVtbl->Release(p)
1382 /*** IBindCtx methods ***/
1383 #define IBindCtx_RegisterObjectBound(p,a) (p)->lpVtbl->RegisterObjectBound(p,a)
1384 #define IBindCtx_RevokeObjectBound(p,a) (p)->lpVtbl->RevokeObjectBound(p,a)
1385 #define IBindCtx_ReleaseBoundObjects(p) (p)->lpVtbl->ReleaseBoundObjects(p)
1386 #define IBindCtx_SetBindOptions(p,a) (p)->lpVtbl->SetBindOptions(p,a)
1387 #define IBindCtx_GetBindOptions(p,a) (p)->lpVtbl->GetBindOptions(p,a)
1388 #define IBindCtx_GetRunningObjectTable(p,a) (p)->lpVtbl->GetRunningObjectTable(p,a)
1389 #define IBindCtx_RegisterObjectParam(p,a,b) (p)->lpVtbl->RegisterObjectParam(p,a,b)
1390 #define IBindCtx_GetObjectParam(p,a,b) (p)->lpVtbl->GetObjectParam(p,a,b)
1391 #define IBindCtx_EnumObjectParam(p,a) (p)->lpVtbl->EnumObjectParam(p,a)
1392 #define IBindCtx_RevokeObjectParam(p,a) (p)->lpVtbl->RevokeObjectParam(p,a)
1396 HRESULT CALLBACK IBindCtx_RegisterObjectBound_Proxy(
1399 void __RPC_STUB IBindCtx_RegisterObjectBound_Stub(
1400 struct IRpcStubBuffer* This,
1401 struct IRpcChannelBuffer* pRpcChannelBuffer,
1402 PRPC_MESSAGE pRpcMessage,
1403 DWORD* pdwStubPhase);
1404 HRESULT CALLBACK IBindCtx_RevokeObjectBound_Proxy(
1407 void __RPC_STUB IBindCtx_RevokeObjectBound_Stub(
1408 struct IRpcStubBuffer* This,
1409 struct IRpcChannelBuffer* pRpcChannelBuffer,
1410 PRPC_MESSAGE pRpcMessage,
1411 DWORD* pdwStubPhase);
1412 HRESULT CALLBACK IBindCtx_ReleaseBoundObjects_Proxy(
1414 void __RPC_STUB IBindCtx_ReleaseBoundObjects_Stub(
1415 struct IRpcStubBuffer* This,
1416 struct IRpcChannelBuffer* pRpcChannelBuffer,
1417 PRPC_MESSAGE pRpcMessage,
1418 DWORD* pdwStubPhase);
1419 HRESULT CALLBACK IBindCtx_RemoteSetBindOptions_Proxy(
1421 BIND_OPTS2* pbindopts);
1422 void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
1423 struct IRpcStubBuffer* This,
1424 struct IRpcChannelBuffer* pRpcChannelBuffer,
1425 PRPC_MESSAGE pRpcMessage,
1426 DWORD* pdwStubPhase);
1427 HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
1429 BIND_OPTS* pbindopts);
1430 HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
1432 BIND_OPTS2* pbindopts);
1433 HRESULT CALLBACK IBindCtx_RemoteGetBindOptions_Proxy(
1435 BIND_OPTS2* pbindopts);
1436 void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
1437 struct IRpcStubBuffer* This,
1438 struct IRpcChannelBuffer* pRpcChannelBuffer,
1439 PRPC_MESSAGE pRpcMessage,
1440 DWORD* pdwStubPhase);
1441 HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
1443 BIND_OPTS* pbindopts);
1444 HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
1446 BIND_OPTS2* pbindopts);
1447 HRESULT CALLBACK IBindCtx_GetRunningObjectTable_Proxy(
1449 IRunningObjectTable** pprot);
1450 void __RPC_STUB IBindCtx_GetRunningObjectTable_Stub(
1451 struct IRpcStubBuffer* This,
1452 struct IRpcChannelBuffer* pRpcChannelBuffer,
1453 PRPC_MESSAGE pRpcMessage,
1454 DWORD* pdwStubPhase);
1455 HRESULT CALLBACK IBindCtx_RegisterObjectParam_Proxy(
1459 void __RPC_STUB IBindCtx_RegisterObjectParam_Stub(
1460 struct IRpcStubBuffer* This,
1461 struct IRpcChannelBuffer* pRpcChannelBuffer,
1462 PRPC_MESSAGE pRpcMessage,
1463 DWORD* pdwStubPhase);
1464 HRESULT CALLBACK IBindCtx_GetObjectParam_Proxy(
1468 void __RPC_STUB IBindCtx_GetObjectParam_Stub(
1469 struct IRpcStubBuffer* This,
1470 struct IRpcChannelBuffer* pRpcChannelBuffer,
1471 PRPC_MESSAGE pRpcMessage,
1472 DWORD* pdwStubPhase);
1473 HRESULT CALLBACK IBindCtx_EnumObjectParam_Proxy(
1475 IEnumString** ppenum);
1476 void __RPC_STUB IBindCtx_EnumObjectParam_Stub(
1477 struct IRpcStubBuffer* This,
1478 struct IRpcChannelBuffer* pRpcChannelBuffer,
1479 PRPC_MESSAGE pRpcMessage,
1480 DWORD* pdwStubPhase);
1481 HRESULT CALLBACK IBindCtx_RevokeObjectParam_Proxy(
1484 void __RPC_STUB IBindCtx_RevokeObjectParam_Stub(
1485 struct IRpcStubBuffer* This,
1486 struct IRpcChannelBuffer* pRpcChannelBuffer,
1487 PRPC_MESSAGE pRpcMessage,
1488 DWORD* pdwStubPhase);
1490 typedef struct IEnumMoniker IEnumMoniker;
1491 typedef IEnumMoniker *LPENUMMONIKER;
1493 /*****************************************************************************
1494 * IEnumMoniker interface
1496 DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1497 #if defined(__cplusplus) && !defined(CINTERFACE)
1498 struct IEnumMoniker: IUnknown {
1500 virtual HRESULT STDMETHODCALLTYPE Next(
1503 ULONG* pceltFetched) = 0;
1505 virtual HRESULT STDMETHODCALLTYPE Skip(
1508 virtual HRESULT STDMETHODCALLTYPE Reset(
1511 virtual HRESULT STDMETHODCALLTYPE Clone(
1512 IEnumMoniker** ppenum) = 0;
1514 } ICOM_COM_INTERFACE_ATTRIBUTE;
1516 typedef struct IEnumMonikerVtbl IEnumMonikerVtbl;
1517 struct IEnumMoniker {
1518 const IEnumMonikerVtbl* lpVtbl;
1520 struct IEnumMonikerVtbl {
1521 ICOM_MSVTABLE_COMPAT_FIELDS
1523 /*** IUnknown methods ***/
1524 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1529 ULONG (STDMETHODCALLTYPE *AddRef)(
1530 IEnumMoniker* This);
1532 ULONG (STDMETHODCALLTYPE *Release)(
1533 IEnumMoniker* This);
1535 /*** IEnumMoniker methods ***/
1536 HRESULT (STDMETHODCALLTYPE *Next)(
1540 ULONG* pceltFetched);
1542 HRESULT (STDMETHODCALLTYPE *Skip)(
1546 HRESULT (STDMETHODCALLTYPE *Reset)(
1547 IEnumMoniker* This);
1549 HRESULT (STDMETHODCALLTYPE *Clone)(
1551 IEnumMoniker** ppenum);
1555 #define IEnumMoniker_IMETHODS \
1556 /*** IUnknown methods ***/ \
1557 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
1558 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
1559 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
1560 /*** IEnumMoniker methods ***/ \
1561 HRESULT (STDMETHODCALLTYPE *Next)(INTERFACE *This, ULONG celt, IMoniker** rgelt, ULONG* pceltFetched); \
1562 HRESULT (STDMETHODCALLTYPE *Skip)(INTERFACE *This, ULONG celt); \
1563 HRESULT (STDMETHODCALLTYPE *Reset)(INTERFACE *This); \
1564 HRESULT (STDMETHODCALLTYPE *Clone)(INTERFACE *This, IEnumMoniker** ppenum);
1566 /*** IUnknown methods ***/
1567 #define IEnumMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1568 #define IEnumMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
1569 #define IEnumMoniker_Release(p) (p)->lpVtbl->Release(p)
1570 /*** IEnumMoniker methods ***/
1571 #define IEnumMoniker_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1572 #define IEnumMoniker_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1573 #define IEnumMoniker_Reset(p) (p)->lpVtbl->Reset(p)
1574 #define IEnumMoniker_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1578 HRESULT CALLBACK IEnumMoniker_RemoteNext_Proxy(
1582 ULONG* pceltFetched);
1583 void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
1584 struct IRpcStubBuffer* This,
1585 struct IRpcChannelBuffer* pRpcChannelBuffer,
1586 PRPC_MESSAGE pRpcMessage,
1587 DWORD* pdwStubPhase);
1588 HRESULT CALLBACK IEnumMoniker_Next_Proxy(
1592 ULONG* pceltFetched);
1593 HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
1597 ULONG* pceltFetched);
1598 HRESULT CALLBACK IEnumMoniker_Skip_Proxy(
1601 void __RPC_STUB IEnumMoniker_Skip_Stub(
1602 struct IRpcStubBuffer* This,
1603 struct IRpcChannelBuffer* pRpcChannelBuffer,
1604 PRPC_MESSAGE pRpcMessage,
1605 DWORD* pdwStubPhase);
1606 HRESULT CALLBACK IEnumMoniker_Reset_Proxy(
1607 IEnumMoniker* This);
1608 void __RPC_STUB IEnumMoniker_Reset_Stub(
1609 struct IRpcStubBuffer* This,
1610 struct IRpcChannelBuffer* pRpcChannelBuffer,
1611 PRPC_MESSAGE pRpcMessage,
1612 DWORD* pdwStubPhase);
1613 HRESULT CALLBACK IEnumMoniker_Clone_Proxy(
1615 IEnumMoniker** ppenum);
1616 void __RPC_STUB IEnumMoniker_Clone_Stub(
1617 struct IRpcStubBuffer* This,
1618 struct IRpcChannelBuffer* pRpcChannelBuffer,
1619 PRPC_MESSAGE pRpcMessage,
1620 DWORD* pdwStubPhase);
1622 typedef struct IRunnableObject IRunnableObject;
1623 typedef IRunnableObject *LPRUNNABLEOBJECT;
1625 /*****************************************************************************
1626 * IRunnableObject interface
1628 DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1629 #if defined(__cplusplus) && !defined(CINTERFACE)
1630 struct IRunnableObject: IUnknown {
1632 virtual HRESULT STDMETHODCALLTYPE GetRunningClass(
1633 LPCLSID lpClsid) = 0;
1635 virtual HRESULT STDMETHODCALLTYPE Run(
1638 virtual BOOL STDMETHODCALLTYPE IsRunning(
1641 virtual HRESULT STDMETHODCALLTYPE LockRunning(
1643 BOOL fLastUnlockCloses) = 0;
1645 virtual HRESULT STDMETHODCALLTYPE SetContainedObject(
1646 BOOL fContained) = 0;
1648 } ICOM_COM_INTERFACE_ATTRIBUTE;
1650 typedef struct IRunnableObjectVtbl IRunnableObjectVtbl;
1651 struct IRunnableObject {
1652 const IRunnableObjectVtbl* lpVtbl;
1654 struct IRunnableObjectVtbl {
1655 ICOM_MSVTABLE_COMPAT_FIELDS
1657 /*** IUnknown methods ***/
1658 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1659 IRunnableObject* This,
1663 ULONG (STDMETHODCALLTYPE *AddRef)(
1664 IRunnableObject* This);
1666 ULONG (STDMETHODCALLTYPE *Release)(
1667 IRunnableObject* This);
1669 /*** IRunnableObject methods ***/
1670 HRESULT (STDMETHODCALLTYPE *GetRunningClass)(
1671 IRunnableObject* This,
1674 HRESULT (STDMETHODCALLTYPE *Run)(
1675 IRunnableObject* This,
1678 BOOL (STDMETHODCALLTYPE *IsRunning)(
1679 IRunnableObject* This);
1681 HRESULT (STDMETHODCALLTYPE *LockRunning)(
1682 IRunnableObject* This,
1684 BOOL fLastUnlockCloses);
1686 HRESULT (STDMETHODCALLTYPE *SetContainedObject)(
1687 IRunnableObject* This,
1692 #define IRunnableObject_IMETHODS \
1693 /*** IUnknown methods ***/ \
1694 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
1695 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
1696 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
1697 /*** IRunnableObject methods ***/ \
1698 HRESULT (STDMETHODCALLTYPE *GetRunningClass)(INTERFACE *This, LPCLSID lpClsid); \
1699 HRESULT (STDMETHODCALLTYPE *Run)(INTERFACE *This, LPBINDCTX pbc); \
1700 BOOL (STDMETHODCALLTYPE *IsRunning)(INTERFACE *This); \
1701 HRESULT (STDMETHODCALLTYPE *LockRunning)(INTERFACE *This, BOOL fLock, BOOL fLastUnlockCloses); \
1702 HRESULT (STDMETHODCALLTYPE *SetContainedObject)(INTERFACE *This, BOOL fContained);
1704 /*** IUnknown methods ***/
1705 #define IRunnableObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1706 #define IRunnableObject_AddRef(p) (p)->lpVtbl->AddRef(p)
1707 #define IRunnableObject_Release(p) (p)->lpVtbl->Release(p)
1708 /*** IRunnableObject methods ***/
1709 #define IRunnableObject_GetRunningClass(p,a) (p)->lpVtbl->GetRunningClass(p,a)
1710 #define IRunnableObject_Run(p,a) (p)->lpVtbl->Run(p,a)
1711 #define IRunnableObject_IsRunning(p) (p)->lpVtbl->IsRunning(p)
1712 #define IRunnableObject_LockRunning(p,a,b) (p)->lpVtbl->LockRunning(p,a,b)
1713 #define IRunnableObject_SetContainedObject(p,a) (p)->lpVtbl->SetContainedObject(p,a)
1717 HRESULT CALLBACK IRunnableObject_GetRunningClass_Proxy(
1718 IRunnableObject* This,
1720 void __RPC_STUB IRunnableObject_GetRunningClass_Stub(
1721 struct IRpcStubBuffer* This,
1722 struct IRpcChannelBuffer* pRpcChannelBuffer,
1723 PRPC_MESSAGE pRpcMessage,
1724 DWORD* pdwStubPhase);
1725 HRESULT CALLBACK IRunnableObject_Run_Proxy(
1726 IRunnableObject* This,
1728 void __RPC_STUB IRunnableObject_Run_Stub(
1729 struct IRpcStubBuffer* This,
1730 struct IRpcChannelBuffer* pRpcChannelBuffer,
1731 PRPC_MESSAGE pRpcMessage,
1732 DWORD* pdwStubPhase);
1733 HRESULT CALLBACK IRunnableObject_RemoteIsRunning_Proxy(
1734 IRunnableObject* This);
1735 void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
1736 struct IRpcStubBuffer* This,
1737 struct IRpcChannelBuffer* pRpcChannelBuffer,
1738 PRPC_MESSAGE pRpcMessage,
1739 DWORD* pdwStubPhase);
1740 BOOL CALLBACK IRunnableObject_IsRunning_Proxy(
1741 IRunnableObject* This);
1742 HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
1743 IRunnableObject* This);
1744 HRESULT CALLBACK IRunnableObject_LockRunning_Proxy(
1745 IRunnableObject* This,
1747 BOOL fLastUnlockCloses);
1748 void __RPC_STUB IRunnableObject_LockRunning_Stub(
1749 struct IRpcStubBuffer* This,
1750 struct IRpcChannelBuffer* pRpcChannelBuffer,
1751 PRPC_MESSAGE pRpcMessage,
1752 DWORD* pdwStubPhase);
1753 HRESULT CALLBACK IRunnableObject_SetContainedObject_Proxy(
1754 IRunnableObject* This,
1756 void __RPC_STUB IRunnableObject_SetContainedObject_Stub(
1757 struct IRpcStubBuffer* This,
1758 struct IRpcChannelBuffer* pRpcChannelBuffer,
1759 PRPC_MESSAGE pRpcMessage,
1760 DWORD* pdwStubPhase);
1765 typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
1767 /*****************************************************************************
1768 * IRunningObjectTable interface
1770 DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1771 #if defined(__cplusplus) && !defined(CINTERFACE)
1772 struct IRunningObjectTable: IUnknown {
1774 virtual HRESULT STDMETHODCALLTYPE Register(
1776 IUnknown* punkObject,
1777 IMoniker* pmkObjectName,
1778 DWORD* pdwRegister) = 0;
1780 virtual HRESULT STDMETHODCALLTYPE Revoke(
1781 DWORD dwRegister) = 0;
1783 virtual HRESULT STDMETHODCALLTYPE IsRunning(
1784 IMoniker* pmkObjectName) = 0;
1786 virtual HRESULT STDMETHODCALLTYPE GetObject(
1787 IMoniker* pmkObjectName,
1788 IUnknown** ppunkObject) = 0;
1790 virtual HRESULT STDMETHODCALLTYPE NoteChangeTime(
1792 FILETIME* pfiletime) = 0;
1794 virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
1795 IMoniker* pmkObjectName,
1796 FILETIME* pfiletime) = 0;
1798 virtual HRESULT STDMETHODCALLTYPE EnumRunning(
1799 IEnumMoniker** ppenumMoniker) = 0;
1801 } ICOM_COM_INTERFACE_ATTRIBUTE;
1803 typedef struct IRunningObjectTableVtbl IRunningObjectTableVtbl;
1804 struct IRunningObjectTable {
1805 const IRunningObjectTableVtbl* lpVtbl;
1807 struct IRunningObjectTableVtbl {
1808 ICOM_MSVTABLE_COMPAT_FIELDS
1810 /*** IUnknown methods ***/
1811 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1812 IRunningObjectTable* This,
1816 ULONG (STDMETHODCALLTYPE *AddRef)(
1817 IRunningObjectTable* This);
1819 ULONG (STDMETHODCALLTYPE *Release)(
1820 IRunningObjectTable* This);
1822 /*** IRunningObjectTable methods ***/
1823 HRESULT (STDMETHODCALLTYPE *Register)(
1824 IRunningObjectTable* This,
1826 IUnknown* punkObject,
1827 IMoniker* pmkObjectName,
1828 DWORD* pdwRegister);
1830 HRESULT (STDMETHODCALLTYPE *Revoke)(
1831 IRunningObjectTable* This,
1834 HRESULT (STDMETHODCALLTYPE *IsRunning)(
1835 IRunningObjectTable* This,
1836 IMoniker* pmkObjectName);
1838 HRESULT (STDMETHODCALLTYPE *GetObject)(
1839 IRunningObjectTable* This,
1840 IMoniker* pmkObjectName,
1841 IUnknown** ppunkObject);
1843 HRESULT (STDMETHODCALLTYPE *NoteChangeTime)(
1844 IRunningObjectTable* This,
1846 FILETIME* pfiletime);
1848 HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
1849 IRunningObjectTable* This,
1850 IMoniker* pmkObjectName,
1851 FILETIME* pfiletime);
1853 HRESULT (STDMETHODCALLTYPE *EnumRunning)(
1854 IRunningObjectTable* This,
1855 IEnumMoniker** ppenumMoniker);
1859 #define IRunningObjectTable_IMETHODS \
1860 /*** IUnknown methods ***/ \
1861 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
1862 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
1863 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
1864 /*** IRunningObjectTable methods ***/ \
1865 HRESULT (STDMETHODCALLTYPE *Register)(INTERFACE *This, DWORD grfFlags, IUnknown* punkObject, IMoniker* pmkObjectName, DWORD* pdwRegister); \
1866 HRESULT (STDMETHODCALLTYPE *Revoke)(INTERFACE *This, DWORD dwRegister); \
1867 HRESULT (STDMETHODCALLTYPE *IsRunning)(INTERFACE *This, IMoniker* pmkObjectName); \
1868 HRESULT (STDMETHODCALLTYPE *GetObject)(INTERFACE *This, IMoniker* pmkObjectName, IUnknown** ppunkObject); \
1869 HRESULT (STDMETHODCALLTYPE *NoteChangeTime)(INTERFACE *This, DWORD dwRegister, FILETIME* pfiletime); \
1870 HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(INTERFACE *This, IMoniker* pmkObjectName, FILETIME* pfiletime); \
1871 HRESULT (STDMETHODCALLTYPE *EnumRunning)(INTERFACE *This, IEnumMoniker** ppenumMoniker);
1873 /*** IUnknown methods ***/
1874 #define IRunningObjectTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1875 #define IRunningObjectTable_AddRef(p) (p)->lpVtbl->AddRef(p)
1876 #define IRunningObjectTable_Release(p) (p)->lpVtbl->Release(p)
1877 /*** IRunningObjectTable methods ***/
1878 #define IRunningObjectTable_Register(p,a,b,c,d) (p)->lpVtbl->Register(p,a,b,c,d)
1879 #define IRunningObjectTable_Revoke(p,a) (p)->lpVtbl->Revoke(p,a)
1880 #define IRunningObjectTable_IsRunning(p,a) (p)->lpVtbl->IsRunning(p,a)
1881 #define IRunningObjectTable_GetObject(p,a,b) (p)->lpVtbl->GetObject(p,a,b)
1882 #define IRunningObjectTable_NoteChangeTime(p,a,b) (p)->lpVtbl->NoteChangeTime(p,a,b)
1883 #define IRunningObjectTable_GetTimeOfLastChange(p,a,b) (p)->lpVtbl->GetTimeOfLastChange(p,a,b)
1884 #define IRunningObjectTable_EnumRunning(p,a) (p)->lpVtbl->EnumRunning(p,a)
1888 HRESULT CALLBACK IRunningObjectTable_Register_Proxy(
1889 IRunningObjectTable* This,
1891 IUnknown* punkObject,
1892 IMoniker* pmkObjectName,
1893 DWORD* pdwRegister);
1894 void __RPC_STUB IRunningObjectTable_Register_Stub(
1895 struct IRpcStubBuffer* This,
1896 struct IRpcChannelBuffer* pRpcChannelBuffer,
1897 PRPC_MESSAGE pRpcMessage,
1898 DWORD* pdwStubPhase);
1899 HRESULT CALLBACK IRunningObjectTable_Revoke_Proxy(
1900 IRunningObjectTable* This,
1902 void __RPC_STUB IRunningObjectTable_Revoke_Stub(
1903 struct IRpcStubBuffer* This,
1904 struct IRpcChannelBuffer* pRpcChannelBuffer,
1905 PRPC_MESSAGE pRpcMessage,
1906 DWORD* pdwStubPhase);
1907 HRESULT CALLBACK IRunningObjectTable_IsRunning_Proxy(
1908 IRunningObjectTable* This,
1909 IMoniker* pmkObjectName);
1910 void __RPC_STUB IRunningObjectTable_IsRunning_Stub(
1911 struct IRpcStubBuffer* This,
1912 struct IRpcChannelBuffer* pRpcChannelBuffer,
1913 PRPC_MESSAGE pRpcMessage,
1914 DWORD* pdwStubPhase);
1915 HRESULT CALLBACK IRunningObjectTable_GetObject_Proxy(
1916 IRunningObjectTable* This,
1917 IMoniker* pmkObjectName,
1918 IUnknown** ppunkObject);
1919 void __RPC_STUB IRunningObjectTable_GetObject_Stub(
1920 struct IRpcStubBuffer* This,
1921 struct IRpcChannelBuffer* pRpcChannelBuffer,
1922 PRPC_MESSAGE pRpcMessage,
1923 DWORD* pdwStubPhase);
1924 HRESULT CALLBACK IRunningObjectTable_NoteChangeTime_Proxy(
1925 IRunningObjectTable* This,
1927 FILETIME* pfiletime);
1928 void __RPC_STUB IRunningObjectTable_NoteChangeTime_Stub(
1929 struct IRpcStubBuffer* This,
1930 struct IRpcChannelBuffer* pRpcChannelBuffer,
1931 PRPC_MESSAGE pRpcMessage,
1932 DWORD* pdwStubPhase);
1933 HRESULT CALLBACK IRunningObjectTable_GetTimeOfLastChange_Proxy(
1934 IRunningObjectTable* This,
1935 IMoniker* pmkObjectName,
1936 FILETIME* pfiletime);
1937 void __RPC_STUB IRunningObjectTable_GetTimeOfLastChange_Stub(
1938 struct IRpcStubBuffer* This,
1939 struct IRpcChannelBuffer* pRpcChannelBuffer,
1940 PRPC_MESSAGE pRpcMessage,
1941 DWORD* pdwStubPhase);
1942 HRESULT CALLBACK IRunningObjectTable_EnumRunning_Proxy(
1943 IRunningObjectTable* This,
1944 IEnumMoniker** ppenumMoniker);
1945 void __RPC_STUB IRunningObjectTable_EnumRunning_Stub(
1946 struct IRpcStubBuffer* This,
1947 struct IRpcChannelBuffer* pRpcChannelBuffer,
1948 PRPC_MESSAGE pRpcMessage,
1949 DWORD* pdwStubPhase);
1951 typedef struct IPersist IPersist;
1952 typedef IPersist *LPPERSIST;
1954 /*****************************************************************************
1955 * IPersist interface
1957 DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1958 #if defined(__cplusplus) && !defined(CINTERFACE)
1959 struct IPersist: IUnknown {
1961 virtual HRESULT STDMETHODCALLTYPE GetClassID(
1962 CLSID* pClassID) = 0;
1964 } ICOM_COM_INTERFACE_ATTRIBUTE;
1966 typedef struct IPersistVtbl IPersistVtbl;
1968 const IPersistVtbl* lpVtbl;
1970 struct IPersistVtbl {
1971 ICOM_MSVTABLE_COMPAT_FIELDS
1973 /*** IUnknown methods ***/
1974 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1979 ULONG (STDMETHODCALLTYPE *AddRef)(
1982 ULONG (STDMETHODCALLTYPE *Release)(
1985 /*** IPersist methods ***/
1986 HRESULT (STDMETHODCALLTYPE *GetClassID)(
1992 #define IPersist_IMETHODS \
1993 /*** IUnknown methods ***/ \
1994 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
1995 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
1996 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
1997 /*** IPersist methods ***/ \
1998 HRESULT (STDMETHODCALLTYPE *GetClassID)(INTERFACE *This, CLSID* pClassID);
2000 /*** IUnknown methods ***/
2001 #define IPersist_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2002 #define IPersist_AddRef(p) (p)->lpVtbl->AddRef(p)
2003 #define IPersist_Release(p) (p)->lpVtbl->Release(p)
2004 /*** IPersist methods ***/
2005 #define IPersist_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2009 HRESULT CALLBACK IPersist_GetClassID_Proxy(
2012 void __RPC_STUB IPersist_GetClassID_Stub(
2013 struct IRpcStubBuffer* This,
2014 struct IRpcChannelBuffer* pRpcChannelBuffer,
2015 PRPC_MESSAGE pRpcMessage,
2016 DWORD* pdwStubPhase);
2018 typedef struct IPersistStream IPersistStream;
2019 typedef IPersistStream *LPPERSISTSTREAM;
2021 /*****************************************************************************
2022 * IPersistStream interface
2024 DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2025 #if defined(__cplusplus) && !defined(CINTERFACE)
2026 struct IPersistStream: IPersist {
2028 virtual HRESULT STDMETHODCALLTYPE IsDirty(
2031 virtual HRESULT STDMETHODCALLTYPE Load(
2034 virtual HRESULT STDMETHODCALLTYPE Save(
2036 BOOL fClearDirty) = 0;
2038 virtual HRESULT STDMETHODCALLTYPE GetSizeMax(
2039 ULARGE_INTEGER* pcbSize) = 0;
2041 } ICOM_COM_INTERFACE_ATTRIBUTE;
2043 typedef struct IPersistStreamVtbl IPersistStreamVtbl;
2044 struct IPersistStream {
2045 const IPersistStreamVtbl* lpVtbl;
2047 struct IPersistStreamVtbl {
2048 ICOM_MSVTABLE_COMPAT_FIELDS
2050 /*** IUnknown methods ***/
2051 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2052 IPersistStream* This,
2056 ULONG (STDMETHODCALLTYPE *AddRef)(
2057 IPersistStream* This);
2059 ULONG (STDMETHODCALLTYPE *Release)(
2060 IPersistStream* This);
2062 /*** IPersist methods ***/
2063 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2064 IPersistStream* This,
2067 /*** IPersistStream methods ***/
2068 HRESULT (STDMETHODCALLTYPE *IsDirty)(
2069 IPersistStream* This);
2071 HRESULT (STDMETHODCALLTYPE *Load)(
2072 IPersistStream* This,
2075 HRESULT (STDMETHODCALLTYPE *Save)(
2076 IPersistStream* This,
2080 HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
2081 IPersistStream* This,
2082 ULARGE_INTEGER* pcbSize);
2086 #define IPersistStream_IMETHODS \
2087 /*** IUnknown methods ***/ \
2088 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
2089 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
2090 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
2091 /*** IPersist methods ***/ \
2092 HRESULT (STDMETHODCALLTYPE *GetClassID)(INTERFACE *This, CLSID* pClassID); \
2093 /*** IPersistStream methods ***/ \
2094 HRESULT (STDMETHODCALLTYPE *IsDirty)(INTERFACE *This); \
2095 HRESULT (STDMETHODCALLTYPE *Load)(INTERFACE *This, IStream* pStm); \
2096 HRESULT (STDMETHODCALLTYPE *Save)(INTERFACE *This, IStream* pStm, BOOL fClearDirty); \
2097 HRESULT (STDMETHODCALLTYPE *GetSizeMax)(INTERFACE *This, ULARGE_INTEGER* pcbSize);
2099 /*** IUnknown methods ***/
2100 #define IPersistStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2101 #define IPersistStream_AddRef(p) (p)->lpVtbl->AddRef(p)
2102 #define IPersistStream_Release(p) (p)->lpVtbl->Release(p)
2103 /*** IPersist methods ***/
2104 #define IPersistStream_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2105 /*** IPersistStream methods ***/
2106 #define IPersistStream_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2107 #define IPersistStream_Load(p,a) (p)->lpVtbl->Load(p,a)
2108 #define IPersistStream_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2109 #define IPersistStream_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2113 HRESULT CALLBACK IPersistStream_IsDirty_Proxy(
2114 IPersistStream* This);
2115 void __RPC_STUB IPersistStream_IsDirty_Stub(
2116 struct IRpcStubBuffer* This,
2117 struct IRpcChannelBuffer* pRpcChannelBuffer,
2118 PRPC_MESSAGE pRpcMessage,
2119 DWORD* pdwStubPhase);
2120 HRESULT CALLBACK IPersistStream_Load_Proxy(
2121 IPersistStream* This,
2123 void __RPC_STUB IPersistStream_Load_Stub(
2124 struct IRpcStubBuffer* This,
2125 struct IRpcChannelBuffer* pRpcChannelBuffer,
2126 PRPC_MESSAGE pRpcMessage,
2127 DWORD* pdwStubPhase);
2128 HRESULT CALLBACK IPersistStream_Save_Proxy(
2129 IPersistStream* This,
2132 void __RPC_STUB IPersistStream_Save_Stub(
2133 struct IRpcStubBuffer* This,
2134 struct IRpcChannelBuffer* pRpcChannelBuffer,
2135 PRPC_MESSAGE pRpcMessage,
2136 DWORD* pdwStubPhase);
2137 HRESULT CALLBACK IPersistStream_GetSizeMax_Proxy(
2138 IPersistStream* This,
2139 ULARGE_INTEGER* pcbSize);
2140 void __RPC_STUB IPersistStream_GetSizeMax_Stub(
2141 struct IRpcStubBuffer* This,
2142 struct IRpcChannelBuffer* pRpcChannelBuffer,
2143 PRPC_MESSAGE pRpcMessage,
2144 DWORD* pdwStubPhase);
2146 typedef IMoniker *LPMONIKER;
2148 typedef enum tagMKSYS {
2150 MKSYS_GENERICCOMPOSITE = 1,
2151 MKSYS_FILEMONIKER = 2,
2152 MKSYS_ANTIMONIKER = 3,
2153 MKSYS_ITEMMONIKER = 4,
2154 MKSYS_POINTERMONIKER = 5,
2155 MKSYS_CLASSMONIKER = 7
2158 typedef enum tagMKREDUCE {
2159 MKRREDUCE_ONE = 3 << 16,
2160 MKRREDUCE_TOUSER = 2 << 16,
2161 MKRREDUCE_THROUGHUSER = 1 << 16,
2165 /*****************************************************************************
2166 * IMoniker interface
2168 DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2169 #if defined(__cplusplus) && !defined(CINTERFACE)
2170 struct IMoniker: IPersistStream {
2172 virtual HRESULT STDMETHODCALLTYPE BindToObject(
2174 IMoniker* pmkToLeft,
2176 void** ppvResult) = 0;
2178 virtual HRESULT STDMETHODCALLTYPE BindToStorage(
2180 IMoniker* pmkToLeft,
2184 virtual HRESULT STDMETHODCALLTYPE Reduce(
2186 DWORD dwReduceHowFar,
2187 IMoniker** ppmkToLeft,
2188 IMoniker** ppmkReduced) = 0;
2190 virtual HRESULT STDMETHODCALLTYPE ComposeWith(
2192 BOOL fOnlyIfNotGeneric,
2193 IMoniker** ppmkComposite) = 0;
2195 virtual HRESULT STDMETHODCALLTYPE Enum(
2197 IEnumMoniker** ppenumMoniker) = 0;
2199 virtual HRESULT STDMETHODCALLTYPE IsEqual(
2200 IMoniker* pmkOtherMoniker) = 0;
2202 virtual HRESULT STDMETHODCALLTYPE Hash(
2203 DWORD* pdwHash) = 0;
2205 virtual HRESULT STDMETHODCALLTYPE IsRunning(
2207 IMoniker* pmkToLeft,
2208 IMoniker* pmkNewlyRunning) = 0;
2210 virtual HRESULT STDMETHODCALLTYPE GetTimeOfLastChange(
2212 IMoniker* pmkToLeft,
2213 FILETIME* pFileTime) = 0;
2215 virtual HRESULT STDMETHODCALLTYPE Inverse(
2216 IMoniker** ppmk) = 0;
2218 virtual HRESULT STDMETHODCALLTYPE CommonPrefixWith(
2220 IMoniker** ppmkPrefix) = 0;
2222 virtual HRESULT STDMETHODCALLTYPE RelativePathTo(
2224 IMoniker** ppmkRelPath) = 0;
2226 virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
2228 IMoniker* pmkToLeft,
2229 LPOLESTR* ppszDisplayName) = 0;
2231 virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
2233 IMoniker* pmkToLeft,
2234 LPOLESTR pszDisplayName,
2236 IMoniker** ppmkOut) = 0;
2238 virtual HRESULT STDMETHODCALLTYPE IsSystemMoniker(
2239 DWORD* pdwMksys) = 0;
2241 } ICOM_COM_INTERFACE_ATTRIBUTE;
2243 typedef struct IMonikerVtbl IMonikerVtbl;
2245 const IMonikerVtbl* lpVtbl;
2247 struct IMonikerVtbl {
2248 ICOM_MSVTABLE_COMPAT_FIELDS
2250 /*** IUnknown methods ***/
2251 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2256 ULONG (STDMETHODCALLTYPE *AddRef)(
2259 ULONG (STDMETHODCALLTYPE *Release)(
2262 /*** IPersist methods ***/
2263 HRESULT (STDMETHODCALLTYPE *GetClassID)(
2267 /*** IPersistStream methods ***/
2268 HRESULT (STDMETHODCALLTYPE *IsDirty)(
2271 HRESULT (STDMETHODCALLTYPE *Load)(
2275 HRESULT (STDMETHODCALLTYPE *Save)(
2280 HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
2282 ULARGE_INTEGER* pcbSize);
2284 /*** IMoniker methods ***/
2285 HRESULT (STDMETHODCALLTYPE *BindToObject)(
2288 IMoniker* pmkToLeft,
2292 HRESULT (STDMETHODCALLTYPE *BindToStorage)(
2295 IMoniker* pmkToLeft,
2299 HRESULT (STDMETHODCALLTYPE *Reduce)(
2302 DWORD dwReduceHowFar,
2303 IMoniker** ppmkToLeft,
2304 IMoniker** ppmkReduced);
2306 HRESULT (STDMETHODCALLTYPE *ComposeWith)(
2309 BOOL fOnlyIfNotGeneric,
2310 IMoniker** ppmkComposite);
2312 HRESULT (STDMETHODCALLTYPE *Enum)(
2315 IEnumMoniker** ppenumMoniker);
2317 HRESULT (STDMETHODCALLTYPE *IsEqual)(
2319 IMoniker* pmkOtherMoniker);
2321 HRESULT (STDMETHODCALLTYPE *Hash)(
2325 HRESULT (STDMETHODCALLTYPE *IsRunning)(
2328 IMoniker* pmkToLeft,
2329 IMoniker* pmkNewlyRunning);
2331 HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
2334 IMoniker* pmkToLeft,
2335 FILETIME* pFileTime);
2337 HRESULT (STDMETHODCALLTYPE *Inverse)(
2341 HRESULT (STDMETHODCALLTYPE *CommonPrefixWith)(
2344 IMoniker** ppmkPrefix);
2346 HRESULT (STDMETHODCALLTYPE *RelativePathTo)(
2349 IMoniker** ppmkRelPath);
2351 HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
2354 IMoniker* pmkToLeft,
2355 LPOLESTR* ppszDisplayName);
2357 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
2360 IMoniker* pmkToLeft,
2361 LPOLESTR pszDisplayName,
2363 IMoniker** ppmkOut);
2365 HRESULT (STDMETHODCALLTYPE *IsSystemMoniker)(
2371 #define IMoniker_IMETHODS \
2372 /*** IUnknown methods ***/ \
2373 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
2374 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
2375 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
2376 /*** IPersist methods ***/ \
2377 HRESULT (STDMETHODCALLTYPE *GetClassID)(INTERFACE *This, CLSID* pClassID); \
2378 /*** IPersistStream methods ***/ \
2379 HRESULT (STDMETHODCALLTYPE *IsDirty)(INTERFACE *This); \
2380 HRESULT (STDMETHODCALLTYPE *Load)(INTERFACE *This, IStream* pStm); \
2381 HRESULT (STDMETHODCALLTYPE *Save)(INTERFACE *This, IStream* pStm, BOOL fClearDirty); \
2382 HRESULT (STDMETHODCALLTYPE *GetSizeMax)(INTERFACE *This, ULARGE_INTEGER* pcbSize); \
2383 /*** IMoniker methods ***/ \
2384 HRESULT (STDMETHODCALLTYPE *BindToObject)(INTERFACE *This, IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riidResult, void** ppvResult); \
2385 HRESULT (STDMETHODCALLTYPE *BindToStorage)(INTERFACE *This, IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, void** ppvObj); \
2386 HRESULT (STDMETHODCALLTYPE *Reduce)(INTERFACE *This, IBindCtx* pbc, DWORD dwReduceHowFar, IMoniker** ppmkToLeft, IMoniker** ppmkReduced); \
2387 HRESULT (STDMETHODCALLTYPE *ComposeWith)(INTERFACE *This, IMoniker* pmkRight, BOOL fOnlyIfNotGeneric, IMoniker** ppmkComposite); \
2388 HRESULT (STDMETHODCALLTYPE *Enum)(INTERFACE *This, BOOL fForward, IEnumMoniker** ppenumMoniker); \
2389 HRESULT (STDMETHODCALLTYPE *IsEqual)(INTERFACE *This, IMoniker* pmkOtherMoniker); \
2390 HRESULT (STDMETHODCALLTYPE *Hash)(INTERFACE *This, DWORD* pdwHash); \
2391 HRESULT (STDMETHODCALLTYPE *IsRunning)(INTERFACE *This, IBindCtx* pbc, IMoniker* pmkToLeft, IMoniker* pmkNewlyRunning); \
2392 HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(INTERFACE *This, IBindCtx* pbc, IMoniker* pmkToLeft, FILETIME* pFileTime); \
2393 HRESULT (STDMETHODCALLTYPE *Inverse)(INTERFACE *This, IMoniker** ppmk); \
2394 HRESULT (STDMETHODCALLTYPE *CommonPrefixWith)(INTERFACE *This, IMoniker* pmkOther, IMoniker** ppmkPrefix); \
2395 HRESULT (STDMETHODCALLTYPE *RelativePathTo)(INTERFACE *This, IMoniker* pmkOther, IMoniker** ppmkRelPath); \
2396 HRESULT (STDMETHODCALLTYPE *GetDisplayName)(INTERFACE *This, IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR* ppszDisplayName); \
2397 HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(INTERFACE *This, IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR pszDisplayName, ULONG* pchEaten, IMoniker** ppmkOut); \
2398 HRESULT (STDMETHODCALLTYPE *IsSystemMoniker)(INTERFACE *This, DWORD* pdwMksys);
2400 /*** IUnknown methods ***/
2401 #define IMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2402 #define IMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
2403 #define IMoniker_Release(p) (p)->lpVtbl->Release(p)
2404 /*** IPersist methods ***/
2405 #define IMoniker_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2406 /*** IPersistStream methods ***/
2407 #define IMoniker_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2408 #define IMoniker_Load(p,a) (p)->lpVtbl->Load(p,a)
2409 #define IMoniker_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2410 #define IMoniker_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2411 /*** IMoniker methods ***/
2412 #define IMoniker_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
2413 #define IMoniker_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
2414 #define IMoniker_Reduce(p,a,b,c,d) (p)->lpVtbl->Reduce(p,a,b,c,d)
2415 #define IMoniker_ComposeWith(p,a,b,c) (p)->lpVtbl->ComposeWith(p,a,b,c)
2416 #define IMoniker_Enum(p,a,b) (p)->lpVtbl->Enum(p,a,b)
2417 #define IMoniker_IsEqual(p,a) (p)->lpVtbl->IsEqual(p,a)
2418 #define IMoniker_Hash(p,a) (p)->lpVtbl->Hash(p,a)
2419 #define IMoniker_IsRunning(p,a,b,c) (p)->lpVtbl->IsRunning(p,a,b,c)
2420 #define IMoniker_GetTimeOfLastChange(p,a,b,c) (p)->lpVtbl->GetTimeOfLastChange(p,a,b,c)
2421 #define IMoniker_Inverse(p,a) (p)->lpVtbl->Inverse(p,a)
2422 #define IMoniker_CommonPrefixWith(p,a,b) (p)->lpVtbl->CommonPrefixWith(p,a,b)
2423 #define IMoniker_RelativePathTo(p,a,b) (p)->lpVtbl->RelativePathTo(p,a,b)
2424 #define IMoniker_GetDisplayName(p,a,b,c) (p)->lpVtbl->GetDisplayName(p,a,b,c)
2425 #define IMoniker_ParseDisplayName(p,a,b,c,d,e) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e)
2426 #define IMoniker_IsSystemMoniker(p,a) (p)->lpVtbl->IsSystemMoniker(p,a)
2430 HRESULT CALLBACK IMoniker_RemoteBindToObject_Proxy(
2433 IMoniker* pmkToLeft,
2435 IUnknown** ppvResult);
2436 void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
2437 struct IRpcStubBuffer* This,
2438 struct IRpcChannelBuffer* pRpcChannelBuffer,
2439 PRPC_MESSAGE pRpcMessage,
2440 DWORD* pdwStubPhase);
2441 HRESULT CALLBACK IMoniker_BindToObject_Proxy(
2444 IMoniker* pmkToLeft,
2447 HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
2450 IMoniker* pmkToLeft,
2452 IUnknown** ppvResult);
2453 HRESULT CALLBACK IMoniker_RemoteBindToStorage_Proxy(
2456 IMoniker* pmkToLeft,
2459 void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
2460 struct IRpcStubBuffer* This,
2461 struct IRpcChannelBuffer* pRpcChannelBuffer,
2462 PRPC_MESSAGE pRpcMessage,
2463 DWORD* pdwStubPhase);
2464 HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
2467 IMoniker* pmkToLeft,
2470 HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
2473 IMoniker* pmkToLeft,
2476 HRESULT CALLBACK IMoniker_Reduce_Proxy(
2479 DWORD dwReduceHowFar,
2480 IMoniker** ppmkToLeft,
2481 IMoniker** ppmkReduced);
2482 void __RPC_STUB IMoniker_Reduce_Stub(
2483 struct IRpcStubBuffer* This,
2484 struct IRpcChannelBuffer* pRpcChannelBuffer,
2485 PRPC_MESSAGE pRpcMessage,
2486 DWORD* pdwStubPhase);
2487 HRESULT CALLBACK IMoniker_ComposeWith_Proxy(
2490 BOOL fOnlyIfNotGeneric,
2491 IMoniker** ppmkComposite);
2492 void __RPC_STUB IMoniker_ComposeWith_Stub(
2493 struct IRpcStubBuffer* This,
2494 struct IRpcChannelBuffer* pRpcChannelBuffer,
2495 PRPC_MESSAGE pRpcMessage,
2496 DWORD* pdwStubPhase);
2497 HRESULT CALLBACK IMoniker_Enum_Proxy(
2500 IEnumMoniker** ppenumMoniker);
2501 void __RPC_STUB IMoniker_Enum_Stub(
2502 struct IRpcStubBuffer* This,
2503 struct IRpcChannelBuffer* pRpcChannelBuffer,
2504 PRPC_MESSAGE pRpcMessage,
2505 DWORD* pdwStubPhase);
2506 HRESULT CALLBACK IMoniker_IsEqual_Proxy(
2508 IMoniker* pmkOtherMoniker);
2509 void __RPC_STUB IMoniker_IsEqual_Stub(
2510 struct IRpcStubBuffer* This,
2511 struct IRpcChannelBuffer* pRpcChannelBuffer,
2512 PRPC_MESSAGE pRpcMessage,
2513 DWORD* pdwStubPhase);
2514 HRESULT CALLBACK IMoniker_Hash_Proxy(
2517 void __RPC_STUB IMoniker_Hash_Stub(
2518 struct IRpcStubBuffer* This,
2519 struct IRpcChannelBuffer* pRpcChannelBuffer,
2520 PRPC_MESSAGE pRpcMessage,
2521 DWORD* pdwStubPhase);
2522 HRESULT CALLBACK IMoniker_IsRunning_Proxy(
2525 IMoniker* pmkToLeft,
2526 IMoniker* pmkNewlyRunning);
2527 void __RPC_STUB IMoniker_IsRunning_Stub(
2528 struct IRpcStubBuffer* This,
2529 struct IRpcChannelBuffer* pRpcChannelBuffer,
2530 PRPC_MESSAGE pRpcMessage,
2531 DWORD* pdwStubPhase);
2532 HRESULT CALLBACK IMoniker_GetTimeOfLastChange_Proxy(
2535 IMoniker* pmkToLeft,
2536 FILETIME* pFileTime);
2537 void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
2538 struct IRpcStubBuffer* This,
2539 struct IRpcChannelBuffer* pRpcChannelBuffer,
2540 PRPC_MESSAGE pRpcMessage,
2541 DWORD* pdwStubPhase);
2542 HRESULT CALLBACK IMoniker_Inverse_Proxy(
2545 void __RPC_STUB IMoniker_Inverse_Stub(
2546 struct IRpcStubBuffer* This,
2547 struct IRpcChannelBuffer* pRpcChannelBuffer,
2548 PRPC_MESSAGE pRpcMessage,
2549 DWORD* pdwStubPhase);
2550 HRESULT CALLBACK IMoniker_CommonPrefixWith_Proxy(
2553 IMoniker** ppmkPrefix);
2554 void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
2555 struct IRpcStubBuffer* This,
2556 struct IRpcChannelBuffer* pRpcChannelBuffer,
2557 PRPC_MESSAGE pRpcMessage,
2558 DWORD* pdwStubPhase);
2559 HRESULT CALLBACK IMoniker_RelativePathTo_Proxy(
2562 IMoniker** ppmkRelPath);
2563 void __RPC_STUB IMoniker_RelativePathTo_Stub(
2564 struct IRpcStubBuffer* This,
2565 struct IRpcChannelBuffer* pRpcChannelBuffer,
2566 PRPC_MESSAGE pRpcMessage,
2567 DWORD* pdwStubPhase);
2568 HRESULT CALLBACK IMoniker_GetDisplayName_Proxy(
2571 IMoniker* pmkToLeft,
2572 LPOLESTR* ppszDisplayName);
2573 void __RPC_STUB IMoniker_GetDisplayName_Stub(
2574 struct IRpcStubBuffer* This,
2575 struct IRpcChannelBuffer* pRpcChannelBuffer,
2576 PRPC_MESSAGE pRpcMessage,
2577 DWORD* pdwStubPhase);
2578 HRESULT CALLBACK IMoniker_ParseDisplayName_Proxy(
2581 IMoniker* pmkToLeft,
2582 LPOLESTR pszDisplayName,
2584 IMoniker** ppmkOut);
2585 void __RPC_STUB IMoniker_ParseDisplayName_Stub(
2586 struct IRpcStubBuffer* This,
2587 struct IRpcChannelBuffer* pRpcChannelBuffer,
2588 PRPC_MESSAGE pRpcMessage,
2589 DWORD* pdwStubPhase);
2590 HRESULT CALLBACK IMoniker_IsSystemMoniker_Proxy(
2593 void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
2594 struct IRpcStubBuffer* This,
2595 struct IRpcChannelBuffer* pRpcChannelBuffer,
2596 PRPC_MESSAGE pRpcMessage,
2597 DWORD* pdwStubPhase);
2599 typedef struct IROTData IROTData;
2600 /*****************************************************************************
2601 * IROTData interface
2603 DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
2604 #if defined(__cplusplus) && !defined(CINTERFACE)
2605 struct IROTData: IUnknown {
2607 virtual HRESULT STDMETHODCALLTYPE GetComparisonData(
2610 ULONG* pcbData) = 0;
2612 } ICOM_COM_INTERFACE_ATTRIBUTE;
2614 typedef struct IROTDataVtbl IROTDataVtbl;
2616 const IROTDataVtbl* lpVtbl;
2618 struct IROTDataVtbl {
2619 ICOM_MSVTABLE_COMPAT_FIELDS
2621 /*** IUnknown methods ***/
2622 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2627 ULONG (STDMETHODCALLTYPE *AddRef)(
2630 ULONG (STDMETHODCALLTYPE *Release)(
2633 /*** IROTData methods ***/
2634 HRESULT (STDMETHODCALLTYPE *GetComparisonData)(
2642 #define IROTData_IMETHODS \
2643 /*** IUnknown methods ***/ \
2644 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
2645 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
2646 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
2647 /*** IROTData methods ***/ \
2648 HRESULT (STDMETHODCALLTYPE *GetComparisonData)(INTERFACE *This, byte* pbData, ULONG cbMax, ULONG* pcbData);
2650 /*** IUnknown methods ***/
2651 #define IROTData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2652 #define IROTData_AddRef(p) (p)->lpVtbl->AddRef(p)
2653 #define IROTData_Release(p) (p)->lpVtbl->Release(p)
2654 /*** IROTData methods ***/
2655 #define IROTData_GetComparisonData(p,a,b,c) (p)->lpVtbl->GetComparisonData(p,a,b,c)
2659 HRESULT CALLBACK IROTData_GetComparisonData_Proxy(
2664 void __RPC_STUB IROTData_GetComparisonData_Stub(
2665 struct IRpcStubBuffer* This,
2666 struct IRpcChannelBuffer* pRpcChannelBuffer,
2667 PRPC_MESSAGE pRpcMessage,
2668 DWORD* pdwStubPhase);
2670 typedef IEnumString *LPENUMSTRING;
2672 /*****************************************************************************
2673 * IEnumString interface
2675 DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2676 #if defined(__cplusplus) && !defined(CINTERFACE)
2677 struct IEnumString: IUnknown {
2679 virtual HRESULT STDMETHODCALLTYPE Next(
2682 ULONG* pceltFetched) = 0;
2684 virtual HRESULT STDMETHODCALLTYPE Skip(
2687 virtual HRESULT STDMETHODCALLTYPE Reset(
2690 virtual HRESULT STDMETHODCALLTYPE Clone(
2691 IEnumString** ppenum) = 0;
2693 } ICOM_COM_INTERFACE_ATTRIBUTE;
2695 typedef struct IEnumStringVtbl IEnumStringVtbl;
2696 struct IEnumString {
2697 const IEnumStringVtbl* lpVtbl;
2699 struct IEnumStringVtbl {
2700 ICOM_MSVTABLE_COMPAT_FIELDS
2702 /*** IUnknown methods ***/
2703 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2708 ULONG (STDMETHODCALLTYPE *AddRef)(
2711 ULONG (STDMETHODCALLTYPE *Release)(
2714 /*** IEnumString methods ***/
2715 HRESULT (STDMETHODCALLTYPE *Next)(
2719 ULONG* pceltFetched);
2721 HRESULT (STDMETHODCALLTYPE *Skip)(
2725 HRESULT (STDMETHODCALLTYPE *Reset)(
2728 HRESULT (STDMETHODCALLTYPE *Clone)(
2730 IEnumString** ppenum);
2734 #define IEnumString_IMETHODS \
2735 /*** IUnknown methods ***/ \
2736 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
2737 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
2738 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
2739 /*** IEnumString methods ***/ \
2740 HRESULT (STDMETHODCALLTYPE *Next)(INTERFACE *This, ULONG celt, LPOLESTR* rgelt, ULONG* pceltFetched); \
2741 HRESULT (STDMETHODCALLTYPE *Skip)(INTERFACE *This, ULONG celt); \
2742 HRESULT (STDMETHODCALLTYPE *Reset)(INTERFACE *This); \
2743 HRESULT (STDMETHODCALLTYPE *Clone)(INTERFACE *This, IEnumString** ppenum);
2745 /*** IUnknown methods ***/
2746 #define IEnumString_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2747 #define IEnumString_AddRef(p) (p)->lpVtbl->AddRef(p)
2748 #define IEnumString_Release(p) (p)->lpVtbl->Release(p)
2749 /*** IEnumString methods ***/
2750 #define IEnumString_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
2751 #define IEnumString_Skip(p,a) (p)->lpVtbl->Skip(p,a)
2752 #define IEnumString_Reset(p) (p)->lpVtbl->Reset(p)
2753 #define IEnumString_Clone(p,a) (p)->lpVtbl->Clone(p,a)
2757 HRESULT CALLBACK IEnumString_RemoteNext_Proxy(
2761 ULONG* pceltFetched);
2762 void __RPC_STUB IEnumString_RemoteNext_Stub(
2763 struct IRpcStubBuffer* This,
2764 struct IRpcChannelBuffer* pRpcChannelBuffer,
2765 PRPC_MESSAGE pRpcMessage,
2766 DWORD* pdwStubPhase);
2767 HRESULT CALLBACK IEnumString_Next_Proxy(
2771 ULONG* pceltFetched);
2772 HRESULT __RPC_STUB IEnumString_Next_Stub(
2776 ULONG* pceltFetched);
2777 HRESULT CALLBACK IEnumString_Skip_Proxy(
2780 void __RPC_STUB IEnumString_Skip_Stub(
2781 struct IRpcStubBuffer* This,
2782 struct IRpcChannelBuffer* pRpcChannelBuffer,
2783 PRPC_MESSAGE pRpcMessage,
2784 DWORD* pdwStubPhase);
2785 HRESULT CALLBACK IEnumString_Reset_Proxy(
2787 void __RPC_STUB IEnumString_Reset_Stub(
2788 struct IRpcStubBuffer* This,
2789 struct IRpcChannelBuffer* pRpcChannelBuffer,
2790 PRPC_MESSAGE pRpcMessage,
2791 DWORD* pdwStubPhase);
2792 HRESULT CALLBACK IEnumString_Clone_Proxy(
2794 IEnumString** ppenum);
2795 void __RPC_STUB IEnumString_Clone_Stub(
2796 struct IRpcStubBuffer* This,
2797 struct IRpcChannelBuffer* pRpcChannelBuffer,
2798 PRPC_MESSAGE pRpcMessage,
2799 DWORD* pdwStubPhase);
2801 typedef struct IClassActivator IClassActivator;
2802 /*****************************************************************************
2803 * IClassActivator interface
2805 DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2806 #if defined(__cplusplus) && !defined(CINTERFACE)
2807 struct IClassActivator: IUnknown {
2809 virtual HRESULT STDMETHODCALLTYPE GetClassObject(
2811 DWORD dwClassContext,
2816 } ICOM_COM_INTERFACE_ATTRIBUTE;
2818 typedef struct IClassActivatorVtbl IClassActivatorVtbl;
2819 struct IClassActivator {
2820 const IClassActivatorVtbl* lpVtbl;
2822 struct IClassActivatorVtbl {
2823 ICOM_MSVTABLE_COMPAT_FIELDS
2825 /*** IUnknown methods ***/
2826 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2827 IClassActivator* This,
2831 ULONG (STDMETHODCALLTYPE *AddRef)(
2832 IClassActivator* This);
2834 ULONG (STDMETHODCALLTYPE *Release)(
2835 IClassActivator* This);
2837 /*** IClassActivator methods ***/
2838 HRESULT (STDMETHODCALLTYPE *GetClassObject)(
2839 IClassActivator* This,
2841 DWORD dwClassContext,
2848 #define IClassActivator_IMETHODS \
2849 /*** IUnknown methods ***/ \
2850 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
2851 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
2852 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
2853 /*** IClassActivator methods ***/ \
2854 HRESULT (STDMETHODCALLTYPE *GetClassObject)(INTERFACE *This, REFCLSID rclsid, DWORD dwClassContext, LCID locale, REFIID riid, void** ppv);
2856 /*** IUnknown methods ***/
2857 #define IClassActivator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2858 #define IClassActivator_AddRef(p) (p)->lpVtbl->AddRef(p)
2859 #define IClassActivator_Release(p) (p)->lpVtbl->Release(p)
2860 /*** IClassActivator methods ***/
2861 #define IClassActivator_GetClassObject(p,a,b,c,d,e) (p)->lpVtbl->GetClassObject(p,a,b,c,d,e)
2865 HRESULT CALLBACK IClassActivator_GetClassObject_Proxy(
2866 IClassActivator* This,
2868 DWORD dwClassContext,
2872 void __RPC_STUB IClassActivator_GetClassObject_Stub(
2873 struct IRpcStubBuffer* This,
2874 struct IRpcChannelBuffer* pRpcChannelBuffer,
2875 PRPC_MESSAGE pRpcMessage,
2876 DWORD* pdwStubPhase);
2878 typedef struct ISequentialStream ISequentialStream;
2879 /*****************************************************************************
2880 * ISequentialStream interface
2882 DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
2883 #if defined(__cplusplus) && !defined(CINTERFACE)
2884 struct ISequentialStream: IUnknown {
2886 virtual HRESULT STDMETHODCALLTYPE Read(
2889 ULONG* pcbRead) = 0;
2891 virtual HRESULT STDMETHODCALLTYPE Write(
2894 ULONG* pcbWritten) = 0;
2896 } ICOM_COM_INTERFACE_ATTRIBUTE;
2898 typedef struct ISequentialStreamVtbl ISequentialStreamVtbl;
2899 struct ISequentialStream {
2900 const ISequentialStreamVtbl* lpVtbl;
2902 struct ISequentialStreamVtbl {
2903 ICOM_MSVTABLE_COMPAT_FIELDS
2905 /*** IUnknown methods ***/
2906 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2907 ISequentialStream* This,
2911 ULONG (STDMETHODCALLTYPE *AddRef)(
2912 ISequentialStream* This);
2914 ULONG (STDMETHODCALLTYPE *Release)(
2915 ISequentialStream* This);
2917 /*** ISequentialStream methods ***/
2918 HRESULT (STDMETHODCALLTYPE *Read)(
2919 ISequentialStream* This,
2924 HRESULT (STDMETHODCALLTYPE *Write)(
2925 ISequentialStream* This,
2932 #define ISequentialStream_IMETHODS \
2933 /*** IUnknown methods ***/ \
2934 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
2935 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
2936 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
2937 /*** ISequentialStream methods ***/ \
2938 HRESULT (STDMETHODCALLTYPE *Read)(INTERFACE *This, void* pv, ULONG cb, ULONG* pcbRead); \
2939 HRESULT (STDMETHODCALLTYPE *Write)(INTERFACE *This, const void* pv, ULONG cb, ULONG* pcbWritten);
2941 /*** IUnknown methods ***/
2942 #define ISequentialStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2943 #define ISequentialStream_AddRef(p) (p)->lpVtbl->AddRef(p)
2944 #define ISequentialStream_Release(p) (p)->lpVtbl->Release(p)
2945 /*** ISequentialStream methods ***/
2946 #define ISequentialStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
2947 #define ISequentialStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
2951 HRESULT CALLBACK ISequentialStream_RemoteRead_Proxy(
2952 ISequentialStream* This,
2956 void __RPC_STUB ISequentialStream_RemoteRead_Stub(
2957 struct IRpcStubBuffer* This,
2958 struct IRpcChannelBuffer* pRpcChannelBuffer,
2959 PRPC_MESSAGE pRpcMessage,
2960 DWORD* pdwStubPhase);
2961 HRESULT CALLBACK ISequentialStream_Read_Proxy(
2962 ISequentialStream* This,
2966 HRESULT __RPC_STUB ISequentialStream_Read_Stub(
2967 ISequentialStream* This,
2971 HRESULT CALLBACK ISequentialStream_RemoteWrite_Proxy(
2972 ISequentialStream* This,
2976 void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
2977 struct IRpcStubBuffer* This,
2978 struct IRpcChannelBuffer* pRpcChannelBuffer,
2979 PRPC_MESSAGE pRpcMessage,
2980 DWORD* pdwStubPhase);
2981 HRESULT CALLBACK ISequentialStream_Write_Proxy(
2982 ISequentialStream* This,
2986 HRESULT __RPC_STUB ISequentialStream_Write_Stub(
2987 ISequentialStream* This,
2992 typedef IStream *LPSTREAM;
2994 typedef struct tagSTATSTG {
2997 ULARGE_INTEGER cbSize;
3002 DWORD grfLocksSupported;
3008 typedef enum tagSTGTY {
3011 STGTY_LOCKBYTES = 3,
3015 typedef enum tagSTREAM_SEEK {
3016 STREAM_SEEK_SET = 0,
3017 STREAM_SEEK_CUR = 1,
3025 typedef enum tagLOCKTYPE {
3031 /*****************************************************************************
3034 DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3035 #if defined(__cplusplus) && !defined(CINTERFACE)
3036 struct IStream: ISequentialStream {
3038 virtual HRESULT STDMETHODCALLTYPE Seek(
3039 LARGE_INTEGER dlibMove,
3041 ULARGE_INTEGER* plibNewPosition) = 0;
3043 virtual HRESULT STDMETHODCALLTYPE SetSize(
3044 ULARGE_INTEGER libNewSize) = 0;
3046 virtual HRESULT STDMETHODCALLTYPE CopyTo(
3049 ULARGE_INTEGER* pcbRead,
3050 ULARGE_INTEGER* pcbWritten) = 0;
3052 virtual HRESULT STDMETHODCALLTYPE Commit(
3053 DWORD grfCommitFlags) = 0;
3055 virtual HRESULT STDMETHODCALLTYPE Revert(
3058 virtual HRESULT STDMETHODCALLTYPE LockRegion(
3059 ULARGE_INTEGER libOffset,
3061 DWORD dwLockType) = 0;
3063 virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
3064 ULARGE_INTEGER libOffset,
3066 DWORD dwLockType) = 0;
3068 virtual HRESULT STDMETHODCALLTYPE Stat(
3070 DWORD grfStatFlag) = 0;
3072 virtual HRESULT STDMETHODCALLTYPE Clone(
3073 IStream** ppstm) = 0;
3075 } ICOM_COM_INTERFACE_ATTRIBUTE;
3077 typedef struct IStreamVtbl IStreamVtbl;
3079 const IStreamVtbl* lpVtbl;
3081 struct IStreamVtbl {
3082 ICOM_MSVTABLE_COMPAT_FIELDS
3084 /*** IUnknown methods ***/
3085 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3090 ULONG (STDMETHODCALLTYPE *AddRef)(
3093 ULONG (STDMETHODCALLTYPE *Release)(
3096 /*** ISequentialStream methods ***/
3097 HRESULT (STDMETHODCALLTYPE *Read)(
3103 HRESULT (STDMETHODCALLTYPE *Write)(
3109 /*** IStream methods ***/
3110 HRESULT (STDMETHODCALLTYPE *Seek)(
3112 LARGE_INTEGER dlibMove,
3114 ULARGE_INTEGER* plibNewPosition);
3116 HRESULT (STDMETHODCALLTYPE *SetSize)(
3118 ULARGE_INTEGER libNewSize);
3120 HRESULT (STDMETHODCALLTYPE *CopyTo)(
3124 ULARGE_INTEGER* pcbRead,
3125 ULARGE_INTEGER* pcbWritten);
3127 HRESULT (STDMETHODCALLTYPE *Commit)(
3129 DWORD grfCommitFlags);
3131 HRESULT (STDMETHODCALLTYPE *Revert)(
3134 HRESULT (STDMETHODCALLTYPE *LockRegion)(
3136 ULARGE_INTEGER libOffset,
3140 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
3142 ULARGE_INTEGER libOffset,
3146 HRESULT (STDMETHODCALLTYPE *Stat)(
3151 HRESULT (STDMETHODCALLTYPE *Clone)(
3157 #define IStream_IMETHODS \
3158 /*** IUnknown methods ***/ \
3159 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
3160 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
3161 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
3162 /*** ISequentialStream methods ***/ \
3163 HRESULT (STDMETHODCALLTYPE *Read)(INTERFACE *This, void* pv, ULONG cb, ULONG* pcbRead); \
3164 HRESULT (STDMETHODCALLTYPE *Write)(INTERFACE *This, const void* pv, ULONG cb, ULONG* pcbWritten); \
3165 /*** IStream methods ***/ \
3166 HRESULT (STDMETHODCALLTYPE *Seek)(INTERFACE *This, LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition); \
3167 HRESULT (STDMETHODCALLTYPE *SetSize)(INTERFACE *This, ULARGE_INTEGER libNewSize); \
3168 HRESULT (STDMETHODCALLTYPE *CopyTo)(INTERFACE *This, IStream* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten); \
3169 HRESULT (STDMETHODCALLTYPE *Commit)(INTERFACE *This, DWORD grfCommitFlags); \
3170 HRESULT (STDMETHODCALLTYPE *Revert)(INTERFACE *This); \
3171 HRESULT (STDMETHODCALLTYPE *LockRegion)(INTERFACE *This, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType); \
3172 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(INTERFACE *This, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType); \
3173 HRESULT (STDMETHODCALLTYPE *Stat)(INTERFACE *This, STATSTG* pstatstg, DWORD grfStatFlag); \
3174 HRESULT (STDMETHODCALLTYPE *Clone)(INTERFACE *This, IStream** ppstm);
3176 /*** IUnknown methods ***/
3177 #define IStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3178 #define IStream_AddRef(p) (p)->lpVtbl->AddRef(p)
3179 #define IStream_Release(p) (p)->lpVtbl->Release(p)
3180 /*** ISequentialStream methods ***/
3181 #define IStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3182 #define IStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3183 /*** IStream methods ***/
3184 #define IStream_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
3185 #define IStream_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
3186 #define IStream_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3187 #define IStream_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3188 #define IStream_Revert(p) (p)->lpVtbl->Revert(p)
3189 #define IStream_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
3190 #define IStream_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
3191 #define IStream_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3192 #define IStream_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3196 HRESULT CALLBACK IStream_RemoteSeek_Proxy(
3198 LARGE_INTEGER dlibMove,
3200 ULARGE_INTEGER* plibNewPosition);
3201 void __RPC_STUB IStream_RemoteSeek_Stub(
3202 struct IRpcStubBuffer* This,
3203 struct IRpcChannelBuffer* pRpcChannelBuffer,
3204 PRPC_MESSAGE pRpcMessage,
3205 DWORD* pdwStubPhase);
3206 HRESULT CALLBACK IStream_Seek_Proxy(
3208 LARGE_INTEGER dlibMove,
3210 ULARGE_INTEGER* plibNewPosition);
3211 HRESULT __RPC_STUB IStream_Seek_Stub(
3213 LARGE_INTEGER dlibMove,
3215 ULARGE_INTEGER* plibNewPosition);
3216 HRESULT CALLBACK IStream_SetSize_Proxy(
3218 ULARGE_INTEGER libNewSize);
3219 void __RPC_STUB IStream_SetSize_Stub(
3220 struct IRpcStubBuffer* This,
3221 struct IRpcChannelBuffer* pRpcChannelBuffer,
3222 PRPC_MESSAGE pRpcMessage,
3223 DWORD* pdwStubPhase);
3224 HRESULT CALLBACK IStream_RemoteCopyTo_Proxy(
3228 ULARGE_INTEGER* pcbRead,
3229 ULARGE_INTEGER* pcbWritten);
3230 void __RPC_STUB IStream_RemoteCopyTo_Stub(
3231 struct IRpcStubBuffer* This,
3232 struct IRpcChannelBuffer* pRpcChannelBuffer,
3233 PRPC_MESSAGE pRpcMessage,
3234 DWORD* pdwStubPhase);
3235 HRESULT CALLBACK IStream_CopyTo_Proxy(
3239 ULARGE_INTEGER* pcbRead,
3240 ULARGE_INTEGER* pcbWritten);
3241 HRESULT __RPC_STUB IStream_CopyTo_Stub(
3245 ULARGE_INTEGER* pcbRead,
3246 ULARGE_INTEGER* pcbWritten);
3247 HRESULT CALLBACK IStream_Commit_Proxy(
3249 DWORD grfCommitFlags);
3250 void __RPC_STUB IStream_Commit_Stub(
3251 struct IRpcStubBuffer* This,
3252 struct IRpcChannelBuffer* pRpcChannelBuffer,
3253 PRPC_MESSAGE pRpcMessage,
3254 DWORD* pdwStubPhase);
3255 HRESULT CALLBACK IStream_Revert_Proxy(
3257 void __RPC_STUB IStream_Revert_Stub(
3258 struct IRpcStubBuffer* This,
3259 struct IRpcChannelBuffer* pRpcChannelBuffer,
3260 PRPC_MESSAGE pRpcMessage,
3261 DWORD* pdwStubPhase);
3262 HRESULT CALLBACK IStream_LockRegion_Proxy(
3264 ULARGE_INTEGER libOffset,
3267 void __RPC_STUB IStream_LockRegion_Stub(
3268 struct IRpcStubBuffer* This,
3269 struct IRpcChannelBuffer* pRpcChannelBuffer,
3270 PRPC_MESSAGE pRpcMessage,
3271 DWORD* pdwStubPhase);
3272 HRESULT CALLBACK IStream_UnlockRegion_Proxy(
3274 ULARGE_INTEGER libOffset,
3277 void __RPC_STUB IStream_UnlockRegion_Stub(
3278 struct IRpcStubBuffer* This,
3279 struct IRpcChannelBuffer* pRpcChannelBuffer,
3280 PRPC_MESSAGE pRpcMessage,
3281 DWORD* pdwStubPhase);
3282 HRESULT CALLBACK IStream_Stat_Proxy(
3286 void __RPC_STUB IStream_Stat_Stub(
3287 struct IRpcStubBuffer* This,
3288 struct IRpcChannelBuffer* pRpcChannelBuffer,
3289 PRPC_MESSAGE pRpcMessage,
3290 DWORD* pdwStubPhase);
3291 HRESULT CALLBACK IStream_Clone_Proxy(
3294 void __RPC_STUB IStream_Clone_Stub(
3295 struct IRpcStubBuffer* This,
3296 struct IRpcChannelBuffer* pRpcChannelBuffer,
3297 PRPC_MESSAGE pRpcMessage,
3298 DWORD* pdwStubPhase);
3300 typedef IStream16 *LPSTREAM16;
3302 typedef struct tagSTATSTG16 {
3303 LPOLESTR16 pwcsName;
3305 ULARGE_INTEGER cbSize;
3310 DWORD grfLocksSupported;
3316 /*****************************************************************************
3317 * IStream16 interface
3319 #if defined(__cplusplus) && !defined(CINTERFACE)
3320 struct IStream16: ISequentialStream {
3322 virtual HRESULT STDMETHODCALLTYPE Seek(
3323 LARGE_INTEGER dlibMove,
3325 ULARGE_INTEGER* plibNewPosition) = 0;
3327 virtual HRESULT STDMETHODCALLTYPE SetSize(
3328 ULARGE_INTEGER libNewSize) = 0;
3330 virtual HRESULT STDMETHODCALLTYPE CopyTo(
3333 ULARGE_INTEGER* pcbRead,
3334 ULARGE_INTEGER* pcbWritten) = 0;
3336 virtual HRESULT STDMETHODCALLTYPE Commit(
3337 DWORD grfCommitFlags) = 0;
3339 virtual HRESULT STDMETHODCALLTYPE Revert(
3342 virtual HRESULT STDMETHODCALLTYPE LockRegion(
3343 ULARGE_INTEGER libOffset,
3345 DWORD dwLockType) = 0;
3347 virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
3348 ULARGE_INTEGER libOffset,
3350 DWORD dwLockType) = 0;
3352 virtual HRESULT STDMETHODCALLTYPE Stat(
3354 DWORD grfStatFlag) = 0;
3356 virtual HRESULT STDMETHODCALLTYPE Clone(
3357 IStream16** ppstm) = 0;
3359 } ICOM_COM_INTERFACE_ATTRIBUTE;
3361 typedef struct IStream16Vtbl IStream16Vtbl;
3363 const IStream16Vtbl* lpVtbl;
3365 struct IStream16Vtbl {
3366 ICOM_MSVTABLE_COMPAT_FIELDS
3368 /*** IUnknown methods ***/
3369 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3374 ULONG (STDMETHODCALLTYPE *AddRef)(
3377 ULONG (STDMETHODCALLTYPE *Release)(
3380 /*** ISequentialStream methods ***/
3381 HRESULT (STDMETHODCALLTYPE *Read)(
3387 HRESULT (STDMETHODCALLTYPE *Write)(
3393 /*** IStream16 methods ***/
3394 HRESULT (STDMETHODCALLTYPE *Seek)(
3396 LARGE_INTEGER dlibMove,
3398 ULARGE_INTEGER* plibNewPosition);
3400 HRESULT (STDMETHODCALLTYPE *SetSize)(
3402 ULARGE_INTEGER libNewSize);
3404 HRESULT (STDMETHODCALLTYPE *CopyTo)(
3408 ULARGE_INTEGER* pcbRead,
3409 ULARGE_INTEGER* pcbWritten);
3411 HRESULT (STDMETHODCALLTYPE *Commit)(
3413 DWORD grfCommitFlags);
3415 HRESULT (STDMETHODCALLTYPE *Revert)(
3418 HRESULT (STDMETHODCALLTYPE *LockRegion)(
3420 ULARGE_INTEGER libOffset,
3424 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
3426 ULARGE_INTEGER libOffset,
3430 HRESULT (STDMETHODCALLTYPE *Stat)(
3435 HRESULT (STDMETHODCALLTYPE *Clone)(
3441 #define IStream16_IMETHODS \
3442 /*** IUnknown methods ***/ \
3443 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
3444 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
3445 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
3446 /*** ISequentialStream methods ***/ \
3447 HRESULT (STDMETHODCALLTYPE *Read)(INTERFACE *This, void* pv, ULONG cb, ULONG* pcbRead); \
3448 HRESULT (STDMETHODCALLTYPE *Write)(INTERFACE *This, const void* pv, ULONG cb, ULONG* pcbWritten); \
3449 /*** IStream16 methods ***/ \
3450 HRESULT (STDMETHODCALLTYPE *Seek)(INTERFACE *This, LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition); \
3451 HRESULT (STDMETHODCALLTYPE *SetSize)(INTERFACE *This, ULARGE_INTEGER libNewSize); \
3452 HRESULT (STDMETHODCALLTYPE *CopyTo)(INTERFACE *This, IStream16* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten); \
3453 HRESULT (STDMETHODCALLTYPE *Commit)(INTERFACE *This, DWORD grfCommitFlags); \
3454 HRESULT (STDMETHODCALLTYPE *Revert)(INTERFACE *This); \
3455 HRESULT (STDMETHODCALLTYPE *LockRegion)(INTERFACE *This, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType); \
3456 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(INTERFACE *This, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType); \
3457 HRESULT (STDMETHODCALLTYPE *Stat)(INTERFACE *This, STATSTG* pstatstg, DWORD grfStatFlag); \
3458 HRESULT (STDMETHODCALLTYPE *Clone)(INTERFACE *This, IStream16** ppstm);
3460 /*** IUnknown methods ***/
3461 #define IStream16_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3462 #define IStream16_AddRef(p) (p)->lpVtbl->AddRef(p)
3463 #define IStream16_Release(p) (p)->lpVtbl->Release(p)
3464 /*** ISequentialStream methods ***/
3465 #define IStream16_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3466 #define IStream16_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3467 /*** IStream16 methods ***/
3468 #define IStream16_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
3469 #define IStream16_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
3470 #define IStream16_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3471 #define IStream16_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3472 #define IStream16_Revert(p) (p)->lpVtbl->Revert(p)
3473 #define IStream16_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
3474 #define IStream16_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
3475 #define IStream16_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3476 #define IStream16_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3480 HRESULT CALLBACK IStream16_RemoteSeek_Proxy(
3482 LARGE_INTEGER dlibMove,
3484 ULARGE_INTEGER* plibNewPosition);
3485 void __RPC_STUB IStream16_RemoteSeek_Stub(
3486 struct IRpcStubBuffer* This,
3487 struct IRpcChannelBuffer* pRpcChannelBuffer,
3488 PRPC_MESSAGE pRpcMessage,
3489 DWORD* pdwStubPhase);
3490 HRESULT CALLBACK IStream16_Seek_Proxy(
3492 LARGE_INTEGER dlibMove,
3494 ULARGE_INTEGER* plibNewPosition);
3495 HRESULT __RPC_STUB IStream16_Seek_Stub(
3497 LARGE_INTEGER dlibMove,
3499 ULARGE_INTEGER* plibNewPosition);
3500 HRESULT CALLBACK IStream16_SetSize_Proxy(
3502 ULARGE_INTEGER libNewSize);
3503 void __RPC_STUB IStream16_SetSize_Stub(
3504 struct IRpcStubBuffer* This,
3505 struct IRpcChannelBuffer* pRpcChannelBuffer,
3506 PRPC_MESSAGE pRpcMessage,
3507 DWORD* pdwStubPhase);
3508 HRESULT CALLBACK IStream16_RemoteCopyTo_Proxy(
3512 ULARGE_INTEGER* pcbRead,
3513 ULARGE_INTEGER* pcbWritten);
3514 void __RPC_STUB IStream16_RemoteCopyTo_Stub(
3515 struct IRpcStubBuffer* This,
3516 struct IRpcChannelBuffer* pRpcChannelBuffer,
3517 PRPC_MESSAGE pRpcMessage,
3518 DWORD* pdwStubPhase);
3519 HRESULT CALLBACK IStream16_CopyTo_Proxy(
3523 ULARGE_INTEGER* pcbRead,
3524 ULARGE_INTEGER* pcbWritten);
3525 HRESULT __RPC_STUB IStream16_CopyTo_Stub(
3529 ULARGE_INTEGER* pcbRead,
3530 ULARGE_INTEGER* pcbWritten);
3531 HRESULT CALLBACK IStream16_Commit_Proxy(
3533 DWORD grfCommitFlags);
3534 void __RPC_STUB IStream16_Commit_Stub(
3535 struct IRpcStubBuffer* This,
3536 struct IRpcChannelBuffer* pRpcChannelBuffer,
3537 PRPC_MESSAGE pRpcMessage,
3538 DWORD* pdwStubPhase);
3539 HRESULT CALLBACK IStream16_Revert_Proxy(
3541 void __RPC_STUB IStream16_Revert_Stub(
3542 struct IRpcStubBuffer* This,
3543 struct IRpcChannelBuffer* pRpcChannelBuffer,
3544 PRPC_MESSAGE pRpcMessage,
3545 DWORD* pdwStubPhase);
3546 HRESULT CALLBACK IStream16_LockRegion_Proxy(
3548 ULARGE_INTEGER libOffset,
3551 void __RPC_STUB IStream16_LockRegion_Stub(
3552 struct IRpcStubBuffer* This,
3553 struct IRpcChannelBuffer* pRpcChannelBuffer,
3554 PRPC_MESSAGE pRpcMessage,
3555 DWORD* pdwStubPhase);
3556 HRESULT CALLBACK IStream16_UnlockRegion_Proxy(
3558 ULARGE_INTEGER libOffset,
3561 void __RPC_STUB IStream16_UnlockRegion_Stub(
3562 struct IRpcStubBuffer* This,
3563 struct IRpcChannelBuffer* pRpcChannelBuffer,
3564 PRPC_MESSAGE pRpcMessage,
3565 DWORD* pdwStubPhase);
3566 HRESULT CALLBACK IStream16_Stat_Proxy(
3570 void __RPC_STUB IStream16_Stat_Stub(
3571 struct IRpcStubBuffer* This,
3572 struct IRpcChannelBuffer* pRpcChannelBuffer,
3573 PRPC_MESSAGE pRpcMessage,
3574 DWORD* pdwStubPhase);
3575 HRESULT CALLBACK IStream16_Clone_Proxy(
3578 void __RPC_STUB IStream16_Clone_Stub(
3579 struct IRpcStubBuffer* This,
3580 struct IRpcChannelBuffer* pRpcChannelBuffer,
3581 PRPC_MESSAGE pRpcMessage,
3582 DWORD* pdwStubPhase);
3584 typedef struct IEnumSTATSTG IEnumSTATSTG;
3585 typedef IEnumSTATSTG *LPENUMSTATSTG;
3587 /*****************************************************************************
3588 * IEnumSTATSTG interface
3590 DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3591 #if defined(__cplusplus) && !defined(CINTERFACE)
3592 struct IEnumSTATSTG: IUnknown {
3594 virtual HRESULT STDMETHODCALLTYPE Next(
3597 ULONG* pceltFetched) = 0;
3599 virtual HRESULT STDMETHODCALLTYPE Skip(
3602 virtual HRESULT STDMETHODCALLTYPE Reset(
3605 virtual HRESULT STDMETHODCALLTYPE Clone(
3606 IEnumSTATSTG** ppenum) = 0;
3608 } ICOM_COM_INTERFACE_ATTRIBUTE;
3610 typedef struct IEnumSTATSTGVtbl IEnumSTATSTGVtbl;
3611 struct IEnumSTATSTG {
3612 const IEnumSTATSTGVtbl* lpVtbl;
3614 struct IEnumSTATSTGVtbl {
3615 ICOM_MSVTABLE_COMPAT_FIELDS
3617 /*** IUnknown methods ***/
3618 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3623 ULONG (STDMETHODCALLTYPE *AddRef)(
3624 IEnumSTATSTG* This);
3626 ULONG (STDMETHODCALLTYPE *Release)(
3627 IEnumSTATSTG* This);
3629 /*** IEnumSTATSTG methods ***/
3630 HRESULT (STDMETHODCALLTYPE *Next)(
3634 ULONG* pceltFetched);
3636 HRESULT (STDMETHODCALLTYPE *Skip)(
3640 HRESULT (STDMETHODCALLTYPE *Reset)(
3641 IEnumSTATSTG* This);
3643 HRESULT (STDMETHODCALLTYPE *Clone)(
3645 IEnumSTATSTG** ppenum);
3649 #define IEnumSTATSTG_IMETHODS \
3650 /*** IUnknown methods ***/ \
3651 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
3652 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
3653 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
3654 /*** IEnumSTATSTG methods ***/ \
3655 HRESULT (STDMETHODCALLTYPE *Next)(INTERFACE *This, ULONG celt, STATSTG* rgelt, ULONG* pceltFetched); \
3656 HRESULT (STDMETHODCALLTYPE *Skip)(INTERFACE *This, ULONG celt); \
3657 HRESULT (STDMETHODCALLTYPE *Reset)(INTERFACE *This); \
3658 HRESULT (STDMETHODCALLTYPE *Clone)(INTERFACE *This, IEnumSTATSTG** ppenum);
3660 /*** IUnknown methods ***/
3661 #define IEnumSTATSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3662 #define IEnumSTATSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
3663 #define IEnumSTATSTG_Release(p) (p)->lpVtbl->Release(p)
3664 /*** IEnumSTATSTG methods ***/
3665 #define IEnumSTATSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
3666 #define IEnumSTATSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
3667 #define IEnumSTATSTG_Reset(p) (p)->lpVtbl->Reset(p)
3668 #define IEnumSTATSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3672 HRESULT CALLBACK IEnumSTATSTG_RemoteNext_Proxy(
3676 ULONG* pceltFetched);
3677 void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
3678 struct IRpcStubBuffer* This,
3679 struct IRpcChannelBuffer* pRpcChannelBuffer,
3680 PRPC_MESSAGE pRpcMessage,
3681 DWORD* pdwStubPhase);
3682 HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
3686 ULONG* pceltFetched);
3687 HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
3691 ULONG* pceltFetched);
3692 HRESULT CALLBACK IEnumSTATSTG_Skip_Proxy(
3695 void __RPC_STUB IEnumSTATSTG_Skip_Stub(
3696 struct IRpcStubBuffer* This,
3697 struct IRpcChannelBuffer* pRpcChannelBuffer,
3698 PRPC_MESSAGE pRpcMessage,
3699 DWORD* pdwStubPhase);
3700 HRESULT CALLBACK IEnumSTATSTG_Reset_Proxy(
3701 IEnumSTATSTG* This);
3702 void __RPC_STUB IEnumSTATSTG_Reset_Stub(
3703 struct IRpcStubBuffer* This,
3704 struct IRpcChannelBuffer* pRpcChannelBuffer,
3705 PRPC_MESSAGE pRpcMessage,
3706 DWORD* pdwStubPhase);
3707 HRESULT CALLBACK IEnumSTATSTG_Clone_Proxy(
3709 IEnumSTATSTG** ppenum);
3710 void __RPC_STUB IEnumSTATSTG_Clone_Stub(
3711 struct IRpcStubBuffer* This,
3712 struct IRpcChannelBuffer* pRpcChannelBuffer,
3713 PRPC_MESSAGE pRpcMessage,
3714 DWORD* pdwStubPhase);
3716 typedef struct IStorage IStorage;
3717 typedef IStorage *LPSTORAGE;
3719 typedef struct tagRemSNB {
3720 unsigned long ulCntStr;
3721 unsigned long ulCntChar;
3722 OLECHAR rgString[1];
3725 typedef RemSNB *wireSNB;
3727 typedef OLECHAR **SNB;
3728 unsigned long __RPC_USER SNB_UserSize (unsigned long *, unsigned long, SNB *);
3729 unsigned char * __RPC_USER SNB_UserMarshal (unsigned long *, unsigned char *, SNB *);
3730 unsigned char * __RPC_USER SNB_UserUnmarshal(unsigned long *, unsigned char *, SNB *);
3731 void __RPC_USER SNB_UserFree (unsigned long *, SNB *);
3733 /*****************************************************************************
3734 * IStorage interface
3736 DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3737 #if defined(__cplusplus) && !defined(CINTERFACE)
3738 struct IStorage: IUnknown {
3740 virtual HRESULT STDMETHODCALLTYPE CreateStream(
3745 IStream** ppstm) = 0;
3747 virtual HRESULT STDMETHODCALLTYPE OpenStream(
3752 IStream** ppstm) = 0;
3754 virtual HRESULT STDMETHODCALLTYPE CreateStorage(
3759 IStorage** ppstg) = 0;
3761 virtual HRESULT STDMETHODCALLTYPE OpenStorage(
3763 IStorage* pstgPriority,
3767 IStorage** ppstg) = 0;
3769 virtual HRESULT STDMETHODCALLTYPE CopyTo(
3771 const IID* rgiidExclude,
3773 IStorage* pstgDest) = 0;
3775 virtual HRESULT STDMETHODCALLTYPE MoveElementTo(
3778 LPCOLESTR pwcsNewName,
3779 DWORD grfFlags) = 0;
3781 virtual HRESULT STDMETHODCALLTYPE Commit(
3782 DWORD grfCommitFlags) = 0;
3784 virtual HRESULT STDMETHODCALLTYPE Revert(
3787 virtual HRESULT STDMETHODCALLTYPE EnumElements(
3791 IEnumSTATSTG** ppenum) = 0;
3793 virtual HRESULT STDMETHODCALLTYPE DestroyElement(
3794 LPCOLESTR pwcsName) = 0;
3796 virtual HRESULT STDMETHODCALLTYPE RenameElement(
3797 LPCOLESTR pwcsOldName,
3798 LPCOLESTR pwcsNewName) = 0;
3800 virtual HRESULT STDMETHODCALLTYPE SetElementTimes(
3802 const FILETIME* pctime,
3803 const FILETIME* patime,
3804 const FILETIME* pmtime) = 0;
3806 virtual HRESULT STDMETHODCALLTYPE SetClass(
3807 REFCLSID clsid) = 0;
3809 virtual HRESULT STDMETHODCALLTYPE SetStateBits(
3813 virtual HRESULT STDMETHODCALLTYPE Stat(
3815 DWORD grfStatFlag) = 0;
3817 } ICOM_COM_INTERFACE_ATTRIBUTE;
3819 typedef struct IStorageVtbl IStorageVtbl;
3821 const IStorageVtbl* lpVtbl;
3823 struct IStorageVtbl {
3824 ICOM_MSVTABLE_COMPAT_FIELDS
3826 /*** IUnknown methods ***/
3827 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3832 ULONG (STDMETHODCALLTYPE *AddRef)(
3835 ULONG (STDMETHODCALLTYPE *Release)(
3838 /*** IStorage methods ***/
3839 HRESULT (STDMETHODCALLTYPE *CreateStream)(
3847 HRESULT (STDMETHODCALLTYPE *OpenStream)(
3855 HRESULT (STDMETHODCALLTYPE *CreateStorage)(
3863 HRESULT (STDMETHODCALLTYPE *OpenStorage)(
3866 IStorage* pstgPriority,
3872 HRESULT (STDMETHODCALLTYPE *CopyTo)(
3875 const IID* rgiidExclude,
3877 IStorage* pstgDest);
3879 HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
3883 LPCOLESTR pwcsNewName,
3886 HRESULT (STDMETHODCALLTYPE *Commit)(
3888 DWORD grfCommitFlags);
3890 HRESULT (STDMETHODCALLTYPE *Revert)(
3893 HRESULT (STDMETHODCALLTYPE *EnumElements)(
3898 IEnumSTATSTG** ppenum);
3900 HRESULT (STDMETHODCALLTYPE *DestroyElement)(
3902 LPCOLESTR pwcsName);
3904 HRESULT (STDMETHODCALLTYPE *RenameElement)(
3906 LPCOLESTR pwcsOldName,
3907 LPCOLESTR pwcsNewName);
3909 HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
3912 const FILETIME* pctime,
3913 const FILETIME* patime,
3914 const FILETIME* pmtime);
3916 HRESULT (STDMETHODCALLTYPE *SetClass)(
3920 HRESULT (STDMETHODCALLTYPE *SetStateBits)(
3925 HRESULT (STDMETHODCALLTYPE *Stat)(
3932 #define IStorage_IMETHODS \
3933 /*** IUnknown methods ***/ \
3934 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
3935 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
3936 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
3937 /*** IStorage methods ***/ \
3938 HRESULT (STDMETHODCALLTYPE *CreateStream)(INTERFACE *This, LPCOLESTR pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream** ppstm); \
3939 HRESULT (STDMETHODCALLTYPE *OpenStream)(INTERFACE *This, LPCOLESTR pwcsName, void* reserved1, DWORD grfMode, DWORD reserved2, IStream** ppstm); \
3940 HRESULT (STDMETHODCALLTYPE *CreateStorage)(INTERFACE *This, LPCOLESTR pwcsName, DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage** ppstg); \
3941 HRESULT (STDMETHODCALLTYPE *OpenStorage)(INTERFACE *This, LPCOLESTR pwcsName, IStorage* pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage** ppstg); \
3942 HRESULT (STDMETHODCALLTYPE *CopyTo)(INTERFACE *This, DWORD ciidExclude, const IID* rgiidExclude, SNB snbExclude, IStorage* pstgDest); \
3943 HRESULT (STDMETHODCALLTYPE *MoveElementTo)(INTERFACE *This, LPCOLESTR pwcsName, IStorage* pstgDest, LPCOLESTR pwcsNewName, DWORD grfFlags); \
3944 HRESULT (STDMETHODCALLTYPE *Commit)(INTERFACE *This, DWORD grfCommitFlags); \
3945 HRESULT (STDMETHODCALLTYPE *Revert)(INTERFACE *This); \
3946 HRESULT (STDMETHODCALLTYPE *EnumElements)(INTERFACE *This, DWORD reserved1, void* reserved2, DWORD reserved3, IEnumSTATSTG** ppenum); \
3947 HRESULT (STDMETHODCALLTYPE *DestroyElement)(INTERFACE *This, LPCOLESTR pwcsName); \
3948 HRESULT (STDMETHODCALLTYPE *RenameElement)(INTERFACE *This, LPCOLESTR pwcsOldName, LPCOLESTR pwcsNewName); \
3949 HRESULT (STDMETHODCALLTYPE *SetElementTimes)(INTERFACE *This, LPCOLESTR pwcsName, const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime); \
3950 HRESULT (STDMETHODCALLTYPE *SetClass)(INTERFACE *This, REFCLSID clsid); \
3951 HRESULT (STDMETHODCALLTYPE *SetStateBits)(INTERFACE *This, DWORD grfStateBits, DWORD grfMask); \
3952 HRESULT (STDMETHODCALLTYPE *Stat)(INTERFACE *This, STATSTG* pstatstg, DWORD grfStatFlag);
3954 /*** IUnknown methods ***/
3955 #define IStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3956 #define IStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
3957 #define IStorage_Release(p) (p)->lpVtbl->Release(p)
3958 /*** IStorage methods ***/
3959 #define IStorage_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
3960 #define IStorage_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
3961 #define IStorage_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
3962 #define IStorage_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
3963 #define IStorage_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3964 #define IStorage_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
3965 #define IStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3966 #define IStorage_Revert(p) (p)->lpVtbl->Revert(p)
3967 #define IStorage_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
3968 #define IStorage_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
3969 #define IStorage_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
3970 #define IStorage_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
3971 #define IStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
3972 #define IStorage_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
3973 #define IStorage_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3977 HRESULT CALLBACK IStorage_CreateStream_Proxy(
3984 void __RPC_STUB IStorage_CreateStream_Stub(
3985 struct IRpcStubBuffer* This,
3986 struct IRpcChannelBuffer* pRpcChannelBuffer,
3987 PRPC_MESSAGE pRpcMessage,
3988 DWORD* pdwStubPhase);
3989 HRESULT CALLBACK IStorage_RemoteOpenStream_Proxy(
3992 unsigned long cbReserved1,
3997 void __RPC_STUB IStorage_RemoteOpenStream_Stub(
3998 struct IRpcStubBuffer* This,
3999 struct IRpcChannelBuffer* pRpcChannelBuffer,
4000 PRPC_MESSAGE pRpcMessage,
4001 DWORD* pdwStubPhase);
4002 HRESULT CALLBACK IStorage_OpenStream_Proxy(
4009 HRESULT __RPC_STUB IStorage_OpenStream_Stub(
4012 unsigned long cbReserved1,
4017 HRESULT CALLBACK IStorage_CreateStorage_Proxy(
4024 void __RPC_STUB IStorage_CreateStorage_Stub(
4025 struct IRpcStubBuffer* This,
4026 struct IRpcChannelBuffer* pRpcChannelBuffer,
4027 PRPC_MESSAGE pRpcMessage,
4028 DWORD* pdwStubPhase);
4029 HRESULT CALLBACK IStorage_OpenStorage_Proxy(
4032 IStorage* pstgPriority,
4037 void __RPC_STUB IStorage_OpenStorage_Stub(
4038 struct IRpcStubBuffer* This,
4039 struct IRpcChannelBuffer* pRpcChannelBuffer,
4040 PRPC_MESSAGE pRpcMessage,
4041 DWORD* pdwStubPhase);
4042 HRESULT CALLBACK IStorage_CopyTo_Proxy(
4045 const IID* rgiidExclude,
4047 IStorage* pstgDest);
4048 void __RPC_STUB IStorage_CopyTo_Stub(
4049 struct IRpcStubBuffer* This,
4050 struct IRpcChannelBuffer* pRpcChannelBuffer,
4051 PRPC_MESSAGE pRpcMessage,
4052 DWORD* pdwStubPhase);
4053 HRESULT CALLBACK IStorage_MoveElementTo_Proxy(
4057 LPCOLESTR pwcsNewName,
4059 void __RPC_STUB IStorage_MoveElementTo_Stub(
4060 struct IRpcStubBuffer* This,
4061 struct IRpcChannelBuffer* pRpcChannelBuffer,
4062 PRPC_MESSAGE pRpcMessage,
4063 DWORD* pdwStubPhase);
4064 HRESULT CALLBACK IStorage_Commit_Proxy(
4066 DWORD grfCommitFlags);
4067 void __RPC_STUB IStorage_Commit_Stub(
4068 struct IRpcStubBuffer* This,
4069 struct IRpcChannelBuffer* pRpcChannelBuffer,
4070 PRPC_MESSAGE pRpcMessage,
4071 DWORD* pdwStubPhase);
4072 HRESULT CALLBACK IStorage_Revert_Proxy(
4074 void __RPC_STUB IStorage_Revert_Stub(
4075 struct IRpcStubBuffer* This,
4076 struct IRpcChannelBuffer* pRpcChannelBuffer,
4077 PRPC_MESSAGE pRpcMessage,
4078 DWORD* pdwStubPhase);
4079 HRESULT CALLBACK IStorage_RemoteEnumElements_Proxy(
4082 unsigned long cbReserved2,
4085 IEnumSTATSTG** ppenum);
4086 void __RPC_STUB IStorage_RemoteEnumElements_Stub(
4087 struct IRpcStubBuffer* This,
4088 struct IRpcChannelBuffer* pRpcChannelBuffer,
4089 PRPC_MESSAGE pRpcMessage,
4090 DWORD* pdwStubPhase);
4091 HRESULT CALLBACK IStorage_EnumElements_Proxy(
4096 IEnumSTATSTG** ppenum);
4097 HRESULT __RPC_STUB IStorage_EnumElements_Stub(
4100 unsigned long cbReserved2,
4103 IEnumSTATSTG** ppenum);
4104 HRESULT CALLBACK IStorage_DestroyElement_Proxy(
4106 LPCOLESTR pwcsName);
4107 void __RPC_STUB IStorage_DestroyElement_Stub(
4108 struct IRpcStubBuffer* This,
4109 struct IRpcChannelBuffer* pRpcChannelBuffer,
4110 PRPC_MESSAGE pRpcMessage,
4111 DWORD* pdwStubPhase);
4112 HRESULT CALLBACK IStorage_RenameElement_Proxy(
4114 LPCOLESTR pwcsOldName,
4115 LPCOLESTR pwcsNewName);
4116 void __RPC_STUB IStorage_RenameElement_Stub(
4117 struct IRpcStubBuffer* This,
4118 struct IRpcChannelBuffer* pRpcChannelBuffer,
4119 PRPC_MESSAGE pRpcMessage,
4120 DWORD* pdwStubPhase);
4121 HRESULT CALLBACK IStorage_SetElementTimes_Proxy(
4124 const FILETIME* pctime,
4125 const FILETIME* patime,
4126 const FILETIME* pmtime);
4127 void __RPC_STUB IStorage_SetElementTimes_Stub(
4128 struct IRpcStubBuffer* This,
4129 struct IRpcChannelBuffer* pRpcChannelBuffer,
4130 PRPC_MESSAGE pRpcMessage,
4131 DWORD* pdwStubPhase);
4132 HRESULT CALLBACK IStorage_SetClass_Proxy(
4135 void __RPC_STUB IStorage_SetClass_Stub(
4136 struct IRpcStubBuffer* This,
4137 struct IRpcChannelBuffer* pRpcChannelBuffer,
4138 PRPC_MESSAGE pRpcMessage,
4139 DWORD* pdwStubPhase);
4140 HRESULT CALLBACK IStorage_SetStateBits_Proxy(
4144 void __RPC_STUB IStorage_SetStateBits_Stub(
4145 struct IRpcStubBuffer* This,
4146 struct IRpcChannelBuffer* pRpcChannelBuffer,
4147 PRPC_MESSAGE pRpcMessage,
4148 DWORD* pdwStubPhase);
4149 HRESULT CALLBACK IStorage_Stat_Proxy(
4153 void __RPC_STUB IStorage_Stat_Stub(
4154 struct IRpcStubBuffer* This,
4155 struct IRpcChannelBuffer* pRpcChannelBuffer,
4156 PRPC_MESSAGE pRpcMessage,
4157 DWORD* pdwStubPhase);
4159 typedef struct IStorage16 IStorage16;
4160 typedef IStorage16 *LPSTORAGE16;
4162 typedef struct tagRemSNB16 {
4163 unsigned long ulCntStr;
4164 unsigned long ulCntChar;
4165 OLECHAR16 rgString[1];
4168 typedef RemSNB16 *wireSNB16;
4170 typedef OLECHAR16 **SNB16;
4171 unsigned long __RPC_USER SNB16_UserSize (unsigned long *, unsigned long, SNB16 *);
4172 unsigned char * __RPC_USER SNB16_UserMarshal (unsigned long *, unsigned char *, SNB16 *);
4173 unsigned char * __RPC_USER SNB16_UserUnmarshal(unsigned long *, unsigned char *, SNB16 *);
4174 void __RPC_USER SNB16_UserFree (unsigned long *, SNB16 *);
4176 /*****************************************************************************
4177 * IStorage16 interface
4179 #if defined(__cplusplus) && !defined(CINTERFACE)
4180 struct IStorage16: IUnknown {
4182 virtual HRESULT STDMETHODCALLTYPE CreateStream(
4183 LPCOLESTR16 pwcsName,
4187 IStream16** ppstm) = 0;
4189 virtual HRESULT STDMETHODCALLTYPE OpenStream(
4190 LPCOLESTR16 pwcsName,
4194 IStream16** ppstm) = 0;
4196 virtual HRESULT STDMETHODCALLTYPE CreateStorage(
4197 LPCOLESTR16 pwcsName,
4201 IStorage16** ppstg) = 0;
4203 virtual HRESULT STDMETHODCALLTYPE OpenStorage(
4204 LPCOLESTR16 pwcsName,
4205 IStorage16* pstgPriority,
4209 IStorage16** ppstg) = 0;
4211 virtual HRESULT STDMETHODCALLTYPE CopyTo(
4213 const IID* rgiidExclude,
4215 IStorage16* pstgDest) = 0;
4217 virtual HRESULT STDMETHODCALLTYPE MoveElementTo(
4218 LPCOLESTR16 pwcsName,
4219 IStorage16* pstgDest,
4220 LPCOLESTR16 pwcsNewName,
4221 DWORD grfFlags) = 0;
4223 virtual HRESULT STDMETHODCALLTYPE Commit(
4224 DWORD grfCommitFlags) = 0;
4226 virtual HRESULT STDMETHODCALLTYPE Revert(
4229 virtual HRESULT STDMETHODCALLTYPE EnumElements(
4233 IEnumSTATSTG** ppenum) = 0;
4235 virtual HRESULT STDMETHODCALLTYPE DestroyElement(
4236 LPCOLESTR16 pwcsName) = 0;
4238 virtual HRESULT STDMETHODCALLTYPE RenameElement(
4239 LPCOLESTR16 pwcsOldName,
4240 LPCOLESTR16 pwcsNewName) = 0;
4242 virtual HRESULT STDMETHODCALLTYPE SetElementTimes(
4243 LPCOLESTR16 pwcsName,
4244 const FILETIME* pctime,
4245 const FILETIME* patime,
4246 const FILETIME* pmtime) = 0;
4248 virtual HRESULT STDMETHODCALLTYPE SetClass(
4249 REFCLSID clsid) = 0;
4251 virtual HRESULT STDMETHODCALLTYPE SetStateBits(
4255 virtual HRESULT STDMETHODCALLTYPE Stat(
4257 DWORD grfStatFlag) = 0;
4259 } ICOM_COM_INTERFACE_ATTRIBUTE;
4261 typedef struct IStorage16Vtbl IStorage16Vtbl;
4263 const IStorage16Vtbl* lpVtbl;
4265 struct IStorage16Vtbl {
4266 ICOM_MSVTABLE_COMPAT_FIELDS
4268 /*** IUnknown methods ***/
4269 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4274 ULONG (STDMETHODCALLTYPE *AddRef)(
4277 ULONG (STDMETHODCALLTYPE *Release)(
4280 /*** IStorage16 methods ***/
4281 HRESULT (STDMETHODCALLTYPE *CreateStream)(
4283 LPCOLESTR16 pwcsName,
4289 HRESULT (STDMETHODCALLTYPE *OpenStream)(
4291 LPCOLESTR16 pwcsName,
4297 HRESULT (STDMETHODCALLTYPE *CreateStorage)(
4299 LPCOLESTR16 pwcsName,
4303 IStorage16** ppstg);
4305 HRESULT (STDMETHODCALLTYPE *OpenStorage)(
4307 LPCOLESTR16 pwcsName,
4308 IStorage16* pstgPriority,
4312 IStorage16** ppstg);
4314 HRESULT (STDMETHODCALLTYPE *CopyTo)(
4317 const IID* rgiidExclude,
4319 IStorage16* pstgDest);
4321 HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
4323 LPCOLESTR16 pwcsName,
4324 IStorage16* pstgDest,
4325 LPCOLESTR16 pwcsNewName,
4328 HRESULT (STDMETHODCALLTYPE *Commit)(
4330 DWORD grfCommitFlags);
4332 HRESULT (STDMETHODCALLTYPE *Revert)(
4335 HRESULT (STDMETHODCALLTYPE *EnumElements)(
4340 IEnumSTATSTG** ppenum);
4342 HRESULT (STDMETHODCALLTYPE *DestroyElement)(
4344 LPCOLESTR16 pwcsName);
4346 HRESULT (STDMETHODCALLTYPE *RenameElement)(
4348 LPCOLESTR16 pwcsOldName,
4349 LPCOLESTR16 pwcsNewName);
4351 HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
4353 LPCOLESTR16 pwcsName,
4354 const FILETIME* pctime,
4355 const FILETIME* patime,
4356 const FILETIME* pmtime);
4358 HRESULT (STDMETHODCALLTYPE *SetClass)(
4362 HRESULT (STDMETHODCALLTYPE *SetStateBits)(
4367 HRESULT (STDMETHODCALLTYPE *Stat)(
4374 #define IStorage16_IMETHODS \
4375 /*** IUnknown methods ***/ \
4376 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
4377 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
4378 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
4379 /*** IStorage16 methods ***/ \
4380 HRESULT (STDMETHODCALLTYPE *CreateStream)(INTERFACE *This, LPCOLESTR16 pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream16** ppstm); \
4381 HRESULT (STDMETHODCALLTYPE *OpenStream)(INTERFACE *This, LPCOLESTR16 pwcsName, void* reserved1, DWORD grfMode, DWORD reserved2, IStream16** ppstm); \
4382 HRESULT (STDMETHODCALLTYPE *CreateStorage)(INTERFACE *This, LPCOLESTR16 pwcsName, DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage16** ppstg); \
4383 HRESULT (STDMETHODCALLTYPE *OpenStorage)(INTERFACE *This, LPCOLESTR16 pwcsName, IStorage16* pstgPriority, DWORD grfMode, SNB16 snbExclude, DWORD reserved, IStorage16** ppstg); \
4384 HRESULT (STDMETHODCALLTYPE *CopyTo)(INTERFACE *This, DWORD ciidExclude, const IID* rgiidExclude, SNB16 snbExclude, IStorage16* pstgDest); \
4385 HRESULT (STDMETHODCALLTYPE *MoveElementTo)(INTERFACE *This, LPCOLESTR16 pwcsName, IStorage16* pstgDest, LPCOLESTR16 pwcsNewName, DWORD grfFlags); \
4386 HRESULT (STDMETHODCALLTYPE *Commit)(INTERFACE *This, DWORD grfCommitFlags); \
4387 HRESULT (STDMETHODCALLTYPE *Revert)(INTERFACE *This); \
4388 HRESULT (STDMETHODCALLTYPE *EnumElements)(INTERFACE *This, DWORD reserved1, void* reserved2, DWORD reserved3, IEnumSTATSTG** ppenum); \
4389 HRESULT (STDMETHODCALLTYPE *DestroyElement)(INTERFACE *This, LPCOLESTR16 pwcsName); \
4390 HRESULT (STDMETHODCALLTYPE *RenameElement)(INTERFACE *This, LPCOLESTR16 pwcsOldName, LPCOLESTR16 pwcsNewName); \
4391 HRESULT (STDMETHODCALLTYPE *SetElementTimes)(INTERFACE *This, LPCOLESTR16 pwcsName, const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime); \
4392 HRESULT (STDMETHODCALLTYPE *SetClass)(INTERFACE *This, REFCLSID clsid); \
4393 HRESULT (STDMETHODCALLTYPE *SetStateBits)(INTERFACE *This, DWORD grfStateBits, DWORD grfMask); \
4394 HRESULT (STDMETHODCALLTYPE *Stat)(INTERFACE *This, STATSTG* pstatstg, DWORD grfStatFlag);
4396 /*** IUnknown methods ***/
4397 #define IStorage16_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4398 #define IStorage16_AddRef(p) (p)->lpVtbl->AddRef(p)
4399 #define IStorage16_Release(p) (p)->lpVtbl->Release(p)
4400 /*** IStorage16 methods ***/
4401 #define IStorage16_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
4402 #define IStorage16_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
4403 #define IStorage16_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
4404 #define IStorage16_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
4405 #define IStorage16_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
4406 #define IStorage16_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
4407 #define IStorage16_Commit(p,a) (p)->lpVtbl->Commit(p,a)
4408 #define IStorage16_Revert(p) (p)->lpVtbl->Revert(p)
4409 #define IStorage16_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
4410 #define IStorage16_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
4411 #define IStorage16_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
4412 #define IStorage16_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
4413 #define IStorage16_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
4414 #define IStorage16_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
4415 #define IStorage16_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
4419 HRESULT CALLBACK IStorage16_CreateStream_Proxy(
4421 LPCOLESTR16 pwcsName,
4426 void __RPC_STUB IStorage16_CreateStream_Stub(
4427 struct IRpcStubBuffer* This,
4428 struct IRpcChannelBuffer* pRpcChannelBuffer,
4429 PRPC_MESSAGE pRpcMessage,
4430 DWORD* pdwStubPhase);
4431 HRESULT CALLBACK IStorage16_RemoteOpenStream_Proxy(
4433 LPCOLESTR16 pwcsName,
4434 unsigned long cbReserved1,
4439 void __RPC_STUB IStorage16_RemoteOpenStream_Stub(
4440 struct IRpcStubBuffer* This,
4441 struct IRpcChannelBuffer* pRpcChannelBuffer,
4442 PRPC_MESSAGE pRpcMessage,
4443 DWORD* pdwStubPhase);
4444 HRESULT CALLBACK IStorage16_OpenStream_Proxy(
4446 LPCOLESTR16 pwcsName,
4451 HRESULT __RPC_STUB IStorage16_OpenStream_Stub(
4453 LPCOLESTR16 pwcsName,
4454 unsigned long cbReserved1,
4459 HRESULT CALLBACK IStorage16_CreateStorage_Proxy(
4461 LPCOLESTR16 pwcsName,
4465 IStorage16** ppstg);
4466 void __RPC_STUB IStorage16_CreateStorage_Stub(
4467 struct IRpcStubBuffer* This,
4468 struct IRpcChannelBuffer* pRpcChannelBuffer,
4469 PRPC_MESSAGE pRpcMessage,
4470 DWORD* pdwStubPhase);
4471 HRESULT CALLBACK IStorage16_OpenStorage_Proxy(
4473 LPCOLESTR16 pwcsName,
4474 IStorage16* pstgPriority,
4478 IStorage16** ppstg);
4479 void __RPC_STUB IStorage16_OpenStorage_Stub(
4480 struct IRpcStubBuffer* This,
4481 struct IRpcChannelBuffer* pRpcChannelBuffer,
4482 PRPC_MESSAGE pRpcMessage,
4483 DWORD* pdwStubPhase);
4484 HRESULT CALLBACK IStorage16_CopyTo_Proxy(
4487 const IID* rgiidExclude,
4489 IStorage16* pstgDest);
4490 void __RPC_STUB IStorage16_CopyTo_Stub(
4491 struct IRpcStubBuffer* This,
4492 struct IRpcChannelBuffer* pRpcChannelBuffer,
4493 PRPC_MESSAGE pRpcMessage,
4494 DWORD* pdwStubPhase);
4495 HRESULT CALLBACK IStorage16_MoveElementTo_Proxy(
4497 LPCOLESTR16 pwcsName,
4498 IStorage16* pstgDest,
4499 LPCOLESTR16 pwcsNewName,
4501 void __RPC_STUB IStorage16_MoveElementTo_Stub(
4502 struct IRpcStubBuffer* This,
4503 struct IRpcChannelBuffer* pRpcChannelBuffer,
4504 PRPC_MESSAGE pRpcMessage,
4505 DWORD* pdwStubPhase);
4506 HRESULT CALLBACK IStorage16_Commit_Proxy(
4508 DWORD grfCommitFlags);
4509 void __RPC_STUB IStorage16_Commit_Stub(
4510 struct IRpcStubBuffer* This,
4511 struct IRpcChannelBuffer* pRpcChannelBuffer,
4512 PRPC_MESSAGE pRpcMessage,
4513 DWORD* pdwStubPhase);
4514 HRESULT CALLBACK IStorage16_Revert_Proxy(
4516 void __RPC_STUB IStorage16_Revert_Stub(
4517 struct IRpcStubBuffer* This,
4518 struct IRpcChannelBuffer* pRpcChannelBuffer,
4519 PRPC_MESSAGE pRpcMessage,
4520 DWORD* pdwStubPhase);
4521 HRESULT CALLBACK IStorage16_RemoteEnumElements_Proxy(
4524 unsigned long cbReserved2,
4527 IEnumSTATSTG** ppenum);
4528 void __RPC_STUB IStorage16_RemoteEnumElements_Stub(
4529 struct IRpcStubBuffer* This,
4530 struct IRpcChannelBuffer* pRpcChannelBuffer,
4531 PRPC_MESSAGE pRpcMessage,
4532 DWORD* pdwStubPhase);
4533 HRESULT CALLBACK IStorage16_EnumElements_Proxy(
4538 IEnumSTATSTG** ppenum);
4539 HRESULT __RPC_STUB IStorage16_EnumElements_Stub(
4542 unsigned long cbReserved2,
4545 IEnumSTATSTG** ppenum);
4546 HRESULT CALLBACK IStorage16_DestroyElement_Proxy(
4548 LPCOLESTR16 pwcsName);
4549 void __RPC_STUB IStorage16_DestroyElement_Stub(
4550 struct IRpcStubBuffer* This,
4551 struct IRpcChannelBuffer* pRpcChannelBuffer,
4552 PRPC_MESSAGE pRpcMessage,
4553 DWORD* pdwStubPhase);
4554 HRESULT CALLBACK IStorage16_RenameElement_Proxy(
4556 LPCOLESTR16 pwcsOldName,
4557 LPCOLESTR16 pwcsNewName);
4558 void __RPC_STUB IStorage16_RenameElement_Stub(
4559 struct IRpcStubBuffer* This,
4560 struct IRpcChannelBuffer* pRpcChannelBuffer,
4561 PRPC_MESSAGE pRpcMessage,
4562 DWORD* pdwStubPhase);
4563 HRESULT CALLBACK IStorage16_SetElementTimes_Proxy(
4565 LPCOLESTR16 pwcsName,
4566 const FILETIME* pctime,
4567 const FILETIME* patime,
4568 const FILETIME* pmtime);
4569 void __RPC_STUB IStorage16_SetElementTimes_Stub(
4570 struct IRpcStubBuffer* This,
4571 struct IRpcChannelBuffer* pRpcChannelBuffer,
4572 PRPC_MESSAGE pRpcMessage,
4573 DWORD* pdwStubPhase);
4574 HRESULT CALLBACK IStorage16_SetClass_Proxy(
4577 void __RPC_STUB IStorage16_SetClass_Stub(
4578 struct IRpcStubBuffer* This,
4579 struct IRpcChannelBuffer* pRpcChannelBuffer,
4580 PRPC_MESSAGE pRpcMessage,
4581 DWORD* pdwStubPhase);
4582 HRESULT CALLBACK IStorage16_SetStateBits_Proxy(
4586 void __RPC_STUB IStorage16_SetStateBits_Stub(
4587 struct IRpcStubBuffer* This,
4588 struct IRpcChannelBuffer* pRpcChannelBuffer,
4589 PRPC_MESSAGE pRpcMessage,
4590 DWORD* pdwStubPhase);
4591 HRESULT CALLBACK IStorage16_Stat_Proxy(
4595 void __RPC_STUB IStorage16_Stat_Stub(
4596 struct IRpcStubBuffer* This,
4597 struct IRpcChannelBuffer* pRpcChannelBuffer,
4598 PRPC_MESSAGE pRpcMessage,
4599 DWORD* pdwStubPhase);
4601 typedef struct IPersistFile IPersistFile;
4602 typedef IPersistFile *LPPERSISTFILE;
4604 /*****************************************************************************
4605 * IPersistFile interface
4607 DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4608 #if defined(__cplusplus) && !defined(CINTERFACE)
4609 struct IPersistFile: IPersist {
4611 virtual HRESULT STDMETHODCALLTYPE IsDirty(
4614 virtual HRESULT STDMETHODCALLTYPE Load(
4615 LPCOLESTR pszFileName,
4618 virtual HRESULT STDMETHODCALLTYPE Save(
4619 LPCOLESTR pszFileName,
4620 BOOL fRemember) = 0;
4622 virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
4623 LPCOLESTR pszFileName) = 0;
4625 virtual HRESULT STDMETHODCALLTYPE GetCurFile(
4626 LPOLESTR* ppszFileName) = 0;
4628 } ICOM_COM_INTERFACE_ATTRIBUTE;
4630 typedef struct IPersistFileVtbl IPersistFileVtbl;
4631 struct IPersistFile {
4632 const IPersistFileVtbl* lpVtbl;
4634 struct IPersistFileVtbl {
4635 ICOM_MSVTABLE_COMPAT_FIELDS
4637 /*** IUnknown methods ***/
4638 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4643 ULONG (STDMETHODCALLTYPE *AddRef)(
4644 IPersistFile* This);
4646 ULONG (STDMETHODCALLTYPE *Release)(
4647 IPersistFile* This);
4649 /*** IPersist methods ***/
4650 HRESULT (STDMETHODCALLTYPE *GetClassID)(
4654 /*** IPersistFile methods ***/
4655 HRESULT (STDMETHODCALLTYPE *IsDirty)(
4656 IPersistFile* This);
4658 HRESULT (STDMETHODCALLTYPE *Load)(
4660 LPCOLESTR pszFileName,
4663 HRESULT (STDMETHODCALLTYPE *Save)(
4665 LPCOLESTR pszFileName,
4668 HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
4670 LPCOLESTR pszFileName);
4672 HRESULT (STDMETHODCALLTYPE *GetCurFile)(
4674 LPOLESTR* ppszFileName);
4678 #define IPersistFile_IMETHODS \
4679 /*** IUnknown methods ***/ \
4680 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
4681 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
4682 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
4683 /*** IPersist methods ***/ \
4684 HRESULT (STDMETHODCALLTYPE *GetClassID)(INTERFACE *This, CLSID* pClassID); \
4685 /*** IPersistFile methods ***/ \
4686 HRESULT (STDMETHODCALLTYPE *IsDirty)(INTERFACE *This); \
4687 HRESULT (STDMETHODCALLTYPE *Load)(INTERFACE *This, LPCOLESTR pszFileName, DWORD dwMode); \
4688 HRESULT (STDMETHODCALLTYPE *Save)(INTERFACE *This, LPCOLESTR pszFileName, BOOL fRemember); \
4689 HRESULT (STDMETHODCALLTYPE *SaveCompleted)(INTERFACE *This, LPCOLESTR pszFileName); \
4690 HRESULT (STDMETHODCALLTYPE *GetCurFile)(INTERFACE *This, LPOLESTR* ppszFileName);
4692 /*** IUnknown methods ***/
4693 #define IPersistFile_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4694 #define IPersistFile_AddRef(p) (p)->lpVtbl->AddRef(p)
4695 #define IPersistFile_Release(p) (p)->lpVtbl->Release(p)
4696 /*** IPersist methods ***/
4697 #define IPersistFile_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4698 /*** IPersistFile methods ***/
4699 #define IPersistFile_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4700 #define IPersistFile_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
4701 #define IPersistFile_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4702 #define IPersistFile_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
4703 #define IPersistFile_GetCurFile(p,a) (p)->lpVtbl->GetCurFile(p,a)
4707 HRESULT CALLBACK IPersistFile_IsDirty_Proxy(
4708 IPersistFile* This);
4709 void __RPC_STUB IPersistFile_IsDirty_Stub(
4710 struct IRpcStubBuffer* This,
4711 struct IRpcChannelBuffer* pRpcChannelBuffer,
4712 PRPC_MESSAGE pRpcMessage,
4713 DWORD* pdwStubPhase);
4714 HRESULT CALLBACK IPersistFile_Load_Proxy(
4716 LPCOLESTR pszFileName,
4718 void __RPC_STUB IPersistFile_Load_Stub(
4719 struct IRpcStubBuffer* This,
4720 struct IRpcChannelBuffer* pRpcChannelBuffer,
4721 PRPC_MESSAGE pRpcMessage,
4722 DWORD* pdwStubPhase);
4723 HRESULT CALLBACK IPersistFile_Save_Proxy(
4725 LPCOLESTR pszFileName,
4727 void __RPC_STUB IPersistFile_Save_Stub(
4728 struct IRpcStubBuffer* This,
4729 struct IRpcChannelBuffer* pRpcChannelBuffer,
4730 PRPC_MESSAGE pRpcMessage,
4731 DWORD* pdwStubPhase);
4732 HRESULT CALLBACK IPersistFile_SaveCompleted_Proxy(
4734 LPCOLESTR pszFileName);
4735 void __RPC_STUB IPersistFile_SaveCompleted_Stub(
4736 struct IRpcStubBuffer* This,
4737 struct IRpcChannelBuffer* pRpcChannelBuffer,
4738 PRPC_MESSAGE pRpcMessage,
4739 DWORD* pdwStubPhase);
4740 HRESULT CALLBACK IPersistFile_GetCurFile_Proxy(
4742 LPOLESTR* ppszFileName);
4743 void __RPC_STUB IPersistFile_GetCurFile_Stub(
4744 struct IRpcStubBuffer* This,
4745 struct IRpcChannelBuffer* pRpcChannelBuffer,
4746 PRPC_MESSAGE pRpcMessage,
4747 DWORD* pdwStubPhase);
4749 typedef struct IPersistStorage IPersistStorage;
4750 typedef IPersistStorage *LPPERSISTSTORAGE;
4752 /*****************************************************************************
4753 * IPersistStorage interface
4755 DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4756 #if defined(__cplusplus) && !defined(CINTERFACE)
4757 struct IPersistStorage: IPersist {
4759 virtual HRESULT STDMETHODCALLTYPE IsDirty(
4762 virtual HRESULT STDMETHODCALLTYPE InitNew(
4763 IStorage* pStg) = 0;
4765 virtual HRESULT STDMETHODCALLTYPE Load(
4766 IStorage* pStg) = 0;
4768 virtual HRESULT STDMETHODCALLTYPE Save(
4770 BOOL fSameAsLoad) = 0;
4772 virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
4773 IStorage* pStgNew) = 0;
4775 virtual HRESULT STDMETHODCALLTYPE HandsOffStorage(
4778 } ICOM_COM_INTERFACE_ATTRIBUTE;
4780 typedef struct IPersistStorageVtbl IPersistStorageVtbl;
4781 struct IPersistStorage {
4782 const IPersistStorageVtbl* lpVtbl;
4784 struct IPersistStorageVtbl {
4785 ICOM_MSVTABLE_COMPAT_FIELDS
4787 /*** IUnknown methods ***/
4788 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4789 IPersistStorage* This,
4793 ULONG (STDMETHODCALLTYPE *AddRef)(
4794 IPersistStorage* This);
4796 ULONG (STDMETHODCALLTYPE *Release)(
4797 IPersistStorage* This);
4799 /*** IPersist methods ***/
4800 HRESULT (STDMETHODCALLTYPE *GetClassID)(
4801 IPersistStorage* This,
4804 /*** IPersistStorage methods ***/
4805 HRESULT (STDMETHODCALLTYPE *IsDirty)(
4806 IPersistStorage* This);
4808 HRESULT (STDMETHODCALLTYPE *InitNew)(
4809 IPersistStorage* This,
4812 HRESULT (STDMETHODCALLTYPE *Load)(
4813 IPersistStorage* This,
4816 HRESULT (STDMETHODCALLTYPE *Save)(
4817 IPersistStorage* This,
4821 HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
4822 IPersistStorage* This,
4825 HRESULT (STDMETHODCALLTYPE *HandsOffStorage)(
4826 IPersistStorage* This);
4830 #define IPersistStorage_IMETHODS \
4831 /*** IUnknown methods ***/ \
4832 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
4833 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
4834 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
4835 /*** IPersist methods ***/ \
4836 HRESULT (STDMETHODCALLTYPE *GetClassID)(INTERFACE *This, CLSID* pClassID); \
4837 /*** IPersistStorage methods ***/ \
4838 HRESULT (STDMETHODCALLTYPE *IsDirty)(INTERFACE *This); \
4839 HRESULT (STDMETHODCALLTYPE *InitNew)(INTERFACE *This, IStorage* pStg); \
4840 HRESULT (STDMETHODCALLTYPE *Load)(INTERFACE *This, IStorage* pStg); \
4841 HRESULT (STDMETHODCALLTYPE *Save)(INTERFACE *This, IStorage* pStgSave, BOOL fSameAsLoad); \
4842 HRESULT (STDMETHODCALLTYPE *SaveCompleted)(INTERFACE *This, IStorage* pStgNew); \
4843 HRESULT (STDMETHODCALLTYPE *HandsOffStorage)(INTERFACE *This);
4845 /*** IUnknown methods ***/
4846 #define IPersistStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4847 #define IPersistStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
4848 #define IPersistStorage_Release(p) (p)->lpVtbl->Release(p)
4849 /*** IPersist methods ***/
4850 #define IPersistStorage_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4851 /*** IPersistStorage methods ***/
4852 #define IPersistStorage_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4853 #define IPersistStorage_InitNew(p,a) (p)->lpVtbl->InitNew(p,a)
4854 #define IPersistStorage_Load(p,a) (p)->lpVtbl->Load(p,a)
4855 #define IPersistStorage_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4856 #define IPersistStorage_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
4857 #define IPersistStorage_HandsOffStorage(p) (p)->lpVtbl->HandsOffStorage(p)
4861 HRESULT CALLBACK IPersistStorage_IsDirty_Proxy(
4862 IPersistStorage* This);
4863 void __RPC_STUB IPersistStorage_IsDirty_Stub(
4864 struct IRpcStubBuffer* This,
4865 struct IRpcChannelBuffer* pRpcChannelBuffer,
4866 PRPC_MESSAGE pRpcMessage,
4867 DWORD* pdwStubPhase);
4868 HRESULT CALLBACK IPersistStorage_InitNew_Proxy(
4869 IPersistStorage* This,
4871 void __RPC_STUB IPersistStorage_InitNew_Stub(
4872 struct IRpcStubBuffer* This,
4873 struct IRpcChannelBuffer* pRpcChannelBuffer,
4874 PRPC_MESSAGE pRpcMessage,
4875 DWORD* pdwStubPhase);
4876 HRESULT CALLBACK IPersistStorage_Load_Proxy(
4877 IPersistStorage* This,
4879 void __RPC_STUB IPersistStorage_Load_Stub(
4880 struct IRpcStubBuffer* This,
4881 struct IRpcChannelBuffer* pRpcChannelBuffer,
4882 PRPC_MESSAGE pRpcMessage,
4883 DWORD* pdwStubPhase);
4884 HRESULT CALLBACK IPersistStorage_Save_Proxy(
4885 IPersistStorage* This,
4888 void __RPC_STUB IPersistStorage_Save_Stub(
4889 struct IRpcStubBuffer* This,
4890 struct IRpcChannelBuffer* pRpcChannelBuffer,
4891 PRPC_MESSAGE pRpcMessage,
4892 DWORD* pdwStubPhase);
4893 HRESULT CALLBACK IPersistStorage_SaveCompleted_Proxy(
4894 IPersistStorage* This,
4896 void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
4897 struct IRpcStubBuffer* This,
4898 struct IRpcChannelBuffer* pRpcChannelBuffer,
4899 PRPC_MESSAGE pRpcMessage,
4900 DWORD* pdwStubPhase);
4901 HRESULT CALLBACK IPersistStorage_HandsOffStorage_Proxy(
4902 IPersistStorage* This);
4903 void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
4904 struct IRpcStubBuffer* This,
4905 struct IRpcChannelBuffer* pRpcChannelBuffer,
4906 PRPC_MESSAGE pRpcMessage,
4907 DWORD* pdwStubPhase);
4909 typedef struct IRootStorage IRootStorage;
4910 typedef IRootStorage *LPROOTSTORAGE;
4912 /*****************************************************************************
4913 * IRootStorage interface
4915 DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4916 #if defined(__cplusplus) && !defined(CINTERFACE)
4917 struct IRootStorage: IUnknown {
4919 virtual HRESULT STDMETHODCALLTYPE SwitchToFile(
4920 LPOLESTR pszFile) = 0;
4922 } ICOM_COM_INTERFACE_ATTRIBUTE;
4924 typedef struct IRootStorageVtbl IRootStorageVtbl;
4925 struct IRootStorage {
4926 const IRootStorageVtbl* lpVtbl;
4928 struct IRootStorageVtbl {
4929 ICOM_MSVTABLE_COMPAT_FIELDS
4931 /*** IUnknown methods ***/
4932 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4937 ULONG (STDMETHODCALLTYPE *AddRef)(
4938 IRootStorage* This);
4940 ULONG (STDMETHODCALLTYPE *Release)(
4941 IRootStorage* This);
4943 /*** IRootStorage methods ***/
4944 HRESULT (STDMETHODCALLTYPE *SwitchToFile)(
4950 #define IRootStorage_IMETHODS \
4951 /*** IUnknown methods ***/ \
4952 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
4953 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
4954 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
4955 /*** IRootStorage methods ***/ \
4956 HRESULT (STDMETHODCALLTYPE *SwitchToFile)(INTERFACE *This, LPOLESTR pszFile);
4958 /*** IUnknown methods ***/
4959 #define IRootStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4960 #define IRootStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
4961 #define IRootStorage_Release(p) (p)->lpVtbl->Release(p)
4962 /*** IRootStorage methods ***/
4963 #define IRootStorage_SwitchToFile(p,a) (p)->lpVtbl->SwitchToFile(p,a)
4967 HRESULT CALLBACK IRootStorage_SwitchToFile_Proxy(
4970 void __RPC_STUB IRootStorage_SwitchToFile_Stub(
4971 struct IRpcStubBuffer* This,
4972 struct IRpcChannelBuffer* pRpcChannelBuffer,
4973 PRPC_MESSAGE pRpcMessage,
4974 DWORD* pdwStubPhase);
4976 typedef struct ILockBytes ILockBytes;
4977 typedef ILockBytes *LPLOCKBYTES;
4979 /*****************************************************************************
4980 * ILockBytes interface
4982 DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4983 #if defined(__cplusplus) && !defined(CINTERFACE)
4984 struct ILockBytes: IUnknown {
4986 virtual HRESULT STDMETHODCALLTYPE ReadAt(
4987 ULARGE_INTEGER ulOffset,
4990 ULONG* pcbRead) = 0;
4992 virtual HRESULT STDMETHODCALLTYPE WriteAt(
4993 ULARGE_INTEGER ulOffset,
4996 ULONG* pcbWritten) = 0;
4998 virtual HRESULT STDMETHODCALLTYPE Flush(
5001 virtual HRESULT STDMETHODCALLTYPE SetSize(
5002 ULARGE_INTEGER cb) = 0;
5004 virtual HRESULT STDMETHODCALLTYPE LockRegion(
5005 ULARGE_INTEGER libOffset,
5007 DWORD dwLockType) = 0;
5009 virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
5010 ULARGE_INTEGER libOffset,
5012 DWORD dwLockType) = 0;
5014 virtual HRESULT STDMETHODCALLTYPE Stat(
5016 DWORD grfStatFlag) = 0;
5018 } ICOM_COM_INTERFACE_ATTRIBUTE;
5020 typedef struct ILockBytesVtbl ILockBytesVtbl;
5022 const ILockBytesVtbl* lpVtbl;
5024 struct ILockBytesVtbl {
5025 ICOM_MSVTABLE_COMPAT_FIELDS
5027 /*** IUnknown methods ***/
5028 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5033 ULONG (STDMETHODCALLTYPE *AddRef)(
5036 ULONG (STDMETHODCALLTYPE *Release)(
5039 /*** ILockBytes methods ***/
5040 HRESULT (STDMETHODCALLTYPE *ReadAt)(
5042 ULARGE_INTEGER ulOffset,
5047 HRESULT (STDMETHODCALLTYPE *WriteAt)(
5049 ULARGE_INTEGER ulOffset,
5054 HRESULT (STDMETHODCALLTYPE *Flush)(
5057 HRESULT (STDMETHODCALLTYPE *SetSize)(
5061 HRESULT (STDMETHODCALLTYPE *LockRegion)(
5063 ULARGE_INTEGER libOffset,
5067 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
5069 ULARGE_INTEGER libOffset,
5073 HRESULT (STDMETHODCALLTYPE *Stat)(
5080 #define ILockBytes_IMETHODS \
5081 /*** IUnknown methods ***/ \
5082 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
5083 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
5084 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
5085 /*** ILockBytes methods ***/ \
5086 HRESULT (STDMETHODCALLTYPE *ReadAt)(INTERFACE *This, ULARGE_INTEGER ulOffset, void* pv, ULONG cb, ULONG* pcbRead); \
5087 HRESULT (STDMETHODCALLTYPE *WriteAt)(INTERFACE *This, ULARGE_INTEGER ulOffset, const void* pv, ULONG cb, ULONG* pcbWritten); \
5088 HRESULT (STDMETHODCALLTYPE *Flush)(INTERFACE *This); \
5089 HRESULT (STDMETHODCALLTYPE *SetSize)(INTERFACE *This, ULARGE_INTEGER cb); \
5090 HRESULT (STDMETHODCALLTYPE *LockRegion)(INTERFACE *This, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType); \
5091 HRESULT (STDMETHODCALLTYPE *UnlockRegion)(INTERFACE *This, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType); \
5092 HRESULT (STDMETHODCALLTYPE *Stat)(INTERFACE *This, STATSTG* pstatstg, DWORD grfStatFlag);
5094 /*** IUnknown methods ***/
5095 #define ILockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5096 #define ILockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
5097 #define ILockBytes_Release(p) (p)->lpVtbl->Release(p)
5098 /*** ILockBytes methods ***/
5099 #define ILockBytes_ReadAt(p,a,b,c,d) (p)->lpVtbl->ReadAt(p,a,b,c,d)
5100 #define ILockBytes_WriteAt(p,a,b,c,d) (p)->lpVtbl->WriteAt(p,a,b,c,d)
5101 #define ILockBytes_Flush(p) (p)->lpVtbl->Flush(p)
5102 #define ILockBytes_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
5103 #define ILockBytes_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
5104 #define ILockBytes_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
5105 #define ILockBytes_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
5109 HRESULT CALLBACK ILockBytes_RemoteReadAt_Proxy(
5111 ULARGE_INTEGER ulOffset,
5115 void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
5116 struct IRpcStubBuffer* This,
5117 struct IRpcChannelBuffer* pRpcChannelBuffer,
5118 PRPC_MESSAGE pRpcMessage,
5119 DWORD* pdwStubPhase);
5120 HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
5122 ULARGE_INTEGER ulOffset,
5126 HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
5128 ULARGE_INTEGER ulOffset,
5132 HRESULT CALLBACK ILockBytes_RemoteWriteAt_Proxy(
5134 ULARGE_INTEGER ulOffset,
5138 void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
5139 struct IRpcStubBuffer* This,
5140 struct IRpcChannelBuffer* pRpcChannelBuffer,
5141 PRPC_MESSAGE pRpcMessage,
5142 DWORD* pdwStubPhase);
5143 HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
5145 ULARGE_INTEGER ulOffset,
5149 HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
5151 ULARGE_INTEGER ulOffset,
5155 HRESULT CALLBACK ILockBytes_Flush_Proxy(
5157 void __RPC_STUB ILockBytes_Flush_Stub(
5158 struct IRpcStubBuffer* This,
5159 struct IRpcChannelBuffer* pRpcChannelBuffer,
5160 PRPC_MESSAGE pRpcMessage,
5161 DWORD* pdwStubPhase);
5162 HRESULT CALLBACK ILockBytes_SetSize_Proxy(
5165 void __RPC_STUB ILockBytes_SetSize_Stub(
5166 struct IRpcStubBuffer* This,
5167 struct IRpcChannelBuffer* pRpcChannelBuffer,
5168 PRPC_MESSAGE pRpcMessage,
5169 DWORD* pdwStubPhase);
5170 HRESULT CALLBACK ILockBytes_LockRegion_Proxy(
5172 ULARGE_INTEGER libOffset,
5175 void __RPC_STUB ILockBytes_LockRegion_Stub(
5176 struct IRpcStubBuffer* This,
5177 struct IRpcChannelBuffer* pRpcChannelBuffer,
5178 PRPC_MESSAGE pRpcMessage,
5179 DWORD* pdwStubPhase);
5180 HRESULT CALLBACK ILockBytes_UnlockRegion_Proxy(
5182 ULARGE_INTEGER libOffset,
5185 void __RPC_STUB ILockBytes_UnlockRegion_Stub(
5186 struct IRpcStubBuffer* This,
5187 struct IRpcChannelBuffer* pRpcChannelBuffer,
5188 PRPC_MESSAGE pRpcMessage,
5189 DWORD* pdwStubPhase);
5190 HRESULT CALLBACK ILockBytes_Stat_Proxy(
5194 void __RPC_STUB ILockBytes_Stat_Stub(
5195 struct IRpcStubBuffer* This,
5196 struct IRpcChannelBuffer* pRpcChannelBuffer,
5197 PRPC_MESSAGE pRpcMessage,
5198 DWORD* pdwStubPhase);
5200 typedef struct IFillLockBytes IFillLockBytes;
5201 /*****************************************************************************
5202 * IFillLockBytes interface
5204 DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
5205 #if defined(__cplusplus) && !defined(CINTERFACE)
5206 struct IFillLockBytes: IUnknown {
5208 virtual HRESULT STDMETHODCALLTYPE FillAppend(
5211 ULONG* pcbWritten) = 0;
5213 virtual HRESULT STDMETHODCALLTYPE FillAt(
5214 ULARGE_INTEGER ulOffset,
5217 ULONG* pcbWritten) = 0;
5219 virtual HRESULT STDMETHODCALLTYPE SetFillSize(
5220 ULARGE_INTEGER ulSize) = 0;
5222 virtual HRESULT STDMETHODCALLTYPE Terminate(
5223 BOOL bCanceled) = 0;
5225 } ICOM_COM_INTERFACE_ATTRIBUTE;
5227 typedef struct IFillLockBytesVtbl IFillLockBytesVtbl;
5228 struct IFillLockBytes {
5229 const IFillLockBytesVtbl* lpVtbl;
5231 struct IFillLockBytesVtbl {
5232 ICOM_MSVTABLE_COMPAT_FIELDS
5234 /*** IUnknown methods ***/
5235 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5236 IFillLockBytes* This,
5240 ULONG (STDMETHODCALLTYPE *AddRef)(
5241 IFillLockBytes* This);
5243 ULONG (STDMETHODCALLTYPE *Release)(
5244 IFillLockBytes* This);
5246 /*** IFillLockBytes methods ***/
5247 HRESULT (STDMETHODCALLTYPE *FillAppend)(
5248 IFillLockBytes* This,
5253 HRESULT (STDMETHODCALLTYPE *FillAt)(
5254 IFillLockBytes* This,
5255 ULARGE_INTEGER ulOffset,
5260 HRESULT (STDMETHODCALLTYPE *SetFillSize)(
5261 IFillLockBytes* This,
5262 ULARGE_INTEGER ulSize);
5264 HRESULT (STDMETHODCALLTYPE *Terminate)(
5265 IFillLockBytes* This,
5270 #define IFillLockBytes_IMETHODS \
5271 /*** IUnknown methods ***/ \
5272 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
5273 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
5274 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
5275 /*** IFillLockBytes methods ***/ \
5276 HRESULT (STDMETHODCALLTYPE *FillAppend)(INTERFACE *This, const void* pv, ULONG cb, ULONG* pcbWritten); \
5277 HRESULT (STDMETHODCALLTYPE *FillAt)(INTERFACE *This, ULARGE_INTEGER ulOffset, const void* pv, ULONG cb, ULONG* pcbWritten); \
5278 HRESULT (STDMETHODCALLTYPE *SetFillSize)(INTERFACE *This, ULARGE_INTEGER ulSize); \
5279 HRESULT (STDMETHODCALLTYPE *Terminate)(INTERFACE *This, BOOL bCanceled);
5281 /*** IUnknown methods ***/
5282 #define IFillLockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5283 #define IFillLockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
5284 #define IFillLockBytes_Release(p) (p)->lpVtbl->Release(p)
5285 /*** IFillLockBytes methods ***/
5286 #define IFillLockBytes_FillAppend(p,a,b,c) (p)->lpVtbl->FillAppend(p,a,b,c)
5287 #define IFillLockBytes_FillAt(p,a,b,c,d) (p)->lpVtbl->FillAt(p,a,b,c,d)
5288 #define IFillLockBytes_SetFillSize(p,a) (p)->lpVtbl->SetFillSize(p,a)
5289 #define IFillLockBytes_Terminate(p,a) (p)->lpVtbl->Terminate(p,a)
5293 HRESULT CALLBACK IFillLockBytes_RemoteFillAppend_Proxy(
5294 IFillLockBytes* This,
5298 void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
5299 struct IRpcStubBuffer* This,
5300 struct IRpcChannelBuffer* pRpcChannelBuffer,
5301 PRPC_MESSAGE pRpcMessage,
5302 DWORD* pdwStubPhase);
5303 HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
5304 IFillLockBytes* This,
5308 HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
5309 IFillLockBytes* This,
5313 HRESULT CALLBACK IFillLockBytes_RemoteFillAt_Proxy(
5314 IFillLockBytes* This,
5315 ULARGE_INTEGER ulOffset,
5319 void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
5320 struct IRpcStubBuffer* This,
5321 struct IRpcChannelBuffer* pRpcChannelBuffer,
5322 PRPC_MESSAGE pRpcMessage,
5323 DWORD* pdwStubPhase);
5324 HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
5325 IFillLockBytes* This,
5326 ULARGE_INTEGER ulOffset,
5330 HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
5331 IFillLockBytes* This,
5332 ULARGE_INTEGER ulOffset,
5336 HRESULT CALLBACK IFillLockBytes_SetFillSize_Proxy(
5337 IFillLockBytes* This,
5338 ULARGE_INTEGER ulSize);
5339 void __RPC_STUB IFillLockBytes_SetFillSize_Stub(
5340 struct IRpcStubBuffer* This,
5341 struct IRpcChannelBuffer* pRpcChannelBuffer,
5342 PRPC_MESSAGE pRpcMessage,
5343 DWORD* pdwStubPhase);
5344 HRESULT CALLBACK IFillLockBytes_Terminate_Proxy(
5345 IFillLockBytes* This,
5347 void __RPC_STUB IFillLockBytes_Terminate_Stub(
5348 struct IRpcStubBuffer* This,
5349 struct IRpcChannelBuffer* pRpcChannelBuffer,
5350 PRPC_MESSAGE pRpcMessage,
5351 DWORD* pdwStubPhase);
5353 typedef struct IProgressNotify IProgressNotify;
5354 /*****************************************************************************
5355 * IProgressNotify interface
5357 DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
5358 #if defined(__cplusplus) && !defined(CINTERFACE)
5359 struct IProgressNotify: IUnknown {
5361 virtual HRESULT STDMETHODCALLTYPE OnProgress(
5362 DWORD dwProgressCurrent,
5363 DWORD dwProgressMaximum,
5367 } ICOM_COM_INTERFACE_ATTRIBUTE;
5369 typedef struct IProgressNotifyVtbl IProgressNotifyVtbl;
5370 struct IProgressNotify {
5371 const IProgressNotifyVtbl* lpVtbl;
5373 struct IProgressNotifyVtbl {
5374 ICOM_MSVTABLE_COMPAT_FIELDS
5376 /*** IUnknown methods ***/
5377 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5378 IProgressNotify* This,
5382 ULONG (STDMETHODCALLTYPE *AddRef)(
5383 IProgressNotify* This);
5385 ULONG (STDMETHODCALLTYPE *Release)(
5386 IProgressNotify* This);
5388 /*** IProgressNotify methods ***/
5389 HRESULT (STDMETHODCALLTYPE *OnProgress)(
5390 IProgressNotify* This,
5391 DWORD dwProgressCurrent,
5392 DWORD dwProgressMaximum,
5398 #define IProgressNotify_IMETHODS \
5399 /*** IUnknown methods ***/ \
5400 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
5401 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
5402 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
5403 /*** IProgressNotify methods ***/ \
5404 HRESULT (STDMETHODCALLTYPE *OnProgress)(INTERFACE *This, DWORD dwProgressCurrent, DWORD dwProgressMaximum, BOOL fAccurate, BOOL fOwner);
5406 /*** IUnknown methods ***/
5407 #define IProgressNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5408 #define IProgressNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
5409 #define IProgressNotify_Release(p) (p)->lpVtbl->Release(p)
5410 /*** IProgressNotify methods ***/
5411 #define IProgressNotify_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d)
5415 HRESULT CALLBACK IProgressNotify_OnProgress_Proxy(
5416 IProgressNotify* This,
5417 DWORD dwProgressCurrent,
5418 DWORD dwProgressMaximum,
5421 void __RPC_STUB IProgressNotify_OnProgress_Stub(
5422 struct IRpcStubBuffer* This,
5423 struct IRpcChannelBuffer* pRpcChannelBuffer,
5424 PRPC_MESSAGE pRpcMessage,
5425 DWORD* pdwStubPhase);
5427 typedef struct ILayoutStorage ILayoutStorage;
5428 typedef struct tagStorageLayout {
5430 OLECHAR *pwcsElementName;
5431 LARGE_INTEGER cOffset;
5432 LARGE_INTEGER cBytes;
5435 /*****************************************************************************
5436 * ILayoutStorage interface
5438 DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
5439 #if defined(__cplusplus) && !defined(CINTERFACE)
5440 struct ILayoutStorage: IUnknown {
5442 virtual HRESULT STDMETHODCALLTYPE LayoutScript(
5443 StorageLayout* pStorageLayout,
5445 DWORD glfInterleavedFlag) = 0;
5447 virtual HRESULT STDMETHODCALLTYPE BeginMonitor(
5450 virtual HRESULT STDMETHODCALLTYPE EndMonitor(
5453 virtual HRESULT STDMETHODCALLTYPE ReLayoutDocfile(
5454 OLECHAR* pwcsNewDfName) = 0;
5456 virtual HRESULT STDMETHODCALLTYPE ReLayoutDocfileOnILockBytes(
5457 ILockBytes* pILockBytes) = 0;
5459 } ICOM_COM_INTERFACE_ATTRIBUTE;
5461 typedef struct ILayoutStorageVtbl ILayoutStorageVtbl;
5462 struct ILayoutStorage {
5463 const ILayoutStorageVtbl* lpVtbl;
5465 struct ILayoutStorageVtbl {
5466 ICOM_MSVTABLE_COMPAT_FIELDS
5468 /*** IUnknown methods ***/
5469 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5470 ILayoutStorage* This,
5474 ULONG (STDMETHODCALLTYPE *AddRef)(
5475 ILayoutStorage* This);
5477 ULONG (STDMETHODCALLTYPE *Release)(
5478 ILayoutStorage* This);
5480 /*** ILayoutStorage methods ***/
5481 HRESULT (STDMETHODCALLTYPE *LayoutScript)(
5482 ILayoutStorage* This,
5483 StorageLayout* pStorageLayout,
5485 DWORD glfInterleavedFlag);
5487 HRESULT (STDMETHODCALLTYPE *BeginMonitor)(
5488 ILayoutStorage* This);
5490 HRESULT (STDMETHODCALLTYPE *EndMonitor)(
5491 ILayoutStorage* This);
5493 HRESULT (STDMETHODCALLTYPE *ReLayoutDocfile)(
5494 ILayoutStorage* This,
5495 OLECHAR* pwcsNewDfName);
5497 HRESULT (STDMETHODCALLTYPE *ReLayoutDocfileOnILockBytes)(
5498 ILayoutStorage* This,
5499 ILockBytes* pILockBytes);
5503 #define ILayoutStorage_IMETHODS \
5504 /*** IUnknown methods ***/ \
5505 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
5506 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
5507 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
5508 /*** ILayoutStorage methods ***/ \
5509 HRESULT (STDMETHODCALLTYPE *LayoutScript)(INTERFACE *This, StorageLayout* pStorageLayout, DWORD nEntries, DWORD glfInterleavedFlag); \
5510 HRESULT (STDMETHODCALLTYPE *BeginMonitor)(INTERFACE *This); \
5511 HRESULT (STDMETHODCALLTYPE *EndMonitor)(INTERFACE *This); \
5512 HRESULT (STDMETHODCALLTYPE *ReLayoutDocfile)(INTERFACE *This, OLECHAR* pwcsNewDfName); \
5513 HRESULT (STDMETHODCALLTYPE *ReLayoutDocfileOnILockBytes)(INTERFACE *This, ILockBytes* pILockBytes);
5515 /*** IUnknown methods ***/
5516 #define ILayoutStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5517 #define ILayoutStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
5518 #define ILayoutStorage_Release(p) (p)->lpVtbl->Release(p)
5519 /*** ILayoutStorage methods ***/
5520 #define ILayoutStorage_LayoutScript(p,a,b,c) (p)->lpVtbl->LayoutScript(p,a,b,c)
5521 #define ILayoutStorage_BeginMonitor(p) (p)->lpVtbl->BeginMonitor(p)
5522 #define ILayoutStorage_EndMonitor(p) (p)->lpVtbl->EndMonitor(p)
5523 #define ILayoutStorage_ReLayoutDocfile(p,a) (p)->lpVtbl->ReLayoutDocfile(p,a)
5524 #define ILayoutStorage_ReLayoutDocfileOnILockBytes(p,a) (p)->lpVtbl->ReLayoutDocfileOnILockBytes(p,a)
5528 HRESULT CALLBACK ILayoutStorage_LayoutScript_Proxy(
5529 ILayoutStorage* This,
5530 StorageLayout* pStorageLayout,
5532 DWORD glfInterleavedFlag);
5533 void __RPC_STUB ILayoutStorage_LayoutScript_Stub(
5534 struct IRpcStubBuffer* This,
5535 struct IRpcChannelBuffer* pRpcChannelBuffer,
5536 PRPC_MESSAGE pRpcMessage,
5537 DWORD* pdwStubPhase);
5538 HRESULT CALLBACK ILayoutStorage_BeginMonitor_Proxy(
5539 ILayoutStorage* This);
5540 void __RPC_STUB ILayoutStorage_BeginMonitor_Stub(
5541 struct IRpcStubBuffer* This,
5542 struct IRpcChannelBuffer* pRpcChannelBuffer,
5543 PRPC_MESSAGE pRpcMessage,
5544 DWORD* pdwStubPhase);
5545 HRESULT CALLBACK ILayoutStorage_EndMonitor_Proxy(
5546 ILayoutStorage* This);
5547 void __RPC_STUB ILayoutStorage_EndMonitor_Stub(
5548 struct IRpcStubBuffer* This,
5549 struct IRpcChannelBuffer* pRpcChannelBuffer,
5550 PRPC_MESSAGE pRpcMessage,
5551 DWORD* pdwStubPhase);
5552 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfile_Proxy(
5553 ILayoutStorage* This,
5554 OLECHAR* pwcsNewDfName);
5555 void __RPC_STUB ILayoutStorage_ReLayoutDocfile_Stub(
5556 struct IRpcStubBuffer* This,
5557 struct IRpcChannelBuffer* pRpcChannelBuffer,
5558 PRPC_MESSAGE pRpcMessage,
5559 DWORD* pdwStubPhase);
5560 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfileOnILockBytes_Proxy(
5561 ILayoutStorage* This,
5562 ILockBytes* pILockBytes);
5563 void __RPC_STUB ILayoutStorage_ReLayoutDocfileOnILockBytes_Stub(
5564 struct IRpcStubBuffer* This,
5565 struct IRpcChannelBuffer* pRpcChannelBuffer,
5566 PRPC_MESSAGE pRpcMessage,
5567 DWORD* pdwStubPhase);
5569 typedef struct IEnumFORMATETC IEnumFORMATETC;
5570 typedef IEnumFORMATETC *LPENUMFORMATETC;
5572 typedef struct tagDVTARGETDEVICE {
5574 WORD tdDriverNameOffset;
5575 WORD tdDeviceNameOffset;
5576 WORD tdPortNameOffset;
5577 WORD tdExtDevmodeOffset;
5581 typedef CLIPFORMAT *LPCLIPFORMAT;
5583 typedef struct tagFORMATETC {
5584 CLIPFORMAT cfFormat;
5585 DVTARGETDEVICE *ptd;
5589 } FORMATETC, *LPFORMATETC;
5591 /*****************************************************************************
5592 * IEnumFORMATETC interface
5594 DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5595 #if defined(__cplusplus) && !defined(CINTERFACE)
5596 struct IEnumFORMATETC: IUnknown {
5598 virtual HRESULT STDMETHODCALLTYPE Next(
5601 ULONG* pceltFetched) = 0;
5603 virtual HRESULT STDMETHODCALLTYPE Skip(
5606 virtual HRESULT STDMETHODCALLTYPE Reset(
5609 virtual HRESULT STDMETHODCALLTYPE Clone(
5610 IEnumFORMATETC** ppenum) = 0;
5612 } ICOM_COM_INTERFACE_ATTRIBUTE;
5614 typedef struct IEnumFORMATETCVtbl IEnumFORMATETCVtbl;
5615 struct IEnumFORMATETC {
5616 const IEnumFORMATETCVtbl* lpVtbl;
5618 struct IEnumFORMATETCVtbl {
5619 ICOM_MSVTABLE_COMPAT_FIELDS
5621 /*** IUnknown methods ***/
5622 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5623 IEnumFORMATETC* This,
5627 ULONG (STDMETHODCALLTYPE *AddRef)(
5628 IEnumFORMATETC* This);
5630 ULONG (STDMETHODCALLTYPE *Release)(
5631 IEnumFORMATETC* This);
5633 /*** IEnumFORMATETC methods ***/
5634 HRESULT (STDMETHODCALLTYPE *Next)(
5635 IEnumFORMATETC* This,
5638 ULONG* pceltFetched);
5640 HRESULT (STDMETHODCALLTYPE *Skip)(
5641 IEnumFORMATETC* This,
5644 HRESULT (STDMETHODCALLTYPE *Reset)(
5645 IEnumFORMATETC* This);
5647 HRESULT (STDMETHODCALLTYPE *Clone)(
5648 IEnumFORMATETC* This,
5649 IEnumFORMATETC** ppenum);
5653 #define IEnumFORMATETC_IMETHODS \
5654 /*** IUnknown methods ***/ \
5655 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
5656 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
5657 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
5658 /*** IEnumFORMATETC methods ***/ \
5659 HRESULT (STDMETHODCALLTYPE *Next)(INTERFACE *This, ULONG celt, FORMATETC* rgelt, ULONG* pceltFetched); \
5660 HRESULT (STDMETHODCALLTYPE *Skip)(INTERFACE *This, ULONG celt); \
5661 HRESULT (STDMETHODCALLTYPE *Reset)(INTERFACE *This); \
5662 HRESULT (STDMETHODCALLTYPE *Clone)(INTERFACE *This, IEnumFORMATETC** ppenum);
5664 /*** IUnknown methods ***/
5665 #define IEnumFORMATETC_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5666 #define IEnumFORMATETC_AddRef(p) (p)->lpVtbl->AddRef(p)
5667 #define IEnumFORMATETC_Release(p) (p)->lpVtbl->Release(p)
5668 /*** IEnumFORMATETC methods ***/
5669 #define IEnumFORMATETC_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5670 #define IEnumFORMATETC_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5671 #define IEnumFORMATETC_Reset(p) (p)->lpVtbl->Reset(p)
5672 #define IEnumFORMATETC_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5676 HRESULT CALLBACK IEnumFORMATETC_RemoteNext_Proxy(
5677 IEnumFORMATETC* This,
5680 ULONG* pceltFetched);
5681 void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
5682 struct IRpcStubBuffer* This,
5683 struct IRpcChannelBuffer* pRpcChannelBuffer,
5684 PRPC_MESSAGE pRpcMessage,
5685 DWORD* pdwStubPhase);
5686 HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
5687 IEnumFORMATETC* This,
5690 ULONG* pceltFetched);
5691 HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
5692 IEnumFORMATETC* This,
5695 ULONG* pceltFetched);
5696 HRESULT CALLBACK IEnumFORMATETC_Skip_Proxy(
5697 IEnumFORMATETC* This,
5699 void __RPC_STUB IEnumFORMATETC_Skip_Stub(
5700 struct IRpcStubBuffer* This,
5701 struct IRpcChannelBuffer* pRpcChannelBuffer,
5702 PRPC_MESSAGE pRpcMessage,
5703 DWORD* pdwStubPhase);
5704 HRESULT CALLBACK IEnumFORMATETC_Reset_Proxy(
5705 IEnumFORMATETC* This);
5706 void __RPC_STUB IEnumFORMATETC_Reset_Stub(
5707 struct IRpcStubBuffer* This,
5708 struct IRpcChannelBuffer* pRpcChannelBuffer,
5709 PRPC_MESSAGE pRpcMessage,
5710 DWORD* pdwStubPhase);
5711 HRESULT CALLBACK IEnumFORMATETC_Clone_Proxy(
5712 IEnumFORMATETC* This,
5713 IEnumFORMATETC** ppenum);
5714 void __RPC_STUB IEnumFORMATETC_Clone_Stub(
5715 struct IRpcStubBuffer* This,
5716 struct IRpcChannelBuffer* pRpcChannelBuffer,
5717 PRPC_MESSAGE pRpcMessage,
5718 DWORD* pdwStubPhase);
5720 typedef struct IEnumSTATDATA IEnumSTATDATA;
5721 typedef IEnumSTATDATA *LPENUMSTATDATA;
5723 typedef enum tagADVF {
5725 ADVF_PRIMEFIRST = 2,
5727 ADVF_DATAONSTOP = 64,
5728 ADVFCACHE_NOHANDLER = 8,
5729 ADVFCACHE_FORCEBUILTIN = 16,
5730 ADVFCACHE_ONSAVE = 32
5733 typedef struct tagSTATDATA {
5734 FORMATETC formatetc;
5736 IAdviseSink *pAdvSink;
5738 } STATDATA, *LPSTATDATA;
5740 /*****************************************************************************
5741 * IEnumSTATDATA interface
5743 DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5744 #if defined(__cplusplus) && !defined(CINTERFACE)
5745 struct IEnumSTATDATA: IUnknown {
5747 virtual HRESULT STDMETHODCALLTYPE Next(
5750 ULONG* pceltFetched) = 0;
5752 virtual HRESULT STDMETHODCALLTYPE Skip(
5755 virtual HRESULT STDMETHODCALLTYPE Reset(
5758 virtual HRESULT STDMETHODCALLTYPE Clone(
5759 IEnumSTATDATA** ppenum) = 0;
5761 } ICOM_COM_INTERFACE_ATTRIBUTE;
5763 typedef struct IEnumSTATDATAVtbl IEnumSTATDATAVtbl;
5764 struct IEnumSTATDATA {
5765 const IEnumSTATDATAVtbl* lpVtbl;
5767 struct IEnumSTATDATAVtbl {
5768 ICOM_MSVTABLE_COMPAT_FIELDS
5770 /*** IUnknown methods ***/
5771 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5772 IEnumSTATDATA* This,
5776 ULONG (STDMETHODCALLTYPE *AddRef)(
5777 IEnumSTATDATA* This);
5779 ULONG (STDMETHODCALLTYPE *Release)(
5780 IEnumSTATDATA* This);
5782 /*** IEnumSTATDATA methods ***/
5783 HRESULT (STDMETHODCALLTYPE *Next)(
5784 IEnumSTATDATA* This,
5787 ULONG* pceltFetched);
5789 HRESULT (STDMETHODCALLTYPE *Skip)(
5790 IEnumSTATDATA* This,
5793 HRESULT (STDMETHODCALLTYPE *Reset)(
5794 IEnumSTATDATA* This);
5796 HRESULT (STDMETHODCALLTYPE *Clone)(
5797 IEnumSTATDATA* This,
5798 IEnumSTATDATA** ppenum);
5802 #define IEnumSTATDATA_IMETHODS \
5803 /*** IUnknown methods ***/ \
5804 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
5805 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
5806 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
5807 /*** IEnumSTATDATA methods ***/ \
5808 HRESULT (STDMETHODCALLTYPE *Next)(INTERFACE *This, ULONG celt, STATDATA* rgelt, ULONG* pceltFetched); \
5809 HRESULT (STDMETHODCALLTYPE *Skip)(INTERFACE *This, ULONG celt); \
5810 HRESULT (STDMETHODCALLTYPE *Reset)(INTERFACE *This); \
5811 HRESULT (STDMETHODCALLTYPE *Clone)(INTERFACE *This, IEnumSTATDATA** ppenum);
5813 /*** IUnknown methods ***/
5814 #define IEnumSTATDATA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5815 #define IEnumSTATDATA_AddRef(p) (p)->lpVtbl->AddRef(p)
5816 #define IEnumSTATDATA_Release(p) (p)->lpVtbl->Release(p)
5817 /*** IEnumSTATDATA methods ***/
5818 #define IEnumSTATDATA_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5819 #define IEnumSTATDATA_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5820 #define IEnumSTATDATA_Reset(p) (p)->lpVtbl->Reset(p)
5821 #define IEnumSTATDATA_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5825 HRESULT CALLBACK IEnumSTATDATA_RemoteNext_Proxy(
5826 IEnumSTATDATA* This,
5829 ULONG* pceltFetched);
5830 void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
5831 struct IRpcStubBuffer* This,
5832 struct IRpcChannelBuffer* pRpcChannelBuffer,
5833 PRPC_MESSAGE pRpcMessage,
5834 DWORD* pdwStubPhase);
5835 HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
5836 IEnumSTATDATA* This,
5839 ULONG* pceltFetched);
5840 HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
5841 IEnumSTATDATA* This,
5844 ULONG* pceltFetched);
5845 HRESULT CALLBACK IEnumSTATDATA_Skip_Proxy(
5846 IEnumSTATDATA* This,
5848 void __RPC_STUB IEnumSTATDATA_Skip_Stub(
5849 struct IRpcStubBuffer* This,
5850 struct IRpcChannelBuffer* pRpcChannelBuffer,
5851 PRPC_MESSAGE pRpcMessage,
5852 DWORD* pdwStubPhase);
5853 HRESULT CALLBACK IEnumSTATDATA_Reset_Proxy(
5854 IEnumSTATDATA* This);
5855 void __RPC_STUB IEnumSTATDATA_Reset_Stub(
5856 struct IRpcStubBuffer* This,
5857 struct IRpcChannelBuffer* pRpcChannelBuffer,
5858 PRPC_MESSAGE pRpcMessage,
5859 DWORD* pdwStubPhase);
5860 HRESULT CALLBACK IEnumSTATDATA_Clone_Proxy(
5861 IEnumSTATDATA* This,
5862 IEnumSTATDATA** ppenum);
5863 void __RPC_STUB IEnumSTATDATA_Clone_Stub(
5864 struct IRpcStubBuffer* This,
5865 struct IRpcChannelBuffer* pRpcChannelBuffer,
5866 PRPC_MESSAGE pRpcMessage,
5867 DWORD* pdwStubPhase);
5869 typedef IAdviseSink *LPADVISESINK;
5871 typedef enum tagTYMED {
5882 typedef struct tagRemSTGMEDIUM {
5885 unsigned long pData;
5886 unsigned long pUnkForRelease;
5887 unsigned long cbData;
5891 typedef struct tagSTGMEDIUM {
5895 HMETAFILEPICT hMetaFilePict;
5896 HENHMETAFILE hEnhMetaFile;
5898 LPOLESTR lpszFileName;
5902 IUnknown *pUnkForRelease;
5905 typedef struct _GDI_OBJECT {
5908 wireHBITMAP hBitmap;
5909 wireHPALETTE hPalette;
5910 wireHGLOBAL hGeneric;
5914 typedef struct _userSTGMEDIUM {
5915 struct _STGMEDIUM_UNION {
5918 wireHMETAFILEPICT hMetaFilePict;
5919 wireHENHMETAFILE hHEnhMetaFile;
5920 GDI_OBJECT *hGdiHandle;
5921 wireHGLOBAL hGlobal;
5922 LPOLESTR lpszFileName;
5927 IUnknown *pUnkForRelease;
5930 typedef userSTGMEDIUM *wireSTGMEDIUM;
5932 typedef uSTGMEDIUM STGMEDIUM;
5933 unsigned long __RPC_USER STGMEDIUM_UserSize (unsigned long *, unsigned long, STGMEDIUM *);
5934 unsigned char * __RPC_USER STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, STGMEDIUM *);
5935 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, STGMEDIUM *);
5936 void __RPC_USER STGMEDIUM_UserFree (unsigned long *, STGMEDIUM *);
5938 typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
5940 typedef STGMEDIUM ASYNC_STGMEDIUM;
5941 unsigned long __RPC_USER ASYNC_STGMEDIUM_UserSize (unsigned long *, unsigned long, ASYNC_STGMEDIUM *);
5942 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, ASYNC_STGMEDIUM *);
5943 unsigned char * __RPC_USER ASYNC_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, ASYNC_STGMEDIUM *);
5944 void __RPC_USER ASYNC_STGMEDIUM_UserFree (unsigned long *, ASYNC_STGMEDIUM *);
5946 typedef STGMEDIUM *LPSTGMEDIUM;
5948 typedef struct _userFLAG_STGMEDIUM {
5950 long fPassOwnership;
5951 userSTGMEDIUM Stgmed;
5952 } userFLAG_STGMEDIUM;
5954 typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
5956 typedef struct _FLAG_STGMEDIUM {
5958 long fPassOwnership;
5961 unsigned long __RPC_USER FLAG_STGMEDIUM_UserSize (unsigned long *, unsigned long, FLAG_STGMEDIUM *);
5962 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserMarshal (unsigned long *, unsigned char *, FLAG_STGMEDIUM *);
5963 unsigned char * __RPC_USER FLAG_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, FLAG_STGMEDIUM *);
5964 void __RPC_USER FLAG_STGMEDIUM_UserFree (unsigned long *, FLAG_STGMEDIUM *);
5966 /*****************************************************************************
5967 * IAdviseSink interface
5969 DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5970 #if defined(__cplusplus) && !defined(CINTERFACE)
5971 struct IAdviseSink: IUnknown {
5973 virtual void STDMETHODCALLTYPE OnDataChange(
5974 FORMATETC* pFormatetc,
5975 STGMEDIUM* pStgmed) = 0;
5977 virtual void STDMETHODCALLTYPE OnViewChange(
5981 virtual void STDMETHODCALLTYPE OnRename(
5984 virtual void STDMETHODCALLTYPE OnSave(
5987 virtual void STDMETHODCALLTYPE OnClose(
5990 } ICOM_COM_INTERFACE_ATTRIBUTE;
5992 typedef struct IAdviseSinkVtbl IAdviseSinkVtbl;
5993 struct IAdviseSink {
5994 const IAdviseSinkVtbl* lpVtbl;
5996 struct IAdviseSinkVtbl {
5997 ICOM_MSVTABLE_COMPAT_FIELDS
5999 /*** IUnknown methods ***/
6000 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6005 ULONG (STDMETHODCALLTYPE *AddRef)(
6008 ULONG (STDMETHODCALLTYPE *Release)(
6011 /*** IAdviseSink methods ***/
6012 void (STDMETHODCALLTYPE *OnDataChange)(
6014 FORMATETC* pFormatetc,
6015 STGMEDIUM* pStgmed);
6017 void (STDMETHODCALLTYPE *OnViewChange)(
6022 void (STDMETHODCALLTYPE *OnRename)(
6026 void (STDMETHODCALLTYPE *OnSave)(
6029 void (STDMETHODCALLTYPE *OnClose)(
6034 #define IAdviseSink_IMETHODS \
6035 /*** IUnknown methods ***/ \
6036 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
6037 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
6038 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
6039 /*** IAdviseSink methods ***/ \
6040 void (STDMETHODCALLTYPE *OnDataChange)(INTERFACE *This, FORMATETC* pFormatetc, STGMEDIUM* pStgmed); \
6041 void (STDMETHODCALLTYPE *OnViewChange)(INTERFACE *This, DWORD dwAspect, LONG lindex); \
6042 void (STDMETHODCALLTYPE *OnRename)(INTERFACE *This, IMoniker* pmk); \
6043 void (STDMETHODCALLTYPE *OnSave)(INTERFACE *This); \
6044 void (STDMETHODCALLTYPE *OnClose)(INTERFACE *This);
6046 /*** IUnknown methods ***/
6047 #define IAdviseSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6048 #define IAdviseSink_AddRef(p) (p)->lpVtbl->AddRef(p)
6049 #define IAdviseSink_Release(p) (p)->lpVtbl->Release(p)
6050 /*** IAdviseSink methods ***/
6051 #define IAdviseSink_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
6052 #define IAdviseSink_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
6053 #define IAdviseSink_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
6054 #define IAdviseSink_OnSave(p) (p)->lpVtbl->OnSave(p)
6055 #define IAdviseSink_OnClose(p) (p)->lpVtbl->OnClose(p)
6059 HRESULT CALLBACK IAdviseSink_RemoteOnDataChange_Proxy(
6061 IAsyncManager** ppIAM,
6062 FORMATETC* pFormatetc,
6063 ASYNC_STGMEDIUM* pStgmed);
6064 void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
6065 struct IRpcStubBuffer* This,
6066 struct IRpcChannelBuffer* pRpcChannelBuffer,
6067 PRPC_MESSAGE pRpcMessage,
6068 DWORD* pdwStubPhase);
6069 void CALLBACK IAdviseSink_OnDataChange_Proxy(
6071 FORMATETC* pFormatetc,
6072 STGMEDIUM* pStgmed);
6073 HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
6075 IAsyncManager** ppIAM,
6076 FORMATETC* pFormatetc,
6077 ASYNC_STGMEDIUM* pStgmed);
6078 HRESULT CALLBACK IAdviseSink_RemoteOnViewChange_Proxy(
6080 IAsyncManager** ppIAM,
6083 void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
6084 struct IRpcStubBuffer* This,
6085 struct IRpcChannelBuffer* pRpcChannelBuffer,
6086 PRPC_MESSAGE pRpcMessage,
6087 DWORD* pdwStubPhase);
6088 void CALLBACK IAdviseSink_OnViewChange_Proxy(
6092 HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
6094 IAsyncManager** ppIAM,
6097 HRESULT CALLBACK IAdviseSink_RemoteOnRename_Proxy(
6099 IAsyncManager** ppIAM,
6101 void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
6102 struct IRpcStubBuffer* This,
6103 struct IRpcChannelBuffer* pRpcChannelBuffer,
6104 PRPC_MESSAGE pRpcMessage,
6105 DWORD* pdwStubPhase);
6106 void CALLBACK IAdviseSink_OnRename_Proxy(
6109 HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
6111 IAsyncManager** ppIAM,
6113 HRESULT CALLBACK IAdviseSink_RemoteOnSave_Proxy(
6115 IAsyncManager** ppIAM);
6116 void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
6117 struct IRpcStubBuffer* This,
6118 struct IRpcChannelBuffer* pRpcChannelBuffer,
6119 PRPC_MESSAGE pRpcMessage,
6120 DWORD* pdwStubPhase);
6121 void CALLBACK IAdviseSink_OnSave_Proxy(
6123 HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
6125 IAsyncManager** ppIAM);
6126 HRESULT CALLBACK IAdviseSink_RemoteOnClose_Proxy(
6128 void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
6129 struct IRpcStubBuffer* This,
6130 struct IRpcChannelBuffer* pRpcChannelBuffer,
6131 PRPC_MESSAGE pRpcMessage,
6132 DWORD* pdwStubPhase);
6133 void CALLBACK IAdviseSink_OnClose_Proxy(
6135 HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
6138 typedef struct IAdviseSink2 IAdviseSink2;
6139 typedef IAdviseSink2 *LPADVISESINK2;
6141 /*****************************************************************************
6142 * IAdviseSink2 interface
6144 DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6145 #if defined(__cplusplus) && !defined(CINTERFACE)
6146 struct IAdviseSink2: IAdviseSink {
6148 virtual void STDMETHODCALLTYPE OnLinkSrcChange(
6151 } ICOM_COM_INTERFACE_ATTRIBUTE;
6153 typedef struct IAdviseSink2Vtbl IAdviseSink2Vtbl;
6154 struct IAdviseSink2 {
6155 const IAdviseSink2Vtbl* lpVtbl;
6157 struct IAdviseSink2Vtbl {
6158 ICOM_MSVTABLE_COMPAT_FIELDS
6160 /*** IUnknown methods ***/
6161 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6166 ULONG (STDMETHODCALLTYPE *AddRef)(
6167 IAdviseSink2* This);
6169 ULONG (STDMETHODCALLTYPE *Release)(
6170 IAdviseSink2* This);
6172 /*** IAdviseSink methods ***/
6173 void (STDMETHODCALLTYPE *OnDataChange)(
6175 FORMATETC* pFormatetc,
6176 STGMEDIUM* pStgmed);
6178 void (STDMETHODCALLTYPE *OnViewChange)(
6183 void (STDMETHODCALLTYPE *OnRename)(
6187 void (STDMETHODCALLTYPE *OnSave)(
6188 IAdviseSink2* This);
6190 void (STDMETHODCALLTYPE *OnClose)(
6191 IAdviseSink2* This);
6193 /*** IAdviseSink2 methods ***/
6194 void (STDMETHODCALLTYPE *OnLinkSrcChange)(
6200 #define IAdviseSink2_IMETHODS \
6201 /*** IUnknown methods ***/ \
6202 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
6203 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
6204 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
6205 /*** IAdviseSink methods ***/ \
6206 void (STDMETHODCALLTYPE *OnDataChange)(INTERFACE *This, FORMATETC* pFormatetc, STGMEDIUM* pStgmed); \
6207 void (STDMETHODCALLTYPE *OnViewChange)(INTERFACE *This, DWORD dwAspect, LONG lindex); \
6208 void (STDMETHODCALLTYPE *OnRename)(INTERFACE *This, IMoniker* pmk); \
6209 void (STDMETHODCALLTYPE *OnSave)(INTERFACE *This); \
6210 void (STDMETHODCALLTYPE *OnClose)(INTERFACE *This); \
6211 /*** IAdviseSink2 methods ***/ \
6212 void (STDMETHODCALLTYPE *OnLinkSrcChange)(INTERFACE *This, IMoniker* pmk);
6214 /*** IUnknown methods ***/
6215 #define IAdviseSink2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6216 #define IAdviseSink2_AddRef(p) (p)->lpVtbl->AddRef(p)
6217 #define IAdviseSink2_Release(p) (p)->lpVtbl->Release(p)
6218 /*** IAdviseSink methods ***/
6219 #define IAdviseSink2_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
6220 #define IAdviseSink2_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
6221 #define IAdviseSink2_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
6222 #define IAdviseSink2_OnSave(p) (p)->lpVtbl->OnSave(p)
6223 #define IAdviseSink2_OnClose(p) (p)->lpVtbl->OnClose(p)
6224 /*** IAdviseSink2 methods ***/
6225 #define IAdviseSink2_OnLinkSrcChange(p,a) (p)->lpVtbl->OnLinkSrcChange(p,a)
6229 HRESULT CALLBACK IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
6231 IAsyncManager** ppIAM,
6233 void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
6234 struct IRpcStubBuffer* This,
6235 struct IRpcChannelBuffer* pRpcChannelBuffer,
6236 PRPC_MESSAGE pRpcMessage,
6237 DWORD* pdwStubPhase);
6238 void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
6241 HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
6243 IAsyncManager** ppIAM,
6246 typedef struct IDataObject IDataObject;
6247 typedef IDataObject *LPDATAOBJECT;
6249 typedef enum tagDATADIR {
6254 /*****************************************************************************
6255 * IDataObject interface
6257 DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6258 #if defined(__cplusplus) && !defined(CINTERFACE)
6259 struct IDataObject: IUnknown {
6261 virtual HRESULT STDMETHODCALLTYPE GetData(
6262 FORMATETC* pformatetcIn,
6263 STGMEDIUM* pmedium) = 0;
6265 virtual HRESULT STDMETHODCALLTYPE GetDataHere(
6266 FORMATETC* pformatetc,
6267 STGMEDIUM* pmedium) = 0;
6269 virtual HRESULT STDMETHODCALLTYPE QueryGetData(
6270 FORMATETC* pformatetc) = 0;
6272 virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(
6273 FORMATETC* pformatectIn,
6274 FORMATETC* pformatetcOut) = 0;
6276 virtual HRESULT STDMETHODCALLTYPE SetData(
6277 FORMATETC* pformatetc,
6281 virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(
6283 IEnumFORMATETC** ppenumFormatEtc) = 0;
6285 virtual HRESULT STDMETHODCALLTYPE DAdvise(
6286 FORMATETC* pformatetc,
6288 IAdviseSink* pAdvSink,
6289 DWORD* pdwConnection) = 0;
6291 virtual HRESULT STDMETHODCALLTYPE DUnadvise(
6292 DWORD dwConnection) = 0;
6294 virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(
6295 IEnumSTATDATA** ppenumAdvise) = 0;
6297 } ICOM_COM_INTERFACE_ATTRIBUTE;
6299 typedef struct IDataObjectVtbl IDataObjectVtbl;
6300 struct IDataObject {
6301 const IDataObjectVtbl* lpVtbl;
6303 struct IDataObjectVtbl {
6304 ICOM_MSVTABLE_COMPAT_FIELDS
6306 /*** IUnknown methods ***/
6307 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6312 ULONG (STDMETHODCALLTYPE *AddRef)(
6315 ULONG (STDMETHODCALLTYPE *Release)(
6318 /*** IDataObject methods ***/
6319 HRESULT (STDMETHODCALLTYPE *GetData)(
6321 FORMATETC* pformatetcIn,
6322 STGMEDIUM* pmedium);
6324 HRESULT (STDMETHODCALLTYPE *GetDataHere)(
6326 FORMATETC* pformatetc,
6327 STGMEDIUM* pmedium);
6329 HRESULT (STDMETHODCALLTYPE *QueryGetData)(
6331 FORMATETC* pformatetc);
6333 HRESULT (STDMETHODCALLTYPE *GetCanonicalFormatEtc)(
6335 FORMATETC* pformatectIn,
6336 FORMATETC* pformatetcOut);
6338 HRESULT (STDMETHODCALLTYPE *SetData)(
6340 FORMATETC* pformatetc,
6344 HRESULT (STDMETHODCALLTYPE *EnumFormatEtc)(
6347 IEnumFORMATETC** ppenumFormatEtc);
6349 HRESULT (STDMETHODCALLTYPE *DAdvise)(
6351 FORMATETC* pformatetc,
6353 IAdviseSink* pAdvSink,
6354 DWORD* pdwConnection);
6356 HRESULT (STDMETHODCALLTYPE *DUnadvise)(
6358 DWORD dwConnection);
6360 HRESULT (STDMETHODCALLTYPE *EnumDAdvise)(
6362 IEnumSTATDATA** ppenumAdvise);
6366 #define IDataObject_IMETHODS \
6367 /*** IUnknown methods ***/ \
6368 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
6369 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
6370 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
6371 /*** IDataObject methods ***/ \
6372 HRESULT (STDMETHODCALLTYPE *GetData)(INTERFACE *This, FORMATETC* pformatetcIn, STGMEDIUM* pmedium); \
6373 HRESULT (STDMETHODCALLTYPE *GetDataHere)(INTERFACE *This, FORMATETC* pformatetc, STGMEDIUM* pmedium); \
6374 HRESULT (STDMETHODCALLTYPE *QueryGetData)(INTERFACE *This, FORMATETC* pformatetc); \
6375 HRESULT (STDMETHODCALLTYPE *GetCanonicalFormatEtc)(INTERFACE *This, FORMATETC* pformatectIn, FORMATETC* pformatetcOut); \
6376 HRESULT (STDMETHODCALLTYPE *SetData)(INTERFACE *This, FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease); \
6377 HRESULT (STDMETHODCALLTYPE *EnumFormatEtc)(INTERFACE *This, DWORD dwDirection, IEnumFORMATETC** ppenumFormatEtc); \
6378 HRESULT (STDMETHODCALLTYPE *DAdvise)(INTERFACE *This, FORMATETC* pformatetc, DWORD advf, IAdviseSink* pAdvSink, DWORD* pdwConnection); \
6379 HRESULT (STDMETHODCALLTYPE *DUnadvise)(INTERFACE *This, DWORD dwConnection); \
6380 HRESULT (STDMETHODCALLTYPE *EnumDAdvise)(INTERFACE *This, IEnumSTATDATA** ppenumAdvise);
6382 /*** IUnknown methods ***/
6383 #define IDataObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6384 #define IDataObject_AddRef(p) (p)->lpVtbl->AddRef(p)
6385 #define IDataObject_Release(p) (p)->lpVtbl->Release(p)
6386 /*** IDataObject methods ***/
6387 #define IDataObject_GetData(p,a,b) (p)->lpVtbl->GetData(p,a,b)
6388 #define IDataObject_GetDataHere(p,a,b) (p)->lpVtbl->GetDataHere(p,a,b)
6389 #define IDataObject_QueryGetData(p,a) (p)->lpVtbl->QueryGetData(p,a)
6390 #define IDataObject_GetCanonicalFormatEtc(p,a,b) (p)->lpVtbl->GetCanonicalFormatEtc(p,a,b)
6391 #define IDataObject_SetData(p,a,b,c) (p)->lpVtbl->SetData(p,a,b,c)
6392 #define IDataObject_EnumFormatEtc(p,a,b) (p)->lpVtbl->EnumFormatEtc(p,a,b)
6393 #define IDataObject_DAdvise(p,a,b,c,d) (p)->lpVtbl->DAdvise(p,a,b,c,d)
6394 #define IDataObject_DUnadvise(p,a) (p)->lpVtbl->DUnadvise(p,a)
6395 #define IDataObject_EnumDAdvise(p,a) (p)->lpVtbl->EnumDAdvise(p,a)
6399 HRESULT CALLBACK IDataObject_RemoteGetData_Proxy(
6401 FORMATETC* pformatetcIn,
6402 STGMEDIUM* pRemoteMedium);
6403 void __RPC_STUB IDataObject_RemoteGetData_Stub(
6404 struct IRpcStubBuffer* This,
6405 struct IRpcChannelBuffer* pRpcChannelBuffer,
6406 PRPC_MESSAGE pRpcMessage,
6407 DWORD* pdwStubPhase);
6408 HRESULT CALLBACK IDataObject_GetData_Proxy(
6410 FORMATETC* pformatetcIn,
6411 STGMEDIUM* pmedium);
6412 HRESULT __RPC_STUB IDataObject_GetData_Stub(
6414 FORMATETC* pformatetcIn,
6415 STGMEDIUM* pRemoteMedium);
6416 HRESULT CALLBACK IDataObject_RemoteGetDataHere_Proxy(
6418 FORMATETC* pformatetc,
6419 STGMEDIUM* pRemoteMedium);
6420 void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
6421 struct IRpcStubBuffer* This,
6422 struct IRpcChannelBuffer* pRpcChannelBuffer,
6423 PRPC_MESSAGE pRpcMessage,
6424 DWORD* pdwStubPhase);
6425 HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
6427 FORMATETC* pformatetc,
6428 STGMEDIUM* pmedium);
6429 HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
6431 FORMATETC* pformatetc,
6432 STGMEDIUM* pRemoteMedium);
6433 HRESULT CALLBACK IDataObject_QueryGetData_Proxy(
6435 FORMATETC* pformatetc);
6436 void __RPC_STUB IDataObject_QueryGetData_Stub(
6437 struct IRpcStubBuffer* This,
6438 struct IRpcChannelBuffer* pRpcChannelBuffer,
6439 PRPC_MESSAGE pRpcMessage,
6440 DWORD* pdwStubPhase);
6441 HRESULT CALLBACK IDataObject_GetCanonicalFormatEtc_Proxy(
6443 FORMATETC* pformatectIn,
6444 FORMATETC* pformatetcOut);
6445 void __RPC_STUB IDataObject_GetCanonicalFormatEtc_Stub(
6446 struct IRpcStubBuffer* This,
6447 struct IRpcChannelBuffer* pRpcChannelBuffer,
6448 PRPC_MESSAGE pRpcMessage,
6449 DWORD* pdwStubPhase);
6450 HRESULT CALLBACK IDataObject_RemoteSetData_Proxy(
6452 FORMATETC* pformatetc,
6453 FLAG_STGMEDIUM* pmedium,
6455 void __RPC_STUB IDataObject_RemoteSetData_Stub(
6456 struct IRpcStubBuffer* This,
6457 struct IRpcChannelBuffer* pRpcChannelBuffer,
6458 PRPC_MESSAGE pRpcMessage,
6459 DWORD* pdwStubPhase);
6460 HRESULT CALLBACK IDataObject_SetData_Proxy(
6462 FORMATETC* pformatetc,
6465 HRESULT __RPC_STUB IDataObject_SetData_Stub(
6467 FORMATETC* pformatetc,
6468 FLAG_STGMEDIUM* pmedium,
6470 HRESULT CALLBACK IDataObject_EnumFormatEtc_Proxy(
6473 IEnumFORMATETC** ppenumFormatEtc);
6474 void __RPC_STUB IDataObject_EnumFormatEtc_Stub(
6475 struct IRpcStubBuffer* This,
6476 struct IRpcChannelBuffer* pRpcChannelBuffer,
6477 PRPC_MESSAGE pRpcMessage,
6478 DWORD* pdwStubPhase);
6479 HRESULT CALLBACK IDataObject_DAdvise_Proxy(
6481 FORMATETC* pformatetc,
6483 IAdviseSink* pAdvSink,
6484 DWORD* pdwConnection);
6485 void __RPC_STUB IDataObject_DAdvise_Stub(
6486 struct IRpcStubBuffer* This,
6487 struct IRpcChannelBuffer* pRpcChannelBuffer,
6488 PRPC_MESSAGE pRpcMessage,
6489 DWORD* pdwStubPhase);
6490 HRESULT CALLBACK IDataObject_DUnadvise_Proxy(
6492 DWORD dwConnection);
6493 void __RPC_STUB IDataObject_DUnadvise_Stub(
6494 struct IRpcStubBuffer* This,
6495 struct IRpcChannelBuffer* pRpcChannelBuffer,
6496 PRPC_MESSAGE pRpcMessage,
6497 DWORD* pdwStubPhase);
6498 HRESULT CALLBACK IDataObject_EnumDAdvise_Proxy(
6500 IEnumSTATDATA** ppenumAdvise);
6501 void __RPC_STUB IDataObject_EnumDAdvise_Stub(
6502 struct IRpcStubBuffer* This,
6503 struct IRpcChannelBuffer* pRpcChannelBuffer,
6504 PRPC_MESSAGE pRpcMessage,
6505 DWORD* pdwStubPhase);
6507 typedef struct IDataAdviseHolder IDataAdviseHolder;
6508 typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
6510 /*****************************************************************************
6511 * IDataAdviseHolder interface
6513 DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6514 #if defined(__cplusplus) && !defined(CINTERFACE)
6515 struct IDataAdviseHolder: IUnknown {
6517 virtual HRESULT STDMETHODCALLTYPE Advise(
6518 IDataObject* pDataObject,
6521 IAdviseSink* pAdvise,
6522 DWORD* pdwConnection) = 0;
6524 virtual HRESULT STDMETHODCALLTYPE Unadvise(
6525 DWORD dwConnection) = 0;
6527 virtual HRESULT STDMETHODCALLTYPE EnumAdvise(
6528 IEnumSTATDATA** ppenumAdvise) = 0;
6530 virtual HRESULT STDMETHODCALLTYPE SendOnDataChange(
6531 IDataObject* pDataObject,
6535 } ICOM_COM_INTERFACE_ATTRIBUTE;
6537 typedef struct IDataAdviseHolderVtbl IDataAdviseHolderVtbl;
6538 struct IDataAdviseHolder {
6539 const IDataAdviseHolderVtbl* lpVtbl;
6541 struct IDataAdviseHolderVtbl {
6542 ICOM_MSVTABLE_COMPAT_FIELDS
6544 /*** IUnknown methods ***/
6545 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6546 IDataAdviseHolder* This,
6550 ULONG (STDMETHODCALLTYPE *AddRef)(
6551 IDataAdviseHolder* This);
6553 ULONG (STDMETHODCALLTYPE *Release)(
6554 IDataAdviseHolder* This);
6556 /*** IDataAdviseHolder methods ***/
6557 HRESULT (STDMETHODCALLTYPE *Advise)(
6558 IDataAdviseHolder* This,
6559 IDataObject* pDataObject,
6562 IAdviseSink* pAdvise,
6563 DWORD* pdwConnection);
6565 HRESULT (STDMETHODCALLTYPE *Unadvise)(
6566 IDataAdviseHolder* This,
6567 DWORD dwConnection);
6569 HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
6570 IDataAdviseHolder* This,
6571 IEnumSTATDATA** ppenumAdvise);
6573 HRESULT (STDMETHODCALLTYPE *SendOnDataChange)(
6574 IDataAdviseHolder* This,
6575 IDataObject* pDataObject,
6581 #define IDataAdviseHolder_IMETHODS \
6582 /*** IUnknown methods ***/ \
6583 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
6584 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
6585 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
6586 /*** IDataAdviseHolder methods ***/ \
6587 HRESULT (STDMETHODCALLTYPE *Advise)(INTERFACE *This, IDataObject* pDataObject, FORMATETC* pFetc, DWORD advf, IAdviseSink* pAdvise, DWORD* pdwConnection); \
6588 HRESULT (STDMETHODCALLTYPE *Unadvise)(INTERFACE *This, DWORD dwConnection); \
6589 HRESULT (STDMETHODCALLTYPE *EnumAdvise)(INTERFACE *This, IEnumSTATDATA** ppenumAdvise); \
6590 HRESULT (STDMETHODCALLTYPE *SendOnDataChange)(INTERFACE *This, IDataObject* pDataObject, DWORD dwReserved, DWORD advf);
6592 /*** IUnknown methods ***/
6593 #define IDataAdviseHolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6594 #define IDataAdviseHolder_AddRef(p) (p)->lpVtbl->AddRef(p)
6595 #define IDataAdviseHolder_Release(p) (p)->lpVtbl->Release(p)
6596 /*** IDataAdviseHolder methods ***/
6597 #define IDataAdviseHolder_Advise(p,a,b,c,d,e) (p)->lpVtbl->Advise(p,a,b,c,d,e)
6598 #define IDataAdviseHolder_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
6599 #define IDataAdviseHolder_EnumAdvise(p,a) (p)->lpVtbl->EnumAdvise(p,a)
6600 #define IDataAdviseHolder_SendOnDataChange(p,a,b,c) (p)->lpVtbl->SendOnDataChange(p,a,b,c)
6604 HRESULT CALLBACK IDataAdviseHolder_Advise_Proxy(
6605 IDataAdviseHolder* This,
6606 IDataObject* pDataObject,
6609 IAdviseSink* pAdvise,
6610 DWORD* pdwConnection);
6611 void __RPC_STUB IDataAdviseHolder_Advise_Stub(
6612 struct IRpcStubBuffer* This,
6613 struct IRpcChannelBuffer* pRpcChannelBuffer,
6614 PRPC_MESSAGE pRpcMessage,
6615 DWORD* pdwStubPhase);
6616 HRESULT CALLBACK IDataAdviseHolder_Unadvise_Proxy(
6617 IDataAdviseHolder* This,
6618 DWORD dwConnection);
6619 void __RPC_STUB IDataAdviseHolder_Unadvise_Stub(
6620 struct IRpcStubBuffer* This,
6621 struct IRpcChannelBuffer* pRpcChannelBuffer,
6622 PRPC_MESSAGE pRpcMessage,
6623 DWORD* pdwStubPhase);
6624 HRESULT CALLBACK IDataAdviseHolder_EnumAdvise_Proxy(
6625 IDataAdviseHolder* This,
6626 IEnumSTATDATA** ppenumAdvise);
6627 void __RPC_STUB IDataAdviseHolder_EnumAdvise_Stub(
6628 struct IRpcStubBuffer* This,
6629 struct IRpcChannelBuffer* pRpcChannelBuffer,
6630 PRPC_MESSAGE pRpcMessage,
6631 DWORD* pdwStubPhase);
6632 HRESULT CALLBACK IDataAdviseHolder_SendOnDataChange_Proxy(
6633 IDataAdviseHolder* This,
6634 IDataObject* pDataObject,
6637 void __RPC_STUB IDataAdviseHolder_SendOnDataChange_Stub(
6638 struct IRpcStubBuffer* This,
6639 struct IRpcChannelBuffer* pRpcChannelBuffer,
6640 PRPC_MESSAGE pRpcMessage,
6641 DWORD* pdwStubPhase);
6643 typedef struct IMessageFilter IMessageFilter;
6644 typedef IMessageFilter *LPMESSAGEFILTER;
6646 typedef enum tagCALLTYPE {
6647 CALLTYPE_TOPLEVEL = 1,
6648 CALLTYPE_NESTED = 2,
6650 CALLTYPE_TOPLEVEL_CALLPENDING = 4,
6651 CALLTYPE_ASYNC_CALLPENDING = 5
6654 typedef enum tagSERVERCALL {
6655 SERVERCALL_ISHANDLED = 0,
6656 SERVERCALL_REJECTED = 1,
6657 SERVERCALL_RETRYLATER = 2
6660 typedef enum tagPENDINGTYPE {
6661 PENDINGTYPE_TOPLEVEL = 1,
6662 PENDINGTYPE_NESTED = 2
6665 typedef enum tagPENDINGMSG {
6666 PENDINGMSG_CANCELCALL = 0,
6667 PENDINGMSG_WAITNOPROCESS = 1,
6668 PENDINGMSG_WAITDEFPROCESS = 2
6671 typedef struct tagINTERFACEINFO {
6675 } INTERFACEINFO, *LPINTERFACEINFO;
6677 /*****************************************************************************
6678 * IMessageFilter interface
6680 DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6681 #if defined(__cplusplus) && !defined(CINTERFACE)
6682 struct IMessageFilter: IUnknown {
6684 virtual DWORD STDMETHODCALLTYPE HandleInComingCall(
6688 LPINTERFACEINFO lpInterfaceInfo) = 0;
6690 virtual DWORD STDMETHODCALLTYPE RetryRejectedCall(
6693 DWORD dwRejectType) = 0;
6695 virtual DWORD STDMETHODCALLTYPE MessagePending(
6698 DWORD dwPendingType) = 0;
6700 } ICOM_COM_INTERFACE_ATTRIBUTE;
6702 typedef struct IMessageFilterVtbl IMessageFilterVtbl;
6703 struct IMessageFilter {
6704 const IMessageFilterVtbl* lpVtbl;
6706 struct IMessageFilterVtbl {
6707 ICOM_MSVTABLE_COMPAT_FIELDS
6709 /*** IUnknown methods ***/
6710 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6711 IMessageFilter* This,
6715 ULONG (STDMETHODCALLTYPE *AddRef)(
6716 IMessageFilter* This);
6718 ULONG (STDMETHODCALLTYPE *Release)(
6719 IMessageFilter* This);
6721 /*** IMessageFilter methods ***/
6722 DWORD (STDMETHODCALLTYPE *HandleInComingCall)(
6723 IMessageFilter* This,
6727 LPINTERFACEINFO lpInterfaceInfo);
6729 DWORD (STDMETHODCALLTYPE *RetryRejectedCall)(
6730 IMessageFilter* This,
6733 DWORD dwRejectType);
6735 DWORD (STDMETHODCALLTYPE *MessagePending)(
6736 IMessageFilter* This,
6739 DWORD dwPendingType);
6743 #define IMessageFilter_IMETHODS \
6744 /*** IUnknown methods ***/ \
6745 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
6746 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
6747 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
6748 /*** IMessageFilter methods ***/ \
6749 DWORD (STDMETHODCALLTYPE *HandleInComingCall)(INTERFACE *This, DWORD dwCallType, HTASK htaskCaller, DWORD dwTickCount, LPINTERFACEINFO lpInterfaceInfo); \
6750 DWORD (STDMETHODCALLTYPE *RetryRejectedCall)(INTERFACE *This, HTASK htaskCallee, DWORD dwTickCount, DWORD dwRejectType); \
6751 DWORD (STDMETHODCALLTYPE *MessagePending)(INTERFACE *This, HTASK htaskCallee, DWORD dwTickCount, DWORD dwPendingType);
6753 /*** IUnknown methods ***/
6754 #define IMessageFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6755 #define IMessageFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
6756 #define IMessageFilter_Release(p) (p)->lpVtbl->Release(p)
6757 /*** IMessageFilter methods ***/
6758 #define IMessageFilter_HandleInComingCall(p,a,b,c,d) (p)->lpVtbl->HandleInComingCall(p,a,b,c,d)
6759 #define IMessageFilter_RetryRejectedCall(p,a,b,c) (p)->lpVtbl->RetryRejectedCall(p,a,b,c)
6760 #define IMessageFilter_MessagePending(p,a,b,c) (p)->lpVtbl->MessagePending(p,a,b,c)
6764 DWORD CALLBACK IMessageFilter_HandleInComingCall_Proxy(
6765 IMessageFilter* This,
6769 LPINTERFACEINFO lpInterfaceInfo);
6770 void __RPC_STUB IMessageFilter_HandleInComingCall_Stub(
6771 struct IRpcStubBuffer* This,
6772 struct IRpcChannelBuffer* pRpcChannelBuffer,
6773 PRPC_MESSAGE pRpcMessage,
6774 DWORD* pdwStubPhase);
6775 DWORD CALLBACK IMessageFilter_RetryRejectedCall_Proxy(
6776 IMessageFilter* This,
6779 DWORD dwRejectType);
6780 void __RPC_STUB IMessageFilter_RetryRejectedCall_Stub(
6781 struct IRpcStubBuffer* This,
6782 struct IRpcChannelBuffer* pRpcChannelBuffer,
6783 PRPC_MESSAGE pRpcMessage,
6784 DWORD* pdwStubPhase);
6785 DWORD CALLBACK IMessageFilter_MessagePending_Proxy(
6786 IMessageFilter* This,
6789 DWORD dwPendingType);
6790 void __RPC_STUB IMessageFilter_MessagePending_Stub(
6791 struct IRpcStubBuffer* This,
6792 struct IRpcChannelBuffer* pRpcChannelBuffer,
6793 PRPC_MESSAGE pRpcMessage,
6794 DWORD* pdwStubPhase);
6796 typedef struct IRpcChannelBuffer IRpcChannelBuffer;
6797 typedef IRpcChannelBuffer *LPRPCCHANNELBUFFER;
6799 typedef unsigned long RPCOLEDATAREP;
6801 typedef struct tagRPCOLEMESSAGE {
6803 RPCOLEDATAREP dataRepresentation;
6811 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
6813 /*****************************************************************************
6814 * IRpcChannelBuffer interface
6816 DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
6817 #if defined(__cplusplus) && !defined(CINTERFACE)
6818 struct IRpcChannelBuffer: IUnknown {
6820 virtual HRESULT STDMETHODCALLTYPE GetBuffer(
6821 RPCOLEMESSAGE* pMessage,
6824 virtual HRESULT STDMETHODCALLTYPE SendReceive(
6825 RPCOLEMESSAGE* pMessage,
6826 ULONG* pStatus) = 0;
6828 virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
6829 RPCOLEMESSAGE* pMessage) = 0;
6831 virtual HRESULT STDMETHODCALLTYPE GetDestCtx(
6832 DWORD* pdwDestContext,
6833 void** ppvDestContext) = 0;
6835 virtual HRESULT STDMETHODCALLTYPE IsConnected(
6838 } ICOM_COM_INTERFACE_ATTRIBUTE;
6840 typedef struct IRpcChannelBufferVtbl IRpcChannelBufferVtbl;
6841 struct IRpcChannelBuffer {
6842 const IRpcChannelBufferVtbl* lpVtbl;
6844 struct IRpcChannelBufferVtbl {
6845 ICOM_MSVTABLE_COMPAT_FIELDS
6847 /*** IUnknown methods ***/
6848 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6849 IRpcChannelBuffer* This,
6853 ULONG (STDMETHODCALLTYPE *AddRef)(
6854 IRpcChannelBuffer* This);
6856 ULONG (STDMETHODCALLTYPE *Release)(
6857 IRpcChannelBuffer* This);
6859 /*** IRpcChannelBuffer methods ***/
6860 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
6861 IRpcChannelBuffer* This,
6862 RPCOLEMESSAGE* pMessage,
6865 HRESULT (STDMETHODCALLTYPE *SendReceive)(
6866 IRpcChannelBuffer* This,
6867 RPCOLEMESSAGE* pMessage,
6870 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
6871 IRpcChannelBuffer* This,
6872 RPCOLEMESSAGE* pMessage);
6874 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
6875 IRpcChannelBuffer* This,
6876 DWORD* pdwDestContext,
6877 void** ppvDestContext);
6879 HRESULT (STDMETHODCALLTYPE *IsConnected)(
6880 IRpcChannelBuffer* This);
6884 #define IRpcChannelBuffer_IMETHODS \
6885 /*** IUnknown methods ***/ \
6886 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
6887 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
6888 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
6889 /*** IRpcChannelBuffer methods ***/ \
6890 HRESULT (STDMETHODCALLTYPE *GetBuffer)(INTERFACE *This, RPCOLEMESSAGE* pMessage, REFIID riid); \
6891 HRESULT (STDMETHODCALLTYPE *SendReceive)(INTERFACE *This, RPCOLEMESSAGE* pMessage, ULONG* pStatus); \
6892 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(INTERFACE *This, RPCOLEMESSAGE* pMessage); \
6893 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(INTERFACE *This, DWORD* pdwDestContext, void** ppvDestContext); \
6894 HRESULT (STDMETHODCALLTYPE *IsConnected)(INTERFACE *This);
6896 /*** IUnknown methods ***/
6897 #define IRpcChannelBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6898 #define IRpcChannelBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
6899 #define IRpcChannelBuffer_Release(p) (p)->lpVtbl->Release(p)
6900 /*** IRpcChannelBuffer methods ***/
6901 #define IRpcChannelBuffer_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6902 #define IRpcChannelBuffer_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6903 #define IRpcChannelBuffer_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6904 #define IRpcChannelBuffer_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6905 #define IRpcChannelBuffer_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6909 HRESULT CALLBACK IRpcChannelBuffer_GetBuffer_Proxy(
6910 IRpcChannelBuffer* This,
6911 RPCOLEMESSAGE* pMessage,
6913 void __RPC_STUB IRpcChannelBuffer_GetBuffer_Stub(
6914 struct IRpcStubBuffer* This,
6915 struct IRpcChannelBuffer* pRpcChannelBuffer,
6916 PRPC_MESSAGE pRpcMessage,
6917 DWORD* pdwStubPhase);
6918 HRESULT CALLBACK IRpcChannelBuffer_SendReceive_Proxy(
6919 IRpcChannelBuffer* This,
6920 RPCOLEMESSAGE* pMessage,
6922 void __RPC_STUB IRpcChannelBuffer_SendReceive_Stub(
6923 struct IRpcStubBuffer* This,
6924 struct IRpcChannelBuffer* pRpcChannelBuffer,
6925 PRPC_MESSAGE pRpcMessage,
6926 DWORD* pdwStubPhase);
6927 HRESULT CALLBACK IRpcChannelBuffer_FreeBuffer_Proxy(
6928 IRpcChannelBuffer* This,
6929 RPCOLEMESSAGE* pMessage);
6930 void __RPC_STUB IRpcChannelBuffer_FreeBuffer_Stub(
6931 struct IRpcStubBuffer* This,
6932 struct IRpcChannelBuffer* pRpcChannelBuffer,
6933 PRPC_MESSAGE pRpcMessage,
6934 DWORD* pdwStubPhase);
6935 HRESULT CALLBACK IRpcChannelBuffer_GetDestCtx_Proxy(
6936 IRpcChannelBuffer* This,
6937 DWORD* pdwDestContext,
6938 void** ppvDestContext);
6939 void __RPC_STUB IRpcChannelBuffer_GetDestCtx_Stub(
6940 struct IRpcStubBuffer* This,
6941 struct IRpcChannelBuffer* pRpcChannelBuffer,
6942 PRPC_MESSAGE pRpcMessage,
6943 DWORD* pdwStubPhase);
6944 HRESULT CALLBACK IRpcChannelBuffer_IsConnected_Proxy(
6945 IRpcChannelBuffer* This);
6946 void __RPC_STUB IRpcChannelBuffer_IsConnected_Stub(
6947 struct IRpcStubBuffer* This,
6948 struct IRpcChannelBuffer* pRpcChannelBuffer,
6949 PRPC_MESSAGE pRpcMessage,
6950 DWORD* pdwStubPhase);
6952 typedef struct IRpcChannelBuffer2 IRpcChannelBuffer2;
6953 typedef IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2;
6955 /*****************************************************************************
6956 * IRpcChannelBuffer2 interface
6958 DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
6959 #if defined(__cplusplus) && !defined(CINTERFACE)
6960 struct IRpcChannelBuffer2: IRpcChannelBuffer {
6962 virtual HRESULT STDMETHODCALLTYPE GetProtocolVersion(
6963 DWORD* pdwVersion) = 0;
6965 } ICOM_COM_INTERFACE_ATTRIBUTE;
6967 typedef struct IRpcChannelBuffer2Vtbl IRpcChannelBuffer2Vtbl;
6968 struct IRpcChannelBuffer2 {
6969 const IRpcChannelBuffer2Vtbl* lpVtbl;
6971 struct IRpcChannelBuffer2Vtbl {
6972 ICOM_MSVTABLE_COMPAT_FIELDS
6974 /*** IUnknown methods ***/
6975 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6976 IRpcChannelBuffer2* This,
6980 ULONG (STDMETHODCALLTYPE *AddRef)(
6981 IRpcChannelBuffer2* This);
6983 ULONG (STDMETHODCALLTYPE *Release)(
6984 IRpcChannelBuffer2* This);
6986 /*** IRpcChannelBuffer methods ***/
6987 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
6988 IRpcChannelBuffer2* This,
6989 RPCOLEMESSAGE* pMessage,
6992 HRESULT (STDMETHODCALLTYPE *SendReceive)(
6993 IRpcChannelBuffer2* This,
6994 RPCOLEMESSAGE* pMessage,
6997 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
6998 IRpcChannelBuffer2* This,
6999 RPCOLEMESSAGE* pMessage);
7001 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
7002 IRpcChannelBuffer2* This,
7003 DWORD* pdwDestContext,
7004 void** ppvDestContext);
7006 HRESULT (STDMETHODCALLTYPE *IsConnected)(
7007 IRpcChannelBuffer2* This);
7009 /*** IRpcChannelBuffer2 methods ***/
7010 HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
7011 IRpcChannelBuffer2* This,
7016 #define IRpcChannelBuffer2_IMETHODS \
7017 /*** IUnknown methods ***/ \
7018 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
7019 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
7020 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
7021 /*** IRpcChannelBuffer methods ***/ \
7022 HRESULT (STDMETHODCALLTYPE *GetBuffer)(INTERFACE *This, RPCOLEMESSAGE* pMessage, REFIID riid); \
7023 HRESULT (STDMETHODCALLTYPE *SendReceive)(INTERFACE *This, RPCOLEMESSAGE* pMessage, ULONG* pStatus); \
7024 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(INTERFACE *This, RPCOLEMESSAGE* pMessage); \
7025 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(INTERFACE *This, DWORD* pdwDestContext, void** ppvDestContext); \
7026 HRESULT (STDMETHODCALLTYPE *IsConnected)(INTERFACE *This); \
7027 /*** IRpcChannelBuffer2 methods ***/ \
7028 HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(INTERFACE *This, DWORD* pdwVersion);
7030 /*** IUnknown methods ***/
7031 #define IRpcChannelBuffer2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7032 #define IRpcChannelBuffer2_AddRef(p) (p)->lpVtbl->AddRef(p)
7033 #define IRpcChannelBuffer2_Release(p) (p)->lpVtbl->Release(p)
7034 /*** IRpcChannelBuffer methods ***/
7035 #define IRpcChannelBuffer2_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
7036 #define IRpcChannelBuffer2_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
7037 #define IRpcChannelBuffer2_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
7038 #define IRpcChannelBuffer2_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
7039 #define IRpcChannelBuffer2_IsConnected(p) (p)->lpVtbl->IsConnected(p)
7040 /*** IRpcChannelBuffer2 methods ***/
7041 #define IRpcChannelBuffer2_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
7045 HRESULT CALLBACK IRpcChannelBuffer2_GetProtocolVersion_Proxy(
7046 IRpcChannelBuffer2* This,
7048 void __RPC_STUB IRpcChannelBuffer2_GetProtocolVersion_Stub(
7049 struct IRpcStubBuffer* This,
7050 struct IRpcChannelBuffer* pRpcChannelBuffer,
7051 PRPC_MESSAGE pRpcMessage,
7052 DWORD* pdwStubPhase);
7054 typedef struct IRpcChannelBuffer3 IRpcChannelBuffer3;
7055 typedef IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3;
7057 /*****************************************************************************
7058 * IRpcChannelBuffer3 interface
7060 DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
7061 #if defined(__cplusplus) && !defined(CINTERFACE)
7062 struct IRpcChannelBuffer3: IRpcChannelBuffer2 {
7064 virtual HRESULT STDMETHODCALLTYPE Send(
7065 RPCOLEMESSAGE* pMsg,
7066 ULONG* pulStatus) = 0;
7068 virtual HRESULT STDMETHODCALLTYPE Receive(
7069 RPCOLEMESSAGE* pMsg,
7071 ULONG* pulStatus) = 0;
7073 virtual HRESULT STDMETHODCALLTYPE Cancel(
7074 RPCOLEMESSAGE* pMsg) = 0;
7076 virtual HRESULT STDMETHODCALLTYPE GetCallContext(
7077 RPCOLEMESSAGE* pMsg,
7079 void** pInterface) = 0;
7081 virtual HRESULT STDMETHODCALLTYPE GetDestCtxEx(
7082 RPCOLEMESSAGE* pMsg,
7083 DWORD* pdwDestContext,
7084 void** ppvDestContext) = 0;
7086 virtual HRESULT STDMETHODCALLTYPE GetState(
7087 RPCOLEMESSAGE* pMsg,
7090 virtual HRESULT STDMETHODCALLTYPE RegisterAsync(
7091 RPCOLEMESSAGE* pMsg,
7092 IAsyncManager* pAsyncMgr) = 0;
7094 } ICOM_COM_INTERFACE_ATTRIBUTE;
7096 typedef struct IRpcChannelBuffer3Vtbl IRpcChannelBuffer3Vtbl;
7097 struct IRpcChannelBuffer3 {
7098 const IRpcChannelBuffer3Vtbl* lpVtbl;
7100 struct IRpcChannelBuffer3Vtbl {
7101 ICOM_MSVTABLE_COMPAT_FIELDS
7103 /*** IUnknown methods ***/
7104 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7105 IRpcChannelBuffer3* This,
7109 ULONG (STDMETHODCALLTYPE *AddRef)(
7110 IRpcChannelBuffer3* This);
7112 ULONG (STDMETHODCALLTYPE *Release)(
7113 IRpcChannelBuffer3* This);
7115 /*** IRpcChannelBuffer methods ***/
7116 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
7117 IRpcChannelBuffer3* This,
7118 RPCOLEMESSAGE* pMessage,
7121 HRESULT (STDMETHODCALLTYPE *SendReceive)(
7122 IRpcChannelBuffer3* This,
7123 RPCOLEMESSAGE* pMessage,
7126 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
7127 IRpcChannelBuffer3* This,
7128 RPCOLEMESSAGE* pMessage);
7130 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
7131 IRpcChannelBuffer3* This,
7132 DWORD* pdwDestContext,
7133 void** ppvDestContext);
7135 HRESULT (STDMETHODCALLTYPE *IsConnected)(
7136 IRpcChannelBuffer3* This);
7138 /*** IRpcChannelBuffer2 methods ***/
7139 HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
7140 IRpcChannelBuffer3* This,
7143 /*** IRpcChannelBuffer3 methods ***/
7144 HRESULT (STDMETHODCALLTYPE *Send)(
7145 IRpcChannelBuffer3* This,
7146 RPCOLEMESSAGE* pMsg,
7149 HRESULT (STDMETHODCALLTYPE *Receive)(
7150 IRpcChannelBuffer3* This,
7151 RPCOLEMESSAGE* pMsg,
7155 HRESULT (STDMETHODCALLTYPE *Cancel)(
7156 IRpcChannelBuffer3* This,
7157 RPCOLEMESSAGE* pMsg);
7159 HRESULT (STDMETHODCALLTYPE *GetCallContext)(
7160 IRpcChannelBuffer3* This,
7161 RPCOLEMESSAGE* pMsg,
7165 HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
7166 IRpcChannelBuffer3* This,
7167 RPCOLEMESSAGE* pMsg,
7168 DWORD* pdwDestContext,
7169 void** ppvDestContext);
7171 HRESULT (STDMETHODCALLTYPE *GetState)(
7172 IRpcChannelBuffer3* This,
7173 RPCOLEMESSAGE* pMsg,
7176 HRESULT (STDMETHODCALLTYPE *RegisterAsync)(
7177 IRpcChannelBuffer3* This,
7178 RPCOLEMESSAGE* pMsg,
7179 IAsyncManager* pAsyncMgr);
7183 #define IRpcChannelBuffer3_IMETHODS \
7184 /*** IUnknown methods ***/ \
7185 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
7186 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
7187 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
7188 /*** IRpcChannelBuffer methods ***/ \
7189 HRESULT (STDMETHODCALLTYPE *GetBuffer)(INTERFACE *This, RPCOLEMESSAGE* pMessage, REFIID riid); \
7190 HRESULT (STDMETHODCALLTYPE *SendReceive)(INTERFACE *This, RPCOLEMESSAGE* pMessage, ULONG* pStatus); \
7191 HRESULT (STDMETHODCALLTYPE *FreeBuffer)(INTERFACE *This, RPCOLEMESSAGE* pMessage); \
7192 HRESULT (STDMETHODCALLTYPE *GetDestCtx)(INTERFACE *This, DWORD* pdwDestContext, void** ppvDestContext); \
7193 HRESULT (STDMETHODCALLTYPE *IsConnected)(INTERFACE *This); \
7194 /*** IRpcChannelBuffer2 methods ***/ \
7195 HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(INTERFACE *This, DWORD* pdwVersion); \
7196 /*** IRpcChannelBuffer3 methods ***/ \
7197 HRESULT (STDMETHODCALLTYPE *Send)(INTERFACE *This, RPCOLEMESSAGE* pMsg, ULONG* pulStatus); \
7198 HRESULT (STDMETHODCALLTYPE *Receive)(INTERFACE *This, RPCOLEMESSAGE* pMsg, ULONG ulSize, ULONG* pulStatus); \
7199 HRESULT (STDMETHODCALLTYPE *Cancel)(INTERFACE *This, RPCOLEMESSAGE* pMsg); \
7200 HRESULT (STDMETHODCALLTYPE *GetCallContext)(INTERFACE *This, RPCOLEMESSAGE* pMsg, REFIID riid, void** pInterface); \
7201 HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(INTERFACE *This, RPCOLEMESSAGE* pMsg, DWORD* pdwDestContext, void** ppvDestContext); \
7202 HRESULT (STDMETHODCALLTYPE *GetState)(INTERFACE *This, RPCOLEMESSAGE* pMsg, DWORD* pState); \
7203 HRESULT (STDMETHODCALLTYPE *RegisterAsync)(INTERFACE *This, RPCOLEMESSAGE* pMsg, IAsyncManager* pAsyncMgr);
7205 /*** IUnknown methods ***/
7206 #define IRpcChannelBuffer3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7207 #define IRpcChannelBuffer3_AddRef(p) (p)->lpVtbl->AddRef(p)
7208 #define IRpcChannelBuffer3_Release(p) (p)->lpVtbl->Release(p)
7209 /*** IRpcChannelBuffer methods ***/
7210 #define IRpcChannelBuffer3_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
7211 #define IRpcChannelBuffer3_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
7212 #define IRpcChannelBuffer3_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
7213 #define IRpcChannelBuffer3_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
7214 #define IRpcChannelBuffer3_IsConnected(p) (p)->lpVtbl->IsConnected(p)
7215 /*** IRpcChannelBuffer2 methods ***/
7216 #define IRpcChannelBuffer3_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
7217 /*** IRpcChannelBuffer3 methods ***/
7218 #define IRpcChannelBuffer3_Send(p,a,b) (p)->lpVtbl->Send(p,a,b)
7219 #define IRpcChannelBuffer3_Receive(p,a,b,c) (p)->lpVtbl->Receive(p,a,b,c)
7220 #define IRpcChannelBuffer3_Cancel(p,a) (p)->lpVtbl->Cancel(p,a)
7221 #define IRpcChannelBuffer3_GetCallContext(p,a,b,c) (p)->lpVtbl->GetCallContext(p,a,b,c)
7222 #define IRpcChannelBuffer3_GetDestCtxEx(p,a,b,c) (p)->lpVtbl->GetDestCtxEx(p,a,b,c)
7223 #define IRpcChannelBuffer3_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
7224 #define IRpcChannelBuffer3_RegisterAsync(p,a,b) (p)->lpVtbl->RegisterAsync(p,a,b)
7228 HRESULT CALLBACK IRpcChannelBuffer3_Send_Proxy(
7229 IRpcChannelBuffer3* This,
7230 RPCOLEMESSAGE* pMsg,
7232 void __RPC_STUB IRpcChannelBuffer3_Send_Stub(
7233 struct IRpcStubBuffer* This,
7234 struct IRpcChannelBuffer* pRpcChannelBuffer,
7235 PRPC_MESSAGE pRpcMessage,
7236 DWORD* pdwStubPhase);
7237 HRESULT CALLBACK IRpcChannelBuffer3_Receive_Proxy(
7238 IRpcChannelBuffer3* This,
7239 RPCOLEMESSAGE* pMsg,
7242 void __RPC_STUB IRpcChannelBuffer3_Receive_Stub(
7243 struct IRpcStubBuffer* This,
7244 struct IRpcChannelBuffer* pRpcChannelBuffer,
7245 PRPC_MESSAGE pRpcMessage,
7246 DWORD* pdwStubPhase);
7247 HRESULT CALLBACK IRpcChannelBuffer3_Cancel_Proxy(
7248 IRpcChannelBuffer3* This,
7249 RPCOLEMESSAGE* pMsg);
7250 void __RPC_STUB IRpcChannelBuffer3_Cancel_Stub(
7251 struct IRpcStubBuffer* This,
7252 struct IRpcChannelBuffer* pRpcChannelBuffer,
7253 PRPC_MESSAGE pRpcMessage,
7254 DWORD* pdwStubPhase);
7255 HRESULT CALLBACK IRpcChannelBuffer3_GetCallContext_Proxy(
7256 IRpcChannelBuffer3* This,
7257 RPCOLEMESSAGE* pMsg,
7260 void __RPC_STUB IRpcChannelBuffer3_GetCallContext_Stub(
7261 struct IRpcStubBuffer* This,
7262 struct IRpcChannelBuffer* pRpcChannelBuffer,
7263 PRPC_MESSAGE pRpcMessage,
7264 DWORD* pdwStubPhase);
7265 HRESULT CALLBACK IRpcChannelBuffer3_GetDestCtxEx_Proxy(
7266 IRpcChannelBuffer3* This,
7267 RPCOLEMESSAGE* pMsg,
7268 DWORD* pdwDestContext,
7269 void** ppvDestContext);
7270 void __RPC_STUB IRpcChannelBuffer3_GetDestCtxEx_Stub(
7271 struct IRpcStubBuffer* This,
7272 struct IRpcChannelBuffer* pRpcChannelBuffer,
7273 PRPC_MESSAGE pRpcMessage,
7274 DWORD* pdwStubPhase);
7275 HRESULT CALLBACK IRpcChannelBuffer3_GetState_Proxy(
7276 IRpcChannelBuffer3* This,
7277 RPCOLEMESSAGE* pMsg,
7279 void __RPC_STUB IRpcChannelBuffer3_GetState_Stub(
7280 struct IRpcStubBuffer* This,
7281 struct IRpcChannelBuffer* pRpcChannelBuffer,
7282 PRPC_MESSAGE pRpcMessage,
7283 DWORD* pdwStubPhase);
7284 HRESULT CALLBACK IRpcChannelBuffer3_RegisterAsync_Proxy(
7285 IRpcChannelBuffer3* This,
7286 RPCOLEMESSAGE* pMsg,
7287 IAsyncManager* pAsyncMgr);
7288 void __RPC_STUB IRpcChannelBuffer3_RegisterAsync_Stub(
7289 struct IRpcStubBuffer* This,
7290 struct IRpcChannelBuffer* pRpcChannelBuffer,
7291 PRPC_MESSAGE pRpcMessage,
7292 DWORD* pdwStubPhase);
7294 typedef struct IRpcProxyBuffer IRpcProxyBuffer;
7295 typedef IRpcProxyBuffer *LPRPCPROXYBUFFER;
7297 /*****************************************************************************
7298 * IRpcProxyBuffer interface
7300 DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7301 #if defined(__cplusplus) && !defined(CINTERFACE)
7302 struct IRpcProxyBuffer: IUnknown {
7304 virtual HRESULT STDMETHODCALLTYPE Connect(
7305 IRpcChannelBuffer* pRpcChannelBuffer) = 0;
7307 virtual void STDMETHODCALLTYPE Disconnect(
7310 } ICOM_COM_INTERFACE_ATTRIBUTE;
7312 typedef struct IRpcProxyBufferVtbl IRpcProxyBufferVtbl;
7313 struct IRpcProxyBuffer {
7314 const IRpcProxyBufferVtbl* lpVtbl;
7316 struct IRpcProxyBufferVtbl {
7317 ICOM_MSVTABLE_COMPAT_FIELDS
7319 /*** IUnknown methods ***/
7320 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7321 IRpcProxyBuffer* This,
7325 ULONG (STDMETHODCALLTYPE *AddRef)(
7326 IRpcProxyBuffer* This);
7328 ULONG (STDMETHODCALLTYPE *Release)(
7329 IRpcProxyBuffer* This);
7331 /*** IRpcProxyBuffer methods ***/
7332 HRESULT (STDMETHODCALLTYPE *Connect)(
7333 IRpcProxyBuffer* This,
7334 IRpcChannelBuffer* pRpcChannelBuffer);
7336 void (STDMETHODCALLTYPE *Disconnect)(
7337 IRpcProxyBuffer* This);
7341 #define IRpcProxyBuffer_IMETHODS \
7342 /*** IUnknown methods ***/ \
7343 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
7344 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
7345 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
7346 /*** IRpcProxyBuffer methods ***/ \
7347 HRESULT (STDMETHODCALLTYPE *Connect)(INTERFACE *This, IRpcChannelBuffer* pRpcChannelBuffer); \
7348 void (STDMETHODCALLTYPE *Disconnect)(INTERFACE *This);
7350 /*** IUnknown methods ***/
7351 #define IRpcProxyBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7352 #define IRpcProxyBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7353 #define IRpcProxyBuffer_Release(p) (p)->lpVtbl->Release(p)
7354 /*** IRpcProxyBuffer methods ***/
7355 #define IRpcProxyBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7356 #define IRpcProxyBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7360 HRESULT CALLBACK IRpcProxyBuffer_Connect_Proxy(
7361 IRpcProxyBuffer* This,
7362 IRpcChannelBuffer* pRpcChannelBuffer);
7363 void __RPC_STUB IRpcProxyBuffer_Connect_Stub(
7364 struct IRpcStubBuffer* This,
7365 struct IRpcChannelBuffer* pRpcChannelBuffer,
7366 PRPC_MESSAGE pRpcMessage,
7367 DWORD* pdwStubPhase);
7368 void CALLBACK IRpcProxyBuffer_Disconnect_Proxy(
7369 IRpcProxyBuffer* This);
7370 void __RPC_STUB IRpcProxyBuffer_Disconnect_Stub(
7371 struct IRpcStubBuffer* This,
7372 struct IRpcChannelBuffer* pRpcChannelBuffer,
7373 PRPC_MESSAGE pRpcMessage,
7374 DWORD* pdwStubPhase);
7376 typedef struct IRpcStubBuffer IRpcStubBuffer;
7377 typedef IRpcStubBuffer *LPRPCSTUBBUFFER;
7379 /*****************************************************************************
7380 * IRpcStubBuffer interface
7382 DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7383 #if defined(__cplusplus) && !defined(CINTERFACE)
7384 struct IRpcStubBuffer: IUnknown {
7386 virtual HRESULT STDMETHODCALLTYPE Connect(
7387 IUnknown* pUnkServer) = 0;
7389 virtual void STDMETHODCALLTYPE Disconnect(
7392 virtual HRESULT STDMETHODCALLTYPE Invoke(
7393 RPCOLEMESSAGE* _prpcmsg,
7394 IRpcChannelBuffer* _pRpcChannelBuffer) = 0;
7396 virtual IRpcStubBuffer* STDMETHODCALLTYPE IsIIDSupported(
7399 virtual ULONG STDMETHODCALLTYPE CountRefs(
7402 virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface(
7405 virtual void STDMETHODCALLTYPE DebugServerRelease(
7408 } ICOM_COM_INTERFACE_ATTRIBUTE;
7410 typedef struct IRpcStubBufferVtbl IRpcStubBufferVtbl;
7411 struct IRpcStubBuffer {
7412 const IRpcStubBufferVtbl* lpVtbl;
7414 struct IRpcStubBufferVtbl {
7415 ICOM_MSVTABLE_COMPAT_FIELDS
7417 /*** IUnknown methods ***/
7418 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7419 IRpcStubBuffer* This,
7423 ULONG (STDMETHODCALLTYPE *AddRef)(
7424 IRpcStubBuffer* This);
7426 ULONG (STDMETHODCALLTYPE *Release)(
7427 IRpcStubBuffer* This);
7429 /*** IRpcStubBuffer methods ***/
7430 HRESULT (STDMETHODCALLTYPE *Connect)(
7431 IRpcStubBuffer* This,
7432 IUnknown* pUnkServer);
7434 void (STDMETHODCALLTYPE *Disconnect)(
7435 IRpcStubBuffer* This);
7437 HRESULT (STDMETHODCALLTYPE *Invoke)(
7438 IRpcStubBuffer* This,
7439 RPCOLEMESSAGE* _prpcmsg,
7440 IRpcChannelBuffer* _pRpcChannelBuffer);
7442 IRpcStubBuffer* (STDMETHODCALLTYPE *IsIIDSupported)(
7443 IRpcStubBuffer* This,
7446 ULONG (STDMETHODCALLTYPE *CountRefs)(
7447 IRpcStubBuffer* This);
7449 HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(
7450 IRpcStubBuffer* This,
7453 void (STDMETHODCALLTYPE *DebugServerRelease)(
7454 IRpcStubBuffer* This,
7459 #define IRpcStubBuffer_IMETHODS \
7460 /*** IUnknown methods ***/ \
7461 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
7462 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
7463 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
7464 /*** IRpcStubBuffer methods ***/ \
7465 HRESULT (STDMETHODCALLTYPE *Connect)(INTERFACE *This, IUnknown* pUnkServer); \
7466 void (STDMETHODCALLTYPE *Disconnect)(INTERFACE *This); \
7467 HRESULT (STDMETHODCALLTYPE *Invoke)(INTERFACE *This, RPCOLEMESSAGE* _prpcmsg, IRpcChannelBuffer* _pRpcChannelBuffer); \
7468 IRpcStubBuffer* (STDMETHODCALLTYPE *IsIIDSupported)(INTERFACE *This, REFIID riid); \
7469 ULONG (STDMETHODCALLTYPE *CountRefs)(INTERFACE *This); \
7470 HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(INTERFACE *This, void** ppv); \
7471 void (STDMETHODCALLTYPE *DebugServerRelease)(INTERFACE *This, void* pv);
7473 /*** IUnknown methods ***/
7474 #define IRpcStubBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7475 #define IRpcStubBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7476 #define IRpcStubBuffer_Release(p) (p)->lpVtbl->Release(p)
7477 /*** IRpcStubBuffer methods ***/
7478 #define IRpcStubBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7479 #define IRpcStubBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7480 #define IRpcStubBuffer_Invoke(p,a,b) (p)->lpVtbl->Invoke(p,a,b)
7481 #define IRpcStubBuffer_IsIIDSupported(p,a) (p)->lpVtbl->IsIIDSupported(p,a)
7482 #define IRpcStubBuffer_CountRefs(p) (p)->lpVtbl->CountRefs(p)
7483 #define IRpcStubBuffer_DebugServerQueryInterface(p,a) (p)->lpVtbl->DebugServerQueryInterface(p,a)
7484 #define IRpcStubBuffer_DebugServerRelease(p,a) (p)->lpVtbl->DebugServerRelease(p,a)
7488 HRESULT CALLBACK IRpcStubBuffer_Connect_Proxy(
7489 IRpcStubBuffer* This,
7490 IUnknown* pUnkServer);
7491 void __RPC_STUB IRpcStubBuffer_Connect_Stub(
7492 struct IRpcStubBuffer* This,
7493 struct IRpcChannelBuffer* pRpcChannelBuffer,
7494 PRPC_MESSAGE pRpcMessage,
7495 DWORD* pdwStubPhase);
7496 void CALLBACK IRpcStubBuffer_Disconnect_Proxy(
7497 IRpcStubBuffer* This);
7498 void __RPC_STUB IRpcStubBuffer_Disconnect_Stub(
7499 struct IRpcStubBuffer* This,
7500 struct IRpcChannelBuffer* pRpcChannelBuffer,
7501 PRPC_MESSAGE pRpcMessage,
7502 DWORD* pdwStubPhase);
7503 HRESULT CALLBACK IRpcStubBuffer_Invoke_Proxy(
7504 IRpcStubBuffer* This,
7505 RPCOLEMESSAGE* _prpcmsg,
7506 IRpcChannelBuffer* _pRpcChannelBuffer);
7507 void __RPC_STUB IRpcStubBuffer_Invoke_Stub(
7508 struct IRpcStubBuffer* This,
7509 struct IRpcChannelBuffer* pRpcChannelBuffer,
7510 PRPC_MESSAGE pRpcMessage,
7511 DWORD* pdwStubPhase);
7512 IRpcStubBuffer* CALLBACK IRpcStubBuffer_IsIIDSupported_Proxy(
7513 IRpcStubBuffer* This,
7515 void __RPC_STUB IRpcStubBuffer_IsIIDSupported_Stub(
7516 struct IRpcStubBuffer* This,
7517 struct IRpcChannelBuffer* pRpcChannelBuffer,
7518 PRPC_MESSAGE pRpcMessage,
7519 DWORD* pdwStubPhase);
7520 ULONG CALLBACK IRpcStubBuffer_CountRefs_Proxy(
7521 IRpcStubBuffer* This);
7522 void __RPC_STUB IRpcStubBuffer_CountRefs_Stub(
7523 struct IRpcStubBuffer* This,
7524 struct IRpcChannelBuffer* pRpcChannelBuffer,
7525 PRPC_MESSAGE pRpcMessage,
7526 DWORD* pdwStubPhase);
7527 HRESULT CALLBACK IRpcStubBuffer_DebugServerQueryInterface_Proxy(
7528 IRpcStubBuffer* This,
7530 void __RPC_STUB IRpcStubBuffer_DebugServerQueryInterface_Stub(
7531 struct IRpcStubBuffer* This,
7532 struct IRpcChannelBuffer* pRpcChannelBuffer,
7533 PRPC_MESSAGE pRpcMessage,
7534 DWORD* pdwStubPhase);
7535 void CALLBACK IRpcStubBuffer_DebugServerRelease_Proxy(
7536 IRpcStubBuffer* This,
7538 void __RPC_STUB IRpcStubBuffer_DebugServerRelease_Stub(
7539 struct IRpcStubBuffer* This,
7540 struct IRpcChannelBuffer* pRpcChannelBuffer,
7541 PRPC_MESSAGE pRpcMessage,
7542 DWORD* pdwStubPhase);
7544 typedef struct IPSFactoryBuffer IPSFactoryBuffer;
7545 typedef IPSFactoryBuffer *LPPSFACTORYBUFFER;
7547 /*****************************************************************************
7548 * IPSFactoryBuffer interface
7550 DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7551 #if defined(__cplusplus) && !defined(CINTERFACE)
7552 struct IPSFactoryBuffer: IUnknown {
7554 virtual HRESULT STDMETHODCALLTYPE CreateProxy(
7555 IUnknown* pUnkOuter,
7557 IRpcProxyBuffer** ppProxy,
7560 virtual HRESULT STDMETHODCALLTYPE CreateStub(
7562 IUnknown* pUnkServer,
7563 IRpcStubBuffer** ppStub) = 0;
7565 } ICOM_COM_INTERFACE_ATTRIBUTE;
7567 typedef struct IPSFactoryBufferVtbl IPSFactoryBufferVtbl;
7568 struct IPSFactoryBuffer {
7569 const IPSFactoryBufferVtbl* lpVtbl;
7571 struct IPSFactoryBufferVtbl {
7572 ICOM_MSVTABLE_COMPAT_FIELDS
7574 /*** IUnknown methods ***/
7575 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7576 IPSFactoryBuffer* This,
7580 ULONG (STDMETHODCALLTYPE *AddRef)(
7581 IPSFactoryBuffer* This);
7583 ULONG (STDMETHODCALLTYPE *Release)(
7584 IPSFactoryBuffer* This);
7586 /*** IPSFactoryBuffer methods ***/
7587 HRESULT (STDMETHODCALLTYPE *CreateProxy)(
7588 IPSFactoryBuffer* This,
7589 IUnknown* pUnkOuter,
7591 IRpcProxyBuffer** ppProxy,
7594 HRESULT (STDMETHODCALLTYPE *CreateStub)(
7595 IPSFactoryBuffer* This,
7597 IUnknown* pUnkServer,
7598 IRpcStubBuffer** ppStub);
7602 #define IPSFactoryBuffer_IMETHODS \
7603 /*** IUnknown methods ***/ \
7604 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
7605 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
7606 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
7607 /*** IPSFactoryBuffer methods ***/ \
7608 HRESULT (STDMETHODCALLTYPE *CreateProxy)(INTERFACE *This, IUnknown* pUnkOuter, REFIID riid, IRpcProxyBuffer** ppProxy, void** ppv); \
7609 HRESULT (STDMETHODCALLTYPE *CreateStub)(INTERFACE *This, REFIID riid, IUnknown* pUnkServer, IRpcStubBuffer** ppStub);
7611 /*** IUnknown methods ***/
7612 #define IPSFactoryBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7613 #define IPSFactoryBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7614 #define IPSFactoryBuffer_Release(p) (p)->lpVtbl->Release(p)
7615 /*** IPSFactoryBuffer methods ***/
7616 #define IPSFactoryBuffer_CreateProxy(p,a,b,c,d) (p)->lpVtbl->CreateProxy(p,a,b,c,d)
7617 #define IPSFactoryBuffer_CreateStub(p,a,b,c) (p)->lpVtbl->CreateStub(p,a,b,c)
7621 HRESULT CALLBACK IPSFactoryBuffer_CreateProxy_Proxy(
7622 IPSFactoryBuffer* This,
7623 IUnknown* pUnkOuter,
7625 IRpcProxyBuffer** ppProxy,
7627 void __RPC_STUB IPSFactoryBuffer_CreateProxy_Stub(
7628 struct IRpcStubBuffer* This,
7629 struct IRpcChannelBuffer* pRpcChannelBuffer,
7630 PRPC_MESSAGE pRpcMessage,
7631 DWORD* pdwStubPhase);
7632 HRESULT CALLBACK IPSFactoryBuffer_CreateStub_Proxy(
7633 IPSFactoryBuffer* This,
7635 IUnknown* pUnkServer,
7636 IRpcStubBuffer** ppStub);
7637 void __RPC_STUB IPSFactoryBuffer_CreateStub_Stub(
7638 struct IRpcStubBuffer* This,
7639 struct IRpcChannelBuffer* pRpcChannelBuffer,
7640 PRPC_MESSAGE pRpcMessage,
7641 DWORD* pdwStubPhase);
7643 typedef struct IChannelHook IChannelHook;
7644 typedef IChannelHook *LPCHANNELHOOK;
7646 typedef struct SChannelHookCallInfo {
7653 } SChannelHookCallInfo;
7655 /*****************************************************************************
7656 * IChannelHook interface
7658 DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
7659 #if defined(__cplusplus) && !defined(CINTERFACE)
7660 struct IChannelHook: IUnknown {
7662 virtual void STDMETHODCALLTYPE ClientGetSize(
7665 ULONG* pDataSize) = 0;
7667 virtual void STDMETHODCALLTYPE ClientFillBuffer(
7671 void* pDataBuffer) = 0;
7673 virtual void STDMETHODCALLTYPE ClientNotify(
7679 HRESULT hrFault) = 0;
7681 virtual void STDMETHODCALLTYPE ServerNotify(
7686 DWORD lDataRep) = 0;
7688 virtual void STDMETHODCALLTYPE ServerGetSize(
7692 ULONG* pDataSize) = 0;
7694 virtual void STDMETHODCALLTYPE ServerFillBuffer(
7699 HRESULT hrFault) = 0;
7701 } ICOM_COM_INTERFACE_ATTRIBUTE;
7703 typedef struct IChannelHookVtbl IChannelHookVtbl;
7704 struct IChannelHook {
7705 const IChannelHookVtbl* lpVtbl;
7707 struct IChannelHookVtbl {
7708 ICOM_MSVTABLE_COMPAT_FIELDS
7710 /*** IUnknown methods ***/
7711 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7716 ULONG (STDMETHODCALLTYPE *AddRef)(
7717 IChannelHook* This);
7719 ULONG (STDMETHODCALLTYPE *Release)(
7720 IChannelHook* This);
7722 /*** IChannelHook methods ***/
7723 void (STDMETHODCALLTYPE *ClientGetSize)(
7729 void (STDMETHODCALLTYPE *ClientFillBuffer)(
7736 void (STDMETHODCALLTYPE *ClientNotify)(
7745 void (STDMETHODCALLTYPE *ServerNotify)(
7753 void (STDMETHODCALLTYPE *ServerGetSize)(
7760 void (STDMETHODCALLTYPE *ServerFillBuffer)(
7770 #define IChannelHook_IMETHODS \
7771 /*** IUnknown methods ***/ \
7772 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
7773 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
7774 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
7775 /*** IChannelHook methods ***/ \
7776 void (STDMETHODCALLTYPE *ClientGetSize)(INTERFACE *This, REFGUID uExtent, REFIID riid, ULONG* pDataSize); \
7777 void (STDMETHODCALLTYPE *ClientFillBuffer)(INTERFACE *This, REFGUID uExtent, REFIID riid, ULONG* pDataSize, void* pDataBuffer); \
7778 void (STDMETHODCALLTYPE *ClientNotify)(INTERFACE *This, REFGUID uExtent, REFIID riid, ULONG cbDataSize, void* pDataBuffer, DWORD lDataRep, HRESULT hrFault); \
7779 void (STDMETHODCALLTYPE *ServerNotify)(INTERFACE *This, REFGUID uExtent, REFIID riid, ULONG cbDataSize, void* pDataBuffer, DWORD lDataRep); \
7780 void (STDMETHODCALLTYPE *ServerGetSize)(INTERFACE *This, REFGUID uExtent, REFIID riid, HRESULT hrFault, ULONG* pDataSize); \
7781 void (STDMETHODCALLTYPE *ServerFillBuffer)(INTERFACE *This, REFGUID uExtent, REFIID riid, ULONG* pDataSize, void* pDataBuffer, HRESULT hrFault);
7783 /*** IUnknown methods ***/
7784 #define IChannelHook_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7785 #define IChannelHook_AddRef(p) (p)->lpVtbl->AddRef(p)
7786 #define IChannelHook_Release(p) (p)->lpVtbl->Release(p)
7787 /*** IChannelHook methods ***/
7788 #define IChannelHook_ClientGetSize(p,a,b,c) (p)->lpVtbl->ClientGetSize(p,a,b,c)
7789 #define IChannelHook_ClientFillBuffer(p,a,b,c,d) (p)->lpVtbl->ClientFillBuffer(p,a,b,c,d)
7790 #define IChannelHook_ClientNotify(p,a,b,c,d,e,f) (p)->lpVtbl->ClientNotify(p,a,b,c,d,e,f)
7791 #define IChannelHook_ServerNotify(p,a,b,c,d,e) (p)->lpVtbl->ServerNotify(p,a,b,c,d,e)
7792 #define IChannelHook_ServerGetSize(p,a,b,c,d) (p)->lpVtbl->ServerGetSize(p,a,b,c,d)
7793 #define IChannelHook_ServerFillBuffer(p,a,b,c,d,e) (p)->lpVtbl->ServerFillBuffer(p,a,b,c,d,e)
7797 void CALLBACK IChannelHook_ClientGetSize_Proxy(
7802 void __RPC_STUB IChannelHook_ClientGetSize_Stub(
7803 struct IRpcStubBuffer* This,
7804 struct IRpcChannelBuffer* pRpcChannelBuffer,
7805 PRPC_MESSAGE pRpcMessage,
7806 DWORD* pdwStubPhase);
7807 void CALLBACK IChannelHook_ClientFillBuffer_Proxy(
7813 void __RPC_STUB IChannelHook_ClientFillBuffer_Stub(
7814 struct IRpcStubBuffer* This,
7815 struct IRpcChannelBuffer* pRpcChannelBuffer,
7816 PRPC_MESSAGE pRpcMessage,
7817 DWORD* pdwStubPhase);
7818 void CALLBACK IChannelHook_ClientNotify_Proxy(
7826 void __RPC_STUB IChannelHook_ClientNotify_Stub(
7827 struct IRpcStubBuffer* This,
7828 struct IRpcChannelBuffer* pRpcChannelBuffer,
7829 PRPC_MESSAGE pRpcMessage,
7830 DWORD* pdwStubPhase);
7831 void CALLBACK IChannelHook_ServerNotify_Proxy(
7838 void __RPC_STUB IChannelHook_ServerNotify_Stub(
7839 struct IRpcStubBuffer* This,
7840 struct IRpcChannelBuffer* pRpcChannelBuffer,
7841 PRPC_MESSAGE pRpcMessage,
7842 DWORD* pdwStubPhase);
7843 void CALLBACK IChannelHook_ServerGetSize_Proxy(
7849 void __RPC_STUB IChannelHook_ServerGetSize_Stub(
7850 struct IRpcStubBuffer* This,
7851 struct IRpcChannelBuffer* pRpcChannelBuffer,
7852 PRPC_MESSAGE pRpcMessage,
7853 DWORD* pdwStubPhase);
7854 void CALLBACK IChannelHook_ServerFillBuffer_Proxy(
7861 void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
7862 struct IRpcStubBuffer* This,
7863 struct IRpcChannelBuffer* pRpcChannelBuffer,
7864 PRPC_MESSAGE pRpcMessage,
7865 DWORD* pdwStubPhase);
7867 typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
7868 typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
7869 typedef struct IPropertyStorage IPropertyStorage;
7870 typedef IPropertyStorage *LPPROPERTYSTORAGE;
7872 extern const FMTID FMTID_SummaryInformation;
7874 extern const FMTID FMTID_DocSummaryInformation;
7876 extern const FMTID FMTID_UserDefinedProperties;
7878 #define PROPSETFLAG_DEFAULT (0)
7880 #define PROPSETFLAG_NONSIMPLE (1)
7882 #define PROPSETFLAG_ANSI (2)
7884 #define PROPSETFLAG_UNBUFFERED (4)
7886 typedef struct tagPROPVARIANT PROPVARIANT;
7888 typedef struct tagCAUB {
7890 unsigned char *pElems;
7893 typedef struct tagCAI {
7898 typedef struct tagCAUI {
7903 typedef struct tagCAL {
7908 typedef struct tagCAUL {
7913 typedef struct tagCAFLT {
7918 typedef struct tagCADBL {
7923 typedef struct tagCACY {
7928 typedef struct tagCADATE {
7933 typedef struct tagCABSTR {
7938 typedef struct tagCABSTRBLOB {
7943 typedef struct tagCABOOL {
7945 VARIANT_BOOL *pElems;
7948 typedef struct tagCASCODE {
7953 typedef struct tagCAPROPVARIANT {
7955 PROPVARIANT *pElems;
7958 typedef struct tagCAH {
7960 LARGE_INTEGER *pElems;
7963 typedef struct tagCAUH {
7965 ULARGE_INTEGER *pElems;
7968 typedef struct tagCALPSTR {
7973 typedef struct tagCALPWSTR {
7978 typedef struct tagCAFILETIME {
7983 typedef struct tagCACLIPDATA {
7988 typedef struct tagCACLSID {
7993 struct tagPROPVARIANT {
8002 VARIANT_BOOL boolVal;
8008 ULARGE_INTEGER uhVal;
8015 CLIPDATA *pclipdata;
8019 BSTRBLOB bstrblobVal;
8035 CAFILETIME cafiletime;
8037 CACLIPDATA caclipdata;
8039 CABSTRBLOB cabstrblob;
8042 CAPROPVARIANT capropvar;
8046 typedef struct tagPROPVARIANT *LPPROPVARIANT;
8048 #define PRSPEC_INVALID (0x7fffffff)
8050 #define PRSPEC_LPWSTR (0)
8052 #define PRSPEC_PROPID (1)
8054 typedef struct tagPROPSPEC {
8062 typedef struct tagSTATPROPSTG {
8063 LPOLESTR lpwstrName;
8068 typedef struct tagSTATPROPSETSTG {
8078 /*****************************************************************************
8079 * IPropertyStorage interface
8081 DEFINE_GUID(IID_IPropertyStorage, 0x00000138, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8082 #if defined(__cplusplus) && !defined(CINTERFACE)
8083 struct IPropertyStorage: IUnknown {
8085 virtual HRESULT STDMETHODCALLTYPE ReadMultiple(
8087 const PROPSPEC rgpspec[],
8088 PROPVARIANT rgpropvar[]) = 0;
8090 virtual HRESULT STDMETHODCALLTYPE WriteMultiple(
8092 const PROPSPEC rgpspec[],
8093 const PROPVARIANT rgpropvar[],
8094 PROPID propidNameFirst) = 0;
8096 virtual HRESULT STDMETHODCALLTYPE DeleteMultiple(
8098 const PROPSPEC rgpspec[]) = 0;
8100 virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames(
8102 const PROPID rgpropid[],
8103 LPOLESTR rglpwstrName[]) = 0;
8105 virtual HRESULT STDMETHODCALLTYPE WritePropertyNames(
8107 const PROPID rgpropid[],
8108 const LPOLESTR rglpwstrName[]) = 0;
8110 virtual HRESULT STDMETHODCALLTYPE DeletePropertyNames(
8112 const PROPID rgpropid[]) = 0;
8114 virtual HRESULT STDMETHODCALLTYPE Commit(
8115 DWORD grfCommitFlags) = 0;
8117 virtual HRESULT STDMETHODCALLTYPE Revert(
8120 virtual HRESULT STDMETHODCALLTYPE Enum(
8121 IEnumSTATPROPSTG** ppenum) = 0;
8123 virtual HRESULT STDMETHODCALLTYPE SetTimes(
8124 const FILETIME* pctime,
8125 const FILETIME* patime,
8126 const FILETIME* pmtime) = 0;
8128 virtual HRESULT STDMETHODCALLTYPE SetClass(
8129 REFCLSID clsid) = 0;
8131 virtual HRESULT STDMETHODCALLTYPE Stat(
8132 STATPROPSETSTG* statpsstg) = 0;
8134 } ICOM_COM_INTERFACE_ATTRIBUTE;
8136 typedef struct IPropertyStorageVtbl IPropertyStorageVtbl;
8137 struct IPropertyStorage {
8138 const IPropertyStorageVtbl* lpVtbl;
8140 struct IPropertyStorageVtbl {
8141 ICOM_MSVTABLE_COMPAT_FIELDS
8143 /*** IUnknown methods ***/
8144 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8145 IPropertyStorage* This,
8149 ULONG (STDMETHODCALLTYPE *AddRef)(
8150 IPropertyStorage* This);
8152 ULONG (STDMETHODCALLTYPE *Release)(
8153 IPropertyStorage* This);
8155 /*** IPropertyStorage methods ***/
8156 HRESULT (STDMETHODCALLTYPE *ReadMultiple)(
8157 IPropertyStorage* This,
8159 const PROPSPEC rgpspec[],
8160 PROPVARIANT rgpropvar[]);
8162 HRESULT (STDMETHODCALLTYPE *WriteMultiple)(
8163 IPropertyStorage* This,
8165 const PROPSPEC rgpspec[],
8166 const PROPVARIANT rgpropvar[],
8167 PROPID propidNameFirst);
8169 HRESULT (STDMETHODCALLTYPE *DeleteMultiple)(
8170 IPropertyStorage* This,
8172 const PROPSPEC rgpspec[]);
8174 HRESULT (STDMETHODCALLTYPE *ReadPropertyNames)(
8175 IPropertyStorage* This,
8177 const PROPID rgpropid[],
8178 LPOLESTR rglpwstrName[]);
8180 HRESULT (STDMETHODCALLTYPE *WritePropertyNames)(
8181 IPropertyStorage* This,
8183 const PROPID rgpropid[],
8184 const LPOLESTR rglpwstrName[]);
8186 HRESULT (STDMETHODCALLTYPE *DeletePropertyNames)(
8187 IPropertyStorage* This,
8189 const PROPID rgpropid[]);
8191 HRESULT (STDMETHODCALLTYPE *Commit)(
8192 IPropertyStorage* This,
8193 DWORD grfCommitFlags);
8195 HRESULT (STDMETHODCALLTYPE *Revert)(
8196 IPropertyStorage* This);
8198 HRESULT (STDMETHODCALLTYPE *Enum)(
8199 IPropertyStorage* This,
8200 IEnumSTATPROPSTG** ppenum);
8202 HRESULT (STDMETHODCALLTYPE *SetTimes)(
8203 IPropertyStorage* This,
8204 const FILETIME* pctime,
8205 const FILETIME* patime,
8206 const FILETIME* pmtime);
8208 HRESULT (STDMETHODCALLTYPE *SetClass)(
8209 IPropertyStorage* This,
8212 HRESULT (STDMETHODCALLTYPE *Stat)(
8213 IPropertyStorage* This,
8214 STATPROPSETSTG* statpsstg);
8218 #define IPropertyStorage_IMETHODS \
8219 /*** IUnknown methods ***/ \
8220 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
8221 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
8222 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
8223 /*** IPropertyStorage methods ***/ \
8224 HRESULT (STDMETHODCALLTYPE *ReadMultiple)(INTERFACE *This, ULONG cpspec, const PROPSPEC rgpspec[], PROPVARIANT rgpropvar[]); \
8225 HRESULT (STDMETHODCALLTYPE *WriteMultiple)(INTERFACE *This, ULONG cpspec, const PROPSPEC rgpspec[], const PROPVARIANT rgpropvar[], PROPID propidNameFirst); \
8226 HRESULT (STDMETHODCALLTYPE *DeleteMultiple)(INTERFACE *This, ULONG cpspec, const PROPSPEC rgpspec[]); \
8227 HRESULT (STDMETHODCALLTYPE *ReadPropertyNames)(INTERFACE *This, ULONG cpropid, const PROPID rgpropid[], LPOLESTR rglpwstrName[]); \
8228 HRESULT (STDMETHODCALLTYPE *WritePropertyNames)(INTERFACE *This, ULONG cpropid, const PROPID rgpropid[], const LPOLESTR rglpwstrName[]); \
8229 HRESULT (STDMETHODCALLTYPE *DeletePropertyNames)(INTERFACE *This, ULONG cpropid, const PROPID rgpropid[]); \
8230 HRESULT (STDMETHODCALLTYPE *Commit)(INTERFACE *This, DWORD grfCommitFlags); \
8231 HRESULT (STDMETHODCALLTYPE *Revert)(INTERFACE *This); \
8232 HRESULT (STDMETHODCALLTYPE *Enum)(INTERFACE *This, IEnumSTATPROPSTG** ppenum); \
8233 HRESULT (STDMETHODCALLTYPE *SetTimes)(INTERFACE *This, const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime); \
8234 HRESULT (STDMETHODCALLTYPE *SetClass)(INTERFACE *This, REFCLSID clsid); \
8235 HRESULT (STDMETHODCALLTYPE *Stat)(INTERFACE *This, STATPROPSETSTG* statpsstg);
8237 /*** IUnknown methods ***/
8238 #define IPropertyStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8239 #define IPropertyStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
8240 #define IPropertyStorage_Release(p) (p)->lpVtbl->Release(p)
8241 /*** IPropertyStorage methods ***/
8242 #define IPropertyStorage_ReadMultiple(p,a,b,c) (p)->lpVtbl->ReadMultiple(p,a,b,c)
8243 #define IPropertyStorage_WriteMultiple(p,a,b,c,d) (p)->lpVtbl->WriteMultiple(p,a,b,c,d)
8244 #define IPropertyStorage_DeleteMultiple(p,a,b) (p)->lpVtbl->DeleteMultiple(p,a,b)
8245 #define IPropertyStorage_ReadPropertyNames(p,a,b,c) (p)->lpVtbl->ReadPropertyNames(p,a,b,c)
8246 #define IPropertyStorage_WritePropertyNames(p,a,b,c) (p)->lpVtbl->WritePropertyNames(p,a,b,c)
8247 #define IPropertyStorage_DeletePropertyNames(p,a,b) (p)->lpVtbl->DeletePropertyNames(p,a,b)
8248 #define IPropertyStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
8249 #define IPropertyStorage_Revert(p) (p)->lpVtbl->Revert(p)
8250 #define IPropertyStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
8251 #define IPropertyStorage_SetTimes(p,a,b,c) (p)->lpVtbl->SetTimes(p,a,b,c)
8252 #define IPropertyStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
8253 #define IPropertyStorage_Stat(p,a) (p)->lpVtbl->Stat(p,a)
8257 HRESULT CALLBACK IPropertyStorage_ReadMultiple_Proxy(
8258 IPropertyStorage* This,
8260 const PROPSPEC rgpspec[],
8261 PROPVARIANT rgpropvar[]);
8262 void __RPC_STUB IPropertyStorage_ReadMultiple_Stub(
8263 struct IRpcStubBuffer* This,
8264 struct IRpcChannelBuffer* pRpcChannelBuffer,
8265 PRPC_MESSAGE pRpcMessage,
8266 DWORD* pdwStubPhase);
8267 HRESULT CALLBACK IPropertyStorage_WriteMultiple_Proxy(
8268 IPropertyStorage* This,
8270 const PROPSPEC rgpspec[],
8271 const PROPVARIANT rgpropvar[],
8272 PROPID propidNameFirst);
8273 void __RPC_STUB IPropertyStorage_WriteMultiple_Stub(
8274 struct IRpcStubBuffer* This,
8275 struct IRpcChannelBuffer* pRpcChannelBuffer,
8276 PRPC_MESSAGE pRpcMessage,
8277 DWORD* pdwStubPhase);
8278 HRESULT CALLBACK IPropertyStorage_DeleteMultiple_Proxy(
8279 IPropertyStorage* This,
8281 const PROPSPEC rgpspec[]);
8282 void __RPC_STUB IPropertyStorage_DeleteMultiple_Stub(
8283 struct IRpcStubBuffer* This,
8284 struct IRpcChannelBuffer* pRpcChannelBuffer,
8285 PRPC_MESSAGE pRpcMessage,
8286 DWORD* pdwStubPhase);
8287 HRESULT CALLBACK IPropertyStorage_ReadPropertyNames_Proxy(
8288 IPropertyStorage* This,
8290 const PROPID rgpropid[],
8291 LPOLESTR rglpwstrName[]);
8292 void __RPC_STUB IPropertyStorage_ReadPropertyNames_Stub(
8293 struct IRpcStubBuffer* This,
8294 struct IRpcChannelBuffer* pRpcChannelBuffer,
8295 PRPC_MESSAGE pRpcMessage,
8296 DWORD* pdwStubPhase);
8297 HRESULT CALLBACK IPropertyStorage_WritePropertyNames_Proxy(
8298 IPropertyStorage* This,
8300 const PROPID rgpropid[],
8301 const LPOLESTR rglpwstrName[]);
8302 void __RPC_STUB IPropertyStorage_WritePropertyNames_Stub(
8303 struct IRpcStubBuffer* This,
8304 struct IRpcChannelBuffer* pRpcChannelBuffer,
8305 PRPC_MESSAGE pRpcMessage,
8306 DWORD* pdwStubPhase);
8307 HRESULT CALLBACK IPropertyStorage_DeletePropertyNames_Proxy(
8308 IPropertyStorage* This,
8310 const PROPID rgpropid[]);
8311 void __RPC_STUB IPropertyStorage_DeletePropertyNames_Stub(
8312 struct IRpcStubBuffer* This,
8313 struct IRpcChannelBuffer* pRpcChannelBuffer,
8314 PRPC_MESSAGE pRpcMessage,
8315 DWORD* pdwStubPhase);
8316 HRESULT CALLBACK IPropertyStorage_Commit_Proxy(
8317 IPropertyStorage* This,
8318 DWORD grfCommitFlags);
8319 void __RPC_STUB IPropertyStorage_Commit_Stub(
8320 struct IRpcStubBuffer* This,
8321 struct IRpcChannelBuffer* pRpcChannelBuffer,
8322 PRPC_MESSAGE pRpcMessage,
8323 DWORD* pdwStubPhase);
8324 HRESULT CALLBACK IPropertyStorage_Revert_Proxy(
8325 IPropertyStorage* This);
8326 void __RPC_STUB IPropertyStorage_Revert_Stub(
8327 struct IRpcStubBuffer* This,
8328 struct IRpcChannelBuffer* pRpcChannelBuffer,
8329 PRPC_MESSAGE pRpcMessage,
8330 DWORD* pdwStubPhase);
8331 HRESULT CALLBACK IPropertyStorage_Enum_Proxy(
8332 IPropertyStorage* This,
8333 IEnumSTATPROPSTG** ppenum);
8334 void __RPC_STUB IPropertyStorage_Enum_Stub(
8335 struct IRpcStubBuffer* This,
8336 struct IRpcChannelBuffer* pRpcChannelBuffer,
8337 PRPC_MESSAGE pRpcMessage,
8338 DWORD* pdwStubPhase);
8339 HRESULT CALLBACK IPropertyStorage_SetTimes_Proxy(
8340 IPropertyStorage* This,
8341 const FILETIME* pctime,
8342 const FILETIME* patime,
8343 const FILETIME* pmtime);
8344 void __RPC_STUB IPropertyStorage_SetTimes_Stub(
8345 struct IRpcStubBuffer* This,
8346 struct IRpcChannelBuffer* pRpcChannelBuffer,
8347 PRPC_MESSAGE pRpcMessage,
8348 DWORD* pdwStubPhase);
8349 HRESULT CALLBACK IPropertyStorage_SetClass_Proxy(
8350 IPropertyStorage* This,
8352 void __RPC_STUB IPropertyStorage_SetClass_Stub(
8353 struct IRpcStubBuffer* This,
8354 struct IRpcChannelBuffer* pRpcChannelBuffer,
8355 PRPC_MESSAGE pRpcMessage,
8356 DWORD* pdwStubPhase);
8357 HRESULT CALLBACK IPropertyStorage_Stat_Proxy(
8358 IPropertyStorage* This,
8359 STATPROPSETSTG* statpsstg);
8360 void __RPC_STUB IPropertyStorage_Stat_Stub(
8361 struct IRpcStubBuffer* This,
8362 struct IRpcChannelBuffer* pRpcChannelBuffer,
8363 PRPC_MESSAGE pRpcMessage,
8364 DWORD* pdwStubPhase);
8366 typedef struct IPropertySetStorage IPropertySetStorage;
8367 typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
8369 /*****************************************************************************
8370 * IPropertySetStorage interface
8372 DEFINE_GUID(IID_IPropertySetStorage, 0x0000013a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8373 #if defined(__cplusplus) && !defined(CINTERFACE)
8374 struct IPropertySetStorage: IUnknown {
8376 virtual HRESULT STDMETHODCALLTYPE Create(
8378 const CLSID* pclsid,
8381 IPropertyStorage** ppprstg) = 0;
8383 virtual HRESULT STDMETHODCALLTYPE Open(
8386 IPropertyStorage** ppprstg) = 0;
8388 virtual HRESULT STDMETHODCALLTYPE Delete(
8389 REFFMTID rfmtid) = 0;
8391 virtual HRESULT STDMETHODCALLTYPE Enum(
8392 IEnumSTATPROPSETSTG** ppenum) = 0;
8394 } ICOM_COM_INTERFACE_ATTRIBUTE;
8396 typedef struct IPropertySetStorageVtbl IPropertySetStorageVtbl;
8397 struct IPropertySetStorage {
8398 const IPropertySetStorageVtbl* lpVtbl;
8400 struct IPropertySetStorageVtbl {
8401 ICOM_MSVTABLE_COMPAT_FIELDS
8403 /*** IUnknown methods ***/
8404 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8405 IPropertySetStorage* This,
8409 ULONG (STDMETHODCALLTYPE *AddRef)(
8410 IPropertySetStorage* This);
8412 ULONG (STDMETHODCALLTYPE *Release)(
8413 IPropertySetStorage* This);
8415 /*** IPropertySetStorage methods ***/
8416 HRESULT (STDMETHODCALLTYPE *Create)(
8417 IPropertySetStorage* This,
8419 const CLSID* pclsid,
8422 IPropertyStorage** ppprstg);
8424 HRESULT (STDMETHODCALLTYPE *Open)(
8425 IPropertySetStorage* This,
8428 IPropertyStorage** ppprstg);
8430 HRESULT (STDMETHODCALLTYPE *Delete)(
8431 IPropertySetStorage* This,
8434 HRESULT (STDMETHODCALLTYPE *Enum)(
8435 IPropertySetStorage* This,
8436 IEnumSTATPROPSETSTG** ppenum);
8440 #define IPropertySetStorage_IMETHODS \
8441 /*** IUnknown methods ***/ \
8442 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
8443 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
8444 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
8445 /*** IPropertySetStorage methods ***/ \
8446 HRESULT (STDMETHODCALLTYPE *Create)(INTERFACE *This, REFFMTID rfmtid, const CLSID* pclsid, DWORD grfFlags, DWORD grfMode, IPropertyStorage** ppprstg); \
8447 HRESULT (STDMETHODCALLTYPE *Open)(INTERFACE *This, REFFMTID rfmtid, DWORD grfMode, IPropertyStorage** ppprstg); \
8448 HRESULT (STDMETHODCALLTYPE *Delete)(INTERFACE *This, REFFMTID rfmtid); \
8449 HRESULT (STDMETHODCALLTYPE *Enum)(INTERFACE *This, IEnumSTATPROPSETSTG** ppenum);
8451 /*** IUnknown methods ***/
8452 #define IPropertySetStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8453 #define IPropertySetStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
8454 #define IPropertySetStorage_Release(p) (p)->lpVtbl->Release(p)
8455 /*** IPropertySetStorage methods ***/
8456 #define IPropertySetStorage_Create(p,a,b,c,d,e) (p)->lpVtbl->Create(p,a,b,c,d,e)
8457 #define IPropertySetStorage_Open(p,a,b,c) (p)->lpVtbl->Open(p,a,b,c)
8458 #define IPropertySetStorage_Delete(p,a) (p)->lpVtbl->Delete(p,a)
8459 #define IPropertySetStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
8463 HRESULT CALLBACK IPropertySetStorage_Create_Proxy(
8464 IPropertySetStorage* This,
8466 const CLSID* pclsid,
8469 IPropertyStorage** ppprstg);
8470 void __RPC_STUB IPropertySetStorage_Create_Stub(
8471 struct IRpcStubBuffer* This,
8472 struct IRpcChannelBuffer* pRpcChannelBuffer,
8473 PRPC_MESSAGE pRpcMessage,
8474 DWORD* pdwStubPhase);
8475 HRESULT CALLBACK IPropertySetStorage_Open_Proxy(
8476 IPropertySetStorage* This,
8479 IPropertyStorage** ppprstg);
8480 void __RPC_STUB IPropertySetStorage_Open_Stub(
8481 struct IRpcStubBuffer* This,
8482 struct IRpcChannelBuffer* pRpcChannelBuffer,
8483 PRPC_MESSAGE pRpcMessage,
8484 DWORD* pdwStubPhase);
8485 HRESULT CALLBACK IPropertySetStorage_Delete_Proxy(
8486 IPropertySetStorage* This,
8488 void __RPC_STUB IPropertySetStorage_Delete_Stub(
8489 struct IRpcStubBuffer* This,
8490 struct IRpcChannelBuffer* pRpcChannelBuffer,
8491 PRPC_MESSAGE pRpcMessage,
8492 DWORD* pdwStubPhase);
8493 HRESULT CALLBACK IPropertySetStorage_Enum_Proxy(
8494 IPropertySetStorage* This,
8495 IEnumSTATPROPSETSTG** ppenum);
8496 void __RPC_STUB IPropertySetStorage_Enum_Stub(
8497 struct IRpcStubBuffer* This,
8498 struct IRpcChannelBuffer* pRpcChannelBuffer,
8499 PRPC_MESSAGE pRpcMessage,
8500 DWORD* pdwStubPhase);
8502 typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
8504 /*****************************************************************************
8505 * IEnumSTATPROPSTG interface
8507 DEFINE_GUID(IID_IEnumSTATPROPSTG, 0x00000139, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8508 #if defined(__cplusplus) && !defined(CINTERFACE)
8509 struct IEnumSTATPROPSTG: IUnknown {
8511 virtual HRESULT STDMETHODCALLTYPE Next(
8514 ULONG* pceltFetched) = 0;
8516 virtual HRESULT STDMETHODCALLTYPE Skip(
8519 virtual HRESULT STDMETHODCALLTYPE Reset(
8522 virtual HRESULT STDMETHODCALLTYPE Clone(
8523 IEnumSTATPROPSTG** ppenum) = 0;
8525 } ICOM_COM_INTERFACE_ATTRIBUTE;
8527 typedef struct IEnumSTATPROPSTGVtbl IEnumSTATPROPSTGVtbl;
8528 struct IEnumSTATPROPSTG {
8529 const IEnumSTATPROPSTGVtbl* lpVtbl;
8531 struct IEnumSTATPROPSTGVtbl {
8532 ICOM_MSVTABLE_COMPAT_FIELDS
8534 /*** IUnknown methods ***/
8535 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8536 IEnumSTATPROPSTG* This,
8540 ULONG (STDMETHODCALLTYPE *AddRef)(
8541 IEnumSTATPROPSTG* This);
8543 ULONG (STDMETHODCALLTYPE *Release)(
8544 IEnumSTATPROPSTG* This);
8546 /*** IEnumSTATPROPSTG methods ***/
8547 HRESULT (STDMETHODCALLTYPE *Next)(
8548 IEnumSTATPROPSTG* This,
8551 ULONG* pceltFetched);
8553 HRESULT (STDMETHODCALLTYPE *Skip)(
8554 IEnumSTATPROPSTG* This,
8557 HRESULT (STDMETHODCALLTYPE *Reset)(
8558 IEnumSTATPROPSTG* This);
8560 HRESULT (STDMETHODCALLTYPE *Clone)(
8561 IEnumSTATPROPSTG* This,
8562 IEnumSTATPROPSTG** ppenum);
8566 #define IEnumSTATPROPSTG_IMETHODS \
8567 /*** IUnknown methods ***/ \
8568 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
8569 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
8570 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
8571 /*** IEnumSTATPROPSTG methods ***/ \
8572 HRESULT (STDMETHODCALLTYPE *Next)(INTERFACE *This, ULONG celt, STATPROPSTG* rgelt, ULONG* pceltFetched); \
8573 HRESULT (STDMETHODCALLTYPE *Skip)(INTERFACE *This, ULONG celt); \
8574 HRESULT (STDMETHODCALLTYPE *Reset)(INTERFACE *This); \
8575 HRESULT (STDMETHODCALLTYPE *Clone)(INTERFACE *This, IEnumSTATPROPSTG** ppenum);
8577 /*** IUnknown methods ***/
8578 #define IEnumSTATPROPSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8579 #define IEnumSTATPROPSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
8580 #define IEnumSTATPROPSTG_Release(p) (p)->lpVtbl->Release(p)
8581 /*** IEnumSTATPROPSTG methods ***/
8582 #define IEnumSTATPROPSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
8583 #define IEnumSTATPROPSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
8584 #define IEnumSTATPROPSTG_Reset(p) (p)->lpVtbl->Reset(p)
8585 #define IEnumSTATPROPSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
8589 HRESULT CALLBACK IEnumSTATPROPSTG_RemoteNext_Proxy(
8590 IEnumSTATPROPSTG* This,
8593 ULONG* pceltFetched);
8594 void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(
8595 struct IRpcStubBuffer* This,
8596 struct IRpcChannelBuffer* pRpcChannelBuffer,
8597 PRPC_MESSAGE pRpcMessage,
8598 DWORD* pdwStubPhase);
8599 HRESULT CALLBACK IEnumSTATPROPSTG_Next_Proxy(
8600 IEnumSTATPROPSTG* This,
8603 ULONG* pceltFetched);
8604 HRESULT __RPC_STUB IEnumSTATPROPSTG_Next_Stub(
8605 IEnumSTATPROPSTG* This,
8608 ULONG* pceltFetched);
8609 HRESULT CALLBACK IEnumSTATPROPSTG_Skip_Proxy(
8610 IEnumSTATPROPSTG* This,
8612 void __RPC_STUB IEnumSTATPROPSTG_Skip_Stub(
8613 struct IRpcStubBuffer* This,
8614 struct IRpcChannelBuffer* pRpcChannelBuffer,
8615 PRPC_MESSAGE pRpcMessage,
8616 DWORD* pdwStubPhase);
8617 HRESULT CALLBACK IEnumSTATPROPSTG_Reset_Proxy(
8618 IEnumSTATPROPSTG* This);
8619 void __RPC_STUB IEnumSTATPROPSTG_Reset_Stub(
8620 struct IRpcStubBuffer* This,
8621 struct IRpcChannelBuffer* pRpcChannelBuffer,
8622 PRPC_MESSAGE pRpcMessage,
8623 DWORD* pdwStubPhase);
8624 HRESULT CALLBACK IEnumSTATPROPSTG_Clone_Proxy(
8625 IEnumSTATPROPSTG* This,
8626 IEnumSTATPROPSTG** ppenum);
8627 void __RPC_STUB IEnumSTATPROPSTG_Clone_Stub(
8628 struct IRpcStubBuffer* This,
8629 struct IRpcChannelBuffer* pRpcChannelBuffer,
8630 PRPC_MESSAGE pRpcMessage,
8631 DWORD* pdwStubPhase);
8633 typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
8635 /*****************************************************************************
8636 * IEnumSTATPROPSETSTG interface
8638 DEFINE_GUID(IID_IEnumSTATPROPSETSTG, 0x0000013b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8639 #if defined(__cplusplus) && !defined(CINTERFACE)
8640 struct IEnumSTATPROPSETSTG: IUnknown {
8642 virtual HRESULT STDMETHODCALLTYPE Next(
8644 STATPROPSETSTG* rgelt,
8645 ULONG* pceltFetched) = 0;
8647 virtual HRESULT STDMETHODCALLTYPE Skip(
8650 virtual HRESULT STDMETHODCALLTYPE Reset(
8653 virtual HRESULT STDMETHODCALLTYPE Clone(
8654 IEnumSTATPROPSETSTG** ppenum) = 0;
8656 } ICOM_COM_INTERFACE_ATTRIBUTE;
8658 typedef struct IEnumSTATPROPSETSTGVtbl IEnumSTATPROPSETSTGVtbl;
8659 struct IEnumSTATPROPSETSTG {
8660 const IEnumSTATPROPSETSTGVtbl* lpVtbl;
8662 struct IEnumSTATPROPSETSTGVtbl {
8663 ICOM_MSVTABLE_COMPAT_FIELDS
8665 /*** IUnknown methods ***/
8666 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8667 IEnumSTATPROPSETSTG* This,
8671 ULONG (STDMETHODCALLTYPE *AddRef)(
8672 IEnumSTATPROPSETSTG* This);
8674 ULONG (STDMETHODCALLTYPE *Release)(
8675 IEnumSTATPROPSETSTG* This);
8677 /*** IEnumSTATPROPSETSTG methods ***/
8678 HRESULT (STDMETHODCALLTYPE *Next)(
8679 IEnumSTATPROPSETSTG* This,
8681 STATPROPSETSTG* rgelt,
8682 ULONG* pceltFetched);
8684 HRESULT (STDMETHODCALLTYPE *Skip)(
8685 IEnumSTATPROPSETSTG* This,
8688 HRESULT (STDMETHODCALLTYPE *Reset)(
8689 IEnumSTATPROPSETSTG* This);
8691 HRESULT (STDMETHODCALLTYPE *Clone)(
8692 IEnumSTATPROPSETSTG* This,
8693 IEnumSTATPROPSETSTG** ppenum);
8697 #define IEnumSTATPROPSETSTG_IMETHODS \
8698 /*** IUnknown methods ***/ \
8699 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
8700 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
8701 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
8702 /*** IEnumSTATPROPSETSTG methods ***/ \
8703 HRESULT (STDMETHODCALLTYPE *Next)(INTERFACE *This, ULONG celt, STATPROPSETSTG* rgelt, ULONG* pceltFetched); \
8704 HRESULT (STDMETHODCALLTYPE *Skip)(INTERFACE *This, ULONG celt); \
8705 HRESULT (STDMETHODCALLTYPE *Reset)(INTERFACE *This); \
8706 HRESULT (STDMETHODCALLTYPE *Clone)(INTERFACE *This, IEnumSTATPROPSETSTG** ppenum);
8708 /*** IUnknown methods ***/
8709 #define IEnumSTATPROPSETSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8710 #define IEnumSTATPROPSETSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
8711 #define IEnumSTATPROPSETSTG_Release(p) (p)->lpVtbl->Release(p)
8712 /*** IEnumSTATPROPSETSTG methods ***/
8713 #define IEnumSTATPROPSETSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
8714 #define IEnumSTATPROPSETSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
8715 #define IEnumSTATPROPSETSTG_Reset(p) (p)->lpVtbl->Reset(p)
8716 #define IEnumSTATPROPSETSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
8720 HRESULT CALLBACK IEnumSTATPROPSETSTG_RemoteNext_Proxy(
8721 IEnumSTATPROPSETSTG* This,
8723 STATPROPSETSTG* rgelt,
8724 ULONG* pceltFetched);
8725 void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(
8726 struct IRpcStubBuffer* This,
8727 struct IRpcChannelBuffer* pRpcChannelBuffer,
8728 PRPC_MESSAGE pRpcMessage,
8729 DWORD* pdwStubPhase);
8730 HRESULT CALLBACK IEnumSTATPROPSETSTG_Next_Proxy(
8731 IEnumSTATPROPSETSTG* This,
8733 STATPROPSETSTG* rgelt,
8734 ULONG* pceltFetched);
8735 HRESULT __RPC_STUB IEnumSTATPROPSETSTG_Next_Stub(
8736 IEnumSTATPROPSETSTG* This,
8738 STATPROPSETSTG* rgelt,
8739 ULONG* pceltFetched);
8740 HRESULT CALLBACK IEnumSTATPROPSETSTG_Skip_Proxy(
8741 IEnumSTATPROPSETSTG* This,
8743 void __RPC_STUB IEnumSTATPROPSETSTG_Skip_Stub(
8744 struct IRpcStubBuffer* This,
8745 struct IRpcChannelBuffer* pRpcChannelBuffer,
8746 PRPC_MESSAGE pRpcMessage,
8747 DWORD* pdwStubPhase);
8748 HRESULT CALLBACK IEnumSTATPROPSETSTG_Reset_Proxy(
8749 IEnumSTATPROPSETSTG* This);
8750 void __RPC_STUB IEnumSTATPROPSETSTG_Reset_Stub(
8751 struct IRpcStubBuffer* This,
8752 struct IRpcChannelBuffer* pRpcChannelBuffer,
8753 PRPC_MESSAGE pRpcMessage,
8754 DWORD* pdwStubPhase);
8755 HRESULT CALLBACK IEnumSTATPROPSETSTG_Clone_Proxy(
8756 IEnumSTATPROPSETSTG* This,
8757 IEnumSTATPROPSETSTG** ppenum);
8758 void __RPC_STUB IEnumSTATPROPSETSTG_Clone_Stub(
8759 struct IRpcStubBuffer* This,
8760 struct IRpcChannelBuffer* pRpcChannelBuffer,
8761 PRPC_MESSAGE pRpcMessage,
8762 DWORD* pdwStubPhase);
8764 typedef struct IClientSecurity IClientSecurity;
8765 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
8768 OLECHAR *pPrincipalName;
8770 } SOLE_AUTHENTICATION_SERVICE;
8772 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
8774 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
8776 EOAC_MUTUAL_AUTH = 0x1,
8777 EOAC_CLOAKING = 0x10,
8778 EOAC_SECURE_REFS = 0x2,
8779 EOAC_ACCESS_CONTROL = 0x4,
8781 } EOLE_AUTHENTICATION_CAPABILITIES;
8783 /*****************************************************************************
8784 * IClientSecurity interface
8786 DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8787 #if defined(__cplusplus) && !defined(CINTERFACE)
8788 struct IClientSecurity: IUnknown {
8790 virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
8794 OLECHAR** pServerPrincName,
8798 DWORD* pCapabilites) = 0;
8800 virtual HRESULT STDMETHODCALLTYPE SetBlanket(
8804 OLECHAR* pServerPrincName,
8808 DWORD Capabilities) = 0;
8810 virtual HRESULT STDMETHODCALLTYPE CopyProxy(
8812 IUnknown** ppCopy) = 0;
8814 } ICOM_COM_INTERFACE_ATTRIBUTE;
8816 typedef struct IClientSecurityVtbl IClientSecurityVtbl;
8817 struct IClientSecurity {
8818 const IClientSecurityVtbl* lpVtbl;
8820 struct IClientSecurityVtbl {
8821 ICOM_MSVTABLE_COMPAT_FIELDS
8823 /*** IUnknown methods ***/
8824 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8825 IClientSecurity* This,
8829 ULONG (STDMETHODCALLTYPE *AddRef)(
8830 IClientSecurity* This);
8832 ULONG (STDMETHODCALLTYPE *Release)(
8833 IClientSecurity* This);
8835 /*** IClientSecurity methods ***/
8836 HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
8837 IClientSecurity* This,
8841 OLECHAR** pServerPrincName,
8845 DWORD* pCapabilites);
8847 HRESULT (STDMETHODCALLTYPE *SetBlanket)(
8848 IClientSecurity* This,
8852 OLECHAR* pServerPrincName,
8856 DWORD Capabilities);
8858 HRESULT (STDMETHODCALLTYPE *CopyProxy)(
8859 IClientSecurity* This,
8865 #define IClientSecurity_IMETHODS \
8866 /*** IUnknown methods ***/ \
8867 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
8868 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
8869 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
8870 /*** IClientSecurity methods ***/ \
8871 HRESULT (STDMETHODCALLTYPE *QueryBlanket)(INTERFACE *This, IUnknown* pProxy, DWORD* pAuthnSvc, DWORD* pAuthzSvc, OLECHAR** pServerPrincName, DWORD* pAuthnLevel, DWORD* pImpLevel, void** pAuthInfo, DWORD* pCapabilites); \
8872 HRESULT (STDMETHODCALLTYPE *SetBlanket)(INTERFACE *This, IUnknown* pProxy, DWORD AuthnSvc, DWORD AuthzSvc, OLECHAR* pServerPrincName, DWORD AuthnLevel, DWORD ImpLevel, void* pAuthInfo, DWORD Capabilities); \
8873 HRESULT (STDMETHODCALLTYPE *CopyProxy)(INTERFACE *This, IUnknown* pProxy, IUnknown** ppCopy);
8875 /*** IUnknown methods ***/
8876 #define IClientSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8877 #define IClientSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
8878 #define IClientSecurity_Release(p) (p)->lpVtbl->Release(p)
8879 /*** IClientSecurity methods ***/
8880 #define IClientSecurity_QueryBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g,h)
8881 #define IClientSecurity_SetBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->SetBlanket(p,a,b,c,d,e,f,g,h)
8882 #define IClientSecurity_CopyProxy(p,a,b) (p)->lpVtbl->CopyProxy(p,a,b)
8886 HRESULT CALLBACK IClientSecurity_QueryBlanket_Proxy(
8887 IClientSecurity* This,
8891 OLECHAR** pServerPrincName,
8895 DWORD* pCapabilites);
8896 void __RPC_STUB IClientSecurity_QueryBlanket_Stub(
8897 struct IRpcStubBuffer* This,
8898 struct IRpcChannelBuffer* pRpcChannelBuffer,
8899 PRPC_MESSAGE pRpcMessage,
8900 DWORD* pdwStubPhase);
8901 HRESULT CALLBACK IClientSecurity_SetBlanket_Proxy(
8902 IClientSecurity* This,
8906 OLECHAR* pServerPrincName,
8910 DWORD Capabilities);
8911 void __RPC_STUB IClientSecurity_SetBlanket_Stub(
8912 struct IRpcStubBuffer* This,
8913 struct IRpcChannelBuffer* pRpcChannelBuffer,
8914 PRPC_MESSAGE pRpcMessage,
8915 DWORD* pdwStubPhase);
8916 HRESULT CALLBACK IClientSecurity_CopyProxy_Proxy(
8917 IClientSecurity* This,
8920 void __RPC_STUB IClientSecurity_CopyProxy_Stub(
8921 struct IRpcStubBuffer* This,
8922 struct IRpcChannelBuffer* pRpcChannelBuffer,
8923 PRPC_MESSAGE pRpcMessage,
8924 DWORD* pdwStubPhase);
8926 typedef struct IServerSecurity IServerSecurity;
8927 /*****************************************************************************
8928 * IServerSecurity interface
8930 DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8931 #if defined(__cplusplus) && !defined(CINTERFACE)
8932 struct IServerSecurity: IUnknown {
8934 virtual HRESULT STDMETHODCALLTYPE QueryBlanket(
8937 OLECHAR** pServerPrincName,
8941 DWORD* pCapabilities) = 0;
8943 virtual HRESULT STDMETHODCALLTYPE ImpersonateClient(
8946 virtual HRESULT STDMETHODCALLTYPE RevertToSelf(
8949 virtual BOOL STDMETHODCALLTYPE IsImpersonating(
8952 } ICOM_COM_INTERFACE_ATTRIBUTE;
8954 typedef struct IServerSecurityVtbl IServerSecurityVtbl;
8955 struct IServerSecurity {
8956 const IServerSecurityVtbl* lpVtbl;
8958 struct IServerSecurityVtbl {
8959 ICOM_MSVTABLE_COMPAT_FIELDS
8961 /*** IUnknown methods ***/
8962 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8963 IServerSecurity* This,
8967 ULONG (STDMETHODCALLTYPE *AddRef)(
8968 IServerSecurity* This);
8970 ULONG (STDMETHODCALLTYPE *Release)(
8971 IServerSecurity* This);
8973 /*** IServerSecurity methods ***/
8974 HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
8975 IServerSecurity* This,
8978 OLECHAR** pServerPrincName,
8982 DWORD* pCapabilities);
8984 HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(
8985 IServerSecurity* This);
8987 HRESULT (STDMETHODCALLTYPE *RevertToSelf)(
8988 IServerSecurity* This);
8990 BOOL (STDMETHODCALLTYPE *IsImpersonating)(
8991 IServerSecurity* This);
8995 #define IServerSecurity_IMETHODS \
8996 /*** IUnknown methods ***/ \
8997 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
8998 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
8999 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
9000 /*** IServerSecurity methods ***/ \
9001 HRESULT (STDMETHODCALLTYPE *QueryBlanket)(INTERFACE *This, DWORD* pAuthnSvc, DWORD* pAuthzSvc, OLECHAR** pServerPrincName, DWORD* pAuthnLevel, DWORD* pImpLevel, void** pPrivs, DWORD* pCapabilities); \
9002 HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(INTERFACE *This); \
9003 HRESULT (STDMETHODCALLTYPE *RevertToSelf)(INTERFACE *This); \
9004 BOOL (STDMETHODCALLTYPE *IsImpersonating)(INTERFACE *This);
9006 /*** IUnknown methods ***/
9007 #define IServerSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
9008 #define IServerSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
9009 #define IServerSecurity_Release(p) (p)->lpVtbl->Release(p)
9010 /*** IServerSecurity methods ***/
9011 #define IServerSecurity_QueryBlanket(p,a,b,c,d,e,f,g) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g)
9012 #define IServerSecurity_ImpersonateClient(p) (p)->lpVtbl->ImpersonateClient(p)
9013 #define IServerSecurity_RevertToSelf(p) (p)->lpVtbl->RevertToSelf(p)
9014 #define IServerSecurity_IsImpersonating(p) (p)->lpVtbl->IsImpersonating(p)
9018 HRESULT CALLBACK IServerSecurity_QueryBlanket_Proxy(
9019 IServerSecurity* This,
9022 OLECHAR** pServerPrincName,
9026 DWORD* pCapabilities);
9027 void __RPC_STUB IServerSecurity_QueryBlanket_Stub(
9028 struct IRpcStubBuffer* This,
9029 struct IRpcChannelBuffer* pRpcChannelBuffer,
9030 PRPC_MESSAGE pRpcMessage,
9031 DWORD* pdwStubPhase);
9032 HRESULT CALLBACK IServerSecurity_ImpersonateClient_Proxy(
9033 IServerSecurity* This);
9034 void __RPC_STUB IServerSecurity_ImpersonateClient_Stub(
9035 struct IRpcStubBuffer* This,
9036 struct IRpcChannelBuffer* pRpcChannelBuffer,
9037 PRPC_MESSAGE pRpcMessage,
9038 DWORD* pdwStubPhase);
9039 HRESULT CALLBACK IServerSecurity_RevertToSelf_Proxy(
9040 IServerSecurity* This);
9041 void __RPC_STUB IServerSecurity_RevertToSelf_Stub(
9042 struct IRpcStubBuffer* This,
9043 struct IRpcChannelBuffer* pRpcChannelBuffer,
9044 PRPC_MESSAGE pRpcMessage,
9045 DWORD* pdwStubPhase);
9046 BOOL CALLBACK IServerSecurity_IsImpersonating_Proxy(
9047 IServerSecurity* This);
9048 void __RPC_STUB IServerSecurity_IsImpersonating_Stub(
9049 struct IRpcStubBuffer* This,
9050 struct IRpcChannelBuffer* pRpcChannelBuffer,
9051 PRPC_MESSAGE pRpcMessage,
9052 DWORD* pdwStubPhase);
9054 typedef struct IAsyncSetup IAsyncSetup;
9055 /*****************************************************************************
9056 * IAsyncSetup interface
9058 DEFINE_GUID(IID_IAsyncSetup, 0x00000024, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9059 #if defined(__cplusplus) && !defined(CINTERFACE)
9060 struct IAsyncSetup: IUnknown {
9062 virtual HRESULT STDMETHODCALLTYPE GetAsyncManager(
9067 IAsyncManager** ppAsyncMgr) = 0;
9069 } ICOM_COM_INTERFACE_ATTRIBUTE;
9071 typedef struct IAsyncSetupVtbl IAsyncSetupVtbl;
9072 struct IAsyncSetup {
9073 const IAsyncSetupVtbl* lpVtbl;
9075 struct IAsyncSetupVtbl {
9076 ICOM_MSVTABLE_COMPAT_FIELDS
9078 /*** IUnknown methods ***/
9079 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9084 ULONG (STDMETHODCALLTYPE *AddRef)(
9087 ULONG (STDMETHODCALLTYPE *Release)(
9090 /*** IAsyncSetup methods ***/
9091 HRESULT (STDMETHODCALLTYPE *GetAsyncManager)(
9097 IAsyncManager** ppAsyncMgr);
9101 #define IAsyncSetup_IMETHODS \
9102 /*** IUnknown methods ***/ \
9103 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
9104 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
9105 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
9106 /*** IAsyncSetup methods ***/ \
9107 HRESULT (STDMETHODCALLTYPE *GetAsyncManager)(INTERFACE *This, REFIID riid, IUnknown* pOuter, DWORD dwFlags, IUnknown** ppInner, IAsyncManager** ppAsyncMgr);
9109 /*** IUnknown methods ***/
9110 #define IAsyncSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
9111 #define IAsyncSetup_AddRef(p) (p)->lpVtbl->AddRef(p)
9112 #define IAsyncSetup_Release(p) (p)->lpVtbl->Release(p)
9113 /*** IAsyncSetup methods ***/
9114 #define IAsyncSetup_GetAsyncManager(p,a,b,c,d,e) (p)->lpVtbl->GetAsyncManager(p,a,b,c,d,e)
9118 HRESULT CALLBACK IAsyncSetup_GetAsyncManager_Proxy(
9124 IAsyncManager** ppAsyncMgr);
9125 void __RPC_STUB IAsyncSetup_GetAsyncManager_Stub(
9126 struct IRpcStubBuffer* This,
9127 struct IRpcChannelBuffer* pRpcChannelBuffer,
9128 PRPC_MESSAGE pRpcMessage,
9129 DWORD* pdwStubPhase);
9131 typedef enum tagDCOM_CALL_STATE {
9133 DCOM_CALL_COMPLETE = 1,
9134 DCOM_CALL_CANCELED = 2
9137 /*****************************************************************************
9138 * IAsyncManager interface
9140 DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
9141 #if defined(__cplusplus) && !defined(CINTERFACE)
9142 struct IAsyncManager: IUnknown {
9144 virtual HRESULT STDMETHODCALLTYPE CompleteCall(
9145 HRESULT Result) = 0;
9147 virtual HRESULT STDMETHODCALLTYPE GetCallContext(
9149 void** pInterface) = 0;
9151 virtual HRESULT STDMETHODCALLTYPE GetState(
9152 ULONG* pulStateFlags) = 0;
9154 } ICOM_COM_INTERFACE_ATTRIBUTE;
9156 typedef struct IAsyncManagerVtbl IAsyncManagerVtbl;
9157 struct IAsyncManager {
9158 const IAsyncManagerVtbl* lpVtbl;
9160 struct IAsyncManagerVtbl {
9161 ICOM_MSVTABLE_COMPAT_FIELDS
9163 /*** IUnknown methods ***/
9164 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9165 IAsyncManager* This,
9169 ULONG (STDMETHODCALLTYPE *AddRef)(
9170 IAsyncManager* This);
9172 ULONG (STDMETHODCALLTYPE *Release)(
9173 IAsyncManager* This);
9175 /*** IAsyncManager methods ***/
9176 HRESULT (STDMETHODCALLTYPE *CompleteCall)(
9177 IAsyncManager* This,
9180 HRESULT (STDMETHODCALLTYPE *GetCallContext)(
9181 IAsyncManager* This,
9185 HRESULT (STDMETHODCALLTYPE *GetState)(
9186 IAsyncManager* This,
9187 ULONG* pulStateFlags);
9191 #define IAsyncManager_IMETHODS \
9192 /*** IUnknown methods ***/ \
9193 HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
9194 ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
9195 ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
9196 /*** IAsyncManager methods ***/ \
9197 HRESULT (STDMETHODCALLTYPE *CompleteCall)(INTERFACE *This, HRESULT Result); \
9198 HRESULT (STDMETHODCALLTYPE *GetCallContext)(INTERFACE *This, REFIID riid, void** pInterface); \
9199 HRESULT (STDMETHODCALLTYPE *GetState)(INTERFACE *This, ULONG* pulStateFlags);
9201 /*** IUnknown methods ***/
9202 #define IAsyncManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
9203 #define IAsyncManager_AddRef(p) (p)->lpVtbl->AddRef(p)
9204 #define IAsyncManager_Release(p) (p)->lpVtbl->Release(p)
9205 /*** IAsyncManager methods ***/
9206 #define IAsyncManager_CompleteCall(p,a) (p)->lpVtbl->CompleteCall(p,a)
9207 #define IAsyncManager_GetCallContext(p,a,b) (p)->lpVtbl->GetCallContext(p,a,b)
9208 #define IAsyncManager_GetState(p,a) (p)->lpVtbl->GetState(p,a)
9212 HRESULT CALLBACK IAsyncManager_CompleteCall_Proxy(
9213 IAsyncManager* This,
9215 void __RPC_STUB IAsyncManager_CompleteCall_Stub(
9216 struct IRpcStubBuffer* This,
9217 struct IRpcChannelBuffer* pRpcChannelBuffer,
9218 PRPC_MESSAGE pRpcMessage,
9219 DWORD* pdwStubPhase);
9220 HRESULT CALLBACK IAsyncManager_GetCallContext_Proxy(
9221 IAsyncManager* This,
9224 void __RPC_STUB IAsyncManager_GetCallContext_Stub(
9225 struct IRpcStubBuffer* This,
9226 struct IRpcChannelBuffer* pRpcChannelBuffer,
9227 PRPC_MESSAGE pRpcMessage,
9228 DWORD* pdwStubPhase);
9229 HRESULT CALLBACK IAsyncManager_GetState_Proxy(
9230 IAsyncManager* This,
9231 ULONG* pulStateFlags);
9232 void __RPC_STUB IAsyncManager_GetState_Stub(
9233 struct IRpcStubBuffer* This,
9234 struct IRpcChannelBuffer* pRpcChannelBuffer,
9235 PRPC_MESSAGE pRpcMessage,
9236 DWORD* pdwStubPhase);
9241 #endif /* __WIDL_OBJIDL_H */