Partager via


Ouverture d’un message

S’applique à : Outlook 2013 | Outlook 2016

Pour ouvrir un message

  1. Récupérez l’identificateur d’entrée du message à partir de l’une des sources suivantes :

    • Ligne qui représente le message dans la table des matières de son dossier parent. Pour plus d’informations sur l’utilisation d’une table de contenu de dossier, consultez Tables de contenu.

    • Membre lpEntryID de la structure NEWMAIL_NOTIFICATION envoyée avec une nouvelle notification par courrier électronique. Pour plus d’informations sur la réception et la gestion des notifications, consultez Gestion des notifications.

    • Appel à la méthode IMAPIProp ::GetProps du message demandant la propriété PR_ENTRYID (PidTagEntryId).

  2. Appelez l’une des méthodes OpenEntry suivantes pour ouvrir le message, en définissant lpEntryID sur l’identificateur d’entrée du message :

La méthode la plus rapide est utilisable uniquement pour les messages entrants et implique l’appel de la méthode IMAPIFolder ::OpenEntry du dossier de réception. La méthode la plus rapide suivante, l’appel de la méthode IMsgStore ::OpenEntry de la banque de messages, est utilisable pour tous les messages, car elle est la méthode la plus lente, en appelant IMAPISession ::OpenEntry.

Remarque

Les dossiers et leurs tables de contenu peuvent être fermés à tout moment sans affecter négativement les messages qui ont été ouverts à partir de ces derniers.

Pour ouvrir un message qui a été enregistré sur le disque

  1. Appelez StgOpenStorage pour récupérer un pointeur d’interface IStorage , en passant le nom du fichier de message pour le paramètre pwcsName .

     LPSTORAGE pStorage = NULL;
     HRESULT hr = StgOpenStorage (L"MESSAGE.MSG", NULL,
                                 STGM_TRANSACTED |
                                 STGM_READWRITE |
                                 STGM_SHARE_EXCLUSIVE,
                                 NULL, 0, &pStorage);
    
    
  2. Appelez OpenIMsgOnIStg pour récupérer un pointeur d’interface IMessage pour accéder au message.

     LPMESSAGE pMessage = NULL;
     LPMALLOC pMalloc = MAPIGetDefaultMalloc();
     hr = OpenIMsgOnIStg (NULL, MAPIAllocateBuffer, MAPIAllocateMore,
                         MAPIFreeBuffer, pMalloc, NULL, pStorage,
                         NULL, 0, 0, &pMessage);