winrt::Windows::Foundation::IUnknown struct (C++/WinRT)

Ogni classe di runtime C++/WinRT (una classe di runtime di Windows o di terze parti) deriva da winrt::Windows::Foundation::IUnknown. Rappresenta l'interfaccia COM IUnknown e fornisce strutture quali l'esecuzione di query per un'interfaccia diversa, funzioni abi e operatori di confronto.

Sintassi

struct IUnknown

Requisiti

SDK minimo supportato: Windows SDK versione 10.0.17134.0 (Windows 10, versione 1803)

Spazio dei nomi: winrt

Intestazione: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (incluso per impostazione predefinita)

Costruttori

Costruttore Descrizione
Costruttore IUnknown::IUnknown Inizializza una nuova istanza dello struct IUnknown , facoltativamente con una copia o uno spostamento dei dati di input.

Funzioni membro

Funzione Descrizione
Funzione IUnknown::as Restituisce l'interfaccia richiesta, se supportata. Genera se non è.
Funzione IUnknown::try_as Restituisce l'interfaccia richiesta, se supportata. Restituisce null, o false, se non è.

Operatori membri

Operatore Descrizione
IUnknown::operator bool Verifica se l'oggetto IUnknown fa riferimento a un'interfaccia.
IUnknown::operator= (operatore di assegnazione) Assegna un valore all'oggetto IUnknown .

Funzioni gratuite

Funzione Descrizione
Funzione attach_abi Collega un oggetto IUnknown a un puntatore non elaborato proprietario di un riferimento alla destinazione; non viene aggiunto un riferimento aggiuntivo.
Funzione copy_from_abi Copia in un oggetto IUnknown da un altro puntatore. Decrementa il conteggio dei riferimenti su qualsiasi interfaccia o oggetto a cui si fa riferimento, copia il parametro del puntatore non elaborato e inizia a gestire la durata dell'interfaccia o dell'oggetto a cui punta.
Funzione copy_to_abi Copia in un altro puntatore da un oggetto IUnknown . Incrementa il conteggio dei riferimenti su qualsiasi interfaccia o oggetto a cui si fa riferimento e copia l'indirizzo di memoria dell'interfaccia o dell'oggetto nel parametro.
Funzione detach_abi Scollega dall'interfaccia IUnknown non elaborata senza decrementare il conteggio dei riferimenti, forse per restituirlo a un chiamante.
funzione get_abi Restituisce il puntatore dell'interfaccia IUnknown sottostante deve essere passato a una funzione.
Funzione get_unknown Funzione helper che restituisce l'indirizzo dell'interfaccia IUnknown sottostante di un oggetto di un tipo proiettato.
funzione put_abi Restituisce l'indirizzo del puntatore dell'interfaccia IUnknown sottostante come puntatore a un puntatore a vuoto; questa funzione consente di chiamare metodi (ad esempio metodi COM) che restituiscono riferimenti come parametri out tramite un puntatore a un puntatore a un puntatore a void.
Funzione swap Scambia il contenuto dei due parametri IUnknown in modo che puntino alla destinazione di un altro.

Operatori gratuiti

Funzione Descrizione
operator!= (operatore di disuguaglianza) Restituisce un valore che indica se i due parametri fanno riferimento a destinazioni diverse.
operatore (operatore< minore di) Restituisce un valore che indica se la destinazione del primo parametro si verifica in precedenza in memoria rispetto a quella del secondo parametro.
operator<= (operatore minore o uguale a) Restituisce un valore che indica se la destinazione del primo parametro si verifica in precedenza in memoria o nella stessa posizione del secondo parametro.
operator== (operatore di uguaglianza) Restituisce un valore che indica se i due parametri fanno riferimento alla stessa interfaccia e/o oggetto.
operatore (operatore> maggiore di) Restituisce un valore che indica se la destinazione del primo parametro si verifica successivamente in memoria rispetto a quella del secondo parametro.
operator>= (operatore maggiore o uguale a) Restituisce un valore che indica se la destinazione del primo parametro si verifica in un secondo momento in memoria o nella stessa posizione del secondo parametro.

Costruttore IUnknown::IUnknown

Inizializza una nuova istanza dello struct IUnknown , facoltativamente con una copia o uno spostamento dei dati di input.

Sintassi

