Partager via


Tables de hiérarchie

S’applique à : Outlook 2013 | Outlook 2016

Une table de hiérarchie contient des informations sur les dossiers d’un magasin de messages ou les conteneurs d’un conteneur de carnet d’adresses. Chaque ligne d’une table de hiérarchie contient un ensemble de colonnes contenant des informations sur un dossier ou un conteneur de carnet d’adresses. Les tables de hiérarchie sont principalement utilisées par les clients et implémentées par les fournisseurs de magasins de messages pour afficher une arborescence de dossiers et de sous-dossiers, et implémentées par les fournisseurs de carnets d’adresses pour afficher une arborescence de conteneurs dans le carnet d’adresses. Les conteneurs qui ne peuvent pas contenir de sous-conteneurs, comme indiqué par l’absence de l’indicateur AB_SUBCONTAINERS dans leur propriété PR_CONTAINER_FLAGS (PidTagContainerFlags), n’implémentent pas de table de hiérarchie.

Une table de hiérarchie est accessible en appelant :

Les conteneurs et les dossiers doivent prendre en charge les deux techniques de récupération des propriétés de table. Il est inacceptable que les fournisseurs de services prennent en charge une seule façon d’accéder à ces tables, car les clients s’attendent à avoir le choix.

Importante

Il n’est pas garanti que les fournisseurs de magasin respectent l’ordre de tri défini pour les tables de hiérarchie.

L’appel à IMAPIProp ::OpenProperty implique l’accès à la table de hiérarchie en ouvrant sa propriété correspondante, PR_CONTAINER_HIERARCHY. Bien que les PR_CONTAINER_HIERARCHY ne puissent pas être récupérés par le biais de la méthode IMAPIProp ::GetProps d’un dossier ou d’un conteneur, elles sont incluses dans le tableau de balises de propriété retourné par la méthode IMAPIProp ::GetPropList .

PR_CONTAINER_HIERARCHY peut également être utilisé pour inclure ou exclure une table de hiérarchie d’une opération de copie. Si un client spécifie PR_CONTAINER_HIERARCHY dans le paramètre lpExcludeProps pour IMAPIProp ::CopyTo dans une opération de copie, le nouveau dossier ou conteneur ne prend pas en charge la table hiérarchique du dossier ou conteneur d’origine.

Les propriétés suivantes composent l’ensemble de colonnes requis dans une table de hiérarchie :

Valeur
PR_COMMENT (PidTagComment)
PR_DEPTH (PidTagDepth)
PR_DISPLAY_NAME (PidTagDisplayName)
PR_DISPLAY_TYPE (PidTagDisplayType)
PR_ENTRYID (PidTagEntryId)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_OBJECT_TYPE (PidTagObjectType)
PR_STATUS (PidTagStatus)

PR_DISPLAY_NAME contient le nom du conteneur ou du dossier qui doit apparaître dans l’affichage de la hiérarchie.

PR_ENTRYID est l’identificateur d’entrée associé à ce conteneur ou dossier. Il s’agit normalement d’un identificateur d’entrée à long terme. Les clients et MAPI peuvent transmettre cet identificateur d’entrée à OpenEntry pour ouvrir le conteneur ou le dossier et afficher son contenu en appelant IMAPIContainer ::GetContentsTable.

PR_DEPTH est une valeur numérique qui indique le niveau de retrait de ce conteneur ou dossier, zéro étant le niveau supérieur. Plus un conteneur ou un dossier est profond dans la hiérarchie, plus la valeur de sa propriété PR_DEPTH est élevée. Les clients utilisent la propriété PR_DEPTH pour afficher une table de hiérarchie de manière appropriée afin que les utilisateurs puissent voir clairement les relations parent et enfant. La profondeur du conteneur ou du dossier est toujours relative au conteneur ou au dossier qui implémente la table de hiérarchie.

PR_OBJECT_TYPE est toujours défini sur MAPI_ABCONT pour les tables de hiérarchie de carnets d’adresses et MAPI_FOLDER pour les tables de hiérarchie de dossiers.

PR_DISPLAY_TYPE est une valeur numérique liée à la façon dont un conteneur ou un dossier est affiché dans la table de hiérarchie. Il est principalement utilisé à des fins d’affichage, pour différencier visuellement les types de conteneurs ou de dossiers. De nombreux fournisseurs de magasins de messages et de carnets d’adresses utilisent des icônes pour les différents types d’affichage. C’est au fournisseur de fournir ces icônes ; MAPI ne fournit pas de valeurs par défaut.

MAPI définit de nombreuses valeurs pour PR_DISPLAY_TYPE, certaines valides pour les dossiers et d’autres qui sont utilisées avec les tables de hiérarchie des conteneurs de carnets d’adresses. En règle générale, la PR_DISPLAY_TYPE d’un dossier est définie sur DT_FOLDER pour indiquer une icône de dossier par défaut, DT_FOLDER_LINK pour indiquer une icône qui représente un lien vers un autre dossier ou DT_FOLDER_SPECIAL pour indiquer une icône spécifique à l’application. DT_FOLDER_LINK est utilisé avec les dossiers de résultats de recherche.

En plus de ces colonnes requises, les tables de hiérarchie du carnet d’adresses doivent inclure la propriété PR_CONTAINER_FLAGS . PR_CONTAINER_FLAGS indique différents attributs relatifs à un conteneur dans la hiérarchie et est utilisé pour distinguer un conteneur d’un autre.

Une propriété facultative pour les tables de hiérarchie de carnet d’adresses est la propriété PR_AB_PROVIDER_ID (PidTagAbProviderId).

Les tables de hiérarchie des magasins de messages incluent ces propriétés dans leur ensemble de colonnes requis :

Les fournisseurs de carnets d’adresses doivent prendre en charge les méthodes IMAPITable suivantes dans leurs implémentations de table de hiérarchie, car elles sont requises par le carnet d’adresses intégré MAPI :

Méthode Méthode
IMAPITable::QueryColumns
IMAPITable::QueryPosition
IMAPITable::SeekRow
IMAPITable::SeekRowApprox
IMAPITable::FindRow
IMAPITable::Restrict
IMAPITable::CreateBookmark
IMAPITable::FreeBookmark
IMAPITable::QueryRows

Voir aussi

MAPI Tables