Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 CComClassFactorySingletonCComObjectGlobal 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 CComClassFactorySingletondas 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 CComClassFactorySingletonCComObjectGlobal 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