Compartilhar via


HrThisThreadAdviseSink

Aplica-se a: Outlook 2013 | Outlook 2016

Cria um coletor de aconselhamento que envolve um coletor de aconselhamento existente para a segurança do thread.

Propriedade Valor
Arquivo de cabeçalho:
Mapiutil.h
Implementado por:
MAPI
Chamado por:
Aplicativos do cliente
HrThisThreadAdviseSink(
  LPMAPIADVISESINK lpAdviseSink,
  LPMAPIADVISESINK FAR * lppAdviseSink
);

Parâmetros

lpAdviseSink

[in] Ponteiro para o coletor de aconselhamento a ser embrulhado.

lppAdviseSink

[out] Ponteiro para um ponteiro para um novo coletor de aconselhamento que envolve o coletor de aconselhamento apontado pelo parâmetro lpAdviseSink .

Valor de retorno

Nenhum.

Comentários

A finalidade do wrapper é garantir que a notificação seja chamada no mesmo thread que chamou a função HrThisThreadAdviseSink . Essa função é usada para proteger retornos de chamada de notificação que devem ser executados em um thread específico.

Os aplicativos cliente devem usar HrThisThreadAdviseSink para restringir quando as notificações são geradas, ou seja, quando as chamadas são feitas para o método IMAPIAdviseSink::OnNotify do objeto de coletor de aconselhamento passado pelo cliente em uma chamada de Aconselhamento anterior. Se as notificações tiverem permissão para serem geradas arbitrariamente, uma implementação de notificação poderá forçar um cliente a uma operação multithread quando isso não for apropriado. Por exemplo, um cliente pode usar uma biblioteca, como uma das Bibliotecas de Classes do Microsoft Foundation, que não dá suporte a chamadas multithread. A notificação em um thread diferente tornaria esse cliente difícil de testar e propenso a erros.

HrThisThreadAdviseSink garante que as chamadas onNotify ocorram apenas nestes horários apropriados:

  • Durante o processamento de uma chamada para qualquer método MAPI.

  • Durante o processamento de mensagens do Windows.

Quando HrThisThreadAdviseSink é implementado, todas as chamadas para o método OnNotify do novo coletor de aconselhamento em qualquer thread fazem com que o método de notificação original seja executado no thread no qual HrThisThreadAdviseSink foi chamado.

Para obter mais informações sobre a notificação e aconselhar coletores, consulte Notificação de Eventos no MAPI e Implementando um objeto Coletor de Aconselhamento.