Compartilhar via


IMAPISupport::Notify

Aplica-se a: Outlook 2013 | Outlook 2016

Envia uma notificação de um evento especificado para uma fonte de consultoria que originalmente registrou para a notificação por meio do método IMAPISupport::Subscribe .

HRESULT Notify(
LPNOTIFKEY lpKey,
ULONG cNotification,
LPNOTIFICATION lpNotifications,
ULONG FAR * lpulFlags
);

Parâmetros

lpKey

[in] Um ponteiro para a chave de notificação do objeto de origem de aconselhamento. O parâmetro lpKey não pode ser NULL.

cNotification

[in] A contagem de estruturas de notificação apontada pelo parâmetro lpNotifications .

lpNotifications

[in] Um ponteiro para uma matriz de estruturas notification que descrevem notificações pendentes.

lpulFlags

[in, out] Um bitmask de sinalizadores que controla o processo de notificação. Na entrada, o seguinte sinalizador pode ser definido:

  • MAPI_UNICODE

    As cadeias de caracteres nas estruturas de notificação apontadas por lpNotifications estão no formato Unicode. Se o sinalizador MAPI_UNICODE não estiver definido, as cadeias de caracteres estarão no formato ANSI.

    Na saída, MAPI pode definir o seguinte sinalizador:

  • NOTIFY_CANCELED

    Uma função de retorno de chamada cancelou uma notificação síncrona.

Valor de retorno

S_OK

As notificações foram geradas com êxito.

Comentários

O método IMAPISupport::Notify é implementado para todos os objetos de suporte do provedor de serviços. Os provedores de serviços chamam Notificar para solicitar que o MAPI gere uma notificação para um coletor de aconselhamento que já se registrou para a notificação por meio do método IMAPISupport::Subscribe .

Notificar copia as estruturas apontadas pelo parâmetro lpNotifications na memória e chama o método IMAPIAdviseSink::OnNotify do coletor apropriado. Quando OnNotify é concluído com a notificação, ele libera a memória envolvida. O chamador não precisa alocar memória; O MAPI executa toda a alocação de memória necessária.

Notas para chamadores

A chave de notificação passada no parâmetro lpKey deve ser idêntica à chave passada em lpKey para o método IMAPISupport::Subscribe . Muitos provedores usam o identificador de entrada da fonte de aconselhamento como a chave, mas outros dados, como um caminho de arquivo, podem ser usados. O MAPI usa essa chave para localizar todos os registros de notificações na fonte de aconselhamento identificada.

Certifique-se de definir o membro lpEntryID da estrutura de notificação como um identificador de entrada de longo prazo.

Se você definir o sinalizador NOTIFY_SYNC na chamada assinar qualquer uma das notificações pendentes, notifique chamadas para as funções de retorno de chamada do método IMAPIAdviseSink::OnNotify antes de retornar. Um coletor de aconselhamento pode ser criado manualmente ou chamando HrAllocAdviseSink. A função HrAllocAdviseSink permite que seu chamador especifique uma função de retorno de chamada que Notifique chamadas como parte da notificação. A função de retorno de chamada está em conformidade com o protótipo NOTIFCALLBACK . As funções de retorno de chamada implementadas pelos clientes sempre retornam S_OK; As funções de retorno de chamada implementadas pelos provedores de serviços podem retornar CALLBACK_DISCONTINUE.

Se uma função de retorno de chamada retornar CALLBACK_DISCONTINUE, o MAPI interromperá o envio de notificações e retornará NOTIFY_CANCELED no parâmetro lpulFlags do método Notify. Você pode assumir que o processo está inativo e parar de gerar notificações para esse processo. Se Notificar retornar 0 em lpulFlags, o processo ainda estará ativo e você deverá continuar enviando notificações, conforme apropriado.

Ao usar notificações síncronas, tenha cuidado para evitar situações de impasse.

Para obter mais informações sobre o processo de notificação, consulte Notificação de Eventos no MAPI.

Confira também