Partilhar via


EventSource Class

Representa um evento não agile. As funções membro EventSource adicionam, removem e invocam manipuladores de eventos. Para eventos agile, use AgileEventSource.

Sintaxe

template<typename TDelegateInterface>
class EventSource;

Parâmetros

TDelegateInterface
A interface para um delegado que representa um manipulador de eventos.

Membros

Construtores públicos

Nome Descrição
EventSource::EventSource Inicializa uma nova instância da classe EventSource.

Métodos públicos

Nome Descrição
EventSource::Add Acrescenta o manipulador de eventos representado pela interface de delegado especificada para o conjunto de manipuladores de eventos do objeto EventSource atual.
EventSource::GetSize Recupera o número de manipuladores de eventos associados ao objeto EventSource atual.
EventSource::InvokeAll Chama cada manipulador de eventos associado ao objeto EventSource atual usando os tipos de argumentos e argumentos especificados.
EventSource::Remove Exclui o manipulador de eventos representado pelo token de registro de evento especificado do conjunto de manipuladores de eventos associados ao objeto EventSource atual.

Membros de dados protegidos

Nome Descrição
EventSource::addRemoveLock_ Sincroniza o acesso à matriz targets_ ao adicionar, remover ou invocar manipuladores de eventos.
EventSource::targets_ Uma matriz de um ou mais manipuladores de eventos.
EventSource::targetsPointerLock_ Sincroniza o acesso a membros de dados internos, mesmo enquanto manipuladores de eventos para esse EventSource estão sendo adicionados, removidos ou invocados.

Hierarquia de herança

EventSource

Requisitos

Cabeçalho: event.h

Namespace: Microsoft::WRL

EventSource::Add

Acrescenta o manipulador de eventos representado pela interface de delegado especificada para o conjunto de manipuladores de eventos do objeto EventSource atual.

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

Parâmetros

delegateInterface
A interface para um objeto delegado, que representa um manipulador de eventos.

token
Quando essa operação é concluída, um identificador que representa o evento. Use esse token como o parâmetro para o método Remove() para descartar o manipulador de eventos.

Valor de retorno

S_OK se tiver êxito; caso contrário, um HRESULT que indica o erro.

EventSource::addRemoveLock_

Sincroniza o acesso à matriz targets_ ao adicionar, remover ou invocar manipuladores de eventos.

Wrappers::SRWLock addRemoveLock_;

EventSource::EventSource

Inicializa uma nova instância da classe EventSource.

EventSource();

EventSource::GetSize

Recupera o número de manipuladores de eventos associados ao objeto EventSource atual.

size_t GetSize() const;

Valor de retorno

O número de manipuladores de eventos em targets_.

EventSource::InvokeAll

Chama cada manipulador de eventos associado ao objeto EventSource atual usando os tipos de argumentos e 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
O tipo do argumento do manipulador de eventos de ordinal zero.

T1
O tipo do primeiro argumento do manipulador de eventos.

T2
O tipo do segundo argumento do manipulador de eventos.

T3
O tipo do terceiro argumento do manipulador de eventos.

T4
O tipo do quarto argumento do manipulador de eventos.

T5
O tipo do quinto argumento do manipulador de eventos.

T6
O tipo do sexto argumento do manipulador de eventos.

T7
O tipo do sétimo argumento do manipulador de eventos.

T8
O tipo do oitavo argumento do manipulador de eventos.

T9
O tipo do nono argumento do manipulador de eventos.

arg0
O argumento do manipulador de eventos de ordinal zero.

arg1
O primeiro argumento do manipulador de eventos.

arg2
O segundo argumento do manipulador de eventos.

arg3
O terceiro argumento do manipulador de eventos.

arg4
O quarto argumento do manipulador de eventos.

arg5
O quinto argumento do manipulador de eventos.

arg6
O sexto argumento do manipulador de eventos.

arg7
O sétimo argumento do manipulador de eventos.

arg8
O oitavo argumento do manipulador de eventos.

arg9
O nono argumento do manipulador de eventos.

EventSource::Remove

Exclui o manipulador de eventos representado pelo token de registro de evento especificado do conjunto de manipuladores de eventos associados ao objeto EventSource atual.

HRESULT Remove(
   EventRegistrationToken token
);

Parâmetros

token
Um identificador que representa um manipulador de eventos. Esse token foi retornado quando o manipulador de eventos foi registrado pelo método Add().

Valor de retorno

S_OK se tiver êxito; caso contrário, um HRESULT que indica o erro.

Comentários

Para obter mais informações sobre a estrutura EventRegistrationToken, confira o tópico Estrutura Windows::Foundation::EventRegistrationToken na documentação de referência do Windows Runtime.

EventSource::targets_

Uma matriz de um ou mais manipuladores de eventos.

ComPtr<Details::EventTargetArray> targets_;

Comentários

Quando o evento representado pelo objeto EventSource atual ocorre, os manipuladores de eventos são chamados.

EventSource::targetsPointerLock_

Sincroniza o acesso a membros de dados internos, mesmo enquanto manipuladores de eventos para esse EventSource estão sendo adicionados, removidos ou invocados.

Wrappers::SRWLock targetsPointerLock_;