Compartir a través de


Administrar las notificaciones de almacén de mensajes

Hace referencia a: Outlook 2013 | Outlook 2016

Para registrarse para las notificaciones del almacén de mensajes, llame al método IMAPISession::Advise o IMsgStore::Advise y especifique un identificador de entrada de mensaje, carpeta o almacén de mensajes en el contenido del parámetro lpEntryID . Los proveedores de almacén de mensajes admiten notificaciones de objetos y tablas. Si se registra con objetos de almacén de mensajes determinados, con la jerarquía de carpetas y las tablas de contenido que describen estos objetos, o con ambos objetos y tablas depende de las notificaciones que espera ver, de las llamadas que realice para realizar operaciones y de cómo el proveedor del almacén de mensajes admite la notificación.

Dado que MAPI permite flexibilidad en la forma en que los proveedores admiten notificaciones, tenga en cuenta que no siempre recibirá el mismo tipo de notificación en respuesta a un evento determinado de todos los proveedores de almacén de mensajes. Algunos proveedores de almacén de mensajes no admiten notificaciones en absoluto. Para determinar si el almacén de mensajes que usa admite la notificación, busque el bit STORE_NOTIFY_OK en su propiedad PR_STORE_SUPPORT_MASK (PidTagStoreSupportMask).

En un extremo del espectro de proveedores de almacén de mensajes que admiten la notificación se encuentran los proveedores que generan notificaciones "enriquecidas"; estos proveedores envían notificaciones descriptivas para todos los orígenes de aviso registrados. En el otro extremo están los proveedores de almacén de mensajes que admiten notificaciones limitadas; estos proveedores envían notificaciones generales para un número restringido de orígenes de aviso.

Por ejemplo, si copia un mensaje en una carpeta con la que se ha registrado para recibir notificaciones de objetos copiados y movidos de objetos, puede recibir o no la notificación copiada del objeto. Si lo recibe o no depende de lo siguiente:

Dado que no hay directrices estrictas que describan cómo implementar la notificación de eventos para los proveedores de almacén de mensajes, los clientes no pueden esperar un comportamiento coherente. MAPI realiza recomendaciones sobre cómo implementan los proveedores de almacén de mensajes la notificación de eventos y en la tabla siguiente se describen estas recomendaciones. Lea la tabla de la siguiente manera: después de realizar la operación en la primera columna, espere recibir una notificación del tipo que aparece en la segunda columna si se ha registrado para ese tipo con el objeto enumerado en la tercera columna. Por ejemplo, después de crear una carpeta, recibirá una notificación fnevObjectCreated solo si se ha registrado para las notificaciones fnevObjectCreated con el almacén de mensajes.

Operación Tipo de evento Origen de la recomendación
Crear una carpeta
fnevObjectCreated
Almacén de mensajes
Eliminar una carpeta
fnevObjectDeleted
Carpeta eliminada del almacén de mensajes
Mover una carpeta de una carpeta a otra
fnevObjectMoved
Carpeta movida del almacén de mensajes
Copia de una carpeta de una carpeta a otra
fnevObjectCopied
Almacén de mensajes y carpeta copiada (no se envió ninguna notificación fnevObjectCreated para la nueva copia de la carpeta)
Cambio en una propiedad de carpeta calculada (PR_SUBFOLDERS (PidTagSubfolders), PR_CONTENT_UNREAD (PidTagContentUnreadCount), PR_CONTENT_COUNT (PidTagContentCount)
fnevObjectModified
Carpeta modificada del almacén de mensajes (sin notificación a la carpeta primaria)
Creación de un mensaje
fnevObjectCreated
Almacén de mensajes
Eliminar un mensaje, lo que provoca un cambio en la propiedad PR_CONTENT_COUNT de la carpeta primaria
fnevObjectDeleted
Mensaje eliminado del almacén de mensajes
Mover un mensaje de una carpeta a otra
fnevObjectMoved
Mensaje movido del almacén de mensajes
Copia de un mensaje de una carpeta a otra
fnevObjectCopied
Mensaje copiado del almacén de mensajes (sin notificación fnevObjectCreated para una nueva copia del mensaje)
Guarde un mensaje, lo que provoca un cambio en la propiedad PR_CONTENT_COUNT de la carpeta primaria.
fnevObjectCreated
Almacén de mensajes solo en el primer guardado
Guardar un mensaje
fnevObjectModified
El almacén de mensajes se guarda después de guardar el primer mensaje modificado (Sin notificación a la carpeta primaria)
Completar una operación de búsqueda
fnevSearchComplete
Carpeta de búsqueda del almacén de mensajes
Nuevo mensaje
fnevNewMail
Almacén de mensajes

Nota:

Cuando reciba una notificación de modificación de objeto, recuerde que la parte de la matriz de etiquetas de propiedad de la estructura OBJECT_NOTIFICATION a la que apunta el parámetro lpNotifications en la llamada a OnNotify puede ser NULL o no. Los proveedores de almacén de mensajes no son necesarios para insertar información de propiedad en esta matriz y la mayoría no lo hacen. Asegúrese de que el método OnNotify puede controlar el caso en el que el puntero lpPropTagArray es NULL.

Para la mayoría, si no todas las notificaciones de objetos, actualice la vista de la carpeta o carpetas afectadas.