首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CoGetClassObject内部原理解决方案

2012-03-23 
CoGetClassObject内部原理书上说CoGetClassObject通过调用DllGetClassObject实现返回要求的接口指针,但是

CoGetClassObject内部原理
书上说CoGetClassObject通过调用DllGetClassObject实现返回要求的接口指针,但是比如下面的一个例程中,在Client中通过调用CoGetClassObject(CLSID_XXX,CLSCTX_SERVER,NULL,IID_IClassFactory,(void**)&pFactory);
可以正确返回类工厂指针,如果修改IID_IClassFactory则返回错误。但是DllGetClassObject中并没有对IID_IClassFactory的判断,请教原因!
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void** ppObject)
{
if(rclsid==CLSID_XXX)
{
CS_Factory* pf=new CS_Factory;
if(FAILED(pf->QueryInterface(riid, ppObject)))
{
delete pf;
*ppObject=NULL;
return E_INVALIDARG;
}
}
else
return CLASS_E_CLASSNOTAVAILABLE;
return NO_ERROR;
}


[解决办法]
那是个接口吧?自然应该在QueryInterface里判断,怎么炮这儿判断?

热点排行