IUnknown() noexcept;
IUnknown(std::nullptr_t) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown const& other) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown&& other) noexcept;

Parametri

other Un altro IUnknown che inizializza l'oggetto IUnknown .

Funzione IUnknown::as

Restituisce l'interfaccia richiesta, se supportata. Genera se non è. Questa funzione è utile se si vuole eseguire una query per un'interfaccia che non è necessario tornare al chiamante.

Sintassi

template <typename To> auto as() const;
template <typename To> void as(To& to) const;

Parametri di modelli

typename To Tipo dell'interfaccia richiesta.

Parametri

to Riferimento a un valore per ricevere l'interfaccia richiesta.

Valore restituito

Un com_ptr che fa riferimento all'interfaccia richiesta o a un puntatore intelligente fortemente tipizzato per l'interfaccia richiesta (dichiarata da C++/WinRT o da terze parti).

Funzione IUnknown::try_as

Restituisce l'interfaccia richiesta, se supportata. Restituisce null (overload autorestituito) o false (overload boolrestituito), se non è. Questa funzione è utile se si vuole eseguire una query per un'interfaccia che non è necessario tornare al chiamante.

Sintassi

template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;

Parametri di modelli

typename To Tipo dell'interfaccia richiesta.

Parametri

to Riferimento a un valore per ricevere l'interfaccia richiesta. Può essere un riferimento null.

Valore restituito

Un com_ptr che fa riferimento all'interfaccia richiesta o a un puntatore intelligente fortemente tipizzato per l'interfaccia richiesta (dichiarata da C++/WinRT o da terze parti), se l'interfaccia richiesta è supportata, in caso contrario null (overload -restituito) o false (autooverload boolrestituito).

Se to è un riferimento Null, restituisce null o false.

IUnknown::operator bool

Verifica se l'oggetto IUnknown fa riferimento a un'interfaccia. Se l'oggetto IUnknown non fa riferimento a un'interfaccia, è logicamente Null; altrimenti non è logicamente null.

Sintassi

explicit operator bool() const noexcept;

Valore restituito

true se l'oggetto IUnknown fa riferimento a un'interfaccia (logicamente non null), altrimenti false (logicamente null).

IUnknown::operator= (operatore di assegnazione)

Assegna un valore all'oggetto IUnknown .

Sintassi

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;

Parametri

other Valore IUnknown da assegnare all'oggetto IUnknown , copiando o spostando.

Valore restituito

Riferimento all'oggetto IUnknown .

Funzione attach_abi

Collega un oggetto IUnknown a un puntatore non elaborato proprietario di un riferimento alla destinazione; non viene aggiunto un riferimento aggiuntivo. Se necessario, è possibile usare questa funzione per unire i riferimenti.

Sintassi

void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;

Parametri

object Valore IUnknown da utilizzare.

value Puntatore non elaborato proprietario di un riferimento alla destinazione.

Funzione copy_from_abi

Copia in un oggetto IUnknown da un altro puntatore. Decrementa il conteggio dei riferimenti su qualsiasi interfaccia o oggetto a cui si fa riferimento, copia il parametro del puntatore non elaborato e inizia a gestire la durata dell'interfaccia o dell'oggetto a cui punta.

Sintassi

void copy_from_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;

Parametri

object Valore IUnknown da utilizzare.

value Puntatore non elaborato a una destinazione la cui durata deve essere gestita dall'oggetto IUnknown .

Funzione copy_to_abi

Copia in un altro puntatore da un oggetto IUnknown . Incrementa il conteggio dei riferimenti su qualsiasi interfaccia o oggetto a cui si fa riferimento e copia l'indirizzo di memoria dell'interfaccia o dell'oggetto nel parametro. Questa funzione consente di distribuire un riferimento alla stessa interfaccia senza chiamare QueryInterface.

Sintassi

void copy_to_abi(winrt::Windows::Foundation::IUnknown const& object, void*& value) noexcept;

Parametri

object Valore IUnknown da utilizzare.

value Riferimento al puntatore non elaborato; tramite cui copiare il puntatore nella destinazione dell'oggetto IUnknown .

Funzione detach_abi

Scollega un oggetto IUnknowndall'interfaccia IUnknown non elaborata senza decrementare il conteggio dei riferimenti, forse per restituirlo a un chiamante.

Sintassi

