请edyang,vcmfc,iamafraid,horris,EGE等大虾(呵呵,排名不分先后)来看看 QueryInterface的问题
HWLee 2001-06-26 06:15:45 我的com组件友三个接口:IFoo1,IFoo2,IFoo3。
如果分别用CoCreateInstance(CLSID_FooX,NULL,CLSCTX_INPROC_SERVER,
IID_IFooX,(void **) &pFooX);可以得到pFoo1,pFoo2,pFoo3指针。
但如果得到pFoo1后:
IFoo2 * pFoo2;
IFoo3 * pFoo3;
HRESULT hr = pFoo1->QueryInterface(IID_IFoo2,(void **) &pFoo2);
HRESULT hr = pFoo1->QueryInterface(IID_IFoo3,(void **) &pFoo3);
却得不到pFoo2和pFoo3指针。pFoo2,pFoo3均为NULL。
IUnknown * pUnknown;
HRESULT hr = pFoo1->QueryInterface(IID_IUnknown,(void **) &pUnknown);
可以得到pUnknown指针。为什么呀!
请高手指点.......