Compartir a través de


clase EventSource

Representa un evento no ágil. Las funciones miembro EventSource agregan, quitan e invocan controladores de eventos. Para eventos ágiles, use AgileEventSource.

Sintaxis

template<typename TDelegateInterface>
class EventSource;

Parámetros

TDelegateInterface
Interfaz de un delegado que representa un controlador de eventos.

Miembros

Constructores públicos

Nombre Descripción
EventSource::EventSource Inicializa una nueva instancia de la clase EventSource.

Métodos públicos

Nombre Descripción
EventSource::Add Anexa el controlador de eventos representado por la interfaz de delegado especificada al conjunto de controladores de eventos para el objeto EventSource actual.
EventSource::GetSize Recupera el número de controladores de eventos asociados al objeto EventSource actual.
EventSource::InvokeAll Llama a cada controlador de eventos asociado al objeto EventSource actual mediante los tipos de argumento y los argumentos especificados.
EventSource::Remove Elimina el controlador de eventos representado por el token de registro de eventos especificado del conjunto de controladores de eventos asociados al objeto EventSource actual.

Miembros de datos protegidos

Nombre Descripción
EventSource::addRemoveLock_ Sincroniza el acceso a la matriz targets_ al agregar, quitar o invocar controladores de eventos.
EventSource::targets_ Matriz de uno o varios controladores de eventos.
EventSource::targetsPointerLock_ Sincroniza el acceso a miembros de datos internos incluso mientras se agregan, quitan o invocan controladores de eventos para este eventSource.

Jerarquía de herencia

EventSource

Requisitos

Encabezado: event.h

Espacio de nombres: Microsoft::WRL

EventSource::Add

Anexa el controlador de eventos representado por la interfaz de delegado especificada al conjunto de controladores de eventos para el objeto EventSource actual.

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

Parámetros

delegateInterface
Interfaz de un objeto delegado, que representa un controlador de eventos.

token
Cuando se completa esta operación, un identificador que representa el evento. Use este token como parámetro para el método Remove() para descartar el controlador de eventos.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, un HRESULT que indica el error.

EventSource::addRemoveLock_

Sincroniza el acceso a la matriz targets_ al agregar, quitar o invocar controladores de eventos.

Wrappers::SRWLock addRemoveLock_;

EventSource::EventSource

Inicializa una nueva instancia de la clase EventSource.

EventSource();

EventSource::GetSize

Recupera el número de controladores de eventos asociados al objeto EventSource actual.

size_t GetSize() const;

Valor devuelto

Número de controladores de eventos en targets_.

EventSource::InvokeAll

Llama a cada controlador de eventos asociado al objeto EventSource actual mediante los tipos de argumento y los argumentos especificados.

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

Parámetros

T0
Tipo del argumento del controlador de eventos cero.

T1
Tipo del primer argumento del controlador de eventos.

T2
Tipo del segundo argumento del controlador de eventos.

T3
Tipo del tercer argumento del controlador de eventos.

T4
Tipo del cuarto argumento del controlador de eventos.

T5
Tipo del quinto argumento del controlador de eventos.

T6
Tipo del sexto argumento del controlador de eventos.

T7
Tipo del séptimo argumento del controlador de eventos.

T8
Tipo del octavo argumento del controlador de eventos.

T9
Tipo del noveno argumento del controlador de eventos.

arg0
Argumento del controlador de eventos cero.

arg1
Primer argumento del controlador de eventos.

arg2
Segundo argumento del controlador de eventos.

arg3
Tercer argumento del controlador de eventos.

arg4
Cuarto argumento del controlador de eventos.

arg5
Quinto argumento del controlador de eventos.

arg6
Sexto argumento del controlador de eventos.

arg7
Séptimo argumento del controlador de eventos.

arg8
Octavo argumento de controlador de eventos.

arg9
Noveno argumento del controlador de eventos.

EventSource::Remove

Elimina el controlador de eventos representado por el token de registro de eventos especificado del conjunto de controladores de eventos asociados al objeto EventSource actual.

HRESULT Remove(
   EventRegistrationToken token
);

Parámetros

token
Identificador que representa un controlador de eventos. Este token se devolvió cuando el método Add() registró el controlador de eventos.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, un HRESULT que indica el error.

Comentarios

Para obtener más información sobre la estructura EventRegistrationToken, vea el tema Estructura Windows::Foundation::EventRegistrationToken en la documentación de referencia de Windows Runtime.

EventSource::targets_

Matriz de uno o varios controladores de eventos.

ComPtr<Details::EventTargetArray> targets_;

Comentarios

Cuando se produce el evento representado por el objeto EventSource actual, se llama a los controladores de eventos.

EventSource::targetsPointerLock_

Sincroniza el acceso a miembros de datos internos incluso mientras se agregan, quitan o invocan controladores de eventos para este EventSource.

Wrappers::SRWLock targetsPointerLock_;