void* detach_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
void* detach_abi(winrt::Windows::Foundation::IUnknown&& object) noexcept;

Parametri

object Valore IUnknown da utilizzare.

Valore restituito

Puntatore all'interfaccia IUnknown non elaborata a cui fa riferimento l'oggetto IUnknown .

funzione get_abi

Restituisce il puntatore dell'interfaccia IUnknown sottostante deve essere passato a una funzione. È possibile chiamare AddRef, Release o QueryInterface nel puntatore restituito.

Sintassi

void* get_abi(winrt::Windows::Foundation::IUnknown const& object) noexcept;

Parametri

object Valore IUnknown da utilizzare.

Valore restituito

Puntatore all'interfaccia IUnknown non elaborata a cui fa riferimento l'oggetto IUnknown .

operator!= (operatore di disuguaglianza)

Restituisce un valore che indica se i due parametri fanno riferimento a destinazioni diverse.

Sintassi

bool operator!=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

Parametri

leftright Valore IUnknown l'indirizzo di memoria di destinazione da confrontare con quello dell'altro parametro.

Valore restituito

true se i due parametri puntano a destinazioni diverse, in caso contrario false.

operatore (operatore< minore di)

Restituisce un valore che indica se la destinazione del primo parametro si verifica in precedenza in memoria rispetto a quella del secondo parametro.

Sintassi

bool operator<(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

Parametri

leftright Valore IUnknown l'indirizzo di memoria di destinazione da confrontare con quello dell'altro parametro.

Valore restituito

true se l'indirizzo di memoria del primo parametro di destinazione è minore di quello del secondo parametro, in caso contrario false.

operator<= (operatore minore o uguale a)

Restituisce un valore che indica se la destinazione del primo parametro si verifica in precedenza in memoria o nella stessa posizione del secondo parametro.

Sintassi

bool operator<=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

Parametri

leftright Valore IUnknown l'indirizzo di memoria di destinazione da confrontare con quello dell'altro parametro.

Valore restituito

true se l'indirizzo di memoria del primo parametro di destinazione è minore o uguale a quello del secondo parametro, in caso contrario false.

operator== (operatore di uguaglianza)

Restituisce un valore che indica se i due parametri fanno riferimento alla stessa interfaccia e/o oggetto.

Sintassi

bool operator==(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

Parametri

leftright Valore IUnknown l'indirizzo di memoria di destinazione da confrontare con quello dell'altro parametro.

Valore restituito

true se i due parametri puntano alla stessa destinazione, in caso contrario false.

operatore (operatore> maggiore di)

Restituisce un valore che indica se la destinazione del primo parametro si verifica successivamente in memoria rispetto a quella del secondo parametro.

Sintassi

bool operator>(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

Parametri

leftright Valore IUnknown l'indirizzo di memoria di destinazione da confrontare con quello dell'altro parametro.

Valore restituito

true se l'indirizzo di memoria del primo parametro di destinazione è maggiore di quello del secondo parametro, in caso contrario false.

operator>= (operatore maggiore o uguale a)

Restituisce un valore che indica se la destinazione del primo parametro si verifica in un secondo momento in memoria o nella stessa posizione del secondo parametro.

Sintassi

bool operator>=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

Parametri

leftright Valore IUnknown l'indirizzo di memoria di destinazione da confrontare con quello dell'altro parametro.

Valore restituito

true se l'indirizzo di memoria del primo parametro di destinazione è maggiore o uguale a quello del secondo parametro, in caso contrario false.

funzione put_abi

Restituisce l'indirizzo del puntatore dell'interfaccia IUnknown sottostante come puntatore a un puntatore a vuoto; questa funzione consente di chiamare metodi (ad esempio metodi COM) che restituiscono riferimenti come parametri out tramite un puntatore a un puntatore a un puntatore a void.

Sintassi

void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;

Parametri

object Valore IUnknown da utilizzare.

Valore restituito

Indirizzo del puntatore dell'interfaccia IUnknown sottostante.

Funzione swap

Scambia il contenuto dei due parametri IUnknown in modo che puntino alla destinazione di un altro.

Sintassi

void swap(winrt::Windows::Foundation::IUnknown& left, winrt::Windows::Foundation::IUnknown& right) noexcept;

Parametri

leftright Valore IUnknown il cui puntatore si scambia a vicenda con quello dell'altro parametro.

Vedi anche