IMAPIContainer::GetContentsTable
Область применения: Outlook 2013 | Outlook 2016
Возвращает указатель на таблицу содержимого контейнера.
HRESULT GetContentsTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
Параметры
ulFlags
[в] Битовая маска флагов, управляющая тем, как возвращается таблица содержимого. Можно задать следующие флаги:
MAPI_ASSOCIATED
Вместо стандартной таблицы содержимого контейнера должна быть возвращена связанная с контейнером таблица содержимого. Этот флаг используется только с папками. Сообщения, включенные в связанную таблицу содержимого, были созданы с флагом MAPI_ASSOCIATED, заданным в вызове метода IMAPIFolder::CreateMessage . Клиенты обычно используют связанную таблицу содержимого для получения форм, представлений и других скрытых сообщений.
ACLTABLE_FREEBUSY
Обеспечивает доступ к испугамFreeBusySimple и frightsFreeBusyDetailed прав в PR_MEMBER_RIGHTS.
MAPI_DEFERRED_ERRORS
GetContentsTable может успешно возвращать данные, возможно, до того, как таблица будет доступна вызывающей. Если таблица недоступна, последующий вызов таблицы может вызвать ошибку.
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::GetContentsTable возвращает указатель на таблицу содержимого контейнера. Таблица содержимого содержит сводные сведения об объектах в контейнере.
Таблицы содержимого содержат длинные наборы столбцов. Полный список обязательных и необязательных столбцов в таблицах содержимого см. в разделе Таблицы содержимого.
Некоторые контейнеры могут не содержать содержимого. Эти контейнеры возвращают MAPI_E_NO_SUPPORT из своих реализаций GetContentsTable.
Примечания для исполнителей
Если вы поддерживаете таблицу содержимого для контейнера, необходимо также выполнить следующие действия:
Поддержка вызовов метода IMAPIProp::OpenProperty контейнера для открытия свойства PR_CONTAINER_CONTENTS (PidTagContainerContents).
Возврат PR_CONTAINER_CONTENTS в ответ на вызов контейнера
Реализация этого метода удаленного поставщика транспорта должна возвращать указатель на интерфейс IMAPITable : IUnknown в параметре ppTable, переданном в метод GetContentsTable . Если у поставщика транспорта есть существующая таблица содержимого, достаточно вернуть на нее указатель. В противном случае этот метод должен создать новый объект IMAPITable : IUnknown , заполнить таблицу заголовками сообщений (если они доступны) и вернуть указатель на новую таблицу. Метод ITableData::HrGetView полезен для создания возвращаемого значения и хранения указателя таблицы в параметре ppTable . Таблица содержимого должна поддерживать по крайней мере следующие столбцы свойств:
PR_ENTRYID (PidTagEntryID)
PR_SENDER_NAME (PidTagSenderName)
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName)
PR_DISPLAY_TO (PidTagDisplayTo)
PR_SUBJECT (PidTagSubject)
PR_MESSAGE_CLASS (PidTagMessageClass)
PR_MESSAGE_FLAGS (PidTagMessageFlags)
PR_MESSAGE_SIZE (PidTagMessageSize)
PR_PRIORITY (PidTagPriority)
PR_IMPORTANCE (PidTagImportance)
PR_SENSITIVITY (PidTagSensitivity)
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime)
PR_MSG_STATUS (PidTagMessageStatus)
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime)
PR_HASATTACH (PidTagHasAttachments)
PR_OBJECT_TYPE (PidTagObjectType)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject)
Примечания для вызывающих методов
Столбцы таблицы строкового и двоичного содержимого могут быть усечены. Как правило, поставщики возвращают 255 символов. Так как вы не можете заранее узнать, содержит ли таблица усеченные столбцы, предположим, что столбец усечен, если длина столбца составляет 255 или 510 байт. При необходимости можно получить полное значение усеченного столбца непосредственно из объекта, используя его идентификатор записи, чтобы открыть его, а затем вызвать метод IMAPIProp::GetProps .
В зависимости от реализации поставщика ограничения и операции сортировки могут применяться ко всем строкам или усеченной версии этой строки.
Справочные материалы по MFCMAPI
Пример кода MFCMAPI указан в приведенной ниже таблице.
Файл | Функция | Comment |
---|---|---|
ContentsTableDialog.cpp |
CContentsTableDlg::CContentsTableDlg |
Класс CContentsTableDlg использует GetContentsTable для получения записей в таблице содержимого. |