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


Добавление или удаление поставщиков в службе сообщений

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

Чтобы добавить или удалить поставщиков служб в службе сообщений, используйте интерфейс IProviderAdmin : IUnknown . Вы можете получить указатель IProviderAdmin , вызвав IMsgServiceAdmin::AdminProviders. В таблице поставщиков, доступ к которую можно получить через IProviderAdmin::GetProviderTable, перечислены сведения о поставщиках служб, установленных в службе сообщений. Клиенты и поставщики услуг могут использовать таблицу поставщиков для доступа к имени DLL-файла поставщика, например или MAPIUID, отображаемого имени и типу поставщика, а также к сведениям о службе сообщений. Дополнительные сведения см. в разделе Таблицы поставщиков.

Добавление или удаление поставщика услуг в службе сообщений

  1. Вызовите метод AdminServices для доступа к объекту администрирования службы сообщений.

  2. Вызовите IMsgServiceAdmin::GetMsgServiceTable для доступа к таблице службы сообщений.

  3. Создайте ограничение свойств с помощью структуры SPropertyRestriction , которая соответствует PR_DISPLAY_NAME (PidTagDisplayName) или PR_SERVICE_NAME (PidTagServiceName) с именем службы сообщений, которую необходимо изменить.

  4. Вызовите метод IMAPITable::FindRow таблицы сообщений, чтобы найти строку в таблице, представляющей целевую службу сообщений.

  5. Вызовите IMsgServiceAdmin::AdminProviders , чтобы получить указатель IProviderAdmin . Передайте столбец PR_SERVICE_UID (PidTagServiceUid) из строки таблицы службы сообщений в качестве параметра lpUID .

  6. Вызовите IProviderAdmin::GetProviderTable для доступа к таблице поставщиков.

  7. Создайте ограничение свойств с помощью структуры SPropertyRestriction, которая соответствует PR_DISPLAY_NAME (PidTagDisplayName) или PR_PROVIDER_DISPLAY (PidTagProviderDisplay) с именем поставщика услуг, который необходимо добавить или удалить.

  8. Вызовите метод IMAPITable::FindRow таблицы поставщиков, чтобы найти строку в таблице, представляющей целевого поставщика услуг.

  9. Вызовите метод IProviderAdmin::CreateProvider , чтобы добавить поставщик, или IProviderAdmin::D eleteProvider , чтобы удалить его из службы сообщений. Для CreateProvider передайте свойство PR_DISPLAY_NAME поставщика в качестве параметра lpszProvider . Для любого из методов передайте свойство PR_SERVICE_UID поставщика в качестве параметра lpUID . После добавления или удаления поставщика услуг изменение не будет очевидным до создания нового сеанса.

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

С помощью созданного идентификатора записи клиент может вызвать IMAPISession::OpenMsgStore. MAPI автоматически создает раздел профиля в профиле для поставщика услуг, но не добавляет его в службу сообщений.

Некоторые службы сообщений не допускают динамическое изменение этого типа. Независимо от того, поддерживается ли служба сообщений. Другой функцией, которая может быть или не поддерживается, является возможность прямого доступа к разделам частного профиля службы сообщений. Если служба сообщений, которую вы используете, разрешает такой доступ, она опубликует ИДЕНТИФИКАТОР GUID , представляющий закрытый раздел в MAPISVC.INF. Этот GUID можно передать в вызове IProviderAdmin::OpenProfileSection для доступа к разделу профиля.