struct IRemUnknownVtbl{
HRESULT (__stdcall *RemQueryInterface)
(
_GUID ripid,
unsigned long cRefs,
unsigned short cIids,
_GUID* iids,
tagREMQIRESULT** ppQIResults
);
HRESULT (__stdcall *RemAddRef)
(
unsigned short cInterfaceRefs,
tagREMINTERFACEREF InterfaceRefs[],
HRESULT* pResults
);
HRESULT (__stdcall *RemRelease)
(
unsigned short cInterfaceRefs,
tagREMINTERFACEREF InterfaceRefs[]
);
};
struct IRemUnknownVtbl2
{
HRESULT (__stdcall *RemQueryInterface2)(_GUID ripid, unsigned int cRefs,_GUID *iids ,HRESULT *phr, tagMInterfacePointer **ppMIF);
HRESULT (__stdcall *RemAddRef)(unsigned __int16 cInterfaceRefs, tagREMINTERFACEREF InterfaceRefs[], HRESULT *pResults);
HRESULT (__stdcall *RemRelease)(unsigned __int16 cInterfaceRefs, tagREMINTERFACEREF InterfaceRefs[]);
};
struct tagMInterfacePointer
{
ULONG ulCntData;
BYTE abData[];
}
struct IUnknownVtbl
{
HRESULT (__stdcall *QueryInterface)(IUnknown *this, _GUID *, void **);
unsigned int (__stdcall *AddRef)(IUnknown *this);
unsigned int (__stdcall *Release)(IUnknown *this);
};
struct tagREMQIRESULT {
HRESULT hResult;
tagSTDOBJREF std;
};
struct IRemUnknown
{
IRemUnknownVtbl *vfptr;
};
struct __cppobj IMarshal : IUnknown
{
};
struct IMarshalVtbl
{
HRESULT (__stdcall *GetUnmarshalClass)(
_GUID riid,
void *pv,
DWORD dwDestContext,
void *pvDestContext,
DWORD mshlflags,
_GUID *pCid) ;
HRESULT (__stdcall *GetMarshalSizeMax)(
_GUID riid,
void *pv,
DWORD dwDestContext,
void *pvDestContext,
DWORD mshlflags,
DWORD *pSize) ;
HRESULT (__stdcall *MarshalInterface)(
IStream *pStm,
_GUID riid,
void *pv,
DWORD dwDestContext,
void *pvDestContext,
DWORD mshlflags) ;
HRESULT (__stdcall *UnmarshalInterface)(
IStream *pStm,
_GUID riid,
void **ppv) ;
HRESULT (__stdcall *ReleaseMarshalData)(
IStream *pStm) ;
HRESULT (__stdcall *DisconnectObject)(
DWORD dwReserved);
};
struct IMarshal
{
IMarshalVtbl *vfptr;
};
ypedef struct tagSTDOBJREF
{
unsigned long flags;
unsigned long cPublicRefs;
_GUID oxid;
_GUID oid;
_GUID ipid;
}
com逆向结构
最新推荐文章于 2023-06-23 14:45:48 发布