Clés d’enregistrement et de recherche MAPI
S’applique à : Outlook 2013 | Outlook 2016
Les clés d’enregistrement et les clés de recherche sont des identificateurs binaires qui sont affectés à de nombreux objets MAPI. Contrairement à l’identificateur d’entrée d’un objet, son enregistrement ou sa clé de recherche est directement comparable et peut être transmis.
Clés d’enregistrement
Une clé d’enregistrement est utilisée pour comparer deux objets. Les objets de magasin de messages et de carnet d’adresses doivent avoir des clés d’enregistrement, qui sont stockées dans leur propriété PR_RECORD_KEY (PidTagRecordKey). Étant donné qu’une clé d’enregistrement identifie un objet et non ses données, chaque instance d’un objet a une clé d’enregistrement unique. L’étendue d’une clé d’enregistrement pour les dossiers et les messages est la banque de messages. L’étendue des conteneurs de carnets d’adresses, des utilisateurs de messagerie et des listes de distribution est l’ensemble des conteneurs de niveau supérieur fournis par MAPI pour une utilisation dans le carnet d’adresses intégré.
Les clés d’enregistrement peuvent être dupliquées dans une autre ressource. Par exemple, différents messages dans deux magasins de messages différents peuvent avoir la même clé d’enregistrement. Cela diffère des identificateurs d’entrée à long terme ; Étant donné que les identificateurs d’entrée à long terme contiennent une référence au fournisseur de services, ils ont une portée plus large. La clé d’enregistrement d’un magasin de messages est similaire à l’étendue d’un identificateur d’entrée à long terme ; il doit être unique parmi tous les fournisseurs de magasins de messages. Pour garantir cette unicité, les fournisseurs de magasins de messages définissent généralement leur clé d’enregistrement sur une valeur qui est la combinaison de leur propriété PR_MDB_PROVIDER (PidTagStoreProvider) et d’un identificateur propre à la banque de messages.
Clés de recherche
Une clé de recherche est utilisée pour comparer les données dans deux objets. La clé de recherche d’un objet est stockée dans sa propriété PR_SEARCH_KEY (PidTagSearchKey). Étant donné qu’une clé de recherche représente les données d’un objet et non l’objet lui-même, deux objets différents avec les mêmes données peuvent avoir la même clé de recherche. Lorsqu’un objet est copié, par exemple, l’objet d’origine et sa copie ont les mêmes données et la même clé de recherche.
Les messages et les utilisateurs de messagerie ont des clés de recherche. La clé de recherche d’un message est un identificateur unique des données du message. Les fournisseurs de magasins de messages fournissent la propriété PR_SEARCH_KEY d’un message au moment de la création du message. La clé de recherche d’une entrée de carnet d’adresses est calculée à partir de son type d’adresse (PR_ADDRTYPE (PidTagAddressType)) et de son adresse (PR_EMAIL_ADDRESS (PidTagEmailAddress)). Si l’entrée du carnet d’adresses est accessible en écriture, sa clé de recherche peut ne pas être disponible tant que le type d’adresse et l’adresse n’ont pas été définis à l’aide de la méthode IMAPIProp ::SetProps et que l’entrée n’a pas été enregistrée à l’aide de la méthode IMAPIProp ::SaveChanges . Lorsque ces propriétés d’adresse changent, il est possible que la clé de recherche correspondante ne soit pas synchronisée avec les nouvelles valeurs tant que les modifications n’ont pas été validées avec un appel SaveChanges .
La valeur de la clé d’enregistrement d’un objet peut être identique ou différente de la valeur de sa clé de recherche, selon le fournisseur de services. Certains fournisseurs de services utilisent la même valeur pour la clé de recherche, la clé d’enregistrement et l’identificateur d’entrée d’un objet. D’autres fournisseurs de services attribuent des valeurs uniques pour chacun des identificateurs de ses objets.