Delen via


winrt::d elegate struct template (C++/WinRT)

Een type dat u kunt gebruiken om een aangepast type gedelegeerde voor uw eigen gebeurtenissen te declareren. 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. Zie Geparameteriseerde gemachtigden, eenvoudige signalen en callbacks binnen een project voor meer informatie over dat scenario.

Zie Gebeurtenissen afhandelen met behulp van gedelegeerden in C++/WinRT voor meer informatie over het verwerken van gebeurtenissen en codevoorbeelden.

Syntax

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

Template parameters

typename... T Een variantisch sjabloonparameterpakket met de typen parameters die de gedelegeerde doorgeeft wanneer deze wordt aangeroepen.

Requirements

Minimaal ondersteunde SDK: Windows SDK versie 10.0.17134.0 (Windows 10, versie 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() (operator voor functieoproep) 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 Een lambda-type, of meer algemeen, elk type dat de syntaxis van de functieoproep ondersteunt, zoals een std::function.

typename F Een gratis functietype.

typename O Een objecttype.

typename M Een aanwijzer-naar-lid-functietype.

Parameters

lHandler Een lambda-object, of meer algemeen, een object dat syntaxis van functieaanroepen ondersteunt, zoals een std::function, die de gebeurtenis afhandelt.

fHandler Een aanwijzer-naar-vrije-functie, die de gebeurtenis afhandelt.

object Een object waarvan een van de lidfuncties de gebeurtenis afhandelt. Afhankelijk van de overbelasting kan dit object worden vertegenwoordigd door een onbewerkte aanwijzer of een slimme aanwijzer.

method Een aanwijzer-naar-lid-functie, die de gebeurtenis afhandelt.

Remarks

Met de standaardconstructor (1) wordt een lege gemachtigde samengesteld.

Constructor (2) bouwt een gemachtigde die de lambda aanroept met de argumenten van de gemachtigde.

Constructor (3) bouwt een gemachtigde die de functie aanroept met de argumenten voor de gedelegeerde.

Constructor (4) bouwt een gemachtigde die de methode van het puntige object aanroept met de argumenten van de gedelegeerde.

Constructor (5) maakt een gemachtigde die de methode van het object waarnaar wordt verwezen aanroept met de argumenten voor de gedelegeerde.

Constructor (6) bouwt een gedelegeerde die probeert de weak_ref naar een sterke verwijzing op te lossen. Als dit lukt, roept het de methode van het object aan met de argumenten voor gedelegeerden; anders doet het niets.

Constructor (7) bouwt een gemachtigde die probeert de weak_ref naar een sterke verwijzing op te lossen. Als dit lukt, roept deze de lambda aan met de argumenten van de gemachtigde; anders doet het niets. Vereist C++/WinRT versie 2.0.240111.5.

Constructor (8) maakt een gemachtigde die de methode van het gedeelde object aanroept met de argumenten voor de gedelegeerde. Vereist C++/WinRT versie 2.0.240111.5.

Constructor (9) bouwt een gemachtigde die probeert de weak_ptr naar een gedeelde aanwijzer op te lossen. Als dit lukt, roept het de methode van het gedeelde object aan met de argumenten voor gedelegeerden; anders doet het niets. Vereist C++/WinRT versie 2.0.240111.5.

Constructor (10) bouwt een gemachtigde die probeert de weak_ptr om te lossen naar een gedeelde aanwijzer. Als dit lukt, roept deze de lambda aan met de argumenten van de gemachtigde; anders doet het niets. Vereist C++/WinRT versie 2.0.240111.5.

delegate::operator() (operator voor functieoproep)

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

Syntax

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

See also