IMAPIContainer::GetHierarchyTable
S’applique à : Outlook 2013 | Outlook 2016
Retourne un pointeur vers la table de hiérarchie du conteneur.
HRESULT GetHierarchyTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
Paramètres
ulFlags
[in] Masque de bits d’indicateurs qui contrôle la façon dont les informations sont retournées dans la table. Les indicateurs suivants peuvent être définis :
CONVENIENT_DEPTH
Remplit la table de hiérarchie avec des conteneurs de plusieurs niveaux. Si CONVENIENT_DEPTH n’est pas défini, la table de hiérarchie contient uniquement les conteneurs enfants immédiats du conteneur.
MAPI_DEFERRED_ERRORS
GetHierarchyTable peut retourner avec succès, éventuellement avant que la table ne soit mise à la disposition de l’appelant. Si la table n’est pas disponible, l’appel de table suivant peut générer une erreur.
MAPI_UNICODE
Demande que les colonnes qui contiennent des données de chaîne soient retournées au format Unicode. Si l’indicateur MAPI_UNICODE n’est pas défini, les chaînes doivent être retournées au format ANSI.
SHOW_SOFT_DELETES
Affiche les éléments actuellement marqués comme supprimés de manière réversible, c’est-à-dire qu’ils sont dans la phase de temps de conservation des éléments supprimés.
lppTable
[out] Pointeur vers un pointeur vers la table de hiérarchie.
Valeur renvoyée
S_OK
La table de hiérarchie a été récupérée avec succès.
MAPI_E_BAD_CHARWIDTH
Soit l’indicateur MAPI_UNICODE a été défini et l’implémentation ne prend pas en charge Unicode, soit MAPI_UNICODE n’a pas été défini et l’implémentation prend uniquement en charge Unicode.
MAPI_E_NO_SUPPORT
Le conteneur n’a pas de conteneurs enfants et ne peut pas fournir de table de hiérarchie.
Remarques
La méthode IMAPIContainer ::GetHierarchyTable retourne un pointeur vers la table de hiérarchie d’un conteneur. Une table de hiérarchie contient des informations récapitulatives sur les conteneurs enfants dans le conteneur. Les tables de hiérarchie de dossiers contiennent des informations sur les sous-dossiers ; Les tables de hiérarchie de carnets d’adresses contiennent des informations sur les conteneurs de carnets d’adresses enfants et les listes de distribution.
Il est possible que certains conteneurs n’aient pas de conteneurs enfants. Ces conteneurs retournent MAPI_E_NO_SUPPORT à partir de leurs implémentations de GetHierarchyTable.
Lorsque l’indicateur CONVENIENT_DEPTH est défini, chaque ligne de la table de hiérarchie inclut également la propriété PR_DEPTH (PidTagDepth) en tant que colonne. PR_DEPTH indique le niveau de chaque conteneur par rapport au conteneur qui implémente la table. Les conteneurs enfants immédiats du conteneur d’implémentation sont à la profondeur zéro, les conteneurs enfants dans les conteneurs de profondeur zéro sont à la profondeur 1, et ainsi de suite. Les valeurs de PR_DEPTH augmentent séquentiellement à mesure que la hiérarchie des niveaux s’approfondit.
Pour obtenir la liste complète des colonnes obligatoires et facultatives dans les tables de hiérarchie, consultez Tables de hiérarchie.
Remarques pour les responsables de l’implémentation
Si vous prenez en charge une table de hiérarchie pour votre conteneur, vous devez également effectuer les opérations suivantes :
Prise en charge d’un appel à la méthode IMAPIProp ::OpenProperty du conteneur pour ouvrir la propriété PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy).
Retourne PR_CONTAINER_HIERARCHY d’un appel aux méthodes IMAPIProp ::GetPropList ou IMAPIProp ::GetProps du conteneur.
Remarques pour les appelants
Les colonnes de table string et binary contents peuvent être tronquées. En règle générale, les fournisseurs retournent 255 caractères. Étant donné que vous ne pouvez pas savoir à l’avance si une table inclut des colonnes tronquées, supposons qu’une colonne soit tronquée si la longueur de la colonne est de 255 ou 510 octets. Vous pouvez toujours récupérer la valeur complète d’une colonne tronquée, si nécessaire, directement à partir de l’objet en utilisant son identificateur d’entrée pour l’ouvrir, puis en appelant la méthode IMAPIProp ::GetProps .
Selon l’implémentation du fournisseur, les restrictions et les opérations de tri peuvent s’appliquer à la chaîne entière ou à la version tronquée de cette chaîne. En outre, il n’est pas garanti que les fournisseurs de magasin respectent le jeu d’ordre de tri SSortOrderSet spécifié pour les tables de hiérarchie.
Référence MFCMAPI
Pour voir un exemple de code MFCMAPI, consultez le tableau suivant.
Fichier | Fonction | Commentaire |
---|---|---|
HierarchyTableTreeCtrl.cpp |
CHierarchyTableTreeCtrl ::GetHierarchyTable |
La classe CHierarchyTableTreeCtrl utilise GetHierarchyTable pour obtenir des tables de hiérarchie à afficher dans un contrôle d’arborescence. |