winrt::Windows::Foundation::IUnknown-Struktur (C++/WinRT)
Jede C++/WinRT-Runtimeklasse (unabhängig davon, ob es sich um eine Windows- oder eine Drittanbieterlaufzeitklasse handelt) wird von winrt::Windows::Foundation::IUnknown abgeleitet. Sie stellt die COM IUnknown-Schnittstelle dar und bietet Funktionen wie Abfragen einer anderen Schnittstelle, abi-Funktionen und Vergleichsoperatoren.
Syntax
struct IUnknown
Requirements (Anforderungen)
Mindestens unterstütztes SDK: Windows SDK Version 10.0.17134.0 (Windows 10, Version 1803)
Namespace: winrt
Header: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (standardmäßig enthalten)
Konstruktoren
Konstruktor | BESCHREIBUNG |
---|---|
IUnknown::IUnknown-Konstruktor | Initialisiert eine neue instance der IUnknown-Struktur, optional mit einer Kopie oder Verschiebung der Eingabedaten. |
Memberfunktionen
Funktion | BESCHREIBUNG |
---|---|
IUnknown::as-Funktion | Gibt die angeforderte Schnittstelle zurück, wenn sie unterstützt wird. Löst aus, wenn dies nicht der Fehler ist. |
IUnknown::try_as-Funktion | Gibt die angeforderte Schnittstelle zurück, wenn sie unterstützt wird. Gibt null zurück, oder false , wenn dies nicht der Wert ist. |
Memberoperatoren
Operator | BESCHREIBUNG |
---|---|
IUnknown::operator bool | Überprüft, ob das IUnknown-Objekt auf eine Schnittstelle verweist. |
IUnknown::operator= (Zuweisungsoperator) | Weist dem IUnknown-Objekt einen Wert zu. |
Kostenlose Funktionen
Funktion | BESCHREIBUNG |
---|---|
attach_abi-Funktion | Fügt ein IUnknown-Objekt an einen unformatierten Zeiger an, der einen Verweis auf das Ziel besitzt; ein zusätzlicher Verweis wird nicht hinzugefügt. |
copy_from_abi-Funktion | Kopiert aus einem anderen Zeiger in ein IUnknown-Objekt . Verringert die Verweisanzahl für alle derzeit referenzierten Schnittstellen oder Objekte, kopiert den unformatierten Zeigerparameter und beginnt mit der Verwaltung der Lebensdauer der Schnittstelle oder des Objekts, auf das bzw. das diese verweist. |
copy_to_abi-Funktion | Kopiert aus einem IUnknown-Objekt in einen anderen Zeiger. Erhöht die Verweisanzahl für alle derzeit referenzierten Schnittstellen oder Objekte und kopiert die Speicheradresse dieser Schnittstelle oder des Objekts in den Parameter. |
detach_abi-Funktion | Trennt sich von der rohen IUnknown-Schnittstelle , ohne die Verweisanzahl zu verringern, z. B. um sie an einen Aufrufer zurückzugeben. |
get_abi-Funktion | Gibt den zugrunde liegenden unformatierten IUnknown-Schnittstellenzeiger zurück, wenn Sie ihn an eine Funktion übergeben müssen. |
get_unknown-Funktion | Eine Hilfsfunktion, die die Adresse der zugrunde liegenden unformatierten IUnknown-Schnittstelle eines Objekts eines projizierten Typs zurückgibt. |
put_abi-Funktion | Gibt die Adresse des zugrunde liegenden unformatierten IUnknown-Schnittstellenzeigers als Zeiger auf einen Zeiger auf void zurück. Diese Funktion unterstützt Sie beim Aufrufen von Methoden (z. B. COM-Methoden), die Verweise als Out-Parameter über einen Zeiger auf einen Zeiger auf void zurückgeben. |
swap-Funktion | Wechselt den Inhalt der beiden IUnknown-Parameter , sodass sie auf das Ziel des anderen zeigen. |
Kostenlose Operatoren
Funktion | BESCHREIBUNG |
---|---|
operator!= (Ungleichheitsoperator) | Gibt einen Wert zurück, der angibt, ob die beiden Parameter auf unterschiedliche Ziele verweisen. |
Operator< (Kleiner-als-Operator) | Gibt einen Wert zurück, der angibt, ob das Ziel des ersten Parameters früher im Arbeitsspeicher vorkommt als das des zweiten Parameters. |
operator<= (kleiner-als-oder-gleich-Operator) | Gibt einen Wert zurück, der angibt, ob das Ziel des ersten Parameters früher im Arbeitsspeicher auftritt als oder am selben Speicherort wie der zweite Parameter. |
operator== (Gleichheitsoperator) | Gibt einen Wert zurück, der angibt, ob die beiden Parameter auf dieselbe Schnittstelle und/oder ein Objekt verweisen. |
Operator> (Größer-als-Operator) | Gibt einen Wert zurück, der angibt, ob das Ziel des ersten Parameters später im Arbeitsspeicher auftritt als das des zweiten Parameters. |
operator>= (größer-als-oder-gleich-operator) | Gibt einen Wert zurück, der angibt, ob das Ziel des ersten Parameters später im Arbeitsspeicher oder an der gleichen Stelle wie der zweite Parameter auftritt. |
IUnknown::IUnknown-Konstruktor
Initialisiert eine neue instance der IUnknown-Struktur, optional mit einer Kopie oder Verschiebung der Eingabedaten.
Syntax
IUnknown() noexcept;
IUnknown(std::nullptr_t) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown const& other) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown&& other) noexcept;
Parameter
other
Ein weiterer IUnknown , der das IUnknown-Objekt initialisiert.
IUnknown::as-Funktion
Gibt die angeforderte Schnittstelle zurück, wenn sie unterstützt wird. Löst aus, wenn dies nicht der Fehler ist. Diese Funktion ist nützlich, wenn Sie eine Schnittstelle abfragen möchten, die Sie nicht an Ihren Aufrufer zurückgeben müssen.
Syntax
template <typename To> auto as() const;
template <typename To> void as(To& to) const;
Vorlagenparameter
typename To
Der Typ der angeforderten Schnittstelle.
Parameter
to
Ein Verweis auf einen Wert, der die angeforderte Schnittstelle empfangen soll.
Rückgabewert
Ein com_ptr , der auf die angeforderte Schnittstelle verweist, oder ein stark typisierter intelligenter Zeiger für die angeforderte Schnittstelle (entweder von C++/WinRT oder von einem Drittanbieter deklariert).
IUnknown::try_as-Funktion
Gibt die angeforderte Schnittstelle zurück, wenn sie unterstützt wird. Gibt null
zurück (die auto
-rückgabende Überladung) oder false
(die bool
-returning-Überladung), falls nicht. Diese Funktion ist nützlich, wenn Sie eine Schnittstelle abfragen möchten, die Sie nicht an Ihren Aufrufer zurückgeben müssen.
Syntax
template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;
Vorlagenparameter
typename To
Der Typ der angeforderten Schnittstelle.
Parameter
to
Ein Verweis auf einen Wert, der die angeforderte Schnittstelle empfangen soll. Kann ein NULL-Verweis sein.
Rückgabewert
Ein com_ptr , der auf die angeforderte Schnittstelle verweist, oder ein stark typisierter intelligenter Zeiger für die angeforderte Schnittstelle (entweder von C++/WinRT oder von einem Drittanbieter deklariert), wenn die angeforderte Schnittstelle unterstützt wird, andernfalls null
(die auto
-rückgabende Überladung) oder false
(die bool
-returning-Überladung).
Wenn to
ein NULL-Verweis ist, wird oder false
zurückgegebennull
.
IUnknown::operator bool
Überprüft, ob das IUnknown-Objekt auf eine Schnittstelle verweist. Wenn das IUnknown-Objekt nicht auf eine Schnittstelle verweist, ist es logisch NULL. Andernfalls ist er logisch nicht NULL.
Syntax
explicit operator bool() const noexcept;
Rückgabewert
true
, wenn das IUnknown-Objekt auf eine Schnittstelle verweist (logisch nicht NULL), andernfalls false
(logisch NULL).
IUnknown::operator= (Zuweisungsoperator)
Weist dem IUnknown-Objekt einen Wert zu.
Syntax
winrt::Windows::Foundation::IUnknown& operator=(winrt::Windows::Foundation::IUnknown const& other) noexcept;
winrt::Windows::Foundation::IUnknown& operator=(winrt::Windows::Foundation::IUnknown&& other) noexcept;
winrt::Windows::Foundation::IUnknown& operator=(std::nullptr_t) noexcept;
Parameter
other
Ein IUnknown-Wert , der dem IUnknown-Objekt entweder durch Kopieren oder Verschieben zugewiesen werden soll.
Rückgabewert
Ein Verweis auf das IUnknown-Objekt .
attach_abi-Funktion
Fügt ein IUnknown-Objekt an einen unformatierten Zeiger an, der einen Verweis auf sein Ziel besitzt; ein zusätzlicher Verweis wird nicht hinzugefügt. Bei Bedarf können Sie diese Funktion zum Zusammenfügen von Verweisen verwenden.
Syntax
void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameter
object
Ein IUnknown-Wert , mit dem ausgeführt werden soll.
value
Ein unformatierter Zeiger, der einen Verweis auf sein Ziel besitzt.
copy_from_abi-Funktion
Kopiert ein IUnknown-Objekt von einem anderen Zeiger. Verringert die Verweisanzahl für jede aktuell referenzierte Schnittstelle oder jedes Objekt, kopiert den unformatierten Zeigerparameter und beginnt mit der Verwaltung der Lebensdauer der Schnittstelle oder des Objekts, auf die sie verweist.
Syntax
void copy_from_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameter
object
Ein IUnknown-Wert , mit dem ausgeführt werden soll.
value
Ein roher Zeiger auf ein Ziel, dessen Lebensdauer vom IUnknown-Objekt verwaltet werden soll.
copy_to_abi-Funktion
Kopiert von einem IUnknown-Objekt auf einen anderen Zeiger. Erhöht die Verweisanzahl für alle derzeit referenzierten Schnittstellen oder Objekte und kopiert diese Schnittstelle oder die Speicheradresse des Objekts in den Parameter. Mit dieser Funktion können Sie einen Verweis auf dieselbe Schnittstelle verteilen, ohne QueryInterface aufzurufen.
Syntax
void copy_to_abi(winrt::Windows::Foundation::IUnknown const& object, void*& value) noexcept;
Parameter
object
Ein IUnknown-Wert , mit dem ausgeführt werden soll.
value
Ein roher Zeigerverweis; über die der Zeiger auf das Ziel des IUnknown-Objekts kopiert werden soll.
detach_abi-Funktion
Trennt ein IUnknown-Objekt von seiner unformatierten IUnknown-Schnittstelle , ohne die Verweisanzahl zu verringern, z. B. um es an einen Aufrufer zurückzugeben.
Syntax
void* detach_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
void* detach_abi(winrt::Windows::Foundation::IUnknown&& object) noexcept;
Parameter
object
Ein IUnknown-Wert , mit dem ausgeführt werden soll.
Rückgabewert
Ein Zeiger auf die unformatierte IUnknown-Schnittstelle , auf die das IUnknown-Objekt verweist.
get_abi-Funktion
Gibt den zugrunde liegenden unformatierten IUnknown-Schnittstellenzeiger zurück, falls Sie ihn an eine Funktion übergeben müssen. Sie können AddRef, Release oder QueryInterface für den zurückgegebenen Zeiger aufrufen.
Syntax
void* get_abi(winrt::Windows::Foundation::IUnknown const& object) noexcept;
Parameter
object
Ein IUnknown-Wert , mit dem ausgeführt werden soll.
Rückgabewert
Ein Zeiger auf die unformatierte IUnknown-Schnittstelle , auf die das IUnknown-Objekt verweist.
operator!= (Ungleichheitsoperator)
Gibt einen Wert zurück, der angibt, ob die beiden Parameter auf unterschiedliche Ziele verweisen.
Syntax
bool operator!=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameter
left
right
Ein IUnknown-Wert , dessen Speicheradresse des Ziels mit der des anderen Parameters verglichen werden soll.
Rückgabewert
true
, wenn die beiden Parameter auf unterschiedliche Ziele verweisen, andernfalls false
.
Operator< (kleiner als Operator)
Gibt einen Wert zurück, der angibt, ob das Ziel des ersten Parameters früher im Arbeitsspeicher vorkommt als das des zweiten Parameters.
Syntax
bool operator<(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameter
left
right
Ein IUnknown-Wert , dessen Speicheradresse des Ziels mit der des anderen Parameters verglichen werden soll.
Rückgabewert
true
, wenn die Speicheradresse des ziels des ersten Parameters kleiner als die des zweiten Parameters ist, andernfalls false
.
operator<= (kleiner-als-oder-gleich-Operator)
Gibt einen Wert zurück, der angibt, ob das Ziel des ersten Parameters früher im Arbeitsspeicher oder am selben Speicherort wie der des zweiten Parameters auftritt.
Syntax
bool operator<=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameter
left
right
Ein IUnknown-Wert , dessen Speicheradresse des Ziels mit der des anderen Parameters verglichen werden soll.
Rückgabewert
true
, wenn die Speicheradresse des ziels des ersten Parameters kleiner oder gleich der adresse des zweiten Parameters ist, andernfalls false
.
operator== (Gleichheitsoperator)
Gibt einen Wert zurück, der angibt, ob die beiden Parameter auf dieselbe Schnittstelle und/oder dasselbe Objekt verweisen.
Syntax
bool operator==(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameter
left
right
Ein IUnknown-Wert , dessen Speicheradresse des Ziels mit der des anderen Parameters verglichen werden soll.
Rückgabewert
true
, wenn die beiden Parameter auf dasselbe Ziel verweisen, andernfalls false
.
Operator> (größer als Operator)
Gibt einen Wert zurück, der angibt, ob das Ziel des ersten Parameters später im Arbeitsspeicher als das des zweiten Parameters auftritt.
Syntax
bool operator>(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameter
left
right
Ein IUnknown-Wert , dessen Speicheradresse des Ziels mit der des anderen Parameters verglichen werden soll.
Rückgabewert
true
, wenn die Speicheradresse des ersten Parameters größer als die des zweiten Parameters ist, andernfalls false
.
operator>= (größer als-oder-gleich-operator)
Gibt einen Wert zurück, der angibt, ob das Ziel des ersten Parameters später im Arbeitsspeicher oder an der gleichen Stelle wie der zweite Parameter auftritt.
Syntax
bool operator>=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameter
left
right
Ein IUnknown-Wert , dessen Speicheradresse des Ziels mit der des anderen Parameters verglichen werden soll.
Rückgabewert
true
, wenn die Speicheradresse des ersten Parameters größer oder gleich der des zweiten Parameters ist, andernfalls false
.
put_abi-Funktion
Gibt die Adresse des zugrunde liegenden unformatierten IUnknown-Schnittstellenzeigers als Zeiger auf einen Zeiger auf void zurück. Diese Funktion unterstützt Sie beim Aufrufen von Methoden (z. B. COM-Methoden), die Verweise als Ausgangsparameter über einen Zeiger auf einen Zeiger auf void zurückgeben.
Syntax
void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
Parameter
object
Ein IUnknown-Wert , mit dem ausgeführt werden soll.
Rückgabewert
Die Adresse des zugrunde liegenden unformatierten IUnknown-Schnittstellenzeigers .
swap-Funktion
Tauscht den Inhalt der beiden IUnknown-Parameter so aus, dass sie auf das Ziel des anderen zeigen.
Syntax
void swap(winrt::Windows::Foundation::IUnknown& left, winrt::Windows::Foundation::IUnknown& right) noexcept;
Parameter
left
right
Ein IUnknown-Wert , dessen Zeiger sich gegenseitig mit dem des anderen Parameters austauschen soll.
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für