Partager via


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

Chaque classe runtime C++/WinRT (qu’il s’agisse d’une classe d’exécution Windows ou tierce) dérive de winrt ::Windows ::Foundation ::IUnknown. Il représente l’interface com IUnknown et fournit des fonctionnalités telles que l’interrogation d’une autre interface, des fonctions abi et des opérateurs de comparaison.

Syntaxe

struct IUnknown

Exigences

Kit de développement logiciel (SDK) minimum pris en charge : SDK Windows version 10.0.17134.0 (Windows 10, version 1803)

Namespace : winrt

en-tête : %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (inclus par défaut)

Constructeurs

Constructeur Description
constructeur IUnknown ::IUnknown Initialise une nouvelle instance du struct IUnknown, éventuellement avec une copie ou un déplacement des données d’entrée.

Fonctions membres

Fonction Description
IUnknown ::as, fonction Retourne l’interface demandée, si elle est prise en charge. Lève si ce n’est pas le cas.
fonction IUnknown ::try_as Retourne l’interface demandée, si elle est prise en charge. Retourne null, ou false, si ce n’est pas le cas.

Opérateurs membres

Opérateur Description
IUnknown ::operator bool Vérifie si l’objet IUnknown référence une interface.
IUnknown ::operator= (opérateur d’affectation) Affecte une valeur à l’objet IUnknown.

Fonctions gratuites

Fonction Description
attach_abi fonction Attache un objet IUnknown à un pointeur brut propriétaire d’une référence à sa cible ; une référence supplémentaire n’est pas ajoutée.
copy_from_abi fonction Copie dans un objet IUnknown d’un autre pointeur. Décrémente le nombre de références sur n’importe quelle interface ou objet actuellement référencé, copie le paramètre de pointeur brut et commence à gérer la durée de vie de l’interface ou de l’objet vers lequel il pointe.
copy_to_abi fonction Copie vers un autre pointeur à partir d’un objet IUnknown. Incrémente le nombre de références sur n’importe quelle interface ou objet actuellement référencé, et copie l’adresse mémoire de l’interface ou de l’objet dans le paramètre.
detach_abi fonction Détache de l’interface brute IUnknown sans décrémenter le nombre de références, peut-être pour le retourner à un appelant.
get_abi fonction Retourne l’interface brute IUnknown sous-jacente pointeur si vous devez le passer à une fonction.
get_unknown fonction Fonction d’assistance qui retourne l’adresse de l’interface brute IUnknown sous-jacente d’un objet d’un type projeté.
put_abi fonction Renvoie l’adresse de l’interface brute IUnknown sous-jacente pointeur en tant que pointeur vers un pointeur vers void; cette fonction vous aide à appeler des méthodes (telles que des méthodes COM) qui retournent des références en tant que paramètres sortants via un pointeur vers un pointeur vers void.
fonction d’échange Échange le contenu des deux paramètres IUnknown afin qu’ils pointent vers la cible d’un autre.

Opérateurs gratuits

Fonction Description
operator != (opérateur d’inégalité) Retourne une valeur indiquant si les deux paramètres font référence à des cibles différentes.
opérateur< (opérateur inférieur à) Retourne une valeur indiquant si la cible du premier paramètre se produit plus tôt en mémoire que celle du deuxième paramètre.
opérateur<= (opérateur inférieur ou égal à) Retourne une valeur indiquant si la cible du premier paramètre se produit plus tôt en mémoire que, ou au même emplacement que celui du deuxième paramètre.
operator== (opérateur d’égalité) Retourne une valeur indiquant si les deux paramètres font référence à la même interface et/ou à l’objet.
opérateur> (opérateur supérieur à) Retourne une valeur indiquant si la cible du premier paramètre se produit plus tard dans la mémoire que celle du deuxième paramètre.
opérateur>= (opérateur supérieur ou égal à) Retourne une valeur indiquant si la cible du premier paramètre se produit plus tard dans la mémoire que, ou au même emplacement que celui du deuxième paramètre.

