Profils MAPI
S’applique à : Outlook 2013 | Outlook 2016
Un profil stocke des informations sur les fournisseurs de services et les services de messagerie installés sur un ordinateur. Pour chaque session, un client au moment de l’ouverture de session sélectionne un profil qui décrit les fournisseurs et les services à utiliser. Un client peut choisir parmi une collection de profils et, si vous le souhaitez, en établir un par défaut. Le profil par défaut est le profil sélectionné automatiquement lorsqu’un client démarre une session et n’a pas explicitement spécifié de profil.
Dans ces rubriques, vous trouverez également une discussion sur le cache de surnoms, qui est stocké dans un flux binaire.
Sections de profil
Les profils sont divisés en sections auxquelles les clients et les fournisseurs de services accèdent pour afficher les propriétés de profil aux utilisateurs ou pour apporter des modifications à la configuration. Une section de profil est un objet MAPI qui implémente l’interface IProfSect , une interface qui dérive de IMAPIProp et qui n’a aucune méthode supplémentaire. Pour plus d’informations, consultez IProfSect : IMAPIProp. Son seul objectif est de manipuler les propriétés d’une section de profil. Pour récupérer un pointeur IProfSect vers une section de profil particulière, les clients et les fournisseurs de services appellent les méthodes suivantes.
Propriété | Valeur |
---|---|
Les clients peuvent appeler : |
IMAPISession::OpenProfileSection |
Les fournisseurs de services peuvent appeler : |
IMAPISupport::OpenProfileSection |
Les clients ou les fournisseurs peuvent appeler : |
IProviderAdmin::OpenProfileSection |
Les profils sont organisés hiérarchiquement comme mapISVC. Fichier INF. En haut de la hiérarchie, il y a des sections de profil qui contiennent des informations pertinentes pour le profil. Le niveau intermédiaire inclut des sections qui contiennent des informations sur un service de messagerie particulier et le niveau inférieur inclut des sections qui contiennent des informations sur l’un des fournisseurs de services dans un service de messagerie.
Chaque profil a plusieurs propriétés requises qui sont stockées dans une ou plusieurs sections du profil. Par exemple, chaque profil a les propriétés PR_PROFILE_NAME (PidTagProfileName) et PR_SEARCH_KEY (PidTagSearchKey). La clé de recherche d’un profil est définie sur la valeur définie dans MAPIGUID. H comme MUID_PROFILE_INSTANCE et est toujours garanti d’être unique parmi tous les profils. Bien que deux profils puissent avoir le même nom, ils ne peuvent pas avoir la même clé de recherche. Les clés de recherche doivent être traitées comme des données binaires au lieu de données d’un type particulier.
Les fournisseurs de magasins de messages doivent inclure la propriété PR_DISPLAY_NAME de leur magasin de messages (PidTagDisplayName) dans les sections de profil pour le profil et pour leur fournisseur de magasin de messages, et pour conserver ces entrées synchronisées. Lorsqu’une banque de messages est créée, le fournisseur définit PR_DISPLAY_NAME en fonction de la valeur stockée dans ces sections de profil.
Il existe deux différences majeures entre les sections de profil et les autres objets qui héritent de IMAPIProp :
Les sections de profil ne prennent pas en charge les transactions.
Les sections de profil ne prennent pas en charge les propriétés nommées, retournant MAPI_E_NO_SUPPORT à partir de leurs implémentations IMAPIProp ::GetIDsFromNames et IMAPIProp ::GetNamesFromIDs . Pour plus d’informations, consultez IMAPIProp ::GetIDsFromNames et IMAPIProp ::GetNamesFromIDs.
Étant donné que les sections de profil ne prennent pas en charge les transactions, toutes les modifications apportées avec les appels à IMAPIProp ::CopyProps, CopyTo ou SetProps prennent immédiatement effet. Pour plus d’informations, consultez IMAPIProp ::CopyProps. Les clients et les fournisseurs de services peuvent appeler la méthode IMAPIProp ::SaveChanges d’une section de profil et elle réussit, mais elle n’affecte pas les données de la section de profil. Pour plus d’informations, consultez IMAPIProp ::SaveChanges. Le fait que des modifications se produisent immédiatement peut affecter la façon dont les fournisseurs de services implémentent les feuilles de propriétés que les clients utilisent pour afficher les propriétés de profil aux utilisateurs. Les fournisseurs de services qui souhaitent que les utilisateurs puissent reporter ou annuler les modifications doivent implémenter leurs feuilles de propriétés avec des copies des sections de profil au lieu des sections réelles. En utilisant des copies, les utilisateurs peuvent apporter des modifications, puis les annuler ultérieurement, en laissant les sections de profil d’origine intactes.
L’ordre dans lequel les informations apparaissent dans un profil affecte la façon dont MAPI configure les ressources et effectue des affectations dans une session. Les affectations suivantes sont affectées par l’ordre de profil :
Magasin de messages par défaut
Carnet d’adresses personnel
Chemin de recherche de la banque de messages par défaut
Chemin de recherche du carnet d’adresses par défaut
Ordre du fournisseur de transport
MAPI définit la banque de messages par défaut comme étant la première banque de messages du profil dont l’indicateur STATUS_DEFAULT_STORE est défini dans sa propriété PR_RESOURCE_FLAGS (PidTagResourceFlags), ce qui indique qu’il peut s’agir du magasin par défaut. Les clients peuvent remplacer ce paramètre en appelant IMAPISession ::SetDefaultStore. Pour plus d’informations, consultez IMAPISession ::SetDefaultStore.
MAPI crée un ordre de transport pour la gestion des messages sortants et entrants. Lorsque plusieurs fournisseurs de transport se sont inscrits pour un message d’un type particulier, MAPI utilise cet ordre pour déterminer quel fournisseur doit gérer le message. MAPI définit l’ordre de transport comme étant l’ordre dans lequel les fournisseurs de transport ont été ajoutés au profil, à une exception près : les transports qui définissent l’indicateur STATUS_XP_PREFER_LAST dans leur propriété PR_RESOURCE_FLAGS sont placés en dernier dans l’ordre. Les clients peuvent définir l’ordre de transport en appelant IMsgServiceAdmin ::MsgServiceTransportOrder. Pour plus d’informations, consultez IMsgServiceAdmin ::MsgServiceTransportOrder.
Ces instructions pour la commande des fournisseurs de services et des services de messagerie peuvent parfois être en conflit. En cas de conflit, votre code doit résoudre le conflit. Vous pouvez utiliser le programme Panneau de configuration de messagerie pour inspecter un profil que vous avez créé afin de déterminer si les fournisseurs ont été configurés comme prévu.