Partager via


modèle de struct winrt ::d elegate (C++/WinRT)

Type que vous pouvez utiliser pour déclarer un type délégué personnalisé pour vos propres événements. delegate supports any number of parameters, and they are not limited to Windows Runtime types.

The delegate type has no ABI (it has no interface for use across application binaries), so its use case is when you're both authoring and consuming an event within the same project. Pour plus d’informations sur ce scénario, consultez délégués paramétrables, signaux simples et rappels au sein d’un projet.

Pour plus d’informations sur la gestion des événements et des exemples de code, consultez Gérer les événements à l’aide de délégués en C++/WinRT.

Syntax

template <typename... T>
struct delegate : Windows::Foundation::IUnknown

Template parameters

typename... T Pack de paramètres de modèle variadic contenant les types des paramètres passés par le délégué lorsqu’il est appelé.

Requirements

SDK minimum pris en charge : Kit de développement logiciel (SDK) Windows 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
delegate::delegate constructor Initializes a new instance of the delegate struct from the input data.

Member operators

Operator Description
delegate ::operator() (opérateur d’appel de fonction) Invokes the delegate represented by the delegate object with the provided arguments.

delegate::delegate constructor

Initializes a new instance of the delegate struct from the input data.

Syntax

delegate(std::nullptr_t = nullptr) noexcept; // (1)

template <typename L>
delegate(L lHandler); // (2)

template <typename F>
delegate(F* fHandler); // (3)

template <typename O, typename M>
delegate(O* object, M method); // (4)

template <typename O, typename M>
delegate(winrt::com_ptr<O>&& object, M method); // (5)

template <typename O, typename M>
delegate(winrt::weak_ref<O>&& object, M method); // (6)

template <typename O, typename M>
delegate(winrt::weak_ref<O>&& object, L lHandler); // (7)

template <typename O, typename M>
delegate(std::shared_ptr<O>&& object, M method); // (8)

template <typename O, typename M>
delegate(std::weak_ptr<O>&& object, M method); // (9)

template <typename O, typename M>
delegate(std::weak_ptr<O>&& object, L lHandler); // (10)

Template parameters

typename L Type lambda, ou plus généralement, tout type qui prend en charge la syntaxe d’appel de fonction, tel qu’un std::function.

typename F Type de fonction libre.

typename O Type d’objet.

typename M Type de fonction pointeur vers membre.

Parameters

lHandler Objet lambda, ou plus généralement, objet qui prend en charge la syntaxe d’appel de fonction, tel qu’un std::function, qui gère l’événement.

fHandler Fonction pointeur vers libre, qui gère l’événement.

object Objet, dont l’une des fonctions membres gère l’événement. Selon la surcharge, cet objet peut être représenté par un pointeur brut ou un pointeur intelligent.

method Fonction pointeur vers membre, qui gère l’événement.

Remarks

Le constructeur par défaut (1) construit un délégué vide.

Le constructeur (2) construit un délégué qui appelle l’expression lambda avec les arguments délégués.

Le constructeur (3) construit un délégué qui appelle la fonction avec les arguments délégués.

Le constructeur (4) construit un délégué qui appelle la méthode de l’objet pointu avec les arguments délégués.

Le constructeur (5) construit un délégué qui appelle la méthode de l’objet référencé avec les arguments délégués.

Le constructeur (6) construit un délégué qui tente de résoudre la weak_ref référence forte. Si elle réussit, elle appelle la méthode de l’objet avec les arguments délégués ; sinon, ça ne fait rien.

Le constructeur (7) construit un délégué qui tente de résoudre la weak_ref référence forte. Si elle réussit, elle appelle l’lambda avec les arguments délégués ; sinon, ça ne fait rien. Nécessite C++/WinRT version 2.0.240111.5.

Le constructeur (8) construit un délégué qui appelle la méthode de l’objet partagé avec les arguments délégués. Nécessite C++/WinRT version 2.0.240111.5.

Le constructeur (9) construit un délégué qui tente de résoudre le weak_ptr pointeur partagé. Si elle réussit, elle appelle la méthode de l’objet partagé avec les arguments délégués ; sinon, ça ne fait rien. Nécessite C++/WinRT version 2.0.240111.5.

Le constructeur (10) construit un délégué qui tente de résoudre le weak_ptr pointeur partagé. Si elle réussit, elle appelle l’lambda avec les arguments délégués ; sinon, ça ne fait rien. Nécessite C++/WinRT version 2.0.240111.5.

delegate ::operator() (opérateur d’appel de fonction)

Invokes the delegate represented by the delegate object with the provided arguments.

Syntax

void operator()(T const&... args) const

See also