CComClassFactory 類別
這個類別會實作介面 IClassFactory 。
class CComClassFactory : public IClassFactory,
public CComObjectRootEx< CComGlobalsThreadModel >
Members
公用方法
名稱 |
描述 |
---|---|
建立指定的 CLSID 的物件。 |
|
鎖定在記憶體的 Class Factory。 |
備註
CComClassFactory 實作 IClassFactory 介面,包含建立的特定 CLSID 物件的方法,以及鎖定在記憶體的 Class Factory 可以快速建立新的物件。必須為您在系統登錄中,而對的每個類別實作IClassFactory 已指派 CLSID。
ATL 物件以下列方式通常是安全的 Class Factory。 CComCoClass。這個類別包含巨集 DECLARE_CLASSFACTORY,宣告 CComClassFactory 做為預設的 Class Factory。若要覆寫這項預設,請指定 DECLARE_CLASSFACTORYXXX 巨集是在您的類別定義。例如, DECLARE_CLASSFACTORY_EX 巨集為 Class Factory 會使用指定的類別:
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 就會做為物件的預設 Class Factory。CMyClassFactory 必須從 CComClassFactory 衍生並覆寫 CreateInstance。
ATL 提供宣告 Class Factory 的其他三個巨集:
DECLARE_ CLASSFACTORY2 使用 CComClassFactory2,透過授權控制項建立。
DECLARE_CLASSFACTORY_AUTO_THREAD 使用 CComClassFactoryAutoThread,建立多個 Apartment 內的物件。
DECLARE_CLASSFACTORY_SINGLETON 使用 CComClassFactorySingleton,建構 CComObjectGlobal 單一物件。
需求
Header: atlcom.h