1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef __REQUIRED_RPCNDR_H_VERSION__
7 #define __REQUIRED_RPCNDR_H_VERSION__ 475
8 #endif
9 
10 #include "rpc.h"
11 #include "rpcndr.h"
12 
13 #ifndef __RPCNDR_H_VERSION__
14 #error this stub requires an updated version of <rpcndr.h>
15 #endif
16 
17 #ifndef COM_NO_WINDOWS_H
18 #include "windows.h"
19 #include "ole2.h"
20 #endif
21 
22 #ifndef __callobj_h__
23 #define __callobj_h__
24 
25 #ifndef __ICallFrame_FWD_DEFINED__
26 #define __ICallFrame_FWD_DEFINED__
27 typedef struct ICallFrame ICallFrame;
28 #endif
29 
30 #ifndef __ICallIndirect_FWD_DEFINED__
31 #define __ICallIndirect_FWD_DEFINED__
32 typedef struct ICallIndirect ICallIndirect;
33 #endif
34 
35 #ifndef __ICallInterceptor_FWD_DEFINED__
36 #define __ICallInterceptor_FWD_DEFINED__
37 typedef struct ICallInterceptor ICallInterceptor;
38 #endif
39 
40 #ifndef __ICallFrameEvents_FWD_DEFINED__
41 #define __ICallFrameEvents_FWD_DEFINED__
42 typedef struct ICallFrameEvents ICallFrameEvents;
43 #endif
44 
45 #ifndef __ICallUnmarshal_FWD_DEFINED__
46 #define __ICallUnmarshal_FWD_DEFINED__
47 typedef struct ICallUnmarshal ICallUnmarshal;
48 #endif
49 
50 #ifndef __ICallFrameWalker_FWD_DEFINED__
51 #define __ICallFrameWalker_FWD_DEFINED__
52 typedef struct ICallFrameWalker ICallFrameWalker;
53 #endif
54 
55 #ifndef __IInterfaceRelated_FWD_DEFINED__
56 #define __IInterfaceRelated_FWD_DEFINED__
57 typedef struct IInterfaceRelated IInterfaceRelated;
58 #endif
59 
60 #include "oaidl.h"
61 
62 #ifdef __cplusplus
63 extern "C"{
64 #endif
65 
66 #ifndef __MIDL_user_allocate_free_DEFINED__
67 #define __MIDL_user_allocate_free_DEFINED__
68   void *__RPC_API MIDL_user_allocate(size_t);
69   void __RPC_API MIDL_user_free(void *);
70 #endif
71 
72   extern RPC_IF_HANDLE __MIDL_itf_callobj_0000_v0_0_c_ifspec;
73   extern RPC_IF_HANDLE __MIDL_itf_callobj_0000_v0_0_s_ifspec;
74 
75 #ifndef __ICallFrame_INTERFACE_DEFINED__
76 #define __ICallFrame_INTERFACE_DEFINED__
77 
78   typedef struct __MIDL_ICallFrame_0001 {
79     ULONG iMethod;
80     WINBOOL fHasInValues;
81     WINBOOL fHasInOutValues;
82     WINBOOL fHasOutValues;
83     WINBOOL fDerivesFromIDispatch;
84     LONG cInInterfacesMax;
85     LONG cInOutInterfacesMax;
86     LONG cOutInterfacesMax;
87     LONG cTopLevelInInterfaces;
88     IID iid;
89     ULONG cMethod;
90     ULONG cParams;
91   } CALLFRAMEINFO;
92 
93   typedef struct __MIDL_ICallFrame_0002 {
94     BOOLEAN fIn;
95     BOOLEAN fOut;
96     ULONG stackOffset;
97     ULONG cbParam;
98   } CALLFRAMEPARAMINFO;
99 
100   typedef enum __MIDL_ICallFrame_0003 {
101     CALLFRAME_COPY_NESTED = 1,CALLFRAME_COPY_INDEPENDENT = 2
102   } CALLFRAME_COPY;
103 
104   enum CALLFRAME_FREE {
105     CALLFRAME_FREE_NONE = 0,CALLFRAME_FREE_IN = 1,CALLFRAME_FREE_INOUT = 2,CALLFRAME_FREE_OUT = 4,CALLFRAME_FREE_TOP_INOUT = 8,
106     CALLFRAME_FREE_TOP_OUT = 16,CALLFRAME_FREE_ALL = 31
107   };
108 
109   enum CALLFRAME_NULL {
110     CALLFRAME_NULL_NONE = 0,CALLFRAME_NULL_INOUT = 2,CALLFRAME_NULL_OUT = 4,CALLFRAME_NULL_ALL = 6
111   };
112 
113   enum CALLFRAME_WALK {
114     CALLFRAME_WALK_IN = 1,CALLFRAME_WALK_INOUT = 2,CALLFRAME_WALK_OUT = 4
115   };
116 
117   typedef struct __MIDL_ICallFrame_0004 {
118     BOOLEAN fIn;
119     DWORD dwDestContext;
120     LPVOID pvDestContext;
121     IUnknown *punkReserved;
122     GUID guidTransferSyntax;
123   } CALLFRAME_MARSHALCONTEXT;
124 
125   EXTERN_C const IID IID_ICallFrame;
126 #if defined(__cplusplus) && !defined(CINTERFACE)
127   struct ICallFrame : public IUnknown {
128   public:
129     virtual HRESULT WINAPI GetInfo(CALLFRAMEINFO *pInfo) = 0;
130     virtual HRESULT WINAPI GetIIDAndMethod(IID *pIID,ULONG *piMethod) = 0;
131     virtual HRESULT WINAPI GetNames(LPWSTR *pwszInterface,LPWSTR *pwszMethod) = 0;
132     virtual PVOID WINAPI GetStackLocation(void) = 0;
133     virtual void WINAPI SetStackLocation(PVOID pvStack) = 0;
134     virtual void WINAPI SetReturnValue(HRESULT hr) = 0;
135     virtual HRESULT WINAPI GetReturnValue(void) = 0;
136     virtual HRESULT WINAPI GetParamInfo(ULONG iparam,CALLFRAMEPARAMINFO *pInfo) = 0;
137     virtual HRESULT WINAPI SetParam(ULONG iparam,VARIANT *pvar) = 0;
138     virtual HRESULT WINAPI GetParam(ULONG iparam,VARIANT *pvar) = 0;
139     virtual HRESULT WINAPI Copy(CALLFRAME_COPY copyControl,ICallFrameWalker *pWalker,ICallFrame **ppFrame) = 0;
140     virtual HRESULT WINAPI Free(ICallFrame *pframeArgsDest,ICallFrameWalker *pWalkerDestFree,ICallFrameWalker *pWalkerCopy,DWORD freeFlags,ICallFrameWalker *pWalkerFree,DWORD nullFlags) = 0;
141     virtual HRESULT WINAPI FreeParam(ULONG iparam,DWORD freeFlags,ICallFrameWalker *pWalkerFree,DWORD nullFlags) = 0;
142     virtual HRESULT WINAPI WalkFrame(DWORD walkWhat,ICallFrameWalker *pWalker) = 0;
143     virtual HRESULT WINAPI GetMarshalSizeMax(CALLFRAME_MARSHALCONTEXT *pmshlContext,MSHLFLAGS mshlflags,ULONG *pcbBufferNeeded) = 0;
144     virtual HRESULT WINAPI Marshal(CALLFRAME_MARSHALCONTEXT *pmshlContext,MSHLFLAGS mshlflags,PVOID pBuffer,ULONG cbBuffer,ULONG *pcbBufferUsed,RPCOLEDATAREP *pdataRep,ULONG *prpcFlags) = 0;
145     virtual HRESULT WINAPI Unmarshal(PVOID pBuffer,ULONG cbBuffer,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext,ULONG *pcbUnmarshalled) = 0;
146     virtual HRESULT WINAPI ReleaseMarshalData(PVOID pBuffer,ULONG cbBuffer,ULONG ibFirstRelease,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext) = 0;
147     virtual HRESULT WINAPI Invoke(void *pvReceiver,...) = 0;
148   };
149 #else
150   typedef struct ICallFrameVtbl {
151     BEGIN_INTERFACE
152       HRESULT (WINAPI *QueryInterface)(ICallFrame *This,REFIID riid,void **ppvObject);
153       ULONG (WINAPI *AddRef)(ICallFrame *This);
154       ULONG (WINAPI *Release)(ICallFrame *This);
155       HRESULT (WINAPI *GetInfo)(ICallFrame *This,CALLFRAMEINFO *pInfo);
156       HRESULT (WINAPI *GetIIDAndMethod)(ICallFrame *This,IID *pIID,ULONG *piMethod);
157       HRESULT (WINAPI *GetNames)(ICallFrame *This,LPWSTR *pwszInterface,LPWSTR *pwszMethod);
158       PVOID (WINAPI *GetStackLocation)(ICallFrame *This);
159       void (WINAPI *SetStackLocation)(ICallFrame *This,PVOID pvStack);
160       void (WINAPI *SetReturnValue)(ICallFrame *This,HRESULT hr);
161       HRESULT (WINAPI *GetReturnValue)(ICallFrame *This);
162       HRESULT (WINAPI *GetParamInfo)(ICallFrame *This,ULONG iparam,CALLFRAMEPARAMINFO *pInfo);
163       HRESULT (WINAPI *SetParam)(ICallFrame *This,ULONG iparam,VARIANT *pvar);
164       HRESULT (WINAPI *GetParam)(ICallFrame *This,ULONG iparam,VARIANT *pvar);
165       HRESULT (WINAPI *Copy)(ICallFrame *This,CALLFRAME_COPY copyControl,ICallFrameWalker *pWalker,ICallFrame **ppFrame);
166       HRESULT (WINAPI *Free)(ICallFrame *This,ICallFrame *pframeArgsDest,ICallFrameWalker *pWalkerDestFree,ICallFrameWalker *pWalkerCopy,DWORD freeFlags,ICallFrameWalker *pWalkerFree,DWORD nullFlags);
167       HRESULT (WINAPI *FreeParam)(ICallFrame *This,ULONG iparam,DWORD freeFlags,ICallFrameWalker *pWalkerFree,DWORD nullFlags);
168       HRESULT (WINAPI *WalkFrame)(ICallFrame *This,DWORD walkWhat,ICallFrameWalker *pWalker);
169       HRESULT (WINAPI *GetMarshalSizeMax)(ICallFrame *This,CALLFRAME_MARSHALCONTEXT *pmshlContext,MSHLFLAGS mshlflags,ULONG *pcbBufferNeeded);
170       HRESULT (WINAPI *Marshal)(ICallFrame *This,CALLFRAME_MARSHALCONTEXT *pmshlContext,MSHLFLAGS mshlflags,PVOID pBuffer,ULONG cbBuffer,ULONG *pcbBufferUsed,RPCOLEDATAREP *pdataRep,ULONG *prpcFlags);
171       HRESULT (WINAPI *Unmarshal)(ICallFrame *This,PVOID pBuffer,ULONG cbBuffer,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext,ULONG *pcbUnmarshalled);
172       HRESULT (WINAPI *ReleaseMarshalData)(ICallFrame *This,PVOID pBuffer,ULONG cbBuffer,ULONG ibFirstRelease,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext);
173       HRESULT (WINAPI *Invoke)(ICallFrame *This,void *pvReceiver,...);
174     END_INTERFACE
175   } ICallFrameVtbl;
176   struct ICallFrame {
177     CONST_VTBL struct ICallFrameVtbl *lpVtbl;
178   };
179 #ifdef COBJMACROS
180 #define ICallFrame_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
181 #define ICallFrame_AddRef(This) (This)->lpVtbl->AddRef(This)
182 #define ICallFrame_Release(This) (This)->lpVtbl->Release(This)
183 #define ICallFrame_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
184 #define ICallFrame_GetIIDAndMethod(This,pIID,piMethod) (This)->lpVtbl->GetIIDAndMethod(This,pIID,piMethod)
185 #define ICallFrame_GetNames(This,pwszInterface,pwszMethod) (This)->lpVtbl->GetNames(This,pwszInterface,pwszMethod)
186 #define ICallFrame_GetStackLocation(This) (This)->lpVtbl->GetStackLocation(This)
187 #define ICallFrame_SetStackLocation(This,pvStack) (This)->lpVtbl->SetStackLocation(This,pvStack)
188 #define ICallFrame_SetReturnValue(This,hr) (This)->lpVtbl->SetReturnValue(This,hr)
189 #define ICallFrame_GetReturnValue(This) (This)->lpVtbl->GetReturnValue(This)
190 #define ICallFrame_GetParamInfo(This,iparam,pInfo) (This)->lpVtbl->GetParamInfo(This,iparam,pInfo)
191 #define ICallFrame_SetParam(This,iparam,pvar) (This)->lpVtbl->SetParam(This,iparam,pvar)
192 #define ICallFrame_GetParam(This,iparam,pvar) (This)->lpVtbl->GetParam(This,iparam,pvar)
193 #define ICallFrame_Copy(This,copyControl,pWalker,ppFrame) (This)->lpVtbl->Copy(This,copyControl,pWalker,ppFrame)
194 #define ICallFrame_Free(This,pframeArgsDest,pWalkerDestFree,pWalkerCopy,freeFlags,pWalkerFree,nullFlags) (This)->lpVtbl->Free(This,pframeArgsDest,pWalkerDestFree,pWalkerCopy,freeFlags,pWalkerFree,nullFlags)
195 #define ICallFrame_FreeParam(This,iparam,freeFlags,pWalkerFree,nullFlags) (This)->lpVtbl->FreeParam(This,iparam,freeFlags,pWalkerFree,nullFlags)
196 #define ICallFrame_WalkFrame(This,walkWhat,pWalker) (This)->lpVtbl->WalkFrame(This,walkWhat,pWalker)
197 #define ICallFrame_GetMarshalSizeMax(This,pmshlContext,mshlflags,pcbBufferNeeded) (This)->lpVtbl->GetMarshalSizeMax(This,pmshlContext,mshlflags,pcbBufferNeeded)
198 #define ICallFrame_Marshal(This,pmshlContext,mshlflags,pBuffer,cbBuffer,pcbBufferUsed,pdataRep,prpcFlags) (This)->lpVtbl->Marshal(This,pmshlContext,mshlflags,pBuffer,cbBuffer,pcbBufferUsed,pdataRep,prpcFlags)
199 #define ICallFrame_Unmarshal(This,pBuffer,cbBuffer,dataRep,pcontext,pcbUnmarshalled) (This)->lpVtbl->Unmarshal(This,pBuffer,cbBuffer,dataRep,pcontext,pcbUnmarshalled)
200 #define ICallFrame_ReleaseMarshalData(This,pBuffer,cbBuffer,ibFirstRelease,dataRep,pcontext) (This)->lpVtbl->ReleaseMarshalData(This,pBuffer,cbBuffer,ibFirstRelease,dataRep,pcontext)
201 #define ICallFrame_Invoke(This,pvReceiver,...) (This)->lpVtbl->Invoke(This,pvReceiver,...)
202 #endif
203 #endif
204   HRESULT WINAPI ICallFrame_GetInfo_Proxy(ICallFrame *This,CALLFRAMEINFO *pInfo);
205   void __RPC_STUB ICallFrame_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
206   HRESULT WINAPI ICallFrame_GetIIDAndMethod_Proxy(ICallFrame *This,IID *pIID,ULONG *piMethod);
207   void __RPC_STUB ICallFrame_GetIIDAndMethod_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
208   HRESULT WINAPI ICallFrame_GetNames_Proxy(ICallFrame *This,LPWSTR *pwszInterface,LPWSTR *pwszMethod);
209   void __RPC_STUB ICallFrame_GetNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
210   PVOID WINAPI ICallFrame_GetStackLocation_Proxy(ICallFrame *This);
211   void __RPC_STUB ICallFrame_GetStackLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
212   void WINAPI ICallFrame_SetStackLocation_Proxy(ICallFrame *This,PVOID pvStack);
213   void __RPC_STUB ICallFrame_SetStackLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
214   void WINAPI ICallFrame_SetReturnValue_Proxy(ICallFrame *This,HRESULT hr);
215   void __RPC_STUB ICallFrame_SetReturnValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
216   HRESULT WINAPI ICallFrame_GetReturnValue_Proxy(ICallFrame *This);
217   void __RPC_STUB ICallFrame_GetReturnValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
218   HRESULT WINAPI ICallFrame_GetParamInfo_Proxy(ICallFrame *This,ULONG iparam,CALLFRAMEPARAMINFO *pInfo);
219   void __RPC_STUB ICallFrame_GetParamInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
220   HRESULT WINAPI ICallFrame_SetParam_Proxy(ICallFrame *This,ULONG iparam,VARIANT *pvar);
221   void __RPC_STUB ICallFrame_SetParam_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
222   HRESULT WINAPI ICallFrame_GetParam_Proxy(ICallFrame *This,ULONG iparam,VARIANT *pvar);
223   void __RPC_STUB ICallFrame_GetParam_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
224   HRESULT WINAPI ICallFrame_Copy_Proxy(ICallFrame *This,CALLFRAME_COPY copyControl,ICallFrameWalker *pWalker,ICallFrame **ppFrame);
225   void __RPC_STUB ICallFrame_Copy_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
226   HRESULT WINAPI ICallFrame_Free_Proxy(ICallFrame *This,ICallFrame *pframeArgsDest,ICallFrameWalker *pWalkerDestFree,ICallFrameWalker *pWalkerCopy,DWORD freeFlags,ICallFrameWalker *pWalkerFree,DWORD nullFlags);
227   void __RPC_STUB ICallFrame_Free_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
228   HRESULT WINAPI ICallFrame_FreeParam_Proxy(ICallFrame *This,ULONG iparam,DWORD freeFlags,ICallFrameWalker *pWalkerFree,DWORD nullFlags);
229   void __RPC_STUB ICallFrame_FreeParam_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
230   HRESULT WINAPI ICallFrame_WalkFrame_Proxy(ICallFrame *This,DWORD walkWhat,ICallFrameWalker *pWalker);
231   void __RPC_STUB ICallFrame_WalkFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
232   HRESULT WINAPI ICallFrame_GetMarshalSizeMax_Proxy(ICallFrame *This,CALLFRAME_MARSHALCONTEXT *pmshlContext,MSHLFLAGS mshlflags,ULONG *pcbBufferNeeded);
233   void __RPC_STUB ICallFrame_GetMarshalSizeMax_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
234   HRESULT WINAPI ICallFrame_Marshal_Proxy(ICallFrame *This,CALLFRAME_MARSHALCONTEXT *pmshlContext,MSHLFLAGS mshlflags,PVOID pBuffer,ULONG cbBuffer,ULONG *pcbBufferUsed,RPCOLEDATAREP *pdataRep,ULONG *prpcFlags);
235   void __RPC_STUB ICallFrame_Marshal_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
236   HRESULT WINAPI ICallFrame_Unmarshal_Proxy(ICallFrame *This,PVOID pBuffer,ULONG cbBuffer,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext,ULONG *pcbUnmarshalled);
237   void __RPC_STUB ICallFrame_Unmarshal_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
238   HRESULT WINAPI ICallFrame_ReleaseMarshalData_Proxy(ICallFrame *This,PVOID pBuffer,ULONG cbBuffer,ULONG ibFirstRelease,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext);
239   void __RPC_STUB ICallFrame_ReleaseMarshalData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
240   HRESULT WINAPI ICallFrame_Invoke_Proxy(ICallFrame *This,void *pvReceiver,...);
241   void __RPC_STUB ICallFrame_Invoke_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
242 #endif
243 
244 #ifndef __ICallIndirect_INTERFACE_DEFINED__
245 #define __ICallIndirect_INTERFACE_DEFINED__
246   EXTERN_C const IID IID_ICallIndirect;
247 #if defined(__cplusplus) && !defined(CINTERFACE)
248   struct ICallIndirect : public IUnknown {
249   public:
250     virtual HRESULT WINAPI CallIndirect(HRESULT *phrReturn,ULONG iMethod,void *pvArgs,ULONG *cbArgs) = 0;
251     virtual HRESULT WINAPI GetMethodInfo(ULONG iMethod,CALLFRAMEINFO *pInfo,LPWSTR *pwszMethod) = 0;
252     virtual HRESULT WINAPI GetStackSize(ULONG iMethod,ULONG *cbArgs) = 0;
253     virtual HRESULT WINAPI GetIID(IID *piid,WINBOOL *pfDerivesFromIDispatch,ULONG *pcMethod,LPWSTR *pwszInterface) = 0;
254   };
255 #else
256   typedef struct ICallIndirectVtbl {
257     BEGIN_INTERFACE
258       HRESULT (WINAPI *QueryInterface)(ICallIndirect *This,REFIID riid,void **ppvObject);
259       ULONG (WINAPI *AddRef)(ICallIndirect *This);
260       ULONG (WINAPI *Release)(ICallIndirect *This);
261       HRESULT (WINAPI *CallIndirect)(ICallIndirect *This,HRESULT *phrReturn,ULONG iMethod,void *pvArgs,ULONG *cbArgs);
262       HRESULT (WINAPI *GetMethodInfo)(ICallIndirect *This,ULONG iMethod,CALLFRAMEINFO *pInfo,LPWSTR *pwszMethod);
263       HRESULT (WINAPI *GetStackSize)(ICallIndirect *This,ULONG iMethod,ULONG *cbArgs);
264       HRESULT (WINAPI *GetIID)(ICallIndirect *This,IID *piid,WINBOOL *pfDerivesFromIDispatch,ULONG *pcMethod,LPWSTR *pwszInterface);
265     END_INTERFACE
266   } ICallIndirectVtbl;
267   struct ICallIndirect {
268     CONST_VTBL struct ICallIndirectVtbl *lpVtbl;
269   };
270 #ifdef COBJMACROS
271 #define ICallIndirect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
272 #define ICallIndirect_AddRef(This) (This)->lpVtbl->AddRef(This)
273 #define ICallIndirect_Release(This) (This)->lpVtbl->Release(This)
274 #define ICallIndirect_CallIndirect(This,phrReturn,iMethod,pvArgs,cbArgs) (This)->lpVtbl->CallIndirect(This,phrReturn,iMethod,pvArgs,cbArgs)
275 #define ICallIndirect_GetMethodInfo(This,iMethod,pInfo,pwszMethod) (This)->lpVtbl->GetMethodInfo(This,iMethod,pInfo,pwszMethod)
276 #define ICallIndirect_GetStackSize(This,iMethod,cbArgs) (This)->lpVtbl->GetStackSize(This,iMethod,cbArgs)
277 #define ICallIndirect_GetIID(This,piid,pfDerivesFromIDispatch,pcMethod,pwszInterface) (This)->lpVtbl->GetIID(This,piid,pfDerivesFromIDispatch,pcMethod,pwszInterface)
278 #endif
279 #endif
280   HRESULT WINAPI ICallIndirect_CallIndirect_Proxy(ICallIndirect *This,HRESULT *phrReturn,ULONG iMethod,void *pvArgs,ULONG *cbArgs);
281   void __RPC_STUB ICallIndirect_CallIndirect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
282   HRESULT WINAPI ICallIndirect_GetMethodInfo_Proxy(ICallIndirect *This,ULONG iMethod,CALLFRAMEINFO *pInfo,LPWSTR *pwszMethod);
283   void __RPC_STUB ICallIndirect_GetMethodInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
284   HRESULT WINAPI ICallIndirect_GetStackSize_Proxy(ICallIndirect *This,ULONG iMethod,ULONG *cbArgs);
285   void __RPC_STUB ICallIndirect_GetStackSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
286   HRESULT WINAPI ICallIndirect_GetIID_Proxy(ICallIndirect *This,IID *piid,WINBOOL *pfDerivesFromIDispatch,ULONG *pcMethod,LPWSTR *pwszInterface);
287   void __RPC_STUB ICallIndirect_GetIID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
288 #endif
289 
290 #ifndef __ICallInterceptor_INTERFACE_DEFINED__
291 #define __ICallInterceptor_INTERFACE_DEFINED__
292   EXTERN_C const IID IID_ICallInterceptor;
293 #if defined(__cplusplus) && !defined(CINTERFACE)
294   struct ICallInterceptor : public ICallIndirect {
295   public:
296     virtual HRESULT WINAPI RegisterSink(ICallFrameEvents *psink) = 0;
297     virtual HRESULT WINAPI GetRegisteredSink(ICallFrameEvents **ppsink) = 0;
298   };
299 #else
300   typedef struct ICallInterceptorVtbl {
301     BEGIN_INTERFACE
302       HRESULT (WINAPI *QueryInterface)(ICallInterceptor *This,REFIID riid,void **ppvObject);
303       ULONG (WINAPI *AddRef)(ICallInterceptor *This);
304       ULONG (WINAPI *Release)(ICallInterceptor *This);
305       HRESULT (WINAPI *CallIndirect)(ICallInterceptor *This,HRESULT *phrReturn,ULONG iMethod,void *pvArgs,ULONG *cbArgs);
306       HRESULT (WINAPI *GetMethodInfo)(ICallInterceptor *This,ULONG iMethod,CALLFRAMEINFO *pInfo,LPWSTR *pwszMethod);
307       HRESULT (WINAPI *GetStackSize)(ICallInterceptor *This,ULONG iMethod,ULONG *cbArgs);
308       HRESULT (WINAPI *GetIID)(ICallInterceptor *This,IID *piid,WINBOOL *pfDerivesFromIDispatch,ULONG *pcMethod,LPWSTR *pwszInterface);
309       HRESULT (WINAPI *RegisterSink)(ICallInterceptor *This,ICallFrameEvents *psink);
310       HRESULT (WINAPI *GetRegisteredSink)(ICallInterceptor *This,ICallFrameEvents **ppsink);
311     END_INTERFACE
312   } ICallInterceptorVtbl;
313   struct ICallInterceptor {
314     CONST_VTBL struct ICallInterceptorVtbl *lpVtbl;
315   };
316 #ifdef COBJMACROS
317 #define ICallInterceptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
318 #define ICallInterceptor_AddRef(This) (This)->lpVtbl->AddRef(This)
319 #define ICallInterceptor_Release(This) (This)->lpVtbl->Release(This)
320 #define ICallInterceptor_CallIndirect(This,phrReturn,iMethod,pvArgs,cbArgs) (This)->lpVtbl->CallIndirect(This,phrReturn,iMethod,pvArgs,cbArgs)
321 #define ICallInterceptor_GetMethodInfo(This,iMethod,pInfo,pwszMethod) (This)->lpVtbl->GetMethodInfo(This,iMethod,pInfo,pwszMethod)
322 #define ICallInterceptor_GetStackSize(This,iMethod,cbArgs) (This)->lpVtbl->GetStackSize(This,iMethod,cbArgs)
323 #define ICallInterceptor_GetIID(This,piid,pfDerivesFromIDispatch,pcMethod,pwszInterface) (This)->lpVtbl->GetIID(This,piid,pfDerivesFromIDispatch,pcMethod,pwszInterface)
324 #define ICallInterceptor_RegisterSink(This,psink) (This)->lpVtbl->RegisterSink(This,psink)
325 #define ICallInterceptor_GetRegisteredSink(This,ppsink) (This)->lpVtbl->GetRegisteredSink(This,ppsink)
326 #endif
327 #endif
328   HRESULT WINAPI ICallInterceptor_RegisterSink_Proxy(ICallInterceptor *This,ICallFrameEvents *psink);
329   void __RPC_STUB ICallInterceptor_RegisterSink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
330   HRESULT WINAPI ICallInterceptor_GetRegisteredSink_Proxy(ICallInterceptor *This,ICallFrameEvents **ppsink);
331   void __RPC_STUB ICallInterceptor_GetRegisteredSink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
332 #endif
333 
334 #ifndef __ICallFrameEvents_INTERFACE_DEFINED__
335 #define __ICallFrameEvents_INTERFACE_DEFINED__
336   EXTERN_C const IID IID_ICallFrameEvents;
337 #if defined(__cplusplus) && !defined(CINTERFACE)
338   struct ICallFrameEvents : public IUnknown {
339   public:
340     virtual HRESULT WINAPI OnCall(ICallFrame *pFrame) = 0;
341   };
342 #else
343   typedef struct ICallFrameEventsVtbl {
344     BEGIN_INTERFACE
345       HRESULT (WINAPI *QueryInterface)(ICallFrameEvents *This,REFIID riid,void **ppvObject);
346       ULONG (WINAPI *AddRef)(ICallFrameEvents *This);
347       ULONG (WINAPI *Release)(ICallFrameEvents *This);
348       HRESULT (WINAPI *OnCall)(ICallFrameEvents *This,ICallFrame *pFrame);
349     END_INTERFACE
350   } ICallFrameEventsVtbl;
351   struct ICallFrameEvents {
352     CONST_VTBL struct ICallFrameEventsVtbl *lpVtbl;
353   };
354 #ifdef COBJMACROS
355 #define ICallFrameEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
356 #define ICallFrameEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
357 #define ICallFrameEvents_Release(This) (This)->lpVtbl->Release(This)
358 #define ICallFrameEvents_OnCall(This,pFrame) (This)->lpVtbl->OnCall(This,pFrame)
359 #endif
360 #endif
361   HRESULT WINAPI ICallFrameEvents_OnCall_Proxy(ICallFrameEvents *This,ICallFrame *pFrame);
362   void __RPC_STUB ICallFrameEvents_OnCall_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
363 #endif
364 
365 #ifndef __ICallUnmarshal_INTERFACE_DEFINED__
366 #define __ICallUnmarshal_INTERFACE_DEFINED__
367   EXTERN_C const IID IID_ICallUnmarshal;
368 #if defined(__cplusplus) && !defined(CINTERFACE)
369   struct ICallUnmarshal : public IUnknown {
370   public:
371     virtual HRESULT WINAPI Unmarshal(ULONG iMethod,PVOID pBuffer,ULONG cbBuffer,WINBOOL fForceBufferCopy,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext,ULONG *pcbUnmarshalled,ICallFrame **ppFrame) = 0;
372     virtual HRESULT WINAPI ReleaseMarshalData(ULONG iMethod,PVOID pBuffer,ULONG cbBuffer,ULONG ibFirstRelease,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext) = 0;
373   };
374 #else
375   typedef struct ICallUnmarshalVtbl {
376     BEGIN_INTERFACE
377       HRESULT (WINAPI *QueryInterface)(ICallUnmarshal *This,REFIID riid,void **ppvObject);
378       ULONG (WINAPI *AddRef)(ICallUnmarshal *This);
379       ULONG (WINAPI *Release)(ICallUnmarshal *This);
380       HRESULT (WINAPI *Unmarshal)(ICallUnmarshal *This,ULONG iMethod,PVOID pBuffer,ULONG cbBuffer,WINBOOL fForceBufferCopy,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext,ULONG *pcbUnmarshalled,ICallFrame **ppFrame);
381       HRESULT (WINAPI *ReleaseMarshalData)(ICallUnmarshal *This,ULONG iMethod,PVOID pBuffer,ULONG cbBuffer,ULONG ibFirstRelease,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext);
382     END_INTERFACE
383   } ICallUnmarshalVtbl;
384   struct ICallUnmarshal {
385     CONST_VTBL struct ICallUnmarshalVtbl *lpVtbl;
386   };
387 #ifdef COBJMACROS
388 #define ICallUnmarshal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
389 #define ICallUnmarshal_AddRef(This) (This)->lpVtbl->AddRef(This)
390 #define ICallUnmarshal_Release(This) (This)->lpVtbl->Release(This)
391 #define ICallUnmarshal_Unmarshal(This,iMethod,pBuffer,cbBuffer,fForceBufferCopy,dataRep,pcontext,pcbUnmarshalled,ppFrame) (This)->lpVtbl->Unmarshal(This,iMethod,pBuffer,cbBuffer,fForceBufferCopy,dataRep,pcontext,pcbUnmarshalled,ppFrame)
392 #define ICallUnmarshal_ReleaseMarshalData(This,iMethod,pBuffer,cbBuffer,ibFirstRelease,dataRep,pcontext) (This)->lpVtbl->ReleaseMarshalData(This,iMethod,pBuffer,cbBuffer,ibFirstRelease,dataRep,pcontext)
393 #endif
394 #endif
395   HRESULT WINAPI ICallUnmarshal_Unmarshal_Proxy(ICallUnmarshal *This,ULONG iMethod,PVOID pBuffer,ULONG cbBuffer,WINBOOL fForceBufferCopy,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext,ULONG *pcbUnmarshalled,ICallFrame **ppFrame);
396   void __RPC_STUB ICallUnmarshal_Unmarshal_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
397   HRESULT WINAPI ICallUnmarshal_ReleaseMarshalData_Proxy(ICallUnmarshal *This,ULONG iMethod,PVOID pBuffer,ULONG cbBuffer,ULONG ibFirstRelease,RPCOLEDATAREP dataRep,CALLFRAME_MARSHALCONTEXT *pcontext);
398   void __RPC_STUB ICallUnmarshal_ReleaseMarshalData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
399 #endif
400 
401 #ifndef __ICallFrameWalker_INTERFACE_DEFINED__
402 #define __ICallFrameWalker_INTERFACE_DEFINED__
403   EXTERN_C const IID IID_ICallFrameWalker;
404 #if defined(__cplusplus) && !defined(CINTERFACE)
405   struct ICallFrameWalker : public IUnknown {
406   public:
407     virtual HRESULT WINAPI OnWalkInterface(REFIID iid,PVOID *ppvInterface,WINBOOL fIn,WINBOOL fOut) = 0;
408   };
409 #else
410   typedef struct ICallFrameWalkerVtbl {
411     BEGIN_INTERFACE
412       HRESULT (WINAPI *QueryInterface)(ICallFrameWalker *This,REFIID riid,void **ppvObject);
413       ULONG (WINAPI *AddRef)(ICallFrameWalker *This);
414       ULONG (WINAPI *Release)(ICallFrameWalker *This);
415       HRESULT (WINAPI *OnWalkInterface)(ICallFrameWalker *This,REFIID iid,PVOID *ppvInterface,WINBOOL fIn,WINBOOL fOut);
416     END_INTERFACE
417   } ICallFrameWalkerVtbl;
418   struct ICallFrameWalker {
419     CONST_VTBL struct ICallFrameWalkerVtbl *lpVtbl;
420   };
421 #ifdef COBJMACROS
422 #define ICallFrameWalker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
423 #define ICallFrameWalker_AddRef(This) (This)->lpVtbl->AddRef(This)
424 #define ICallFrameWalker_Release(This) (This)->lpVtbl->Release(This)
425 #define ICallFrameWalker_OnWalkInterface(This,iid,ppvInterface,fIn,fOut) (This)->lpVtbl->OnWalkInterface(This,iid,ppvInterface,fIn,fOut)
426 #endif
427 #endif
428   HRESULT WINAPI ICallFrameWalker_OnWalkInterface_Proxy(ICallFrameWalker *This,REFIID iid,PVOID *ppvInterface,WINBOOL fIn,WINBOOL fOut);
429   void __RPC_STUB ICallFrameWalker_OnWalkInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
430 #endif
431 
432 #ifndef __IInterfaceRelated_INTERFACE_DEFINED__
433 #define __IInterfaceRelated_INTERFACE_DEFINED__
434   EXTERN_C const IID IID_IInterfaceRelated;
435 #if defined(__cplusplus) && !defined(CINTERFACE)
436   struct IInterfaceRelated : public IUnknown {
437   public:
438     virtual HRESULT WINAPI SetIID(REFIID iid) = 0;
439     virtual HRESULT WINAPI GetIID(IID *piid) = 0;
440   };
441 #else
442   typedef struct IInterfaceRelatedVtbl {
443     BEGIN_INTERFACE
444       HRESULT (WINAPI *QueryInterface)(IInterfaceRelated *This,REFIID riid,void **ppvObject);
445       ULONG (WINAPI *AddRef)(IInterfaceRelated *This);
446       ULONG (WINAPI *Release)(IInterfaceRelated *This);
447       HRESULT (WINAPI *SetIID)(IInterfaceRelated *This,REFIID iid);
448       HRESULT (WINAPI *GetIID)(IInterfaceRelated *This,IID *piid);
449     END_INTERFACE
450   } IInterfaceRelatedVtbl;
451   struct IInterfaceRelated {
452     CONST_VTBL struct IInterfaceRelatedVtbl *lpVtbl;
453   };
454 #ifdef COBJMACROS
455 #define IInterfaceRelated_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
456 #define IInterfaceRelated_AddRef(This) (This)->lpVtbl->AddRef(This)
457 #define IInterfaceRelated_Release(This) (This)->lpVtbl->Release(This)
458 #define IInterfaceRelated_SetIID(This,iid) (This)->lpVtbl->SetIID(This,iid)
459 #define IInterfaceRelated_GetIID(This,piid) (This)->lpVtbl->GetIID(This,piid)
460 #endif
461 #endif
462   HRESULT WINAPI IInterfaceRelated_SetIID_Proxy(IInterfaceRelated *This,REFIID iid);
463   void __RPC_STUB IInterfaceRelated_SetIID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
464   HRESULT WINAPI IInterfaceRelated_GetIID_Proxy(IInterfaceRelated *This,IID *piid);
465   void __RPC_STUB IInterfaceRelated_GetIID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
466 #endif
467 
468 #define CALLFRAME_E_ALREADYINVOKED _HRESULT_TYPEDEF_(0x8004d090)
469 #define CALLFRAME_E_COULDNTMAKECALL _HRESULT_TYPEDEF_(0x8004d091)
470 
471   extern RPC_IF_HANDLE __MIDL_itf_callobj_0122_v0_0_c_ifspec;
472   extern RPC_IF_HANDLE __MIDL_itf_callobj_0122_v0_0_s_ifspec;
473 
474 #ifndef __ICallFrameAPIs_INTERFACE_DEFINED__
475 #define __ICallFrameAPIs_INTERFACE_DEFINED__
476   HRESULT WINAPI CoGetInterceptor(REFIID iidIntercepted,IUnknown *punkOuter,REFIID iid,void **ppv);
477   HRESULT WINAPI CoGetInterceptorFromTypeInfo(REFIID iidIntercepted,IUnknown *punkOuter,ITypeInfo *typeInfo,REFIID iid,void **ppv);
478 
479   extern RPC_IF_HANDLE ICallFrameAPIs_v0_0_c_ifspec;
480   extern RPC_IF_HANDLE ICallFrameAPIs_v0_0_s_ifspec;
481 #endif
482 
483 #ifdef __cplusplus
484 }
485 #endif
486 #endif
487