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 CALLBACK GetUnmarshalClass(
36 virtual HRESULT CALLBACK GetMarshalSizeMax(
44 virtual HRESULT CALLBACK MarshalInterface(
52 virtual HRESULT CALLBACK UnmarshalInterface(
57 virtual HRESULT CALLBACK ReleaseMarshalData(
60 virtual HRESULT CALLBACK 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 (CALLBACK *QueryInterface)(
78 ULONG (CALLBACK *AddRef)(
81 ULONG (CALLBACK *Release)(
84 /*** IMarshal methods ***/
85 HRESULT (CALLBACK *GetUnmarshalClass)(
94 HRESULT (CALLBACK *GetMarshalSizeMax)(
103 HRESULT (CALLBACK *MarshalInterface)(
112 HRESULT (CALLBACK *UnmarshalInterface)(
118 HRESULT (CALLBACK *ReleaseMarshalData)(
122 HRESULT (CALLBACK *DisconnectObject)(
128 #define IMarshal_IMETHODS \
130 ICOM_METHOD6 (HRESULT,GetUnmarshalClass,REFIID,riid,void*,pv,DWORD,dwDestContext,void*,pvDestContext,DWORD,mshlflags,CLSID*,pCid) \
131 ICOM_METHOD6 (HRESULT,GetMarshalSizeMax,REFIID,riid,void*,pv,DWORD,dwDestContext,void*,pvDestContext,DWORD,mshlflags,DWORD*,pSize) \
132 ICOM_METHOD6 (HRESULT,MarshalInterface,IStream*,pStm,REFIID,riid,void*,pv,DWORD,dwDestContext,void*,pvDestContext,DWORD,mshlflags) \
133 ICOM_METHOD3 (HRESULT,UnmarshalInterface,IStream*,pStm,REFIID,riid,void**,ppv) \
134 ICOM_METHOD1 (HRESULT,ReleaseMarshalData,IStream*,pStm) \
135 ICOM_METHOD1 (HRESULT,DisconnectObject,DWORD,dwReserved)
137 /*** IUnknown methods ***/
138 #define IMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
139 #define IMarshal_AddRef(p) (p)->lpVtbl->AddRef(p)
140 #define IMarshal_Release(p) (p)->lpVtbl->Release(p)
141 /*** IMarshal methods ***/
142 #define IMarshal_GetUnmarshalClass(p,a,b,c,d,e,f) (p)->lpVtbl->GetUnmarshalClass(p,a,b,c,d,e,f)
143 #define IMarshal_GetMarshalSizeMax(p,a,b,c,d,e,f) (p)->lpVtbl->GetMarshalSizeMax(p,a,b,c,d,e,f)
144 #define IMarshal_MarshalInterface(p,a,b,c,d,e,f) (p)->lpVtbl->MarshalInterface(p,a,b,c,d,e,f)
145 #define IMarshal_UnmarshalInterface(p,a,b,c) (p)->lpVtbl->UnmarshalInterface(p,a,b,c)
146 #define IMarshal_ReleaseMarshalData(p,a) (p)->lpVtbl->ReleaseMarshalData(p,a)
147 #define IMarshal_DisconnectObject(p,a) (p)->lpVtbl->DisconnectObject(p,a)
151 HRESULT CALLBACK IMarshal_GetUnmarshalClass_Proxy(
159 void __RPC_STUB IMarshal_GetUnmarshalClass_Stub(
160 struct IRpcStubBuffer* This,
161 struct IRpcChannelBuffer* pRpcChannelBuffer,
162 PRPC_MESSAGE pRpcMessage,
163 DWORD* pdwStubPhase);
164 HRESULT CALLBACK IMarshal_GetMarshalSizeMax_Proxy(
172 void __RPC_STUB IMarshal_GetMarshalSizeMax_Stub(
173 struct IRpcStubBuffer* This,
174 struct IRpcChannelBuffer* pRpcChannelBuffer,
175 PRPC_MESSAGE pRpcMessage,
176 DWORD* pdwStubPhase);
177 HRESULT CALLBACK IMarshal_MarshalInterface_Proxy(
185 void __RPC_STUB IMarshal_MarshalInterface_Stub(
186 struct IRpcStubBuffer* This,
187 struct IRpcChannelBuffer* pRpcChannelBuffer,
188 PRPC_MESSAGE pRpcMessage,
189 DWORD* pdwStubPhase);
190 HRESULT CALLBACK IMarshal_UnmarshalInterface_Proxy(
195 void __RPC_STUB IMarshal_UnmarshalInterface_Stub(
196 struct IRpcStubBuffer* This,
197 struct IRpcChannelBuffer* pRpcChannelBuffer,
198 PRPC_MESSAGE pRpcMessage,
199 DWORD* pdwStubPhase);
200 HRESULT CALLBACK IMarshal_ReleaseMarshalData_Proxy(
203 void __RPC_STUB IMarshal_ReleaseMarshalData_Stub(
204 struct IRpcStubBuffer* This,
205 struct IRpcChannelBuffer* pRpcChannelBuffer,
206 PRPC_MESSAGE pRpcMessage,
207 DWORD* pdwStubPhase);
208 HRESULT CALLBACK IMarshal_DisconnectObject_Proxy(
211 void __RPC_STUB IMarshal_DisconnectObject_Stub(
212 struct IRpcStubBuffer* This,
213 struct IRpcChannelBuffer* pRpcChannelBuffer,
214 PRPC_MESSAGE pRpcMessage,
215 DWORD* pdwStubPhase);
217 typedef struct IStdMarshalInfo IStdMarshalInfo;
218 typedef IStdMarshalInfo *LPSTDMARSHALINFO;
220 /*****************************************************************************
221 * IStdMarshalInfo interface
223 DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
224 #if defined(__cplusplus) && !defined(CINTERFACE)
225 struct IStdMarshalInfo: IUnknown {
227 virtual HRESULT CALLBACK GetClassForHandler(
232 } ICOM_COM_INTERFACE_ATTRIBUTE;
234 typedef struct IStdMarshalInfoVtbl IStdMarshalInfoVtbl;
235 struct IStdMarshalInfo {
236 const IStdMarshalInfoVtbl* lpVtbl;
238 struct IStdMarshalInfoVtbl {
239 ICOM_MSVTABLE_COMPAT_FIELDS
241 /*** IUnknown methods ***/
242 HRESULT (CALLBACK *QueryInterface)(
243 IStdMarshalInfo* This,
247 ULONG (CALLBACK *AddRef)(
248 IStdMarshalInfo* This);
250 ULONG (CALLBACK *Release)(
251 IStdMarshalInfo* This);
253 /*** IStdMarshalInfo methods ***/
254 HRESULT (CALLBACK *GetClassForHandler)(
255 IStdMarshalInfo* This,
262 #define IStdMarshalInfo_IMETHODS \
264 ICOM_METHOD3 (HRESULT,GetClassForHandler,DWORD,dwDestContext,void*,pvDestContext,CLSID*,pClsid)
266 /*** IUnknown methods ***/
267 #define IStdMarshalInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
268 #define IStdMarshalInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
269 #define IStdMarshalInfo_Release(p) (p)->lpVtbl->Release(p)
270 /*** IStdMarshalInfo methods ***/
271 #define IStdMarshalInfo_GetClassForHandler(p,a,b,c) (p)->lpVtbl->GetClassForHandler(p,a,b,c)
275 HRESULT CALLBACK IStdMarshalInfo_GetClassForHandler_Proxy(
276 IStdMarshalInfo* This,
280 void __RPC_STUB IStdMarshalInfo_GetClassForHandler_Stub(
281 struct IRpcStubBuffer* This,
282 struct IRpcChannelBuffer* pRpcChannelBuffer,
283 PRPC_MESSAGE pRpcMessage,
284 DWORD* pdwStubPhase);
286 typedef struct IExternalConnection IExternalConnection;
287 typedef IExternalConnection *LPEXTERNALCONNECTION;
289 typedef enum tagEXTCONN {
290 EXTCONN_STRONG = 0x1,
292 EXTCONN_CALLABLE = 0x4
295 /*****************************************************************************
296 * IExternalConnection interface
298 DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
299 #if defined(__cplusplus) && !defined(CINTERFACE)
300 struct IExternalConnection: IUnknown {
302 virtual DWORD CALLBACK AddConnection(
306 virtual DWORD CALLBACK ReleaseConnection(
309 BOOL fLastReleaseCloses) = 0;
311 } ICOM_COM_INTERFACE_ATTRIBUTE;
313 typedef struct IExternalConnectionVtbl IExternalConnectionVtbl;
314 struct IExternalConnection {
315 const IExternalConnectionVtbl* lpVtbl;
317 struct IExternalConnectionVtbl {
318 ICOM_MSVTABLE_COMPAT_FIELDS
320 /*** IUnknown methods ***/
321 HRESULT (CALLBACK *QueryInterface)(
322 IExternalConnection* This,
326 ULONG (CALLBACK *AddRef)(
327 IExternalConnection* This);
329 ULONG (CALLBACK *Release)(
330 IExternalConnection* This);
332 /*** IExternalConnection methods ***/
333 DWORD (CALLBACK *AddConnection)(
334 IExternalConnection* This,
338 DWORD (CALLBACK *ReleaseConnection)(
339 IExternalConnection* This,
342 BOOL fLastReleaseCloses);
346 #define IExternalConnection_IMETHODS \
348 ICOM_METHOD2 (DWORD,AddConnection,DWORD,extconn,DWORD,reserved) \
349 ICOM_METHOD3 (DWORD,ReleaseConnection,DWORD,extconn,DWORD,reserved,BOOL,fLastReleaseCloses)
351 /*** IUnknown methods ***/
352 #define IExternalConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
353 #define IExternalConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
354 #define IExternalConnection_Release(p) (p)->lpVtbl->Release(p)
355 /*** IExternalConnection methods ***/
356 #define IExternalConnection_AddConnection(p,a,b) (p)->lpVtbl->AddConnection(p,a,b)
357 #define IExternalConnection_ReleaseConnection(p,a,b,c) (p)->lpVtbl->ReleaseConnection(p,a,b,c)
361 DWORD CALLBACK IExternalConnection_AddConnection_Proxy(
362 IExternalConnection* This,
365 void __RPC_STUB IExternalConnection_AddConnection_Stub(
366 struct IRpcStubBuffer* This,
367 struct IRpcChannelBuffer* pRpcChannelBuffer,
368 PRPC_MESSAGE pRpcMessage,
369 DWORD* pdwStubPhase);
370 DWORD CALLBACK IExternalConnection_ReleaseConnection_Proxy(
371 IExternalConnection* This,
374 BOOL fLastReleaseCloses);
375 void __RPC_STUB IExternalConnection_ReleaseConnection_Stub(
376 struct IRpcStubBuffer* This,
377 struct IRpcChannelBuffer* pRpcChannelBuffer,
378 PRPC_MESSAGE pRpcMessage,
379 DWORD* pdwStubPhase);
381 typedef struct IMultiQI IMultiQI;
382 typedef IMultiQI *LPMULTIQI;
384 typedef struct tagMULTI_QI {
390 /*****************************************************************************
393 DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
394 #if defined(__cplusplus) && !defined(CINTERFACE)
395 struct IMultiQI: IUnknown {
397 virtual HRESULT CALLBACK QueryMultipleInterfaces(
399 MULTI_QI* pMQIs) = 0;
401 } ICOM_COM_INTERFACE_ATTRIBUTE;
403 typedef struct IMultiQIVtbl IMultiQIVtbl;
405 const IMultiQIVtbl* lpVtbl;
407 struct IMultiQIVtbl {
408 ICOM_MSVTABLE_COMPAT_FIELDS
410 /*** IUnknown methods ***/
411 HRESULT (CALLBACK *QueryInterface)(
416 ULONG (CALLBACK *AddRef)(
419 ULONG (CALLBACK *Release)(
422 /*** IMultiQI methods ***/
423 HRESULT (CALLBACK *QueryMultipleInterfaces)(
430 #define IMultiQI_IMETHODS \
432 ICOM_METHOD2 (HRESULT,QueryMultipleInterfaces,ULONG,cMQIs,MULTI_QI*,pMQIs)
434 /*** IUnknown methods ***/
435 #define IMultiQI_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
436 #define IMultiQI_AddRef(p) (p)->lpVtbl->AddRef(p)
437 #define IMultiQI_Release(p) (p)->lpVtbl->Release(p)
438 /*** IMultiQI methods ***/
439 #define IMultiQI_QueryMultipleInterfaces(p,a,b) (p)->lpVtbl->QueryMultipleInterfaces(p,a,b)
443 HRESULT CALLBACK IMultiQI_QueryMultipleInterfaces_Proxy(
447 void __RPC_STUB IMultiQI_QueryMultipleInterfaces_Stub(
448 struct IRpcStubBuffer* This,
449 struct IRpcChannelBuffer* pRpcChannelBuffer,
450 PRPC_MESSAGE pRpcMessage,
451 DWORD* pdwStubPhase);
453 typedef struct IMalloc IMalloc;
454 typedef IMalloc *LPMALLOC;
456 /*****************************************************************************
459 DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
460 #if defined(__cplusplus) && !defined(CINTERFACE)
461 struct IMalloc: IUnknown {
463 virtual LPVOID CALLBACK Alloc(
466 virtual LPVOID CALLBACK Realloc(
470 virtual void CALLBACK Free(
473 virtual ULONG CALLBACK GetSize(
476 virtual int CALLBACK DidAlloc(
479 virtual void CALLBACK HeapMinimize(
482 } ICOM_COM_INTERFACE_ATTRIBUTE;
484 typedef struct IMallocVtbl IMallocVtbl;
486 const IMallocVtbl* lpVtbl;
489 ICOM_MSVTABLE_COMPAT_FIELDS
491 /*** IUnknown methods ***/
492 HRESULT (CALLBACK *QueryInterface)(
497 ULONG (CALLBACK *AddRef)(
500 ULONG (CALLBACK *Release)(
503 /*** IMalloc methods ***/
504 LPVOID (CALLBACK *Alloc)(
508 LPVOID (CALLBACK *Realloc)(
513 void (CALLBACK *Free)(
517 ULONG (CALLBACK *GetSize)(
521 int (CALLBACK *DidAlloc)(
525 void (CALLBACK *HeapMinimize)(
530 #define IMalloc_IMETHODS \
532 ICOM_METHOD1 (LPVOID,Alloc,ULONG,cb) \
533 ICOM_METHOD2 (LPVOID,Realloc,LPVOID,pv,ULONG,cb) \
534 ICOM_VMETHOD1(Free,LPVOID,pv) \
535 ICOM_METHOD1 (ULONG,GetSize,LPVOID,pv) \
536 ICOM_METHOD1 (int,DidAlloc,LPVOID,pv) \
537 ICOM_VMETHOD (HeapMinimize)
539 /*** IUnknown methods ***/
540 #define IMalloc_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
541 #define IMalloc_AddRef(p) (p)->lpVtbl->AddRef(p)
542 #define IMalloc_Release(p) (p)->lpVtbl->Release(p)
543 /*** IMalloc methods ***/
544 #define IMalloc_Alloc(p,a) (p)->lpVtbl->Alloc(p,a)
545 #define IMalloc_Realloc(p,a,b) (p)->lpVtbl->Realloc(p,a,b)
546 #define IMalloc_Free(p,a) (p)->lpVtbl->Free(p,a)
547 #define IMalloc_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
548 #define IMalloc_DidAlloc(p,a) (p)->lpVtbl->DidAlloc(p,a)
549 #define IMalloc_HeapMinimize(p) (p)->lpVtbl->HeapMinimize(p)
553 LPVOID CALLBACK IMalloc_Alloc_Proxy(
556 void __RPC_STUB IMalloc_Alloc_Stub(
557 struct IRpcStubBuffer* This,
558 struct IRpcChannelBuffer* pRpcChannelBuffer,
559 PRPC_MESSAGE pRpcMessage,
560 DWORD* pdwStubPhase);
561 LPVOID CALLBACK IMalloc_Realloc_Proxy(
565 void __RPC_STUB IMalloc_Realloc_Stub(
566 struct IRpcStubBuffer* This,
567 struct IRpcChannelBuffer* pRpcChannelBuffer,
568 PRPC_MESSAGE pRpcMessage,
569 DWORD* pdwStubPhase);
570 void CALLBACK IMalloc_Free_Proxy(
573 void __RPC_STUB IMalloc_Free_Stub(
574 struct IRpcStubBuffer* This,
575 struct IRpcChannelBuffer* pRpcChannelBuffer,
576 PRPC_MESSAGE pRpcMessage,
577 DWORD* pdwStubPhase);
578 ULONG CALLBACK IMalloc_GetSize_Proxy(
581 void __RPC_STUB IMalloc_GetSize_Stub(
582 struct IRpcStubBuffer* This,
583 struct IRpcChannelBuffer* pRpcChannelBuffer,
584 PRPC_MESSAGE pRpcMessage,
585 DWORD* pdwStubPhase);
586 int CALLBACK IMalloc_DidAlloc_Proxy(
589 void __RPC_STUB IMalloc_DidAlloc_Stub(
590 struct IRpcStubBuffer* This,
591 struct IRpcChannelBuffer* pRpcChannelBuffer,
592 PRPC_MESSAGE pRpcMessage,
593 DWORD* pdwStubPhase);
594 void CALLBACK IMalloc_HeapMinimize_Proxy(
596 void __RPC_STUB IMalloc_HeapMinimize_Stub(
597 struct IRpcStubBuffer* This,
598 struct IRpcChannelBuffer* pRpcChannelBuffer,
599 PRPC_MESSAGE pRpcMessage,
600 DWORD* pdwStubPhase);
602 typedef struct IMallocSpy IMallocSpy;
603 typedef IMallocSpy *LPMALLOCSPY;
605 /*****************************************************************************
606 * IMallocSpy interface
608 DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
609 #if defined(__cplusplus) && !defined(CINTERFACE)
610 struct IMallocSpy: IUnknown {
612 virtual ULONG CALLBACK PreAlloc(
613 ULONG cbRequest) = 0;
615 virtual LPVOID CALLBACK PostAlloc(
618 virtual LPVOID CALLBACK PreFree(
622 virtual void CALLBACK PostFree(
625 virtual ULONG CALLBACK PreRealloc(
628 LPVOID* ppNewRequest,
631 virtual LPVOID CALLBACK PostRealloc(
635 virtual LPVOID CALLBACK PreGetSize(
639 virtual ULONG CALLBACK PostGetSize(
643 virtual LPVOID CALLBACK PreDidAlloc(
647 virtual int CALLBACK PostDidAlloc(
652 virtual void CALLBACK PreHeapMinimize(
655 virtual void CALLBACK PostHeapMinimize(
658 } ICOM_COM_INTERFACE_ATTRIBUTE;
660 typedef struct IMallocSpyVtbl IMallocSpyVtbl;
662 const IMallocSpyVtbl* lpVtbl;
664 struct IMallocSpyVtbl {
665 ICOM_MSVTABLE_COMPAT_FIELDS
667 /*** IUnknown methods ***/
668 HRESULT (CALLBACK *QueryInterface)(
673 ULONG (CALLBACK *AddRef)(
676 ULONG (CALLBACK *Release)(
679 /*** IMallocSpy methods ***/
680 ULONG (CALLBACK *PreAlloc)(
684 LPVOID (CALLBACK *PostAlloc)(
688 LPVOID (CALLBACK *PreFree)(
693 void (CALLBACK *PostFree)(
697 ULONG (CALLBACK *PreRealloc)(
701 LPVOID* ppNewRequest,
704 LPVOID (CALLBACK *PostRealloc)(
709 LPVOID (CALLBACK *PreGetSize)(
714 ULONG (CALLBACK *PostGetSize)(
719 LPVOID (CALLBACK *PreDidAlloc)(
724 int (CALLBACK *PostDidAlloc)(
730 void (CALLBACK *PreHeapMinimize)(
733 void (CALLBACK *PostHeapMinimize)(
738 #define IMallocSpy_IMETHODS \
740 ICOM_METHOD1 (ULONG,PreAlloc,ULONG,cbRequest) \
741 ICOM_METHOD1 (LPVOID,PostAlloc,LPVOID,pActual) \
742 ICOM_METHOD2 (LPVOID,PreFree,LPVOID,pRequest,BOOL,fSpyed) \
743 ICOM_VMETHOD1(PostFree,BOOL,fSpyed) \
744 ICOM_METHOD4 (ULONG,PreRealloc,LPVOID,pRequest,ULONG,cbRequest,LPVOID*,ppNewRequest,BOOL,fSpyed) \
745 ICOM_METHOD2 (LPVOID,PostRealloc,LPVOID,pActual,BOOL,fSpyed) \
746 ICOM_METHOD2 (LPVOID,PreGetSize,LPVOID,pRequest,BOOL,fSpyed) \
747 ICOM_METHOD2 (ULONG,PostGetSize,ULONG,cbActual,BOOL,fSpyed) \
748 ICOM_METHOD2 (LPVOID,PreDidAlloc,LPVOID,pRequest,BOOL,fSpyed) \
749 ICOM_METHOD3 (int,PostDidAlloc,LPVOID,pRequest,BOOL,fSpyed,int,fActual) \
750 ICOM_VMETHOD (PreHeapMinimize) \
751 ICOM_VMETHOD (PostHeapMinimize)
753 /*** IUnknown methods ***/
754 #define IMallocSpy_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
755 #define IMallocSpy_AddRef(p) (p)->lpVtbl->AddRef(p)
756 #define IMallocSpy_Release(p) (p)->lpVtbl->Release(p)
757 /*** IMallocSpy methods ***/
758 #define IMallocSpy_PreAlloc(p,a) (p)->lpVtbl->PreAlloc(p,a)
759 #define IMallocSpy_PostAlloc(p,a) (p)->lpVtbl->PostAlloc(p,a)
760 #define IMallocSpy_PreFree(p,a,b) (p)->lpVtbl->PreFree(p,a,b)
761 #define IMallocSpy_PostFree(p,a) (p)->lpVtbl->PostFree(p,a)
762 #define IMallocSpy_PreRealloc(p,a,b,c,d) (p)->lpVtbl->PreRealloc(p,a,b,c,d)
763 #define IMallocSpy_PostRealloc(p,a,b) (p)->lpVtbl->PostRealloc(p,a,b)
764 #define IMallocSpy_PreGetSize(p,a,b) (p)->lpVtbl->PreGetSize(p,a,b)
765 #define IMallocSpy_PostGetSize(p,a,b) (p)->lpVtbl->PostGetSize(p,a,b)
766 #define IMallocSpy_PreDidAlloc(p,a,b) (p)->lpVtbl->PreDidAlloc(p,a,b)
767 #define IMallocSpy_PostDidAlloc(p,a,b,c) (p)->lpVtbl->PostDidAlloc(p,a,b,c)
768 #define IMallocSpy_PreHeapMinimize(p) (p)->lpVtbl->PreHeapMinimize(p)
769 #define IMallocSpy_PostHeapMinimize(p) (p)->lpVtbl->PostHeapMinimize(p)
773 ULONG CALLBACK IMallocSpy_PreAlloc_Proxy(
776 void __RPC_STUB IMallocSpy_PreAlloc_Stub(
777 struct IRpcStubBuffer* This,
778 struct IRpcChannelBuffer* pRpcChannelBuffer,
779 PRPC_MESSAGE pRpcMessage,
780 DWORD* pdwStubPhase);
781 LPVOID CALLBACK IMallocSpy_PostAlloc_Proxy(
784 void __RPC_STUB IMallocSpy_PostAlloc_Stub(
785 struct IRpcStubBuffer* This,
786 struct IRpcChannelBuffer* pRpcChannelBuffer,
787 PRPC_MESSAGE pRpcMessage,
788 DWORD* pdwStubPhase);
789 LPVOID CALLBACK IMallocSpy_PreFree_Proxy(
793 void __RPC_STUB IMallocSpy_PreFree_Stub(
794 struct IRpcStubBuffer* This,
795 struct IRpcChannelBuffer* pRpcChannelBuffer,
796 PRPC_MESSAGE pRpcMessage,
797 DWORD* pdwStubPhase);
798 void CALLBACK IMallocSpy_PostFree_Proxy(
801 void __RPC_STUB IMallocSpy_PostFree_Stub(
802 struct IRpcStubBuffer* This,
803 struct IRpcChannelBuffer* pRpcChannelBuffer,
804 PRPC_MESSAGE pRpcMessage,
805 DWORD* pdwStubPhase);
806 ULONG CALLBACK IMallocSpy_PreRealloc_Proxy(
810 LPVOID* ppNewRequest,
812 void __RPC_STUB IMallocSpy_PreRealloc_Stub(
813 struct IRpcStubBuffer* This,
814 struct IRpcChannelBuffer* pRpcChannelBuffer,
815 PRPC_MESSAGE pRpcMessage,
816 DWORD* pdwStubPhase);
817 LPVOID CALLBACK IMallocSpy_PostRealloc_Proxy(
821 void __RPC_STUB IMallocSpy_PostRealloc_Stub(
822 struct IRpcStubBuffer* This,
823 struct IRpcChannelBuffer* pRpcChannelBuffer,
824 PRPC_MESSAGE pRpcMessage,
825 DWORD* pdwStubPhase);
826 LPVOID CALLBACK IMallocSpy_PreGetSize_Proxy(
830 void __RPC_STUB IMallocSpy_PreGetSize_Stub(
831 struct IRpcStubBuffer* This,
832 struct IRpcChannelBuffer* pRpcChannelBuffer,
833 PRPC_MESSAGE pRpcMessage,
834 DWORD* pdwStubPhase);
835 ULONG CALLBACK IMallocSpy_PostGetSize_Proxy(
839 void __RPC_STUB IMallocSpy_PostGetSize_Stub(
840 struct IRpcStubBuffer* This,
841 struct IRpcChannelBuffer* pRpcChannelBuffer,
842 PRPC_MESSAGE pRpcMessage,
843 DWORD* pdwStubPhase);
844 LPVOID CALLBACK IMallocSpy_PreDidAlloc_Proxy(
848 void __RPC_STUB IMallocSpy_PreDidAlloc_Stub(
849 struct IRpcStubBuffer* This,
850 struct IRpcChannelBuffer* pRpcChannelBuffer,
851 PRPC_MESSAGE pRpcMessage,
852 DWORD* pdwStubPhase);
853 int CALLBACK IMallocSpy_PostDidAlloc_Proxy(
858 void __RPC_STUB IMallocSpy_PostDidAlloc_Stub(
859 struct IRpcStubBuffer* This,
860 struct IRpcChannelBuffer* pRpcChannelBuffer,
861 PRPC_MESSAGE pRpcMessage,
862 DWORD* pdwStubPhase);
863 void CALLBACK IMallocSpy_PreHeapMinimize_Proxy(
865 void __RPC_STUB IMallocSpy_PreHeapMinimize_Stub(
866 struct IRpcStubBuffer* This,
867 struct IRpcChannelBuffer* pRpcChannelBuffer,
868 PRPC_MESSAGE pRpcMessage,
869 DWORD* pdwStubPhase);
870 void CALLBACK IMallocSpy_PostHeapMinimize_Proxy(
872 void __RPC_STUB IMallocSpy_PostHeapMinimize_Stub(
873 struct IRpcStubBuffer* This,
874 struct IRpcChannelBuffer* pRpcChannelBuffer,
875 PRPC_MESSAGE pRpcMessage,
876 DWORD* pdwStubPhase);
878 typedef struct IEnumUnknown IEnumUnknown;
879 typedef IEnumUnknown *LPENUMUNKNOWN;
881 /*****************************************************************************
882 * IEnumUnknown interface
884 DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
885 #if defined(__cplusplus) && !defined(CINTERFACE)
886 struct IEnumUnknown: IUnknown {
888 virtual HRESULT CALLBACK Next(
891 ULONG* pceltFetched) = 0;
893 virtual HRESULT CALLBACK Skip(
896 virtual HRESULT CALLBACK Reset(
899 virtual HRESULT CALLBACK Clone(
900 IEnumUnknown** ppenum) = 0;
902 } ICOM_COM_INTERFACE_ATTRIBUTE;
904 typedef struct IEnumUnknownVtbl IEnumUnknownVtbl;
905 struct IEnumUnknown {
906 const IEnumUnknownVtbl* lpVtbl;
908 struct IEnumUnknownVtbl {
909 ICOM_MSVTABLE_COMPAT_FIELDS
911 /*** IUnknown methods ***/
912 HRESULT (CALLBACK *QueryInterface)(
917 ULONG (CALLBACK *AddRef)(
920 ULONG (CALLBACK *Release)(
923 /*** IEnumUnknown methods ***/
924 HRESULT (CALLBACK *Next)(
928 ULONG* pceltFetched);
930 HRESULT (CALLBACK *Skip)(
934 HRESULT (CALLBACK *Reset)(
937 HRESULT (CALLBACK *Clone)(
939 IEnumUnknown** ppenum);
943 #define IEnumUnknown_IMETHODS \
945 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,IUnknown**,rgelt,ULONG*,pceltFetched) \
946 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
947 ICOM_METHOD (HRESULT,Reset) \
948 ICOM_METHOD1 (HRESULT,Clone,IEnumUnknown**,ppenum)
950 /*** IUnknown methods ***/
951 #define IEnumUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
952 #define IEnumUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
953 #define IEnumUnknown_Release(p) (p)->lpVtbl->Release(p)
954 /*** IEnumUnknown methods ***/
955 #define IEnumUnknown_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
956 #define IEnumUnknown_Skip(p,a) (p)->lpVtbl->Skip(p,a)
957 #define IEnumUnknown_Reset(p) (p)->lpVtbl->Reset(p)
958 #define IEnumUnknown_Clone(p,a) (p)->lpVtbl->Clone(p,a)
962 HRESULT CALLBACK IEnumUnknown_RemoteNext_Proxy(
966 ULONG* pceltFetched);
967 void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
968 struct IRpcStubBuffer* This,
969 struct IRpcChannelBuffer* pRpcChannelBuffer,
970 PRPC_MESSAGE pRpcMessage,
971 DWORD* pdwStubPhase);
972 HRESULT CALLBACK IEnumUnknown_Next_Proxy(
976 ULONG* pceltFetched);
977 HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
981 ULONG* pceltFetched);
982 HRESULT CALLBACK IEnumUnknown_Skip_Proxy(
985 void __RPC_STUB IEnumUnknown_Skip_Stub(
986 struct IRpcStubBuffer* This,
987 struct IRpcChannelBuffer* pRpcChannelBuffer,
988 PRPC_MESSAGE pRpcMessage,
989 DWORD* pdwStubPhase);
990 HRESULT CALLBACK IEnumUnknown_Reset_Proxy(
992 void __RPC_STUB IEnumUnknown_Reset_Stub(
993 struct IRpcStubBuffer* This,
994 struct IRpcChannelBuffer* pRpcChannelBuffer,
995 PRPC_MESSAGE pRpcMessage,
996 DWORD* pdwStubPhase);
997 HRESULT CALLBACK IEnumUnknown_Clone_Proxy(
999 IEnumUnknown** ppenum);
1000 void __RPC_STUB IEnumUnknown_Clone_Stub(
1001 struct IRpcStubBuffer* This,
1002 struct IRpcChannelBuffer* pRpcChannelBuffer,
1003 PRPC_MESSAGE pRpcMessage,
1004 DWORD* pdwStubPhase);
1006 typedef struct ISurrogate ISurrogate;
1007 typedef ISurrogate *LPSURROGATE;
1009 /*****************************************************************************
1010 * ISurrogate interface
1012 DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1013 #if defined(__cplusplus) && !defined(CINTERFACE)
1014 struct ISurrogate: IUnknown {
1016 virtual HRESULT CALLBACK LoadDllServer(
1017 REFCLSID Clsid) = 0;
1019 virtual HRESULT CALLBACK FreeSurrogate(
1022 } ICOM_COM_INTERFACE_ATTRIBUTE;
1024 typedef struct ISurrogateVtbl ISurrogateVtbl;
1026 const ISurrogateVtbl* lpVtbl;
1028 struct ISurrogateVtbl {
1029 ICOM_MSVTABLE_COMPAT_FIELDS
1031 /*** IUnknown methods ***/
1032 HRESULT (CALLBACK *QueryInterface)(
1037 ULONG (CALLBACK *AddRef)(
1040 ULONG (CALLBACK *Release)(
1043 /*** ISurrogate methods ***/
1044 HRESULT (CALLBACK *LoadDllServer)(
1048 HRESULT (CALLBACK *FreeSurrogate)(
1053 #define ISurrogate_IMETHODS \
1055 ICOM_METHOD1 (HRESULT,LoadDllServer,REFCLSID,Clsid) \
1056 ICOM_METHOD (HRESULT,FreeSurrogate)
1058 /*** IUnknown methods ***/
1059 #define ISurrogate_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1060 #define ISurrogate_AddRef(p) (p)->lpVtbl->AddRef(p)
1061 #define ISurrogate_Release(p) (p)->lpVtbl->Release(p)
1062 /*** ISurrogate methods ***/
1063 #define ISurrogate_LoadDllServer(p,a) (p)->lpVtbl->LoadDllServer(p,a)
1064 #define ISurrogate_FreeSurrogate(p) (p)->lpVtbl->FreeSurrogate(p)
1068 HRESULT CALLBACK ISurrogate_LoadDllServer_Proxy(
1071 void __RPC_STUB ISurrogate_LoadDllServer_Stub(
1072 struct IRpcStubBuffer* This,
1073 struct IRpcChannelBuffer* pRpcChannelBuffer,
1074 PRPC_MESSAGE pRpcMessage,
1075 DWORD* pdwStubPhase);
1076 HRESULT CALLBACK ISurrogate_FreeSurrogate_Proxy(
1078 void __RPC_STUB ISurrogate_FreeSurrogate_Stub(
1079 struct IRpcStubBuffer* This,
1080 struct IRpcChannelBuffer* pRpcChannelBuffer,
1081 PRPC_MESSAGE pRpcMessage,
1082 DWORD* pdwStubPhase);
1084 typedef struct IGlobalInterfaceTable IGlobalInterfaceTable;
1085 typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
1087 /*****************************************************************************
1088 * IGlobalInterfaceTable interface
1090 DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1091 #if defined(__cplusplus) && !defined(CINTERFACE)
1092 struct IGlobalInterfaceTable: IUnknown {
1094 virtual HRESULT CALLBACK RegisterInterfaceInGlobal(
1097 DWORD* pdwCookie) = 0;
1099 virtual HRESULT CALLBACK RevokeInterfaceFromGlobal(
1100 DWORD dwCookie) = 0;
1102 virtual HRESULT CALLBACK GetInterfaceFromGlobal(
1107 } ICOM_COM_INTERFACE_ATTRIBUTE;
1109 typedef struct IGlobalInterfaceTableVtbl IGlobalInterfaceTableVtbl;
1110 struct IGlobalInterfaceTable {
1111 const IGlobalInterfaceTableVtbl* lpVtbl;
1113 struct IGlobalInterfaceTableVtbl {
1114 ICOM_MSVTABLE_COMPAT_FIELDS
1116 /*** IUnknown methods ***/
1117 HRESULT (CALLBACK *QueryInterface)(
1118 IGlobalInterfaceTable* This,
1122 ULONG (CALLBACK *AddRef)(
1123 IGlobalInterfaceTable* This);
1125 ULONG (CALLBACK *Release)(
1126 IGlobalInterfaceTable* This);
1128 /*** IGlobalInterfaceTable methods ***/
1129 HRESULT (CALLBACK *RegisterInterfaceInGlobal)(
1130 IGlobalInterfaceTable* This,
1135 HRESULT (CALLBACK *RevokeInterfaceFromGlobal)(
1136 IGlobalInterfaceTable* This,
1139 HRESULT (CALLBACK *GetInterfaceFromGlobal)(
1140 IGlobalInterfaceTable* This,
1147 #define IGlobalInterfaceTable_IMETHODS \
1149 ICOM_METHOD3 (HRESULT,RegisterInterfaceInGlobal,IUnknown*,pUnk,REFIID,riid,DWORD*,pdwCookie) \
1150 ICOM_METHOD1 (HRESULT,RevokeInterfaceFromGlobal,DWORD,dwCookie) \
1151 ICOM_METHOD3 (HRESULT,GetInterfaceFromGlobal,DWORD,dwCookie,REFIID,riid,void**,ppv)
1153 /*** IUnknown methods ***/
1154 #define IGlobalInterfaceTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1155 #define IGlobalInterfaceTable_AddRef(p) (p)->lpVtbl->AddRef(p)
1156 #define IGlobalInterfaceTable_Release(p) (p)->lpVtbl->Release(p)
1157 /*** IGlobalInterfaceTable methods ***/
1158 #define IGlobalInterfaceTable_RegisterInterfaceInGlobal(p,a,b,c) (p)->lpVtbl->RegisterInterfaceInGlobal(p,a,b,c)
1159 #define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(p,a) (p)->lpVtbl->RevokeInterfaceFromGlobal(p,a)
1160 #define IGlobalInterfaceTable_GetInterfaceFromGlobal(p,a,b,c) (p)->lpVtbl->GetInterfaceFromGlobal(p,a,b,c)
1164 HRESULT CALLBACK IGlobalInterfaceTable_RegisterInterfaceInGlobal_Proxy(
1165 IGlobalInterfaceTable* This,
1169 void __RPC_STUB IGlobalInterfaceTable_RegisterInterfaceInGlobal_Stub(
1170 struct IRpcStubBuffer* This,
1171 struct IRpcChannelBuffer* pRpcChannelBuffer,
1172 PRPC_MESSAGE pRpcMessage,
1173 DWORD* pdwStubPhase);
1174 HRESULT CALLBACK IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Proxy(
1175 IGlobalInterfaceTable* This,
1177 void __RPC_STUB IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Stub(
1178 struct IRpcStubBuffer* This,
1179 struct IRpcChannelBuffer* pRpcChannelBuffer,
1180 PRPC_MESSAGE pRpcMessage,
1181 DWORD* pdwStubPhase);
1182 HRESULT CALLBACK IGlobalInterfaceTable_GetInterfaceFromGlobal_Proxy(
1183 IGlobalInterfaceTable* This,
1187 void __RPC_STUB IGlobalInterfaceTable_GetInterfaceFromGlobal_Stub(
1188 struct IRpcStubBuffer* This,
1189 struct IRpcChannelBuffer* pRpcChannelBuffer,
1190 PRPC_MESSAGE pRpcMessage,
1191 DWORD* pdwStubPhase);
1193 typedef struct IBindCtx IBindCtx;
1194 typedef IBindCtx *LPBINDCTX;
1196 typedef IBindCtx *LPBC;
1198 typedef struct tagBIND_OPTS {
1202 DWORD dwTickCountDeadline;
1203 } BIND_OPTS, *LPBIND_OPTS;
1205 typedef struct tagBIND_OPTS2 {
1209 DWORD dwTickCountDeadline;
1211 DWORD dwClassContext;
1213 COSERVERINFO *pServerInfo;
1214 } BIND_OPTS2, *LPBIND_OPTS2;
1216 typedef enum tagBIND_FLAGS {
1217 BIND_MAYBOTHERUSER = 1,
1218 BIND_JUSTTESTEXISTENCE = 2
1221 /*****************************************************************************
1222 * IBindCtx interface
1224 DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1225 #if defined(__cplusplus) && !defined(CINTERFACE)
1226 struct IBindCtx: IUnknown {
1228 virtual HRESULT CALLBACK RegisterObjectBound(
1229 IUnknown* punk) = 0;
1231 virtual HRESULT CALLBACK RevokeObjectBound(
1232 IUnknown* punk) = 0;
1234 virtual HRESULT CALLBACK ReleaseBoundObjects(
1237 virtual HRESULT CALLBACK SetBindOptions(
1238 BIND_OPTS* pbindopts) = 0;
1240 virtual HRESULT CALLBACK GetBindOptions(
1241 BIND_OPTS* pbindopts) = 0;
1243 virtual HRESULT CALLBACK GetRunningObjectTable(
1244 IRunningObjectTable** pprot) = 0;
1246 virtual HRESULT CALLBACK RegisterObjectParam(
1248 IUnknown* punk) = 0;
1250 virtual HRESULT CALLBACK GetObjectParam(
1252 IUnknown** ppunk) = 0;
1254 virtual HRESULT CALLBACK EnumObjectParam(
1255 IEnumString** ppenum) = 0;
1257 virtual HRESULT CALLBACK RevokeObjectParam(
1258 LPOLESTR pszKey) = 0;
1260 } ICOM_COM_INTERFACE_ATTRIBUTE;
1262 typedef struct IBindCtxVtbl IBindCtxVtbl;
1264 const IBindCtxVtbl* lpVtbl;
1266 struct IBindCtxVtbl {
1267 ICOM_MSVTABLE_COMPAT_FIELDS
1269 /*** IUnknown methods ***/
1270 HRESULT (CALLBACK *QueryInterface)(
1275 ULONG (CALLBACK *AddRef)(
1278 ULONG (CALLBACK *Release)(
1281 /*** IBindCtx methods ***/
1282 HRESULT (CALLBACK *RegisterObjectBound)(
1286 HRESULT (CALLBACK *RevokeObjectBound)(
1290 HRESULT (CALLBACK *ReleaseBoundObjects)(
1293 HRESULT (CALLBACK *SetBindOptions)(
1295 BIND_OPTS* pbindopts);
1297 HRESULT (CALLBACK *GetBindOptions)(
1299 BIND_OPTS* pbindopts);
1301 HRESULT (CALLBACK *GetRunningObjectTable)(
1303 IRunningObjectTable** pprot);
1305 HRESULT (CALLBACK *RegisterObjectParam)(
1310 HRESULT (CALLBACK *GetObjectParam)(
1315 HRESULT (CALLBACK *EnumObjectParam)(
1317 IEnumString** ppenum);
1319 HRESULT (CALLBACK *RevokeObjectParam)(
1325 #define IBindCtx_IMETHODS \
1327 ICOM_METHOD1 (HRESULT,RegisterObjectBound,IUnknown*,punk) \
1328 ICOM_METHOD1 (HRESULT,RevokeObjectBound,IUnknown*,punk) \
1329 ICOM_METHOD (HRESULT,ReleaseBoundObjects) \
1330 ICOM_METHOD1 (HRESULT,SetBindOptions,BIND_OPTS*,pbindopts) \
1331 ICOM_METHOD1 (HRESULT,GetBindOptions,BIND_OPTS*,pbindopts) \
1332 ICOM_METHOD1 (HRESULT,GetRunningObjectTable,IRunningObjectTable**,pprot) \
1333 ICOM_METHOD2 (HRESULT,RegisterObjectParam,LPOLESTR,pszKey,IUnknown*,punk) \
1334 ICOM_METHOD2 (HRESULT,GetObjectParam,LPOLESTR,pszKey,IUnknown**,ppunk) \
1335 ICOM_METHOD1 (HRESULT,EnumObjectParam,IEnumString**,ppenum) \
1336 ICOM_METHOD1 (HRESULT,RevokeObjectParam,LPOLESTR,pszKey)
1338 /*** IUnknown methods ***/
1339 #define IBindCtx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1340 #define IBindCtx_AddRef(p) (p)->lpVtbl->AddRef(p)
1341 #define IBindCtx_Release(p) (p)->lpVtbl->Release(p)
1342 /*** IBindCtx methods ***/
1343 #define IBindCtx_RegisterObjectBound(p,a) (p)->lpVtbl->RegisterObjectBound(p,a)
1344 #define IBindCtx_RevokeObjectBound(p,a) (p)->lpVtbl->RevokeObjectBound(p,a)
1345 #define IBindCtx_ReleaseBoundObjects(p) (p)->lpVtbl->ReleaseBoundObjects(p)
1346 #define IBindCtx_SetBindOptions(p,a) (p)->lpVtbl->SetBindOptions(p,a)
1347 #define IBindCtx_GetBindOptions(p,a) (p)->lpVtbl->GetBindOptions(p,a)
1348 #define IBindCtx_GetRunningObjectTable(p,a) (p)->lpVtbl->GetRunningObjectTable(p,a)
1349 #define IBindCtx_RegisterObjectParam(p,a,b) (p)->lpVtbl->RegisterObjectParam(p,a,b)
1350 #define IBindCtx_GetObjectParam(p,a,b) (p)->lpVtbl->GetObjectParam(p,a,b)
1351 #define IBindCtx_EnumObjectParam(p,a) (p)->lpVtbl->EnumObjectParam(p,a)
1352 #define IBindCtx_RevokeObjectParam(p,a) (p)->lpVtbl->RevokeObjectParam(p,a)
1356 HRESULT CALLBACK IBindCtx_RegisterObjectBound_Proxy(
1359 void __RPC_STUB IBindCtx_RegisterObjectBound_Stub(
1360 struct IRpcStubBuffer* This,
1361 struct IRpcChannelBuffer* pRpcChannelBuffer,
1362 PRPC_MESSAGE pRpcMessage,
1363 DWORD* pdwStubPhase);
1364 HRESULT CALLBACK IBindCtx_RevokeObjectBound_Proxy(
1367 void __RPC_STUB IBindCtx_RevokeObjectBound_Stub(
1368 struct IRpcStubBuffer* This,
1369 struct IRpcChannelBuffer* pRpcChannelBuffer,
1370 PRPC_MESSAGE pRpcMessage,
1371 DWORD* pdwStubPhase);
1372 HRESULT CALLBACK IBindCtx_ReleaseBoundObjects_Proxy(
1374 void __RPC_STUB IBindCtx_ReleaseBoundObjects_Stub(
1375 struct IRpcStubBuffer* This,
1376 struct IRpcChannelBuffer* pRpcChannelBuffer,
1377 PRPC_MESSAGE pRpcMessage,
1378 DWORD* pdwStubPhase);
1379 HRESULT CALLBACK IBindCtx_RemoteSetBindOptions_Proxy(
1381 BIND_OPTS2* pbindopts);
1382 void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
1383 struct IRpcStubBuffer* This,
1384 struct IRpcChannelBuffer* pRpcChannelBuffer,
1385 PRPC_MESSAGE pRpcMessage,
1386 DWORD* pdwStubPhase);
1387 HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
1389 BIND_OPTS* pbindopts);
1390 HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
1392 BIND_OPTS2* pbindopts);
1393 HRESULT CALLBACK IBindCtx_RemoteGetBindOptions_Proxy(
1395 BIND_OPTS2* pbindopts);
1396 void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
1397 struct IRpcStubBuffer* This,
1398 struct IRpcChannelBuffer* pRpcChannelBuffer,
1399 PRPC_MESSAGE pRpcMessage,
1400 DWORD* pdwStubPhase);
1401 HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
1403 BIND_OPTS* pbindopts);
1404 HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
1406 BIND_OPTS2* pbindopts);
1407 HRESULT CALLBACK IBindCtx_GetRunningObjectTable_Proxy(
1409 IRunningObjectTable** pprot);
1410 void __RPC_STUB IBindCtx_GetRunningObjectTable_Stub(
1411 struct IRpcStubBuffer* This,
1412 struct IRpcChannelBuffer* pRpcChannelBuffer,
1413 PRPC_MESSAGE pRpcMessage,
1414 DWORD* pdwStubPhase);
1415 HRESULT CALLBACK IBindCtx_RegisterObjectParam_Proxy(
1419 void __RPC_STUB IBindCtx_RegisterObjectParam_Stub(
1420 struct IRpcStubBuffer* This,
1421 struct IRpcChannelBuffer* pRpcChannelBuffer,
1422 PRPC_MESSAGE pRpcMessage,
1423 DWORD* pdwStubPhase);
1424 HRESULT CALLBACK IBindCtx_GetObjectParam_Proxy(
1428 void __RPC_STUB IBindCtx_GetObjectParam_Stub(
1429 struct IRpcStubBuffer* This,
1430 struct IRpcChannelBuffer* pRpcChannelBuffer,
1431 PRPC_MESSAGE pRpcMessage,
1432 DWORD* pdwStubPhase);
1433 HRESULT CALLBACK IBindCtx_EnumObjectParam_Proxy(
1435 IEnumString** ppenum);
1436 void __RPC_STUB IBindCtx_EnumObjectParam_Stub(
1437 struct IRpcStubBuffer* This,
1438 struct IRpcChannelBuffer* pRpcChannelBuffer,
1439 PRPC_MESSAGE pRpcMessage,
1440 DWORD* pdwStubPhase);
1441 HRESULT CALLBACK IBindCtx_RevokeObjectParam_Proxy(
1444 void __RPC_STUB IBindCtx_RevokeObjectParam_Stub(
1445 struct IRpcStubBuffer* This,
1446 struct IRpcChannelBuffer* pRpcChannelBuffer,
1447 PRPC_MESSAGE pRpcMessage,
1448 DWORD* pdwStubPhase);
1450 typedef struct IEnumMoniker IEnumMoniker;
1451 typedef IEnumMoniker *LPENUMMONIKER;
1453 /*****************************************************************************
1454 * IEnumMoniker interface
1456 DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1457 #if defined(__cplusplus) && !defined(CINTERFACE)
1458 struct IEnumMoniker: IUnknown {
1460 virtual HRESULT CALLBACK Next(
1463 ULONG* pceltFetched) = 0;
1465 virtual HRESULT CALLBACK Skip(
1468 virtual HRESULT CALLBACK Reset(
1471 virtual HRESULT CALLBACK Clone(
1472 IEnumMoniker** ppenum) = 0;
1474 } ICOM_COM_INTERFACE_ATTRIBUTE;
1476 typedef struct IEnumMonikerVtbl IEnumMonikerVtbl;
1477 struct IEnumMoniker {
1478 const IEnumMonikerVtbl* lpVtbl;
1480 struct IEnumMonikerVtbl {
1481 ICOM_MSVTABLE_COMPAT_FIELDS
1483 /*** IUnknown methods ***/
1484 HRESULT (CALLBACK *QueryInterface)(
1489 ULONG (CALLBACK *AddRef)(
1490 IEnumMoniker* This);
1492 ULONG (CALLBACK *Release)(
1493 IEnumMoniker* This);
1495 /*** IEnumMoniker methods ***/
1496 HRESULT (CALLBACK *Next)(
1500 ULONG* pceltFetched);
1502 HRESULT (CALLBACK *Skip)(
1506 HRESULT (CALLBACK *Reset)(
1507 IEnumMoniker* This);
1509 HRESULT (CALLBACK *Clone)(
1511 IEnumMoniker** ppenum);
1515 #define IEnumMoniker_IMETHODS \
1517 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,IMoniker**,rgelt,ULONG*,pceltFetched) \
1518 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
1519 ICOM_METHOD (HRESULT,Reset) \
1520 ICOM_METHOD1 (HRESULT,Clone,IEnumMoniker**,ppenum)
1522 /*** IUnknown methods ***/
1523 #define IEnumMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1524 #define IEnumMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
1525 #define IEnumMoniker_Release(p) (p)->lpVtbl->Release(p)
1526 /*** IEnumMoniker methods ***/
1527 #define IEnumMoniker_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1528 #define IEnumMoniker_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1529 #define IEnumMoniker_Reset(p) (p)->lpVtbl->Reset(p)
1530 #define IEnumMoniker_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1534 HRESULT CALLBACK IEnumMoniker_RemoteNext_Proxy(
1538 ULONG* pceltFetched);
1539 void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
1540 struct IRpcStubBuffer* This,
1541 struct IRpcChannelBuffer* pRpcChannelBuffer,
1542 PRPC_MESSAGE pRpcMessage,
1543 DWORD* pdwStubPhase);
1544 HRESULT CALLBACK IEnumMoniker_Next_Proxy(
1548 ULONG* pceltFetched);
1549 HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
1553 ULONG* pceltFetched);
1554 HRESULT CALLBACK IEnumMoniker_Skip_Proxy(
1557 void __RPC_STUB IEnumMoniker_Skip_Stub(
1558 struct IRpcStubBuffer* This,
1559 struct IRpcChannelBuffer* pRpcChannelBuffer,
1560 PRPC_MESSAGE pRpcMessage,
1561 DWORD* pdwStubPhase);
1562 HRESULT CALLBACK IEnumMoniker_Reset_Proxy(
1563 IEnumMoniker* This);
1564 void __RPC_STUB IEnumMoniker_Reset_Stub(
1565 struct IRpcStubBuffer* This,
1566 struct IRpcChannelBuffer* pRpcChannelBuffer,
1567 PRPC_MESSAGE pRpcMessage,
1568 DWORD* pdwStubPhase);
1569 HRESULT CALLBACK IEnumMoniker_Clone_Proxy(
1571 IEnumMoniker** ppenum);
1572 void __RPC_STUB IEnumMoniker_Clone_Stub(
1573 struct IRpcStubBuffer* This,
1574 struct IRpcChannelBuffer* pRpcChannelBuffer,
1575 PRPC_MESSAGE pRpcMessage,
1576 DWORD* pdwStubPhase);
1578 typedef struct IRunnableObject IRunnableObject;
1579 typedef IRunnableObject *LPRUNNABLEOBJECT;
1581 /*****************************************************************************
1582 * IRunnableObject interface
1584 DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1585 #if defined(__cplusplus) && !defined(CINTERFACE)
1586 struct IRunnableObject: IUnknown {
1588 virtual HRESULT CALLBACK GetRunningClass(
1589 LPCLSID lpClsid) = 0;
1591 virtual HRESULT CALLBACK Run(
1594 virtual BOOL CALLBACK IsRunning(
1597 virtual HRESULT CALLBACK LockRunning(
1599 BOOL fLastUnlockCloses) = 0;
1601 virtual HRESULT CALLBACK SetContainedObject(
1602 BOOL fContained) = 0;
1604 } ICOM_COM_INTERFACE_ATTRIBUTE;
1606 typedef struct IRunnableObjectVtbl IRunnableObjectVtbl;
1607 struct IRunnableObject {
1608 const IRunnableObjectVtbl* lpVtbl;
1610 struct IRunnableObjectVtbl {
1611 ICOM_MSVTABLE_COMPAT_FIELDS
1613 /*** IUnknown methods ***/
1614 HRESULT (CALLBACK *QueryInterface)(
1615 IRunnableObject* This,
1619 ULONG (CALLBACK *AddRef)(
1620 IRunnableObject* This);
1622 ULONG (CALLBACK *Release)(
1623 IRunnableObject* This);
1625 /*** IRunnableObject methods ***/
1626 HRESULT (CALLBACK *GetRunningClass)(
1627 IRunnableObject* This,
1630 HRESULT (CALLBACK *Run)(
1631 IRunnableObject* This,
1634 BOOL (CALLBACK *IsRunning)(
1635 IRunnableObject* This);
1637 HRESULT (CALLBACK *LockRunning)(
1638 IRunnableObject* This,
1640 BOOL fLastUnlockCloses);
1642 HRESULT (CALLBACK *SetContainedObject)(
1643 IRunnableObject* This,
1648 #define IRunnableObject_IMETHODS \
1650 ICOM_METHOD1 (HRESULT,GetRunningClass,LPCLSID,lpClsid) \
1651 ICOM_METHOD1 (HRESULT,Run,LPBINDCTX,pbc) \
1652 ICOM_METHOD (BOOL,IsRunning) \
1653 ICOM_METHOD2 (HRESULT,LockRunning,BOOL,fLock,BOOL,fLastUnlockCloses) \
1654 ICOM_METHOD1 (HRESULT,SetContainedObject,BOOL,fContained)
1656 /*** IUnknown methods ***/
1657 #define IRunnableObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1658 #define IRunnableObject_AddRef(p) (p)->lpVtbl->AddRef(p)
1659 #define IRunnableObject_Release(p) (p)->lpVtbl->Release(p)
1660 /*** IRunnableObject methods ***/
1661 #define IRunnableObject_GetRunningClass(p,a) (p)->lpVtbl->GetRunningClass(p,a)
1662 #define IRunnableObject_Run(p,a) (p)->lpVtbl->Run(p,a)
1663 #define IRunnableObject_IsRunning(p) (p)->lpVtbl->IsRunning(p)
1664 #define IRunnableObject_LockRunning(p,a,b) (p)->lpVtbl->LockRunning(p,a,b)
1665 #define IRunnableObject_SetContainedObject(p,a) (p)->lpVtbl->SetContainedObject(p,a)
1669 HRESULT CALLBACK IRunnableObject_GetRunningClass_Proxy(
1670 IRunnableObject* This,
1672 void __RPC_STUB IRunnableObject_GetRunningClass_Stub(
1673 struct IRpcStubBuffer* This,
1674 struct IRpcChannelBuffer* pRpcChannelBuffer,
1675 PRPC_MESSAGE pRpcMessage,
1676 DWORD* pdwStubPhase);
1677 HRESULT CALLBACK IRunnableObject_Run_Proxy(
1678 IRunnableObject* This,
1680 void __RPC_STUB IRunnableObject_Run_Stub(
1681 struct IRpcStubBuffer* This,
1682 struct IRpcChannelBuffer* pRpcChannelBuffer,
1683 PRPC_MESSAGE pRpcMessage,
1684 DWORD* pdwStubPhase);
1685 HRESULT CALLBACK IRunnableObject_RemoteIsRunning_Proxy(
1686 IRunnableObject* This);
1687 void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
1688 struct IRpcStubBuffer* This,
1689 struct IRpcChannelBuffer* pRpcChannelBuffer,
1690 PRPC_MESSAGE pRpcMessage,
1691 DWORD* pdwStubPhase);
1692 BOOL CALLBACK IRunnableObject_IsRunning_Proxy(
1693 IRunnableObject* This);
1694 HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
1695 IRunnableObject* This);
1696 HRESULT CALLBACK IRunnableObject_LockRunning_Proxy(
1697 IRunnableObject* This,
1699 BOOL fLastUnlockCloses);
1700 void __RPC_STUB IRunnableObject_LockRunning_Stub(
1701 struct IRpcStubBuffer* This,
1702 struct IRpcChannelBuffer* pRpcChannelBuffer,
1703 PRPC_MESSAGE pRpcMessage,
1704 DWORD* pdwStubPhase);
1705 HRESULT CALLBACK IRunnableObject_SetContainedObject_Proxy(
1706 IRunnableObject* This,
1708 void __RPC_STUB IRunnableObject_SetContainedObject_Stub(
1709 struct IRpcStubBuffer* This,
1710 struct IRpcChannelBuffer* pRpcChannelBuffer,
1711 PRPC_MESSAGE pRpcMessage,
1712 DWORD* pdwStubPhase);
1717 typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
1719 /*****************************************************************************
1720 * IRunningObjectTable interface
1722 DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1723 #if defined(__cplusplus) && !defined(CINTERFACE)
1724 struct IRunningObjectTable: IUnknown {
1726 virtual HRESULT CALLBACK Register(
1728 IUnknown* punkObject,
1729 IMoniker* pmkObjectName,
1730 DWORD* pdwRegister) = 0;
1732 virtual HRESULT CALLBACK Revoke(
1733 DWORD dwRegister) = 0;
1735 virtual HRESULT CALLBACK IsRunning(
1736 IMoniker* pmkObjectName) = 0;
1738 virtual HRESULT CALLBACK GetObject(
1739 IMoniker* pmkObjectName,
1740 IUnknown** ppunkObject) = 0;
1742 virtual HRESULT CALLBACK NoteChangeTime(
1744 FILETIME* pfiletime) = 0;
1746 virtual HRESULT CALLBACK GetTimeOfLastChange(
1747 IMoniker* pmkObjectName,
1748 FILETIME* pfiletime) = 0;
1750 virtual HRESULT CALLBACK EnumRunning(
1751 IEnumMoniker** ppenumMoniker) = 0;
1753 } ICOM_COM_INTERFACE_ATTRIBUTE;
1755 typedef struct IRunningObjectTableVtbl IRunningObjectTableVtbl;
1756 struct IRunningObjectTable {
1757 const IRunningObjectTableVtbl* lpVtbl;
1759 struct IRunningObjectTableVtbl {
1760 ICOM_MSVTABLE_COMPAT_FIELDS
1762 /*** IUnknown methods ***/
1763 HRESULT (CALLBACK *QueryInterface)(
1764 IRunningObjectTable* This,
1768 ULONG (CALLBACK *AddRef)(
1769 IRunningObjectTable* This);
1771 ULONG (CALLBACK *Release)(
1772 IRunningObjectTable* This);
1774 /*** IRunningObjectTable methods ***/
1775 HRESULT (CALLBACK *Register)(
1776 IRunningObjectTable* This,
1778 IUnknown* punkObject,
1779 IMoniker* pmkObjectName,
1780 DWORD* pdwRegister);
1782 HRESULT (CALLBACK *Revoke)(
1783 IRunningObjectTable* This,
1786 HRESULT (CALLBACK *IsRunning)(
1787 IRunningObjectTable* This,
1788 IMoniker* pmkObjectName);
1790 HRESULT (CALLBACK *GetObject)(
1791 IRunningObjectTable* This,
1792 IMoniker* pmkObjectName,
1793 IUnknown** ppunkObject);
1795 HRESULT (CALLBACK *NoteChangeTime)(
1796 IRunningObjectTable* This,
1798 FILETIME* pfiletime);
1800 HRESULT (CALLBACK *GetTimeOfLastChange)(
1801 IRunningObjectTable* This,
1802 IMoniker* pmkObjectName,
1803 FILETIME* pfiletime);
1805 HRESULT (CALLBACK *EnumRunning)(
1806 IRunningObjectTable* This,
1807 IEnumMoniker** ppenumMoniker);
1811 #define IRunningObjectTable_IMETHODS \
1813 ICOM_METHOD4 (HRESULT,Register,DWORD,grfFlags,IUnknown*,punkObject,IMoniker*,pmkObjectName,DWORD*,pdwRegister) \
1814 ICOM_METHOD1 (HRESULT,Revoke,DWORD,dwRegister) \
1815 ICOM_METHOD1 (HRESULT,IsRunning,IMoniker*,pmkObjectName) \
1816 ICOM_METHOD2 (HRESULT,GetObject,IMoniker*,pmkObjectName,IUnknown**,ppunkObject) \
1817 ICOM_METHOD2 (HRESULT,NoteChangeTime,DWORD,dwRegister,FILETIME*,pfiletime) \
1818 ICOM_METHOD2 (HRESULT,GetTimeOfLastChange,IMoniker*,pmkObjectName,FILETIME*,pfiletime) \
1819 ICOM_METHOD1 (HRESULT,EnumRunning,IEnumMoniker**,ppenumMoniker)
1821 /*** IUnknown methods ***/
1822 #define IRunningObjectTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1823 #define IRunningObjectTable_AddRef(p) (p)->lpVtbl->AddRef(p)
1824 #define IRunningObjectTable_Release(p) (p)->lpVtbl->Release(p)
1825 /*** IRunningObjectTable methods ***/
1826 #define IRunningObjectTable_Register(p,a,b,c,d) (p)->lpVtbl->Register(p,a,b,c,d)
1827 #define IRunningObjectTable_Revoke(p,a) (p)->lpVtbl->Revoke(p,a)
1828 #define IRunningObjectTable_IsRunning(p,a) (p)->lpVtbl->IsRunning(p,a)
1829 #define IRunningObjectTable_GetObject(p,a,b) (p)->lpVtbl->GetObject(p,a,b)
1830 #define IRunningObjectTable_NoteChangeTime(p,a,b) (p)->lpVtbl->NoteChangeTime(p,a,b)
1831 #define IRunningObjectTable_GetTimeOfLastChange(p,a,b) (p)->lpVtbl->GetTimeOfLastChange(p,a,b)
1832 #define IRunningObjectTable_EnumRunning(p,a) (p)->lpVtbl->EnumRunning(p,a)
1836 HRESULT CALLBACK IRunningObjectTable_Register_Proxy(
1837 IRunningObjectTable* This,
1839 IUnknown* punkObject,
1840 IMoniker* pmkObjectName,
1841 DWORD* pdwRegister);
1842 void __RPC_STUB IRunningObjectTable_Register_Stub(
1843 struct IRpcStubBuffer* This,
1844 struct IRpcChannelBuffer* pRpcChannelBuffer,
1845 PRPC_MESSAGE pRpcMessage,
1846 DWORD* pdwStubPhase);
1847 HRESULT CALLBACK IRunningObjectTable_Revoke_Proxy(
1848 IRunningObjectTable* This,
1850 void __RPC_STUB IRunningObjectTable_Revoke_Stub(
1851 struct IRpcStubBuffer* This,
1852 struct IRpcChannelBuffer* pRpcChannelBuffer,
1853 PRPC_MESSAGE pRpcMessage,
1854 DWORD* pdwStubPhase);
1855 HRESULT CALLBACK IRunningObjectTable_IsRunning_Proxy(
1856 IRunningObjectTable* This,
1857 IMoniker* pmkObjectName);
1858 void __RPC_STUB IRunningObjectTable_IsRunning_Stub(
1859 struct IRpcStubBuffer* This,
1860 struct IRpcChannelBuffer* pRpcChannelBuffer,
1861 PRPC_MESSAGE pRpcMessage,
1862 DWORD* pdwStubPhase);
1863 HRESULT CALLBACK IRunningObjectTable_GetObject_Proxy(
1864 IRunningObjectTable* This,
1865 IMoniker* pmkObjectName,
1866 IUnknown** ppunkObject);
1867 void __RPC_STUB IRunningObjectTable_GetObject_Stub(
1868 struct IRpcStubBuffer* This,
1869 struct IRpcChannelBuffer* pRpcChannelBuffer,
1870 PRPC_MESSAGE pRpcMessage,
1871 DWORD* pdwStubPhase);
1872 HRESULT CALLBACK IRunningObjectTable_NoteChangeTime_Proxy(
1873 IRunningObjectTable* This,
1875 FILETIME* pfiletime);
1876 void __RPC_STUB IRunningObjectTable_NoteChangeTime_Stub(
1877 struct IRpcStubBuffer* This,
1878 struct IRpcChannelBuffer* pRpcChannelBuffer,
1879 PRPC_MESSAGE pRpcMessage,
1880 DWORD* pdwStubPhase);
1881 HRESULT CALLBACK IRunningObjectTable_GetTimeOfLastChange_Proxy(
1882 IRunningObjectTable* This,
1883 IMoniker* pmkObjectName,
1884 FILETIME* pfiletime);
1885 void __RPC_STUB IRunningObjectTable_GetTimeOfLastChange_Stub(
1886 struct IRpcStubBuffer* This,
1887 struct IRpcChannelBuffer* pRpcChannelBuffer,
1888 PRPC_MESSAGE pRpcMessage,
1889 DWORD* pdwStubPhase);
1890 HRESULT CALLBACK IRunningObjectTable_EnumRunning_Proxy(
1891 IRunningObjectTable* This,
1892 IEnumMoniker** ppenumMoniker);
1893 void __RPC_STUB IRunningObjectTable_EnumRunning_Stub(
1894 struct IRpcStubBuffer* This,
1895 struct IRpcChannelBuffer* pRpcChannelBuffer,
1896 PRPC_MESSAGE pRpcMessage,
1897 DWORD* pdwStubPhase);
1899 typedef struct IPersist IPersist;
1900 typedef IPersist *LPPERSIST;
1902 /*****************************************************************************
1903 * IPersist interface
1905 DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1906 #if defined(__cplusplus) && !defined(CINTERFACE)
1907 struct IPersist: IUnknown {
1909 virtual HRESULT CALLBACK GetClassID(
1910 CLSID* pClassID) = 0;
1912 } ICOM_COM_INTERFACE_ATTRIBUTE;
1914 typedef struct IPersistVtbl IPersistVtbl;
1916 const IPersistVtbl* lpVtbl;
1918 struct IPersistVtbl {
1919 ICOM_MSVTABLE_COMPAT_FIELDS
1921 /*** IUnknown methods ***/
1922 HRESULT (CALLBACK *QueryInterface)(
1927 ULONG (CALLBACK *AddRef)(
1930 ULONG (CALLBACK *Release)(
1933 /*** IPersist methods ***/
1934 HRESULT (CALLBACK *GetClassID)(
1940 #define IPersist_IMETHODS \
1942 ICOM_METHOD1 (HRESULT,GetClassID,CLSID*,pClassID)
1944 /*** IUnknown methods ***/
1945 #define IPersist_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1946 #define IPersist_AddRef(p) (p)->lpVtbl->AddRef(p)
1947 #define IPersist_Release(p) (p)->lpVtbl->Release(p)
1948 /*** IPersist methods ***/
1949 #define IPersist_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
1953 HRESULT CALLBACK IPersist_GetClassID_Proxy(
1956 void __RPC_STUB IPersist_GetClassID_Stub(
1957 struct IRpcStubBuffer* This,
1958 struct IRpcChannelBuffer* pRpcChannelBuffer,
1959 PRPC_MESSAGE pRpcMessage,
1960 DWORD* pdwStubPhase);
1962 typedef struct IPersistStream IPersistStream;
1963 typedef IPersistStream *LPPERSISTSTREAM;
1965 /*****************************************************************************
1966 * IPersistStream interface
1968 DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1969 #if defined(__cplusplus) && !defined(CINTERFACE)
1970 struct IPersistStream: IPersist {
1972 virtual HRESULT CALLBACK IsDirty(
1975 virtual HRESULT CALLBACK Load(
1978 virtual HRESULT CALLBACK Save(
1980 BOOL fClearDirty) = 0;
1982 virtual HRESULT CALLBACK GetSizeMax(
1983 ULARGE_INTEGER* pcbSize) = 0;
1985 } ICOM_COM_INTERFACE_ATTRIBUTE;
1987 typedef struct IPersistStreamVtbl IPersistStreamVtbl;
1988 struct IPersistStream {
1989 const IPersistStreamVtbl* lpVtbl;
1991 struct IPersistStreamVtbl {
1992 ICOM_MSVTABLE_COMPAT_FIELDS
1994 /*** IUnknown methods ***/
1995 HRESULT (CALLBACK *QueryInterface)(
1996 IPersistStream* This,
2000 ULONG (CALLBACK *AddRef)(
2001 IPersistStream* This);
2003 ULONG (CALLBACK *Release)(
2004 IPersistStream* This);
2006 /*** IPersist methods ***/
2007 HRESULT (CALLBACK *GetClassID)(
2008 IPersistStream* This,
2011 /*** IPersistStream methods ***/
2012 HRESULT (CALLBACK *IsDirty)(
2013 IPersistStream* This);
2015 HRESULT (CALLBACK *Load)(
2016 IPersistStream* This,
2019 HRESULT (CALLBACK *Save)(
2020 IPersistStream* This,
2024 HRESULT (CALLBACK *GetSizeMax)(
2025 IPersistStream* This,
2026 ULARGE_INTEGER* pcbSize);
2030 #define IPersistStream_IMETHODS \
2032 ICOM_METHOD (HRESULT,IsDirty) \
2033 ICOM_METHOD1 (HRESULT,Load,IStream*,pStm) \
2034 ICOM_METHOD2 (HRESULT,Save,IStream*,pStm,BOOL,fClearDirty) \
2035 ICOM_METHOD1 (HRESULT,GetSizeMax,ULARGE_INTEGER*,pcbSize)
2037 /*** IUnknown methods ***/
2038 #define IPersistStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2039 #define IPersistStream_AddRef(p) (p)->lpVtbl->AddRef(p)
2040 #define IPersistStream_Release(p) (p)->lpVtbl->Release(p)
2041 /*** IPersist methods ***/
2042 #define IPersistStream_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2043 /*** IPersistStream methods ***/
2044 #define IPersistStream_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2045 #define IPersistStream_Load(p,a) (p)->lpVtbl->Load(p,a)
2046 #define IPersistStream_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2047 #define IPersistStream_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2051 HRESULT CALLBACK IPersistStream_IsDirty_Proxy(
2052 IPersistStream* This);
2053 void __RPC_STUB IPersistStream_IsDirty_Stub(
2054 struct IRpcStubBuffer* This,
2055 struct IRpcChannelBuffer* pRpcChannelBuffer,
2056 PRPC_MESSAGE pRpcMessage,
2057 DWORD* pdwStubPhase);
2058 HRESULT CALLBACK IPersistStream_Load_Proxy(
2059 IPersistStream* This,
2061 void __RPC_STUB IPersistStream_Load_Stub(
2062 struct IRpcStubBuffer* This,
2063 struct IRpcChannelBuffer* pRpcChannelBuffer,
2064 PRPC_MESSAGE pRpcMessage,
2065 DWORD* pdwStubPhase);
2066 HRESULT CALLBACK IPersistStream_Save_Proxy(
2067 IPersistStream* This,
2070 void __RPC_STUB IPersistStream_Save_Stub(
2071 struct IRpcStubBuffer* This,
2072 struct IRpcChannelBuffer* pRpcChannelBuffer,
2073 PRPC_MESSAGE pRpcMessage,
2074 DWORD* pdwStubPhase);
2075 HRESULT CALLBACK IPersistStream_GetSizeMax_Proxy(
2076 IPersistStream* This,
2077 ULARGE_INTEGER* pcbSize);
2078 void __RPC_STUB IPersistStream_GetSizeMax_Stub(
2079 struct IRpcStubBuffer* This,
2080 struct IRpcChannelBuffer* pRpcChannelBuffer,
2081 PRPC_MESSAGE pRpcMessage,
2082 DWORD* pdwStubPhase);
2084 typedef IMoniker *LPMONIKER;
2086 typedef enum tagMKSYS {
2088 MKSYS_GENERICCOMPOSITE = 1,
2089 MKSYS_FILEMONIKER = 2,
2090 MKSYS_ANTIMONIKER = 3,
2091 MKSYS_ITEMMONIKER = 4,
2092 MKSYS_POINTERMONIKER = 5,
2093 MKSYS_CLASSMONIKER = 7
2096 typedef enum tagMKREDUCE {
2097 MKRREDUCE_ONE = 3 << 16,
2098 MKRREDUCE_TOUSER = 2 << 16,
2099 MKRREDUCE_THROUGHUSER = 1 << 16,
2103 /*****************************************************************************
2104 * IMoniker interface
2106 DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2107 #if defined(__cplusplus) && !defined(CINTERFACE)
2108 struct IMoniker: IPersistStream {
2110 virtual HRESULT CALLBACK BindToObject(
2112 IMoniker* pmkToLeft,
2114 void** ppvResult) = 0;
2116 virtual HRESULT CALLBACK BindToStorage(
2118 IMoniker* pmkToLeft,
2122 virtual HRESULT CALLBACK Reduce(
2124 DWORD dwReduceHowFar,
2125 IMoniker** ppmkToLeft,
2126 IMoniker** ppmkReduced) = 0;
2128 virtual HRESULT CALLBACK ComposeWith(
2130 BOOL fOnlyIfNotGeneric,
2131 IMoniker** ppmkComposite) = 0;
2133 virtual HRESULT CALLBACK Enum(
2135 IEnumMoniker** ppenumMoniker) = 0;
2137 virtual HRESULT CALLBACK IsEqual(
2138 IMoniker* pmkOtherMoniker) = 0;
2140 virtual HRESULT CALLBACK Hash(
2141 DWORD* pdwHash) = 0;
2143 virtual HRESULT CALLBACK IsRunning(
2145 IMoniker* pmkToLeft,
2146 IMoniker* pmkNewlyRunning) = 0;
2148 virtual HRESULT CALLBACK GetTimeOfLastChange(
2150 IMoniker* pmkToLeft,
2151 FILETIME* pFileTime) = 0;
2153 virtual HRESULT CALLBACK Inverse(
2154 IMoniker** ppmk) = 0;
2156 virtual HRESULT CALLBACK CommonPrefixWith(
2158 IMoniker** ppmkPrefix) = 0;
2160 virtual HRESULT CALLBACK RelativePathTo(
2162 IMoniker** ppmkRelPath) = 0;
2164 virtual HRESULT CALLBACK GetDisplayName(
2166 IMoniker* pmkToLeft,
2167 LPOLESTR* ppszDisplayName) = 0;
2169 virtual HRESULT CALLBACK ParseDisplayName(
2171 IMoniker* pmkToLeft,
2172 LPOLESTR pszDisplayName,
2174 IMoniker** ppmkOut) = 0;
2176 virtual HRESULT CALLBACK IsSystemMoniker(
2177 DWORD* pdwMksys) = 0;
2179 } ICOM_COM_INTERFACE_ATTRIBUTE;
2181 typedef struct IMonikerVtbl IMonikerVtbl;
2183 const IMonikerVtbl* lpVtbl;
2185 struct IMonikerVtbl {
2186 ICOM_MSVTABLE_COMPAT_FIELDS
2188 /*** IUnknown methods ***/
2189 HRESULT (CALLBACK *QueryInterface)(
2194 ULONG (CALLBACK *AddRef)(
2197 ULONG (CALLBACK *Release)(
2200 /*** IPersist methods ***/
2201 HRESULT (CALLBACK *GetClassID)(
2205 /*** IPersistStream methods ***/
2206 HRESULT (CALLBACK *IsDirty)(
2209 HRESULT (CALLBACK *Load)(
2213 HRESULT (CALLBACK *Save)(
2218 HRESULT (CALLBACK *GetSizeMax)(
2220 ULARGE_INTEGER* pcbSize);
2222 /*** IMoniker methods ***/
2223 HRESULT (CALLBACK *BindToObject)(
2226 IMoniker* pmkToLeft,
2230 HRESULT (CALLBACK *BindToStorage)(
2233 IMoniker* pmkToLeft,
2237 HRESULT (CALLBACK *Reduce)(
2240 DWORD dwReduceHowFar,
2241 IMoniker** ppmkToLeft,
2242 IMoniker** ppmkReduced);
2244 HRESULT (CALLBACK *ComposeWith)(
2247 BOOL fOnlyIfNotGeneric,
2248 IMoniker** ppmkComposite);
2250 HRESULT (CALLBACK *Enum)(
2253 IEnumMoniker** ppenumMoniker);
2255 HRESULT (CALLBACK *IsEqual)(
2257 IMoniker* pmkOtherMoniker);
2259 HRESULT (CALLBACK *Hash)(
2263 HRESULT (CALLBACK *IsRunning)(
2266 IMoniker* pmkToLeft,
2267 IMoniker* pmkNewlyRunning);
2269 HRESULT (CALLBACK *GetTimeOfLastChange)(
2272 IMoniker* pmkToLeft,
2273 FILETIME* pFileTime);
2275 HRESULT (CALLBACK *Inverse)(
2279 HRESULT (CALLBACK *CommonPrefixWith)(
2282 IMoniker** ppmkPrefix);
2284 HRESULT (CALLBACK *RelativePathTo)(
2287 IMoniker** ppmkRelPath);
2289 HRESULT (CALLBACK *GetDisplayName)(
2292 IMoniker* pmkToLeft,
2293 LPOLESTR* ppszDisplayName);
2295 HRESULT (CALLBACK *ParseDisplayName)(
2298 IMoniker* pmkToLeft,
2299 LPOLESTR pszDisplayName,
2301 IMoniker** ppmkOut);
2303 HRESULT (CALLBACK *IsSystemMoniker)(
2309 #define IMoniker_IMETHODS \
2310 IPersistStream_IMETHODS \
2311 ICOM_METHOD4 (HRESULT,BindToObject,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riidResult,void**,ppvResult) \
2312 ICOM_METHOD4 (HRESULT,BindToStorage,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riid,void**,ppvObj) \
2313 ICOM_METHOD4 (HRESULT,Reduce,IBindCtx*,pbc,DWORD,dwReduceHowFar,IMoniker**,ppmkToLeft,IMoniker**,ppmkReduced) \
2314 ICOM_METHOD3 (HRESULT,ComposeWith,IMoniker*,pmkRight,BOOL,fOnlyIfNotGeneric,IMoniker**,ppmkComposite) \
2315 ICOM_METHOD2 (HRESULT,Enum,BOOL,fForward,IEnumMoniker**,ppenumMoniker) \
2316 ICOM_METHOD1 (HRESULT,IsEqual,IMoniker*,pmkOtherMoniker) \
2317 ICOM_METHOD1 (HRESULT,Hash,DWORD*,pdwHash) \
2318 ICOM_METHOD3 (HRESULT,IsRunning,IBindCtx*,pbc,IMoniker*,pmkToLeft,IMoniker*,pmkNewlyRunning) \
2319 ICOM_METHOD3 (HRESULT,GetTimeOfLastChange,IBindCtx*,pbc,IMoniker*,pmkToLeft,FILETIME*,pFileTime) \
2320 ICOM_METHOD1 (HRESULT,Inverse,IMoniker**,ppmk) \
2321 ICOM_METHOD2 (HRESULT,CommonPrefixWith,IMoniker*,pmkOther,IMoniker**,ppmkPrefix) \
2322 ICOM_METHOD2 (HRESULT,RelativePathTo,IMoniker*,pmkOther,IMoniker**,ppmkRelPath) \
2323 ICOM_METHOD3 (HRESULT,GetDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR*,ppszDisplayName) \
2324 ICOM_METHOD5 (HRESULT,ParseDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR,pszDisplayName,ULONG*,pchEaten,IMoniker**,ppmkOut) \
2325 ICOM_METHOD1 (HRESULT,IsSystemMoniker,DWORD*,pdwMksys)
2327 /*** IUnknown methods ***/
2328 #define IMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2329 #define IMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
2330 #define IMoniker_Release(p) (p)->lpVtbl->Release(p)
2331 /*** IPersist methods ***/
2332 #define IMoniker_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
2333 /*** IPersistStream methods ***/
2334 #define IMoniker_IsDirty(p) (p)->lpVtbl->IsDirty(p)
2335 #define IMoniker_Load(p,a) (p)->lpVtbl->Load(p,a)
2336 #define IMoniker_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
2337 #define IMoniker_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
2338 /*** IMoniker methods ***/
2339 #define IMoniker_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
2340 #define IMoniker_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
2341 #define IMoniker_Reduce(p,a,b,c,d) (p)->lpVtbl->Reduce(p,a,b,c,d)
2342 #define IMoniker_ComposeWith(p,a,b,c) (p)->lpVtbl->ComposeWith(p,a,b,c)
2343 #define IMoniker_Enum(p,a,b) (p)->lpVtbl->Enum(p,a,b)
2344 #define IMoniker_IsEqual(p,a) (p)->lpVtbl->IsEqual(p,a)
2345 #define IMoniker_Hash(p,a) (p)->lpVtbl->Hash(p,a)
2346 #define IMoniker_IsRunning(p,a,b,c) (p)->lpVtbl->IsRunning(p,a,b,c)
2347 #define IMoniker_GetTimeOfLastChange(p,a,b,c) (p)->lpVtbl->GetTimeOfLastChange(p,a,b,c)
2348 #define IMoniker_Inverse(p,a) (p)->lpVtbl->Inverse(p,a)
2349 #define IMoniker_CommonPrefixWith(p,a,b) (p)->lpVtbl->CommonPrefixWith(p,a,b)
2350 #define IMoniker_RelativePathTo(p,a,b) (p)->lpVtbl->RelativePathTo(p,a,b)
2351 #define IMoniker_GetDisplayName(p,a,b,c) (p)->lpVtbl->GetDisplayName(p,a,b,c)
2352 #define IMoniker_ParseDisplayName(p,a,b,c,d,e) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e)
2353 #define IMoniker_IsSystemMoniker(p,a) (p)->lpVtbl->IsSystemMoniker(p,a)
2357 HRESULT CALLBACK IMoniker_RemoteBindToObject_Proxy(
2360 IMoniker* pmkToLeft,
2362 IUnknown** ppvResult);
2363 void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
2364 struct IRpcStubBuffer* This,
2365 struct IRpcChannelBuffer* pRpcChannelBuffer,
2366 PRPC_MESSAGE pRpcMessage,
2367 DWORD* pdwStubPhase);
2368 HRESULT CALLBACK IMoniker_BindToObject_Proxy(
2371 IMoniker* pmkToLeft,
2374 HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
2377 IMoniker* pmkToLeft,
2379 IUnknown** ppvResult);
2380 HRESULT CALLBACK IMoniker_RemoteBindToStorage_Proxy(
2383 IMoniker* pmkToLeft,
2386 void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
2387 struct IRpcStubBuffer* This,
2388 struct IRpcChannelBuffer* pRpcChannelBuffer,
2389 PRPC_MESSAGE pRpcMessage,
2390 DWORD* pdwStubPhase);
2391 HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
2394 IMoniker* pmkToLeft,
2397 HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
2400 IMoniker* pmkToLeft,
2403 HRESULT CALLBACK IMoniker_Reduce_Proxy(
2406 DWORD dwReduceHowFar,
2407 IMoniker** ppmkToLeft,
2408 IMoniker** ppmkReduced);
2409 void __RPC_STUB IMoniker_Reduce_Stub(
2410 struct IRpcStubBuffer* This,
2411 struct IRpcChannelBuffer* pRpcChannelBuffer,
2412 PRPC_MESSAGE pRpcMessage,
2413 DWORD* pdwStubPhase);
2414 HRESULT CALLBACK IMoniker_ComposeWith_Proxy(
2417 BOOL fOnlyIfNotGeneric,
2418 IMoniker** ppmkComposite);
2419 void __RPC_STUB IMoniker_ComposeWith_Stub(
2420 struct IRpcStubBuffer* This,
2421 struct IRpcChannelBuffer* pRpcChannelBuffer,
2422 PRPC_MESSAGE pRpcMessage,
2423 DWORD* pdwStubPhase);
2424 HRESULT CALLBACK IMoniker_Enum_Proxy(
2427 IEnumMoniker** ppenumMoniker);
2428 void __RPC_STUB IMoniker_Enum_Stub(
2429 struct IRpcStubBuffer* This,
2430 struct IRpcChannelBuffer* pRpcChannelBuffer,
2431 PRPC_MESSAGE pRpcMessage,
2432 DWORD* pdwStubPhase);
2433 HRESULT CALLBACK IMoniker_IsEqual_Proxy(
2435 IMoniker* pmkOtherMoniker);
2436 void __RPC_STUB IMoniker_IsEqual_Stub(
2437 struct IRpcStubBuffer* This,
2438 struct IRpcChannelBuffer* pRpcChannelBuffer,
2439 PRPC_MESSAGE pRpcMessage,
2440 DWORD* pdwStubPhase);
2441 HRESULT CALLBACK IMoniker_Hash_Proxy(
2444 void __RPC_STUB IMoniker_Hash_Stub(
2445 struct IRpcStubBuffer* This,
2446 struct IRpcChannelBuffer* pRpcChannelBuffer,
2447 PRPC_MESSAGE pRpcMessage,
2448 DWORD* pdwStubPhase);
2449 HRESULT CALLBACK IMoniker_IsRunning_Proxy(
2452 IMoniker* pmkToLeft,
2453 IMoniker* pmkNewlyRunning);
2454 void __RPC_STUB IMoniker_IsRunning_Stub(
2455 struct IRpcStubBuffer* This,
2456 struct IRpcChannelBuffer* pRpcChannelBuffer,
2457 PRPC_MESSAGE pRpcMessage,
2458 DWORD* pdwStubPhase);
2459 HRESULT CALLBACK IMoniker_GetTimeOfLastChange_Proxy(
2462 IMoniker* pmkToLeft,
2463 FILETIME* pFileTime);
2464 void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
2465 struct IRpcStubBuffer* This,
2466 struct IRpcChannelBuffer* pRpcChannelBuffer,
2467 PRPC_MESSAGE pRpcMessage,
2468 DWORD* pdwStubPhase);
2469 HRESULT CALLBACK IMoniker_Inverse_Proxy(
2472 void __RPC_STUB IMoniker_Inverse_Stub(
2473 struct IRpcStubBuffer* This,
2474 struct IRpcChannelBuffer* pRpcChannelBuffer,
2475 PRPC_MESSAGE pRpcMessage,
2476 DWORD* pdwStubPhase);
2477 HRESULT CALLBACK IMoniker_CommonPrefixWith_Proxy(
2480 IMoniker** ppmkPrefix);
2481 void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
2482 struct IRpcStubBuffer* This,
2483 struct IRpcChannelBuffer* pRpcChannelBuffer,
2484 PRPC_MESSAGE pRpcMessage,
2485 DWORD* pdwStubPhase);
2486 HRESULT CALLBACK IMoniker_RelativePathTo_Proxy(
2489 IMoniker** ppmkRelPath);
2490 void __RPC_STUB IMoniker_RelativePathTo_Stub(
2491 struct IRpcStubBuffer* This,
2492 struct IRpcChannelBuffer* pRpcChannelBuffer,
2493 PRPC_MESSAGE pRpcMessage,
2494 DWORD* pdwStubPhase);
2495 HRESULT CALLBACK IMoniker_GetDisplayName_Proxy(
2498 IMoniker* pmkToLeft,
2499 LPOLESTR* ppszDisplayName);
2500 void __RPC_STUB IMoniker_GetDisplayName_Stub(
2501 struct IRpcStubBuffer* This,
2502 struct IRpcChannelBuffer* pRpcChannelBuffer,
2503 PRPC_MESSAGE pRpcMessage,
2504 DWORD* pdwStubPhase);
2505 HRESULT CALLBACK IMoniker_ParseDisplayName_Proxy(
2508 IMoniker* pmkToLeft,
2509 LPOLESTR pszDisplayName,
2511 IMoniker** ppmkOut);
2512 void __RPC_STUB IMoniker_ParseDisplayName_Stub(
2513 struct IRpcStubBuffer* This,
2514 struct IRpcChannelBuffer* pRpcChannelBuffer,
2515 PRPC_MESSAGE pRpcMessage,
2516 DWORD* pdwStubPhase);
2517 HRESULT CALLBACK IMoniker_IsSystemMoniker_Proxy(
2520 void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
2521 struct IRpcStubBuffer* This,
2522 struct IRpcChannelBuffer* pRpcChannelBuffer,
2523 PRPC_MESSAGE pRpcMessage,
2524 DWORD* pdwStubPhase);
2526 typedef struct IROTData IROTData;
2527 /*****************************************************************************
2528 * IROTData interface
2530 DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
2531 #if defined(__cplusplus) && !defined(CINTERFACE)
2532 struct IROTData: IUnknown {
2534 virtual HRESULT CALLBACK GetComparisonData(
2537 ULONG* pcbData) = 0;
2539 } ICOM_COM_INTERFACE_ATTRIBUTE;
2541 typedef struct IROTDataVtbl IROTDataVtbl;
2543 const IROTDataVtbl* lpVtbl;
2545 struct IROTDataVtbl {
2546 ICOM_MSVTABLE_COMPAT_FIELDS
2548 /*** IUnknown methods ***/
2549 HRESULT (CALLBACK *QueryInterface)(
2554 ULONG (CALLBACK *AddRef)(
2557 ULONG (CALLBACK *Release)(
2560 /*** IROTData methods ***/
2561 HRESULT (CALLBACK *GetComparisonData)(
2569 #define IROTData_IMETHODS \
2571 ICOM_METHOD3 (HRESULT,GetComparisonData,byte*,pbData,ULONG,cbMax,ULONG*,pcbData)
2573 /*** IUnknown methods ***/
2574 #define IROTData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2575 #define IROTData_AddRef(p) (p)->lpVtbl->AddRef(p)
2576 #define IROTData_Release(p) (p)->lpVtbl->Release(p)
2577 /*** IROTData methods ***/
2578 #define IROTData_GetComparisonData(p,a,b,c) (p)->lpVtbl->GetComparisonData(p,a,b,c)
2582 HRESULT CALLBACK IROTData_GetComparisonData_Proxy(
2587 void __RPC_STUB IROTData_GetComparisonData_Stub(
2588 struct IRpcStubBuffer* This,
2589 struct IRpcChannelBuffer* pRpcChannelBuffer,
2590 PRPC_MESSAGE pRpcMessage,
2591 DWORD* pdwStubPhase);
2593 typedef IEnumString *LPENUMSTRING;
2595 /*****************************************************************************
2596 * IEnumString interface
2598 DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2599 #if defined(__cplusplus) && !defined(CINTERFACE)
2600 struct IEnumString: IUnknown {
2602 virtual HRESULT CALLBACK Next(
2605 ULONG* pceltFetched) = 0;
2607 virtual HRESULT CALLBACK Skip(
2610 virtual HRESULT CALLBACK Reset(
2613 virtual HRESULT CALLBACK Clone(
2614 IEnumString** ppenum) = 0;
2616 } ICOM_COM_INTERFACE_ATTRIBUTE;
2618 typedef struct IEnumStringVtbl IEnumStringVtbl;
2619 struct IEnumString {
2620 const IEnumStringVtbl* lpVtbl;
2622 struct IEnumStringVtbl {
2623 ICOM_MSVTABLE_COMPAT_FIELDS
2625 /*** IUnknown methods ***/
2626 HRESULT (CALLBACK *QueryInterface)(
2631 ULONG (CALLBACK *AddRef)(
2634 ULONG (CALLBACK *Release)(
2637 /*** IEnumString methods ***/
2638 HRESULT (CALLBACK *Next)(
2642 ULONG* pceltFetched);
2644 HRESULT (CALLBACK *Skip)(
2648 HRESULT (CALLBACK *Reset)(
2651 HRESULT (CALLBACK *Clone)(
2653 IEnumString** ppenum);
2657 #define IEnumString_IMETHODS \
2659 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,LPOLESTR*,rgelt,ULONG*,pceltFetched) \
2660 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
2661 ICOM_METHOD (HRESULT,Reset) \
2662 ICOM_METHOD1 (HRESULT,Clone,IEnumString**,ppenum)
2664 /*** IUnknown methods ***/
2665 #define IEnumString_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2666 #define IEnumString_AddRef(p) (p)->lpVtbl->AddRef(p)
2667 #define IEnumString_Release(p) (p)->lpVtbl->Release(p)
2668 /*** IEnumString methods ***/
2669 #define IEnumString_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
2670 #define IEnumString_Skip(p,a) (p)->lpVtbl->Skip(p,a)
2671 #define IEnumString_Reset(p) (p)->lpVtbl->Reset(p)
2672 #define IEnumString_Clone(p,a) (p)->lpVtbl->Clone(p,a)
2676 HRESULT CALLBACK IEnumString_RemoteNext_Proxy(
2680 ULONG* pceltFetched);
2681 void __RPC_STUB IEnumString_RemoteNext_Stub(
2682 struct IRpcStubBuffer* This,
2683 struct IRpcChannelBuffer* pRpcChannelBuffer,
2684 PRPC_MESSAGE pRpcMessage,
2685 DWORD* pdwStubPhase);
2686 HRESULT CALLBACK IEnumString_Next_Proxy(
2690 ULONG* pceltFetched);
2691 HRESULT __RPC_STUB IEnumString_Next_Stub(
2695 ULONG* pceltFetched);
2696 HRESULT CALLBACK IEnumString_Skip_Proxy(
2699 void __RPC_STUB IEnumString_Skip_Stub(
2700 struct IRpcStubBuffer* This,
2701 struct IRpcChannelBuffer* pRpcChannelBuffer,
2702 PRPC_MESSAGE pRpcMessage,
2703 DWORD* pdwStubPhase);
2704 HRESULT CALLBACK IEnumString_Reset_Proxy(
2706 void __RPC_STUB IEnumString_Reset_Stub(
2707 struct IRpcStubBuffer* This,
2708 struct IRpcChannelBuffer* pRpcChannelBuffer,
2709 PRPC_MESSAGE pRpcMessage,
2710 DWORD* pdwStubPhase);
2711 HRESULT CALLBACK IEnumString_Clone_Proxy(
2713 IEnumString** ppenum);
2714 void __RPC_STUB IEnumString_Clone_Stub(
2715 struct IRpcStubBuffer* This,
2716 struct IRpcChannelBuffer* pRpcChannelBuffer,
2717 PRPC_MESSAGE pRpcMessage,
2718 DWORD* pdwStubPhase);
2720 typedef struct IClassActivator IClassActivator;
2721 /*****************************************************************************
2722 * IClassActivator interface
2724 DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2725 #if defined(__cplusplus) && !defined(CINTERFACE)
2726 struct IClassActivator: IUnknown {
2728 virtual HRESULT CALLBACK GetClassObject(
2730 DWORD dwClassContext,
2735 } ICOM_COM_INTERFACE_ATTRIBUTE;
2737 typedef struct IClassActivatorVtbl IClassActivatorVtbl;
2738 struct IClassActivator {
2739 const IClassActivatorVtbl* lpVtbl;
2741 struct IClassActivatorVtbl {
2742 ICOM_MSVTABLE_COMPAT_FIELDS
2744 /*** IUnknown methods ***/
2745 HRESULT (CALLBACK *QueryInterface)(
2746 IClassActivator* This,
2750 ULONG (CALLBACK *AddRef)(
2751 IClassActivator* This);
2753 ULONG (CALLBACK *Release)(
2754 IClassActivator* This);
2756 /*** IClassActivator methods ***/
2757 HRESULT (CALLBACK *GetClassObject)(
2758 IClassActivator* This,
2760 DWORD dwClassContext,
2767 #define IClassActivator_IMETHODS \
2769 ICOM_METHOD5 (HRESULT,GetClassObject,REFCLSID,rclsid,DWORD,dwClassContext,LCID,locale,REFIID,riid,void**,ppv)
2771 /*** IUnknown methods ***/
2772 #define IClassActivator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2773 #define IClassActivator_AddRef(p) (p)->lpVtbl->AddRef(p)
2774 #define IClassActivator_Release(p) (p)->lpVtbl->Release(p)
2775 /*** IClassActivator methods ***/
2776 #define IClassActivator_GetClassObject(p,a,b,c,d,e) (p)->lpVtbl->GetClassObject(p,a,b,c,d,e)
2780 HRESULT CALLBACK IClassActivator_GetClassObject_Proxy(
2781 IClassActivator* This,
2783 DWORD dwClassContext,
2787 void __RPC_STUB IClassActivator_GetClassObject_Stub(
2788 struct IRpcStubBuffer* This,
2789 struct IRpcChannelBuffer* pRpcChannelBuffer,
2790 PRPC_MESSAGE pRpcMessage,
2791 DWORD* pdwStubPhase);
2793 typedef struct ISequentialStream ISequentialStream;
2794 /*****************************************************************************
2795 * ISequentialStream interface
2797 DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
2798 #if defined(__cplusplus) && !defined(CINTERFACE)
2799 struct ISequentialStream: IUnknown {
2801 virtual HRESULT CALLBACK Read(
2804 ULONG* pcbRead) = 0;
2806 virtual HRESULT CALLBACK Write(
2809 ULONG* pcbWritten) = 0;
2811 } ICOM_COM_INTERFACE_ATTRIBUTE;
2813 typedef struct ISequentialStreamVtbl ISequentialStreamVtbl;
2814 struct ISequentialStream {
2815 const ISequentialStreamVtbl* lpVtbl;
2817 struct ISequentialStreamVtbl {
2818 ICOM_MSVTABLE_COMPAT_FIELDS
2820 /*** IUnknown methods ***/
2821 HRESULT (CALLBACK *QueryInterface)(
2822 ISequentialStream* This,
2826 ULONG (CALLBACK *AddRef)(
2827 ISequentialStream* This);
2829 ULONG (CALLBACK *Release)(
2830 ISequentialStream* This);
2832 /*** ISequentialStream methods ***/
2833 HRESULT (CALLBACK *Read)(
2834 ISequentialStream* This,
2839 HRESULT (CALLBACK *Write)(
2840 ISequentialStream* This,
2847 #define ISequentialStream_IMETHODS \
2849 ICOM_METHOD3 (HRESULT,Read,void*,pv,ULONG,cb,ULONG*,pcbRead) \
2850 ICOM_METHOD3 (HRESULT,Write,const void*,pv,ULONG,cb,ULONG*,pcbWritten)
2852 /*** IUnknown methods ***/
2853 #define ISequentialStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2854 #define ISequentialStream_AddRef(p) (p)->lpVtbl->AddRef(p)
2855 #define ISequentialStream_Release(p) (p)->lpVtbl->Release(p)
2856 /*** ISequentialStream methods ***/
2857 #define ISequentialStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
2858 #define ISequentialStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
2862 HRESULT CALLBACK ISequentialStream_RemoteRead_Proxy(
2863 ISequentialStream* This,
2867 void __RPC_STUB ISequentialStream_RemoteRead_Stub(
2868 struct IRpcStubBuffer* This,
2869 struct IRpcChannelBuffer* pRpcChannelBuffer,
2870 PRPC_MESSAGE pRpcMessage,
2871 DWORD* pdwStubPhase);
2872 HRESULT CALLBACK ISequentialStream_Read_Proxy(
2873 ISequentialStream* This,
2877 HRESULT __RPC_STUB ISequentialStream_Read_Stub(
2878 ISequentialStream* This,
2882 HRESULT CALLBACK ISequentialStream_RemoteWrite_Proxy(
2883 ISequentialStream* This,
2887 void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
2888 struct IRpcStubBuffer* This,
2889 struct IRpcChannelBuffer* pRpcChannelBuffer,
2890 PRPC_MESSAGE pRpcMessage,
2891 DWORD* pdwStubPhase);
2892 HRESULT CALLBACK ISequentialStream_Write_Proxy(
2893 ISequentialStream* This,
2897 HRESULT __RPC_STUB ISequentialStream_Write_Stub(
2898 ISequentialStream* This,
2903 typedef IStream *LPSTREAM;
2905 typedef struct tagSTATSTG {
2908 ULARGE_INTEGER cbSize;
2913 DWORD grfLocksSupported;
2919 typedef enum tagSTGTY {
2922 STGTY_LOCKBYTES = 3,
2926 typedef enum tagSTREAM_SEEK {
2927 STREAM_SEEK_SET = 0,
2928 STREAM_SEEK_CUR = 1,
2936 typedef enum tagLOCKTYPE {
2942 /*****************************************************************************
2945 DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2946 #if defined(__cplusplus) && !defined(CINTERFACE)
2947 struct IStream: ISequentialStream {
2949 virtual HRESULT CALLBACK Seek(
2950 LARGE_INTEGER dlibMove,
2952 ULARGE_INTEGER* plibNewPosition) = 0;
2954 virtual HRESULT CALLBACK SetSize(
2955 ULARGE_INTEGER libNewSize) = 0;
2957 virtual HRESULT CALLBACK CopyTo(
2960 ULARGE_INTEGER* pcbRead,
2961 ULARGE_INTEGER* pcbWritten) = 0;
2963 virtual HRESULT CALLBACK Commit(
2964 DWORD grfCommitFlags) = 0;
2966 virtual HRESULT CALLBACK Revert(
2969 virtual HRESULT CALLBACK LockRegion(
2970 ULARGE_INTEGER libOffset,
2972 DWORD dwLockType) = 0;
2974 virtual HRESULT CALLBACK UnlockRegion(
2975 ULARGE_INTEGER libOffset,
2977 DWORD dwLockType) = 0;
2979 virtual HRESULT CALLBACK Stat(
2981 DWORD grfStatFlag) = 0;
2983 virtual HRESULT CALLBACK Clone(
2984 IStream** ppstm) = 0;
2986 } ICOM_COM_INTERFACE_ATTRIBUTE;
2988 typedef struct IStreamVtbl IStreamVtbl;
2990 const IStreamVtbl* lpVtbl;
2992 struct IStreamVtbl {
2993 ICOM_MSVTABLE_COMPAT_FIELDS
2995 /*** IUnknown methods ***/
2996 HRESULT (CALLBACK *QueryInterface)(
3001 ULONG (CALLBACK *AddRef)(
3004 ULONG (CALLBACK *Release)(
3007 /*** ISequentialStream methods ***/
3008 HRESULT (CALLBACK *Read)(
3014 HRESULT (CALLBACK *Write)(
3020 /*** IStream methods ***/
3021 HRESULT (CALLBACK *Seek)(
3023 LARGE_INTEGER dlibMove,
3025 ULARGE_INTEGER* plibNewPosition);
3027 HRESULT (CALLBACK *SetSize)(
3029 ULARGE_INTEGER libNewSize);
3031 HRESULT (CALLBACK *CopyTo)(
3035 ULARGE_INTEGER* pcbRead,
3036 ULARGE_INTEGER* pcbWritten);
3038 HRESULT (CALLBACK *Commit)(
3040 DWORD grfCommitFlags);
3042 HRESULT (CALLBACK *Revert)(
3045 HRESULT (CALLBACK *LockRegion)(
3047 ULARGE_INTEGER libOffset,
3051 HRESULT (CALLBACK *UnlockRegion)(
3053 ULARGE_INTEGER libOffset,
3057 HRESULT (CALLBACK *Stat)(
3062 HRESULT (CALLBACK *Clone)(
3068 #define IStream_IMETHODS \
3069 ISequentialStream_IMETHODS \
3070 ICOM_METHOD3 (HRESULT,Seek,LARGE_INTEGER,dlibMove,DWORD,dwOrigin,ULARGE_INTEGER*,plibNewPosition) \
3071 ICOM_METHOD1 (HRESULT,SetSize,ULARGE_INTEGER,libNewSize) \
3072 ICOM_METHOD4 (HRESULT,CopyTo,IStream*,pstm,ULARGE_INTEGER,cb,ULARGE_INTEGER*,pcbRead,ULARGE_INTEGER*,pcbWritten) \
3073 ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
3074 ICOM_METHOD (HRESULT,Revert) \
3075 ICOM_METHOD3 (HRESULT,LockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
3076 ICOM_METHOD3 (HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
3077 ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag) \
3078 ICOM_METHOD1 (HRESULT,Clone,IStream**,ppstm)
3080 /*** IUnknown methods ***/
3081 #define IStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3082 #define IStream_AddRef(p) (p)->lpVtbl->AddRef(p)
3083 #define IStream_Release(p) (p)->lpVtbl->Release(p)
3084 /*** ISequentialStream methods ***/
3085 #define IStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3086 #define IStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3087 /*** IStream methods ***/
3088 #define IStream_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
3089 #define IStream_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
3090 #define IStream_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3091 #define IStream_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3092 #define IStream_Revert(p) (p)->lpVtbl->Revert(p)
3093 #define IStream_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
3094 #define IStream_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
3095 #define IStream_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3096 #define IStream_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3100 HRESULT CALLBACK IStream_RemoteSeek_Proxy(
3102 LARGE_INTEGER dlibMove,
3104 ULARGE_INTEGER* plibNewPosition);
3105 void __RPC_STUB IStream_RemoteSeek_Stub(
3106 struct IRpcStubBuffer* This,
3107 struct IRpcChannelBuffer* pRpcChannelBuffer,
3108 PRPC_MESSAGE pRpcMessage,
3109 DWORD* pdwStubPhase);
3110 HRESULT CALLBACK IStream_Seek_Proxy(
3112 LARGE_INTEGER dlibMove,
3114 ULARGE_INTEGER* plibNewPosition);
3115 HRESULT __RPC_STUB IStream_Seek_Stub(
3117 LARGE_INTEGER dlibMove,
3119 ULARGE_INTEGER* plibNewPosition);
3120 HRESULT CALLBACK IStream_SetSize_Proxy(
3122 ULARGE_INTEGER libNewSize);
3123 void __RPC_STUB IStream_SetSize_Stub(
3124 struct IRpcStubBuffer* This,
3125 struct IRpcChannelBuffer* pRpcChannelBuffer,
3126 PRPC_MESSAGE pRpcMessage,
3127 DWORD* pdwStubPhase);
3128 HRESULT CALLBACK IStream_RemoteCopyTo_Proxy(
3132 ULARGE_INTEGER* pcbRead,
3133 ULARGE_INTEGER* pcbWritten);
3134 void __RPC_STUB IStream_RemoteCopyTo_Stub(
3135 struct IRpcStubBuffer* This,
3136 struct IRpcChannelBuffer* pRpcChannelBuffer,
3137 PRPC_MESSAGE pRpcMessage,
3138 DWORD* pdwStubPhase);
3139 HRESULT CALLBACK IStream_CopyTo_Proxy(
3143 ULARGE_INTEGER* pcbRead,
3144 ULARGE_INTEGER* pcbWritten);
3145 HRESULT __RPC_STUB IStream_CopyTo_Stub(
3149 ULARGE_INTEGER* pcbRead,
3150 ULARGE_INTEGER* pcbWritten);
3151 HRESULT CALLBACK IStream_Commit_Proxy(
3153 DWORD grfCommitFlags);
3154 void __RPC_STUB IStream_Commit_Stub(
3155 struct IRpcStubBuffer* This,
3156 struct IRpcChannelBuffer* pRpcChannelBuffer,
3157 PRPC_MESSAGE pRpcMessage,
3158 DWORD* pdwStubPhase);
3159 HRESULT CALLBACK IStream_Revert_Proxy(
3161 void __RPC_STUB IStream_Revert_Stub(
3162 struct IRpcStubBuffer* This,
3163 struct IRpcChannelBuffer* pRpcChannelBuffer,
3164 PRPC_MESSAGE pRpcMessage,
3165 DWORD* pdwStubPhase);
3166 HRESULT CALLBACK IStream_LockRegion_Proxy(
3168 ULARGE_INTEGER libOffset,
3171 void __RPC_STUB IStream_LockRegion_Stub(
3172 struct IRpcStubBuffer* This,
3173 struct IRpcChannelBuffer* pRpcChannelBuffer,
3174 PRPC_MESSAGE pRpcMessage,
3175 DWORD* pdwStubPhase);
3176 HRESULT CALLBACK IStream_UnlockRegion_Proxy(
3178 ULARGE_INTEGER libOffset,
3181 void __RPC_STUB IStream_UnlockRegion_Stub(
3182 struct IRpcStubBuffer* This,
3183 struct IRpcChannelBuffer* pRpcChannelBuffer,
3184 PRPC_MESSAGE pRpcMessage,
3185 DWORD* pdwStubPhase);
3186 HRESULT CALLBACK IStream_Stat_Proxy(
3190 void __RPC_STUB IStream_Stat_Stub(
3191 struct IRpcStubBuffer* This,
3192 struct IRpcChannelBuffer* pRpcChannelBuffer,
3193 PRPC_MESSAGE pRpcMessage,
3194 DWORD* pdwStubPhase);
3195 HRESULT CALLBACK IStream_Clone_Proxy(
3198 void __RPC_STUB IStream_Clone_Stub(
3199 struct IRpcStubBuffer* This,
3200 struct IRpcChannelBuffer* pRpcChannelBuffer,
3201 PRPC_MESSAGE pRpcMessage,
3202 DWORD* pdwStubPhase);
3204 typedef IStream16 *LPSTREAM16;
3206 typedef struct tagSTATSTG16 {
3207 LPOLESTR16 pwcsName;
3209 ULARGE_INTEGER cbSize;
3214 DWORD grfLocksSupported;
3220 /*****************************************************************************
3221 * IStream16 interface
3223 #if defined(__cplusplus) && !defined(CINTERFACE)
3224 struct IStream16: ISequentialStream {
3226 virtual HRESULT CALLBACK Seek(
3227 LARGE_INTEGER dlibMove,
3229 ULARGE_INTEGER* plibNewPosition) = 0;
3231 virtual HRESULT CALLBACK SetSize(
3232 ULARGE_INTEGER libNewSize) = 0;
3234 virtual HRESULT CALLBACK CopyTo(
3237 ULARGE_INTEGER* pcbRead,
3238 ULARGE_INTEGER* pcbWritten) = 0;
3240 virtual HRESULT CALLBACK Commit(
3241 DWORD grfCommitFlags) = 0;
3243 virtual HRESULT CALLBACK Revert(
3246 virtual HRESULT CALLBACK LockRegion(
3247 ULARGE_INTEGER libOffset,
3249 DWORD dwLockType) = 0;
3251 virtual HRESULT CALLBACK UnlockRegion(
3252 ULARGE_INTEGER libOffset,
3254 DWORD dwLockType) = 0;
3256 virtual HRESULT CALLBACK Stat(
3258 DWORD grfStatFlag) = 0;
3260 virtual HRESULT CALLBACK Clone(
3261 IStream16** ppstm) = 0;
3263 } ICOM_COM_INTERFACE_ATTRIBUTE;
3265 typedef struct IStream16Vtbl IStream16Vtbl;
3267 const IStream16Vtbl* lpVtbl;
3269 struct IStream16Vtbl {
3270 ICOM_MSVTABLE_COMPAT_FIELDS
3272 /*** IUnknown methods ***/
3273 HRESULT (CALLBACK *QueryInterface)(
3278 ULONG (CALLBACK *AddRef)(
3281 ULONG (CALLBACK *Release)(
3284 /*** ISequentialStream methods ***/
3285 HRESULT (CALLBACK *Read)(
3291 HRESULT (CALLBACK *Write)(
3297 /*** IStream16 methods ***/
3298 HRESULT (CALLBACK *Seek)(
3300 LARGE_INTEGER dlibMove,
3302 ULARGE_INTEGER* plibNewPosition);
3304 HRESULT (CALLBACK *SetSize)(
3306 ULARGE_INTEGER libNewSize);
3308 HRESULT (CALLBACK *CopyTo)(
3312 ULARGE_INTEGER* pcbRead,
3313 ULARGE_INTEGER* pcbWritten);
3315 HRESULT (CALLBACK *Commit)(
3317 DWORD grfCommitFlags);
3319 HRESULT (CALLBACK *Revert)(
3322 HRESULT (CALLBACK *LockRegion)(
3324 ULARGE_INTEGER libOffset,
3328 HRESULT (CALLBACK *UnlockRegion)(
3330 ULARGE_INTEGER libOffset,
3334 HRESULT (CALLBACK *Stat)(
3339 HRESULT (CALLBACK *Clone)(
3345 #define IStream16_IMETHODS \
3346 ISequentialStream_IMETHODS \
3347 ICOM_METHOD3 (HRESULT,Seek,LARGE_INTEGER,dlibMove,DWORD,dwOrigin,ULARGE_INTEGER*,plibNewPosition) \
3348 ICOM_METHOD1 (HRESULT,SetSize,ULARGE_INTEGER,libNewSize) \
3349 ICOM_METHOD4 (HRESULT,CopyTo,IStream16*,pstm,ULARGE_INTEGER,cb,ULARGE_INTEGER*,pcbRead,ULARGE_INTEGER*,pcbWritten) \
3350 ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
3351 ICOM_METHOD (HRESULT,Revert) \
3352 ICOM_METHOD3 (HRESULT,LockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
3353 ICOM_METHOD3 (HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
3354 ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag) \
3355 ICOM_METHOD1 (HRESULT,Clone,IStream16**,ppstm)
3357 /*** IUnknown methods ***/
3358 #define IStream16_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3359 #define IStream16_AddRef(p) (p)->lpVtbl->AddRef(p)
3360 #define IStream16_Release(p) (p)->lpVtbl->Release(p)
3361 /*** ISequentialStream methods ***/
3362 #define IStream16_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
3363 #define IStream16_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
3364 /*** IStream16 methods ***/
3365 #define IStream16_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
3366 #define IStream16_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
3367 #define IStream16_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3368 #define IStream16_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3369 #define IStream16_Revert(p) (p)->lpVtbl->Revert(p)
3370 #define IStream16_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
3371 #define IStream16_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
3372 #define IStream16_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3373 #define IStream16_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3377 HRESULT CALLBACK IStream16_RemoteSeek_Proxy(
3379 LARGE_INTEGER dlibMove,
3381 ULARGE_INTEGER* plibNewPosition);
3382 void __RPC_STUB IStream16_RemoteSeek_Stub(
3383 struct IRpcStubBuffer* This,
3384 struct IRpcChannelBuffer* pRpcChannelBuffer,
3385 PRPC_MESSAGE pRpcMessage,
3386 DWORD* pdwStubPhase);
3387 HRESULT CALLBACK IStream16_Seek_Proxy(
3389 LARGE_INTEGER dlibMove,
3391 ULARGE_INTEGER* plibNewPosition);
3392 HRESULT __RPC_STUB IStream16_Seek_Stub(
3394 LARGE_INTEGER dlibMove,
3396 ULARGE_INTEGER* plibNewPosition);
3397 HRESULT CALLBACK IStream16_SetSize_Proxy(
3399 ULARGE_INTEGER libNewSize);
3400 void __RPC_STUB IStream16_SetSize_Stub(
3401 struct IRpcStubBuffer* This,
3402 struct IRpcChannelBuffer* pRpcChannelBuffer,
3403 PRPC_MESSAGE pRpcMessage,
3404 DWORD* pdwStubPhase);
3405 HRESULT CALLBACK IStream16_RemoteCopyTo_Proxy(
3409 ULARGE_INTEGER* pcbRead,
3410 ULARGE_INTEGER* pcbWritten);
3411 void __RPC_STUB IStream16_RemoteCopyTo_Stub(
3412 struct IRpcStubBuffer* This,
3413 struct IRpcChannelBuffer* pRpcChannelBuffer,
3414 PRPC_MESSAGE pRpcMessage,
3415 DWORD* pdwStubPhase);
3416 HRESULT CALLBACK IStream16_CopyTo_Proxy(
3420 ULARGE_INTEGER* pcbRead,
3421 ULARGE_INTEGER* pcbWritten);
3422 HRESULT __RPC_STUB IStream16_CopyTo_Stub(
3426 ULARGE_INTEGER* pcbRead,
3427 ULARGE_INTEGER* pcbWritten);
3428 HRESULT CALLBACK IStream16_Commit_Proxy(
3430 DWORD grfCommitFlags);
3431 void __RPC_STUB IStream16_Commit_Stub(
3432 struct IRpcStubBuffer* This,
3433 struct IRpcChannelBuffer* pRpcChannelBuffer,
3434 PRPC_MESSAGE pRpcMessage,
3435 DWORD* pdwStubPhase);
3436 HRESULT CALLBACK IStream16_Revert_Proxy(
3438 void __RPC_STUB IStream16_Revert_Stub(
3439 struct IRpcStubBuffer* This,
3440 struct IRpcChannelBuffer* pRpcChannelBuffer,
3441 PRPC_MESSAGE pRpcMessage,
3442 DWORD* pdwStubPhase);
3443 HRESULT CALLBACK IStream16_LockRegion_Proxy(
3445 ULARGE_INTEGER libOffset,
3448 void __RPC_STUB IStream16_LockRegion_Stub(
3449 struct IRpcStubBuffer* This,
3450 struct IRpcChannelBuffer* pRpcChannelBuffer,
3451 PRPC_MESSAGE pRpcMessage,
3452 DWORD* pdwStubPhase);
3453 HRESULT CALLBACK IStream16_UnlockRegion_Proxy(
3455 ULARGE_INTEGER libOffset,
3458 void __RPC_STUB IStream16_UnlockRegion_Stub(
3459 struct IRpcStubBuffer* This,
3460 struct IRpcChannelBuffer* pRpcChannelBuffer,
3461 PRPC_MESSAGE pRpcMessage,
3462 DWORD* pdwStubPhase);
3463 HRESULT CALLBACK IStream16_Stat_Proxy(
3467 void __RPC_STUB IStream16_Stat_Stub(
3468 struct IRpcStubBuffer* This,
3469 struct IRpcChannelBuffer* pRpcChannelBuffer,
3470 PRPC_MESSAGE pRpcMessage,
3471 DWORD* pdwStubPhase);
3472 HRESULT CALLBACK IStream16_Clone_Proxy(
3475 void __RPC_STUB IStream16_Clone_Stub(
3476 struct IRpcStubBuffer* This,
3477 struct IRpcChannelBuffer* pRpcChannelBuffer,
3478 PRPC_MESSAGE pRpcMessage,
3479 DWORD* pdwStubPhase);
3481 typedef struct IEnumSTATSTG IEnumSTATSTG;
3482 typedef IEnumSTATSTG *LPENUMSTATSTG;
3484 /*****************************************************************************
3485 * IEnumSTATSTG interface
3487 DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3488 #if defined(__cplusplus) && !defined(CINTERFACE)
3489 struct IEnumSTATSTG: IUnknown {
3491 virtual HRESULT CALLBACK Next(
3494 ULONG* pceltFetched) = 0;
3496 virtual HRESULT CALLBACK Skip(
3499 virtual HRESULT CALLBACK Reset(
3502 virtual HRESULT CALLBACK Clone(
3503 IEnumSTATSTG** ppenum) = 0;
3505 } ICOM_COM_INTERFACE_ATTRIBUTE;
3507 typedef struct IEnumSTATSTGVtbl IEnumSTATSTGVtbl;
3508 struct IEnumSTATSTG {
3509 const IEnumSTATSTGVtbl* lpVtbl;
3511 struct IEnumSTATSTGVtbl {
3512 ICOM_MSVTABLE_COMPAT_FIELDS
3514 /*** IUnknown methods ***/
3515 HRESULT (CALLBACK *QueryInterface)(
3520 ULONG (CALLBACK *AddRef)(
3521 IEnumSTATSTG* This);
3523 ULONG (CALLBACK *Release)(
3524 IEnumSTATSTG* This);
3526 /*** IEnumSTATSTG methods ***/
3527 HRESULT (CALLBACK *Next)(
3531 ULONG* pceltFetched);
3533 HRESULT (CALLBACK *Skip)(
3537 HRESULT (CALLBACK *Reset)(
3538 IEnumSTATSTG* This);
3540 HRESULT (CALLBACK *Clone)(
3542 IEnumSTATSTG** ppenum);
3546 #define IEnumSTATSTG_IMETHODS \
3548 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATSTG*,rgelt,ULONG*,pceltFetched) \
3549 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
3550 ICOM_METHOD (HRESULT,Reset) \
3551 ICOM_METHOD1 (HRESULT,Clone,IEnumSTATSTG**,ppenum)
3553 /*** IUnknown methods ***/
3554 #define IEnumSTATSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3555 #define IEnumSTATSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
3556 #define IEnumSTATSTG_Release(p) (p)->lpVtbl->Release(p)
3557 /*** IEnumSTATSTG methods ***/
3558 #define IEnumSTATSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
3559 #define IEnumSTATSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
3560 #define IEnumSTATSTG_Reset(p) (p)->lpVtbl->Reset(p)
3561 #define IEnumSTATSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3565 HRESULT CALLBACK IEnumSTATSTG_RemoteNext_Proxy(
3569 ULONG* pceltFetched);
3570 void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
3571 struct IRpcStubBuffer* This,
3572 struct IRpcChannelBuffer* pRpcChannelBuffer,
3573 PRPC_MESSAGE pRpcMessage,
3574 DWORD* pdwStubPhase);
3575 HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
3579 ULONG* pceltFetched);
3580 HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
3584 ULONG* pceltFetched);
3585 HRESULT CALLBACK IEnumSTATSTG_Skip_Proxy(
3588 void __RPC_STUB IEnumSTATSTG_Skip_Stub(
3589 struct IRpcStubBuffer* This,
3590 struct IRpcChannelBuffer* pRpcChannelBuffer,
3591 PRPC_MESSAGE pRpcMessage,
3592 DWORD* pdwStubPhase);
3593 HRESULT CALLBACK IEnumSTATSTG_Reset_Proxy(
3594 IEnumSTATSTG* This);
3595 void __RPC_STUB IEnumSTATSTG_Reset_Stub(
3596 struct IRpcStubBuffer* This,
3597 struct IRpcChannelBuffer* pRpcChannelBuffer,
3598 PRPC_MESSAGE pRpcMessage,
3599 DWORD* pdwStubPhase);
3600 HRESULT CALLBACK IEnumSTATSTG_Clone_Proxy(
3602 IEnumSTATSTG** ppenum);
3603 void __RPC_STUB IEnumSTATSTG_Clone_Stub(
3604 struct IRpcStubBuffer* This,
3605 struct IRpcChannelBuffer* pRpcChannelBuffer,
3606 PRPC_MESSAGE pRpcMessage,
3607 DWORD* pdwStubPhase);
3609 typedef struct IStorage IStorage;
3610 typedef IStorage *LPSTORAGE;
3612 typedef struct tagRemSNB {
3613 unsigned long ulCntStr;
3614 unsigned long ulCntChar;
3615 OLECHAR rgString[1];
3618 typedef RemSNB *wireSNB;
3620 typedef OLECHAR **SNB;
3622 /*****************************************************************************
3623 * IStorage interface
3625 DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3626 #if defined(__cplusplus) && !defined(CINTERFACE)
3627 struct IStorage: IUnknown {
3629 virtual HRESULT CALLBACK CreateStream(
3634 IStream** ppstm) = 0;
3636 virtual HRESULT CALLBACK OpenStream(
3641 IStream** ppstm) = 0;
3643 virtual HRESULT CALLBACK CreateStorage(
3648 IStorage** ppstg) = 0;
3650 virtual HRESULT CALLBACK OpenStorage(
3652 IStorage* pstgPriority,
3656 IStorage** ppstg) = 0;
3658 virtual HRESULT CALLBACK CopyTo(
3660 const IID* rgiidExclude,
3662 IStorage* pstgDest) = 0;
3664 virtual HRESULT CALLBACK MoveElementTo(
3667 LPCOLESTR pwcsNewName,
3668 DWORD grfFlags) = 0;
3670 virtual HRESULT CALLBACK Commit(
3671 DWORD grfCommitFlags) = 0;
3673 virtual HRESULT CALLBACK Revert(
3676 virtual HRESULT CALLBACK EnumElements(
3680 IEnumSTATSTG** ppenum) = 0;
3682 virtual HRESULT CALLBACK DestroyElement(
3683 LPCOLESTR pwcsName) = 0;
3685 virtual HRESULT CALLBACK RenameElement(
3686 LPCOLESTR pwcsOldName,
3687 LPCOLESTR pwcsNewName) = 0;
3689 virtual HRESULT CALLBACK SetElementTimes(
3691 const FILETIME* pctime,
3692 const FILETIME* patime,
3693 const FILETIME* pmtime) = 0;
3695 virtual HRESULT CALLBACK SetClass(
3696 REFCLSID clsid) = 0;
3698 virtual HRESULT CALLBACK SetStateBits(
3702 virtual HRESULT CALLBACK Stat(
3704 DWORD grfStatFlag) = 0;
3706 } ICOM_COM_INTERFACE_ATTRIBUTE;
3708 typedef struct IStorageVtbl IStorageVtbl;
3710 const IStorageVtbl* lpVtbl;
3712 struct IStorageVtbl {
3713 ICOM_MSVTABLE_COMPAT_FIELDS
3715 /*** IUnknown methods ***/
3716 HRESULT (CALLBACK *QueryInterface)(
3721 ULONG (CALLBACK *AddRef)(
3724 ULONG (CALLBACK *Release)(
3727 /*** IStorage methods ***/
3728 HRESULT (CALLBACK *CreateStream)(
3736 HRESULT (CALLBACK *OpenStream)(
3744 HRESULT (CALLBACK *CreateStorage)(
3752 HRESULT (CALLBACK *OpenStorage)(
3755 IStorage* pstgPriority,
3761 HRESULT (CALLBACK *CopyTo)(
3764 const IID* rgiidExclude,
3766 IStorage* pstgDest);
3768 HRESULT (CALLBACK *MoveElementTo)(
3772 LPCOLESTR pwcsNewName,
3775 HRESULT (CALLBACK *Commit)(
3777 DWORD grfCommitFlags);
3779 HRESULT (CALLBACK *Revert)(
3782 HRESULT (CALLBACK *EnumElements)(
3787 IEnumSTATSTG** ppenum);
3789 HRESULT (CALLBACK *DestroyElement)(
3791 LPCOLESTR pwcsName);
3793 HRESULT (CALLBACK *RenameElement)(
3795 LPCOLESTR pwcsOldName,
3796 LPCOLESTR pwcsNewName);
3798 HRESULT (CALLBACK *SetElementTimes)(
3801 const FILETIME* pctime,
3802 const FILETIME* patime,
3803 const FILETIME* pmtime);
3805 HRESULT (CALLBACK *SetClass)(
3809 HRESULT (CALLBACK *SetStateBits)(
3814 HRESULT (CALLBACK *Stat)(
3821 #define IStorage_IMETHODS \
3823 ICOM_METHOD5 (HRESULT,CreateStream,LPCOLESTR,pwcsName,DWORD,grfMode,DWORD,reserved1,DWORD,reserved2,IStream**,ppstm) \
3824 ICOM_METHOD5 (HRESULT,OpenStream,LPCOLESTR,pwcsName,void*,reserved1,DWORD,grfMode,DWORD,reserved2,IStream**,ppstm) \
3825 ICOM_METHOD5 (HRESULT,CreateStorage,LPCOLESTR,pwcsName,DWORD,grfMode,DWORD,dwStgFmt,DWORD,reserved2,IStorage**,ppstg) \
3826 ICOM_METHOD6 (HRESULT,OpenStorage,LPCOLESTR,pwcsName,IStorage*,pstgPriority,DWORD,grfMode,SNB,snbExclude,DWORD,reserved,IStorage**,ppstg) \
3827 ICOM_METHOD4 (HRESULT,CopyTo,DWORD,ciidExclude,const IID*,rgiidExclude,SNB,snbExclude,IStorage*,pstgDest) \
3828 ICOM_METHOD4 (HRESULT,MoveElementTo,LPCOLESTR,pwcsName,IStorage*,pstgDest,LPCOLESTR,pwcsNewName,DWORD,grfFlags) \
3829 ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
3830 ICOM_METHOD (HRESULT,Revert) \
3831 ICOM_METHOD4 (HRESULT,EnumElements,DWORD,reserved1,void*,reserved2,DWORD,reserved3,IEnumSTATSTG**,ppenum) \
3832 ICOM_METHOD1 (HRESULT,DestroyElement,LPCOLESTR,pwcsName) \
3833 ICOM_METHOD2 (HRESULT,RenameElement,LPCOLESTR,pwcsOldName,LPCOLESTR,pwcsNewName) \
3834 ICOM_METHOD4 (HRESULT,SetElementTimes,LPCOLESTR,pwcsName,const FILETIME*,pctime,const FILETIME*,patime,const FILETIME*,pmtime) \
3835 ICOM_METHOD1 (HRESULT,SetClass,REFCLSID,clsid) \
3836 ICOM_METHOD2 (HRESULT,SetStateBits,DWORD,grfStateBits,DWORD,grfMask) \
3837 ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag)
3839 /*** IUnknown methods ***/
3840 #define IStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3841 #define IStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
3842 #define IStorage_Release(p) (p)->lpVtbl->Release(p)
3843 /*** IStorage methods ***/
3844 #define IStorage_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
3845 #define IStorage_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
3846 #define IStorage_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
3847 #define IStorage_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
3848 #define IStorage_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
3849 #define IStorage_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
3850 #define IStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
3851 #define IStorage_Revert(p) (p)->lpVtbl->Revert(p)
3852 #define IStorage_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
3853 #define IStorage_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
3854 #define IStorage_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
3855 #define IStorage_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
3856 #define IStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
3857 #define IStorage_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
3858 #define IStorage_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
3862 HRESULT CALLBACK IStorage_CreateStream_Proxy(
3869 void __RPC_STUB IStorage_CreateStream_Stub(
3870 struct IRpcStubBuffer* This,
3871 struct IRpcChannelBuffer* pRpcChannelBuffer,
3872 PRPC_MESSAGE pRpcMessage,
3873 DWORD* pdwStubPhase);
3874 HRESULT CALLBACK IStorage_RemoteOpenStream_Proxy(
3877 unsigned long cbReserved1,
3882 void __RPC_STUB IStorage_RemoteOpenStream_Stub(
3883 struct IRpcStubBuffer* This,
3884 struct IRpcChannelBuffer* pRpcChannelBuffer,
3885 PRPC_MESSAGE pRpcMessage,
3886 DWORD* pdwStubPhase);
3887 HRESULT CALLBACK IStorage_OpenStream_Proxy(
3894 HRESULT __RPC_STUB IStorage_OpenStream_Stub(
3897 unsigned long cbReserved1,
3902 HRESULT CALLBACK IStorage_CreateStorage_Proxy(
3909 void __RPC_STUB IStorage_CreateStorage_Stub(
3910 struct IRpcStubBuffer* This,
3911 struct IRpcChannelBuffer* pRpcChannelBuffer,
3912 PRPC_MESSAGE pRpcMessage,
3913 DWORD* pdwStubPhase);
3914 HRESULT CALLBACK IStorage_OpenStorage_Proxy(
3917 IStorage* pstgPriority,
3922 void __RPC_STUB IStorage_OpenStorage_Stub(
3923 struct IRpcStubBuffer* This,
3924 struct IRpcChannelBuffer* pRpcChannelBuffer,
3925 PRPC_MESSAGE pRpcMessage,
3926 DWORD* pdwStubPhase);
3927 HRESULT CALLBACK IStorage_CopyTo_Proxy(
3930 const IID* rgiidExclude,
3932 IStorage* pstgDest);
3933 void __RPC_STUB IStorage_CopyTo_Stub(
3934 struct IRpcStubBuffer* This,
3935 struct IRpcChannelBuffer* pRpcChannelBuffer,
3936 PRPC_MESSAGE pRpcMessage,
3937 DWORD* pdwStubPhase);
3938 HRESULT CALLBACK IStorage_MoveElementTo_Proxy(
3942 LPCOLESTR pwcsNewName,
3944 void __RPC_STUB IStorage_MoveElementTo_Stub(
3945 struct IRpcStubBuffer* This,
3946 struct IRpcChannelBuffer* pRpcChannelBuffer,
3947 PRPC_MESSAGE pRpcMessage,
3948 DWORD* pdwStubPhase);
3949 HRESULT CALLBACK IStorage_Commit_Proxy(
3951 DWORD grfCommitFlags);
3952 void __RPC_STUB IStorage_Commit_Stub(
3953 struct IRpcStubBuffer* This,
3954 struct IRpcChannelBuffer* pRpcChannelBuffer,
3955 PRPC_MESSAGE pRpcMessage,
3956 DWORD* pdwStubPhase);
3957 HRESULT CALLBACK IStorage_Revert_Proxy(
3959 void __RPC_STUB IStorage_Revert_Stub(
3960 struct IRpcStubBuffer* This,
3961 struct IRpcChannelBuffer* pRpcChannelBuffer,
3962 PRPC_MESSAGE pRpcMessage,
3963 DWORD* pdwStubPhase);
3964 HRESULT CALLBACK IStorage_RemoteEnumElements_Proxy(
3967 unsigned long cbReserved2,
3970 IEnumSTATSTG** ppenum);
3971 void __RPC_STUB IStorage_RemoteEnumElements_Stub(
3972 struct IRpcStubBuffer* This,
3973 struct IRpcChannelBuffer* pRpcChannelBuffer,
3974 PRPC_MESSAGE pRpcMessage,
3975 DWORD* pdwStubPhase);
3976 HRESULT CALLBACK IStorage_EnumElements_Proxy(
3981 IEnumSTATSTG** ppenum);
3982 HRESULT __RPC_STUB IStorage_EnumElements_Stub(
3985 unsigned long cbReserved2,
3988 IEnumSTATSTG** ppenum);
3989 HRESULT CALLBACK IStorage_DestroyElement_Proxy(
3991 LPCOLESTR pwcsName);
3992 void __RPC_STUB IStorage_DestroyElement_Stub(
3993 struct IRpcStubBuffer* This,
3994 struct IRpcChannelBuffer* pRpcChannelBuffer,
3995 PRPC_MESSAGE pRpcMessage,
3996 DWORD* pdwStubPhase);
3997 HRESULT CALLBACK IStorage_RenameElement_Proxy(
3999 LPCOLESTR pwcsOldName,
4000 LPCOLESTR pwcsNewName);
4001 void __RPC_STUB IStorage_RenameElement_Stub(
4002 struct IRpcStubBuffer* This,
4003 struct IRpcChannelBuffer* pRpcChannelBuffer,
4004 PRPC_MESSAGE pRpcMessage,
4005 DWORD* pdwStubPhase);
4006 HRESULT CALLBACK IStorage_SetElementTimes_Proxy(
4009 const FILETIME* pctime,
4010 const FILETIME* patime,
4011 const FILETIME* pmtime);
4012 void __RPC_STUB IStorage_SetElementTimes_Stub(
4013 struct IRpcStubBuffer* This,
4014 struct IRpcChannelBuffer* pRpcChannelBuffer,
4015 PRPC_MESSAGE pRpcMessage,
4016 DWORD* pdwStubPhase);
4017 HRESULT CALLBACK IStorage_SetClass_Proxy(
4020 void __RPC_STUB IStorage_SetClass_Stub(
4021 struct IRpcStubBuffer* This,
4022 struct IRpcChannelBuffer* pRpcChannelBuffer,
4023 PRPC_MESSAGE pRpcMessage,
4024 DWORD* pdwStubPhase);
4025 HRESULT CALLBACK IStorage_SetStateBits_Proxy(
4029 void __RPC_STUB IStorage_SetStateBits_Stub(
4030 struct IRpcStubBuffer* This,
4031 struct IRpcChannelBuffer* pRpcChannelBuffer,
4032 PRPC_MESSAGE pRpcMessage,
4033 DWORD* pdwStubPhase);
4034 HRESULT CALLBACK IStorage_Stat_Proxy(
4038 void __RPC_STUB IStorage_Stat_Stub(
4039 struct IRpcStubBuffer* This,
4040 struct IRpcChannelBuffer* pRpcChannelBuffer,
4041 PRPC_MESSAGE pRpcMessage,
4042 DWORD* pdwStubPhase);
4044 typedef struct IStorage16 IStorage16;
4045 typedef IStorage16 *LPSTORAGE16;
4047 typedef struct tagRemSNB16 {
4048 unsigned long ulCntStr;
4049 unsigned long ulCntChar;
4050 OLECHAR16 rgString[1];
4053 typedef RemSNB16 *wireSNB16;
4055 typedef OLECHAR16 **SNB16;
4057 /*****************************************************************************
4058 * IStorage16 interface
4060 #if defined(__cplusplus) && !defined(CINTERFACE)
4061 struct IStorage16: IUnknown {
4063 virtual HRESULT CALLBACK CreateStream(
4064 LPCOLESTR16 pwcsName,
4068 IStream16** ppstm) = 0;
4070 virtual HRESULT CALLBACK OpenStream(
4071 LPCOLESTR16 pwcsName,
4075 IStream16** ppstm) = 0;
4077 virtual HRESULT CALLBACK CreateStorage(
4078 LPCOLESTR16 pwcsName,
4082 IStorage16** ppstg) = 0;
4084 virtual HRESULT CALLBACK OpenStorage(
4085 LPCOLESTR16 pwcsName,
4086 IStorage16* pstgPriority,
4090 IStorage16** ppstg) = 0;
4092 virtual HRESULT CALLBACK CopyTo(
4094 const IID* rgiidExclude,
4096 IStorage16* pstgDest) = 0;
4098 virtual HRESULT CALLBACK MoveElementTo(
4099 LPCOLESTR16 pwcsName,
4100 IStorage16* pstgDest,
4101 LPCOLESTR16 pwcsNewName,
4102 DWORD grfFlags) = 0;
4104 virtual HRESULT CALLBACK Commit(
4105 DWORD grfCommitFlags) = 0;
4107 virtual HRESULT CALLBACK Revert(
4110 virtual HRESULT CALLBACK EnumElements(
4114 IEnumSTATSTG** ppenum) = 0;
4116 virtual HRESULT CALLBACK DestroyElement(
4117 LPCOLESTR16 pwcsName) = 0;
4119 virtual HRESULT CALLBACK RenameElement(
4120 LPCOLESTR16 pwcsOldName,
4121 LPCOLESTR16 pwcsNewName) = 0;
4123 virtual HRESULT CALLBACK SetElementTimes(
4124 LPCOLESTR16 pwcsName,
4125 const FILETIME* pctime,
4126 const FILETIME* patime,
4127 const FILETIME* pmtime) = 0;
4129 virtual HRESULT CALLBACK SetClass(
4130 REFCLSID clsid) = 0;
4132 virtual HRESULT CALLBACK SetStateBits(
4136 virtual HRESULT CALLBACK Stat(
4138 DWORD grfStatFlag) = 0;
4140 } ICOM_COM_INTERFACE_ATTRIBUTE;
4142 typedef struct IStorage16Vtbl IStorage16Vtbl;
4144 const IStorage16Vtbl* lpVtbl;
4146 struct IStorage16Vtbl {
4147 ICOM_MSVTABLE_COMPAT_FIELDS
4149 /*** IUnknown methods ***/
4150 HRESULT (CALLBACK *QueryInterface)(
4155 ULONG (CALLBACK *AddRef)(
4158 ULONG (CALLBACK *Release)(
4161 /*** IStorage16 methods ***/
4162 HRESULT (CALLBACK *CreateStream)(
4164 LPCOLESTR16 pwcsName,
4170 HRESULT (CALLBACK *OpenStream)(
4172 LPCOLESTR16 pwcsName,
4178 HRESULT (CALLBACK *CreateStorage)(
4180 LPCOLESTR16 pwcsName,
4184 IStorage16** ppstg);
4186 HRESULT (CALLBACK *OpenStorage)(
4188 LPCOLESTR16 pwcsName,
4189 IStorage16* pstgPriority,
4193 IStorage16** ppstg);
4195 HRESULT (CALLBACK *CopyTo)(
4198 const IID* rgiidExclude,
4200 IStorage16* pstgDest);
4202 HRESULT (CALLBACK *MoveElementTo)(
4204 LPCOLESTR16 pwcsName,
4205 IStorage16* pstgDest,
4206 LPCOLESTR16 pwcsNewName,
4209 HRESULT (CALLBACK *Commit)(
4211 DWORD grfCommitFlags);
4213 HRESULT (CALLBACK *Revert)(
4216 HRESULT (CALLBACK *EnumElements)(
4221 IEnumSTATSTG** ppenum);
4223 HRESULT (CALLBACK *DestroyElement)(
4225 LPCOLESTR16 pwcsName);
4227 HRESULT (CALLBACK *RenameElement)(
4229 LPCOLESTR16 pwcsOldName,
4230 LPCOLESTR16 pwcsNewName);
4232 HRESULT (CALLBACK *SetElementTimes)(
4234 LPCOLESTR16 pwcsName,
4235 const FILETIME* pctime,
4236 const FILETIME* patime,
4237 const FILETIME* pmtime);
4239 HRESULT (CALLBACK *SetClass)(
4243 HRESULT (CALLBACK *SetStateBits)(
4248 HRESULT (CALLBACK *Stat)(
4255 #define IStorage16_IMETHODS \
4257 ICOM_METHOD5 (HRESULT,CreateStream,LPCOLESTR16,pwcsName,DWORD,grfMode,DWORD,reserved1,DWORD,reserved2,IStream16**,ppstm) \
4258 ICOM_METHOD5 (HRESULT,OpenStream,LPCOLESTR16,pwcsName,void*,reserved1,DWORD,grfMode,DWORD,reserved2,IStream16**,ppstm) \
4259 ICOM_METHOD5 (HRESULT,CreateStorage,LPCOLESTR16,pwcsName,DWORD,grfMode,DWORD,dwStgFmt,DWORD,reserved2,IStorage16**,ppstg) \
4260 ICOM_METHOD6 (HRESULT,OpenStorage,LPCOLESTR16,pwcsName,IStorage16*,pstgPriority,DWORD,grfMode,SNB16,snbExclude,DWORD,reserved,IStorage16**,ppstg) \
4261 ICOM_METHOD4 (HRESULT,CopyTo,DWORD,ciidExclude,const IID*,rgiidExclude,SNB16,snbExclude,IStorage16*,pstgDest) \
4262 ICOM_METHOD4 (HRESULT,MoveElementTo,LPCOLESTR16,pwcsName,IStorage16*,pstgDest,LPCOLESTR16,pwcsNewName,DWORD,grfFlags) \
4263 ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
4264 ICOM_METHOD (HRESULT,Revert) \
4265 ICOM_METHOD4 (HRESULT,EnumElements,DWORD,reserved1,void*,reserved2,DWORD,reserved3,IEnumSTATSTG**,ppenum) \
4266 ICOM_METHOD1 (HRESULT,DestroyElement,LPCOLESTR16,pwcsName) \
4267 ICOM_METHOD2 (HRESULT,RenameElement,LPCOLESTR16,pwcsOldName,LPCOLESTR16,pwcsNewName) \
4268 ICOM_METHOD4 (HRESULT,SetElementTimes,LPCOLESTR16,pwcsName,const FILETIME*,pctime,const FILETIME*,patime,const FILETIME*,pmtime) \
4269 ICOM_METHOD1 (HRESULT,SetClass,REFCLSID,clsid) \
4270 ICOM_METHOD2 (HRESULT,SetStateBits,DWORD,grfStateBits,DWORD,grfMask) \
4271 ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag)
4273 /*** IUnknown methods ***/
4274 #define IStorage16_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4275 #define IStorage16_AddRef(p) (p)->lpVtbl->AddRef(p)
4276 #define IStorage16_Release(p) (p)->lpVtbl->Release(p)
4277 /*** IStorage16 methods ***/
4278 #define IStorage16_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
4279 #define IStorage16_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
4280 #define IStorage16_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
4281 #define IStorage16_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
4282 #define IStorage16_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
4283 #define IStorage16_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
4284 #define IStorage16_Commit(p,a) (p)->lpVtbl->Commit(p,a)
4285 #define IStorage16_Revert(p) (p)->lpVtbl->Revert(p)
4286 #define IStorage16_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
4287 #define IStorage16_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
4288 #define IStorage16_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
4289 #define IStorage16_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
4290 #define IStorage16_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
4291 #define IStorage16_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
4292 #define IStorage16_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
4296 HRESULT CALLBACK IStorage16_CreateStream_Proxy(
4298 LPCOLESTR16 pwcsName,
4303 void __RPC_STUB IStorage16_CreateStream_Stub(
4304 struct IRpcStubBuffer* This,
4305 struct IRpcChannelBuffer* pRpcChannelBuffer,
4306 PRPC_MESSAGE pRpcMessage,
4307 DWORD* pdwStubPhase);
4308 HRESULT CALLBACK IStorage16_RemoteOpenStream_Proxy(
4310 LPCOLESTR16 pwcsName,
4311 unsigned long cbReserved1,
4316 void __RPC_STUB IStorage16_RemoteOpenStream_Stub(
4317 struct IRpcStubBuffer* This,
4318 struct IRpcChannelBuffer* pRpcChannelBuffer,
4319 PRPC_MESSAGE pRpcMessage,
4320 DWORD* pdwStubPhase);
4321 HRESULT CALLBACK IStorage16_OpenStream_Proxy(
4323 LPCOLESTR16 pwcsName,
4328 HRESULT __RPC_STUB IStorage16_OpenStream_Stub(
4330 LPCOLESTR16 pwcsName,
4331 unsigned long cbReserved1,
4336 HRESULT CALLBACK IStorage16_CreateStorage_Proxy(
4338 LPCOLESTR16 pwcsName,
4342 IStorage16** ppstg);
4343 void __RPC_STUB IStorage16_CreateStorage_Stub(
4344 struct IRpcStubBuffer* This,
4345 struct IRpcChannelBuffer* pRpcChannelBuffer,
4346 PRPC_MESSAGE pRpcMessage,
4347 DWORD* pdwStubPhase);
4348 HRESULT CALLBACK IStorage16_OpenStorage_Proxy(
4350 LPCOLESTR16 pwcsName,
4351 IStorage16* pstgPriority,
4355 IStorage16** ppstg);
4356 void __RPC_STUB IStorage16_OpenStorage_Stub(
4357 struct IRpcStubBuffer* This,
4358 struct IRpcChannelBuffer* pRpcChannelBuffer,
4359 PRPC_MESSAGE pRpcMessage,
4360 DWORD* pdwStubPhase);
4361 HRESULT CALLBACK IStorage16_CopyTo_Proxy(
4364 const IID* rgiidExclude,
4366 IStorage16* pstgDest);
4367 void __RPC_STUB IStorage16_CopyTo_Stub(
4368 struct IRpcStubBuffer* This,
4369 struct IRpcChannelBuffer* pRpcChannelBuffer,
4370 PRPC_MESSAGE pRpcMessage,
4371 DWORD* pdwStubPhase);
4372 HRESULT CALLBACK IStorage16_MoveElementTo_Proxy(
4374 LPCOLESTR16 pwcsName,
4375 IStorage16* pstgDest,
4376 LPCOLESTR16 pwcsNewName,
4378 void __RPC_STUB IStorage16_MoveElementTo_Stub(
4379 struct IRpcStubBuffer* This,
4380 struct IRpcChannelBuffer* pRpcChannelBuffer,
4381 PRPC_MESSAGE pRpcMessage,
4382 DWORD* pdwStubPhase);
4383 HRESULT CALLBACK IStorage16_Commit_Proxy(
4385 DWORD grfCommitFlags);
4386 void __RPC_STUB IStorage16_Commit_Stub(
4387 struct IRpcStubBuffer* This,
4388 struct IRpcChannelBuffer* pRpcChannelBuffer,
4389 PRPC_MESSAGE pRpcMessage,
4390 DWORD* pdwStubPhase);
4391 HRESULT CALLBACK IStorage16_Revert_Proxy(
4393 void __RPC_STUB IStorage16_Revert_Stub(
4394 struct IRpcStubBuffer* This,
4395 struct IRpcChannelBuffer* pRpcChannelBuffer,
4396 PRPC_MESSAGE pRpcMessage,
4397 DWORD* pdwStubPhase);
4398 HRESULT CALLBACK IStorage16_RemoteEnumElements_Proxy(
4401 unsigned long cbReserved2,
4404 IEnumSTATSTG** ppenum);
4405 void __RPC_STUB IStorage16_RemoteEnumElements_Stub(
4406 struct IRpcStubBuffer* This,
4407 struct IRpcChannelBuffer* pRpcChannelBuffer,
4408 PRPC_MESSAGE pRpcMessage,
4409 DWORD* pdwStubPhase);
4410 HRESULT CALLBACK IStorage16_EnumElements_Proxy(
4415 IEnumSTATSTG** ppenum);
4416 HRESULT __RPC_STUB IStorage16_EnumElements_Stub(
4419 unsigned long cbReserved2,
4422 IEnumSTATSTG** ppenum);
4423 HRESULT CALLBACK IStorage16_DestroyElement_Proxy(
4425 LPCOLESTR16 pwcsName);
4426 void __RPC_STUB IStorage16_DestroyElement_Stub(
4427 struct IRpcStubBuffer* This,
4428 struct IRpcChannelBuffer* pRpcChannelBuffer,
4429 PRPC_MESSAGE pRpcMessage,
4430 DWORD* pdwStubPhase);
4431 HRESULT CALLBACK IStorage16_RenameElement_Proxy(
4433 LPCOLESTR16 pwcsOldName,
4434 LPCOLESTR16 pwcsNewName);
4435 void __RPC_STUB IStorage16_RenameElement_Stub(
4436 struct IRpcStubBuffer* This,
4437 struct IRpcChannelBuffer* pRpcChannelBuffer,
4438 PRPC_MESSAGE pRpcMessage,
4439 DWORD* pdwStubPhase);
4440 HRESULT CALLBACK IStorage16_SetElementTimes_Proxy(
4442 LPCOLESTR16 pwcsName,
4443 const FILETIME* pctime,
4444 const FILETIME* patime,
4445 const FILETIME* pmtime);
4446 void __RPC_STUB IStorage16_SetElementTimes_Stub(
4447 struct IRpcStubBuffer* This,
4448 struct IRpcChannelBuffer* pRpcChannelBuffer,
4449 PRPC_MESSAGE pRpcMessage,
4450 DWORD* pdwStubPhase);
4451 HRESULT CALLBACK IStorage16_SetClass_Proxy(
4454 void __RPC_STUB IStorage16_SetClass_Stub(
4455 struct IRpcStubBuffer* This,
4456 struct IRpcChannelBuffer* pRpcChannelBuffer,
4457 PRPC_MESSAGE pRpcMessage,
4458 DWORD* pdwStubPhase);
4459 HRESULT CALLBACK IStorage16_SetStateBits_Proxy(
4463 void __RPC_STUB IStorage16_SetStateBits_Stub(
4464 struct IRpcStubBuffer* This,
4465 struct IRpcChannelBuffer* pRpcChannelBuffer,
4466 PRPC_MESSAGE pRpcMessage,
4467 DWORD* pdwStubPhase);
4468 HRESULT CALLBACK IStorage16_Stat_Proxy(
4472 void __RPC_STUB IStorage16_Stat_Stub(
4473 struct IRpcStubBuffer* This,
4474 struct IRpcChannelBuffer* pRpcChannelBuffer,
4475 PRPC_MESSAGE pRpcMessage,
4476 DWORD* pdwStubPhase);
4478 typedef struct IPersistFile IPersistFile;
4479 typedef IPersistFile *LPPERSISTFILE;
4481 /*****************************************************************************
4482 * IPersistFile interface
4484 DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4485 #if defined(__cplusplus) && !defined(CINTERFACE)
4486 struct IPersistFile: IPersist {
4488 virtual HRESULT CALLBACK IsDirty(
4491 virtual HRESULT CALLBACK Load(
4492 LPCOLESTR pszFileName,
4495 virtual HRESULT CALLBACK Save(
4496 LPCOLESTR pszFileName,
4497 BOOL fRemember) = 0;
4499 virtual HRESULT CALLBACK SaveCompleted(
4500 LPCOLESTR pszFileName) = 0;
4502 virtual HRESULT CALLBACK GetCurFile(
4503 LPOLESTR* ppszFileName) = 0;
4505 } ICOM_COM_INTERFACE_ATTRIBUTE;
4507 typedef struct IPersistFileVtbl IPersistFileVtbl;
4508 struct IPersistFile {
4509 const IPersistFileVtbl* lpVtbl;
4511 struct IPersistFileVtbl {
4512 ICOM_MSVTABLE_COMPAT_FIELDS
4514 /*** IUnknown methods ***/
4515 HRESULT (CALLBACK *QueryInterface)(
4520 ULONG (CALLBACK *AddRef)(
4521 IPersistFile* This);
4523 ULONG (CALLBACK *Release)(
4524 IPersistFile* This);
4526 /*** IPersist methods ***/
4527 HRESULT (CALLBACK *GetClassID)(
4531 /*** IPersistFile methods ***/
4532 HRESULT (CALLBACK *IsDirty)(
4533 IPersistFile* This);
4535 HRESULT (CALLBACK *Load)(
4537 LPCOLESTR pszFileName,
4540 HRESULT (CALLBACK *Save)(
4542 LPCOLESTR pszFileName,
4545 HRESULT (CALLBACK *SaveCompleted)(
4547 LPCOLESTR pszFileName);
4549 HRESULT (CALLBACK *GetCurFile)(
4551 LPOLESTR* ppszFileName);
4555 #define IPersistFile_IMETHODS \
4557 ICOM_METHOD (HRESULT,IsDirty) \
4558 ICOM_METHOD2 (HRESULT,Load,LPCOLESTR,pszFileName,DWORD,dwMode) \
4559 ICOM_METHOD2 (HRESULT,Save,LPCOLESTR,pszFileName,BOOL,fRemember) \
4560 ICOM_METHOD1 (HRESULT,SaveCompleted,LPCOLESTR,pszFileName) \
4561 ICOM_METHOD1 (HRESULT,GetCurFile,LPOLESTR*,ppszFileName)
4563 /*** IUnknown methods ***/
4564 #define IPersistFile_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4565 #define IPersistFile_AddRef(p) (p)->lpVtbl->AddRef(p)
4566 #define IPersistFile_Release(p) (p)->lpVtbl->Release(p)
4567 /*** IPersist methods ***/
4568 #define IPersistFile_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4569 /*** IPersistFile methods ***/
4570 #define IPersistFile_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4571 #define IPersistFile_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
4572 #define IPersistFile_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4573 #define IPersistFile_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
4574 #define IPersistFile_GetCurFile(p,a) (p)->lpVtbl->GetCurFile(p,a)
4578 HRESULT CALLBACK IPersistFile_IsDirty_Proxy(
4579 IPersistFile* This);
4580 void __RPC_STUB IPersistFile_IsDirty_Stub(
4581 struct IRpcStubBuffer* This,
4582 struct IRpcChannelBuffer* pRpcChannelBuffer,
4583 PRPC_MESSAGE pRpcMessage,
4584 DWORD* pdwStubPhase);
4585 HRESULT CALLBACK IPersistFile_Load_Proxy(
4587 LPCOLESTR pszFileName,
4589 void __RPC_STUB IPersistFile_Load_Stub(
4590 struct IRpcStubBuffer* This,
4591 struct IRpcChannelBuffer* pRpcChannelBuffer,
4592 PRPC_MESSAGE pRpcMessage,
4593 DWORD* pdwStubPhase);
4594 HRESULT CALLBACK IPersistFile_Save_Proxy(
4596 LPCOLESTR pszFileName,
4598 void __RPC_STUB IPersistFile_Save_Stub(
4599 struct IRpcStubBuffer* This,
4600 struct IRpcChannelBuffer* pRpcChannelBuffer,
4601 PRPC_MESSAGE pRpcMessage,
4602 DWORD* pdwStubPhase);
4603 HRESULT CALLBACK IPersistFile_SaveCompleted_Proxy(
4605 LPCOLESTR pszFileName);
4606 void __RPC_STUB IPersistFile_SaveCompleted_Stub(
4607 struct IRpcStubBuffer* This,
4608 struct IRpcChannelBuffer* pRpcChannelBuffer,
4609 PRPC_MESSAGE pRpcMessage,
4610 DWORD* pdwStubPhase);
4611 HRESULT CALLBACK IPersistFile_GetCurFile_Proxy(
4613 LPOLESTR* ppszFileName);
4614 void __RPC_STUB IPersistFile_GetCurFile_Stub(
4615 struct IRpcStubBuffer* This,
4616 struct IRpcChannelBuffer* pRpcChannelBuffer,
4617 PRPC_MESSAGE pRpcMessage,
4618 DWORD* pdwStubPhase);
4620 typedef struct IPersistStorage IPersistStorage;
4621 typedef IPersistStorage *LPPERSISTSTORAGE;
4623 /*****************************************************************************
4624 * IPersistStorage interface
4626 DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4627 #if defined(__cplusplus) && !defined(CINTERFACE)
4628 struct IPersistStorage: IPersist {
4630 virtual HRESULT CALLBACK IsDirty(
4633 virtual HRESULT CALLBACK InitNew(
4634 IStorage* pStg) = 0;
4636 virtual HRESULT CALLBACK Load(
4637 IStorage* pStg) = 0;
4639 virtual HRESULT CALLBACK Save(
4641 BOOL fSameAsLoad) = 0;
4643 virtual HRESULT CALLBACK SaveCompleted(
4644 IStorage* pStgNew) = 0;
4646 virtual HRESULT CALLBACK HandsOffStorage(
4649 } ICOM_COM_INTERFACE_ATTRIBUTE;
4651 typedef struct IPersistStorageVtbl IPersistStorageVtbl;
4652 struct IPersistStorage {
4653 const IPersistStorageVtbl* lpVtbl;
4655 struct IPersistStorageVtbl {
4656 ICOM_MSVTABLE_COMPAT_FIELDS
4658 /*** IUnknown methods ***/
4659 HRESULT (CALLBACK *QueryInterface)(
4660 IPersistStorage* This,
4664 ULONG (CALLBACK *AddRef)(
4665 IPersistStorage* This);
4667 ULONG (CALLBACK *Release)(
4668 IPersistStorage* This);
4670 /*** IPersist methods ***/
4671 HRESULT (CALLBACK *GetClassID)(
4672 IPersistStorage* This,
4675 /*** IPersistStorage methods ***/
4676 HRESULT (CALLBACK *IsDirty)(
4677 IPersistStorage* This);
4679 HRESULT (CALLBACK *InitNew)(
4680 IPersistStorage* This,
4683 HRESULT (CALLBACK *Load)(
4684 IPersistStorage* This,
4687 HRESULT (CALLBACK *Save)(
4688 IPersistStorage* This,
4692 HRESULT (CALLBACK *SaveCompleted)(
4693 IPersistStorage* This,
4696 HRESULT (CALLBACK *HandsOffStorage)(
4697 IPersistStorage* This);
4701 #define IPersistStorage_IMETHODS \
4703 ICOM_METHOD (HRESULT,IsDirty) \
4704 ICOM_METHOD1 (HRESULT,InitNew,IStorage*,pStg) \
4705 ICOM_METHOD1 (HRESULT,Load,IStorage*,pStg) \
4706 ICOM_METHOD2 (HRESULT,Save,IStorage*,pStgSave,BOOL,fSameAsLoad) \
4707 ICOM_METHOD1 (HRESULT,SaveCompleted,IStorage*,pStgNew) \
4708 ICOM_METHOD (HRESULT,HandsOffStorage)
4710 /*** IUnknown methods ***/
4711 #define IPersistStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4712 #define IPersistStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
4713 #define IPersistStorage_Release(p) (p)->lpVtbl->Release(p)
4714 /*** IPersist methods ***/
4715 #define IPersistStorage_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4716 /*** IPersistStorage methods ***/
4717 #define IPersistStorage_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4718 #define IPersistStorage_InitNew(p,a) (p)->lpVtbl->InitNew(p,a)
4719 #define IPersistStorage_Load(p,a) (p)->lpVtbl->Load(p,a)
4720 #define IPersistStorage_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4721 #define IPersistStorage_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
4722 #define IPersistStorage_HandsOffStorage(p) (p)->lpVtbl->HandsOffStorage(p)
4726 HRESULT CALLBACK IPersistStorage_IsDirty_Proxy(
4727 IPersistStorage* This);
4728 void __RPC_STUB IPersistStorage_IsDirty_Stub(
4729 struct IRpcStubBuffer* This,
4730 struct IRpcChannelBuffer* pRpcChannelBuffer,
4731 PRPC_MESSAGE pRpcMessage,
4732 DWORD* pdwStubPhase);
4733 HRESULT CALLBACK IPersistStorage_InitNew_Proxy(
4734 IPersistStorage* This,
4736 void __RPC_STUB IPersistStorage_InitNew_Stub(
4737 struct IRpcStubBuffer* This,
4738 struct IRpcChannelBuffer* pRpcChannelBuffer,
4739 PRPC_MESSAGE pRpcMessage,
4740 DWORD* pdwStubPhase);
4741 HRESULT CALLBACK IPersistStorage_Load_Proxy(
4742 IPersistStorage* This,
4744 void __RPC_STUB IPersistStorage_Load_Stub(
4745 struct IRpcStubBuffer* This,
4746 struct IRpcChannelBuffer* pRpcChannelBuffer,
4747 PRPC_MESSAGE pRpcMessage,
4748 DWORD* pdwStubPhase);
4749 HRESULT CALLBACK IPersistStorage_Save_Proxy(
4750 IPersistStorage* This,
4753 void __RPC_STUB IPersistStorage_Save_Stub(
4754 struct IRpcStubBuffer* This,
4755 struct IRpcChannelBuffer* pRpcChannelBuffer,
4756 PRPC_MESSAGE pRpcMessage,
4757 DWORD* pdwStubPhase);
4758 HRESULT CALLBACK IPersistStorage_SaveCompleted_Proxy(
4759 IPersistStorage* This,
4761 void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
4762 struct IRpcStubBuffer* This,
4763 struct IRpcChannelBuffer* pRpcChannelBuffer,
4764 PRPC_MESSAGE pRpcMessage,
4765 DWORD* pdwStubPhase);
4766 HRESULT CALLBACK IPersistStorage_HandsOffStorage_Proxy(
4767 IPersistStorage* This);
4768 void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
4769 struct IRpcStubBuffer* This,
4770 struct IRpcChannelBuffer* pRpcChannelBuffer,
4771 PRPC_MESSAGE pRpcMessage,
4772 DWORD* pdwStubPhase);
4774 typedef struct IRootStorage IRootStorage;
4775 typedef IRootStorage *LPROOTSTORAGE;
4777 /*****************************************************************************
4778 * IRootStorage interface
4780 DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4781 #if defined(__cplusplus) && !defined(CINTERFACE)
4782 struct IRootStorage: IUnknown {
4784 virtual HRESULT CALLBACK SwitchToFile(
4785 LPOLESTR pszFile) = 0;
4787 } ICOM_COM_INTERFACE_ATTRIBUTE;
4789 typedef struct IRootStorageVtbl IRootStorageVtbl;
4790 struct IRootStorage {
4791 const IRootStorageVtbl* lpVtbl;
4793 struct IRootStorageVtbl {
4794 ICOM_MSVTABLE_COMPAT_FIELDS
4796 /*** IUnknown methods ***/
4797 HRESULT (CALLBACK *QueryInterface)(
4802 ULONG (CALLBACK *AddRef)(
4803 IRootStorage* This);
4805 ULONG (CALLBACK *Release)(
4806 IRootStorage* This);
4808 /*** IRootStorage methods ***/
4809 HRESULT (CALLBACK *SwitchToFile)(
4815 #define IRootStorage_IMETHODS \
4817 ICOM_METHOD1 (HRESULT,SwitchToFile,LPOLESTR,pszFile)
4819 /*** IUnknown methods ***/
4820 #define IRootStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4821 #define IRootStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
4822 #define IRootStorage_Release(p) (p)->lpVtbl->Release(p)
4823 /*** IRootStorage methods ***/
4824 #define IRootStorage_SwitchToFile(p,a) (p)->lpVtbl->SwitchToFile(p,a)
4828 HRESULT CALLBACK IRootStorage_SwitchToFile_Proxy(
4831 void __RPC_STUB IRootStorage_SwitchToFile_Stub(
4832 struct IRpcStubBuffer* This,
4833 struct IRpcChannelBuffer* pRpcChannelBuffer,
4834 PRPC_MESSAGE pRpcMessage,
4835 DWORD* pdwStubPhase);
4837 typedef struct ILockBytes ILockBytes;
4838 typedef ILockBytes *LPLOCKBYTES;
4840 /*****************************************************************************
4841 * ILockBytes interface
4843 DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
4844 #if defined(__cplusplus) && !defined(CINTERFACE)
4845 struct ILockBytes: IUnknown {
4847 virtual HRESULT CALLBACK ReadAt(
4848 ULARGE_INTEGER ulOffset,
4851 ULONG* pcbRead) = 0;
4853 virtual HRESULT CALLBACK WriteAt(
4854 ULARGE_INTEGER ulOffset,
4857 ULONG* pcbWritten) = 0;
4859 virtual HRESULT CALLBACK Flush(
4862 virtual HRESULT CALLBACK SetSize(
4863 ULARGE_INTEGER cb) = 0;
4865 virtual HRESULT CALLBACK LockRegion(
4866 ULARGE_INTEGER libOffset,
4868 DWORD dwLockType) = 0;
4870 virtual HRESULT CALLBACK UnlockRegion(
4871 ULARGE_INTEGER libOffset,
4873 DWORD dwLockType) = 0;
4875 virtual HRESULT CALLBACK Stat(
4877 DWORD grfStatFlag) = 0;
4879 } ICOM_COM_INTERFACE_ATTRIBUTE;
4881 typedef struct ILockBytesVtbl ILockBytesVtbl;
4883 const ILockBytesVtbl* lpVtbl;
4885 struct ILockBytesVtbl {
4886 ICOM_MSVTABLE_COMPAT_FIELDS
4888 /*** IUnknown methods ***/
4889 HRESULT (CALLBACK *QueryInterface)(
4894 ULONG (CALLBACK *AddRef)(
4897 ULONG (CALLBACK *Release)(
4900 /*** ILockBytes methods ***/
4901 HRESULT (CALLBACK *ReadAt)(
4903 ULARGE_INTEGER ulOffset,
4908 HRESULT (CALLBACK *WriteAt)(
4910 ULARGE_INTEGER ulOffset,
4915 HRESULT (CALLBACK *Flush)(
4918 HRESULT (CALLBACK *SetSize)(
4922 HRESULT (CALLBACK *LockRegion)(
4924 ULARGE_INTEGER libOffset,
4928 HRESULT (CALLBACK *UnlockRegion)(
4930 ULARGE_INTEGER libOffset,
4934 HRESULT (CALLBACK *Stat)(
4941 #define ILockBytes_IMETHODS \
4943 ICOM_METHOD4 (HRESULT,ReadAt,ULARGE_INTEGER,ulOffset,void*,pv,ULONG,cb,ULONG*,pcbRead) \
4944 ICOM_METHOD4 (HRESULT,WriteAt,ULARGE_INTEGER,ulOffset,const void*,pv,ULONG,cb,ULONG*,pcbWritten) \
4945 ICOM_METHOD (HRESULT,Flush) \
4946 ICOM_METHOD1 (HRESULT,SetSize,ULARGE_INTEGER,cb) \
4947 ICOM_METHOD3 (HRESULT,LockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
4948 ICOM_METHOD3 (HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
4949 ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag)
4951 /*** IUnknown methods ***/
4952 #define ILockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4953 #define ILockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
4954 #define ILockBytes_Release(p) (p)->lpVtbl->Release(p)
4955 /*** ILockBytes methods ***/
4956 #define ILockBytes_ReadAt(p,a,b,c,d) (p)->lpVtbl->ReadAt(p,a,b,c,d)
4957 #define ILockBytes_WriteAt(p,a,b,c,d) (p)->lpVtbl->WriteAt(p,a,b,c,d)
4958 #define ILockBytes_Flush(p) (p)->lpVtbl->Flush(p)
4959 #define ILockBytes_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
4960 #define ILockBytes_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
4961 #define ILockBytes_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
4962 #define ILockBytes_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
4966 HRESULT CALLBACK ILockBytes_RemoteReadAt_Proxy(
4968 ULARGE_INTEGER ulOffset,
4972 void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
4973 struct IRpcStubBuffer* This,
4974 struct IRpcChannelBuffer* pRpcChannelBuffer,
4975 PRPC_MESSAGE pRpcMessage,
4976 DWORD* pdwStubPhase);
4977 HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
4979 ULARGE_INTEGER ulOffset,
4983 HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
4985 ULARGE_INTEGER ulOffset,
4989 HRESULT CALLBACK ILockBytes_RemoteWriteAt_Proxy(
4991 ULARGE_INTEGER ulOffset,
4995 void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
4996 struct IRpcStubBuffer* This,
4997 struct IRpcChannelBuffer* pRpcChannelBuffer,
4998 PRPC_MESSAGE pRpcMessage,
4999 DWORD* pdwStubPhase);
5000 HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
5002 ULARGE_INTEGER ulOffset,
5006 HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
5008 ULARGE_INTEGER ulOffset,
5012 HRESULT CALLBACK ILockBytes_Flush_Proxy(
5014 void __RPC_STUB ILockBytes_Flush_Stub(
5015 struct IRpcStubBuffer* This,
5016 struct IRpcChannelBuffer* pRpcChannelBuffer,
5017 PRPC_MESSAGE pRpcMessage,
5018 DWORD* pdwStubPhase);
5019 HRESULT CALLBACK ILockBytes_SetSize_Proxy(
5022 void __RPC_STUB ILockBytes_SetSize_Stub(
5023 struct IRpcStubBuffer* This,
5024 struct IRpcChannelBuffer* pRpcChannelBuffer,
5025 PRPC_MESSAGE pRpcMessage,
5026 DWORD* pdwStubPhase);
5027 HRESULT CALLBACK ILockBytes_LockRegion_Proxy(
5029 ULARGE_INTEGER libOffset,
5032 void __RPC_STUB ILockBytes_LockRegion_Stub(
5033 struct IRpcStubBuffer* This,
5034 struct IRpcChannelBuffer* pRpcChannelBuffer,
5035 PRPC_MESSAGE pRpcMessage,
5036 DWORD* pdwStubPhase);
5037 HRESULT CALLBACK ILockBytes_UnlockRegion_Proxy(
5039 ULARGE_INTEGER libOffset,
5042 void __RPC_STUB ILockBytes_UnlockRegion_Stub(
5043 struct IRpcStubBuffer* This,
5044 struct IRpcChannelBuffer* pRpcChannelBuffer,
5045 PRPC_MESSAGE pRpcMessage,
5046 DWORD* pdwStubPhase);
5047 HRESULT CALLBACK ILockBytes_Stat_Proxy(
5051 void __RPC_STUB ILockBytes_Stat_Stub(
5052 struct IRpcStubBuffer* This,
5053 struct IRpcChannelBuffer* pRpcChannelBuffer,
5054 PRPC_MESSAGE pRpcMessage,
5055 DWORD* pdwStubPhase);
5057 typedef struct IFillLockBytes IFillLockBytes;
5058 /*****************************************************************************
5059 * IFillLockBytes interface
5061 DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
5062 #if defined(__cplusplus) && !defined(CINTERFACE)
5063 struct IFillLockBytes: IUnknown {
5065 virtual HRESULT CALLBACK FillAppend(
5068 ULONG* pcbWritten) = 0;
5070 virtual HRESULT CALLBACK FillAt(
5071 ULARGE_INTEGER ulOffset,
5074 ULONG* pcbWritten) = 0;
5076 virtual HRESULT CALLBACK SetFillSize(
5077 ULARGE_INTEGER ulSize) = 0;
5079 virtual HRESULT CALLBACK Terminate(
5080 BOOL bCanceled) = 0;
5082 } ICOM_COM_INTERFACE_ATTRIBUTE;
5084 typedef struct IFillLockBytesVtbl IFillLockBytesVtbl;
5085 struct IFillLockBytes {
5086 const IFillLockBytesVtbl* lpVtbl;
5088 struct IFillLockBytesVtbl {
5089 ICOM_MSVTABLE_COMPAT_FIELDS
5091 /*** IUnknown methods ***/
5092 HRESULT (CALLBACK *QueryInterface)(
5093 IFillLockBytes* This,
5097 ULONG (CALLBACK *AddRef)(
5098 IFillLockBytes* This);
5100 ULONG (CALLBACK *Release)(
5101 IFillLockBytes* This);
5103 /*** IFillLockBytes methods ***/
5104 HRESULT (CALLBACK *FillAppend)(
5105 IFillLockBytes* This,
5110 HRESULT (CALLBACK *FillAt)(
5111 IFillLockBytes* This,
5112 ULARGE_INTEGER ulOffset,
5117 HRESULT (CALLBACK *SetFillSize)(
5118 IFillLockBytes* This,
5119 ULARGE_INTEGER ulSize);
5121 HRESULT (CALLBACK *Terminate)(
5122 IFillLockBytes* This,
5127 #define IFillLockBytes_IMETHODS \
5129 ICOM_METHOD3 (HRESULT,FillAppend,const void*,pv,ULONG,cb,ULONG*,pcbWritten) \
5130 ICOM_METHOD4 (HRESULT,FillAt,ULARGE_INTEGER,ulOffset,const void*,pv,ULONG,cb,ULONG*,pcbWritten) \
5131 ICOM_METHOD1 (HRESULT,SetFillSize,ULARGE_INTEGER,ulSize) \
5132 ICOM_METHOD1 (HRESULT,Terminate,BOOL,bCanceled)
5134 /*** IUnknown methods ***/
5135 #define IFillLockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5136 #define IFillLockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
5137 #define IFillLockBytes_Release(p) (p)->lpVtbl->Release(p)
5138 /*** IFillLockBytes methods ***/
5139 #define IFillLockBytes_FillAppend(p,a,b,c) (p)->lpVtbl->FillAppend(p,a,b,c)
5140 #define IFillLockBytes_FillAt(p,a,b,c,d) (p)->lpVtbl->FillAt(p,a,b,c,d)
5141 #define IFillLockBytes_SetFillSize(p,a) (p)->lpVtbl->SetFillSize(p,a)
5142 #define IFillLockBytes_Terminate(p,a) (p)->lpVtbl->Terminate(p,a)
5146 HRESULT CALLBACK IFillLockBytes_RemoteFillAppend_Proxy(
5147 IFillLockBytes* This,
5151 void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
5152 struct IRpcStubBuffer* This,
5153 struct IRpcChannelBuffer* pRpcChannelBuffer,
5154 PRPC_MESSAGE pRpcMessage,
5155 DWORD* pdwStubPhase);
5156 HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
5157 IFillLockBytes* This,
5161 HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
5162 IFillLockBytes* This,
5166 HRESULT CALLBACK IFillLockBytes_RemoteFillAt_Proxy(
5167 IFillLockBytes* This,
5168 ULARGE_INTEGER ulOffset,
5172 void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
5173 struct IRpcStubBuffer* This,
5174 struct IRpcChannelBuffer* pRpcChannelBuffer,
5175 PRPC_MESSAGE pRpcMessage,
5176 DWORD* pdwStubPhase);
5177 HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
5178 IFillLockBytes* This,
5179 ULARGE_INTEGER ulOffset,
5183 HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
5184 IFillLockBytes* This,
5185 ULARGE_INTEGER ulOffset,
5189 HRESULT CALLBACK IFillLockBytes_SetFillSize_Proxy(
5190 IFillLockBytes* This,
5191 ULARGE_INTEGER ulSize);
5192 void __RPC_STUB IFillLockBytes_SetFillSize_Stub(
5193 struct IRpcStubBuffer* This,
5194 struct IRpcChannelBuffer* pRpcChannelBuffer,
5195 PRPC_MESSAGE pRpcMessage,
5196 DWORD* pdwStubPhase);
5197 HRESULT CALLBACK IFillLockBytes_Terminate_Proxy(
5198 IFillLockBytes* This,
5200 void __RPC_STUB IFillLockBytes_Terminate_Stub(
5201 struct IRpcStubBuffer* This,
5202 struct IRpcChannelBuffer* pRpcChannelBuffer,
5203 PRPC_MESSAGE pRpcMessage,
5204 DWORD* pdwStubPhase);
5206 typedef struct IProgressNotify IProgressNotify;
5207 /*****************************************************************************
5208 * IProgressNotify interface
5210 DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
5211 #if defined(__cplusplus) && !defined(CINTERFACE)
5212 struct IProgressNotify: IUnknown {
5214 virtual HRESULT CALLBACK OnProgress(
5215 DWORD dwProgressCurrent,
5216 DWORD dwProgressMaximum,
5220 } ICOM_COM_INTERFACE_ATTRIBUTE;
5222 typedef struct IProgressNotifyVtbl IProgressNotifyVtbl;
5223 struct IProgressNotify {
5224 const IProgressNotifyVtbl* lpVtbl;
5226 struct IProgressNotifyVtbl {
5227 ICOM_MSVTABLE_COMPAT_FIELDS
5229 /*** IUnknown methods ***/
5230 HRESULT (CALLBACK *QueryInterface)(
5231 IProgressNotify* This,
5235 ULONG (CALLBACK *AddRef)(
5236 IProgressNotify* This);
5238 ULONG (CALLBACK *Release)(
5239 IProgressNotify* This);
5241 /*** IProgressNotify methods ***/
5242 HRESULT (CALLBACK *OnProgress)(
5243 IProgressNotify* This,
5244 DWORD dwProgressCurrent,
5245 DWORD dwProgressMaximum,
5251 #define IProgressNotify_IMETHODS \
5253 ICOM_METHOD4 (HRESULT,OnProgress,DWORD,dwProgressCurrent,DWORD,dwProgressMaximum,BOOL,fAccurate,BOOL,fOwner)
5255 /*** IUnknown methods ***/
5256 #define IProgressNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5257 #define IProgressNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
5258 #define IProgressNotify_Release(p) (p)->lpVtbl->Release(p)
5259 /*** IProgressNotify methods ***/
5260 #define IProgressNotify_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d)
5264 HRESULT CALLBACK IProgressNotify_OnProgress_Proxy(
5265 IProgressNotify* This,
5266 DWORD dwProgressCurrent,
5267 DWORD dwProgressMaximum,
5270 void __RPC_STUB IProgressNotify_OnProgress_Stub(
5271 struct IRpcStubBuffer* This,
5272 struct IRpcChannelBuffer* pRpcChannelBuffer,
5273 PRPC_MESSAGE pRpcMessage,
5274 DWORD* pdwStubPhase);
5276 typedef struct ILayoutStorage ILayoutStorage;
5277 typedef struct tagStorageLayout {
5279 OLECHAR *pwcsElementName;
5280 LARGE_INTEGER cOffset;
5281 LARGE_INTEGER cBytes;
5284 /*****************************************************************************
5285 * ILayoutStorage interface
5287 DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
5288 #if defined(__cplusplus) && !defined(CINTERFACE)
5289 struct ILayoutStorage: IUnknown {
5291 virtual HRESULT CALLBACK LayoutScript(
5292 StorageLayout* pStorageLayout,
5294 DWORD glfInterleavedFlag) = 0;
5296 virtual HRESULT CALLBACK BeginMonitor(
5299 virtual HRESULT CALLBACK EndMonitor(
5302 virtual HRESULT CALLBACK ReLayoutDocfile(
5303 OLECHAR* pwcsNewDfName) = 0;
5305 virtual HRESULT CALLBACK ReLayoutDocfileOnILockBytes(
5306 ILockBytes* pILockBytes) = 0;
5308 } ICOM_COM_INTERFACE_ATTRIBUTE;
5310 typedef struct ILayoutStorageVtbl ILayoutStorageVtbl;
5311 struct ILayoutStorage {
5312 const ILayoutStorageVtbl* lpVtbl;
5314 struct ILayoutStorageVtbl {
5315 ICOM_MSVTABLE_COMPAT_FIELDS
5317 /*** IUnknown methods ***/
5318 HRESULT (CALLBACK *QueryInterface)(
5319 ILayoutStorage* This,
5323 ULONG (CALLBACK *AddRef)(
5324 ILayoutStorage* This);
5326 ULONG (CALLBACK *Release)(
5327 ILayoutStorage* This);
5329 /*** ILayoutStorage methods ***/
5330 HRESULT (CALLBACK *LayoutScript)(
5331 ILayoutStorage* This,
5332 StorageLayout* pStorageLayout,
5334 DWORD glfInterleavedFlag);
5336 HRESULT (CALLBACK *BeginMonitor)(
5337 ILayoutStorage* This);
5339 HRESULT (CALLBACK *EndMonitor)(
5340 ILayoutStorage* This);
5342 HRESULT (CALLBACK *ReLayoutDocfile)(
5343 ILayoutStorage* This,
5344 OLECHAR* pwcsNewDfName);
5346 HRESULT (CALLBACK *ReLayoutDocfileOnILockBytes)(
5347 ILayoutStorage* This,
5348 ILockBytes* pILockBytes);
5352 #define ILayoutStorage_IMETHODS \
5354 ICOM_METHOD3 (HRESULT,LayoutScript,StorageLayout*,pStorageLayout,DWORD,nEntries,DWORD,glfInterleavedFlag) \
5355 ICOM_METHOD (HRESULT,BeginMonitor) \
5356 ICOM_METHOD (HRESULT,EndMonitor) \
5357 ICOM_METHOD1 (HRESULT,ReLayoutDocfile,OLECHAR*,pwcsNewDfName) \
5358 ICOM_METHOD1 (HRESULT,ReLayoutDocfileOnILockBytes,ILockBytes*,pILockBytes)
5360 /*** IUnknown methods ***/
5361 #define ILayoutStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5362 #define ILayoutStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
5363 #define ILayoutStorage_Release(p) (p)->lpVtbl->Release(p)
5364 /*** ILayoutStorage methods ***/
5365 #define ILayoutStorage_LayoutScript(p,a,b,c) (p)->lpVtbl->LayoutScript(p,a,b,c)
5366 #define ILayoutStorage_BeginMonitor(p) (p)->lpVtbl->BeginMonitor(p)
5367 #define ILayoutStorage_EndMonitor(p) (p)->lpVtbl->EndMonitor(p)
5368 #define ILayoutStorage_ReLayoutDocfile(p,a) (p)->lpVtbl->ReLayoutDocfile(p,a)
5369 #define ILayoutStorage_ReLayoutDocfileOnILockBytes(p,a) (p)->lpVtbl->ReLayoutDocfileOnILockBytes(p,a)
5373 HRESULT CALLBACK ILayoutStorage_LayoutScript_Proxy(
5374 ILayoutStorage* This,
5375 StorageLayout* pStorageLayout,
5377 DWORD glfInterleavedFlag);
5378 void __RPC_STUB ILayoutStorage_LayoutScript_Stub(
5379 struct IRpcStubBuffer* This,
5380 struct IRpcChannelBuffer* pRpcChannelBuffer,
5381 PRPC_MESSAGE pRpcMessage,
5382 DWORD* pdwStubPhase);
5383 HRESULT CALLBACK ILayoutStorage_BeginMonitor_Proxy(
5384 ILayoutStorage* This);
5385 void __RPC_STUB ILayoutStorage_BeginMonitor_Stub(
5386 struct IRpcStubBuffer* This,
5387 struct IRpcChannelBuffer* pRpcChannelBuffer,
5388 PRPC_MESSAGE pRpcMessage,
5389 DWORD* pdwStubPhase);
5390 HRESULT CALLBACK ILayoutStorage_EndMonitor_Proxy(
5391 ILayoutStorage* This);
5392 void __RPC_STUB ILayoutStorage_EndMonitor_Stub(
5393 struct IRpcStubBuffer* This,
5394 struct IRpcChannelBuffer* pRpcChannelBuffer,
5395 PRPC_MESSAGE pRpcMessage,
5396 DWORD* pdwStubPhase);
5397 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfile_Proxy(
5398 ILayoutStorage* This,
5399 OLECHAR* pwcsNewDfName);
5400 void __RPC_STUB ILayoutStorage_ReLayoutDocfile_Stub(
5401 struct IRpcStubBuffer* This,
5402 struct IRpcChannelBuffer* pRpcChannelBuffer,
5403 PRPC_MESSAGE pRpcMessage,
5404 DWORD* pdwStubPhase);
5405 HRESULT CALLBACK ILayoutStorage_ReLayoutDocfileOnILockBytes_Proxy(
5406 ILayoutStorage* This,
5407 ILockBytes* pILockBytes);
5408 void __RPC_STUB ILayoutStorage_ReLayoutDocfileOnILockBytes_Stub(
5409 struct IRpcStubBuffer* This,
5410 struct IRpcChannelBuffer* pRpcChannelBuffer,
5411 PRPC_MESSAGE pRpcMessage,
5412 DWORD* pdwStubPhase);
5414 typedef struct IEnumFORMATETC IEnumFORMATETC;
5415 typedef IEnumFORMATETC *LPENUMFORMATETC;
5417 typedef struct tagDVTARGETDEVICE {
5419 WORD tdDriverNameOffset;
5420 WORD tdDeviceNameOffset;
5421 WORD tdPortNameOffset;
5422 WORD tdExtDevmodeOffset;
5426 typedef CLIPFORMAT *LPCLIPFORMAT;
5428 typedef struct tagFORMATETC {
5429 CLIPFORMAT cfFormat;
5430 DVTARGETDEVICE *ptd;
5434 } FORMATETC, *LPFORMATETC;
5436 /*****************************************************************************
5437 * IEnumFORMATETC interface
5439 DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5440 #if defined(__cplusplus) && !defined(CINTERFACE)
5441 struct IEnumFORMATETC: IUnknown {
5443 virtual HRESULT CALLBACK Next(
5446 ULONG* pceltFetched) = 0;
5448 virtual HRESULT CALLBACK Skip(
5451 virtual HRESULT CALLBACK Reset(
5454 virtual HRESULT CALLBACK Clone(
5455 IEnumFORMATETC** ppenum) = 0;
5457 } ICOM_COM_INTERFACE_ATTRIBUTE;
5459 typedef struct IEnumFORMATETCVtbl IEnumFORMATETCVtbl;
5460 struct IEnumFORMATETC {
5461 const IEnumFORMATETCVtbl* lpVtbl;
5463 struct IEnumFORMATETCVtbl {
5464 ICOM_MSVTABLE_COMPAT_FIELDS
5466 /*** IUnknown methods ***/
5467 HRESULT (CALLBACK *QueryInterface)(
5468 IEnumFORMATETC* This,
5472 ULONG (CALLBACK *AddRef)(
5473 IEnumFORMATETC* This);
5475 ULONG (CALLBACK *Release)(
5476 IEnumFORMATETC* This);
5478 /*** IEnumFORMATETC methods ***/
5479 HRESULT (CALLBACK *Next)(
5480 IEnumFORMATETC* This,
5483 ULONG* pceltFetched);
5485 HRESULT (CALLBACK *Skip)(
5486 IEnumFORMATETC* This,
5489 HRESULT (CALLBACK *Reset)(
5490 IEnumFORMATETC* This);
5492 HRESULT (CALLBACK *Clone)(
5493 IEnumFORMATETC* This,
5494 IEnumFORMATETC** ppenum);
5498 #define IEnumFORMATETC_IMETHODS \
5500 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,FORMATETC*,rgelt,ULONG*,pceltFetched) \
5501 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
5502 ICOM_METHOD (HRESULT,Reset) \
5503 ICOM_METHOD1 (HRESULT,Clone,IEnumFORMATETC**,ppenum)
5505 /*** IUnknown methods ***/
5506 #define IEnumFORMATETC_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5507 #define IEnumFORMATETC_AddRef(p) (p)->lpVtbl->AddRef(p)
5508 #define IEnumFORMATETC_Release(p) (p)->lpVtbl->Release(p)
5509 /*** IEnumFORMATETC methods ***/
5510 #define IEnumFORMATETC_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5511 #define IEnumFORMATETC_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5512 #define IEnumFORMATETC_Reset(p) (p)->lpVtbl->Reset(p)
5513 #define IEnumFORMATETC_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5517 HRESULT CALLBACK IEnumFORMATETC_RemoteNext_Proxy(
5518 IEnumFORMATETC* This,
5521 ULONG* pceltFetched);
5522 void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
5523 struct IRpcStubBuffer* This,
5524 struct IRpcChannelBuffer* pRpcChannelBuffer,
5525 PRPC_MESSAGE pRpcMessage,
5526 DWORD* pdwStubPhase);
5527 HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
5528 IEnumFORMATETC* This,
5531 ULONG* pceltFetched);
5532 HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
5533 IEnumFORMATETC* This,
5536 ULONG* pceltFetched);
5537 HRESULT CALLBACK IEnumFORMATETC_Skip_Proxy(
5538 IEnumFORMATETC* This,
5540 void __RPC_STUB IEnumFORMATETC_Skip_Stub(
5541 struct IRpcStubBuffer* This,
5542 struct IRpcChannelBuffer* pRpcChannelBuffer,
5543 PRPC_MESSAGE pRpcMessage,
5544 DWORD* pdwStubPhase);
5545 HRESULT CALLBACK IEnumFORMATETC_Reset_Proxy(
5546 IEnumFORMATETC* This);
5547 void __RPC_STUB IEnumFORMATETC_Reset_Stub(
5548 struct IRpcStubBuffer* This,
5549 struct IRpcChannelBuffer* pRpcChannelBuffer,
5550 PRPC_MESSAGE pRpcMessage,
5551 DWORD* pdwStubPhase);
5552 HRESULT CALLBACK IEnumFORMATETC_Clone_Proxy(
5553 IEnumFORMATETC* This,
5554 IEnumFORMATETC** ppenum);
5555 void __RPC_STUB IEnumFORMATETC_Clone_Stub(
5556 struct IRpcStubBuffer* This,
5557 struct IRpcChannelBuffer* pRpcChannelBuffer,
5558 PRPC_MESSAGE pRpcMessage,
5559 DWORD* pdwStubPhase);
5561 typedef struct IEnumSTATDATA IEnumSTATDATA;
5562 typedef IEnumSTATDATA *LPENUMSTATDATA;
5564 typedef enum tagADVF {
5566 ADVF_PRIMEFIRST = 2,
5568 ADVF_DATAONSTOP = 64,
5569 ADVFCACHE_NOHANDLER = 8,
5570 ADVFCACHE_FORCEBUILTIN = 16,
5571 ADVFCACHE_ONSAVE = 32
5574 typedef struct tagSTATDATA {
5575 FORMATETC formatetc;
5577 IAdviseSink *pAdvSink;
5579 } STATDATA, *LPSTATDATA;
5581 /*****************************************************************************
5582 * IEnumSTATDATA interface
5584 DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5585 #if defined(__cplusplus) && !defined(CINTERFACE)
5586 struct IEnumSTATDATA: IUnknown {
5588 virtual HRESULT CALLBACK Next(
5591 ULONG* pceltFetched) = 0;
5593 virtual HRESULT CALLBACK Skip(
5596 virtual HRESULT CALLBACK Reset(
5599 virtual HRESULT CALLBACK Clone(
5600 IEnumSTATDATA** ppenum) = 0;
5602 } ICOM_COM_INTERFACE_ATTRIBUTE;
5604 typedef struct IEnumSTATDATAVtbl IEnumSTATDATAVtbl;
5605 struct IEnumSTATDATA {
5606 const IEnumSTATDATAVtbl* lpVtbl;
5608 struct IEnumSTATDATAVtbl {
5609 ICOM_MSVTABLE_COMPAT_FIELDS
5611 /*** IUnknown methods ***/
5612 HRESULT (CALLBACK *QueryInterface)(
5613 IEnumSTATDATA* This,
5617 ULONG (CALLBACK *AddRef)(
5618 IEnumSTATDATA* This);
5620 ULONG (CALLBACK *Release)(
5621 IEnumSTATDATA* This);
5623 /*** IEnumSTATDATA methods ***/
5624 HRESULT (CALLBACK *Next)(
5625 IEnumSTATDATA* This,
5628 ULONG* pceltFetched);
5630 HRESULT (CALLBACK *Skip)(
5631 IEnumSTATDATA* This,
5634 HRESULT (CALLBACK *Reset)(
5635 IEnumSTATDATA* This);
5637 HRESULT (CALLBACK *Clone)(
5638 IEnumSTATDATA* This,
5639 IEnumSTATDATA** ppenum);
5643 #define IEnumSTATDATA_IMETHODS \
5645 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATDATA*,rgelt,ULONG*,pceltFetched) \
5646 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
5647 ICOM_METHOD (HRESULT,Reset) \
5648 ICOM_METHOD1 (HRESULT,Clone,IEnumSTATDATA**,ppenum)
5650 /*** IUnknown methods ***/
5651 #define IEnumSTATDATA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5652 #define IEnumSTATDATA_AddRef(p) (p)->lpVtbl->AddRef(p)
5653 #define IEnumSTATDATA_Release(p) (p)->lpVtbl->Release(p)
5654 /*** IEnumSTATDATA methods ***/
5655 #define IEnumSTATDATA_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5656 #define IEnumSTATDATA_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5657 #define IEnumSTATDATA_Reset(p) (p)->lpVtbl->Reset(p)
5658 #define IEnumSTATDATA_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5662 HRESULT CALLBACK IEnumSTATDATA_RemoteNext_Proxy(
5663 IEnumSTATDATA* This,
5666 ULONG* pceltFetched);
5667 void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
5668 struct IRpcStubBuffer* This,
5669 struct IRpcChannelBuffer* pRpcChannelBuffer,
5670 PRPC_MESSAGE pRpcMessage,
5671 DWORD* pdwStubPhase);
5672 HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
5673 IEnumSTATDATA* This,
5676 ULONG* pceltFetched);
5677 HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
5678 IEnumSTATDATA* This,
5681 ULONG* pceltFetched);
5682 HRESULT CALLBACK IEnumSTATDATA_Skip_Proxy(
5683 IEnumSTATDATA* This,
5685 void __RPC_STUB IEnumSTATDATA_Skip_Stub(
5686 struct IRpcStubBuffer* This,
5687 struct IRpcChannelBuffer* pRpcChannelBuffer,
5688 PRPC_MESSAGE pRpcMessage,
5689 DWORD* pdwStubPhase);
5690 HRESULT CALLBACK IEnumSTATDATA_Reset_Proxy(
5691 IEnumSTATDATA* This);
5692 void __RPC_STUB IEnumSTATDATA_Reset_Stub(
5693 struct IRpcStubBuffer* This,
5694 struct IRpcChannelBuffer* pRpcChannelBuffer,
5695 PRPC_MESSAGE pRpcMessage,
5696 DWORD* pdwStubPhase);
5697 HRESULT CALLBACK IEnumSTATDATA_Clone_Proxy(
5698 IEnumSTATDATA* This,
5699 IEnumSTATDATA** ppenum);
5700 void __RPC_STUB IEnumSTATDATA_Clone_Stub(
5701 struct IRpcStubBuffer* This,
5702 struct IRpcChannelBuffer* pRpcChannelBuffer,
5703 PRPC_MESSAGE pRpcMessage,
5704 DWORD* pdwStubPhase);
5706 typedef IAdviseSink *LPADVISESINK;
5708 typedef enum tagTYMED {
5719 typedef struct tagRemSTGMEDIUM {
5722 unsigned long pData;
5723 unsigned long pUnkForRelease;
5724 unsigned long cbData;
5728 typedef struct tagSTGMEDIUM {
5732 HMETAFILEPICT hMetaFilePict;
5733 HENHMETAFILE hEnhMetaFile;
5735 LPOLESTR lpszFileName;
5739 IUnknown *pUnkForRelease;
5742 typedef struct _GDI_OBJECT {
5745 wireHBITMAP hBitmap;
5746 wireHPALETTE hPalette;
5747 wireHGLOBAL hGeneric;
5751 typedef struct _userSTGMEDIUM {
5752 struct _STGMEDIUM_UNION {
5755 wireHMETAFILEPICT hMetaFilePict;
5756 wireHENHMETAFILE hHEnhMetaFile;
5757 GDI_OBJECT *hGdiHandle;
5758 wireHGLOBAL hGlobal;
5759 LPOLESTR lpszFileName;
5764 IUnknown *pUnkForRelease;
5767 typedef userSTGMEDIUM *wireSTGMEDIUM;
5769 typedef uSTGMEDIUM STGMEDIUM;
5771 typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
5773 typedef STGMEDIUM ASYNC_STGMEDIUM;
5775 typedef STGMEDIUM *LPSTGMEDIUM;
5777 typedef struct _userFLAG_STGMEDIUM {
5779 long fPassOwnership;
5780 userSTGMEDIUM Stgmed;
5781 } userFLAG_STGMEDIUM;
5783 typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
5785 typedef struct _FLAG_STGMEDIUM {
5787 long fPassOwnership;
5791 /*****************************************************************************
5792 * IAdviseSink interface
5794 DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5795 #if defined(__cplusplus) && !defined(CINTERFACE)
5796 struct IAdviseSink: IUnknown {
5798 virtual void CALLBACK OnDataChange(
5799 FORMATETC* pFormatetc,
5800 STGMEDIUM* pStgmed) = 0;
5802 virtual void CALLBACK OnViewChange(
5806 virtual void CALLBACK OnRename(
5809 virtual void CALLBACK OnSave(
5812 virtual void CALLBACK OnClose(
5815 } ICOM_COM_INTERFACE_ATTRIBUTE;
5817 typedef struct IAdviseSinkVtbl IAdviseSinkVtbl;
5818 struct IAdviseSink {
5819 const IAdviseSinkVtbl* lpVtbl;
5821 struct IAdviseSinkVtbl {
5822 ICOM_MSVTABLE_COMPAT_FIELDS
5824 /*** IUnknown methods ***/
5825 HRESULT (CALLBACK *QueryInterface)(
5830 ULONG (CALLBACK *AddRef)(
5833 ULONG (CALLBACK *Release)(
5836 /*** IAdviseSink methods ***/
5837 void (CALLBACK *OnDataChange)(
5839 FORMATETC* pFormatetc,
5840 STGMEDIUM* pStgmed);
5842 void (CALLBACK *OnViewChange)(
5847 void (CALLBACK *OnRename)(
5851 void (CALLBACK *OnSave)(
5854 void (CALLBACK *OnClose)(
5859 #define IAdviseSink_IMETHODS \
5861 ICOM_VMETHOD2(OnDataChange,FORMATETC*,pFormatetc,STGMEDIUM*,pStgmed) \
5862 ICOM_VMETHOD2(OnViewChange,DWORD,dwAspect,LONG,lindex) \
5863 ICOM_VMETHOD1(OnRename,IMoniker*,pmk) \
5864 ICOM_VMETHOD (OnSave) \
5865 ICOM_VMETHOD (OnClose)
5867 /*** IUnknown methods ***/
5868 #define IAdviseSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5869 #define IAdviseSink_AddRef(p) (p)->lpVtbl->AddRef(p)
5870 #define IAdviseSink_Release(p) (p)->lpVtbl->Release(p)
5871 /*** IAdviseSink methods ***/
5872 #define IAdviseSink_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
5873 #define IAdviseSink_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
5874 #define IAdviseSink_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
5875 #define IAdviseSink_OnSave(p) (p)->lpVtbl->OnSave(p)
5876 #define IAdviseSink_OnClose(p) (p)->lpVtbl->OnClose(p)
5880 HRESULT CALLBACK IAdviseSink_RemoteOnDataChange_Proxy(
5882 IAsyncManager** ppIAM,
5883 FORMATETC* pFormatetc,
5884 ASYNC_STGMEDIUM* pStgmed);
5885 void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
5886 struct IRpcStubBuffer* This,
5887 struct IRpcChannelBuffer* pRpcChannelBuffer,
5888 PRPC_MESSAGE pRpcMessage,
5889 DWORD* pdwStubPhase);
5890 void CALLBACK IAdviseSink_OnDataChange_Proxy(
5892 FORMATETC* pFormatetc,
5893 STGMEDIUM* pStgmed);
5894 HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
5896 IAsyncManager** ppIAM,
5897 FORMATETC* pFormatetc,
5898 ASYNC_STGMEDIUM* pStgmed);
5899 HRESULT CALLBACK IAdviseSink_RemoteOnViewChange_Proxy(
5901 IAsyncManager** ppIAM,
5904 void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
5905 struct IRpcStubBuffer* This,
5906 struct IRpcChannelBuffer* pRpcChannelBuffer,
5907 PRPC_MESSAGE pRpcMessage,
5908 DWORD* pdwStubPhase);
5909 void CALLBACK IAdviseSink_OnViewChange_Proxy(
5913 HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
5915 IAsyncManager** ppIAM,
5918 HRESULT CALLBACK IAdviseSink_RemoteOnRename_Proxy(
5920 IAsyncManager** ppIAM,
5922 void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
5923 struct IRpcStubBuffer* This,
5924 struct IRpcChannelBuffer* pRpcChannelBuffer,
5925 PRPC_MESSAGE pRpcMessage,
5926 DWORD* pdwStubPhase);
5927 void CALLBACK IAdviseSink_OnRename_Proxy(
5930 HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
5932 IAsyncManager** ppIAM,
5934 HRESULT CALLBACK IAdviseSink_RemoteOnSave_Proxy(
5936 IAsyncManager** ppIAM);
5937 void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
5938 struct IRpcStubBuffer* This,
5939 struct IRpcChannelBuffer* pRpcChannelBuffer,
5940 PRPC_MESSAGE pRpcMessage,
5941 DWORD* pdwStubPhase);
5942 void CALLBACK IAdviseSink_OnSave_Proxy(
5944 HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
5946 IAsyncManager** ppIAM);
5947 HRESULT CALLBACK IAdviseSink_RemoteOnClose_Proxy(
5949 void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
5950 struct IRpcStubBuffer* This,
5951 struct IRpcChannelBuffer* pRpcChannelBuffer,
5952 PRPC_MESSAGE pRpcMessage,
5953 DWORD* pdwStubPhase);
5954 void CALLBACK IAdviseSink_OnClose_Proxy(
5956 HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
5959 typedef struct IAdviseSink2 IAdviseSink2;
5960 typedef IAdviseSink2 *LPADVISESINK2;
5962 /*****************************************************************************
5963 * IAdviseSink2 interface
5965 DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
5966 #if defined(__cplusplus) && !defined(CINTERFACE)
5967 struct IAdviseSink2: IAdviseSink {
5969 virtual void CALLBACK OnLinkSrcChange(
5972 } ICOM_COM_INTERFACE_ATTRIBUTE;
5974 typedef struct IAdviseSink2Vtbl IAdviseSink2Vtbl;
5975 struct IAdviseSink2 {
5976 const IAdviseSink2Vtbl* lpVtbl;
5978 struct IAdviseSink2Vtbl {
5979 ICOM_MSVTABLE_COMPAT_FIELDS
5981 /*** IUnknown methods ***/
5982 HRESULT (CALLBACK *QueryInterface)(
5987 ULONG (CALLBACK *AddRef)(
5988 IAdviseSink2* This);
5990 ULONG (CALLBACK *Release)(
5991 IAdviseSink2* This);
5993 /*** IAdviseSink methods ***/
5994 void (CALLBACK *OnDataChange)(
5996 FORMATETC* pFormatetc,
5997 STGMEDIUM* pStgmed);
5999 void (CALLBACK *OnViewChange)(
6004 void (CALLBACK *OnRename)(
6008 void (CALLBACK *OnSave)(
6009 IAdviseSink2* This);
6011 void (CALLBACK *OnClose)(
6012 IAdviseSink2* This);
6014 /*** IAdviseSink2 methods ***/
6015 void (CALLBACK *OnLinkSrcChange)(
6021 #define IAdviseSink2_IMETHODS \
6022 IAdviseSink_IMETHODS \
6023 ICOM_VMETHOD1(OnLinkSrcChange,IMoniker*,pmk)
6025 /*** IUnknown methods ***/
6026 #define IAdviseSink2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6027 #define IAdviseSink2_AddRef(p) (p)->lpVtbl->AddRef(p)
6028 #define IAdviseSink2_Release(p) (p)->lpVtbl->Release(p)
6029 /*** IAdviseSink methods ***/
6030 #define IAdviseSink2_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
6031 #define IAdviseSink2_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
6032 #define IAdviseSink2_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
6033 #define IAdviseSink2_OnSave(p) (p)->lpVtbl->OnSave(p)
6034 #define IAdviseSink2_OnClose(p) (p)->lpVtbl->OnClose(p)
6035 /*** IAdviseSink2 methods ***/
6036 #define IAdviseSink2_OnLinkSrcChange(p,a) (p)->lpVtbl->OnLinkSrcChange(p,a)
6040 HRESULT CALLBACK IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
6042 IAsyncManager** ppIAM,
6044 void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
6045 struct IRpcStubBuffer* This,
6046 struct IRpcChannelBuffer* pRpcChannelBuffer,
6047 PRPC_MESSAGE pRpcMessage,
6048 DWORD* pdwStubPhase);
6049 void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
6052 HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
6054 IAsyncManager** ppIAM,
6057 typedef struct IDataObject IDataObject;
6058 typedef IDataObject *LPDATAOBJECT;
6060 typedef enum tagDATADIR {
6065 /*****************************************************************************
6066 * IDataObject interface
6068 DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6069 #if defined(__cplusplus) && !defined(CINTERFACE)
6070 struct IDataObject: IUnknown {
6072 virtual HRESULT CALLBACK GetData(
6073 FORMATETC* pformatetcIn,
6074 STGMEDIUM* pmedium) = 0;
6076 virtual HRESULT CALLBACK GetDataHere(
6077 FORMATETC* pformatetc,
6078 STGMEDIUM* pmedium) = 0;
6080 virtual HRESULT CALLBACK QueryGetData(
6081 FORMATETC* pformatetc) = 0;
6083 virtual HRESULT CALLBACK GetCanonicalFormatEtc(
6084 FORMATETC* pformatectIn,
6085 FORMATETC* pformatetcOut) = 0;
6087 virtual HRESULT CALLBACK SetData(
6088 FORMATETC* pformatetc,
6092 virtual HRESULT CALLBACK EnumFormatEtc(
6094 IEnumFORMATETC** ppenumFormatEtc) = 0;
6096 virtual HRESULT CALLBACK DAdvise(
6097 FORMATETC* pformatetc,
6099 IAdviseSink* pAdvSink,
6100 DWORD* pdwConnection) = 0;
6102 virtual HRESULT CALLBACK DUnadvise(
6103 DWORD dwConnection) = 0;
6105 virtual HRESULT CALLBACK EnumDAdvise(
6106 IEnumSTATDATA** ppenumAdvise) = 0;
6108 } ICOM_COM_INTERFACE_ATTRIBUTE;
6110 typedef struct IDataObjectVtbl IDataObjectVtbl;
6111 struct IDataObject {
6112 const IDataObjectVtbl* lpVtbl;
6114 struct IDataObjectVtbl {
6115 ICOM_MSVTABLE_COMPAT_FIELDS
6117 /*** IUnknown methods ***/
6118 HRESULT (CALLBACK *QueryInterface)(
6123 ULONG (CALLBACK *AddRef)(
6126 ULONG (CALLBACK *Release)(
6129 /*** IDataObject methods ***/
6130 HRESULT (CALLBACK *GetData)(
6132 FORMATETC* pformatetcIn,
6133 STGMEDIUM* pmedium);
6135 HRESULT (CALLBACK *GetDataHere)(
6137 FORMATETC* pformatetc,
6138 STGMEDIUM* pmedium);
6140 HRESULT (CALLBACK *QueryGetData)(
6142 FORMATETC* pformatetc);
6144 HRESULT (CALLBACK *GetCanonicalFormatEtc)(
6146 FORMATETC* pformatectIn,
6147 FORMATETC* pformatetcOut);
6149 HRESULT (CALLBACK *SetData)(
6151 FORMATETC* pformatetc,
6155 HRESULT (CALLBACK *EnumFormatEtc)(
6158 IEnumFORMATETC** ppenumFormatEtc);
6160 HRESULT (CALLBACK *DAdvise)(
6162 FORMATETC* pformatetc,
6164 IAdviseSink* pAdvSink,
6165 DWORD* pdwConnection);
6167 HRESULT (CALLBACK *DUnadvise)(
6169 DWORD dwConnection);
6171 HRESULT (CALLBACK *EnumDAdvise)(
6173 IEnumSTATDATA** ppenumAdvise);
6177 #define IDataObject_IMETHODS \
6179 ICOM_METHOD2 (HRESULT,GetData,FORMATETC*,pformatetcIn,STGMEDIUM*,pmedium) \
6180 ICOM_METHOD2 (HRESULT,GetDataHere,FORMATETC*,pformatetc,STGMEDIUM*,pmedium) \
6181 ICOM_METHOD1 (HRESULT,QueryGetData,FORMATETC*,pformatetc) \
6182 ICOM_METHOD2 (HRESULT,GetCanonicalFormatEtc,FORMATETC*,pformatectIn,FORMATETC*,pformatetcOut) \
6183 ICOM_METHOD3 (HRESULT,SetData,FORMATETC*,pformatetc,STGMEDIUM*,pmedium,BOOL,fRelease) \
6184 ICOM_METHOD2 (HRESULT,EnumFormatEtc,DWORD,dwDirection,IEnumFORMATETC**,ppenumFormatEtc) \
6185 ICOM_METHOD4 (HRESULT,DAdvise,FORMATETC*,pformatetc,DWORD,advf,IAdviseSink*,pAdvSink,DWORD*,pdwConnection) \
6186 ICOM_METHOD1 (HRESULT,DUnadvise,DWORD,dwConnection) \
6187 ICOM_METHOD1 (HRESULT,EnumDAdvise,IEnumSTATDATA**,ppenumAdvise)
6189 /*** IUnknown methods ***/
6190 #define IDataObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6191 #define IDataObject_AddRef(p) (p)->lpVtbl->AddRef(p)
6192 #define IDataObject_Release(p) (p)->lpVtbl->Release(p)
6193 /*** IDataObject methods ***/
6194 #define IDataObject_GetData(p,a,b) (p)->lpVtbl->GetData(p,a,b)
6195 #define IDataObject_GetDataHere(p,a,b) (p)->lpVtbl->GetDataHere(p,a,b)
6196 #define IDataObject_QueryGetData(p,a) (p)->lpVtbl->QueryGetData(p,a)
6197 #define IDataObject_GetCanonicalFormatEtc(p,a,b) (p)->lpVtbl->GetCanonicalFormatEtc(p,a,b)
6198 #define IDataObject_SetData(p,a,b,c) (p)->lpVtbl->SetData(p,a,b,c)
6199 #define IDataObject_EnumFormatEtc(p,a,b) (p)->lpVtbl->EnumFormatEtc(p,a,b)
6200 #define IDataObject_DAdvise(p,a,b,c,d) (p)->lpVtbl->DAdvise(p,a,b,c,d)
6201 #define IDataObject_DUnadvise(p,a) (p)->lpVtbl->DUnadvise(p,a)
6202 #define IDataObject_EnumDAdvise(p,a) (p)->lpVtbl->EnumDAdvise(p,a)
6206 HRESULT CALLBACK IDataObject_RemoteGetData_Proxy(
6208 FORMATETC* pformatetcIn,
6209 STGMEDIUM* pRemoteMedium);
6210 void __RPC_STUB IDataObject_RemoteGetData_Stub(
6211 struct IRpcStubBuffer* This,
6212 struct IRpcChannelBuffer* pRpcChannelBuffer,
6213 PRPC_MESSAGE pRpcMessage,
6214 DWORD* pdwStubPhase);
6215 HRESULT CALLBACK IDataObject_GetData_Proxy(
6217 FORMATETC* pformatetcIn,
6218 STGMEDIUM* pmedium);
6219 HRESULT __RPC_STUB IDataObject_GetData_Stub(
6221 FORMATETC* pformatetcIn,
6222 STGMEDIUM* pRemoteMedium);
6223 HRESULT CALLBACK IDataObject_RemoteGetDataHere_Proxy(
6225 FORMATETC* pformatetc,
6226 STGMEDIUM* pRemoteMedium);
6227 void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
6228 struct IRpcStubBuffer* This,
6229 struct IRpcChannelBuffer* pRpcChannelBuffer,
6230 PRPC_MESSAGE pRpcMessage,
6231 DWORD* pdwStubPhase);
6232 HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
6234 FORMATETC* pformatetc,
6235 STGMEDIUM* pmedium);
6236 HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
6238 FORMATETC* pformatetc,
6239 STGMEDIUM* pRemoteMedium);
6240 HRESULT CALLBACK IDataObject_QueryGetData_Proxy(
6242 FORMATETC* pformatetc);
6243 void __RPC_STUB IDataObject_QueryGetData_Stub(
6244 struct IRpcStubBuffer* This,
6245 struct IRpcChannelBuffer* pRpcChannelBuffer,
6246 PRPC_MESSAGE pRpcMessage,
6247 DWORD* pdwStubPhase);
6248 HRESULT CALLBACK IDataObject_GetCanonicalFormatEtc_Proxy(
6250 FORMATETC* pformatectIn,
6251 FORMATETC* pformatetcOut);
6252 void __RPC_STUB IDataObject_GetCanonicalFormatEtc_Stub(
6253 struct IRpcStubBuffer* This,
6254 struct IRpcChannelBuffer* pRpcChannelBuffer,
6255 PRPC_MESSAGE pRpcMessage,
6256 DWORD* pdwStubPhase);
6257 HRESULT CALLBACK IDataObject_RemoteSetData_Proxy(
6259 FORMATETC* pformatetc,
6260 FLAG_STGMEDIUM* pmedium,
6262 void __RPC_STUB IDataObject_RemoteSetData_Stub(
6263 struct IRpcStubBuffer* This,
6264 struct IRpcChannelBuffer* pRpcChannelBuffer,
6265 PRPC_MESSAGE pRpcMessage,
6266 DWORD* pdwStubPhase);
6267 HRESULT CALLBACK IDataObject_SetData_Proxy(
6269 FORMATETC* pformatetc,
6272 HRESULT __RPC_STUB IDataObject_SetData_Stub(
6274 FORMATETC* pformatetc,
6275 FLAG_STGMEDIUM* pmedium,
6277 HRESULT CALLBACK IDataObject_EnumFormatEtc_Proxy(
6280 IEnumFORMATETC** ppenumFormatEtc);
6281 void __RPC_STUB IDataObject_EnumFormatEtc_Stub(
6282 struct IRpcStubBuffer* This,
6283 struct IRpcChannelBuffer* pRpcChannelBuffer,
6284 PRPC_MESSAGE pRpcMessage,
6285 DWORD* pdwStubPhase);
6286 HRESULT CALLBACK IDataObject_DAdvise_Proxy(
6288 FORMATETC* pformatetc,
6290 IAdviseSink* pAdvSink,
6291 DWORD* pdwConnection);
6292 void __RPC_STUB IDataObject_DAdvise_Stub(
6293 struct IRpcStubBuffer* This,
6294 struct IRpcChannelBuffer* pRpcChannelBuffer,
6295 PRPC_MESSAGE pRpcMessage,
6296 DWORD* pdwStubPhase);
6297 HRESULT CALLBACK IDataObject_DUnadvise_Proxy(
6299 DWORD dwConnection);
6300 void __RPC_STUB IDataObject_DUnadvise_Stub(
6301 struct IRpcStubBuffer* This,
6302 struct IRpcChannelBuffer* pRpcChannelBuffer,
6303 PRPC_MESSAGE pRpcMessage,
6304 DWORD* pdwStubPhase);
6305 HRESULT CALLBACK IDataObject_EnumDAdvise_Proxy(
6307 IEnumSTATDATA** ppenumAdvise);
6308 void __RPC_STUB IDataObject_EnumDAdvise_Stub(
6309 struct IRpcStubBuffer* This,
6310 struct IRpcChannelBuffer* pRpcChannelBuffer,
6311 PRPC_MESSAGE pRpcMessage,
6312 DWORD* pdwStubPhase);
6314 typedef struct IDataAdviseHolder IDataAdviseHolder;
6315 typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
6317 /*****************************************************************************
6318 * IDataAdviseHolder interface
6320 DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6321 #if defined(__cplusplus) && !defined(CINTERFACE)
6322 struct IDataAdviseHolder: IUnknown {
6324 virtual HRESULT CALLBACK Advise(
6325 IDataObject* pDataObject,
6328 IAdviseSink* pAdvise,
6329 DWORD* pdwConnection) = 0;
6331 virtual HRESULT CALLBACK Unadvise(
6332 DWORD dwConnection) = 0;
6334 virtual HRESULT CALLBACK EnumAdvise(
6335 IEnumSTATDATA** ppenumAdvise) = 0;
6337 virtual HRESULT CALLBACK SendOnDataChange(
6338 IDataObject* pDataObject,
6342 } ICOM_COM_INTERFACE_ATTRIBUTE;
6344 typedef struct IDataAdviseHolderVtbl IDataAdviseHolderVtbl;
6345 struct IDataAdviseHolder {
6346 const IDataAdviseHolderVtbl* lpVtbl;
6348 struct IDataAdviseHolderVtbl {
6349 ICOM_MSVTABLE_COMPAT_FIELDS
6351 /*** IUnknown methods ***/
6352 HRESULT (CALLBACK *QueryInterface)(
6353 IDataAdviseHolder* This,
6357 ULONG (CALLBACK *AddRef)(
6358 IDataAdviseHolder* This);
6360 ULONG (CALLBACK *Release)(
6361 IDataAdviseHolder* This);
6363 /*** IDataAdviseHolder methods ***/
6364 HRESULT (CALLBACK *Advise)(
6365 IDataAdviseHolder* This,
6366 IDataObject* pDataObject,
6369 IAdviseSink* pAdvise,
6370 DWORD* pdwConnection);
6372 HRESULT (CALLBACK *Unadvise)(
6373 IDataAdviseHolder* This,
6374 DWORD dwConnection);
6376 HRESULT (CALLBACK *EnumAdvise)(
6377 IDataAdviseHolder* This,
6378 IEnumSTATDATA** ppenumAdvise);
6380 HRESULT (CALLBACK *SendOnDataChange)(
6381 IDataAdviseHolder* This,
6382 IDataObject* pDataObject,
6388 #define IDataAdviseHolder_IMETHODS \
6390 ICOM_METHOD5 (HRESULT,Advise,IDataObject*,pDataObject,FORMATETC*,pFetc,DWORD,advf,IAdviseSink*,pAdvise,DWORD*,pdwConnection) \
6391 ICOM_METHOD1 (HRESULT,Unadvise,DWORD,dwConnection) \
6392 ICOM_METHOD1 (HRESULT,EnumAdvise,IEnumSTATDATA**,ppenumAdvise) \
6393 ICOM_METHOD3 (HRESULT,SendOnDataChange,IDataObject*,pDataObject,DWORD,dwReserved,DWORD,advf)
6395 /*** IUnknown methods ***/
6396 #define IDataAdviseHolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6397 #define IDataAdviseHolder_AddRef(p) (p)->lpVtbl->AddRef(p)
6398 #define IDataAdviseHolder_Release(p) (p)->lpVtbl->Release(p)
6399 /*** IDataAdviseHolder methods ***/
6400 #define IDataAdviseHolder_Advise(p,a,b,c,d,e) (p)->lpVtbl->Advise(p,a,b,c,d,e)
6401 #define IDataAdviseHolder_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
6402 #define IDataAdviseHolder_EnumAdvise(p,a) (p)->lpVtbl->EnumAdvise(p,a)
6403 #define IDataAdviseHolder_SendOnDataChange(p,a,b,c) (p)->lpVtbl->SendOnDataChange(p,a,b,c)
6407 HRESULT CALLBACK IDataAdviseHolder_Advise_Proxy(
6408 IDataAdviseHolder* This,
6409 IDataObject* pDataObject,
6412 IAdviseSink* pAdvise,
6413 DWORD* pdwConnection);
6414 void __RPC_STUB IDataAdviseHolder_Advise_Stub(
6415 struct IRpcStubBuffer* This,
6416 struct IRpcChannelBuffer* pRpcChannelBuffer,
6417 PRPC_MESSAGE pRpcMessage,
6418 DWORD* pdwStubPhase);
6419 HRESULT CALLBACK IDataAdviseHolder_Unadvise_Proxy(
6420 IDataAdviseHolder* This,
6421 DWORD dwConnection);
6422 void __RPC_STUB IDataAdviseHolder_Unadvise_Stub(
6423 struct IRpcStubBuffer* This,
6424 struct IRpcChannelBuffer* pRpcChannelBuffer,
6425 PRPC_MESSAGE pRpcMessage,
6426 DWORD* pdwStubPhase);
6427 HRESULT CALLBACK IDataAdviseHolder_EnumAdvise_Proxy(
6428 IDataAdviseHolder* This,
6429 IEnumSTATDATA** ppenumAdvise);
6430 void __RPC_STUB IDataAdviseHolder_EnumAdvise_Stub(
6431 struct IRpcStubBuffer* This,
6432 struct IRpcChannelBuffer* pRpcChannelBuffer,
6433 PRPC_MESSAGE pRpcMessage,
6434 DWORD* pdwStubPhase);
6435 HRESULT CALLBACK IDataAdviseHolder_SendOnDataChange_Proxy(
6436 IDataAdviseHolder* This,
6437 IDataObject* pDataObject,
6440 void __RPC_STUB IDataAdviseHolder_SendOnDataChange_Stub(
6441 struct IRpcStubBuffer* This,
6442 struct IRpcChannelBuffer* pRpcChannelBuffer,
6443 PRPC_MESSAGE pRpcMessage,
6444 DWORD* pdwStubPhase);
6446 typedef struct IMessageFilter IMessageFilter;
6447 typedef IMessageFilter *LPMESSAGEFILTER;
6449 typedef enum tagCALLTYPE {
6450 CALLTYPE_TOPLEVEL = 1,
6451 CALLTYPE_NESTED = 2,
6453 CALLTYPE_TOPLEVEL_CALLPENDING = 4,
6454 CALLTYPE_ASYNC_CALLPENDING = 5
6457 typedef enum tagSERVERCALL {
6458 SERVERCALL_ISHANDLED = 0,
6459 SERVERCALL_REJECTED = 1,
6460 SERVERCALL_RETRYLATER = 2
6463 typedef enum tagPENDINGTYPE {
6464 PENDINGTYPE_TOPLEVEL = 1,
6465 PENDINGTYPE_NESTED = 2
6468 typedef enum tagPENDINGMSG {
6469 PENDINGMSG_CANCELCALL = 0,
6470 PENDINGMSG_WAITNOPROCESS = 1,
6471 PENDINGMSG_WAITDEFPROCESS = 2
6474 typedef struct tagINTERFACEINFO {
6478 } INTERFACEINFO, *LPINTERFACEINFO;
6480 /*****************************************************************************
6481 * IMessageFilter interface
6483 DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
6484 #if defined(__cplusplus) && !defined(CINTERFACE)
6485 struct IMessageFilter: IUnknown {
6487 virtual DWORD CALLBACK HandleInComingCall(
6491 LPINTERFACEINFO lpInterfaceInfo) = 0;
6493 virtual DWORD CALLBACK RetryRejectedCall(
6496 DWORD dwRejectType) = 0;
6498 virtual DWORD CALLBACK MessagePending(
6501 DWORD dwPendingType) = 0;
6503 } ICOM_COM_INTERFACE_ATTRIBUTE;
6505 typedef struct IMessageFilterVtbl IMessageFilterVtbl;
6506 struct IMessageFilter {
6507 const IMessageFilterVtbl* lpVtbl;
6509 struct IMessageFilterVtbl {
6510 ICOM_MSVTABLE_COMPAT_FIELDS
6512 /*** IUnknown methods ***/
6513 HRESULT (CALLBACK *QueryInterface)(
6514 IMessageFilter* This,
6518 ULONG (CALLBACK *AddRef)(
6519 IMessageFilter* This);
6521 ULONG (CALLBACK *Release)(
6522 IMessageFilter* This);
6524 /*** IMessageFilter methods ***/
6525 DWORD (CALLBACK *HandleInComingCall)(
6526 IMessageFilter* This,
6530 LPINTERFACEINFO lpInterfaceInfo);
6532 DWORD (CALLBACK *RetryRejectedCall)(
6533 IMessageFilter* This,
6536 DWORD dwRejectType);
6538 DWORD (CALLBACK *MessagePending)(
6539 IMessageFilter* This,
6542 DWORD dwPendingType);
6546 #define IMessageFilter_IMETHODS \
6548 ICOM_METHOD4 (DWORD,HandleInComingCall,DWORD,dwCallType,HTASK,htaskCaller,DWORD,dwTickCount,LPINTERFACEINFO,lpInterfaceInfo) \
6549 ICOM_METHOD3 (DWORD,RetryRejectedCall,HTASK,htaskCallee,DWORD,dwTickCount,DWORD,dwRejectType) \
6550 ICOM_METHOD3 (DWORD,MessagePending,HTASK,htaskCallee,DWORD,dwTickCount,DWORD,dwPendingType)
6552 /*** IUnknown methods ***/
6553 #define IMessageFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6554 #define IMessageFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
6555 #define IMessageFilter_Release(p) (p)->lpVtbl->Release(p)
6556 /*** IMessageFilter methods ***/
6557 #define IMessageFilter_HandleInComingCall(p,a,b,c,d) (p)->lpVtbl->HandleInComingCall(p,a,b,c,d)
6558 #define IMessageFilter_RetryRejectedCall(p,a,b,c) (p)->lpVtbl->RetryRejectedCall(p,a,b,c)
6559 #define IMessageFilter_MessagePending(p,a,b,c) (p)->lpVtbl->MessagePending(p,a,b,c)
6563 DWORD CALLBACK IMessageFilter_HandleInComingCall_Proxy(
6564 IMessageFilter* This,
6568 LPINTERFACEINFO lpInterfaceInfo);
6569 void __RPC_STUB IMessageFilter_HandleInComingCall_Stub(
6570 struct IRpcStubBuffer* This,
6571 struct IRpcChannelBuffer* pRpcChannelBuffer,
6572 PRPC_MESSAGE pRpcMessage,
6573 DWORD* pdwStubPhase);
6574 DWORD CALLBACK IMessageFilter_RetryRejectedCall_Proxy(
6575 IMessageFilter* This,
6578 DWORD dwRejectType);
6579 void __RPC_STUB IMessageFilter_RetryRejectedCall_Stub(
6580 struct IRpcStubBuffer* This,
6581 struct IRpcChannelBuffer* pRpcChannelBuffer,
6582 PRPC_MESSAGE pRpcMessage,
6583 DWORD* pdwStubPhase);
6584 DWORD CALLBACK IMessageFilter_MessagePending_Proxy(
6585 IMessageFilter* This,
6588 DWORD dwPendingType);
6589 void __RPC_STUB IMessageFilter_MessagePending_Stub(
6590 struct IRpcStubBuffer* This,
6591 struct IRpcChannelBuffer* pRpcChannelBuffer,
6592 PRPC_MESSAGE pRpcMessage,
6593 DWORD* pdwStubPhase);
6595 typedef struct IRpcChannelBuffer IRpcChannelBuffer;
6596 typedef IRpcChannelBuffer *LPRPCCHANNELBUFFER;
6598 typedef unsigned long RPCOLEDATAREP;
6600 typedef struct tagRPCOLEMESSAGE {
6602 RPCOLEDATAREP dataRepresentation;
6610 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
6612 /*****************************************************************************
6613 * IRpcChannelBuffer interface
6615 DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
6616 #if defined(__cplusplus) && !defined(CINTERFACE)
6617 struct IRpcChannelBuffer: IUnknown {
6619 virtual HRESULT CALLBACK GetBuffer(
6620 RPCOLEMESSAGE* pMessage,
6623 virtual HRESULT CALLBACK SendReceive(
6624 RPCOLEMESSAGE* pMessage,
6625 ULONG* pStatus) = 0;
6627 virtual HRESULT CALLBACK FreeBuffer(
6628 RPCOLEMESSAGE* pMessage) = 0;
6630 virtual HRESULT CALLBACK GetDestCtx(
6631 DWORD* pdwDestContext,
6632 void** ppvDestContext) = 0;
6634 virtual HRESULT CALLBACK IsConnected(
6637 } ICOM_COM_INTERFACE_ATTRIBUTE;
6639 typedef struct IRpcChannelBufferVtbl IRpcChannelBufferVtbl;
6640 struct IRpcChannelBuffer {
6641 const IRpcChannelBufferVtbl* lpVtbl;
6643 struct IRpcChannelBufferVtbl {
6644 ICOM_MSVTABLE_COMPAT_FIELDS
6646 /*** IUnknown methods ***/
6647 HRESULT (CALLBACK *QueryInterface)(
6648 IRpcChannelBuffer* This,
6652 ULONG (CALLBACK *AddRef)(
6653 IRpcChannelBuffer* This);
6655 ULONG (CALLBACK *Release)(
6656 IRpcChannelBuffer* This);
6658 /*** IRpcChannelBuffer methods ***/
6659 HRESULT (CALLBACK *GetBuffer)(
6660 IRpcChannelBuffer* This,
6661 RPCOLEMESSAGE* pMessage,
6664 HRESULT (CALLBACK *SendReceive)(
6665 IRpcChannelBuffer* This,
6666 RPCOLEMESSAGE* pMessage,
6669 HRESULT (CALLBACK *FreeBuffer)(
6670 IRpcChannelBuffer* This,
6671 RPCOLEMESSAGE* pMessage);
6673 HRESULT (CALLBACK *GetDestCtx)(
6674 IRpcChannelBuffer* This,
6675 DWORD* pdwDestContext,
6676 void** ppvDestContext);
6678 HRESULT (CALLBACK *IsConnected)(
6679 IRpcChannelBuffer* This);
6683 #define IRpcChannelBuffer_IMETHODS \
6685 ICOM_METHOD2 (HRESULT,GetBuffer,RPCOLEMESSAGE*,pMessage,REFIID,riid) \
6686 ICOM_METHOD2 (HRESULT,SendReceive,RPCOLEMESSAGE*,pMessage,ULONG*,pStatus) \
6687 ICOM_METHOD1 (HRESULT,FreeBuffer,RPCOLEMESSAGE*,pMessage) \
6688 ICOM_METHOD2 (HRESULT,GetDestCtx,DWORD*,pdwDestContext,void**,ppvDestContext) \
6689 ICOM_METHOD (HRESULT,IsConnected)
6691 /*** IUnknown methods ***/
6692 #define IRpcChannelBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6693 #define IRpcChannelBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
6694 #define IRpcChannelBuffer_Release(p) (p)->lpVtbl->Release(p)
6695 /*** IRpcChannelBuffer methods ***/
6696 #define IRpcChannelBuffer_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6697 #define IRpcChannelBuffer_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6698 #define IRpcChannelBuffer_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6699 #define IRpcChannelBuffer_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6700 #define IRpcChannelBuffer_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6704 HRESULT CALLBACK IRpcChannelBuffer_GetBuffer_Proxy(
6705 IRpcChannelBuffer* This,
6706 RPCOLEMESSAGE* pMessage,
6708 void __RPC_STUB IRpcChannelBuffer_GetBuffer_Stub(
6709 struct IRpcStubBuffer* This,
6710 struct IRpcChannelBuffer* pRpcChannelBuffer,
6711 PRPC_MESSAGE pRpcMessage,
6712 DWORD* pdwStubPhase);
6713 HRESULT CALLBACK IRpcChannelBuffer_SendReceive_Proxy(
6714 IRpcChannelBuffer* This,
6715 RPCOLEMESSAGE* pMessage,
6717 void __RPC_STUB IRpcChannelBuffer_SendReceive_Stub(
6718 struct IRpcStubBuffer* This,
6719 struct IRpcChannelBuffer* pRpcChannelBuffer,
6720 PRPC_MESSAGE pRpcMessage,
6721 DWORD* pdwStubPhase);
6722 HRESULT CALLBACK IRpcChannelBuffer_FreeBuffer_Proxy(
6723 IRpcChannelBuffer* This,
6724 RPCOLEMESSAGE* pMessage);
6725 void __RPC_STUB IRpcChannelBuffer_FreeBuffer_Stub(
6726 struct IRpcStubBuffer* This,
6727 struct IRpcChannelBuffer* pRpcChannelBuffer,
6728 PRPC_MESSAGE pRpcMessage,
6729 DWORD* pdwStubPhase);
6730 HRESULT CALLBACK IRpcChannelBuffer_GetDestCtx_Proxy(
6731 IRpcChannelBuffer* This,
6732 DWORD* pdwDestContext,
6733 void** ppvDestContext);
6734 void __RPC_STUB IRpcChannelBuffer_GetDestCtx_Stub(
6735 struct IRpcStubBuffer* This,
6736 struct IRpcChannelBuffer* pRpcChannelBuffer,
6737 PRPC_MESSAGE pRpcMessage,
6738 DWORD* pdwStubPhase);
6739 HRESULT CALLBACK IRpcChannelBuffer_IsConnected_Proxy(
6740 IRpcChannelBuffer* This);
6741 void __RPC_STUB IRpcChannelBuffer_IsConnected_Stub(
6742 struct IRpcStubBuffer* This,
6743 struct IRpcChannelBuffer* pRpcChannelBuffer,
6744 PRPC_MESSAGE pRpcMessage,
6745 DWORD* pdwStubPhase);
6747 typedef struct IRpcChannelBuffer2 IRpcChannelBuffer2;
6748 typedef IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2;
6750 /*****************************************************************************
6751 * IRpcChannelBuffer2 interface
6753 DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
6754 #if defined(__cplusplus) && !defined(CINTERFACE)
6755 struct IRpcChannelBuffer2: IRpcChannelBuffer {
6757 virtual HRESULT CALLBACK GetProtocolVersion(
6758 DWORD* pdwVersion) = 0;
6760 } ICOM_COM_INTERFACE_ATTRIBUTE;
6762 typedef struct IRpcChannelBuffer2Vtbl IRpcChannelBuffer2Vtbl;
6763 struct IRpcChannelBuffer2 {
6764 const IRpcChannelBuffer2Vtbl* lpVtbl;
6766 struct IRpcChannelBuffer2Vtbl {
6767 ICOM_MSVTABLE_COMPAT_FIELDS
6769 /*** IUnknown methods ***/
6770 HRESULT (CALLBACK *QueryInterface)(
6771 IRpcChannelBuffer2* This,
6775 ULONG (CALLBACK *AddRef)(
6776 IRpcChannelBuffer2* This);
6778 ULONG (CALLBACK *Release)(
6779 IRpcChannelBuffer2* This);
6781 /*** IRpcChannelBuffer methods ***/
6782 HRESULT (CALLBACK *GetBuffer)(
6783 IRpcChannelBuffer2* This,
6784 RPCOLEMESSAGE* pMessage,
6787 HRESULT (CALLBACK *SendReceive)(
6788 IRpcChannelBuffer2* This,
6789 RPCOLEMESSAGE* pMessage,
6792 HRESULT (CALLBACK *FreeBuffer)(
6793 IRpcChannelBuffer2* This,
6794 RPCOLEMESSAGE* pMessage);
6796 HRESULT (CALLBACK *GetDestCtx)(
6797 IRpcChannelBuffer2* This,
6798 DWORD* pdwDestContext,
6799 void** ppvDestContext);
6801 HRESULT (CALLBACK *IsConnected)(
6802 IRpcChannelBuffer2* This);
6804 /*** IRpcChannelBuffer2 methods ***/
6805 HRESULT (CALLBACK *GetProtocolVersion)(
6806 IRpcChannelBuffer2* This,
6811 #define IRpcChannelBuffer2_IMETHODS \
6812 IRpcChannelBuffer_IMETHODS \
6813 ICOM_METHOD1 (HRESULT,GetProtocolVersion,DWORD*,pdwVersion)
6815 /*** IUnknown methods ***/
6816 #define IRpcChannelBuffer2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6817 #define IRpcChannelBuffer2_AddRef(p) (p)->lpVtbl->AddRef(p)
6818 #define IRpcChannelBuffer2_Release(p) (p)->lpVtbl->Release(p)
6819 /*** IRpcChannelBuffer methods ***/
6820 #define IRpcChannelBuffer2_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6821 #define IRpcChannelBuffer2_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6822 #define IRpcChannelBuffer2_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6823 #define IRpcChannelBuffer2_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6824 #define IRpcChannelBuffer2_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6825 /*** IRpcChannelBuffer2 methods ***/
6826 #define IRpcChannelBuffer2_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
6830 HRESULT CALLBACK IRpcChannelBuffer2_GetProtocolVersion_Proxy(
6831 IRpcChannelBuffer2* This,
6833 void __RPC_STUB IRpcChannelBuffer2_GetProtocolVersion_Stub(
6834 struct IRpcStubBuffer* This,
6835 struct IRpcChannelBuffer* pRpcChannelBuffer,
6836 PRPC_MESSAGE pRpcMessage,
6837 DWORD* pdwStubPhase);
6839 typedef struct IRpcChannelBuffer3 IRpcChannelBuffer3;
6840 typedef IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3;
6842 /*****************************************************************************
6843 * IRpcChannelBuffer3 interface
6845 DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
6846 #if defined(__cplusplus) && !defined(CINTERFACE)
6847 struct IRpcChannelBuffer3: IRpcChannelBuffer2 {
6849 virtual HRESULT CALLBACK Send(
6850 RPCOLEMESSAGE* pMsg,
6851 ULONG* pulStatus) = 0;
6853 virtual HRESULT CALLBACK Receive(
6854 RPCOLEMESSAGE* pMsg,
6856 ULONG* pulStatus) = 0;
6858 virtual HRESULT CALLBACK Cancel(
6859 RPCOLEMESSAGE* pMsg) = 0;
6861 virtual HRESULT CALLBACK GetCallContext(
6862 RPCOLEMESSAGE* pMsg,
6864 void** pInterface) = 0;
6866 virtual HRESULT CALLBACK GetDestCtxEx(
6867 RPCOLEMESSAGE* pMsg,
6868 DWORD* pdwDestContext,
6869 void** ppvDestContext) = 0;
6871 virtual HRESULT CALLBACK GetState(
6872 RPCOLEMESSAGE* pMsg,
6875 virtual HRESULT CALLBACK RegisterAsync(
6876 RPCOLEMESSAGE* pMsg,
6877 IAsyncManager* pAsyncMgr) = 0;
6879 } ICOM_COM_INTERFACE_ATTRIBUTE;
6881 typedef struct IRpcChannelBuffer3Vtbl IRpcChannelBuffer3Vtbl;
6882 struct IRpcChannelBuffer3 {
6883 const IRpcChannelBuffer3Vtbl* lpVtbl;
6885 struct IRpcChannelBuffer3Vtbl {
6886 ICOM_MSVTABLE_COMPAT_FIELDS
6888 /*** IUnknown methods ***/
6889 HRESULT (CALLBACK *QueryInterface)(
6890 IRpcChannelBuffer3* This,
6894 ULONG (CALLBACK *AddRef)(
6895 IRpcChannelBuffer3* This);
6897 ULONG (CALLBACK *Release)(
6898 IRpcChannelBuffer3* This);
6900 /*** IRpcChannelBuffer methods ***/
6901 HRESULT (CALLBACK *GetBuffer)(
6902 IRpcChannelBuffer3* This,
6903 RPCOLEMESSAGE* pMessage,
6906 HRESULT (CALLBACK *SendReceive)(
6907 IRpcChannelBuffer3* This,
6908 RPCOLEMESSAGE* pMessage,
6911 HRESULT (CALLBACK *FreeBuffer)(
6912 IRpcChannelBuffer3* This,
6913 RPCOLEMESSAGE* pMessage);
6915 HRESULT (CALLBACK *GetDestCtx)(
6916 IRpcChannelBuffer3* This,
6917 DWORD* pdwDestContext,
6918 void** ppvDestContext);
6920 HRESULT (CALLBACK *IsConnected)(
6921 IRpcChannelBuffer3* This);
6923 /*** IRpcChannelBuffer2 methods ***/
6924 HRESULT (CALLBACK *GetProtocolVersion)(
6925 IRpcChannelBuffer3* This,
6928 /*** IRpcChannelBuffer3 methods ***/
6929 HRESULT (CALLBACK *Send)(
6930 IRpcChannelBuffer3* This,
6931 RPCOLEMESSAGE* pMsg,
6934 HRESULT (CALLBACK *Receive)(
6935 IRpcChannelBuffer3* This,
6936 RPCOLEMESSAGE* pMsg,
6940 HRESULT (CALLBACK *Cancel)(
6941 IRpcChannelBuffer3* This,
6942 RPCOLEMESSAGE* pMsg);
6944 HRESULT (CALLBACK *GetCallContext)(
6945 IRpcChannelBuffer3* This,
6946 RPCOLEMESSAGE* pMsg,
6950 HRESULT (CALLBACK *GetDestCtxEx)(
6951 IRpcChannelBuffer3* This,
6952 RPCOLEMESSAGE* pMsg,
6953 DWORD* pdwDestContext,
6954 void** ppvDestContext);
6956 HRESULT (CALLBACK *GetState)(
6957 IRpcChannelBuffer3* This,
6958 RPCOLEMESSAGE* pMsg,
6961 HRESULT (CALLBACK *RegisterAsync)(
6962 IRpcChannelBuffer3* This,
6963 RPCOLEMESSAGE* pMsg,
6964 IAsyncManager* pAsyncMgr);
6968 #define IRpcChannelBuffer3_IMETHODS \
6969 IRpcChannelBuffer2_IMETHODS \
6970 ICOM_METHOD2 (HRESULT,Send,RPCOLEMESSAGE*,pMsg,ULONG*,pulStatus) \
6971 ICOM_METHOD3 (HRESULT,Receive,RPCOLEMESSAGE*,pMsg,ULONG,ulSize,ULONG*,pulStatus) \
6972 ICOM_METHOD1 (HRESULT,Cancel,RPCOLEMESSAGE*,pMsg) \
6973 ICOM_METHOD3 (HRESULT,GetCallContext,RPCOLEMESSAGE*,pMsg,REFIID,riid,void**,pInterface) \
6974 ICOM_METHOD3 (HRESULT,GetDestCtxEx,RPCOLEMESSAGE*,pMsg,DWORD*,pdwDestContext,void**,ppvDestContext) \
6975 ICOM_METHOD2 (HRESULT,GetState,RPCOLEMESSAGE*,pMsg,DWORD*,pState) \
6976 ICOM_METHOD2 (HRESULT,RegisterAsync,RPCOLEMESSAGE*,pMsg,IAsyncManager*,pAsyncMgr)
6978 /*** IUnknown methods ***/
6979 #define IRpcChannelBuffer3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6980 #define IRpcChannelBuffer3_AddRef(p) (p)->lpVtbl->AddRef(p)
6981 #define IRpcChannelBuffer3_Release(p) (p)->lpVtbl->Release(p)
6982 /*** IRpcChannelBuffer methods ***/
6983 #define IRpcChannelBuffer3_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
6984 #define IRpcChannelBuffer3_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
6985 #define IRpcChannelBuffer3_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
6986 #define IRpcChannelBuffer3_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
6987 #define IRpcChannelBuffer3_IsConnected(p) (p)->lpVtbl->IsConnected(p)
6988 /*** IRpcChannelBuffer2 methods ***/
6989 #define IRpcChannelBuffer3_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
6990 /*** IRpcChannelBuffer3 methods ***/
6991 #define IRpcChannelBuffer3_Send(p,a,b) (p)->lpVtbl->Send(p,a,b)
6992 #define IRpcChannelBuffer3_Receive(p,a,b,c) (p)->lpVtbl->Receive(p,a,b,c)
6993 #define IRpcChannelBuffer3_Cancel(p,a) (p)->lpVtbl->Cancel(p,a)
6994 #define IRpcChannelBuffer3_GetCallContext(p,a,b,c) (p)->lpVtbl->GetCallContext(p,a,b,c)
6995 #define IRpcChannelBuffer3_GetDestCtxEx(p,a,b,c) (p)->lpVtbl->GetDestCtxEx(p,a,b,c)
6996 #define IRpcChannelBuffer3_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
6997 #define IRpcChannelBuffer3_RegisterAsync(p,a,b) (p)->lpVtbl->RegisterAsync(p,a,b)
7001 HRESULT CALLBACK IRpcChannelBuffer3_Send_Proxy(
7002 IRpcChannelBuffer3* This,
7003 RPCOLEMESSAGE* pMsg,
7005 void __RPC_STUB IRpcChannelBuffer3_Send_Stub(
7006 struct IRpcStubBuffer* This,
7007 struct IRpcChannelBuffer* pRpcChannelBuffer,
7008 PRPC_MESSAGE pRpcMessage,
7009 DWORD* pdwStubPhase);
7010 HRESULT CALLBACK IRpcChannelBuffer3_Receive_Proxy(
7011 IRpcChannelBuffer3* This,
7012 RPCOLEMESSAGE* pMsg,
7015 void __RPC_STUB IRpcChannelBuffer3_Receive_Stub(
7016 struct IRpcStubBuffer* This,
7017 struct IRpcChannelBuffer* pRpcChannelBuffer,
7018 PRPC_MESSAGE pRpcMessage,
7019 DWORD* pdwStubPhase);
7020 HRESULT CALLBACK IRpcChannelBuffer3_Cancel_Proxy(
7021 IRpcChannelBuffer3* This,
7022 RPCOLEMESSAGE* pMsg);
7023 void __RPC_STUB IRpcChannelBuffer3_Cancel_Stub(
7024 struct IRpcStubBuffer* This,
7025 struct IRpcChannelBuffer* pRpcChannelBuffer,
7026 PRPC_MESSAGE pRpcMessage,
7027 DWORD* pdwStubPhase);
7028 HRESULT CALLBACK IRpcChannelBuffer3_GetCallContext_Proxy(
7029 IRpcChannelBuffer3* This,
7030 RPCOLEMESSAGE* pMsg,
7033 void __RPC_STUB IRpcChannelBuffer3_GetCallContext_Stub(
7034 struct IRpcStubBuffer* This,
7035 struct IRpcChannelBuffer* pRpcChannelBuffer,
7036 PRPC_MESSAGE pRpcMessage,
7037 DWORD* pdwStubPhase);
7038 HRESULT CALLBACK IRpcChannelBuffer3_GetDestCtxEx_Proxy(
7039 IRpcChannelBuffer3* This,
7040 RPCOLEMESSAGE* pMsg,
7041 DWORD* pdwDestContext,
7042 void** ppvDestContext);
7043 void __RPC_STUB IRpcChannelBuffer3_GetDestCtxEx_Stub(
7044 struct IRpcStubBuffer* This,
7045 struct IRpcChannelBuffer* pRpcChannelBuffer,
7046 PRPC_MESSAGE pRpcMessage,
7047 DWORD* pdwStubPhase);
7048 HRESULT CALLBACK IRpcChannelBuffer3_GetState_Proxy(
7049 IRpcChannelBuffer3* This,
7050 RPCOLEMESSAGE* pMsg,
7052 void __RPC_STUB IRpcChannelBuffer3_GetState_Stub(
7053 struct IRpcStubBuffer* This,
7054 struct IRpcChannelBuffer* pRpcChannelBuffer,
7055 PRPC_MESSAGE pRpcMessage,
7056 DWORD* pdwStubPhase);
7057 HRESULT CALLBACK IRpcChannelBuffer3_RegisterAsync_Proxy(
7058 IRpcChannelBuffer3* This,
7059 RPCOLEMESSAGE* pMsg,
7060 IAsyncManager* pAsyncMgr);
7061 void __RPC_STUB IRpcChannelBuffer3_RegisterAsync_Stub(
7062 struct IRpcStubBuffer* This,
7063 struct IRpcChannelBuffer* pRpcChannelBuffer,
7064 PRPC_MESSAGE pRpcMessage,
7065 DWORD* pdwStubPhase);
7067 typedef struct IRpcProxyBuffer IRpcProxyBuffer;
7068 typedef IRpcProxyBuffer *LPRPCPROXYBUFFER;
7070 /*****************************************************************************
7071 * IRpcProxyBuffer interface
7073 DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7074 #if defined(__cplusplus) && !defined(CINTERFACE)
7075 struct IRpcProxyBuffer: IUnknown {
7077 virtual HRESULT CALLBACK Connect(
7078 IRpcChannelBuffer* pRpcChannelBuffer) = 0;
7080 virtual void CALLBACK Disconnect(
7083 } ICOM_COM_INTERFACE_ATTRIBUTE;
7085 typedef struct IRpcProxyBufferVtbl IRpcProxyBufferVtbl;
7086 struct IRpcProxyBuffer {
7087 const IRpcProxyBufferVtbl* lpVtbl;
7089 struct IRpcProxyBufferVtbl {
7090 ICOM_MSVTABLE_COMPAT_FIELDS
7092 /*** IUnknown methods ***/
7093 HRESULT (CALLBACK *QueryInterface)(
7094 IRpcProxyBuffer* This,
7098 ULONG (CALLBACK *AddRef)(
7099 IRpcProxyBuffer* This);
7101 ULONG (CALLBACK *Release)(
7102 IRpcProxyBuffer* This);
7104 /*** IRpcProxyBuffer methods ***/
7105 HRESULT (CALLBACK *Connect)(
7106 IRpcProxyBuffer* This,
7107 IRpcChannelBuffer* pRpcChannelBuffer);
7109 void (CALLBACK *Disconnect)(
7110 IRpcProxyBuffer* This);
7114 #define IRpcProxyBuffer_IMETHODS \
7116 ICOM_METHOD1 (HRESULT,Connect,IRpcChannelBuffer*,pRpcChannelBuffer) \
7117 ICOM_VMETHOD (Disconnect)
7119 /*** IUnknown methods ***/
7120 #define IRpcProxyBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7121 #define IRpcProxyBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7122 #define IRpcProxyBuffer_Release(p) (p)->lpVtbl->Release(p)
7123 /*** IRpcProxyBuffer methods ***/
7124 #define IRpcProxyBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7125 #define IRpcProxyBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7129 HRESULT CALLBACK IRpcProxyBuffer_Connect_Proxy(
7130 IRpcProxyBuffer* This,
7131 IRpcChannelBuffer* pRpcChannelBuffer);
7132 void __RPC_STUB IRpcProxyBuffer_Connect_Stub(
7133 struct IRpcStubBuffer* This,
7134 struct IRpcChannelBuffer* pRpcChannelBuffer,
7135 PRPC_MESSAGE pRpcMessage,
7136 DWORD* pdwStubPhase);
7137 void CALLBACK IRpcProxyBuffer_Disconnect_Proxy(
7138 IRpcProxyBuffer* This);
7139 void __RPC_STUB IRpcProxyBuffer_Disconnect_Stub(
7140 struct IRpcStubBuffer* This,
7141 struct IRpcChannelBuffer* pRpcChannelBuffer,
7142 PRPC_MESSAGE pRpcMessage,
7143 DWORD* pdwStubPhase);
7145 typedef struct IRpcStubBuffer IRpcStubBuffer;
7146 typedef IRpcStubBuffer *LPRPCSTUBBUFFER;
7148 /*****************************************************************************
7149 * IRpcStubBuffer interface
7151 DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7152 #if defined(__cplusplus) && !defined(CINTERFACE)
7153 struct IRpcStubBuffer: IUnknown {
7155 virtual HRESULT CALLBACK Connect(
7156 IUnknown* pUnkServer) = 0;
7158 virtual void CALLBACK Disconnect(
7161 virtual HRESULT CALLBACK Invoke(
7162 RPCOLEMESSAGE* _prpcmsg,
7163 IRpcChannelBuffer* _pRpcChannelBuffer) = 0;
7165 virtual IRpcStubBuffer* CALLBACK IsIIDSupported(
7168 virtual ULONG CALLBACK CountRefs(
7171 virtual HRESULT CALLBACK DebugServerQueryInterface(
7174 virtual void CALLBACK DebugServerRelease(
7177 } ICOM_COM_INTERFACE_ATTRIBUTE;
7179 typedef struct IRpcStubBufferVtbl IRpcStubBufferVtbl;
7180 struct IRpcStubBuffer {
7181 const IRpcStubBufferVtbl* lpVtbl;
7183 struct IRpcStubBufferVtbl {
7184 ICOM_MSVTABLE_COMPAT_FIELDS
7186 /*** IUnknown methods ***/
7187 HRESULT (CALLBACK *QueryInterface)(
7188 IRpcStubBuffer* This,
7192 ULONG (CALLBACK *AddRef)(
7193 IRpcStubBuffer* This);
7195 ULONG (CALLBACK *Release)(
7196 IRpcStubBuffer* This);
7198 /*** IRpcStubBuffer methods ***/
7199 HRESULT (CALLBACK *Connect)(
7200 IRpcStubBuffer* This,
7201 IUnknown* pUnkServer);
7203 void (CALLBACK *Disconnect)(
7204 IRpcStubBuffer* This);
7206 HRESULT (CALLBACK *Invoke)(
7207 IRpcStubBuffer* This,
7208 RPCOLEMESSAGE* _prpcmsg,
7209 IRpcChannelBuffer* _pRpcChannelBuffer);
7211 IRpcStubBuffer* (CALLBACK *IsIIDSupported)(
7212 IRpcStubBuffer* This,
7215 ULONG (CALLBACK *CountRefs)(
7216 IRpcStubBuffer* This);
7218 HRESULT (CALLBACK *DebugServerQueryInterface)(
7219 IRpcStubBuffer* This,
7222 void (CALLBACK *DebugServerRelease)(
7223 IRpcStubBuffer* This,
7228 #define IRpcStubBuffer_IMETHODS \
7230 ICOM_METHOD1 (HRESULT,Connect,IUnknown*,pUnkServer) \
7231 ICOM_VMETHOD (Disconnect) \
7232 ICOM_METHOD2 (HRESULT,Invoke,RPCOLEMESSAGE*,_prpcmsg,IRpcChannelBuffer*,_pRpcChannelBuffer) \
7233 ICOM_METHOD1 (IRpcStubBuffer*,IsIIDSupported,REFIID,riid) \
7234 ICOM_METHOD (ULONG,CountRefs) \
7235 ICOM_METHOD1 (HRESULT,DebugServerQueryInterface,void**,ppv) \
7236 ICOM_VMETHOD1(DebugServerRelease,void*,pv)
7238 /*** IUnknown methods ***/
7239 #define IRpcStubBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7240 #define IRpcStubBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7241 #define IRpcStubBuffer_Release(p) (p)->lpVtbl->Release(p)
7242 /*** IRpcStubBuffer methods ***/
7243 #define IRpcStubBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
7244 #define IRpcStubBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
7245 #define IRpcStubBuffer_Invoke(p,a,b) (p)->lpVtbl->Invoke(p,a,b)
7246 #define IRpcStubBuffer_IsIIDSupported(p,a) (p)->lpVtbl->IsIIDSupported(p,a)
7247 #define IRpcStubBuffer_CountRefs(p) (p)->lpVtbl->CountRefs(p)
7248 #define IRpcStubBuffer_DebugServerQueryInterface(p,a) (p)->lpVtbl->DebugServerQueryInterface(p,a)
7249 #define IRpcStubBuffer_DebugServerRelease(p,a) (p)->lpVtbl->DebugServerRelease(p,a)
7253 HRESULT CALLBACK IRpcStubBuffer_Connect_Proxy(
7254 IRpcStubBuffer* This,
7255 IUnknown* pUnkServer);
7256 void __RPC_STUB IRpcStubBuffer_Connect_Stub(
7257 struct IRpcStubBuffer* This,
7258 struct IRpcChannelBuffer* pRpcChannelBuffer,
7259 PRPC_MESSAGE pRpcMessage,
7260 DWORD* pdwStubPhase);
7261 void CALLBACK IRpcStubBuffer_Disconnect_Proxy(
7262 IRpcStubBuffer* This);
7263 void __RPC_STUB IRpcStubBuffer_Disconnect_Stub(
7264 struct IRpcStubBuffer* This,
7265 struct IRpcChannelBuffer* pRpcChannelBuffer,
7266 PRPC_MESSAGE pRpcMessage,
7267 DWORD* pdwStubPhase);
7268 HRESULT CALLBACK IRpcStubBuffer_Invoke_Proxy(
7269 IRpcStubBuffer* This,
7270 RPCOLEMESSAGE* _prpcmsg,
7271 IRpcChannelBuffer* _pRpcChannelBuffer);
7272 void __RPC_STUB IRpcStubBuffer_Invoke_Stub(
7273 struct IRpcStubBuffer* This,
7274 struct IRpcChannelBuffer* pRpcChannelBuffer,
7275 PRPC_MESSAGE pRpcMessage,
7276 DWORD* pdwStubPhase);
7277 IRpcStubBuffer* CALLBACK IRpcStubBuffer_IsIIDSupported_Proxy(
7278 IRpcStubBuffer* This,
7280 void __RPC_STUB IRpcStubBuffer_IsIIDSupported_Stub(
7281 struct IRpcStubBuffer* This,
7282 struct IRpcChannelBuffer* pRpcChannelBuffer,
7283 PRPC_MESSAGE pRpcMessage,
7284 DWORD* pdwStubPhase);
7285 ULONG CALLBACK IRpcStubBuffer_CountRefs_Proxy(
7286 IRpcStubBuffer* This);
7287 void __RPC_STUB IRpcStubBuffer_CountRefs_Stub(
7288 struct IRpcStubBuffer* This,
7289 struct IRpcChannelBuffer* pRpcChannelBuffer,
7290 PRPC_MESSAGE pRpcMessage,
7291 DWORD* pdwStubPhase);
7292 HRESULT CALLBACK IRpcStubBuffer_DebugServerQueryInterface_Proxy(
7293 IRpcStubBuffer* This,
7295 void __RPC_STUB IRpcStubBuffer_DebugServerQueryInterface_Stub(
7296 struct IRpcStubBuffer* This,
7297 struct IRpcChannelBuffer* pRpcChannelBuffer,
7298 PRPC_MESSAGE pRpcMessage,
7299 DWORD* pdwStubPhase);
7300 void CALLBACK IRpcStubBuffer_DebugServerRelease_Proxy(
7301 IRpcStubBuffer* This,
7303 void __RPC_STUB IRpcStubBuffer_DebugServerRelease_Stub(
7304 struct IRpcStubBuffer* This,
7305 struct IRpcChannelBuffer* pRpcChannelBuffer,
7306 PRPC_MESSAGE pRpcMessage,
7307 DWORD* pdwStubPhase);
7309 typedef struct IPSFactoryBuffer IPSFactoryBuffer;
7310 typedef IPSFactoryBuffer *LPPSFACTORYBUFFER;
7312 /*****************************************************************************
7313 * IPSFactoryBuffer interface
7315 DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
7316 #if defined(__cplusplus) && !defined(CINTERFACE)
7317 struct IPSFactoryBuffer: IUnknown {
7319 virtual HRESULT CALLBACK CreateProxy(
7320 IUnknown* pUnkOuter,
7322 IRpcProxyBuffer** ppProxy,
7325 virtual HRESULT CALLBACK CreateStub(
7327 IUnknown* pUnkServer,
7328 IRpcStubBuffer** ppStub) = 0;
7330 } ICOM_COM_INTERFACE_ATTRIBUTE;
7332 typedef struct IPSFactoryBufferVtbl IPSFactoryBufferVtbl;
7333 struct IPSFactoryBuffer {
7334 const IPSFactoryBufferVtbl* lpVtbl;
7336 struct IPSFactoryBufferVtbl {
7337 ICOM_MSVTABLE_COMPAT_FIELDS
7339 /*** IUnknown methods ***/
7340 HRESULT (CALLBACK *QueryInterface)(
7341 IPSFactoryBuffer* This,
7345 ULONG (CALLBACK *AddRef)(
7346 IPSFactoryBuffer* This);
7348 ULONG (CALLBACK *Release)(
7349 IPSFactoryBuffer* This);
7351 /*** IPSFactoryBuffer methods ***/
7352 HRESULT (CALLBACK *CreateProxy)(
7353 IPSFactoryBuffer* This,
7354 IUnknown* pUnkOuter,
7356 IRpcProxyBuffer** ppProxy,
7359 HRESULT (CALLBACK *CreateStub)(
7360 IPSFactoryBuffer* This,
7362 IUnknown* pUnkServer,
7363 IRpcStubBuffer** ppStub);
7367 #define IPSFactoryBuffer_IMETHODS \
7369 ICOM_METHOD4 (HRESULT,CreateProxy,IUnknown*,pUnkOuter,REFIID,riid,IRpcProxyBuffer**,ppProxy,void**,ppv) \
7370 ICOM_METHOD3 (HRESULT,CreateStub,REFIID,riid,IUnknown*,pUnkServer,IRpcStubBuffer**,ppStub)
7372 /*** IUnknown methods ***/
7373 #define IPSFactoryBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7374 #define IPSFactoryBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
7375 #define IPSFactoryBuffer_Release(p) (p)->lpVtbl->Release(p)
7376 /*** IPSFactoryBuffer methods ***/
7377 #define IPSFactoryBuffer_CreateProxy(p,a,b,c,d) (p)->lpVtbl->CreateProxy(p,a,b,c,d)
7378 #define IPSFactoryBuffer_CreateStub(p,a,b,c) (p)->lpVtbl->CreateStub(p,a,b,c)
7382 HRESULT CALLBACK IPSFactoryBuffer_CreateProxy_Proxy(
7383 IPSFactoryBuffer* This,
7384 IUnknown* pUnkOuter,
7386 IRpcProxyBuffer** ppProxy,
7388 void __RPC_STUB IPSFactoryBuffer_CreateProxy_Stub(
7389 struct IRpcStubBuffer* This,
7390 struct IRpcChannelBuffer* pRpcChannelBuffer,
7391 PRPC_MESSAGE pRpcMessage,
7392 DWORD* pdwStubPhase);
7393 HRESULT CALLBACK IPSFactoryBuffer_CreateStub_Proxy(
7394 IPSFactoryBuffer* This,
7396 IUnknown* pUnkServer,
7397 IRpcStubBuffer** ppStub);
7398 void __RPC_STUB IPSFactoryBuffer_CreateStub_Stub(
7399 struct IRpcStubBuffer* This,
7400 struct IRpcChannelBuffer* pRpcChannelBuffer,
7401 PRPC_MESSAGE pRpcMessage,
7402 DWORD* pdwStubPhase);
7404 typedef struct IChannelHook IChannelHook;
7405 typedef IChannelHook *LPCHANNELHOOK;
7407 typedef struct SChannelHookCallInfo {
7414 } SChannelHookCallInfo;
7416 /*****************************************************************************
7417 * IChannelHook interface
7419 DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
7420 #if defined(__cplusplus) && !defined(CINTERFACE)
7421 struct IChannelHook: IUnknown {
7423 virtual void CALLBACK ClientGetSize(
7426 ULONG* pDataSize) = 0;
7428 virtual void CALLBACK ClientFillBuffer(
7432 void* pDataBuffer) = 0;
7434 virtual void CALLBACK ClientNotify(
7440 HRESULT hrFault) = 0;
7442 virtual void CALLBACK ServerNotify(
7447 DWORD lDataRep) = 0;
7449 virtual void CALLBACK ServerGetSize(
7453 ULONG* pDataSize) = 0;
7455 virtual void CALLBACK ServerFillBuffer(
7460 HRESULT hrFault) = 0;
7462 } ICOM_COM_INTERFACE_ATTRIBUTE;
7464 typedef struct IChannelHookVtbl IChannelHookVtbl;
7465 struct IChannelHook {
7466 const IChannelHookVtbl* lpVtbl;
7468 struct IChannelHookVtbl {
7469 ICOM_MSVTABLE_COMPAT_FIELDS
7471 /*** IUnknown methods ***/
7472 HRESULT (CALLBACK *QueryInterface)(
7477 ULONG (CALLBACK *AddRef)(
7478 IChannelHook* This);
7480 ULONG (CALLBACK *Release)(
7481 IChannelHook* This);
7483 /*** IChannelHook methods ***/
7484 void (CALLBACK *ClientGetSize)(
7490 void (CALLBACK *ClientFillBuffer)(
7497 void (CALLBACK *ClientNotify)(
7506 void (CALLBACK *ServerNotify)(
7514 void (CALLBACK *ServerGetSize)(
7521 void (CALLBACK *ServerFillBuffer)(
7531 #define IChannelHook_IMETHODS \
7533 ICOM_VMETHOD3(ClientGetSize,REFGUID,uExtent,REFIID,riid,ULONG*,pDataSize) \
7534 ICOM_VMETHOD4(ClientFillBuffer,REFGUID,uExtent,REFIID,riid,ULONG*,pDataSize,void*,pDataBuffer) \
7535 ICOM_VMETHOD6(ClientNotify,REFGUID,uExtent,REFIID,riid,ULONG,cbDataSize,void*,pDataBuffer,DWORD,lDataRep,HRESULT,hrFault) \
7536 ICOM_VMETHOD5(ServerNotify,REFGUID,uExtent,REFIID,riid,ULONG,cbDataSize,void*,pDataBuffer,DWORD,lDataRep) \
7537 ICOM_VMETHOD4(ServerGetSize,REFGUID,uExtent,REFIID,riid,HRESULT,hrFault,ULONG*,pDataSize) \
7538 ICOM_VMETHOD5(ServerFillBuffer,REFGUID,uExtent,REFIID,riid,ULONG*,pDataSize,void*,pDataBuffer,HRESULT,hrFault)
7540 /*** IUnknown methods ***/
7541 #define IChannelHook_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7542 #define IChannelHook_AddRef(p) (p)->lpVtbl->AddRef(p)
7543 #define IChannelHook_Release(p) (p)->lpVtbl->Release(p)
7544 /*** IChannelHook methods ***/
7545 #define IChannelHook_ClientGetSize(p,a,b,c) (p)->lpVtbl->ClientGetSize(p,a,b,c)
7546 #define IChannelHook_ClientFillBuffer(p,a,b,c,d) (p)->lpVtbl->ClientFillBuffer(p,a,b,c,d)
7547 #define IChannelHook_ClientNotify(p,a,b,c,d,e,f) (p)->lpVtbl->ClientNotify(p,a,b,c,d,e,f)
7548 #define IChannelHook_ServerNotify(p,a,b,c,d,e) (p)->lpVtbl->ServerNotify(p,a,b,c,d,e)
7549 #define IChannelHook_ServerGetSize(p,a,b,c,d) (p)->lpVtbl->ServerGetSize(p,a,b,c,d)
7550 #define IChannelHook_ServerFillBuffer(p,a,b,c,d,e) (p)->lpVtbl->ServerFillBuffer(p,a,b,c,d,e)
7554 void CALLBACK IChannelHook_ClientGetSize_Proxy(
7559 void __RPC_STUB IChannelHook_ClientGetSize_Stub(
7560 struct IRpcStubBuffer* This,
7561 struct IRpcChannelBuffer* pRpcChannelBuffer,
7562 PRPC_MESSAGE pRpcMessage,
7563 DWORD* pdwStubPhase);
7564 void CALLBACK IChannelHook_ClientFillBuffer_Proxy(
7570 void __RPC_STUB IChannelHook_ClientFillBuffer_Stub(
7571 struct IRpcStubBuffer* This,
7572 struct IRpcChannelBuffer* pRpcChannelBuffer,
7573 PRPC_MESSAGE pRpcMessage,
7574 DWORD* pdwStubPhase);
7575 void CALLBACK IChannelHook_ClientNotify_Proxy(
7583 void __RPC_STUB IChannelHook_ClientNotify_Stub(
7584 struct IRpcStubBuffer* This,
7585 struct IRpcChannelBuffer* pRpcChannelBuffer,
7586 PRPC_MESSAGE pRpcMessage,
7587 DWORD* pdwStubPhase);
7588 void CALLBACK IChannelHook_ServerNotify_Proxy(
7595 void __RPC_STUB IChannelHook_ServerNotify_Stub(
7596 struct IRpcStubBuffer* This,
7597 struct IRpcChannelBuffer* pRpcChannelBuffer,
7598 PRPC_MESSAGE pRpcMessage,
7599 DWORD* pdwStubPhase);
7600 void CALLBACK IChannelHook_ServerGetSize_Proxy(
7606 void __RPC_STUB IChannelHook_ServerGetSize_Stub(
7607 struct IRpcStubBuffer* This,
7608 struct IRpcChannelBuffer* pRpcChannelBuffer,
7609 PRPC_MESSAGE pRpcMessage,
7610 DWORD* pdwStubPhase);
7611 void CALLBACK IChannelHook_ServerFillBuffer_Proxy(
7618 void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
7619 struct IRpcStubBuffer* This,
7620 struct IRpcChannelBuffer* pRpcChannelBuffer,
7621 PRPC_MESSAGE pRpcMessage,
7622 DWORD* pdwStubPhase);
7624 typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
7625 typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
7626 typedef struct IPropertyStorage IPropertyStorage;
7627 typedef IPropertyStorage *LPPROPERTYSTORAGE;
7629 extern const FMTID FMTID_SummaryInformation;
7631 extern const FMTID FMTID_DocSummaryInformation;
7633 extern const FMTID FMTID_UserDefinedProperties;
7635 #define PROPSETFLAG_DEFAULT (0)
7637 #define PROPSETFLAG_NONSIMPLE (1)
7639 #define PROPSETFLAG_ANSI (2)
7641 #define PROPSETFLAG_UNBUFFERED (4)
7643 typedef struct tagPROPVARIANT PROPVARIANT;
7645 typedef struct tagCAUB {
7647 unsigned char *pElems;
7650 typedef struct tagCAI {
7655 typedef struct tagCAUI {
7660 typedef struct tagCAL {
7665 typedef struct tagCAUL {
7670 typedef struct tagCAFLT {
7675 typedef struct tagCADBL {
7680 typedef struct tagCACY {
7685 typedef struct tagCADATE {
7690 typedef struct tagCABSTR {
7695 typedef struct tagCABSTRBLOB {
7700 typedef struct tagCABOOL {
7702 VARIANT_BOOL *pElems;
7705 typedef struct tagCASCODE {
7710 typedef struct tagCAPROPVARIANT {
7712 PROPVARIANT *pElems;
7715 typedef struct tagCAH {
7717 LARGE_INTEGER *pElems;
7720 typedef struct tagCAUH {
7722 ULARGE_INTEGER *pElems;
7725 typedef struct tagCALPSTR {
7730 typedef struct tagCALPWSTR {
7735 typedef struct tagCAFILETIME {
7740 typedef struct tagCACLIPDATA {
7745 typedef struct tagCACLSID {
7750 struct tagPROPVARIANT {
7759 VARIANT_BOOL boolVal;
7765 ULARGE_INTEGER uhVal;
7772 CLIPDATA *pclipdata;
7776 BSTRBLOB bstrblobVal;
7792 CAFILETIME cafiletime;
7794 CACLIPDATA caclipdata;
7796 CABSTRBLOB cabstrblob;
7799 CAPROPVARIANT capropvar;
7803 typedef struct tagPROPVARIANT *LPPROPVARIANT;
7805 #define PRSPEC_INVALID (0x7fffffff)
7807 #define PRSPEC_LPWSTR (0)
7809 #define PRSPEC_PROPID (1)
7811 typedef struct tagPROPSPEC {
7819 typedef struct tagSTATPROPSTG {
7820 LPOLESTR lpwstrName;
7825 typedef struct tagSTATPROPSETSTG {
7835 /*****************************************************************************
7836 * IPropertyStorage interface
7838 DEFINE_GUID(IID_IPropertyStorage, 0x00000138, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
7839 #if defined(__cplusplus) && !defined(CINTERFACE)
7840 struct IPropertyStorage: IUnknown {
7842 virtual HRESULT CALLBACK ReadMultiple(
7844 const PROPSPEC rgpspec[],
7845 PROPVARIANT rgpropvar[]) = 0;
7847 virtual HRESULT CALLBACK WriteMultiple(
7849 const PROPSPEC rgpspec[],
7850 const PROPVARIANT rgpropvar[],
7851 PROPID propidNameFirst) = 0;
7853 virtual HRESULT CALLBACK DeleteMultiple(
7855 const PROPSPEC rgpspec[]) = 0;
7857 virtual HRESULT CALLBACK ReadPropertyNames(
7859 const PROPID rgpropid[],
7860 LPOLESTR rglpwstrName[]) = 0;
7862 virtual HRESULT CALLBACK WritePropertyNames(
7864 const PROPID rgpropid[],
7865 const LPOLESTR rglpwstrName[]) = 0;
7867 virtual HRESULT CALLBACK DeletePropertyNames(
7869 const PROPID rgpropid[]) = 0;
7871 virtual HRESULT CALLBACK Commit(
7872 DWORD grfCommitFlags) = 0;
7874 virtual HRESULT CALLBACK Revert(
7877 virtual HRESULT CALLBACK Enum(
7878 IEnumSTATPROPSTG** ppenum) = 0;
7880 virtual HRESULT CALLBACK SetTimes(
7881 const FILETIME* pctime,
7882 const FILETIME* patime,
7883 const FILETIME* pmtime) = 0;
7885 virtual HRESULT CALLBACK SetClass(
7886 REFCLSID clsid) = 0;
7888 virtual HRESULT CALLBACK Stat(
7889 STATPROPSETSTG* statpsstg) = 0;
7891 } ICOM_COM_INTERFACE_ATTRIBUTE;
7893 typedef struct IPropertyStorageVtbl IPropertyStorageVtbl;
7894 struct IPropertyStorage {
7895 const IPropertyStorageVtbl* lpVtbl;
7897 struct IPropertyStorageVtbl {
7898 ICOM_MSVTABLE_COMPAT_FIELDS
7900 /*** IUnknown methods ***/
7901 HRESULT (CALLBACK *QueryInterface)(
7902 IPropertyStorage* This,
7906 ULONG (CALLBACK *AddRef)(
7907 IPropertyStorage* This);
7909 ULONG (CALLBACK *Release)(
7910 IPropertyStorage* This);
7912 /*** IPropertyStorage methods ***/
7913 HRESULT (CALLBACK *ReadMultiple)(
7914 IPropertyStorage* This,
7916 const PROPSPEC rgpspec[],
7917 PROPVARIANT rgpropvar[]);
7919 HRESULT (CALLBACK *WriteMultiple)(
7920 IPropertyStorage* This,
7922 const PROPSPEC rgpspec[],
7923 const PROPVARIANT rgpropvar[],
7924 PROPID propidNameFirst);
7926 HRESULT (CALLBACK *DeleteMultiple)(
7927 IPropertyStorage* This,
7929 const PROPSPEC rgpspec[]);
7931 HRESULT (CALLBACK *ReadPropertyNames)(
7932 IPropertyStorage* This,
7934 const PROPID rgpropid[],
7935 LPOLESTR rglpwstrName[]);
7937 HRESULT (CALLBACK *WritePropertyNames)(
7938 IPropertyStorage* This,
7940 const PROPID rgpropid[],
7941 const LPOLESTR rglpwstrName[]);
7943 HRESULT (CALLBACK *DeletePropertyNames)(
7944 IPropertyStorage* This,
7946 const PROPID rgpropid[]);
7948 HRESULT (CALLBACK *Commit)(
7949 IPropertyStorage* This,
7950 DWORD grfCommitFlags);
7952 HRESULT (CALLBACK *Revert)(
7953 IPropertyStorage* This);
7955 HRESULT (CALLBACK *Enum)(
7956 IPropertyStorage* This,
7957 IEnumSTATPROPSTG** ppenum);
7959 HRESULT (CALLBACK *SetTimes)(
7960 IPropertyStorage* This,
7961 const FILETIME* pctime,
7962 const FILETIME* patime,
7963 const FILETIME* pmtime);
7965 HRESULT (CALLBACK *SetClass)(
7966 IPropertyStorage* This,
7969 HRESULT (CALLBACK *Stat)(
7970 IPropertyStorage* This,
7971 STATPROPSETSTG* statpsstg);
7975 #define IPropertyStorage_IMETHODS \
7977 ICOM_METHOD3 (HRESULT,ReadMultiple,ULONG,cpspec,const PROPSPEC*,rgpspec,PROPVARIANT*,rgpropvar) \
7978 ICOM_METHOD4 (HRESULT,WriteMultiple,ULONG,cpspec,const PROPSPEC*,rgpspec,const PROPVARIANT*,rgpropvar,PROPID,propidNameFirst) \
7979 ICOM_METHOD2 (HRESULT,DeleteMultiple,ULONG,cpspec,const PROPSPEC*,rgpspec) \
7980 ICOM_METHOD3 (HRESULT,ReadPropertyNames,ULONG,cpropid,const PROPID*,rgpropid,LPOLESTR*,rglpwstrName) \
7981 ICOM_METHOD3 (HRESULT,WritePropertyNames,ULONG,cpropid,const PROPID*,rgpropid,const LPOLESTR*,rglpwstrName) \
7982 ICOM_METHOD2 (HRESULT,DeletePropertyNames,ULONG,cpropid,const PROPID*,rgpropid) \
7983 ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
7984 ICOM_METHOD (HRESULT,Revert) \
7985 ICOM_METHOD1 (HRESULT,Enum,IEnumSTATPROPSTG**,ppenum) \
7986 ICOM_METHOD3 (HRESULT,SetTimes,const FILETIME*,pctime,const FILETIME*,patime,const FILETIME*,pmtime) \
7987 ICOM_METHOD1 (HRESULT,SetClass,REFCLSID,clsid) \
7988 ICOM_METHOD1 (HRESULT,Stat,STATPROPSETSTG*,statpsstg)
7990 /*** IUnknown methods ***/
7991 #define IPropertyStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7992 #define IPropertyStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
7993 #define IPropertyStorage_Release(p) (p)->lpVtbl->Release(p)
7994 /*** IPropertyStorage methods ***/
7995 #define IPropertyStorage_ReadMultiple(p,a,b,c) (p)->lpVtbl->ReadMultiple(p,a,b,c)
7996 #define IPropertyStorage_WriteMultiple(p,a,b,c,d) (p)->lpVtbl->WriteMultiple(p,a,b,c,d)
7997 #define IPropertyStorage_DeleteMultiple(p,a,b) (p)->lpVtbl->DeleteMultiple(p,a,b)
7998 #define IPropertyStorage_ReadPropertyNames(p,a,b,c) (p)->lpVtbl->ReadPropertyNames(p,a,b,c)
7999 #define IPropertyStorage_WritePropertyNames(p,a,b,c) (p)->lpVtbl->WritePropertyNames(p,a,b,c)
8000 #define IPropertyStorage_DeletePropertyNames(p,a,b) (p)->lpVtbl->DeletePropertyNames(p,a,b)
8001 #define IPropertyStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
8002 #define IPropertyStorage_Revert(p) (p)->lpVtbl->Revert(p)
8003 #define IPropertyStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
8004 #define IPropertyStorage_SetTimes(p,a,b,c) (p)->lpVtbl->SetTimes(p,a,b,c)
8005 #define IPropertyStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
8006 #define IPropertyStorage_Stat(p,a) (p)->lpVtbl->Stat(p,a)
8010 HRESULT CALLBACK IPropertyStorage_ReadMultiple_Proxy(
8011 IPropertyStorage* This,
8013 const PROPSPEC rgpspec[],
8014 PROPVARIANT rgpropvar[]);
8015 void __RPC_STUB IPropertyStorage_ReadMultiple_Stub(
8016 struct IRpcStubBuffer* This,
8017 struct IRpcChannelBuffer* pRpcChannelBuffer,
8018 PRPC_MESSAGE pRpcMessage,
8019 DWORD* pdwStubPhase);
8020 HRESULT CALLBACK IPropertyStorage_WriteMultiple_Proxy(
8021 IPropertyStorage* This,
8023 const PROPSPEC rgpspec[],
8024 const PROPVARIANT rgpropvar[],
8025 PROPID propidNameFirst);
8026 void __RPC_STUB IPropertyStorage_WriteMultiple_Stub(
8027 struct IRpcStubBuffer* This,
8028 struct IRpcChannelBuffer* pRpcChannelBuffer,
8029 PRPC_MESSAGE pRpcMessage,
8030 DWORD* pdwStubPhase);
8031 HRESULT CALLBACK IPropertyStorage_DeleteMultiple_Proxy(
8032 IPropertyStorage* This,
8034 const PROPSPEC rgpspec[]);
8035 void __RPC_STUB IPropertyStorage_DeleteMultiple_Stub(
8036 struct IRpcStubBuffer* This,
8037 struct IRpcChannelBuffer* pRpcChannelBuffer,
8038 PRPC_MESSAGE pRpcMessage,
8039 DWORD* pdwStubPhase);
8040 HRESULT CALLBACK IPropertyStorage_ReadPropertyNames_Proxy(
8041 IPropertyStorage* This,
8043 const PROPID rgpropid[],
8044 LPOLESTR rglpwstrName[]);
8045 void __RPC_STUB IPropertyStorage_ReadPropertyNames_Stub(
8046 struct IRpcStubBuffer* This,
8047 struct IRpcChannelBuffer* pRpcChannelBuffer,
8048 PRPC_MESSAGE pRpcMessage,
8049 DWORD* pdwStubPhase);
8050 HRESULT CALLBACK IPropertyStorage_WritePropertyNames_Proxy(
8051 IPropertyStorage* This,
8053 const PROPID rgpropid[],
8054 const LPOLESTR rglpwstrName[]);
8055 void __RPC_STUB IPropertyStorage_WritePropertyNames_Stub(
8056 struct IRpcStubBuffer* This,
8057 struct IRpcChannelBuffer* pRpcChannelBuffer,
8058 PRPC_MESSAGE pRpcMessage,
8059 DWORD* pdwStubPhase);
8060 HRESULT CALLBACK IPropertyStorage_DeletePropertyNames_Proxy(
8061 IPropertyStorage* This,
8063 const PROPID rgpropid[]);
8064 void __RPC_STUB IPropertyStorage_DeletePropertyNames_Stub(
8065 struct IRpcStubBuffer* This,
8066 struct IRpcChannelBuffer* pRpcChannelBuffer,
8067 PRPC_MESSAGE pRpcMessage,
8068 DWORD* pdwStubPhase);
8069 HRESULT CALLBACK IPropertyStorage_Commit_Proxy(
8070 IPropertyStorage* This,
8071 DWORD grfCommitFlags);
8072 void __RPC_STUB IPropertyStorage_Commit_Stub(
8073 struct IRpcStubBuffer* This,
8074 struct IRpcChannelBuffer* pRpcChannelBuffer,
8075 PRPC_MESSAGE pRpcMessage,
8076 DWORD* pdwStubPhase);
8077 HRESULT CALLBACK IPropertyStorage_Revert_Proxy(
8078 IPropertyStorage* This);
8079 void __RPC_STUB IPropertyStorage_Revert_Stub(
8080 struct IRpcStubBuffer* This,
8081 struct IRpcChannelBuffer* pRpcChannelBuffer,
8082 PRPC_MESSAGE pRpcMessage,
8083 DWORD* pdwStubPhase);
8084 HRESULT CALLBACK IPropertyStorage_Enum_Proxy(
8085 IPropertyStorage* This,
8086 IEnumSTATPROPSTG** ppenum);
8087 void __RPC_STUB IPropertyStorage_Enum_Stub(
8088 struct IRpcStubBuffer* This,
8089 struct IRpcChannelBuffer* pRpcChannelBuffer,
8090 PRPC_MESSAGE pRpcMessage,
8091 DWORD* pdwStubPhase);
8092 HRESULT CALLBACK IPropertyStorage_SetTimes_Proxy(
8093 IPropertyStorage* This,
8094 const FILETIME* pctime,
8095 const FILETIME* patime,
8096 const FILETIME* pmtime);
8097 void __RPC_STUB IPropertyStorage_SetTimes_Stub(
8098 struct IRpcStubBuffer* This,
8099 struct IRpcChannelBuffer* pRpcChannelBuffer,
8100 PRPC_MESSAGE pRpcMessage,
8101 DWORD* pdwStubPhase);
8102 HRESULT CALLBACK IPropertyStorage_SetClass_Proxy(
8103 IPropertyStorage* This,
8105 void __RPC_STUB IPropertyStorage_SetClass_Stub(
8106 struct IRpcStubBuffer* This,
8107 struct IRpcChannelBuffer* pRpcChannelBuffer,
8108 PRPC_MESSAGE pRpcMessage,
8109 DWORD* pdwStubPhase);
8110 HRESULT CALLBACK IPropertyStorage_Stat_Proxy(
8111 IPropertyStorage* This,
8112 STATPROPSETSTG* statpsstg);
8113 void __RPC_STUB IPropertyStorage_Stat_Stub(
8114 struct IRpcStubBuffer* This,
8115 struct IRpcChannelBuffer* pRpcChannelBuffer,
8116 PRPC_MESSAGE pRpcMessage,
8117 DWORD* pdwStubPhase);
8119 typedef struct IPropertySetStorage IPropertySetStorage;
8120 typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
8122 /*****************************************************************************
8123 * IPropertySetStorage interface
8125 DEFINE_GUID(IID_IPropertySetStorage, 0x0000013a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8126 #if defined(__cplusplus) && !defined(CINTERFACE)
8127 struct IPropertySetStorage: IUnknown {
8129 virtual HRESULT CALLBACK Create(
8131 const CLSID* pclsid,
8134 IPropertyStorage** ppprstg) = 0;
8136 virtual HRESULT CALLBACK Open(
8139 IPropertyStorage** ppprstg) = 0;
8141 virtual HRESULT CALLBACK Delete(
8142 REFFMTID rfmtid) = 0;
8144 virtual HRESULT CALLBACK Enum(
8145 IEnumSTATPROPSETSTG** ppenum) = 0;
8147 } ICOM_COM_INTERFACE_ATTRIBUTE;
8149 typedef struct IPropertySetStorageVtbl IPropertySetStorageVtbl;
8150 struct IPropertySetStorage {
8151 const IPropertySetStorageVtbl* lpVtbl;
8153 struct IPropertySetStorageVtbl {
8154 ICOM_MSVTABLE_COMPAT_FIELDS
8156 /*** IUnknown methods ***/
8157 HRESULT (CALLBACK *QueryInterface)(
8158 IPropertySetStorage* This,
8162 ULONG (CALLBACK *AddRef)(
8163 IPropertySetStorage* This);
8165 ULONG (CALLBACK *Release)(
8166 IPropertySetStorage* This);
8168 /*** IPropertySetStorage methods ***/
8169 HRESULT (CALLBACK *Create)(
8170 IPropertySetStorage* This,
8172 const CLSID* pclsid,
8175 IPropertyStorage** ppprstg);
8177 HRESULT (CALLBACK *Open)(
8178 IPropertySetStorage* This,
8181 IPropertyStorage** ppprstg);
8183 HRESULT (CALLBACK *Delete)(
8184 IPropertySetStorage* This,
8187 HRESULT (CALLBACK *Enum)(
8188 IPropertySetStorage* This,
8189 IEnumSTATPROPSETSTG** ppenum);
8193 #define IPropertySetStorage_IMETHODS \
8195 ICOM_METHOD5 (HRESULT,Create,REFFMTID,rfmtid,const CLSID*,pclsid,DWORD,grfFlags,DWORD,grfMode,IPropertyStorage**,ppprstg) \
8196 ICOM_METHOD3 (HRESULT,Open,REFFMTID,rfmtid,DWORD,grfMode,IPropertyStorage**,ppprstg) \
8197 ICOM_METHOD1 (HRESULT,Delete,REFFMTID,rfmtid) \
8198 ICOM_METHOD1 (HRESULT,Enum,IEnumSTATPROPSETSTG**,ppenum)
8200 /*** IUnknown methods ***/
8201 #define IPropertySetStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8202 #define IPropertySetStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
8203 #define IPropertySetStorage_Release(p) (p)->lpVtbl->Release(p)
8204 /*** IPropertySetStorage methods ***/
8205 #define IPropertySetStorage_Create(p,a,b,c,d,e) (p)->lpVtbl->Create(p,a,b,c,d,e)
8206 #define IPropertySetStorage_Open(p,a,b,c) (p)->lpVtbl->Open(p,a,b,c)
8207 #define IPropertySetStorage_Delete(p,a) (p)->lpVtbl->Delete(p,a)
8208 #define IPropertySetStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
8212 HRESULT CALLBACK IPropertySetStorage_Create_Proxy(
8213 IPropertySetStorage* This,
8215 const CLSID* pclsid,
8218 IPropertyStorage** ppprstg);
8219 void __RPC_STUB IPropertySetStorage_Create_Stub(
8220 struct IRpcStubBuffer* This,
8221 struct IRpcChannelBuffer* pRpcChannelBuffer,
8222 PRPC_MESSAGE pRpcMessage,
8223 DWORD* pdwStubPhase);
8224 HRESULT CALLBACK IPropertySetStorage_Open_Proxy(
8225 IPropertySetStorage* This,
8228 IPropertyStorage** ppprstg);
8229 void __RPC_STUB IPropertySetStorage_Open_Stub(
8230 struct IRpcStubBuffer* This,
8231 struct IRpcChannelBuffer* pRpcChannelBuffer,
8232 PRPC_MESSAGE pRpcMessage,
8233 DWORD* pdwStubPhase);
8234 HRESULT CALLBACK IPropertySetStorage_Delete_Proxy(
8235 IPropertySetStorage* This,
8237 void __RPC_STUB IPropertySetStorage_Delete_Stub(
8238 struct IRpcStubBuffer* This,
8239 struct IRpcChannelBuffer* pRpcChannelBuffer,
8240 PRPC_MESSAGE pRpcMessage,
8241 DWORD* pdwStubPhase);
8242 HRESULT CALLBACK IPropertySetStorage_Enum_Proxy(
8243 IPropertySetStorage* This,
8244 IEnumSTATPROPSETSTG** ppenum);
8245 void __RPC_STUB IPropertySetStorage_Enum_Stub(
8246 struct IRpcStubBuffer* This,
8247 struct IRpcChannelBuffer* pRpcChannelBuffer,
8248 PRPC_MESSAGE pRpcMessage,
8249 DWORD* pdwStubPhase);
8251 typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
8253 /*****************************************************************************
8254 * IEnumSTATPROPSTG interface
8256 DEFINE_GUID(IID_IEnumSTATPROPSTG, 0x00000139, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8257 #if defined(__cplusplus) && !defined(CINTERFACE)
8258 struct IEnumSTATPROPSTG: IUnknown {
8260 virtual HRESULT CALLBACK Next(
8263 ULONG* pceltFetched) = 0;
8265 virtual HRESULT CALLBACK Skip(
8268 virtual HRESULT CALLBACK Reset(
8271 virtual HRESULT CALLBACK Clone(
8272 IEnumSTATPROPSTG** ppenum) = 0;
8274 } ICOM_COM_INTERFACE_ATTRIBUTE;
8276 typedef struct IEnumSTATPROPSTGVtbl IEnumSTATPROPSTGVtbl;
8277 struct IEnumSTATPROPSTG {
8278 const IEnumSTATPROPSTGVtbl* lpVtbl;
8280 struct IEnumSTATPROPSTGVtbl {
8281 ICOM_MSVTABLE_COMPAT_FIELDS
8283 /*** IUnknown methods ***/
8284 HRESULT (CALLBACK *QueryInterface)(
8285 IEnumSTATPROPSTG* This,
8289 ULONG (CALLBACK *AddRef)(
8290 IEnumSTATPROPSTG* This);
8292 ULONG (CALLBACK *Release)(
8293 IEnumSTATPROPSTG* This);
8295 /*** IEnumSTATPROPSTG methods ***/
8296 HRESULT (CALLBACK *Next)(
8297 IEnumSTATPROPSTG* This,
8300 ULONG* pceltFetched);
8302 HRESULT (CALLBACK *Skip)(
8303 IEnumSTATPROPSTG* This,
8306 HRESULT (CALLBACK *Reset)(
8307 IEnumSTATPROPSTG* This);
8309 HRESULT (CALLBACK *Clone)(
8310 IEnumSTATPROPSTG* This,
8311 IEnumSTATPROPSTG** ppenum);
8315 #define IEnumSTATPROPSTG_IMETHODS \
8317 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATPROPSTG*,rgelt,ULONG*,pceltFetched) \
8318 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
8319 ICOM_METHOD (HRESULT,Reset) \
8320 ICOM_METHOD1 (HRESULT,Clone,IEnumSTATPROPSTG**,ppenum)
8322 /*** IUnknown methods ***/
8323 #define IEnumSTATPROPSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8324 #define IEnumSTATPROPSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
8325 #define IEnumSTATPROPSTG_Release(p) (p)->lpVtbl->Release(p)
8326 /*** IEnumSTATPROPSTG methods ***/
8327 #define IEnumSTATPROPSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
8328 #define IEnumSTATPROPSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
8329 #define IEnumSTATPROPSTG_Reset(p) (p)->lpVtbl->Reset(p)
8330 #define IEnumSTATPROPSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
8334 HRESULT CALLBACK IEnumSTATPROPSTG_RemoteNext_Proxy(
8335 IEnumSTATPROPSTG* This,
8338 ULONG* pceltFetched);
8339 void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(
8340 struct IRpcStubBuffer* This,
8341 struct IRpcChannelBuffer* pRpcChannelBuffer,
8342 PRPC_MESSAGE pRpcMessage,
8343 DWORD* pdwStubPhase);
8344 HRESULT CALLBACK IEnumSTATPROPSTG_Next_Proxy(
8345 IEnumSTATPROPSTG* This,
8348 ULONG* pceltFetched);
8349 HRESULT __RPC_STUB IEnumSTATPROPSTG_Next_Stub(
8350 IEnumSTATPROPSTG* This,
8353 ULONG* pceltFetched);
8354 HRESULT CALLBACK IEnumSTATPROPSTG_Skip_Proxy(
8355 IEnumSTATPROPSTG* This,
8357 void __RPC_STUB IEnumSTATPROPSTG_Skip_Stub(
8358 struct IRpcStubBuffer* This,
8359 struct IRpcChannelBuffer* pRpcChannelBuffer,
8360 PRPC_MESSAGE pRpcMessage,
8361 DWORD* pdwStubPhase);
8362 HRESULT CALLBACK IEnumSTATPROPSTG_Reset_Proxy(
8363 IEnumSTATPROPSTG* This);
8364 void __RPC_STUB IEnumSTATPROPSTG_Reset_Stub(
8365 struct IRpcStubBuffer* This,
8366 struct IRpcChannelBuffer* pRpcChannelBuffer,
8367 PRPC_MESSAGE pRpcMessage,
8368 DWORD* pdwStubPhase);
8369 HRESULT CALLBACK IEnumSTATPROPSTG_Clone_Proxy(
8370 IEnumSTATPROPSTG* This,
8371 IEnumSTATPROPSTG** ppenum);
8372 void __RPC_STUB IEnumSTATPROPSTG_Clone_Stub(
8373 struct IRpcStubBuffer* This,
8374 struct IRpcChannelBuffer* pRpcChannelBuffer,
8375 PRPC_MESSAGE pRpcMessage,
8376 DWORD* pdwStubPhase);
8378 typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
8380 /*****************************************************************************
8381 * IEnumSTATPROPSETSTG interface
8383 DEFINE_GUID(IID_IEnumSTATPROPSETSTG, 0x0000013b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8384 #if defined(__cplusplus) && !defined(CINTERFACE)
8385 struct IEnumSTATPROPSETSTG: IUnknown {
8387 virtual HRESULT CALLBACK Next(
8389 STATPROPSETSTG* rgelt,
8390 ULONG* pceltFetched) = 0;
8392 virtual HRESULT CALLBACK Skip(
8395 virtual HRESULT CALLBACK Reset(
8398 virtual HRESULT CALLBACK Clone(
8399 IEnumSTATPROPSETSTG** ppenum) = 0;
8401 } ICOM_COM_INTERFACE_ATTRIBUTE;
8403 typedef struct IEnumSTATPROPSETSTGVtbl IEnumSTATPROPSETSTGVtbl;
8404 struct IEnumSTATPROPSETSTG {
8405 const IEnumSTATPROPSETSTGVtbl* lpVtbl;
8407 struct IEnumSTATPROPSETSTGVtbl {
8408 ICOM_MSVTABLE_COMPAT_FIELDS
8410 /*** IUnknown methods ***/
8411 HRESULT (CALLBACK *QueryInterface)(
8412 IEnumSTATPROPSETSTG* This,
8416 ULONG (CALLBACK *AddRef)(
8417 IEnumSTATPROPSETSTG* This);
8419 ULONG (CALLBACK *Release)(
8420 IEnumSTATPROPSETSTG* This);
8422 /*** IEnumSTATPROPSETSTG methods ***/
8423 HRESULT (CALLBACK *Next)(
8424 IEnumSTATPROPSETSTG* This,
8426 STATPROPSETSTG* rgelt,
8427 ULONG* pceltFetched);
8429 HRESULT (CALLBACK *Skip)(
8430 IEnumSTATPROPSETSTG* This,
8433 HRESULT (CALLBACK *Reset)(
8434 IEnumSTATPROPSETSTG* This);
8436 HRESULT (CALLBACK *Clone)(
8437 IEnumSTATPROPSETSTG* This,
8438 IEnumSTATPROPSETSTG** ppenum);
8442 #define IEnumSTATPROPSETSTG_IMETHODS \
8444 ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATPROPSETSTG*,rgelt,ULONG*,pceltFetched) \
8445 ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
8446 ICOM_METHOD (HRESULT,Reset) \
8447 ICOM_METHOD1 (HRESULT,Clone,IEnumSTATPROPSETSTG**,ppenum)
8449 /*** IUnknown methods ***/
8450 #define IEnumSTATPROPSETSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8451 #define IEnumSTATPROPSETSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
8452 #define IEnumSTATPROPSETSTG_Release(p) (p)->lpVtbl->Release(p)
8453 /*** IEnumSTATPROPSETSTG methods ***/
8454 #define IEnumSTATPROPSETSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
8455 #define IEnumSTATPROPSETSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
8456 #define IEnumSTATPROPSETSTG_Reset(p) (p)->lpVtbl->Reset(p)
8457 #define IEnumSTATPROPSETSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
8461 HRESULT CALLBACK IEnumSTATPROPSETSTG_RemoteNext_Proxy(
8462 IEnumSTATPROPSETSTG* This,
8464 STATPROPSETSTG* rgelt,
8465 ULONG* pceltFetched);
8466 void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(
8467 struct IRpcStubBuffer* This,
8468 struct IRpcChannelBuffer* pRpcChannelBuffer,
8469 PRPC_MESSAGE pRpcMessage,
8470 DWORD* pdwStubPhase);
8471 HRESULT CALLBACK IEnumSTATPROPSETSTG_Next_Proxy(
8472 IEnumSTATPROPSETSTG* This,
8474 STATPROPSETSTG* rgelt,
8475 ULONG* pceltFetched);
8476 HRESULT __RPC_STUB IEnumSTATPROPSETSTG_Next_Stub(
8477 IEnumSTATPROPSETSTG* This,
8479 STATPROPSETSTG* rgelt,
8480 ULONG* pceltFetched);
8481 HRESULT CALLBACK IEnumSTATPROPSETSTG_Skip_Proxy(
8482 IEnumSTATPROPSETSTG* This,
8484 void __RPC_STUB IEnumSTATPROPSETSTG_Skip_Stub(
8485 struct IRpcStubBuffer* This,
8486 struct IRpcChannelBuffer* pRpcChannelBuffer,
8487 PRPC_MESSAGE pRpcMessage,
8488 DWORD* pdwStubPhase);
8489 HRESULT CALLBACK IEnumSTATPROPSETSTG_Reset_Proxy(
8490 IEnumSTATPROPSETSTG* This);
8491 void __RPC_STUB IEnumSTATPROPSETSTG_Reset_Stub(
8492 struct IRpcStubBuffer* This,
8493 struct IRpcChannelBuffer* pRpcChannelBuffer,
8494 PRPC_MESSAGE pRpcMessage,
8495 DWORD* pdwStubPhase);
8496 HRESULT CALLBACK IEnumSTATPROPSETSTG_Clone_Proxy(
8497 IEnumSTATPROPSETSTG* This,
8498 IEnumSTATPROPSETSTG** ppenum);
8499 void __RPC_STUB IEnumSTATPROPSETSTG_Clone_Stub(
8500 struct IRpcStubBuffer* This,
8501 struct IRpcChannelBuffer* pRpcChannelBuffer,
8502 PRPC_MESSAGE pRpcMessage,
8503 DWORD* pdwStubPhase);
8505 typedef struct IClientSecurity IClientSecurity;
8506 typedef struct tagSOLE_AUTHENTICATION_SERVICE {
8509 OLECHAR *pPrincipalName;
8511 } SOLE_AUTHENTICATION_SERVICE;
8513 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
8515 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
8517 EOAC_MUTUAL_AUTH = 0x1,
8518 EOAC_CLOAKING = 0x10,
8519 EOAC_SECURE_REFS = 0x2,
8520 EOAC_ACCESS_CONTROL = 0x4,
8522 } EOLE_AUTHENTICATION_CAPABILITIES;
8524 /*****************************************************************************
8525 * IClientSecurity interface
8527 DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8528 #if defined(__cplusplus) && !defined(CINTERFACE)
8529 struct IClientSecurity: IUnknown {
8531 virtual HRESULT CALLBACK QueryBlanket(
8535 OLECHAR** pServerPrincName,
8539 DWORD* pCapabilites) = 0;
8541 virtual HRESULT CALLBACK SetBlanket(
8545 OLECHAR* pServerPrincName,
8549 DWORD Capabilities) = 0;
8551 virtual HRESULT CALLBACK CopyProxy(
8553 IUnknown** ppCopy) = 0;
8555 } ICOM_COM_INTERFACE_ATTRIBUTE;
8557 typedef struct IClientSecurityVtbl IClientSecurityVtbl;
8558 struct IClientSecurity {
8559 const IClientSecurityVtbl* lpVtbl;
8561 struct IClientSecurityVtbl {
8562 ICOM_MSVTABLE_COMPAT_FIELDS
8564 /*** IUnknown methods ***/
8565 HRESULT (CALLBACK *QueryInterface)(
8566 IClientSecurity* This,
8570 ULONG (CALLBACK *AddRef)(
8571 IClientSecurity* This);
8573 ULONG (CALLBACK *Release)(
8574 IClientSecurity* This);
8576 /*** IClientSecurity methods ***/
8577 HRESULT (CALLBACK *QueryBlanket)(
8578 IClientSecurity* This,
8582 OLECHAR** pServerPrincName,
8586 DWORD* pCapabilites);
8588 HRESULT (CALLBACK *SetBlanket)(
8589 IClientSecurity* This,
8593 OLECHAR* pServerPrincName,
8597 DWORD Capabilities);
8599 HRESULT (CALLBACK *CopyProxy)(
8600 IClientSecurity* This,
8606 #define IClientSecurity_IMETHODS \
8608 ICOM_METHOD8 (HRESULT,QueryBlanket,IUnknown*,pProxy,DWORD*,pAuthnSvc,DWORD*,pAuthzSvc,OLECHAR**,pServerPrincName,DWORD*,pAuthnLevel,DWORD*,pImpLevel,void**,pAuthInfo,DWORD*,pCapabilites) \
8609 ICOM_METHOD8 (HRESULT,SetBlanket,IUnknown*,pProxy,DWORD,AuthnSvc,DWORD,AuthzSvc,OLECHAR*,pServerPrincName,DWORD,AuthnLevel,DWORD,ImpLevel,void*,pAuthInfo,DWORD,Capabilities) \
8610 ICOM_METHOD2 (HRESULT,CopyProxy,IUnknown*,pProxy,IUnknown**,ppCopy)
8612 /*** IUnknown methods ***/
8613 #define IClientSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8614 #define IClientSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
8615 #define IClientSecurity_Release(p) (p)->lpVtbl->Release(p)
8616 /*** IClientSecurity methods ***/
8617 #define IClientSecurity_QueryBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g,h)
8618 #define IClientSecurity_SetBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->SetBlanket(p,a,b,c,d,e,f,g,h)
8619 #define IClientSecurity_CopyProxy(p,a,b) (p)->lpVtbl->CopyProxy(p,a,b)
8623 HRESULT CALLBACK IClientSecurity_QueryBlanket_Proxy(
8624 IClientSecurity* This,
8628 OLECHAR** pServerPrincName,
8632 DWORD* pCapabilites);
8633 void __RPC_STUB IClientSecurity_QueryBlanket_Stub(
8634 struct IRpcStubBuffer* This,
8635 struct IRpcChannelBuffer* pRpcChannelBuffer,
8636 PRPC_MESSAGE pRpcMessage,
8637 DWORD* pdwStubPhase);
8638 HRESULT CALLBACK IClientSecurity_SetBlanket_Proxy(
8639 IClientSecurity* This,
8643 OLECHAR* pServerPrincName,
8647 DWORD Capabilities);
8648 void __RPC_STUB IClientSecurity_SetBlanket_Stub(
8649 struct IRpcStubBuffer* This,
8650 struct IRpcChannelBuffer* pRpcChannelBuffer,
8651 PRPC_MESSAGE pRpcMessage,
8652 DWORD* pdwStubPhase);
8653 HRESULT CALLBACK IClientSecurity_CopyProxy_Proxy(
8654 IClientSecurity* This,
8657 void __RPC_STUB IClientSecurity_CopyProxy_Stub(
8658 struct IRpcStubBuffer* This,
8659 struct IRpcChannelBuffer* pRpcChannelBuffer,
8660 PRPC_MESSAGE pRpcMessage,
8661 DWORD* pdwStubPhase);
8663 typedef struct IServerSecurity IServerSecurity;
8664 /*****************************************************************************
8665 * IServerSecurity interface
8667 DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8668 #if defined(__cplusplus) && !defined(CINTERFACE)
8669 struct IServerSecurity: IUnknown {
8671 virtual HRESULT CALLBACK QueryBlanket(
8674 OLECHAR** pServerPrincName,
8678 DWORD* pCapabilities) = 0;
8680 virtual HRESULT CALLBACK ImpersonateClient(
8683 virtual HRESULT CALLBACK RevertToSelf(
8686 virtual BOOL CALLBACK IsImpersonating(
8689 } ICOM_COM_INTERFACE_ATTRIBUTE;
8691 typedef struct IServerSecurityVtbl IServerSecurityVtbl;
8692 struct IServerSecurity {
8693 const IServerSecurityVtbl* lpVtbl;
8695 struct IServerSecurityVtbl {
8696 ICOM_MSVTABLE_COMPAT_FIELDS
8698 /*** IUnknown methods ***/
8699 HRESULT (CALLBACK *QueryInterface)(
8700 IServerSecurity* This,
8704 ULONG (CALLBACK *AddRef)(
8705 IServerSecurity* This);
8707 ULONG (CALLBACK *Release)(
8708 IServerSecurity* This);
8710 /*** IServerSecurity methods ***/
8711 HRESULT (CALLBACK *QueryBlanket)(
8712 IServerSecurity* This,
8715 OLECHAR** pServerPrincName,
8719 DWORD* pCapabilities);
8721 HRESULT (CALLBACK *ImpersonateClient)(
8722 IServerSecurity* This);
8724 HRESULT (CALLBACK *RevertToSelf)(
8725 IServerSecurity* This);
8727 BOOL (CALLBACK *IsImpersonating)(
8728 IServerSecurity* This);
8732 #define IServerSecurity_IMETHODS \
8734 ICOM_METHOD7 (HRESULT,QueryBlanket,DWORD*,pAuthnSvc,DWORD*,pAuthzSvc,OLECHAR**,pServerPrincName,DWORD*,pAuthnLevel,DWORD*,pImpLevel,void**,pPrivs,DWORD*,pCapabilities) \
8735 ICOM_METHOD (HRESULT,ImpersonateClient) \
8736 ICOM_METHOD (HRESULT,RevertToSelf) \
8737 ICOM_METHOD (BOOL,IsImpersonating)
8739 /*** IUnknown methods ***/
8740 #define IServerSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8741 #define IServerSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
8742 #define IServerSecurity_Release(p) (p)->lpVtbl->Release(p)
8743 /*** IServerSecurity methods ***/
8744 #define IServerSecurity_QueryBlanket(p,a,b,c,d,e,f,g) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g)
8745 #define IServerSecurity_ImpersonateClient(p) (p)->lpVtbl->ImpersonateClient(p)
8746 #define IServerSecurity_RevertToSelf(p) (p)->lpVtbl->RevertToSelf(p)
8747 #define IServerSecurity_IsImpersonating(p) (p)->lpVtbl->IsImpersonating(p)
8751 HRESULT CALLBACK IServerSecurity_QueryBlanket_Proxy(
8752 IServerSecurity* This,
8755 OLECHAR** pServerPrincName,
8759 DWORD* pCapabilities);
8760 void __RPC_STUB IServerSecurity_QueryBlanket_Stub(
8761 struct IRpcStubBuffer* This,
8762 struct IRpcChannelBuffer* pRpcChannelBuffer,
8763 PRPC_MESSAGE pRpcMessage,
8764 DWORD* pdwStubPhase);
8765 HRESULT CALLBACK IServerSecurity_ImpersonateClient_Proxy(
8766 IServerSecurity* This);
8767 void __RPC_STUB IServerSecurity_ImpersonateClient_Stub(
8768 struct IRpcStubBuffer* This,
8769 struct IRpcChannelBuffer* pRpcChannelBuffer,
8770 PRPC_MESSAGE pRpcMessage,
8771 DWORD* pdwStubPhase);
8772 HRESULT CALLBACK IServerSecurity_RevertToSelf_Proxy(
8773 IServerSecurity* This);
8774 void __RPC_STUB IServerSecurity_RevertToSelf_Stub(
8775 struct IRpcStubBuffer* This,
8776 struct IRpcChannelBuffer* pRpcChannelBuffer,
8777 PRPC_MESSAGE pRpcMessage,
8778 DWORD* pdwStubPhase);
8779 BOOL CALLBACK IServerSecurity_IsImpersonating_Proxy(
8780 IServerSecurity* This);
8781 void __RPC_STUB IServerSecurity_IsImpersonating_Stub(
8782 struct IRpcStubBuffer* This,
8783 struct IRpcChannelBuffer* pRpcChannelBuffer,
8784 PRPC_MESSAGE pRpcMessage,
8785 DWORD* pdwStubPhase);
8787 typedef struct IAsyncSetup IAsyncSetup;
8788 /*****************************************************************************
8789 * IAsyncSetup interface
8791 DEFINE_GUID(IID_IAsyncSetup, 0x00000024, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8792 #if defined(__cplusplus) && !defined(CINTERFACE)
8793 struct IAsyncSetup: IUnknown {
8795 virtual HRESULT CALLBACK GetAsyncManager(
8800 IAsyncManager** ppAsyncMgr) = 0;
8802 } ICOM_COM_INTERFACE_ATTRIBUTE;
8804 typedef struct IAsyncSetupVtbl IAsyncSetupVtbl;
8805 struct IAsyncSetup {
8806 const IAsyncSetupVtbl* lpVtbl;
8808 struct IAsyncSetupVtbl {
8809 ICOM_MSVTABLE_COMPAT_FIELDS
8811 /*** IUnknown methods ***/
8812 HRESULT (CALLBACK *QueryInterface)(
8817 ULONG (CALLBACK *AddRef)(
8820 ULONG (CALLBACK *Release)(
8823 /*** IAsyncSetup methods ***/
8824 HRESULT (CALLBACK *GetAsyncManager)(
8830 IAsyncManager** ppAsyncMgr);
8834 #define IAsyncSetup_IMETHODS \
8836 ICOM_METHOD5 (HRESULT,GetAsyncManager,REFIID,riid,IUnknown*,pOuter,DWORD,dwFlags,IUnknown**,ppInner,IAsyncManager**,ppAsyncMgr)
8838 /*** IUnknown methods ***/
8839 #define IAsyncSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8840 #define IAsyncSetup_AddRef(p) (p)->lpVtbl->AddRef(p)
8841 #define IAsyncSetup_Release(p) (p)->lpVtbl->Release(p)
8842 /*** IAsyncSetup methods ***/
8843 #define IAsyncSetup_GetAsyncManager(p,a,b,c,d,e) (p)->lpVtbl->GetAsyncManager(p,a,b,c,d,e)
8847 HRESULT CALLBACK IAsyncSetup_GetAsyncManager_Proxy(
8853 IAsyncManager** ppAsyncMgr);
8854 void __RPC_STUB IAsyncSetup_GetAsyncManager_Stub(
8855 struct IRpcStubBuffer* This,
8856 struct IRpcChannelBuffer* pRpcChannelBuffer,
8857 PRPC_MESSAGE pRpcMessage,
8858 DWORD* pdwStubPhase);
8860 typedef enum tagDCOM_CALL_STATE {
8862 DCOM_CALL_COMPLETE = 1,
8863 DCOM_CALL_CANCELED = 2
8866 /*****************************************************************************
8867 * IAsyncManager interface
8869 DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
8870 #if defined(__cplusplus) && !defined(CINTERFACE)
8871 struct IAsyncManager: IUnknown {
8873 virtual HRESULT CALLBACK CompleteCall(
8874 HRESULT Result) = 0;
8876 virtual HRESULT CALLBACK GetCallContext(
8878 void** pInterface) = 0;
8880 virtual HRESULT CALLBACK GetState(
8881 ULONG* pulStateFlags) = 0;
8883 } ICOM_COM_INTERFACE_ATTRIBUTE;
8885 typedef struct IAsyncManagerVtbl IAsyncManagerVtbl;
8886 struct IAsyncManager {
8887 const IAsyncManagerVtbl* lpVtbl;
8889 struct IAsyncManagerVtbl {
8890 ICOM_MSVTABLE_COMPAT_FIELDS
8892 /*** IUnknown methods ***/
8893 HRESULT (CALLBACK *QueryInterface)(
8894 IAsyncManager* This,
8898 ULONG (CALLBACK *AddRef)(
8899 IAsyncManager* This);
8901 ULONG (CALLBACK *Release)(
8902 IAsyncManager* This);
8904 /*** IAsyncManager methods ***/
8905 HRESULT (CALLBACK *CompleteCall)(
8906 IAsyncManager* This,
8909 HRESULT (CALLBACK *GetCallContext)(
8910 IAsyncManager* This,
8914 HRESULT (CALLBACK *GetState)(
8915 IAsyncManager* This,
8916 ULONG* pulStateFlags);
8920 #define IAsyncManager_IMETHODS \
8922 ICOM_METHOD1 (HRESULT,CompleteCall,HRESULT,Result) \
8923 ICOM_METHOD2 (HRESULT,GetCallContext,REFIID,riid,void**,pInterface) \
8924 ICOM_METHOD1 (HRESULT,GetState,ULONG*,pulStateFlags)
8926 /*** IUnknown methods ***/
8927 #define IAsyncManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
8928 #define IAsyncManager_AddRef(p) (p)->lpVtbl->AddRef(p)
8929 #define IAsyncManager_Release(p) (p)->lpVtbl->Release(p)
8930 /*** IAsyncManager methods ***/
8931 #define IAsyncManager_CompleteCall(p,a) (p)->lpVtbl->CompleteCall(p,a)
8932 #define IAsyncManager_GetCallContext(p,a,b) (p)->lpVtbl->GetCallContext(p,a,b)
8933 #define IAsyncManager_GetState(p,a) (p)->lpVtbl->GetState(p,a)
8937 HRESULT CALLBACK IAsyncManager_CompleteCall_Proxy(
8938 IAsyncManager* This,
8940 void __RPC_STUB IAsyncManager_CompleteCall_Stub(
8941 struct IRpcStubBuffer* This,
8942 struct IRpcChannelBuffer* pRpcChannelBuffer,
8943 PRPC_MESSAGE pRpcMessage,
8944 DWORD* pdwStubPhase);
8945 HRESULT CALLBACK IAsyncManager_GetCallContext_Proxy(
8946 IAsyncManager* This,
8949 void __RPC_STUB IAsyncManager_GetCallContext_Stub(
8950 struct IRpcStubBuffer* This,
8951 struct IRpcChannelBuffer* pRpcChannelBuffer,
8952 PRPC_MESSAGE pRpcMessage,
8953 DWORD* pdwStubPhase);
8954 HRESULT CALLBACK IAsyncManager_GetState_Proxy(
8955 IAsyncManager* This,
8956 ULONG* pulStateFlags);
8957 void __RPC_STUB IAsyncManager_GetState_Stub(
8958 struct IRpcStubBuffer* This,
8959 struct IRpcChannelBuffer* pRpcChannelBuffer,
8960 PRPC_MESSAGE pRpcMessage,
8961 DWORD* pdwStubPhase);
8966 #endif /* __WIDL_OBJIDL_H */