有一个接口IMotoCar的方法:
GetHeader(/*[out,retval]*/IHeader **Header)
这个方法中要返回另一个接口IHeader,该怎么办?

解决方案 »

  1.   

    已有的接口指针->AddRef();
    *Header = 已有的接口指针;
      

  2.   

    谢谢.
    我照您的做法去试了,可以,但是还是有一些小问题。
    接口IHeader用类CHeader实现
    class CHeader:public IHeader......
    {
    ....
    STDMETHOD(get_ID)(/*[out, retval]*/ long *pVal);
    STDMETHOD(put_ID)(/*[in]*/ long newVal);
    private:
    long m_ID;
    }
    接口IMotoCar 用类CMotoCar实现
    class CMotoCar:public IMotoCar......
    {
    ....
    STDMETHOD(get_Header)(/*[out, retval]*/ IHeader **pVal);
    STDMETHOD(put_Header)(/*[in]*/ IHeader *newVal);
    private:
    IHeader *m_pHeader;
    }
    然后我在VB中创建了一个Header对象h1和MotoCar对象,调用IMotoCar的put_Header赋值,又创建一个Header对象h2并用get_Header得到先前的Header对象,这时我发现,h1和h2完全不一样了,这是怎么回事?