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


ADRPARM

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

Описывает отображение и поведение диалогового окна с общим адресом.

Значение Описание
Файл заголовка:
Mapidefs.h
typedef struct _ADRPARM
{
  ULONG cbABContEntryID;
  LPENTRYID lpABContEntryID;
  ULONG ulFlags;
  LPVOID lpReserved;
  ULONG ulHelpContext;
  LPSTR lpszHelpFileName;
  LPFNABSDI lpfnABSDI;
  LPFNDISMISS lpfnDismiss;
  LPVOID lpvDismissContext;
  LPSTR lpszCaption;
  LPSTR lpszNewEntryTitle;
  LPSTR lpszDestWellsTitle;
  ULONG cDestFields;
  ULONG nDestFieldFocus;
  LPSTR FAR *lppszDestTitles;
  ULONG FAR *lpulDestComps;
  LPSRestriction lpContRestriction;
  LPSRestriction lpHierRestriction;
} ADRPARM, FAR *LPADRPARM;

Members

cbABContEntryID

Количество байтов в идентификаторе записи, на который указывает lpABContEntryID.

lpABContEntryID

Указатель на идентификатор записи контейнера, который предоставляет начальный список адресов получателей, отображаемых в диалоговом окне адреса.

ulFlags

Битовая маска флагов, связанных с различными параметрами диалогового окна адреса. Можно задать следующие флаги:

AB_RESOLVE

Включите разрешение всех имен после закрытия диалогового окна адреса. Если в процессе разрешения имен имеются неоднозначные записи, появится диалоговое окно с запросом на помощь пользователю в их разрешении. Установка этого флага гарантирует разрешение всех имен, возвращаемых IAddrBook::Address .

AB_SELECTONLY

Отключите создание одноразовых адресов для списка получателей. Этот флаг используется только в том случае, если диалоговое окно является модальным, как указано в заданном флаге DIALOG_MODAL.

ADDRESS_ONE

Пользователь может выбрать только одного получателя, а не нескольких получателей из списка. Этот флаг действителен, только если параметр cDestFields равен нулю, а диалоговое окно является модальным, как указано в заданном флаге DIALOG_MODAL.

DIALOG_MODAL

Вызывает отображение модальной версии диалогового окна общего адреса. Необходимо задать этот флаг или DIALOG_SDI; они не могут быть заданы.

DIALOG_OPTIONS

Вызывает отображение кнопки "Параметры отправки " в диалоговом окне. Этот флаг используется только в том случае, если диалоговое окно является модальным, как указано в заданном флаге DIALOG_MODAL.

DIALOG_SDI

Приводит к отображению немодерной версии диалогового окна с общим адресом. Необходимо задать этот флаг или DIALOG_MODAL; они не могут быть заданы. Флаг DIALOG_SDI игнорируется для клиентов, отличных от Outlook, и отобразится модальная версия диалогового окна. Следовательно, в параметре lpulUIParamIAddrBook::Address не следует ожидать указатель на дескриптор.

lpReserved

Зарезервировано, должно быть равно нулю.

ulHelpContext

Указывает контекст в справке , который будет отображаться, когда пользователь нажимает кнопку Справка в диалоговом окне адреса.

lpszHelpFileName

Указатель на имя файла справки, который будет связан с диалоговым окном адреса. Член lpszHelpFileName используется вместе с ulHelpContext для вызова функции Windows WinHelp .

lpfnABSDI

Указатель на функцию MAPI на основе прототипа ACCELERATEABSDI или NULL. Этот элемент применяется только к немодерной версии диалогового окна, как указано в заданном флаге DIALOG_SDI. Клиенты, создающий структуру ADRPARM для передачи в IAddrBook::Address , должны всегда задавать для члена lpfnABSDI значение NULL. Если флаг DIALOG_SDI установлен, MAPI установит для него допустимую функцию перед возвратом. Клиенты вызывают эту функцию из в цикле сообщений, чтобы убедиться, что акселераторы в диалоговом окне адресной книги работают. Если диалоговое окно закрывается и MAPI вызывает функцию, на которую указывает член lpfnDismiss , клиенты должны отключить функцию ACCELERATEABSDI из цикла сообщений.

