Récupération de l’identité principale et du fournisseur
S’applique à : Outlook 2013 | Outlook 2016
Les fournisseurs de services, généralement des fournisseurs de carnets d’adresses, ont la possibilité de fournir une identité qui peut être utilisée pour représenter la session dans diverses situations. Trois propriétés décrivent l’identité d’un fournisseur :
PR_IDENTITY_ENTRYID (PidTagIdentityEntryId)
PR_IDENTITY_DISPLAY (PidTagIdentityDisplay)
PR_IDENTITY_SEARCH_KEY (PidTagIdentitySearchKey)
Ces propriétés sont définies sur l’identificateur d’entrée, le nom d’affichage et la clé de recherche de l’objet d’identité correspondant, qui est généralement un utilisateur de messagerie. Les fournisseurs qui fournissent une identité définissent également l’indicateur STATUS_PRIMARY_IDENTITY dans leur propriété PR_RESOURCE_FLAGS (PidTagResourceFlags).
Selon vos besoins, vous pouvez utiliser l’identité d’un fournisseur particulier ou l’identité principale pour la session. Vous pouvez également utiliser l’identité d’un fournisseur à des fins d’affichage ou pour récupérer des propriétés, telles que PR_RESOURCE_PATH (PidTagResourcePath). PR_RESOURCE_PATH, si elle est définie, contient le chemin des fichiers utilisés ou créés par le fournisseur. Récupérez la propriété PR_RESOURCE_PATH du fournisseur qui fournit l’identité principale lorsque vous souhaitez localiser les fichiers qui se rapportent à l’utilisateur de la session.
Pour récupérer l’identité d’un fournisseur spécifique
Appelez IMAPISession ::GetStatusTable pour accéder à la table status.
Générez une restriction à l’aide d’une structure SPropertyRestriction pour faire correspondre la colonne PR_PROVIDER_DLL_NAME (PidTagProviderDllName) avec le nom du fournisseur spécifié.
Appelez IMAPITable ::FindRow pour localiser la ligne du fournisseur. L’identité du fournisseur est stockée dans la colonne PR_IDENTITY_ENTRYID , si elle existe.
Pour récupérer l’identité principale d’une session
- Appelez IMAPISession ::QueryIdentity. QueryIdentity base l’identité de session sur l’existence de la valeur STATUS_PRIMARY_IDENTITY dans la colonne PR_RESOURCE_FLAGS pour l’une des lignes de la table status. Si aucune des lignes status n’a cette valeur définie, QueryIdentity affecte l’identité au premier fournisseur de services qui définit les trois propriétés PR_IDENTITY. Si aucun fournisseur de services ne fournit d’identité, QueryIdentity retourne MAPI_W_NO_SERVICE. Dans ce cas, vous devez créer une chaîne de caractères pour représenter un utilisateur générique qui peut servir d’identité principale.
Pour définir explicitement l’identité principale d’une session
- Appelez IMsgServiceAdmin ::SetPrimaryIdentity. Transmettez le MAPIUID pour le fournisseur de services cible.