Поделиться через


IMAPIContainer::GetHierarchyTable

Область применения: Outlook 2013 | Outlook 2016

Возвращает указатель на таблицу иерархии контейнера.

HRESULT GetHierarchyTable(
  ULONG ulFlags,
  LPMAPITABLE FAR * lppTable
);

Параметры

ulFlags

[в] Битовая маска флагов, управляющая тем, как информация возвращается в таблице. Можно задать следующие флаги:

CONVENIENT_DEPTH

Заполняет таблицу иерархии контейнерами с нескольких уровней. Если CONVENIENT_DEPTH не задано, таблица иерархии содержит только непосредственные дочерние контейнеры контейнера.

MAPI_DEFERRED_ERRORS

GetHierarchyTable может успешно возвращать данные, возможно, до того, как таблица будет доступна вызывающей. Если таблица недоступна, последующий вызов таблицы может вызвать ошибку.

MAPI_UNICODE

Запрашивает возврат столбцов, содержащих строковые данные, в формате Юникода. Если флаг MAPI_UNICODE не задан, строки должны быть возвращены в формате ANSI.

SHOW_SOFT_DELETES

Показывает элементы, которые в настоящее время помечены как обратимо удаленные, то есть находятся на этапе хранения удаленных элементов.

lppTable

[out] Указатель на указатель на таблицу иерархии.

Возвращаемое значение

S_OK

Таблица иерархии успешно получена.

MAPI_E_BAD_CHARWIDTH

Либо был установлен флаг MAPI_UNICODE и реализация не поддерживает Юникод, либо MAPI_UNICODE не задан и реализация поддерживает только Юникод.

MAPI_E_NO_SUPPORT

Контейнер не имеет дочерних контейнеров и не может предоставить таблицу иерархии.

Замечания

Метод IMAPIContainer::GetHierarchyTable возвращает указатель на таблицу иерархии контейнера. Иерархическая таблица содержит сводную информацию о дочерних контейнерах в контейнере. Таблицы иерархии папок содержат сведения о вложенных папках; Таблицы иерархии адресных книг содержат сведения о контейнерах дочерних адресных книг и списках рассылки.

Некоторые контейнеры могут не иметь дочерних контейнеров. Эти контейнеры возвращают MAPI_E_NO_SUPPORT из своих реализаций GetHierarchyTable.

При установке флага CONVENIENT_DEPTH каждая строка в таблице иерархии также содержит свойство PR_DEPTH (PidTagDepth) в качестве столбца. PR_DEPTH указывает уровень каждого контейнера относительно контейнера, реализующего таблицу. Непосредственные дочерние контейнеры реализации находятся на нулевой глубине, дочерние контейнеры в контейнерах нулевой глубины находятся на глубине 1 и т. д. Значения PR_DEPTH увеличиваться последовательно по мере углубления иерархии уровней.

Полный список обязательных и необязательных столбцов в таблицах иерархии см. в разделе Таблицы иерархии.

Примечания для исполнителей

Если вы поддерживаете таблицу иерархии для контейнера, необходимо также выполнить следующие действия:

Примечания для вызывающих методов

Столбцы таблицы строкового и двоичного содержимого могут быть усечены. Как правило, поставщики возвращают 255 символов. Так как вы не можете заранее узнать, содержит ли таблица усеченные столбцы, предположим, что столбец усечен, если длина столбца составляет 255 или 510 байт. При необходимости можно получить полное значение усеченного столбца непосредственно из объекта, используя его идентификатор записи, чтобы открыть его, а затем вызвать метод IMAPIProp::GetProps .

В зависимости от реализации поставщика ограничения и операции сортировки могут применяться ко всей строке или к усеченной версии этой строки. Кроме того, поставщики хранилища не гарантируют соблюдение набора порядка сортировки SSortOrderSet , указанного для таблиц иерархии.

Справочные материалы по MFCMAPI

Пример кода MFCMAPI указан в приведенной ниже таблице.

Файл Функция Comment
HierarchyTableTreeCtrl.cpp
CHierarchyTableTreeCtrl::GetHierarchyTable
Класс CHierarchyTableTreeCtrl использует GetHierarchyTable для получения таблиц иерархии для отображения в элементе управления представлением в виде дерева.

См. также

IMAPIProp::GetPropList

IMAPIProp::GetProps

IMAPITable : IUnknown

Каноническое свойство PidTagContainerHierarchy

IMAPIContainer : IMAPIProp

Mfcmapi (en) � �������� ������� ����