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.