lpfnDismiss

Указатель на функцию на основе прототипа DISMISSMODELESS или NULL. Этот элемент применяется только к немодерной версии диалогового окна, как указано в заданном флаге DIALOG_SDI. MAPI вызывает функцию DISMISSMODLESS, когда пользователь закрывает диалоговое окно без режима адреса, информируя клиента, вызывающего IAddrBook::Address , что диалоговое окно больше неактивно.

lpvDismissContext

Указатель на контекстную информацию, передаваемую функции DISMISSMODELESS , на которую указывает член lpfnDismiss . Этот элемент применяется только к немодерной версии диалогового окна, как указано в заданном флаге DIALOG_SDI.

lpszCaption

Указатель на текст, используемый в качестве заголовка диалогового окна с общим адресом.

lpszNewEntryTitle

Указатель на текст, используемый в качестве метки кнопки для кнопки, которая вызывает диалоговое окно "Создать запись" или другое диалоговое окно.

lpszDestWellsTitle

Указатель на текст, используемый в качестве заголовка для элементов управления "Текстовое поле получателя", которые могут отображаться в модальной версии диалогового окна "Общий адрес". Этот элемент не используется для диалоговых окон без режима.

cDestFields

Количество элементов управления "Текстовое поле получателя" в модальной версии диалогового окна "Адрес" или ноль, если диалоговое окно является немодерным. Диалоговое окно "Адрес" открыто для просмотра только при выполнении следующих условий:

  • Элемент cDestFields имеет значение ноль.

  • Установлен флаг DIALOG_BOX.

  • Флаг ADDRESS_ONE не задан.

    Если для параметра cDestFields задано значение 0XFFFFFFFF, mapi должно создать количество элементов управления по умолчанию для текстовых полей получателей. В этом случае члены lppszDestTitles и lpulDestComps должны иметь значение NULL.

nDestFieldFocus

Указывает конкретный элемент управления "Текстовое поле", который должен иметь начальный фокус при появлении модальной версии диалогового окна. Это значение должно находиться в диапазоне от 0 до значения cDestFields минус 1.

lppszDestTitles

Указатель на массив меток для кнопок, связанных с каждым элементом управления текстовым полем, отображаемым в модальной версии диалогового окна адреса. Значение элемента cDestFields указывает количество меток, включенных в массив. Если член lppszDestTitles имеет значение NULL, метод Address использует заголовки по умолчанию.

lpulDestComps

Указатель на массив значений типов получателей, таких как MAPI_TO, MAPI_CC и MAPI_BCC, связанный с каждым элементом управления "Текстовое поле". Значение элемента CDestFields указывает количество типов получателей, включенных в массив. Значения, на которые указывает lpulDestComps, можно использовать для задания свойства PR_RECIPIENT_TYPE (PidTagRecipientType) каждого получателя. Если член lpulDestComps имеет значение NULL, метод Address использует типы получателей по умолчанию.

lpContRestriction

Указатель на структуру SRestriction , которая ограничивает тип записей адресов, которые могут отображаться в диалоговом окне.

lpHierRestriction

Указатель на структуру SRestriction , которая ограничивает контейнеры адресной книги, которые могут предоставлять записи адресов, отображаемые в диалоговом окне.

Замечания

Структуры ADRPARM используются клиентами и поставщиками услуг для управления внешним видом и поведением диалоговых окон с общими адресами MAPI. Существует две разновидности диалогового окна с адресами: модальное и модальное. Некоторые элементы в структуре ADRPARM применяются к обеим версиям диалогового окна, а некоторые — только к одной из двух версий. В следующей таблице члены структуры ADRPARM связаны с их использованием в диалоговых окнах с общими адресами.

