CComClassFactory-Klasse
Diese Klasse implementiert die Schnittstelle IClassFactory.
class CComClassFactory : public IClassFactory,
public CComObjectRootEx< CComGlobalsThreadModel >
Mitglieder
Öffentliche Methoden
Name |
Description |
---|---|
Erstellt ein Objekt des angegebenen CLSID. |
|
Sperrt die Klassenfactory im Arbeitsspeicher. |
Hinweise
CComClassFactoryIClassFactory implementiert die Schnittstelle, die Methoden zum Erstellen eines Objekts eines bestimmten CLSID enthält, sowie die Klassenfactory im Arbeitsspeicher, um schneller erstellt werden sperrt Objekte zu ermöglichen die neuen.IClassFactory muss für jede Klasse implementiert werden, in der Sie in der Systemregistrierung registrieren und, zu dem Sie einem CLSID zuweisen.
ATL-Objekte rufen normalerweise eine Klassenfactory ab, indem von CComCoClass berechnen.Diese Klasse enthält das Makro DECLARE_CLASSFACTORY, das CComClassFactory als Standardklassenfactory deklariert.Um diesen Standard zu überschreiben, geben Sie eines der Makros DECLARE_CLASSFACTORYXXX in der Klassendefinition.Zum Beispiel verwendet das DECLARE_CLASSFACTORY_EX-Makro die angegebene Klasse für die Klassenfactory:
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.
Die oben aufgeführte Klassendefinition gibt an, dass CMyClassFactory als die Standardklassenfactory des Objekts verwendet wird.CMyClassFactory muss von CComClassFactory ableiten und CreateInstance überschreiben.
ATL stellt drei weitere Makros, die eine Klassenfactory deklarieren:
DECLARE_CLASSFACTORY2 verwendet CComClassFactory2, das Erstellen von eine Lizenz steuert.
DECLARE_CLASSFACTORY_AUTO_THREAD verwendet CComClassFactoryAutoThread, das Objekte in mehreren Apartments erstellt.
DECLARE_CLASSFACTORY_SINGLETON verwendet CComClassFactorySingleton, das ein einzelnes CComObjectGlobal-Objekt erstellt.
Anforderungen
Header: möchten