CComClassFactory选件类
此选件类实现 IClassFactory 接口。
class CComClassFactory : public IClassFactory,
public CComObjectRootEx< CComGlobalsThreadModel >
成员
公共方法
名称 |
说明 |
---|---|
创建指定的CLSID的对象。 |
|
锁定内存的选件类工厂。 |
备注
CComClassFactory 实现 IClassFactory 接口,包含创建的特定CLSID的对象的方法,以及锁定内存的选件类工厂使新的对象快速创建。必须为您在系统注册表中注册和给的每选件类实现IClassFactory 要分配CLSID。
ATL对象通过派生通常获取选件类工厂从 CComCoClass。此选件类包括宏 DECLARE_CLASSFACTORY,声明 CComClassFactory,在默认选件类工厂。若要重写此默认,指定 DECLARE_CLASSFACTORYXXX 宏之一在类定义中。例如,DECLARE_CLASSFACTORY_EX 宏来选件类工厂使用指定的选件类:
class ATL_NO_VTABLE CMyCustomClass :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMyCustomClass, &CLSID_MyCustomClass>,
public IDispatchImpl<IMyCustomClass, &IID_IMyCustomClass, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
DECLARE_CLASSFACTORY_EX(CMyClassFactory)
// Remainder of class declaration omitted.
上述类定义指定 CMyClassFactory 将用作对象的默认选件类工厂。CMyClassFactory 必须从 CComClassFactory 派生并重写 CreateInstance。
ATL提供声明选件类工厂的其他三宏:
DECLARE_CLASSFACTORY2 使用 CComClassFactory2,通过许可证创建的控件。
DECLARE_CLASSFACTORY_AUTO_THREAD 使用 CComClassFactoryAutoThread,在多个单元中创建对象。
DECLARE_CLASSFACTORY_SINGLETON 使用 CComClassFactorySingleton,构造一个 CComObjectGlobal 对象。
要求
Header: atlcom.h