ClassFactory-Klasse
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.