CComClassFactorySingleton-Klasse
Diese Klasse wird von CComClassFactory abgeleitet und verwendet CComObjectGlobal , um ein einzelnes Objekt zu erstellen.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
template<class T>
class CComClassFactorySingleton : public CComClassFactory
Parameter
T
Ihr Kurs.
CComClassFactorySingleton
abgeleitet von CComClassFactory und verwendet CComObjectGlobal , um ein einzelnes Objekt zu erstellen. Jeder Aufruf der CreateInstance
Methode fragt dieses Objekt einfach nach einem Schnittstellenzeiger ab.
Member
Öffentliche Methoden
Name | Beschreibung |
---|---|
CComClassFactorySingleton::CreateInstance | Fragt m_spObj nach einem Schnittstellenzeiger ab. |
Öffentliche Datenmember
Name | Beschreibung |
---|---|
CComClassFactorySingleton::m_spObj | Das von CComClassFactorySingleton CComObjectGlobal erstellte Objekt . |
Hinweise
ATL-Objekte erwerben normalerweise eine Klassenfactory, indem sie von CComCoClass abgeleitet wird. Diese Klasse enthält das Makro DECLARE_CLASSFACTORY, das als Standardklassenfactory deklariert wird CComClassFactory
. Geben Sie zum Verwenden CComClassFactorySingleton
das DECLARE_CLASSFACTORY_SINGLETON Makro in der Klassendefinition des Objekts an. Zum Beispiel:
class ATL_NO_VTABLE CMySingletonClass :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMySingletonClass, &CLSID_MySingletonClass>,
public IMySingletonClass
{
public:
DECLARE_CLASSFACTORY_SINGLETON(CMySingletonClass)
// Remainder of class declaration omitted.
Vererbungshierarchie
CComObjectRootBase
IClassFactory
CComClassFactorySingleton
Anforderungen
Kopfzeile: atlcom.h
CComClassFactorySingleton::CreateInstance
Aufrufe QueryInterface
über m_spObj zum Abrufen eines Schnittstellenzeigers.
STDMETHOD(CreateInstance)(LPUNKNOWN pUnkOuter, REFIID riid, void** ppvObj);
Parameter
pUnkOuter
[in] Wenn das Objekt als Teil eines Aggregats erstellt wird, muss "pUnkOuter " das äußere Unbekannte sein. Andernfalls muss "pUnkOuter" NULL sein.
riid
[in] Die IID der angeforderten -Schnittstelle. Wenn pUnkOuter ungleich NULL ist, muss riid sein IID_IUnknown
.
ppvObj
[out] Ein Zeiger auf den Schnittstellenzeiger, der von riid identifiziert wird. Wenn das Objekt diese Schnittstelle nicht unterstützt, wird ppvObj auf NULL festgelegt.
Rückgabewert
Ein HRESULT-Standardwert.
CComClassFactorySingleton::m_spObj
Das von CComClassFactorySingleton
CComObjectGlobal erstellte Objekt .
CComPtr<IUnknown> m_spObj;
Hinweise
Jeder Aufruf der CreateInstance-Methode fragt dieses Objekt einfach nach einem Schnittstellenzeiger ab.
Beachten Sie, dass die aktuelle Form der m_spObj
Darstellung einer unterbrechungsweisen Änderung von der Funktionsweise CComClassFactorySingleton
in früheren Versionen von ATL stammt. In früheren Versionen wurde das CComClassFactorySingleton
Objekt gleichzeitig mit der Klassenfactory erstellt, während der Serverinitialisierung. In Visual C++.NET 2003 und höher wird das Objekt in der ersten Anforderung lazily erstellt. Diese Änderung kann zu Fehlern in Programmen führen, die auf einer frühen Initialisierung basieren.
Siehe auch
IClassFactory
CComClassFactory2-Klasse
CComClassFactoryAutoThread-Klasse
CComObjectRootEx-Klasse
CComGlobalsThreadModel
Klassenübersicht