winrt::Windows::Foundation::IUnknown struct (C++/WinRT)
Jede C++/WinRT-Laufzeitklasse (ob eine Windows- oder eine Drittanbieter-Laufzeitklasse) wird von winrt::Windows::Foundation::IUnknownabgeleitet. Sie stellt die COM-IUnknown--Schnittstelle dar und bietet Funktionen wie Abfragen für eine andere Schnittstelle, abi-Funktionen und Vergleichsoperatoren.
Syntax
struct IUnknown
Anforderungen
Mindestens unterstützte 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)
Erbauer
Konstruktor | Beschreibung |
---|---|
IUnknown::IUnknown-Konstruktor | Initialisiert eine neue Instanz des IUnknown Struktur, optional mit einer Kopie oder einem Verschieben 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 oder false zurück, wenn dies nicht der Fehler ist. |
Memberoperatoren
Operator | Beschreibung |
---|---|
IUnknown::operator bool | Überprüft, ob das IUnknown--Objekt auf eine Schnittstelle verweist. |
IUnknown::operator= (Zuordnungsoperator) | 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 sein Ziel besitzt; Ein zusätzlicher Verweis wird nicht hinzugefügt. |
copy_from_abi Funktion | Kopiert ein IUnknown- -Objekt von einem anderen Zeiger. Erhöht die Referenzanzahl 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 die bzw. das darauf verweist. |
copy_to_abi Funktion | Kopiert einen anderen Zeiger aus einem IUnknown--Objekt. Erhöht die Referenzanzahl für alle aktuell referenzierten Schnittstellen oder Objekte und kopiert die Speicheradresse dieser Schnittstelle oder des Objekts in den Parameter. |
detach_abi Funktion | Trennt von der unformatierten IUnknown-Schnittstelle, ohne die Referenzanzahl zu erhöhen, vielleicht um sie an einen Aufrufer zurückzugeben. |
get_abi Funktion | Gibt die zugrunde liegende unformatierte IUnknown-Schnittstelle zurück, Zeiger sie an eine Funktion übergeben müssen. |
get_unknown-Funktion | Eine Hilfsfunktion, die die Adresse der zugrunde liegenden unformatierten IUnknown-Schnittstelle zurückgibt, eines Objekts eines projizierten Typs. |
put_abi Funktion | Gibt die Adresse der zugrunde liegenden unformatierten IUnknown-Schnittstelle Zeiger als Zeiger auf einen Zeiger auf voidzurück; Diese Funktion hilft Ihnen beim Aufrufen von Methoden (z. B. COM-Methoden), die Verweise als Ausgabeparameter über einen Zeiger auf einen Zeiger auf voidzurückgeben. |
Swap-Funktion | Tauscht den Inhalt der beiden IUnknown Parameter so, dass sie auf das Ziel eines anderen zeigen. |
Kostenlose Betreiber
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 als der des zweiten Parameters auftritt. |
Operator<= (kleiner-als-oder-gleich-operator) | Gibt einen Wert zurück, der angibt, ob das Ziel des ersten Parameters früher im Arbeitsspeicher als oder an derselben Position wie der zweite Parameter auftritt. |
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 als der des zweiten Parameters auftritt. |
Operator>= (größer-oder-gleich-operator) | Gibt einen Wert zurück, der angibt, ob das Ziel des ersten Parameters später im Arbeitsspeicher auftritt als oder an derselben Position wie die des zweiten Parameters. |
IUnknown::IUnknown-Konstruktor
Initialisiert eine neue Instanz des IUnknown Struktur, optional mit einer Kopie oder einem Verschieben 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
Eine weitere IUnknown, die das IUnknown-Objekt initialisiert.
IUnknown::as function
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 Den Aufrufer übergeben 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 empfängt.
Rückgabewert
Ein com_ptr auf die angeforderte Schnittstelle oder einen stark typografischen Intelligenten Zeiger für die angeforderte Schnittstelle verweisen (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
(die auto
-returning overload) oder false
(die bool
-returning overload) zurück, wenn dies nicht der Grund ist. Diese Funktion ist nützlich, wenn Sie eine Schnittstelle abfragen möchten, die Sie nicht an Den Aufrufer übergeben 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 empfängt. Kann ein Nullverweis sein.
Rückgabewert
Eine com_ptr, die auf die angeforderte Schnittstelle verweist, oder einen stark typierten intelligenten 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
-returning overload) oder false
(die bool
-returning overload).
Wenn to
ein Nullverweis ist, wird null
oder false
zurückgegeben.
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 sie 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= (Zuordnungsoperator)
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 zugewiesen werden soll, entweder durch Kopieren oder verschieben.
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 verwenden, um Bezüge zu klammern.
Syntax
void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameter
object
Ein IUnknown Wert, auf 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. Erhöht die Referenzanzahl 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 die bzw. das darauf verweist.
Syntax
void copy_from_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameter
object
Ein IUnknown Wert, auf dem ausgeführt werden soll.
value
Ein unformatierter Zeiger auf ein Ziel, dessen Lebensdauer vom IUnknown--Objekt verwaltet werden soll.
copy_to_abi-Funktion
Kopiert einen anderen Zeiger aus einem IUnknown--Objekt. Erhöht die Referenzanzahl für alle aktuell referenzierten Schnittstellen oder Objekte und kopiert die Speicheradresse dieser Schnittstelle oder des Objekts in den Parameter. Mit dieser Funktion können Sie einen Verweis auf dieselbe Schnittstelle verteilen, ohne QueryInterface-aufrufen zu müssen.
Syntax
void copy_to_abi(winrt::Windows::Foundation::IUnknown const& object, void*& value) noexcept;
Parameter
object
Ein IUnknown Wert, auf dem ausgeführt werden soll.
value
Ein unformatierter Zeigerverweis; über die der Zeiger auf das IUnknown Objektziel kopiert werden soll.
detach_abi-Funktion
Trennt ein IUnknown -Objekt von der unformatierten IUnknown-Schnittstelle, ohne die Verweisanzahl zu erhöhen, vielleicht 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, auf dem ausgeführt werden soll.
Rückgabewert
Ein Zeiger auf die unformatierte IUnknown-Schnittstelle, auf die vom IUnknown-Objekt verwiesen wird.
get_abi-Funktion
Gibt die zugrunde liegende unformatierte IUnknown-Schnittstelle zurück, Zeiger sie 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, auf dem ausgeführt werden soll.
Rückgabewert
Ein Zeiger auf die unformatierte IUnknown-Schnittstelle, auf die vom IUnknown-Objekt verwiesen wird.
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 mit dem 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 als 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 mit dem des anderen Parameters verglichen werden soll.
Rückgabewert
true
, wenn die Speicheradresse des ersten Parameters kleiner als der zweite Parameter 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 als oder an derselben Position 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 mit dem des anderen Parameters verglichen werden soll.
Rückgabewert
true
, wenn die Speicheradresse des ersten Parameters kleiner oder gleich dem des zweiten Parameters ist, andernfalls false
.
operator== (Gleichheitsoperator)
Gibt einen Wert zurück, der angibt, ob die beiden Parameter auf dieselbe Schnittstelle und/oder ein 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 mit dem des anderen Parameters verglichen werden soll.
Rückgabewert
true
, wenn die beiden Parameter auf dasselbe Ziel zeigen, 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 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 mit dem 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>= (operator größer als oder gleich)
Gibt einen Wert zurück, der angibt, ob das Ziel des ersten Parameters später im Arbeitsspeicher auftritt als oder an derselben Position wie die 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 mit dem des anderen Parameters verglichen werden soll.
Rückgabewert
true
, wenn die Speicheradresse des ersten Parameters größer oder gleich dem des zweiten Parameters ist, andernfalls false
.
put_abi-Funktion
Gibt die Adresse der zugrunde liegenden unformatierten IUnknown-Schnittstelle Zeiger als Zeiger auf einen Zeiger auf voidzurück; Diese Funktion hilft Ihnen beim Aufrufen von Methoden (z. B. COM-Methoden), die Verweise als Ausgabeparameter über einen Zeiger auf einen Zeiger auf voidzurückgeben.
Syntax
void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
Parameter
object
Ein IUnknown Wert, auf dem ausgeführt werden soll.
Rückgabewert
Die Adresse der zugrunde liegenden unformatierten IUnknown-Schnittstelle Zeiger.
Swap-Funktion
Tauscht den Inhalt der beiden IUnknown Parameter so, dass sie auf das Ziel eines 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.