Constructeur IUnknown ::IUnknown

Initialise une nouvelle instance du struct IUnknown, éventuellement avec une copie ou un déplacement des données d’entrée.

Syntaxe

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

Paramètres

other Un autre IUnknown qui initialise l’objet IUnknown.

IUnknown ::as, fonction

Retourne l’interface demandée, si elle est prise en charge. Lève si ce n’est pas le cas. Cette fonction est utile si vous souhaitez interroger une interface que vous n’avez pas besoin de renvoyer à votre appelant.

Syntaxe

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

Paramètres de modèle

typename To Type de l’interface demandée.

Paramètres

to Référence à une valeur pour recevoir l’interface demandée.

Valeur de retour

Un com_ptr référençant l’interface demandée, ou un pointeur intelligent fortement typé pour l’interface demandée (déclaré par C++/WinRT ou par un tiers).

Fonction IUnknown ::try_as

Retourne l’interface demandée, si elle est prise en charge. Retourne null (surcharge de retour de auto) ou false (surcharge de retour de bool), si ce n’est pas le cas. Cette fonction est utile si vous souhaitez interroger une interface que vous n’avez pas besoin de renvoyer à votre appelant.

Syntaxe

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

Paramètres de modèle

typename To Type de l’interface demandée.

Paramètres

to Référence à une valeur pour recevoir l’interface demandée. Il peut s’agir d’une référence Null.

Valeur de retour

Un com_ptr référençant l’interface demandée, ou un pointeur intelligent fortement typé pour l’interface demandée (déclaré par C++/WinRT ou par un tiers), si l’interface demandée est prise en charge, sinon null (surcharge auto-retour) ou false (surcharge de retour de bool).

Si to est une référence Null, retourne null ou false.

IUnknown ::operator bool

Vérifie si l’objet IUnknown référence une interface. Si l’objet IUnknown ne fait pas référence à une interface, il est logiquement null ; sinon, il n’est pas logiquement null.

Syntaxe

explicit operator bool() const noexcept;

Valeur de retour

true si l’objet IUnknown fait référence à une interface (logiquement non null), sinon false (logiquement null).

IUnknown ::operator= (opérateur d’affectation)

Affecte une valeur à l’objet IUnknown.

Syntaxe

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;

Paramètres

Valeur IUnknown à affecter à l’objet IUnknown, soit par copie, soit par déplacement.

Valeur de retour

Référence à l’objet IUnknown.

fonction attach_abi

Attache un objet IUnknown à un pointeur brut propriétaire d’une référence à sa cible ; une référence supplémentaire n’est pas ajoutée. Si nécessaire, vous pouvez utiliser cette fonction pour fusionner les références.

Syntaxe

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

Paramètres

object Valeur IUnknown à utiliser.

value pointeur brut qui possède une référence à sa cible.

fonction copy_from_abi

Copie dans un objet IUnknown d’un autre pointeur. Décrémente le nombre de références sur n’importe quelle interface ou objet actuellement référencé, copie le paramètre de pointeur brut et commence à gérer la durée de vie de l’interface ou de l’objet vers lequel il pointe.

Syntaxe

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

Paramètres

object Valeur IUnknown à utiliser.

value Pointeur brut vers une cible dont la durée de vie doit être gérée par l’objet IUnknown.

fonction copy_to_abi

Copie vers un autre pointeur à partir d’un objet IUnknown. Incrémente le nombre de références sur n’importe quelle interface ou objet actuellement référencé, et copie l’adresse mémoire de l’interface ou de l’objet dans le paramètre. Cette fonction vous permet de transmettre une référence à la même interface sans appeler QueryInterface.

Syntaxe

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

Paramètres

object Valeur IUnknown à utiliser.

value Une référence de pointeur brut ; via lequel copier le pointeur vers la cible de l’objet IUnknown.

fonction detach_abi

Détache un objet IUnknown de son interface brute IUnknown sans décrémenter le nombre de références, peut-être pour le renvoyer à un appelant.

Syntaxe

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

