Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Every C++/WinRT runtime class (whether a Windows or a third party runtime class) derives from winrt::Windows::Foundation::IUnknown. It represents the COM IUnknown interface, and it provides facilities such as querying for a different interface, abi functions, and comparison operators.
Syntax
struct IUnknown
Requirements
Minimální podporovaná sada SDK: Windows SDK verze 10.0.17134.0 (Windows 10, verze 1803)
Namespace: winrt
Header: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (included by default)
Constructors
| Constructor | Description |
|---|---|
| IUnknown::IUnknown constructor | Initializes a new instance of the IUnknown struct, optionally with a copy or move of the input data. |
Member functions
| Function | Description |
|---|---|
| IUnknown::as function | Vyžaduje rozhraní, které vyvolá, pokud není podporováno. |
| IUnknown::try_as function | Požádá o rozhraní, které vytváří null , pokud není podporováno. |
| IUnknown::try_as_with_reason function | Požádá o rozhraní a ohlásí důvod, pokud není podporovaný. |
Member operators
| Operator | Description |
|---|---|
| IUnknown::operator bool | Checks whether or not the IUnknown object is referencing an interface. |
| IUnknown::operator= (operátor přiřazení) | Assigns a value to the IUnknown object. |
Free functions
| Function | Description |
|---|---|
| attach_abi function | Attaches an IUnknown object to a raw pointer that owns a reference to its target; an additional reference is not added. |
| copy_from_abi function | Copies to an IUnknown object from another pointer. Sníží počet odkazů na jakékoli aktuálně odkazované rozhraní nebo objekt, zkopíruje nezpracovaný parametr ukazatele a začne spravovat životnost rozhraní nebo objektu, na který odkazuje. |
| copy_to_abi function | Copies to another pointer from an IUnknown object. Zvýší počet odkazů na jakékoli aktuálně odkazované rozhraní nebo objekt a zkopíruje adresu paměti tohoto rozhraní nebo objektu do parametru. |
| detach_abi function | Detaches from the raw IUnknown interface without decrementing the reference count, perhaps to return it to a caller. |
| get_abi function | Returns the underlying raw IUnknown interface pointer should you need to pass it to a function. |
| get_unknown function | A helper function that returns the address of the underlying raw IUnknown interface of an object of a projected type. |
| put_abi function | Returns the address of the underlying raw IUnknown interface pointer as a pointer to a pointer to void; this function helps you call methods (such as COM methods) that return references as out parameters via a pointer to a pointer to void. |
| swap function | Swaps the contents of the two IUnknown parameters so that they point at one another's target. |
Free operators
| Function | Description |
|---|---|
| operator!= (operátor nerovnosti) | Vrátí hodnotu označující, zda tyto dva parametry odkazují na různé cíle. |
| operátor< (operátor menší než) | Vrátí hodnotu označující, zda se cíl prvního parametru vyskytuje v paměti dříve než cíl druhého parametru. |
| operator<= (operátor menší než nebo rovno) | Vrátí hodnotu označující, zda se cíl prvního parametru vyskytuje dříve v paměti než cíl druhého parametru, nebo na stejném místě jako druhý parametr. |
| operator== (operátor rovnosti) | Vrací hodnotu označující, zda tyto dva parametry odkazují na stejné rozhraní nebo objekt. |
| operátor> (operátor větší než) | Vrátí hodnotu označující, zda se cíl prvního parametru vyskytne v paměti později než cíl druhého parametru. |
| operator>= (operátor větší nebo rovno) | Vrátí hodnotu označující, zda se cíl prvního parametru vyskytne později v paměti než cíl druhého parametru, nebo na stejném místě jako druhý parametr. |
IUnknown::IUnknown constructor
Initializes a new instance of the IUnknown struct, optionally with a copy or move of the input data.
Syntax
IUnknown() noexcept;
IUnknown(std::nullptr_t) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown const& other) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown&& other) noexcept;
Parameters
other Another IUnknown that initializes the IUnknown object.
IUnknown::as function
Požaduje zadané rozhraní z IUnknownrozhraní . Vyvolá se, pokud rozhraní není podporováno. Tuto metodu použijte, pokud očekáváte, že se rozhraní bude podporovat.
Syntax
template <typename To> auto as() const;
template <typename To> void as(To& to) const;
Template parameters
typename To Typ, který popisuje požadované rozhraní.
Tento typ může být název rozhraní C++/WinRT nebo název třídy modulu runtime C++/WinRT.
autoU -returning přetížení může být typ také klasickým rozhraním MODELU COM.
voidPro -returning přetížení, typ může být com_ptr<I> také kde I je klasické rozhraní MODELU COM.
Parameters
to Odkaz na hodnotu pro příjem požadovaného rozhraní.
Return value
- autoreturning přetížení vrátí požadované rozhraní, ve formě To , zda je to C++/WinRT rozhraní nebo název třídy modulu runtime, nebo ve formě com_ptr<To> , zda To je klasické rozhraní COM.
Pokud je , pak -returning přetížení vrátí null, a void-returning přetížení nastaví to na null.autoIUnknownnull
IUnknown Pokud není,null ale rozhraní nelze získat, metoda vyvolá.
IUnknown::try_as function
Požaduje zadané rozhraní z IUnknownrozhraní .
null Vytvoří, pokud rozhraní není podporováno.
Syntax
template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;
Template parameters
typename To Typ, který popisuje požadované rozhraní.
Tento typ může být název rozhraní C++/WinRT nebo název třídy modulu runtime C++/WinRT.
autoU -returning přetížení může být typ také klasickým rozhraním MODELU COM.
boolPro -returning přetížení, typ může být com_ptr<I> také kde I je klasické rozhraní MODELU COM.
Parameters
to Odkaz na hodnotu pro příjem požadovaného rozhraní.
Return value
- autoreturning přetížení vrátí požadované rozhraní, ve formě To , zda je to C++/WinRT rozhraní nebo název třídy modulu runtime, nebo ve formě com_ptr<To> , zda To je klasické rozhraní COM.
IUnknown Pokud je null nebo pokud rozhraní nelze získat, autovrátí -returning přetížení nulla bool-returning přetížení nastaví to na null.
Vrácená bool přetížení vrátí true , pokud je vrácena hodnota to ne-null a false pokud je null.
IUnknown::try_as_with_reason function
Vrátí požadované rozhraní, pokud je podporováno, a hlásí důvod, pokud není podporován.
Syntax
template <typename To> auto try_as_with_reason(winrt::hresult& reason) const noexcept;
Template parameters
typename To Typ, který popisuje požadované rozhraní.
Tento typ může být název rozhraní C++/WinRT, název třídy modulu runtime C++/WinRT nebo klasické rozhraní MODELU COM.
Parameters
reason
winrt::hresult Přijme výsledek dotazu.
Return value
Vrátí požadované rozhraní ve formě To , zda se jedná o rozhraní C++/WinRT nebo název třídy modulu runtime, nebo ve formě com_ptr<To> , zda To je klasické rozhraní MODELU COM.
IUnknown Pokud je null nebo pokud rozhraní nelze získat, pak metoda vrátí null.
Remarks
Tato metoda je dostupná od C++/WinRT verze 2.0.250303.1.
Pokud je null, IUnknown pak metoda vrátí null a nastaví reason na S_OK.
Pokud neníIUnknownnull, vrátí metoda výsledek dotazu a reason přijme winrt::hresult vytvořené dotazem.
IUnknown::operator bool
Checks whether or not the IUnknown object is referencing an interface. If the IUnknown object is not referencing an interface, then it is logically null; otherwise it is logically not null.
Syntax
explicit operator bool() const noexcept;
Return value
true if the IUnknown object is referencing an interface (logically not null), otherwise false (logically null).
IUnknown::operator= (operátor přiřazení)
Assigns a value to the IUnknown object.
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;
Parameters
other An IUnknown value to assign to the IUnknown object, either by copy or by move.
Return value
A reference to the IUnknown object.
attach_abi function
Attaches an IUnknown object to a raw pointer that owns a reference to its target; an additional reference is not added. V případě potřeby můžete tuto funkci použít ke sloučení odkazů.
Syntax
void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameters
object An IUnknown value to operate on.
value Nezpracovaný ukazatel, který vlastní odkaz na svůj cíl.
copy_from_abi function
Copies to an IUnknown object from another pointer. Sníží počet odkazů na jakékoli aktuálně odkazované rozhraní nebo objekt, zkopíruje nezpracovaný parametr ukazatele a začne spravovat životnost rozhraní nebo objektu, na který odkazuje.
Syntax
void copy_from_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameters
object An IUnknown value to operate on.
value A raw pointer to a target whose lifetime should be managed by the IUnknown object.
copy_to_abi function
Copies to another pointer from an IUnknown object. Zvýší počet odkazů na jakékoli aktuálně odkazované rozhraní nebo objekt a zkopíruje adresu paměti tohoto rozhraní nebo objektu do parametru. This function lets you hand out a reference to the same interface without calling QueryInterface.
Syntax
void copy_to_abi(winrt::Windows::Foundation::IUnknown const& object, void*& value) noexcept;
Parameters
object An IUnknown value to operate on.
value A raw pointer reference; via which to copy the pointer to the IUnknown object's target.
detach_abi function
Detaches an IUnknown object from its raw IUnknown interface without decrementing the reference count, perhaps to return it to a caller.
Syntax
void* detach_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
void* detach_abi(winrt::Windows::Foundation::IUnknown&& object) noexcept;
Parameters
object An IUnknown value to operate on.
Return value
A pointer to the raw IUnknown interface referenced by the IUnknown object.
get_abi function
Returns the underlying raw IUnknown interface pointer should you need to pass it to a function. You may call AddRef, Release, or QueryInterface on the returned pointer.
Syntax
void* get_abi(winrt::Windows::Foundation::IUnknown const& object) noexcept;
Parameters
object An IUnknown value to operate on.
Return value
A pointer to the raw IUnknown interface referenced by the IUnknown object.
operator!= (operátor nerovnosti)
Vrátí hodnotu označující, zda tyto dva parametry odkazují na různé cíle.
Syntax
bool operator!=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true Pokud tyto dva parametry ukazují na různé cíle, jinak false.
operátor< (operátor menší než)
Vrátí hodnotu označující, zda se cíl prvního parametru vyskytuje v paměti dříve než cíl druhého parametru.
Syntax
bool operator<(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true pokud je adresa paměti cíle prvního parametru menší než adresa paměti druhého parametru, jinak false.
operator<= (operátor menší než nebo rovno)
Vrátí hodnotu označující, zda se cíl prvního parametru vyskytuje dříve v paměti než cíl druhého parametru, nebo na stejném místě jako druhý parametr.
Syntax
bool operator<=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true Pokud je adresa paměti cíle prvního parametru menší nebo rovna adrese paměti druhého parametru, jinak false.
operator== (operátor rovnosti)
Vrací hodnotu označující, zda tyto dva parametry odkazují na stejné rozhraní nebo objekt.
Syntax
bool operator==(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true Pokud tyto dva parametry ukazují na stejný cíl, jinak false.
operátor> (operátor větší než)
Vrátí hodnotu označující, zda se cíl prvního parametru vyskytne v paměti později než cíl druhého parametru.
Syntax
bool operator>(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true Pokud je adresa paměti cíle prvního parametru větší než adresa paměti druhého parametru, jinak false.
operator>= (operátor větší nebo rovno)
Vrátí hodnotu označující, zda se cíl prvního parametru vyskytne později v paměti než cíl druhého parametru, nebo na stejném místě jako druhý parametr.
Syntax
bool operator>=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true Pokud je adresa paměti cíle prvního parametru větší nebo rovna adrese paměti druhého parametru, jinak false.
put_abi function
Returns the address of the underlying raw IUnknown interface pointer as a pointer to a pointer to void; this function helps you call methods (such as COM methods) that return references as out parameters via a pointer to a pointer to void.
Syntax
void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
Parameters
object An IUnknown value to operate on.
Return value
The address of the underlying raw IUnknown interface pointer.
swap function
Swaps the contents of the two IUnknown parameters so that they point at one another's target.
Syntax
void swap(winrt::Windows::Foundation::IUnknown& left, winrt::Windows::Foundation::IUnknown& right) noexcept;
Parameters
left
right An IUnknown value whose pointer to mutually swap with that of the other parameter.