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
, AddRef
usw 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 IUnknown
IInspectable
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 iids
zurü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();