EventSource – třída

Představuje neagilní událost. EventSource členské funkce přidávají, odebírají a vyvolávají obslužné rutiny událostí. Pro agilní události použijte AgileEventSource.

Syntaxe

template<typename TDelegateInterface>
class EventSource;

Parametry

TDelegateInterface
Rozhraní delegáta, který představuje obslužnou rutinu události.

Členové

Veřejné konstruktory

Jméno popis
EventSource::EventSource Inicializuje novou instanci EventSource třídy.

Veřejné metody

Jméno popis
EventSource::Add Připojí obslužnou rutinu události reprezentované zadaným delegovacím rozhraním k sadě obslužných rutin událostí pro aktuální EventSource objekt.
EventSource::GetSize Načte počet obslužných rutin událostí přidružených k aktuálnímu EventSource objektu.
EventSource::InvokeAll Volá každou obslužnou rutinu události přidruženou k aktuálnímu EventSource objektu pomocí zadaných typů argumentů a argumentů.
EventSource::Remove Odstraní obslužnou rutinu události reprezentovanou zadaným tokenem registrace události ze sady obslužných rutin událostí přidružených k aktuálnímu EventSource objektu.

Chráněné datové členy

Jméno popis
Zdroj událostí::addRemoveLock_ Synchronizuje přístup k poli targets_ při přidávání, odebírání nebo vyvolání obslužných rutin událostí.
EventSource::targets_ Pole jednoho nebo více obslužných rutin událostí.
Zdroj událostí::targetsPointerLock_ Synchronizuje přístup k interním datovým členům, i když se přidávají, odebírají nebo volají obslužné rutiny událostí pro tento zdroj událostí.

Hierarchie dědičnosti

EventSource

Požadavky

Hlavička: event.h

Obor názvů: Microsoft::WRL

EventSource::Add

Připojí obslužnou rutinu události reprezentované zadaným delegovacím rozhraním k sadě obslužných rutin událostí pro aktuální EventSource objekt.

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

Parametry

delegateInterface
Rozhraní pro objekt delegáta, který představuje obslužnou rutinu události.

Token
Po dokončení této operace popisovač, který představuje událost. Tento token použijte jako parametr metody Remove() k zahození obslužné rutiny události.

Vrácená hodnota

S_OK v případě úspěchu; v opačném případě hodnota HRESULT označující chybu.

Zdroj událostí::addRemoveLock_

Synchronizuje přístup k poli targets_ při přidávání, odebírání nebo vyvolání obslužných rutin událostí.

Wrappers::SRWLock addRemoveLock_;

EventSource::EventSource

Inicializuje novou instanci EventSource třídy.

EventSource();

EventSource::GetSize

Načte počet obslužných rutin událostí přidružených k aktuálnímu EventSource objektu.

size_t GetSize() const;

Vrácená hodnota

Počet obslužných rutin událostí v targets_

EventSource::InvokeAll

Volá každou obslužnou rutinu události přidruženou k aktuálnímu EventSource objektu pomocí zadaných typů argumentů a argumentů.

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 obslužné rutiny nuly události.

T1
Typ prvního argumentu obslužné rutiny události.

T2
Typ druhého argumentu obslužné rutiny události.

T3
Typ třetího argumentu obslužné rutiny události.

T4
Typ čtvrtého argumentu obslužné rutiny události.

T5
Typ argumentu páté obslužné rutiny události.

T6
Typ argumentu šesté obslužné rutiny události.

T7
Typ sedmého argumentu obslužné rutiny události.

T8
Typ argumentu obslužné rutiny osmé události.

T9
Typ devátého argumentu obslužné rutiny události.

arg0
Argument obslužné rutiny události nula.

arg1
První argument obslužné rutiny události.

arg2
Druhý argument obslužné rutiny události.

arg3
Třetí argument obslužné rutiny události.

arg4
Čtvrtý argument obslužné rutiny události.

arg5
Argument páté obslužné rutiny události.

arg6
Šestý argument obslužné rutiny události.

arg7
Sedmý argument obslužné rutiny události.

arg8
Argument obslužné rutiny osmé události.

arg9
Argument obslužné rutiny deváté události.

EventSource::Remove

Odstraní obslužnou rutinu události reprezentovanou zadaným tokenem registrace události ze sady obslužných rutin událostí přidružených k aktuálnímu EventSource objektu.

HRESULT Remove(
   EventRegistrationToken token
);

Parametry

Token
Popisovač představující obslužnou rutinu události. Tento token se vrátil při registraci obslužné rutiny události metodou Add().

Vrácená hodnota

S_OK v případě úspěchu; v opačném případě hodnota HRESULT označující chybu.

Poznámky

Další informace o EventRegistrationToken struktuře naleznete v tématu Windows::Foundation::EventRegistrationToken – struktura v referenční dokumentaci prostředí Windows Runtime.

EventSource::targets_

Pole jednoho nebo více obslužných rutin událostí.

ComPtr<Details::EventTargetArray> targets_;

Poznámky

Pokud dojde k události reprezentované aktuálním EventSource objektem, obslužné rutiny událostí jsou volána.

Zdroj událostí::targetsPointerLock_

Synchronizuje přístup k interním datovým členům, i když se přidávají EventSource , odebírají nebo vyvolávají obslužné rutiny událostí.

Wrappers::SRWLock targetsPointerLock_;