Поставщики услуг MAPI
Область применения: Outlook 2013 | Outlook 2016
Существует три распространенных типа поставщиков услуг:
Поставщики адресных книг.
Поставщики хранилища сообщений.
Поставщики транспорта.
Поставщики адресной книги и хранилища сообщений имеют много общего. Они регистрируют уникальный идентификатор с помощью MAPI, который используется для создания идентификаторов входа для своих объектов. Они предоставляют иерархию объектов и свойств, к которым клиенты могут обращаться и управлять ими. Для объектов контейнера они поддерживают таблицу иерархии и таблицу содержимого. Они поддерживают уведомления о событиях в этих таблицах и при необходимости для отдельных объектов, чтобы клиенты могли получать сведения об изменениях, происходящих во время сеанса. Когда операции становятся длительными, они могут отображать индикатор хода выполнения, чтобы сообщить пользователю о состоянии операции. Клиенты могут взаимодействовать с поставщиками адресной книги и хранилища сообщений косвенно через MAPI с помощью интерфейсов IAddrBook : IMAPIProp и IMAPISession : IUnknown или напрямую с помощью одного из интерфейсов поставщика услуг в следующей таблице.
Интерфейсы поставщика адресных книг | Интерфейсы поставщика хранилища сообщений |
---|---|
IABContainer : IMAPIContainer |
IMsgStore: IMAPIProp |
IDistList : IMAPIContainer |
IMAPIFolder : IMAPIContainer |
IMailUser : IMAPIProp |
IMessage: IMAPIProp |
IAttach : IMAPIProp |
Поставщики транспорта отличаются от поставщиков адресных книг и хранилищ сообщений тем, как они взаимодействуют с MAPI и с клиентами. Поставщики транспорта обычно ожидают, пока MAPI предложит им информацию, а не инициирует обмен данными. В отличие от других поставщиков, поставщики транспорта не поддерживают различные объекты и таблицы, к которым обычно обращаются клиенты. Однако они поддерживают объект состояния, как и все поставщики услуг, и публикуют его свойства в таблице состояния. В то время как поставщики адресной книги и хранилища сообщений вызывают метод IMAPISupport::SetProviderUID для регистрации уникальных идентификаторов для создания идентификаторов записи, поставщики транспорта вызывают метод IXPLogon::AddressTypes для регистрации уникальных идентификаторов, а также типы адресов для выполнения ответственности за доставку определенных сообщений.
У поставщика услуг должно быть три файла заголовка: один общедоступный файл заголовка и два внутренних файла. Используйте открытый файл заголовка для настройки и документирования свойств и их значений. Включите в один из внутренних файлов заголовков все необходимые общедоступные заголовки MAPI; этот файл заголовка должен быть включен во все исходные файлы поставщика услуг. Используйте другой внутренний файл для определения идентификаторов ресурсов.
Поставщики адресной книги, хранилища сообщений и транспорта выполняют следующие задачи:
Укажите функцию точки входа.
Предоставьте поставщик и объект входа для обработки входа и инициализации.
Если поставщик принадлежит службе сообщений, укажите функцию точки входа службы сообщений.
Поддержка конфигурации путем реализации страницы свойств.
Реализуйте объект состояния и поддержку таблицы состояний.
Завершение работы дескриптора.