IMsgServiceAdmin2::CreateMsgServiceEx
Область применения: Outlook 2013 | Outlook 2016
Добавляет службу сообщений в текущий профиль и возвращает только что добавленную службу UID.
HRESULT CreateMsgServiceEx(
LPSTR lpszService,
LPSTR lpszDisplayName,
ULONG_PTR ulUIParam,
ULONG ulFlags,
LPMAPIUID lpuidService
);
Параметры
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
Служба сообщений отображает свой лист свойств конфигурации.
lpuidService
[out] Указатель на идентификатор пользовательского интерфейса добавленной службы сообщений.
Возвращаемое значение
S_OK
����� ������� � ������ ��������� ��������� ��� ��������.
MAPI_E_NOT_FOUND
Имя службы сообщений отсутствует в разделе [Службы] mapiSvc.inf.
Замечания
Метод IMsgServiceAdmin2::CreateMsgServiceEx добавляет службу сообщений в текущий профиль. CreateMsgServiceEx вызывает функцию точки входа службы сообщений для выполнения любых задач конфигурации, относящихся к службе. Если флаг SERVICE_UI_ALLOWED задан в параметре ulFlags , устанавливаемая служба сообщений может отображать страницу свойств, позволяющую пользователю настраивать параметры.
Файл MapiSvc.inf содержит список поставщиков, составляющих службу сообщений, и свойства каждого из них. CreateMsgServiceEx сначала создает новый раздел профиля для службы сообщений, а затем копирует все сведения для этой службы из файла MapiSvc.inf в профиль, создавая новые разделы для каждого поставщика.
После копирования всех сведений из MapiSvc.inf вызывается функция точки входа службы сообщений MSGSERVICEENTRY с MSG_SERVICE_CREATE значением, заданным в параметре ulContext . Если флаг SERVICE_UI_ALLOWED задан в параметре ulFlags метода CreateMsgServiceEx, значения в параметрах ulUIParam и ulFlags также передаются при вызове функции точки входа службы сообщений. Поставщики услуг должны отображать свои таблицы свойств конфигурации, чтобы пользователи могли настроить службу сообщений.
Примечания для вызывающих методов
Если аргумент CreateMsgServiceExlpuidService Не имеет значения NULL, свойство PR_SERVICE_UID (PidTagServiceUid) службы сообщений, добавленной в профиль, возвращается в идентификаторе GUID , на который он указывает.
Передайте значение свойства PR_SERVICE_UID в параметре lpuidService методу IMsgServiceAdmin::ConfigureMsgService , чтобы настроить службу.
Предостережение
Реализация подсистемы MAPI в Microsoft Outlook 2010 не поддерживает MAPI_UNICODE и при ее использовании завершится ошибкой.
Важно!
Интерфейс IMsgServiceAdmin2 предоставляется тем же объектом, который реализует интерфейс IMsgServiceAdmin, и доступен с помощью реализации подсистемы MAPI в Outlook с Outlook 2003. Его ИДЕНТИФИКАТОР определяется следующим образом: #if !defined(INITGUID) || defined(USES_IID_IMsgServiceAdmin2)
DEFINE_OLEGUID(IID_IMsgServiceAdmin2,0x00020387, 0, 0);
> SERVICE_NO_RESTART_WARNING ulFlags может не быть определен в текущем загружаемом файле заголовка. В этом случае его можно добавить в код, используя следующее значение: #define SERVICE_NO_RESTART_WARNING 0x00000080