Home | History | Annotate | Download | only in include
      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