rt,谢谢 

解决方案 »

  1.   

    类似于
    HRESULT CA::QueryInterface(const IID& iid,void** ppv) 

        if(iid==IID_IUnknown) 
        { 
            *ppv=static_cast<IX*>(this); 
         } 
        else if(iid==IID_IX) 
        { 
            *ppv=static_cast<IX*>(this); 
         }         
        else if(iid==IID_IY) 
        { 
            *ppv=static_cast<IY*>(this); 
         }     
        else 
        { 
            *ppv=NULL; 
            return E_NOINTERFACE; 
         }     
         static_cast<IUnknown*>(*ppv)->AddRef(); 
        return S_OK; 

      

  2.   

    ls的:QueryInterface是总是要返回this吗? 还是说,可以返回别的一个什么东西,但是要保证所有return的都是一个指针?那如果是这样的话,直接一句return this不就行了,干嘛还要switch/case呢,好像不必要啊。hehe
      

  3.   

    同问,是必须都要返回this吗? 这样的话switch/case确实觉得多余,一个return this就行了。谢谢
      

  4.   

    不一定,也可能返回成员的this。看你咋实现的对象。