1 简介
- 类厂:用于创建COM对象的COM对象
- 目标:完成COM对象的创建过程,更好地把客户与对象隔离开来。
- 特殊性:实现一个或多个创建接口,缺省的接口为IClassFactory, 类厂本身没有CLSID
类厂与COM对象一一对应
2 获取类厂指针
HRESULT DllGetClassObject(
const CLSID& clsid, # COM对象的CLSID
const IID& iid, # 客户提供, 一般写IID_IClassFactory就可以了
(void **)ppv # 工厂指针, 先声明IClassFactory* pcf = NULL; 然后把 (LPVOID*)&pcf 传到这个函数里
);
3 类厂接口
class IClassFactory : public IUnknown
{
virtual HRESULT __stdcall CreateInstance(IUnknown *pUnknownOuter, const IID& iid, void **ppv) = 0;
virtual HRESULT __stdcall LockServer(BOOL bLock) = 0;
};