类厂的IUnknown?
a_ray 2001-10-01 12:14:34 以下摘自《inside com》第七章:
//com对象
HRESULT __stdcall CA::QueryInterface(const IID& iid, void** ppv)
{
if (iid == IID_IUnknown)
{
*ppv = static_cast<IX*>(this) ;
}
...
}
//类厂
HRESULT __stdcall CFactory::QueryInterface(const IID& iid, void** ppv)
{
if ((iid == IID_IUnknown) || (iid == IID_IClassFactory))
{
*ppv = static_cast<IClassFactory*>(this) ;
}
...
}
岂不是对类厂和com对象分别查询IUnknown会得到不同结果