Teilen über


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.