com中类厂创建组件对象一问
因为客户程序不可能知道组件的类名字,所以要通过类厂来创建组件对象。
可是我觉得在dll的导出函数DllGetClassObject中不创建类厂对象,而是直接创建组件对象,好像也是可以的。这样就不需要类厂了。
extern "C" HRESULT __stdcall DllGetClassObject(const CLSID& clsid, const IID& iid, void **ppv)
{
if (clsid == CLSID_Dictionary )
{
//CDictionaryFactory *pFactory = new CDictionaryFactory;
CDictionary *pObj=new CDictionary();//直接创建组件对象
if (pObj == NULL)
{
return E_OUTOFMEMORY ;
}
// HRESULT result = pFactory->QueryInterface(iid, ppv);
return 0;//result;
}
else
{
return CLASS_E_CLASSNOTAVAILABLE;
}
}
我的理解那里不对啊?
请各位指教。