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


Таблицы One-Off

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

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

Примечание.

Не путайте шаблоны в разовых таблицах с идентификаторами шаблонов; Хотя их цели похожи, их конструкции кода не похожи. Шаблоны используются для создания получателей определенного типа, а идентификаторы шаблонов используются для привязки данных одного получателя, принадлежащих поставщику узла, с помощью кода для поддержки другого получателя, принадлежащего внешнему поставщику.

Клиенты создают новых получателей:

  • Добавление в список получателей исходящего сообщения.

  • Добавление в один из контейнеров в адресной книге.

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

Когда получатель будет включен в исходящее сообщение, MAPI вызывает метод IABLogon::GetOneOffTable поставщика адресной книги для получения одноразовой таблицы. Разовая таблица содержит шаблоны, которые позволяют пользователю вводить сведения, в результате чего создается получатель с допустимым адресом. MAPI регистрирует уведомления в этой таблице, сохраняя ее открытой, чтобы изменения могли быть отражены для пользователя. MAPI освобождает таблицу только при вызове метода IMAPIStatus::ValidateState объекта состояния подсистемы или адресной книги.

Когда получатель будет добавлен в контейнер, MAPI выполняет другой вызов, вызывая метод IMAPIProp::OpenProperty контейнера для получения его свойства PR_CREATE_TEMPLATES (PidTagCreateTemplates). Набор шаблонов, включенных в эту разовую таблицу, представляет типы получателей, которые можно добавить в контейнер. Например, почтовые серверы часто предоставляют по одному контейнеру для каждого установленного шлюза, чтобы в каждом контейнере были только адреса, относящиеся к соответствующему шлюзу.

MAPI предоставляет разовую таблицу, которая включает собственные шаблоны, а также шаблоны из каждого поставщика адресной книги в сеансе. MAPI предоставляет универсальный шаблон, который можно использовать для создания получателя для любого типа адреса при условии, что пользователь знает его формат. Поставщики адресных книг используют эту разовую таблицу, вызывая IMAPISupport::GetOneOffTable. Каждый из шаблонов, включенных в разовую таблицу MAPI, приводит к созданию получателей с допустимыми адресами получателей.

Поставщики адресных книг обычно предоставляют один шаблон для каждого поддерживаемого типа адреса. Однако поддержка шаблонов не требуется. Поставщики адресных книг, которые не позволяют создавать новые адреса, могут возвращать MAPI_E_NO_SUPPORT, когда MAPI вызывает запрос однократной таблицы. Поставщики адресных книг, которые разрешают создание новых адресов, но не предоставляют никаких шаблонов, могут вызывать IMAPISupport::GetOneOffTable для использования шаблонов, перечисленных в одноразовой таблице MAPI.

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

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

PR_DISPLAY_NAME и PR_DISPLAY_TYPE связать данные с новым получателем. PR_DISPLAY_NAME содержит символьную строку, которая идентифицирует нового получателя, а PR_DISPLAY_TYPE содержит константу, которая определяет тип значка, отображаемого в строке. Для шаблонов для пользователей обмена сообщениями для столбца PR_DISPLAY_TYPE задано значение DT_MAILUSER; для шаблонов списков рассылки для столбцов PR_DISPLAY_TYPE задано значение DT_DISTLIST.

PR_ENTRYID — это идентификатор записи шаблона, который будет использоваться для создания нового получателя. Этот идентификатор записи можно передать в будущие вызовы IAddrBook::NewEntry, IAddrBook::OpenEntry и IABContainer::CreateEntry . Контейнеры задают PR_ENTRYID столбце своей строки для шаблона пользователя обмена сообщениями по умолчанию PR_DEF_CREATE_MAILUSER (PidTagDefCreateMailuser), а столбец PR_ENTRYID своей строки для шаблона списка рассылки по умолчанию PR_DEF_CREATE_DL (PidTagDefCreateDl).

PR_DEPTH используется для поддержки иерархического отображения записей в однократной таблице путем указания уровня отступа для шаблона. Хотя однократные таблицы могут отображаться в виде неструктурированного списка или иерархического отображения, последний предпочтительнее, и поставщики адресных книг должны поддерживать его, задав PR_DEPTH столбца для каждой строки соответствующим образом. PR_DEPTH отсчитывается от нуля; строки со значением 0 в столбце PR_DEPTH не имеют отступа. Чем выше значение PR_DEPTH, тем больше отступ строки. Например, строки, для которых PR_DEPTH задано значение 1, имеют отступ на одну вкладку, а строки с PR_DEPTH , для которых задано значение 3, — три вкладки.

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

См. также

Таблицы MAPI