Таблицы иерархии
Область применения: Outlook 2013 | Outlook 2016
Таблица иерархии содержит сведения о папках в хранилище сообщений или контейнерах в контейнере адресной книги. Каждая строка таблицы иерархии содержит набор столбцов с информацией об одной папке или контейнере адресной книги. Иерархические таблицы в основном используются клиентами и реализуются поставщиками хранилища сообщений для отображения дерева папок и вложенных папок и реализуются поставщиками адресных книг для отображения дерева контейнеров в адресной книге. Контейнеры, которые не могут содержать подконтейнеры, о чем свидетельствует отсутствие флага AB_SUBCONTAINERS в свойстве PR_CONTAINER_FLAGS (PidTagContainerFlags), не реализуют таблицу иерархии.
Чтобы получить доступ к таблице иерархии, вызовете:
IMAPIContainer::GetHierarchyTable.
- Или-
IMAPIProp::OpenProperty передает PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) в качестве тега свойства и IID_IMAPITable в качестве идентификатора интерфейса.
Контейнеры и папки должны поддерживать оба метода получения свойств таблицы. Для поставщиков услуг неприемлемо поддерживать только один способ доступа к этим таблицам, так как клиенты ожидают выбора.
Важно!
Поставщики хранилища не гарантируют соблюдение набора порядка сортировки, указанного для таблиц иерархии.
Вызов 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).
Таблицы иерархии хранилища сообщений включают следующие свойства в обязательный набор столбцов:
PR_FOLDER_TYPE (PidTagFolderType)
PR_SUBFOLDERS (PidTagSubfolders)
PR_CONTENT_COUNT (PidTagContentCount)
PR_CONTENT_UNREAD (PidTagContentUnreadCount)
Поставщики адресных книг должны поддерживать следующие методы IMAPITable в реализации таблиц иерархии, так как они требуются интегрированной адресной книге MAPI: