EventSource-Klasse
Stellt ein nicht agiles Ereignis dar. EventSource
-Memberfunktionen fügen Ereignishandler hinzu, entfernen sie und rufen sie auf. Verwenden Sie für agile Ereignisse AgileEventSource.
Syntax
template<typename TDelegateInterface>
class EventSource;
Parameter
TDelegateInterface
Die Schnittstelle zu einem Delegaten, der einen Ereignishandler darstellt.
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
EventSource::EventSource | Initialisiert eine neue Instanz der EventSource -Klasse. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
EventSource::Add | Fügt den Ereignishandler an, der durch die angegebene Delegatenschnittstelle dargestellt wird, an den Satz von Ereignishandlern für das aktuelle EventSource Objekt an. |
EventSource::GetSize | Ruft die Anzahl der Ereignishandler ab, die dem aktuellen EventSource Objekt zugeordnet sind. |
EventSource::InvokeAll | Ruft jeden ereignishandler, der dem aktuellen EventSource Objekt zugeordnet ist, mithilfe der angegebenen Argumenttypen und Argumente auf. |
EventSource::Remove | Löscht den Ereignishandler, der durch das angegebene Ereignisregistrierungstoken dargestellt wird, aus der Gruppe von Ereignishandlern, die dem aktuellen EventSource Objekt zugeordnet sind. |
Geschützte Datenmember
Name | Beschreibung |
---|---|
EventSource::addRemoveLock_ | Synchronisiert den Zugriff auf das targets_ Array beim Hinzufügen, Entfernen oder Aufrufen von Ereignishandlern. |
EventSource::targets_ | Ein Array von einem oder mehreren Ereignishandlern. |
EventSource::targetsPointerLock_ | Synchronisiert den Zugriff auf interne Datenmber, auch wenn Ereignishandler für diese EventSource hinzugefügt, entfernt oder aufgerufen werden. |
Vererbungshierarchie
EventSource
Anforderungen
Header: event.h
Namespace: Microsoft::WRL
EventSource::Add
Fügt den Ereignishandler an, der durch die angegebene Delegatenschnittstelle dargestellt wird, an den Satz von Ereignishandlern für das aktuelle EventSource
Objekt an.
HRESULT Add(
_In_ TDelegateInterface* delegateInterface,
_Out_ EventRegistrationToken* token
);
Parameter
delegateInterface
Die Schnittstelle zu einem Delegatenobjekt, das einen Ereignishandler darstellt.
token
Wenn dieser Vorgang abgeschlossen ist, wird ein Handle ausgeführt, das das Ereignis darstellt. Verwenden Sie dieses Token als Parameter für die Remove() -Methode, um den Ereignishandler zu verwerfen.
Rückgabewert
S_OK, wenn erfolgreich; andernfalls ein HRESULT, das den Fehler angibt.
EventSource::addRemoveLock_
Synchronisiert den Zugriff auf das targets_ Array beim Hinzufügen, Entfernen oder Aufrufen von Ereignishandlern.
Wrappers::SRWLock addRemoveLock_;
EventSource::EventSource
Initialisiert eine neue Instanz der EventSource
-Klasse.
EventSource();
EventSource::GetSize
Ruft die Anzahl der Ereignishandler ab, die dem aktuellen EventSource
Objekt zugeordnet sind.
size_t GetSize() const;
Rückgabewert
Die Anzahl der Ereignishandler in targets_.
EventSource::InvokeAll
Ruft jeden ereignishandler, der dem aktuellen EventSource
Objekt zugeordnet ist, mithilfe der angegebenen Argumenttypen und Argumente auf.
void InvokeAll();
template <
typename T0
>
void InvokeAll(
T0arg0
);
template <
typename T0,
typename T1
>
void InvokeAll(
T0arg0,
T1arg1
);
template <
typename T0,
typename T1,
typename T2
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2
);
template <
typename T0,
typename T1,
typename T2,
typename T3
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4,
T5arg5
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4,
T5arg5,
T6arg6
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4,
T5arg5,
T6arg6,
T7arg7
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4,
T5arg5,
T6arg6,
T7arg7,
T8arg8
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4,
T5arg5,
T6arg6,
T7arg7,
T8arg8,
T9arg9
);
Parameter
T0
Der Typ des Null-Ereignishandlerarguments.
T1
Der Typ des ersten Ereignishandlerarguments.
T2
Der Typ des zweiten Ereignishandlerarguments.
T3
Der Typ des dritten Ereignishandlerarguments.
T4
Der Typ des vierten Ereignishandlerarguments.
T5
Der Typ des fünften Ereignishandlerarguments.
T6
Der Typ des sechsten Ereignishandlerarguments.
T7
Der Typ des siebten Ereignishandlerarguments.
T8
Der Typ des achten Ereignishandlerarguments.
T9
Der Typ des neunten Ereignishandlerarguments.
arg0
Das Null-Ereignishandler-Argument.
arg1
Das erste Ereignishandlerargument.
arg2
Das zweite Ereignishandlerargument.
arg3
Das dritte Ereignishandlerargument.
arg4
Das vierte Ereignishandlerargument.
arg5
Das fünfte Ereignishandlerargument.
arg6
Das sechste Ereignishandlerargument.
arg7
Das siebte Ereignishandlerargument.
arg8
Das achte Ereignishandlerargument.
arg9
Das neunte Ereignishandlerargument.
EventSource::Remove
Löscht den Ereignishandler, der durch das angegebene Ereignisregistrierungstoken dargestellt wird, aus der Gruppe von Ereignishandlern, die dem aktuellen EventSource
Objekt zugeordnet sind.
HRESULT Remove(
EventRegistrationToken token
);
Parameter
token
Ein Handle, das einen Ereignishandler darstellt. Dieses Token wurde zurückgegeben, wenn der Ereignishandler von der Add() -Methode registriert wurde.
Rückgabewert
S_OK, wenn erfolgreich; andernfalls ein HRESULT, das den Fehler angibt.
Hinweise
Weitere Informationen zur EventRegistrationToken
Struktur finden Sie im Thema "Windows::Foundation::EventRegistrationToken Structure" in der Windows-Runtime Referenzdokumentation.
EventSource::targets_
Ein Array von einem oder mehreren Ereignishandlern.
ComPtr<Details::EventTargetArray> targets_;
Hinweise
Wenn das Ereignis, das durch das aktuelle EventSource
Objekt dargestellt wird, auftritt, werden die Ereignishandler aufgerufen.
EventSource::targetsPointerLock_
Synchronisiert den Zugriff auf interne Datenmmber, auch wenn Ereignishandler dafür EventSource
hinzugefügt, entfernt oder aufgerufen werden.
Wrappers::SRWLock targetsPointerLock_;