classe EventSource
Rappresenta un evento non agile. Le funzioni membro EventSource
aggiungono, rimuovono ed invocano i gestori di eventi. Per gli eventi Agile, usare AgileEventSource.
Sintassi
template<typename TDelegateInterface>
class EventSource;
Parametri
TDelegateInterface
Interfaccia a un delegato che rappresenta un gestore eventi.
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
EventSource::EventSource | Inizializza una nuova istanza della classe EventSource . |
Metodi pubblici
Nome | Descrizione |
---|---|
EventSource::Add | Aggiunge il gestore eventi rappresentato dall'interfaccia del delegato specificata al set di gestori eventi per l'oggetto corrente EventSource . |
EventSource::GetSize | Recupera il numero di gestori eventi associati all'oggetto corrente EventSource . |
EventSource::InvokeAll | Chiama ogni gestore eventi associato all'oggetto corrente EventSource usando i tipi di argomento e gli argomenti specificati. |
EventSource::Remove | Elimina il gestore eventi rappresentato dal token di registrazione dell'evento specificato dal set di gestori eventi associati all'oggetto corrente EventSource . |
Membri dati protetti
Nome | Descrizione |
---|---|
EventSource::addRemoveLock_ | Sincronizza l'accesso alla matrice targets_ durante l'aggiunta, la rimozione o la chiamata di gestori eventi. |
EventSource::targets_ | Matrice di uno o più gestori eventi. |
EventSource::targetsPointerLock_ | Sincronizza l'accesso ai membri dati interni anche quando i gestori eventi per questo EventSource vengono aggiunti, rimossi o richiamati. |
Gerarchia di ereditarietà
EventSource
Requisiti
Intestazione: event.h
Spazio dei nomi: Microsoft::WRL
EventSource::Add
Aggiunge il gestore eventi rappresentato dall'interfaccia del delegato specificata al set di gestori eventi per l'oggetto corrente EventSource
.
HRESULT Add(
_In_ TDelegateInterface* delegateInterface,
_Out_ EventRegistrationToken* token
);
Parametri
delegateInterface
Interfaccia di un oggetto delegato, che rappresenta un gestore eventi.
token
Al termine di questa operazione, handle che rappresenta l'evento. Usare questo token come parametro per il metodo Remove() per eliminare il gestore eventi.
Valore restituito
S_OK se riesce; in caso contrario, HRESULT indica un errore.
EventSource::addRemoveLock_
Sincronizza l'accesso alla matrice targets_ durante l'aggiunta, la rimozione o la chiamata di gestori eventi.
Wrappers::SRWLock addRemoveLock_;
EventSource::EventSource
Inizializza una nuova istanza della classe EventSource
.
EventSource();
EventSource::GetSize
Recupera il numero di gestori eventi associati all'oggetto corrente EventSource
.
size_t GetSize() const;
Valore restituito
Numero di gestori eventi in targets_.
EventSource::InvokeAll
Chiama ogni gestore eventi associato all'oggetto corrente EventSource
usando i tipi di argomento e gli argomenti specificati.
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
);
Parametri
T0
Tipo dell'argomento del gestore eventi zeroth.
T1
Tipo del primo argomento del gestore eventi.
T2
Tipo del secondo argomento del gestore eventi.
T3
Tipo del terzo argomento del gestore eventi.
T4
Tipo del quarto argomento del gestore eventi.
T5
Tipo del quinto argomento del gestore eventi.
T6
Tipo del sesto argomento del gestore eventi.
T7
Tipo del settimo argomento del gestore eventi.
T8
Tipo dell'ottavo argomento del gestore eventi.
T9
Tipo del nono argomento del gestore eventi.
arg0
Argomento del gestore eventi zeroth.
arg1
Primo argomento del gestore eventi.
arg2
Secondo argomento del gestore eventi.
arg3
Terzo argomento del gestore eventi.
arg4
Quarto argomento del gestore eventi.
arg5
Quinto argomento del gestore eventi.
arg6
Sesto argomento del gestore eventi.
arg7
Settimo argomento del gestore eventi.
arg8
Ottavo argomento del gestore eventi.
arg9
Il nono argomento del gestore eventi.
EventSource::Remove
Elimina il gestore eventi rappresentato dal token di registrazione dell'evento specificato dal set di gestori eventi associati all'oggetto corrente EventSource
.
HRESULT Remove(
EventRegistrationToken token
);
Parametri
token
Handle che rappresenta un gestore eventi. Questo token è stato restituito quando il gestore eventi è stato registrato dal metodo Add().
Valore restituito
S_OK se riesce; in caso contrario, HRESULT indica un errore.
Osservazioni:
Per altre informazioni sulla EventRegistrationToken
struttura, vedere l'argomento Struttura Windows::Foundation::EventRegistrationToken nella documentazione di riferimento di Windows Runtime .
EventSource::targets_
Matrice di uno o più gestori eventi.
ComPtr<Details::EventTargetArray> targets_;
Osservazioni:
Quando si verifica l'evento rappresentato dall'oggetto corrente EventSource
, vengono chiamati i gestori eventi.
EventSource::targetsPointerLock_
Sincronizza l'accesso ai membri dati interni anche quando i gestori eventi per questo EventSource
vengono aggiunti, rimossi o richiamati.
Wrappers::SRWLock targetsPointerLock_;