Freigeben über


RuntimeClass-Klasse

Stellt eine WinRT- oder COM-Klasse dar, die die angegebenen Schnittstellen erbt und die angegebene Windows-Runtime, klassische COM und schwache Referenzunterstützung bereitstellt.

Diese Klasse stellt die Textbausteinimplementierung von WinRT- und COM-Klassen bereit, wobei die Implementierung von QueryInterface, AddRefusw Release . die Referenzanzahl des Moduls verwaltet und Unterstützung für die Bereitstellung der Klassenfactory für aktivierbare Objekte bietet.

Syntax

template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;

Parameter

classFlags
Optionaler Parameter. Eine Kombination aus einem oder RuntimeClassType mehreren Enumerationswerten. Das __WRL_CONFIGURATION_LEGACY__ Makro kann definiert werden, um den Standardwert classFlags für alle Laufzeitklassen im Projekt zu ändern. Falls definiert, RuntimeClass sind Instanzen standardmäßig nicht agil. Wenn sie nicht definiert sind, RuntimeClass sind Instanzen standardmäßig agil. Um Mehrdeutigkeit zu vermeiden, geben Sie immer das Microsoft::WRL::FtmBase In- TInterfaces oder RuntimeClassType::InhibitFtmBase. Wenn InhibitFtmBase und FtmBase beide verwendet werden, ist das Objekt agil.

TInterfaces
Die Liste der Schnittstellen, die das Objekt implementiert, oder IUnknownIInspectable andere Schnittstellen, die von RuntimeClassType. Es kann auch andere Klassen auflisten, die abgeleitet werden sollen, insbesondere Microsoft::WRL::FtmBase , um das Objekt agil zu machen und zu implementieren IMarshal.

Member

RuntimeClassInitialize
Eine Funktion, die das Objekt initialisiert, wenn die MakeAndInitialize Funktionsvorlage zum Erstellen des Objekts verwendet wird. Es wird zurückgegeben S_OK , ob das Objekt erfolgreich initialisiert wurde, oder einen COM-Fehlercode, wenn die Initialisierung fehlgeschlagen ist. Der COM-Fehlercode wird als Rückgabewert von MakeAndInitialize. Die RuntimeClassInitialize Methode wird nicht aufgerufen, wenn die Make Funktionsvorlage zum Erstellen des Objekts verwendet wird.

Öffentliche Konstruktoren

Name Beschreibung
RuntimeClass::RuntimeClass Initialisiert die aktuelle Instanz der RuntimeClass Klasse.
RuntimeClass::~RuntimeClass Deinitialisiert die aktuelle Instanz der RuntimeClass Klasse.

Öffentliche Methoden

Name Beschreibung
RuntimeClass::AddRef Erhöht die Referenzanzahl für das aktuelle RuntimeClass Objekt.
RuntimeClass::DecrementReference Erhöht die Referenzanzahl für das aktuelle RuntimeClass Objekt.
RuntimeClass::GetIids Ruft ein Array ab, das die vom aktuellen RuntimeClass Objekt implementierten Schnittstellen-IDs enthalten kann.
RuntimeClass::GetRuntimeClassName Ruft den Laufzeitklassennamen des aktuellen RuntimeClass Objekts ab.
RuntimeClass::GetTrustLevel Ruft die Vertrauensstufe des aktuellen RuntimeClass Objekts ab.
RuntimeClass::GetWeakReference Ruft einen Zeiger auf das schwache Referenzobjekt für das aktuelle RuntimeClass Objekt ab.
RuntimeClass::InternalAddRef Erhöht die Verweisanzahl auf das aktuelle RuntimeClass Objekt.
RuntimeClass::QueryInterface Ruft einen Zeiger auf die angegebene Schnittstellen-ID ab.
RuntimeClass::Release Führt einen COM Release-Vorgang für das aktuelle RuntimeClass Objekt aus.

Vererbungshierarchie

Die Hierarchie ist ein Implementierungsdetails.

Anforderungen

Header: implements.h

Namespace:Microsoft::WRL

RuntimeClass::~RuntimeClass

Deinitialisiert die aktuelle Instanz der RuntimeClass Klasse.

