Одноразовые идентификаторы записей
Область применения: 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). Ключ записи идентичен идентификатору записи. Ключ поиска должен быть сформирован путем объединения следующих полей в следующем порядке:
Тип адреса, преобразованный в символы в верхнем регистре.
Двоеточие (:).
Адрес электронной почты, преобразованный в символы в верхнем регистре.
Завершающий символ NULL.
При создании ключа поиска не требуется преобразовывание набора символов.