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


Регистрация уникальных идентификаторов поставщика услуг

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

Адресная книга, хранилище сообщений и поставщики транспорта используют уникальный идентификатор, известный как MAPIUID , для регистрации в объектах-службах различных типов. MAPIUID — это 16-байтовый идентификатор, содержащий GUID. Вы можете создать MAPIUID , выполнив следующую процедуру:

  1. Определите константу.

  2. Вызовите средство Visual Studio*Create GUID**.

Например, поставщик адресной книги может включать следующую константу в файл заголовка для определения MAPIUID:

#define AB_UID_PROVIDER { 0Xe3, 0x3c, 0x67, 0xa0, \ 0xc8, 0x1f, 0x11, 0xce, \ 0xb2, 0xe4, 0x0, 0xaa, \ 0x0, 0x51, 0xe, 0x3b }

Регистрация MAPIUID, если ваш поставщик является адресной книгой или поставщиком хранилища сообщений

  1. Вызовите IMAPISupport::SetProviderUID.

  2. Зарегистрируйте MAPIUID для каждого объекта входа, экземпляра которых вы создаете, и включите этот MAPIUID в первые 16 байт элемента AB каждого создаваемого идентификатора записи. MAPI использует структуры MAPIUID для связывания объектов с поставщиками служб. Когда клиент вызывает метод IMAPISession::OpenEntry для открытия объекта, MAPI проверяет часть идентификатора записи MAPIUID , сопоставляя ее с зарегистрированным MAPIUID, чтобы определить, какой объект входа должен получить открытый запрос.

  3. Если поставщик является транспортом, зарегистрируйте одну или несколько структур MAPIUID , когда MAPI вызывает метод IXPLogon::AddressTypes . MAPI использует структуры MAPIUID , зарегистрированные поставщиками транспорта, для назначения ответственности за доставку сообщений.

Хотя поставщики услуг обычно регистрируют один MAPIUID, можно зарегистрировать несколько структур MAPIUID . Если поставщик адресной книги или хранилища сообщений поддерживает несколько объектов входа. Возможно, пользователь может добавить несколько экземпляров поставщика в свой профиль, то для каждого объекта входа может потребоваться реализовать другой MAPIUID . Существует несколько других причин для поддержки нескольких MAPIUID:

  • Необходимо поддерживать несколько версий поставщика, а идентификаторы записей должны представлять соответствующую версию. Назначьте разные MAPIUID для каждой версии.

  • Вы хотите различать типы объектов, которые вы поддерживаете. Например, поставщику адресной книги может потребоваться зарегистрировать один MAPIUID для использования в идентификаторах записей пользовательских объектов обмена сообщениями, а другой MAPIUID — для списков рассылки.

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

См. также

Реализация входа поставщика услуг