Paramètres

object Valeur IUnknown à utiliser.

Valeur de retour

Pointeur vers l’interface IUnknown brute référencée par l’objet IUnknown.

fonction get_abi

Retourne l’interface brute IUnknown sous-jacente pointeur si vous devez le passer à une fonction. Vous pouvez appeler AddRef, Releaseou QueryInterface sur le pointeur retourné.

Syntaxe

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

Paramètres

object Valeur IUnknown à utiliser.

Valeur de retour

Pointeur vers l’interface IUnknown brute référencée par l’objet IUnknown.

operator != (opérateur d’inégalité)

Retourne une valeur indiquant si les deux paramètres font référence à des cibles différentes.

Syntaxe

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

Paramètres

left right Une valeur IUnknown dont l’adresse mémoire de la cible doit être comparée à celle de l’autre paramètre.

Valeur de retour

true si les deux paramètres pointent vers des cibles différentes, sinon false.

opérateur< (opérateur inférieur à)

Retourne une valeur indiquant si la cible du premier paramètre se produit plus tôt en mémoire que celle du deuxième paramètre.

Syntaxe

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

Paramètres

left right Une valeur IUnknown dont l’adresse mémoire de la cible doit être comparée à celle de l’autre paramètre.

Valeur de retour

true si l’adresse mémoire de la cible du premier paramètre est inférieure à celle du deuxième paramètre, sinon false.

opérateur<= (opérateur inférieur ou égal à)

Retourne une valeur indiquant si la cible du premier paramètre se produit plus tôt en mémoire que, ou au même emplacement que celui du deuxième paramètre.

Syntaxe

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

Paramètres

left right Une valeur IUnknown dont l’adresse mémoire de la cible doit être comparée à celle de l’autre paramètre.

Valeur de retour

true si l’adresse mémoire du premier paramètre est inférieure ou égale à celle du deuxième paramètre, sinon false.

operator== (opérateur d’égalité)

Retourne une valeur indiquant si les deux paramètres font référence à la même interface et/ou à l’objet.

Syntaxe

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

Paramètres

left right Une valeur IUnknown dont l’adresse mémoire de la cible doit être comparée à celle de l’autre paramètre.

Valeur de retour

true si les deux paramètres pointent vers la même cible, sinon false.

opérateur> (opérateur supérieur à)

Retourne une valeur indiquant si la cible du premier paramètre se produit plus tard dans la mémoire que celle du deuxième paramètre.

Syntaxe

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

Paramètres

left right Une valeur IUnknown dont l’adresse mémoire de la cible doit être comparée à celle de l’autre paramètre.

Valeur de retour

true si l’adresse mémoire de la cible du premier paramètre est supérieure à celle du deuxième paramètre, sinon false.

opérateur>= (opérateur supérieur ou égal à)

Retourne une valeur indiquant si la cible du premier paramètre se produit plus tard dans la mémoire que, ou au même emplacement que celui du deuxième paramètre.

Syntaxe

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

Paramètres

left right Une valeur IUnknown dont l’adresse mémoire de la cible doit être comparée à celle de l’autre paramètre.

Valeur de retour

true si l’adresse mémoire de la cible du premier paramètre est supérieure ou égale à celle du deuxième paramètre, sinon false.

fonction put_abi

Renvoie l’adresse de l’interface brute IUnknown sous-jacente pointeur en tant que pointeur vers un pointeur vers void; cette fonction vous aide à appeler des méthodes (telles que des méthodes COM) qui retournent des références en tant que paramètres sortants via un pointeur vers un pointeur vers void.

Syntaxe

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

Paramètres

object Valeur IUnknown à utiliser.

Valeur de retour

Adresse de l’interface brute IUnknown sous-jacente pointeur.

swap, fonction

Échange le contenu des deux paramètres IUnknown afin qu’ils pointent vers la cible d’un autre.

Syntaxe

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

Paramètres

Une valeur IUnknown dont le pointeur s’échange mutuellement avec celui de l’autre paramètre.

Voir aussi