Klasa CComClassFactory
Ta klasa implementuje IClassFactory interfejsu.
class CComClassFactory : public IClassFactory,
public CComObjectRootEx< CComGlobalsThreadModel >
Członkowie
Metody publiczne
Nazwa |
Opis |
---|---|
Tworzy obiekt określony identyfikator CLSID. |
|
Blokuje fabryki klasy w pamięci. |
Uwagi
CComClassFactoryimplementuje IClassFactory interfejs, który zawiera metody tworzenia obiektu określonego identyfikatora CLSID, jak również blokowanie fabryki klasy w pamięci, aby zezwolić na nowe obiekty do utworzenia szybciej.IClassFactory musi być zaimplementowana dla każdej klasy, która zarejestrowana w rejestrze systemu i które przypisać identyfikatora CLSID.
Zwykle obiekty ATL nabyć Fabryczna klasa przez wynikających z CComCoClass.Klasa ta obejmuje makro DECLARE_CLASSFACTORY, która deklaruje CComClassFactory jako fabryczna Klasa domyślna.Aby zastąpić to domyślne, należy określić jeden z DECLARE_CLASSFACTORYXXX makr w definicji klasy użytkownika.Na przykład DECLARE_CLASSFACTORY_EX makro używa określonej klasy fabryki klasy:
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.
Określa, że definicja klasy CMyClassFactory będzie używany jako obiekt domyślnej klasy fabrycznej.CMyClassFactory musi pochodzić od CComClassFactory i zastąpić CreateInstance.
ATL zawiera trzy makra deklarujące fabryki klasy:
DECLARE_CLASSFACTORY2 używa CComClassFactory2, który kontroluje tworzenie za pomocą licencji.
DECLARE_CLASSFACTORY_AUTO_THREAD używa CComClassFactoryAutoThread, który tworzy w apartamenty wielu obiektów.
DECLARE_CLASSFACTORY_SINGLETON używa CComClassFactorySingleton, który tworzy jeden CComObjectGlobal obiektu.
Wymagania
Nagłówek: atlcom.h