Compartir a través de


IMAPISupport::Notify

Hace referencia a: Outlook 2013 | Outlook 2016

Envía una notificación de un evento especificado a un origen de aviso que se registró originalmente para la notificación a través del método IMAPISupport::Subscribe .

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

Parameters

lpKey

[in] Puntero a la clave de notificación para el objeto de origen advise. El parámetro lpKey no puede ser NULL.

cNotification

[in] Recuento de estructuras de notificación a las que apunta el parámetro lpNotifications .

lpNotifications

[in] Puntero a una matriz de estructuras NOTIFICATION que describen las notificaciones pendientes.

lpulFlags

[entrada, salida] Máscara de bits de marcas que controla el proceso de notificación. En la entrada, se puede establecer la siguiente marca:

  • MAPI_UNICODE

    Las cadenas de las estructuras de notificación a las que apunta lpNotifications están en formato Unicode. Si no se establece la marca de MAPI_UNICODE, las cadenas están en formato ANSI.

    En la salida, MAPI puede establecer la marca siguiente:

  • NOTIFY_CANCELED

    Una función de devolución de llamada canceló una notificación sincrónica.

Valor devuelto

S_OK

Las notificaciones se generaron correctamente.

Comentarios

El método IMAPISupport::Notify se implementa para todos los objetos de soporte técnico del proveedor de servicios. Los proveedores de servicios llaman a Notify para solicitar que MAPI genere una notificación para un receptor de aviso que se haya registrado previamente para la notificación a través del método IMAPISupport::Subscribe .

Notify copia las estructuras a las que apunta el parámetro lpNotifications en la memoria y llama al método IMAPIAdviseSink::OnNotify del receptor de aviso adecuado. Cuando OnNotify finaliza con la notificación, libera la memoria implicada. El autor de la llamada no necesita asignar memoria; MAPI realiza toda la asignación de memoria necesaria.

Notas para los llamadores

La clave de notificación pasada en el parámetro lpKey debe ser idéntica a la clave que se pasa en lpKey al método IMAPISupport::Subscribe . Muchos proveedores usan el identificador de entrada del origen de aviso como clave, pero se pueden usar otros datos, como una ruta de acceso de archivo. MAPI usa esta clave para buscar todos los registros de notificaciones en el origen de aviso identificado.

Asegúrese de establecer el miembro lpEntryID de la estructura de notificación en un identificador de entrada a largo plazo.

Si establece la marca NOTIFY_SYNC en la llamada Subscribe para cualquiera de las notificaciones pendientes, Notify llama a las funciones de devolución de llamada del método IMAPIAdviseSink::OnNotify antes de devolverla. Un receptor de aviso se puede crear manualmente o llamando a HrAllocAdviseSink. La función HrAllocAdviseSink permite a su autor de llamada especificar una función de devolución de llamada que notify llama como parte de la notificación. La función de devolución de llamada se ajusta al prototipo NOTIFCALLBACK . Las funciones de devolución de llamada implementadas por los clientes siempre devuelven S_OK; Las funciones de devolución de llamada implementadas por los proveedores de servicios pueden devolver CALLBACK_DISCONTINUE.

Si una función de devolución de llamada devuelve CALLBACK_DISCONTINUE, MAPI deja de enviar notificaciones y devuelve NOTIFY_CANCELED en el parámetro lpulFlags del método Notify. Puede suponer que el proceso está inactivo y dejar de generar notificaciones para ese proceso. Si Notify devuelve 0 en lpulFlags, el proceso sigue activo y debe seguir enviando notificaciones, según corresponda.

Cuando use notificaciones sincrónicas, tenga cuidado de evitar situaciones de interbloqueo.

Para obtener más información sobre el proceso de notificación, vea Notificación de eventos en MAPI.

Vea también