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


Таблицы иерархии

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

Таблица иерархии содержит сведения о папках в хранилище сообщений или контейнерах в контейнере адресной книги. Каждая строка таблицы иерархии содержит набор столбцов с информацией об одной папке или контейнере адресной книги. Иерархические таблицы в основном используются клиентами и реализуются поставщиками хранилища сообщений для отображения дерева папок и вложенных папок и реализуются поставщиками адресных книг для отображения дерева контейнеров в адресной книге. Контейнеры, которые не могут содержать подконтейнеры, о чем свидетельствует отсутствие флага AB_SUBCONTAINERS в свойстве PR_CONTAINER_FLAGS (PidTagContainerFlags), не реализуют таблицу иерархии.

Чтобы получить доступ к таблице иерархии, вызовете:

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

Важно!

Поставщики хранилища не гарантируют соблюдение набора порядка сортировки, указанного для таблиц иерархии.

Вызов IMAPIProp::OpenProperty включает доступ к таблице иерархии путем открытия соответствующего свойства PR_CONTAINER_HIERARCHY. Хотя PR_CONTAINER_HIERARCHY невозможно получить с помощью метода IMAPIProp::GetProps папки или контейнера, он включается в массив тегов свойств, возвращаемый методом IMAPIProp::GetPropList .

PR_CONTAINER_HIERARCHY также можно использовать для включения или исключения таблицы иерархии из операции копирования. Если клиент указывает PR_CONTAINER_HIERARCHY в параметре lpExcludeProps для IMAPIProp::CopyTo в операции копирования, новая папка или контейнер не будет поддерживать иерархическую таблицу исходной папки или контейнера.

Следующие свойства составляют обязательный набор столбцов в таблице иерархии:

Значение
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 содержит имя контейнера или папки, которые должны отображаться при отображении иерархии.

PR_ENTRYID — это идентификатор записи, связанный с этим контейнером или папкой. Ожидается, что это долгосрочный идентификатор входа. Клиенты и MAPI могут передать этот идентификатор записи в OpenEntry , чтобы открыть контейнер или папку и просмотреть их содержимое, вызвав IMAPIContainer::GetContentsTable.

PR_DEPTH — числовое значение, указывающее уровень отступа для этого контейнера или папки с нулевым значением верхнего уровня. Чем глубже в иерархии находится контейнер или папка, тем выше значение свойства PR_DEPTH . Клиенты используют свойство PR_DEPTH , чтобы соответствующим образом отобразить таблицу иерархии, чтобы пользователи могли четко видеть родительские и дочерние связи. Глубина контейнера или папки всегда связана с контейнером или папкой, реализующим таблицу иерархии.

PR_OBJECT_TYPE всегда задано значение MAPI_ABCONT для таблиц иерархии адресных книг и MAPI_FOLDER для таблиц иерархии папок.

PR_DISPLAY_TYPE — это числовое значение, связанное с отображением контейнера или папки в таблице иерархии. Он в основном используется в целях отображения, чтобы визуально различать типы контейнеров или папок. Многие поставщики хранилищ сообщений и адресных книг используют значки для различных типов отображения. Поставщик может предоставить эти значки; MAPI не предоставляет значения по умолчанию.

MAPI определяет множество значений для PR_DISPLAY_TYPE, некоторые из которых допустимы для папок, а другие используются с иерархическими таблицами контейнеров адресных книг. Как правило, PR_DISPLAY_TYPE папки имеет значение DT_FOLDER для указания значка папки по умолчанию, DT_FOLDER_LINK для обозначения значка, представляющего ссылку на другую папку, или DT_FOLDER_SPECIAL для указания значка, относящегося к приложению. DT_FOLDER_LINK используется с папками результатов поиска.

Помимо этих обязательных столбцов таблицы иерархии адресных книг должны содержать свойство PR_CONTAINER_FLAGS . PR_CONTAINER_FLAGS указывает различные атрибуты контейнера в иерархии и используется для отличия одного контейнера от другого.

Необязательным свойством для таблиц иерархии адресной книги является свойство PR_AB_PROVIDER_ID (PidTagAbProviderId).

Таблицы иерархии хранилища сообщений включают следующие свойства в обязательный набор столбцов:

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

Метод Метод
IMAPITable::QueryColumns
IMAPITable::QueryPosition
IMAPITable::SeekRow
IMAPITable::SeekRowApprox
IMAPITable::FindRow
IMAPITable::Restrict
IMAPITable::CreateBookmark
IMAPITable::FreeBookmark
IMAPITable::QueryRows

См. также

Таблицы MAPI