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.
Implementiert die grundlegende Funktion der IClassFactory
-Schnittstelle.
Syntax
template <
typename I0 = Details::Nil,
typename I1 = Details::Nil,
typename I2 = Details::Nil
>
class ClassFactory :
public Details::RuntimeClass<
typename Details::InterfaceListHelper<
IClassFactory,
I0,
I1,
I2,
Details::Nil
>::TypeT,
RuntimeClassFlags<ClassicCom | InhibitWeakReference>,
false
>;
Parameter
I0
Die Null-Schnittstelle.
I1
Die erste Schnittstelle.
I2
Die zweite Schnittstelle.
Hinweise
Wird ClassFactory
verwendet, um eine benutzerdefinierte Factoryimplementierung bereitzustellen.
Das folgende Programmiermuster veranschaulicht die Verwendung der Implements-Struktur , um mehr als drei Schnittstellen in einer Klassenfactory anzugeben.
struct MyFactory : ClassFactory<Implements<I1, I2, I3>, I4, I5>
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
ClassFactory::ClassFactory |
Öffentliche Methoden
Name | Beschreibung |
---|---|
ClassFactory::AddRef | Erhöht die Referenzanzahl für das aktuelle ClassFactory Objekt. |
ClassFactory::LockServer | Erhöht oder erhöht die Anzahl der zugrunde liegenden Objekte, die vom aktuellen ClassFactory Objekt nachverfolgt werden. |
ClassFactory::QueryInterface | Ruft einen Zeiger auf die durch parameter angegebene Schnittstelle ab. |
ClassFactory::Release | Erhöht die Referenzanzahl für das aktuelle ClassFactory Objekt. |
Vererbungshierarchie
I0
ChainInterfaces
I0
RuntimeClassBase
ImplementsHelper
DontUseNewUseMake
RuntimeClassFlags
RuntimeClassBaseT
RuntimeClass
ClassFactory
Anforderungen
Kopfzeile: module.h
Namespace: Microsoft::WRL
ClassFactory::AddRef
Erhöht die Referenzanzahl für das aktuelle ClassFactory
Objekt.
STDMETHOD_(
ULONG,
AddRef
)();
Rückgabewert
„S_OK“ im Erfolgsfall, andernfalls ein HRESULT, das den Fehler beschreibt.
ClassFactory::ClassFactory
WRL_NOTHROW ClassFactory();
ClassFactory::LockServer
Erhöht oder erhöht die Anzahl der zugrunde liegenden Objekte, die vom aktuellen ClassFactory
Objekt nachverfolgt werden.
STDMETHOD(
LockServer
)(BOOL fLock);
Parameter
Herde
true
um die Anzahl der nachverfolgten Objekte zu erhöhen. false
um die Anzahl der nachverfolgten Objekte zu erhöhen.
Rückgabewert
bei erfolgreicher Ausführung S_OK; andernfalls E_FAIL.
Hinweise
ClassFactory
verfolgt Objekte in einer zugrunde liegenden Instanz der Module-Klasse nach.
ClassFactory::QueryInterface
Ruft einen Zeiger auf die durch parameter angegebene Schnittstelle ab.
STDMETHOD(
QueryInterface
)(REFIID riid, _Deref_out_ void **ppvObject);
Parameter
riid
Eine Schnittstellen-ID.
ppvObject
Wenn dieser Vorgang abgeschlossen ist, zeigt ein Zeiger auf die schnittstelle, die durch Parameter riid angegeben wird.
Rückgabewert
„S_OK“ im Erfolgsfall, andernfalls ein HRESULT, das den Fehler beschreibt.
ClassFactory::Release
Erhöht die Referenzanzahl für das aktuelle ClassFactory
Objekt.
STDMETHOD_(
ULONG,
Release
)();
Rückgabewert
„S_OK“ im Erfolgsfall, andernfalls ein HRESULT, das den Fehler beschreibt.