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;};