Partager via


Accès aux objets à l’aide de la session

S’applique à : Outlook 2013 | Outlook 2016

Le pointeur de session que vous recevez de votre appel à MAPILogonEx peut être utilisé pour accéder à un large éventail d’objets. Le tableau suivant répertorie les méthodes utilisées pour accéder à différents objets :

Object Méthode de session
Section Profil
IMAPISession::OpenProfileSection
Magasin de messages
IMAPISession::OpenMsgStore
Carnet d’adresses
IMAPISession::OpenAddressBook
Objet d’administration du service de message
IMAPISession::AdminServices
Dossier, message, conteneur de carnet d’adresses, liste de distribution ou utilisateur de messagerie
IMAPISession::OpenEntry

Avec la méthode OpenEntry et un identificateur d’entrée valide, vous pouvez ouvrir n’importe quel objet fournisseur de carnet d’adresses ou de magasin de messages. Il existe d’autres méthodes OpenEntry dans MAPI, en plus de la méthode IMAPISession . OpenEntry est implémenté dans les objets suivants :

Object Méthode
Objet d’ouverture de session du fournisseur de carnet d’adresses
IABLogon::OpenEntry
Carnet d’adresses
IAddrBook::OpenEntry
Conteneur de carnet d’adresses
IMAPIContainer::OpenEntry
Session
IMAPISession::OpenEntry
Magasin de messages
IMsgStore::OpenEntry
Objet d’ouverture de session du fournisseur de magasin de messages
IMSLogon::OpenEntry
Folder
IMAPIContainer::OpenEntry
Objet support
IMAPISupport::OpenEntry

Certaines méthodes OpenEntry nécessitent l’ouverture d’un identificateur d’entrée de l’objet, tout comme IMAPISession ::OpenEntry ; d’autres méthodes autorisent la spécification de NULL. Un identificateur d’entrée NULL est interprété différemment selon l’objet . Par exemple, lorsque vous appelez IAddrBook ::OpenEntry avec un identificateur d’entrée NULL, MAPI ouvre le conteneur racine du carnet d’adresses. La méthode OpenEntry de la banque de messages se comporte de la même façon ; il ouvre le dossier racine de la banque de messages. IMAPIContainer ::OpenEntry, implémenté par les dossiers et les conteneurs de carnets d’adresses, peut retourner MAPI_E_INVALID_PARAMETER ou le conteneur racine, en fonction de l’implémenteur.

En plus d’interdire une valeur NULL pour l’identificateur d’entrée, la méthode OpenEntry de la session diffère des autres méthodes OpenEntry , car son travail n’est pas d’ouvrir des objets. Au lieu de cela, il examine l’identificateur d’entrée et transfère l’appel à une autre méthode OpenEntry implémentée par le fournisseur de services approprié. Par exemple, si vous appelez IMAPISession ::OpenEntry avec l’identificateur d’entrée d’un message, MAPI appelle la méthode IMSLogon ::OpenEntry de la banque de messages responsable du message.

En plus d’utiliser la session pour ouvrir des objets, les clients l’utilisent pour les comparer. La méthode IMAPISession ::CompareEntryIDs compare les objets en comparant leurs identificateurs d’entrée. Si les structures MAPIUID contenues dans les identificateurs d’entrée appartiennent au même fournisseur de services, MAPI transfère l’appel à ce fournisseur. CompareEntryIDs retourne une valeur d’erreur lorsque les deux identificateurs d’entrée ne correspondent pas. Bien que cette méthode puisse comparer des identificateurs d’entrée qui appartiennent à n’importe quel type d’objet, CompareEntryIDs fonctionne mieux pour les objets de niveau supérieur tels que les magasins de messages et les conteneurs de carnets d’adresses. Pour comparer des objets de niveau inférieur, comparez directement les clés de recherche des objets (PR_SEARCH_KEY (PidTagSearchKey)) ou les clés d’enregistrement (PR_RECORD_KEY (PidTagRecordKey)).

Comme OpenEntry, CompareEntryIDs est implémenté par plusieurs objets. Choisissez la méthode OpenEntry et CompareEntryID à utiliser en fonction de la quantité d’informations dont vous disposez sur l’objet ou les objets à ouvrir ou comparer. Utilisez les instructions suivantes pour choisir la méthode d’interface à appeler :

  • Si vous n’avez aucune information sur les objets cibles, appelez IMAPISession ::OpenEntry ou IMAPISession ::CompareEntryIDs. Cette approche permet d’accéder à n’importe quel objet, mais est la plus lente des trois.

  • Si vous savez que les objets cibles sont des entrées de carnet d’adresses plutôt que, par exemple, des dossiers, appelez la méthode IAddrBook ::OpenEntry ou IAddrBook ::CompareEntryIDs . IAddrBook ::OpenEntry ouvre le conteneur racine du carnet d’adresses lorsque NULL est spécifié comme objet cible. Cette approche permet d’accéder à n’importe quel objet de carnet d’adresses et est plus rapide que l’utilisation d’IMAPISession, mais plus lente que l’utilisation de IMAPIContainer.

  • Si l’identificateur d’entrée utilisé est un identificateur d’entrée à court terme ou si vous savez que les objets cibles appartiennent à un conteneur ou dossier de carnet d’adresses particulier, appelez la méthode IMAPIContainer ::OpenEntry . Cette approche offre les performances les plus rapides, mais permet d’accéder uniquement aux objets d’un conteneur ou d’un dossier spécifique.