Abrir un mensaje
Hace referencia a: Outlook 2013 | Outlook 2016
Para abrir un mensaje
Recupere el identificador de entrada del mensaje de uno de los orígenes siguientes:
Fila que representa el mensaje en la tabla de contenido de su carpeta primaria. Para obtener más información sobre cómo trabajar con una tabla de contenido de carpeta, vea Tablas de contenido.
El miembro lpEntryID de la estructura NEWMAIL_NOTIFICATION que se envía con una nueva notificación por correo. Para obtener más información sobre cómo recibir y controlar notificaciones, consulte Control de notificaciones.
Llamada al método IMAPIProp::GetProps del mensaje que solicita la propiedad PR_ENTRYID (PidTagEntryId).
Llame a uno de los métodos OpenEntry siguientes para abrir el mensaje y establezca lpEntryID en el identificador de entrada del mensaje:
El método más rápido solo se puede usar para los mensajes entrantes e implica llamar al método IMAPIFolder::OpenEntry de la carpeta de recepción. El siguiente método más rápido, llamando al método IMsgStore::OpenEntry del almacén de mensajes, es utilizable para todos los mensajes, como es el método más lento, llamando a IMAPISession::OpenEntry.
Nota:
Las carpetas y sus tablas de contenido se pueden cerrar en cualquier momento sin afectar negativamente a ninguno de los mensajes que se abrieron desde dentro de ellas.
Para abrir un mensaje que se ha guardado en el disco
Llame a StgOpenStorage para recuperar un puntero de interfaz IStorage y pase el nombre del archivo de mensajes para el parámetro pwcsName .
LPSTORAGE pStorage = NULL; HRESULT hr = StgOpenStorage (L"MESSAGE.MSG", NULL, STGM_TRANSACTED | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, NULL, 0, &pStorage);
Llame a OpenIMsgOnIStg para recuperar un puntero de interfaz IMessage para acceder al mensaje.
LPMESSAGE pMessage = NULL; LPMALLOC pMalloc = MAPIGetDefaultMalloc(); hr = OpenIMsgOnIStg (NULL, MAPIAllocateBuffer, MAPIAllocateMore, MAPIFreeBuffer, pMalloc, NULL, pStorage, NULL, 0, 0, &pMessage);