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.