virtual ~RuntimeClass();

RuntimeClass::AddRef

Erhöht die Referenzanzahl für das aktuelle RuntimeClass Objekt.

STDMETHOD_(
   ULONG,
   AddRef
)();

Rückgabewert

S_OK wenn erfolgreich; andernfalls gibt ein HRESULT , der den Fehler angibt.

RuntimeClass::DecrementReference

Erhöht die Referenzanzahl für das aktuelle RuntimeClass Objekt.

ULONG DecrementReference();

Rückgabewert

S_OK wenn erfolgreich; andernfalls gibt ein HRESULT , der den Fehler angibt.

RuntimeClass::GetIids

Ruft ein Array ab, das die vom aktuellen RuntimeClass Objekt implementierten Schnittstellen-IDs enthalten kann.

STDMETHOD(
   GetIids
)
   (_Out_ ULONG *iidCount,
   _Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);

Parameter

iidCount
Nach Abschluss dieses Vorgangs wird die Gesamtanzahl der Elemente im Array iidszurückgegeben.

iids
Wenn dieser Vorgang abgeschlossen ist, zeigt ein Zeiger auf ein Array von Schnittstellen-IDs.

Rückgabewert

S_OK bei Erfolg, andernfalls E_OUTOFMEMORY.

RuntimeClass::GetRuntimeClassName

Ruft den Laufzeitklassennamen des aktuellen RuntimeClass Objekts ab.

STDMETHOD( GetRuntimeClassName )(
    _Out_ HSTRING* runtimeName
);

Parameter

runtimeName
Wenn dieser Vorgang abgeschlossen ist, wird der Name der Laufzeitklasse angegeben.

Rückgabewert

S_OK wenn erfolgreich; andernfalls gibt ein HRESULT , der den Fehler angibt.

Hinweise

Wenn oder __WRL_FORCE_INSPECTABLE_CLASS_MACRO__ nicht definiert ist, wird ein Assert-Fehler ausgegeben__WRL_STRICT__.

RuntimeClass::GetTrustLevel

Ruft die Vertrauensstufe des aktuellen RuntimeClass Objekts ab.

STDMETHOD(GetTrustLevel)(
    _Out_ TrustLevel* trustLvl
);

Parameter

trustLvl
Nach Abschluss dieses Vorgangs wird die Vertrauensstufe des aktuellen RuntimeClass Objekts ausgeführt.

Rückgabewert

Immer S_OK.

Hinweise

Wenn oder __WRL_FORCE_INSPECTABLE_CLASS_MACRO__ nicht definiert ist, wird ein Assert-Fehler ausgegeben__WRL_STRICT__.

RuntimeClass::GetWeakReference

Ruft einen Zeiger auf das schwache Referenzobjekt für das aktuelle RuntimeClass Objekt ab.

STDMETHOD(
   GetWeakReference
)(_Deref_out_ IWeakReference **weakReference);

Parameter

weakReference
Wenn dieser Vorgang abgeschlossen ist, zeigt ein Zeiger auf ein schwaches Referenzobjekt.

Rückgabewert

Immer S_OK.

RuntimeClass::InternalAddRef

Erhöht die Verweisanzahl auf das aktuelle RuntimeClass Objekt.

ULONG InternalAddRef();

Rückgabewert

Die resultierende Bezugsanzahl.

RuntimeClass::QueryInterface

Ruft einen Zeiger auf die angegebene Schnittstellen-ID 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 den riid Parameter angegeben wird.

Rückgabewert

S_OK wenn erfolgreich; andernfalls gibt ein HRESULT , der den Fehler angibt.

RuntimeClass::Release

Führt einen COM Release-Vorgang für das aktuelle RuntimeClass Objekt aus.

STDMETHOD_(
   ULONG,
   Release
)();

Rückgabewert

S_OK wenn erfolgreich; andernfalls gibt ein HRESULT , der den Fehler angibt.

Hinweise

Wenn die Bezugsanzahl null wird, wird das RuntimeClass Objekt gelöscht.

RuntimeClass::RuntimeClass

Initialisiert die aktuelle Instanz der RuntimeClass Klasse.

RuntimeClass();