其中的一种方法:
CComObject<CRecord>* irec=NULL;
HRESULT hRes = CComObject<CRecord>::CreateInstance(&irec);
irec->InitData(100); 

解决方案 »

  1.   

    如果我现在得到了 CComObject<CRecord>* irec 中的值我现在如果从 irec 得到 **IRecord呢?
      

  2.   

    能象这样吗?
      **IRecord=*irec
      

  3.   

    你是说想得到IRecord的实例指针,没必要吧,IRecord是虚类,不能实例化,若想调用IRecord里的接口方法,用irec->方法名就可以了
      

  4.   

    你是想实例化IRecord吗,没必要吧,并且IRecord是纯虚基类,不能实例化,创建的irec就是IRecord的实例
      

  5.   

    STDMETHOD(CreateRecord)(/*[in]*/short s,/*[out]*/IRecord **pp)
    {
    CComObject<CRecord>* irec=NULL;
    HRESULT hRes = CComObject<CRecord>::CreateInstance(&irec);
    irec->InitData(100); 
    **pp=*irec;//是这样写吗?}
      

  6.   

    你要实现这样的功能,可以换一种方式,IRecord作为输入参数,如[in]IRecord* irec,在客户端创建实例,在实现里直接用irec->InitData(100); 即可
      

  7.   

    可我现在 不需要在客户端调用 irec->InitData(100); 
    这个 irec->InitData() 要在COM里实现我怎么才能 返回 CComObject<CRecord>* irec 到 IRECORD** pp 呢?
      

  8.   

    可我现在 不需要在客户端调用 irec->InitData(100); 
    这个 irec->InitData() 要在COM里实现我怎么才能 返回 CComObject<CRecord>* irec 到 IRECORD** pp 呢?
      

  9.   

    我的意思你没理解,irec->InitData(100); 写在COM的CreateRecord的实现里,想返回接口指针可试一下QueryInterface,我们试过
      

  10.   

    怎么给不了分? CSDN 有问题了?