Член ADRPARM Тип диалогового окна
cbABContEntryID и lpABContEntryID
Модальные и немодальные
ulFlags
Модальные и немодальные
lpReserved
Модальные и немодальные
ulHelpContext и lpszHelpFileName
Модальные и немодальные
lpfnABSDI
Немодального
lpfnDismiss и lpvDismissContext
Немодального
lpszCaption
Модальные и немодальные
lpszNewEntryTitle
Модальный
lpszDestWellsTitle, cDestFields, nDestFieldFocus, lppszDestTitles и lpulDestComps
Модальный
lpContRestriction
Модальные и немодальные
lpHierRestriction
Модальные и немодальные

Диалоговое окно без режима — это отображение записей из одного или нескольких контейнеров адресной книги только для чтения. Диалоговое окно может отображать все записи из выбранных контейнеров или ограничиваться только теми записями и контейнерами, которые соответствуют критериям, установленным ограничением. Ограничение содержимого, на которое указывает lpContRestriction , может ограничить типы отображаемых записей, а ограничение иерархии, на которое указывает lpHierRestriction , может ограничить контейнеры, предоставляющие записи. Чтобы сообщить вызывающей при закрытии диалогового окна, MAPI вызывает функцию, предоставляемую вызывающей стороны, которая соответствует прототипу DISMISSMODELESS . Другая функция, соответствующая прототипу ACCELERATEABSDI , предоставляется MAPI и вызывается вызывающим в цикле сообщений Windows для упрощения работы сочетаний клавиш. Безрежимная версия диалогового окна "Адрес MAPI" может отображаться, когда клиенты вызывают IAddrBook::Address или когда поставщики услуг вызывают IMAPISupport::Address.

Модальное диалоговое окно — это отображение записей из одного или нескольких контейнеров. Его содержимое может быть затронуто так же, как и безрежимная версия, с помощью ограничений, установленных в элементах lpContRestriction и lpHierRestriction . Помимо списка, в котором отображаются записи контейнера, модальное диалоговое окно может содержать от одного до трех элементов управления текстовыми полями для хранения выбранных пользователем записей. Каждый элемент управления edit связан с определенным типом получателя или свойством PR_RECIPIENT_TYPE , например с MAPI_TO. Диалоговое окно модального адреса может отображаться с помощью любого из методов Address или, когда клиенты вызывают IAddrBook::D etails , а поставщики услуг — IMAPISupport::D etails.

Эта иллюстрация содержит два элемента управления текстовыми полями, так как элемент cDestFields структуры ADRPARM , управляющий отображением этого диалогового окна, имеет значение 2. Первый элемент управления имеет начальный фокус, так как член nDestFieldFocus имеет значение 0.

Член lpszNewEntryTitle указывает на текст для метки кнопки, которая при ее выборе приводит к отображению дополнительного диалогового окна. Как правило, как показано на рисунке модального диалогового окна, кнопка помечена как Создать , а в появившемся диалоговом окне перечислены все типы адресов, которые могут быть созданы любым поставщиком адресной книги в профиле. Клиенты вызывают отображение этого диалогового окна Новая запись путем вызова IAddrBook::NewEntry и передачи нуля для параметра cbEidNewEntryTpl и null для параметра lpEidNewEntryTpl , когда пользователь нажимает кнопку. Сведения, включенные в это диалоговое окно, поступают из однократной таблицы MAPI.

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

Наиболее значительные четыре бита элемента ulFlags структуры ADRPARM содержат номер версии, определяющий версию структуры ADRPARM. Текущая версия — 0 (ноль) или ADRPARM_HELP_CTX. Текущая реализация MAPI завершится ошибкой для любой версии структуры, отличной от нуля.

Будущие версии структуры могут быть совершенно разными; Они могут не поддерживать структуру нулевой версии. Для извлечения номера версии из элемента ulFlags и его объединения с определенными флагами предоставляются следующие макросы:

  • GET_ADRPARM_VERSION (ulFlags)
  • SET_ADRPARM_VERSION (ulFlags, ulVersion)
  • ADRPARM_HELP_CTX

См. также