Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
Minsta SDK som stöds: Windows SDK version 10.0.17134.0 (Windows 10 version 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 | Begär ett gränssnitt som utlöser om det inte stöds. |
| IUnknown::try_as function | Begär ett gränssnitt som producerar null om det inte stöds. |
| IUnknown::try_as_with_reason function | Begär ett gränssnitt och rapporterar orsaken om det inte stöds. |
Member operators
| Operator | Description |
|---|---|
| IUnknown::operator bool | Checks whether or not the IUnknown object is referencing an interface. |
| IUnknown::operator= (tilldelningsoperator) | 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. Minskar referensantalet för alla gränssnitt eller objekt som för närvarande refereras, kopierar råpekarparametern och börjar hantera livslängden för gränssnittet eller objektet som det pekar på. |
| copy_to_abi function | Copies to another pointer from an IUnknown object. Ökar referensantalet för alla gränssnitt eller objekt som för närvarande refereras och kopierar gränssnittets eller objektets minnesadress till parametern. |
| 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!= (olikhetsoperator) | Returnerar ett värde som anger om de två parametrarna refererar till olika mål. |
| operator< (mindre än-operator) | Returnerar ett värde som anger om den första parameterns mål inträffar tidigare i minnet än den andra parameterns. |
| operator<= (operatorn mindre än eller lika med) | Returnerar ett värde som anger om den första parameterns mål inträffar tidigare i minnet än, eller på samma plats som, den andra parametern. |
| operator== (likhetsoperator) | Returnerar ett värde som anger om de två parametrarna refererar till samma gränssnitt och/eller objekt. |
| operator> (större än-operator) | Returnerar ett värde som anger om den första parameterns mål inträffar senare i minnet än den andra parameterns. |
| operator>= (operatorn större än eller lika med) | Returnerar ett värde som anger om den första parameterns mål inträffar senare i minnet än, eller på samma plats som, den andra parametern. |
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
Begär det angivna gränssnittet från IUnknown. Genererar om gränssnittet inte stöds. Använd den här metoden om du förväntar dig att gränssnittet ska stödjas.
Syntax
template <typename To> auto as() const;
template <typename To> void as(To& to) const;
Template parameters
typename To En typ som beskriver det begärda gränssnittet.
Den här typen kan vara ett C++/WinRT-gränssnittsnamn eller ett C++/WinRT-körningsklassnamn.
För - autoreturning-överbelastningen kan typen också vara ett klassiskt COM-gränssnitt.
För - voidreturning-överbelastningen kan typen också vara com_ptr<I> där I är ett klassiskt COM-gränssnitt.
Parameters
to En referens till ett värde för att ta emot det begärda gränssnittet.
Return value
- autoreturning-överbelastningen returnerar det begärda gränssnittet, i form av To om det är ett C++/WinRT-gränssnitt eller körningsklassnamn, eller i form av com_ptr<To> om To är ett klassiskt COM-gränssnitt.
IUnknown Om är nullreturnerar null-autoreturning-överlagringen , och -returning-överlagringsuppsättningarna voidto till null.
IUnknown Om är icke-null men gränssnittet inte kan hämtas, genererar metoden.
IUnknown::try_as function
Begär det angivna gränssnittet från IUnknown. Genererar null om gränssnittet inte stöds.
Syntax
template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;
Template parameters
typename To En typ som beskriver det begärda gränssnittet.
Den här typen kan vara ett C++/WinRT-gränssnittsnamn eller ett C++/WinRT-körningsklassnamn.
För - autoreturning-överbelastningen kan typen också vara ett klassiskt COM-gränssnitt.
För - boolreturning-överbelastningen kan typen också vara com_ptr<I> där I är ett klassiskt COM-gränssnitt.
Parameters
to En referens till ett värde för att ta emot det begärda gränssnittet.
Return value
- autoreturning-överbelastningen returnerar det begärda gränssnittet, i form av To om det är ett C++/WinRT-gränssnitt eller körningsklassnamn, eller i form av com_ptr<To> om To är ett klassiskt COM-gränssnitt.
IUnknown Om är null eller om gränssnittet inte kan hämtas returnerar null-autoreturning-överlagringen , och -returning-överlagringsuppsättningarna boolto till null.
Den bool returnerade överlagringen returneras true om värdet som returneras är to icke-null och false om det är null.
IUnknown::try_as_with_reason function
Returnerar det begärda gränssnittet, om det stöds, och rapporterar orsaken om det inte stöds.
Syntax
template <typename To> auto try_as_with_reason(winrt::hresult& reason) const noexcept;
Template parameters
typename To En typ som beskriver det begärda gränssnittet.
Den här typen kan vara ett C++/WinRT-gränssnittsnamn, ett C++/WinRT-körningsklassnamn eller ett klassiskt COM-gränssnitt.
Parameters
reason Tar emot som winrt::hresult beskriver resultatet av frågan.
Return value
Returnerar det begärda gränssnittet i form av To om det är ett C++/WinRT-gränssnitt eller körningsklassnamn, eller i form av com_ptr<To> om To är ett klassiskt COM-gränssnitt.
IUnknown Om är null eller om gränssnittet inte kan hämtas returnerar nullmetoden .
Remarks
Den här metoden är tillgänglig från och med C++/WinRT version 2.0.250303.1.
IUnknown Om är nullreturnerar null metoden och anger reason till S_OK.
Om är IUnknown icke-returnerarnull metoden resultatet av frågan och reason tar emot den winrt::hresult som skapas av frågan.
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= (tilldelningsoperator)
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. Om det behövs kan du använda den här funktionen för att sammanfoga referenser.
Syntax
void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameters
object An IUnknown value to operate on.
value En rå pekare som äger en referens till sitt mål.
copy_from_abi function
Copies to an IUnknown object from another pointer. Minskar referensantalet för alla gränssnitt eller objekt som för närvarande refereras, kopierar råpekarparametern och börjar hantera livslängden för gränssnittet eller objektet som det pekar på.
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. Ökar referensantalet för alla gränssnitt eller objekt som för närvarande refereras och kopierar gränssnittets eller objektets minnesadress till parametern. 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!= (olikhetsoperator)
Returnerar ett värde som anger om de två parametrarna refererar till olika mål.
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 Om de två parametrarna pekar på olika mål, annars false.
operator< (mindre än-operator)
Returnerar ett värde som anger om den första parameterns mål inträffar tidigare i minnet än den andra parameterns.
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 Om den första parameterns målminnesadress är mindre än den för den andra parametern, annars false.
operator<= (operatorn mindre än eller lika med)
Returnerar ett värde som anger om den första parameterns mål inträffar tidigare i minnet än, eller på samma plats som, den andra parametern.
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 Om den första parameterns måladress är mindre än eller lika med den för den andra parametern, annars false.
operator== (likhetsoperator)
Returnerar ett värde som anger om de två parametrarna refererar till samma gränssnitt och/eller 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 Om de två parametrarna pekar på samma mål, annars false.
operator> (större än-operator)
Returnerar ett värde som anger om den första parameterns mål inträffar senare i minnet än den andra parameterns.
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 Om den första parameterns målminnesadress är större än den för den andra parametern, annars false.
operator>= (operatorn större än eller lika med)
Returnerar ett värde som anger om den första parameterns mål inträffar senare i minnet än, eller på samma plats som, den andra parametern.
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 Om den första parameterns målminnesadress är större än eller lika med den för den andra parametern, annars 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.