Condividi tramite


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