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
Název | Popis |
---|---|
EventSource::EventSource | Inicializuje novou instanci EventSource třídy. |
Veřejné metody
Název | 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
Název | 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.
symbol
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.
Návratová 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;
Návratová 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
symbol
Popisovač představující obslužnou rutinu události. Tento token se vrátil při registraci obslužné rutiny události metodou Add().
Návratová 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_;