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


Таблицы содержимого

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

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

Существует два типа таблиц содержимого папок:

  • Таблицы стандартного содержимого содержат стандартные сообщения — сообщения, которые можно передавать и делать видимыми для пользователя.

  • Связанные таблицы содержимого содержат скрытые, не передаваемые сведения, созданные клиентом для определенной цели, например для хранения альтернативного представления стандартного сообщения. Связанные сведения создаются путем передачи флага MAPI_ASSOCIATED вызову IMAPIFolder::CreateMessage .

Таблицы содержимого большинства контейнеров адресных книг и многих папок не поддерживают сортировку по категориям.

Чтобы получить доступ к таблице содержимого, вызовете следующее:

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

GetContentsTable принимает в качестве входных данных несколько флагов, определяющих параметры. Если этот параметр задан, флаг MAPI_ASSOCIATED извлекает связанную таблицу содержимого. Так как некоторые папки не поддерживают связанное содержимое и клиенты не могут заранее определить это, GetContentsTable иногда возвращает ошибку MAPI_E_NO_SUPPORT при запросе связанной таблицы содержимого.

Флаг MAPI_DEFERRED_ERRORS указывает реализатору таблицы, что любые ошибки, возникшие во время вызова, не должны сообщаться позже.

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

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

Таблицы контейнера адресной книги и содержимого папок содержат длинный список обязательных столбцов — столбцов, которые клиенты могут ожидать, чтобы быть доступными после получения таблицы из GetContentsTable или OpenProperty. При необходимости поставщики могут добавлять в этот обязательный набор, а клиенты с помощью метода SetColumns также могут запрашивать изменения.

Обязательные столбцы для каждого типа таблиц содержимого:

Обязательный столбец Тип таблицы содержимого
PR_ADDRTYPE (PidTagAddressType)
Таблицы контейнеров адресной книги
PR_DISPLAY_NAME (PidTagDisplayName)
Таблицы контейнеров адресной книги
PR_DISPLAY_CC (PidTagDisplayCc)
Таблицы папок хранилища сообщений
PR_DISPLAY_TO (PidTagDisplayTo)
Таблицы содержимого всех папок
PR_DISPLAY_TYPE (PidTagDisplayType)
Таблицы контейнеров адресной книги
PR_ENTRYID (PidTagEntryId)
Все таблицы содержимого
PR_HASATTACH (PidTagHasAttachments)
Таблицы содержимого всех папок
PR_INSTANCE_KEY (PidTagInstanceKey)
Все таблицы содержимого
PR_LAST_MODIFICATION_TIME (PidTagLastModificationTime)
Таблицы папок хранилища сообщений
PR_MAPPING_SIGNATURE (PidTagMappingSignature)
Таблицы папок хранилища сообщений
PR_MESSAGE_CLASS (PidTagMessageClass)
Таблицы содержимого всех папок
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime)
Таблицы удаленных папок транспорта
PR_MESSAGE_FLAGS (PidTagMessageFlags)
Таблицы содержимого всех папок
PR_MESSAGE_SIZE (PidTagMessageSize)
Таблицы содержимого всех папок
PR_MSG_STATUS (PidTagMessageStatus)
Таблицы содержимого всех папок
PR_OBJECT_TYPE (PidTagObjectType)
Все таблицы содержимого
PR_PARENT_ENTRYID (PidTagParentEntRyId)
Таблицы папок хранилища сообщений
PR_RECORD_KEY (PidTagRecordKey)
Таблицы контейнеров адресных книг и папок хранилища сообщений
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName)
Таблицы удаленных папок транспорта
PR_STORE_ENTRYID (PidTagStoreEntryId)
Таблицы папок хранилища сообщений
PR_STORE_RECORD_KEY (PidTagStoreRecordKey)
Таблицы папок хранилища сообщений

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

Таблицы содержимого также содержат набор столбцов, которые являются необязательными, но обычно включаются поставщиками услуг в свои реализации. Эти необязательные столбцы:

Необязательный столбец Тип таблицы содержимого
PR_CLIENT_SUBMIT_TIME (PidTagClientSubmitTime)
Таблицы папок хранилища сообщений
PR_CONTENT_COUNT (PidTagContentCount)
Таблицы содержимого стандартных папок
PR_CONTENT_UNREAD (PidTagContentUnreadCount)
Таблицы содержимого стандартных папок
PR_CONVERSATION_INDEX (PidTagConversationIndex)
Таблицы папок хранилища сообщений
PR_EMAIL_ADDRESS (PidTagEmailAddress)
Таблицы контейнеров адресной книги
PR_IMPORTANCE (PidTagImportance)
Таблицы содержимого всех папок
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime)
Таблицы содержимого всех папок
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject)
Таблицы содержимого всех папок
PR_PRIORITY (PidTagPriority)
Таблицы содержимого всех папок
PR_SEARCH_KEY (PidTagSearchKey)
Таблицы контейнеров адресной книги
PR_SEND_RICH_INFO (PidTagSendRichInfo)
Таблицы контейнеров адресной книги
PR_SENDER_NAME (PidTagSenderName)
Таблицы содержимого всех папок
PR_SENSITIVITY (PidTagSensitivity)
Таблицы содержимого всех папок
PR_SUBJECT (PidTagSubject)
Таблицы содержимого всех папок
PR_TRANSMITABLE_DISPLAY_NAME (PidTagTransmittableDisplayName)
Таблицы контейнеров адресной книги

Поставщики хранилища сообщений также должны включать PR_PARENT_DISPLAY (PidTagParentDisplay) только для таблиц содержимого папок результатов поиска.

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

Клиенты могут сохранить порядок сортировки по умолчанию для таблицы содержимого папки, вызвав ее метод IMAPIFolder::SaveContentsSort . Если в вызове указан флаг RECURSIVE_SORT, порядок сортировки можно применить ко всем вложенным папкам в папке.

См. также

Таблицы MAPI