Реализация таблицы отображения
Область применения: Outlook 2013 | Outlook 2016
Таблица отображения используется для отображения страницы свойств— специального диалогового окна, состоящего из одной или нескольких страниц свойств с вкладками, предназначенных для отображения и, возможно, редактирования одного или нескольких свойств. С каждой таблицей отображения связана реализация интерфейса IAttach : IMAPIProp . Реализация IMAPIProp поддерживает данные свойств, представленные на странице свойств.
Строки в таблице отображения представляют элементы управления на странице свойств. Большинство элементов управления можно связать со свойствами, поддерживаемыми реализацией IMAPIProp . Когда пользователь изменяет значение изменяемого элемента управления, обновляется соответствующее свойство.
Столбцы в отображаемой таблице представляют свойства элемента управления, такие как его положение на странице свойств, тип, связанная структура и идентификатор. Полный список обязательных столбцов таблицы отображения см. в разделе Отображение таблиц.
MAPI отображает страницу свойств для пользователя клиентского приложения, считывая значения свойств из реализации IMAPIProp , связанной с таблицей отображения, или непосредственно из таблицы отображения. Когда пользователь работает с листом свойств, изменяя значения в элементах управления, MAPI вызывает IMAPIProp::SetProps для сохранения измененного элемента управления, если установлен флаг DT_SET_IMMEDIATE элемента управления. Для элементов управления без флага DT_SET_IMMEDIATE изменения свойств сохраняются, когда пользователь закрывает диалоговое окно, нажав кнопку ОК или Применить сейчас. При нажатии любой из этих кнопок или кнопки Отмена MAPI удаляет лист свойств из представления.
MAPI получает доступ к таблице отображения путем вызова метода IMAPIProp::OpenProperty в реализации IMAPIProp и запроса свойства PR_DETAILS_TABLE (PidTagDetailsTable) или путем его наследования в вызове MAPI, например IMAPISupport::D oConfigPropsheet.
Первый метод доступа используется, когда поставщики адресных книг просят показать сведения о пользователях обмена сообщениями или списках рассылки. Выполняется следующая обработка:
Клиент вызывает метод IAddrBook::D etails .
MAPI вызывает метод IABLogon::OpenEntry поставщика адресной книги для доступа к пользователю обмена сообщениями, представляющего выбранную запись.
MAPI вызывает метод IMAPIProp::OpenProperty пользователя для обмена сообщениями, чтобы получить свойство PR_DETAILS_TABLE , отображаемую таблицу для диалогового окна сведений.
MAPI отображает диалоговое окно, обрабатывающее взаимодействие пользователя с информацией, и удаляет его после завершения работы пользователя.