Condividi tramite


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

Ogni classe di runtime C++/WinRT (indipendentemente dal fatto che una classe di runtime di Windows o di terze parti) derivi da winrt::Windows::Foundation::IUnknown. Rappresenta l'interfaccia COM IUnknown e fornisce funzionalità come l'esecuzione di query per un'interfaccia diversa, funzioni abi e operatori di confronto.

Sintassi

struct IUnknown

Fabbisogno

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

Namespace: 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 un'eccezione se non lo è.
funzione IUnknown::try_as Restituisce l'interfaccia richiesta, se supportata. Restituisce nullo false, se non lo è.

Operatori membro

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

Funzioni gratuite

Funzione Descrizione
attach_abi funzione Collega un oggetto IUnknown a un puntatore non elaborato proprietario di un riferimento alla destinazione; non viene aggiunto un riferimento aggiuntivo.
copy_from_abi funzione 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.
copy_to_abi funzione 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 .
detach_abi funzione Scollega dall'interfaccia non elaborata IUnknown senza decrementare il conteggio dei riferimenti, ad esempio per restituirlo a un chiamante.
get_abi funzione Restituisce l'interfaccia non elaborata sottostante puntatore deve essere passato a una funzione.
get_unknown funzione Funzione helper che restituisce l'indirizzo dell'interfaccia non elaborata sottostante interfaccia IUnknown di un oggetto di un tipo proiettato.
put_abi funzione Restituisce l'indirizzo dell'interfaccia non elaborata sottostante puntatore puntatore a un puntatore a un puntatore a void; questa funzione consente di chiamare metodi (ad esempio i metodi COM) che restituiscono riferimenti come parametri out tramite un puntatore a un puntatore a void.
funzione swap Scambia il contenuto dei due parametri IUnknown in modo che puntino l'uno all'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.
operatore<= (operatore minore o uguale a) Restituisce un valore che indica se la destinazione del primo parametro si verifica prima della 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.
> dell'operatore (operatore maggiore di) Restituisce un valore che indica se la destinazione del primo parametro si verifica in un secondo momento in memoria rispetto a quella del secondo parametro.
operatore= (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

Un altro IUnknown che inizializza l'oggetto IUnknown .

Funzione IUnknown::as

Restituisce l'interfaccia richiesta, se supportata. Genera un'eccezione se non lo è. 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 del modello

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 auto-returning) o false (overload bool-returning), in caso contrario. 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 del modello

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 auto-returning) o false (l'overload bool-returning).

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

IUnknown::operator bool

Controlla se l'oggetto IUnknown fa riferimento a un'interfaccia. Se l'oggetto IUnknown non fa riferimento a un'interfaccia, è logicamente null; in caso contrario, non è logicamente null.

Sintassi

explicit operator bool() const noexcept;

Valore restituito

se l'oggetto IUnknown fa riferimento a un'interfaccia (logicamente non Null), altrimenti (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

Valore di IUnknown da assegnare all'oggetto IUnknown, copia o spostandolo.

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 di IUnknown su cui operare.

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 di IUnknown su cui operare.

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 di IUnknown su cui operare.

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

funzione detach_abi

Scollega un oggetto IUnknown dalla relativa 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 di IUnknown su cui operare.

Valore restituito

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

funzione get_abi

Restituisce l'interfaccia non elaborata sottostante puntatore deve essere passato a una funzione. È possibile chiamare AddRef, Releaseo QueryInterface sul puntatore restituito.

Sintassi

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

Parametri

object Valore di IUnknown su cui operare.

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

Valore IUnknown il cui indirizzo di memoria di destinazione deve essere confrontato 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

Valore IUnknown il cui indirizzo di memoria di destinazione deve essere confrontato con quello dell'altro parametro.

Valore restituito

true se l'indirizzo di memoria della destinazione del primo parametro è 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 prima della 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

Valore IUnknown il cui indirizzo di memoria di destinazione deve essere confrontato con quello dell'altro parametro.

Valore restituito

true se l'indirizzo di memoria della destinazione del primo parametro è 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

Valore IUnknown il cui indirizzo di memoria di destinazione deve essere confrontato 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 in un secondo momento 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

Valore IUnknown il cui indirizzo di memoria di destinazione deve essere confrontato con quello dell'altro parametro.

Valore restituito

true se l'indirizzo di memoria della destinazione del primo parametro è 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

Valore IUnknown il cui indirizzo di memoria di destinazione deve essere confrontato con quello dell'altro parametro.

Valore restituito

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

funzione put_abi

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

Sintassi

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

Parametri

object Valore di IUnknown su cui operare.

Valore restituito

Indirizzo dell'interfaccia IUnknown non elaborata sottostante puntatore.

funzione swap

Scambia il contenuto dei due parametri IUnknown in modo che puntino l'uno all'altro.

Sintassi

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

Parametri

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

Vedere anche