IMsgServiceAdmin::CreateMsgService
Область применения: Outlook 2013 | Outlook 2016
Не рекомендуется: рекомендуется использовать IMsgServiceAdmin2::CreateMsgServiceEx . Добавляет службу сообщений в текущий профиль.
HRESULT CreateMsgService(
LPSTR lpszService,
LPSTR lpszDisplayName,
ULONG_PTR ulUIParam,
ULONG ulFlags
);
Параметры
lpszService
[в] Указатель на имя добавляемой службы сообщений. Это имя службы сообщений должно отображаться в разделе [Службы] файла MapiSvc.inf.
lpszDisplayName
[в] Указатель на отображаемое имя добавляемой службы сообщений. Параметр lpszDisplayName игнорируется, если служба сообщений задала свойство PR_DISPLAY_NAME (PidTagDisplayName) в файле MapiSvc.inf.
ulUIParam
[в] Дескриптор родительского окна любых диалоговых окон или окон, отображаемых этим методом.
ulFlags
[в] Битовая маска флагов, управляющая установкой службы сообщений. Можно задать следующие флаги:
MAPI_UNICODE
Параметры lpszService и lpszDisplayName должны быть приведены в LPWSTR и интерпретированы как строки Юникода.
SERVICE_NO_RESTART_WARNING
При добавлении новой службы сообщений в профиль подсистема MAPI на основе различных обстоятельств и критериев часто определяет, что для этого действия требуется перезапуск Outlook. Если флаг SERVICE_NO_RESTART_WARNING не включен, а пользовательский интерфейс разрешен (на основе флагов SERVICE_UI_ALWAYS и SERVICE_UI_ALLOWED) и по крайней мере один процесс входит в текущий профиль, эта функция отображает сообщение "Необходимо перезапустить Outlook, чтобы эти изменения вступили в силу". Включение флага SERVICE_NO_RESTART_WARNING запрещает отображение этого предупреждающего сообщения.
SERVICE_UI_ALLOWED
При необходимости разрешен пользовательский интерфейс конфигурации службы сообщений.
SERVICE_UI_ALWAYS
Служба сообщений отображает свой лист свойств конфигурации.
Возвращаемое значение
S_OK
����� ������� � ������ ��������� ��������� ��� ��������.
MAPI_E_NOT_FOUND
Имя службы сообщений отсутствует в разделе [Службы] mapiSvc.inf.
Замечания
Метод IMsgServiceAdmin::CreateMsgService добавляет службу сообщений в текущий профиль. CreateMsgService вызывает функцию точки входа службы сообщений для выполнения любых задач конфигурации, относящихся к службе. Если флаг SERVICE_UI_ALLOWED задан в параметре ulFlags , устанавливаемая служба сообщений может отобразить страницу свойств, чтобы позволить пользователю настроить свои параметры.
Файл MapiSvc.inf содержит список поставщиков, составляющих службу сообщений, и свойства каждого из них. CreateMsgService сначала создает раздел профиля для службы сообщений, а затем копирует все сведения для этой службы из файла MapiSvc.inf в профиль, создавая новые разделы для каждого поставщика.
После копирования всех сведений из MapiSvc.inf вызывается функция точки входа службы сообщений с MSG_SERVICE_CREATE значением, заданным в параметре ulContext . Если флаг SERVICE_UI_ALLOWED задан в параметре ulFlags метода CreateMsgService, значения в параметрах ulUIParam и ulFlags также передаются при вызове функции точки входа службы сообщений. Поставщики услуг должны отображать свои таблицы свойств конфигурации, чтобы пользователи могли настроить службу сообщений.
Примечания для вызывающих методов
CreateMsgService не возвращает структуру MAPIUID для службы сообщений, добавленной в профиль.
Чтобы получить MAPIUID для созданной службы сообщений, выполните следующую процедуру:
Вызовите метод IMsgServiceAdmin::GetMsgServiceTable , чтобы получить таблицу администрирования службы сообщений.
Найдите строку, представляющую службу сообщений, установив ограничение на таблицу, которая соответствует свойству PR_SERVICE_NAME (PidTagServiceName) с именем службы сообщений.
Получите свойство PR_SERVICE_UID службы (PidTagServiceUid).
Передайте значение свойства PR_SERVICE_UID в параметре lpUid методу IMsgServiceAdmin::ConfigureMsgService , чтобы настроить службу.
Предостережение
Реализация Microsoft Outlook 2010, русская версия подсистемы MAPI не поддерживает MAPI_UNICODE и при ее использовании завершится сбоем.
Важно!
SERVICE_NO_RESTART_WARNING ulFlags может не быть определен в текущем загружаемом файле заголовка. В этом случае его можно добавить в код, используя следующее значение: #define SERVICE_NO_RESTART_WARNING 0x00000080
Справочные материалы по MFCMAPI
Пример кода MFCMAPI указан в приведенной ниже таблице.
Файл | Функция | Comment |
---|---|---|
MAPIProfileFunctions.cpp |
HrAddServiceToProfile |
MFCMAPI использует метод IMsgServiceAdmin::CreateMsgService для добавления службы в профиль. |