com逆向结构

       
       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;        
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值