Freigeben über


winrt::d elegate-Strukturvorlage (C++/WinRT)

Ein Typ, mit dem Sie einen benutzerdefinierten Delegattyp für Ihre eigenen Ereignisse deklarieren können. 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. Weitere Informationen zu diesem Szenario finden Sie unter Parametrisierte Stellvertretungen, einfache Signale und Rückrufe innerhalb eines Projekts.

Weitere Informationen zum Behandeln von Ereignissen und Codebeispielen finden Sie unter Behandeln von Ereignissen mithilfe von Delegaten in C++/WinRT.

Syntax

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

Template parameters

typename... T Ein variadisches Vorlagenparameterpaket mit den Typen der Parameter, die der Delegat übergeben wird, wenn er aufgerufen wird.

Requirements

Mindestens unterstütztes SDK: Windows SDK-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() (Funktionsaufrufoperator) 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 Ein Lambda-Typ oder allgemeiner jeder Typ, der Funktionsaufrufssyntax unterstützt, z. B. ein std::function.

typename F Ein kostenloser Funktionstyp.

typename O Ein Objekttyp.

typename M Ein Zeiger-zu-Member-Funktionstyp.

Parameters

lHandler Ein Lambda-Objekt oder allgemeiner ein Objekt, das funktionsaufrufsyntax unterstützt, z. B. ein std::functionLambda-Objekt, das das Ereignis behandelt.

fHandler Eine Zeiger-auf-Frei-Funktion, die das Ereignis behandelt.

object Ein Objekt, dessen Memberfunktionen das Ereignis behandeln. Je nach Überladung kann dieses Objekt durch einen unformatierten Zeiger oder einen intelligenten Zeiger dargestellt werden.

method Eine Zeiger-zu-Member-Funktion, die das Ereignis behandelt.

Remarks

Der Standardkonstruktor (1) erstellt einen leeren Delegaten.

Konstruktor (2) erstellt einen Delegaten, der die Lambda-Funktion mit den Stellvertretungsargumenten aufruft.

Konstruktor (3) erstellt einen Delegaten, der die Funktion mit den Stellvertretungsargumenten aufruft.

Konstruktor (4) erstellt einen Delegaten, der die Methode des verweisenden Objekts mit den Stellvertretungsargumenten aufruft.

Konstruktor (5) erstellt einen Delegaten, der die Methode des referenzierten Objekts mit den Stellvertretungsargumenten aufruft.

Konstruktor (6) erstellt einen Delegaten, der versucht, den weak_ref Verweis auf einen starken Verweis aufzulösen. Bei erfolgreicher Ausführung ruft sie die Methode des Objekts mit den Stellvertretungsargumenten auf; andernfalls tut es nichts.

Konstruktor (7) erstellt einen Delegaten, der versucht, den weak_ref Verweis auf einen starken Verweis aufzulösen. Bei erfolgreicher Ausführung ruft sie die Lambda-Funktion mit den Stellvertretungsargumenten auf; andernfalls tut es nichts. Erfordert C++/WinRT, Version 2.0.240111.5.

Konstruktor (8) erstellt einen Delegaten, der die Methode des freigegebenen Objekts mit den Stellvertretungsargumenten aufruft. Erfordert C++/WinRT, Version 2.0.240111.5.

Konstruktor (9) erstellt einen Delegaten, der versucht, den weak_ptr gemeinsam genutzten Zeiger aufzulösen. Bei erfolgreicher Ausführung ruft sie die Methode des freigegebenen Objekts mit den Stellvertretungsargumenten auf; andernfalls tut es nichts. Erfordert C++/WinRT, Version 2.0.240111.5.

Der Konstruktor (10) erstellt einen Delegaten, der versucht, den weak_ptr Zeiger in einen freigegebenen Zeiger aufzulösen. Bei erfolgreicher Ausführung ruft sie die Lambda-Funktion mit den Stellvertretungsargumenten auf; andernfalls tut es nichts. Erfordert C++/WinRT, Version 2.0.240111.5.

delegate::operator() (Funktionsaufrufoperator)

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

Syntax

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

See also