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


Одноразовые идентификаторы записей

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

Одноразовые идентификаторы записей создаются MAPI в методе IAddrBook::CreateOneOff и компонентами, которые не имеют доступа к подсистеме MAPI, например компонентами шлюза. For more information, see IAddrBook::CreateOneOff. На следующем рисунке показан формат однократного идентификатора записи.

Формат идентификатора единичных записей

Формат однократного идентификатора записи

Первое поле представляет собой специальную структуру MAPIUID , которая определяет идентификатор записи как представляющего настраиваемого получателя. Для этой структуры MAPIUID необходимо задать константу MAPI_ONE_OFF_UID. MAPI_ONE_OFF_UID определяется в файле заголовка MAPIDEFS.H.

Поля версии и флагов представляют собой 16-разрядные слова в порядке байтов Intel. Поле версии должно быть равно нулю. Для поля флагов можно задать следующие значения:

MAPI_ONE_OFF_NO_RICH_INFO

MAPI_ONE_OFF_UNICODE

Флаг MAPI_ONE_OFF_NO_RICH_INFO устанавливается, если получатель не должен получать содержимое сообщения в формате TNEF. Этот флаг устанавливается при передаче MAPI_SEND_NO_RICH_INFO в метод IAddrBook::CreateOneOff .

Флаг MAPI_ONE_OFF_UNICODE устанавливается, если отображаемое имя и адрес электронной почты являются строками Юникода. Этот флаг устанавливается при передаче MAPI_UNICODE в IAddrBook::CreateOneOff. Если флаг MAPI_UNICODE не передается в CreateOneOff, MAPI предполагает, что строки отображаемого имени и адреса электронной почты находятся в текущем наборе символов ANSI рабочей станции. Строки ANSI обычно плохо работают в сообщениях, которые отправляются между платформами с разными наборами символов, так как кодовая страница не закодирована в идентификаторе записи. Чтобы защититься от этой потенциальной несовместимости, многие типы адресов ограничены только теми символами, которые являются общими для нескольких наборов символов. Однако для обеспечения совместимости набора символов и платформы клиенты должны использовать Юникод для символьных строк в своих сообщениях.

Отображаемое имя — это строка, заканчивающаяся значением NULL, которая соответствует свойству PR_DISPLAY_NAME получателя (PidTagDisplayName) и параметру lpszName , передаваемому в IAddrBook::CreateOneOff. Если установлен флаг MAPI_ONE_OFF_UNICODE, то символом является Кодировка Юникод, а если задано значение ANSI.

Тип адреса — это строка, завершающаяся null, которая соответствует свойству PR_ADDRTYPE получателя (PidTagAddressType) и параметру lpszAdrType , передаваемому в IAddrBook::CreateOneOff.

Адрес электронной почты является строкой, завершающейся null, которая соответствует свойству PR_EMAIL_ADDRESS получателя (PidTagEmailAddress) и параметру lpszAddress , передаваемому в IAddrBook::CreateOneOff.

Примечание.

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

Клиентам и поставщикам адресных книг, которые вручную создают одноразовые идентификаторы записей, также может потребоваться создать значения для свойств PR_RECORD_KEY (PidTagRecordKey) и PR_SEARCH_KEY (PidTagSearchKey). Ключ записи идентичен идентификатору записи. Ключ поиска должен быть сформирован путем объединения следующих полей в следующем порядке:

  1. Тип адреса, преобразованный в символы в верхнем регистре.

  2. Двоеточие (:).

  3. Адрес электронной почты, преобразованный в символы в верхнем регистре.

  4. Завершающий символ NULL.

При создании ключа поиска не требуется преобразовывание набора символов.