Compartir a través de


Registro para una notificación

Hace referencia a: Outlook 2013 | Outlook 2016

Un cliente puede registrarse para las notificaciones de la libreta de direcciones o del almacén de mensajes como parte de su proceso de inicialización.

MAPI admite la notificación en la libreta de direcciones independientemente de si alguno de los proveedores de libreta de direcciones lo admite. La compatibilidad con la notificación en almacenes de mensajes depende del proveedor de almacén de mensajes determinado. Para determinar si un proveedor de almacén de mensajes determinado admite notificaciones, compruebe su propiedad PR_STORE_SUPPORT_MASK (PidTagStoreSupportMask). Si el almacén de mensajes admite notificaciones, se establecerá el bit STORE_NOTIFY_OK.

Regístrese para recibir notificaciones llamando al método Advise de un objeto de origen de aviso. Muchos objetos implementan Advise y los clientes pueden registrarse con esos objetos de varias maneras.

Para registrarse para una notificación

  1. Cree un objeto receptor de aviso MAPI e incremente su recuento de referencias.

  2. Si procede, llame a HrThisThreadAdviseSink para crear un objeto receptor de aviso que ajuste el receptor de aviso original y, a continuación, libere el receptor de consejos original.

  3. Llame a uno de los métodos advise siguientes para completar el registro:

  • Llame a IMAPISession::Advise para registrarse para las notificaciones de sesión o para las notificaciones en una libreta de direcciones o un objeto de almacén de mensajes.

  • Llame a IAddrBook::Advise para registrarse para recibir notificaciones de libreta de direcciones o para notificaciones en un usuario de mensajería, contenedor o lista de distribución.

  • Llame a IABLogon::Advise para registrarse directamente con un proveedor de libreta de direcciones para recibir notificaciones en un usuario de mensajería, contenedor o lista de distribución.

  • Llame a IMsgStore::Advise para registrarse para las notificaciones del almacén de mensajes o para las notificaciones en una carpeta o mensaje.

  • Llame a IMSLogon::Advise para registrarse directamente con un proveedor de almacén de mensajes para recibir notificaciones en una carpeta o mensaje.

  • Llame a IMAPITable::Advise para registrarse para las notificaciones de tabla.

  1. Almacene en caché el número de conexión devuelto por Advise.

  2. Si usa un receptor de aviso encapsulado, suélelo. Una vez registrado el receptor de aviso encapsulado, ya no lo necesitará.

Llamar a IMAPISession::Advise le permite registrarse para recibir notificaciones de error críticas en la sesión general o para varias notificaciones en objetos individuales. Las sesiones envían notificaciones de error críticas a los clientes que han iniciado sesión en sesiones compartidas cuando otro cliente que usa la sesión compartida llama al método IMAPISession::Logoff . Para registrarse para las notificaciones de sesión, pase NULL para el parámetro de identificador de entrada. Para registrarse para las notificaciones en un objeto individual, pase el identificador de entrada del objeto. El método IMAPISession reenvía la llamada al proveedor de servicios adecuado, según lo determinado por la parte MAPIUID del identificador de entrada. Llamar a IMAPISession::Advise para registrarse para las notificaciones de objetos es más sencillo que llamar al método Advise de un proveedor de servicios.

Registrarse con la libreta de direcciones es similar a registrarse con la sesión. Para registrarse para la notificación de errores críticos desde la libreta de direcciones, pase NULL para el identificador de entrada. Para registrarse para las notificaciones en un objeto de libreta de direcciones determinado, especifique el identificador de entrada y los eventos o eventos de interés adecuados. Tenga en cuenta que muchos proveedores de libretas de direcciones no admiten notificaciones en objetos individuales. En su lugar, admiten notificaciones de tabla en sus tablas de contenido y jerarquía.

Se recomienda liberar el receptor de aviso que implemente o cree con HrAllocAdviseSink inmediatamente después de una devolución correcta desde una llamada de Advise . Esto se debe a que es posible que los proveedores de servicios liberen el receptor de aviso después de la llamada a Advise , pero antes de realizar una llamada a Unadvise . Una vez que haya dado al origen de aviso un puntero al receptor de aviso y el número de referencias se haya incrementado en este receptor de aviso, es aconsejable liberarlo a menos que tenga un uso a largo plazo para él.

Nota:

Todos los números de conexión que representan registros de aviso válidos no se publicarán hasta que se realice la llamada Unadvise .