EventSource — Klasa

Reprezentuje zdarzenie niezwinne. EventSource funkcje składowe dodają, usuń i wywołują programy obsługi zdarzeń. W przypadku zdarzeń agile użyj metody AgileEventSource.

Składnia

template<typename TDelegateInterface>
class EventSource;

Parametry

TDelegateInterface
Interfejs delegata, który reprezentuje procedurę obsługi zdarzeń.

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
EventSource::EventSource Inicjuje nowe wystąpienie klasy EventSource.

Metody publiczne

Nazwa/nazwisko opis
EventSource::Add Dołącza program obsługi zdarzeń reprezentowany przez określony interfejs delegata do zestawu programów obsługi zdarzeń dla bieżącego EventSource obiektu.
EventSource::GetSize Pobiera liczbę programów obsługi zdarzeń skojarzonych z bieżącym EventSource obiektem.
EventSource::InvokeAll Wywołuje każdą procedurę obsługi zdarzeń skojarzoną z bieżącym EventSource obiektem przy użyciu określonych typów argumentów i argumentów.
EventSource::Remove Usuwa program obsługi zdarzeń reprezentowany przez określony token rejestracji zdarzeń z zestawu programów obsługi zdarzeń skojarzonych z bieżącym EventSource obiektem.

Chronione składowe danych

Nazwa/nazwisko opis
EventSource::addRemoveLock_ Synchronizuje dostęp do tablicy targets_ podczas dodawania, usuwania lub wywoływania procedur obsługi zdarzeń.
EventSource::targets_ Tablica co najmniej jednego programu obsługi zdarzeń.
EventSource::targetsPointerLock_ Synchronizuje dostęp do wewnętrznych elementów członkowskich danych, nawet gdy programy obsługi zdarzeń dla tego źródła zdarzeń są dodawane, usuwane lub wywoływane.

Hierarchia dziedziczenia

EventSource

Wymagania

Nagłówek: event.h

Przestrzeń nazw: Microsoft::WRL

EventSource::Add

Dołącza program obsługi zdarzeń reprezentowany przez określony interfejs delegata do zestawu programów obsługi zdarzeń dla bieżącego EventSource obiektu.

HRESULT Add(
   _In_ TDelegateInterface* delegateInterface,
   _Out_ EventRegistrationToken* token
);

Parametry

delegateInterface
Interfejs obiektu delegata, który reprezentuje procedurę obsługi zdarzeń.

Tokenu
Po zakończeniu tej operacji dojście reprezentujące zdarzenie. Użyj tego tokenu jako parametru do metody Remove(), aby odrzucić procedurę obsługi zdarzeń.

Wartość zwracana

S_OK w przypadku powodzenia; w przeciwnym razie hrESULT wskazujący błąd.

EventSource::addRemoveLock_

Synchronizuje dostęp do tablicy targets_ podczas dodawania, usuwania lub wywoływania procedur obsługi zdarzeń.

Wrappers::SRWLock addRemoveLock_;

EventSource::EventSource

Inicjuje nowe wystąpienie klasy EventSource.

EventSource();

EventSource::GetSize

Pobiera liczbę programów obsługi zdarzeń skojarzonych z bieżącym EventSource obiektem.

size_t GetSize() const;

Wartość zwracana

Liczba programów obsługi zdarzeń w targets_.

EventSource::InvokeAll

Wywołuje każdą procedurę obsługi zdarzeń skojarzoną z bieżącym EventSource obiektem przy użyciu określonych typów argumentów i argumentów.

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
);

Parametry

T0
Typ argumentu procedury obsługi zdarzeń zeroth.

T1
Typ pierwszego argumentu procedury obsługi zdarzeń.

T2
Typ drugiego argumentu procedury obsługi zdarzeń.

T3
Typ trzeciego argumentu procedury obsługi zdarzeń.

T4
Typ czwartego argumentu procedury obsługi zdarzeń.

T5
Typ piątego argumentu procedury obsługi zdarzeń.

T6
Typ szóstego argumentu procedury obsługi zdarzeń.

T7
Typ siódmego argumentu procedury obsługi zdarzeń.

T8
Typ ósmego argumentu procedury obsługi zdarzeń.

T9
Typ dziewiątego argumentu procedury obsługi zdarzeń.

arg0
Argument obsługi zdarzeń zeroth.

arg1
Pierwszy argument procedury obsługi zdarzeń.

arg2
Drugi argument procedury obsługi zdarzeń.

arg3
Trzeci argument procedury obsługi zdarzeń.

arg4
Czwarty argument procedury obsługi zdarzeń.

arg5
Piąty argument procedury obsługi zdarzeń.

arg6
Szósty argument procedury obsługi zdarzeń.

arg7
Siódmy argument procedury obsługi zdarzeń.

arg8
Ósmy argument procedury obsługi zdarzeń.

arg9
Dziewiąty argument procedury obsługi zdarzeń.

EventSource::Remove

Usuwa program obsługi zdarzeń reprezentowany przez określony token rejestracji zdarzeń z zestawu programów obsługi zdarzeń skojarzonych z bieżącym EventSource obiektem.

HRESULT Remove(
   EventRegistrationToken token
);

Parametry

Tokenu
Dojście reprezentujące procedurę obsługi zdarzeń. Ten token został zwrócony, gdy program obsługi zdarzeń został zarejestrowany przez metodę Add().

Wartość zwracana

S_OK w przypadku powodzenia; w przeciwnym razie hrESULT wskazujący błąd.

Uwagi

Aby uzyskać więcej informacji na temat EventRegistrationToken struktury, zobacz temat Struktura systemu Windows::Foundation::EventRegistrationToken w dokumentacji referencyjnej środowisko wykonawcze systemu Windows.

EventSource::targets_

Tablica co najmniej jednego programu obsługi zdarzeń.

ComPtr<Details::EventTargetArray> targets_;

Uwagi

Gdy wystąpi zdarzenie reprezentowane przez bieżący EventSource obiekt, wywoływane są programy obsługi zdarzeń.

EventSource::targetsPointerLock_

Synchronizuje dostęp do wewnętrznych elementów członkowskich danych nawet wtedy, gdy programy obsługi zdarzeń są EventSource dodawane, usuwane lub wywoływane.

Wrappers::SRWLock targetsPointerLock_;