IMsgServiceAdmin::ConfigureMsgService

适用于:Outlook 2013 | Outlook 2016

重新配置消息服务。

HRESULT ConfigureMsgService(
  LPMAPIUID lpUID,
  ULONG_PTR ulUIParam,
  ULONG ulFlags,
  ULONG cValues,
  LPSPropValue lpProps
);

参数

lpUID

[in]指向 MAPIUID 结构的指针,该结构包含要配置的消息服务的唯一标识符。

ulUIParam

[in]配置属性表的父窗口的句柄。

ulFlags

[in]控制属性表显示的标志的位掩码。 可以设置以下标志:

MAPI_UNICODE

传入的字符串采用 Unicode 格式。 如果未设置MAPI_UNICODE标志,则字符串采用 ANSI 格式。

MSG_SERVICE_UI_READ_ONLY

消息服务应显示其配置属性表,但不允许用户更改它。 大多数消息服务会忽略此标志。

SERVICE_UI_ALLOWED

仅当服务未完全配置时,消息服务才应显示其配置属性表。

SERVICE_UI_ALWAYS

消息服务必须始终显示其配置属性表。 如果未设置SERVICE_UI_ALWAYS,则如果设置了SERVICE_UI_ALLOWED,并且 lpProps 参数中的属性值数组中没有有效的配置信息,则仍会显示配置属性表。 必须设置SERVICE_UI_ALLOWED或SERVICE_UI_ALWAYS才能显示属性表。

cValues

[in]lpProps 指向的 SPropValue 结构中的属性值计数。

lpProps

[in]指向属性值数组的指针,这些属性值描述要显示在属性表中的属性。 如果消息服务应配置为没有用户界面,则 lpProps 参数不应为 NULL。

返回值

S_OK

已成功配置消息服务。

MAPI_E_EXTENDED_ERROR

特定于消息服务的错误。 若要获取描述错误的 MAPIERROR 结构,客户端应用程序应调用 IMsgServiceAdmin::GetLastError 方法。

MAPI_E_NOT_FOUND

lpUID 指向的 MAPIUID 与现有消息服务的 MAPIUID 不匹配。

MAPI_E_NOT_INITIALIZED

消息服务没有入口点函数。

MAPI_E_USER_CANCEL

用户取消了操作,通常单击属性表中的“ 取消 ”按钮。

备注

使用 IMsgServiceAdmin::ConfigureMsgService 方法可以配置消息服务,无论是否具有配置属性表。

为了允许配置不显示属性表,消息服务通常会准备一个头文件,其中包含所有必需和可选属性及其值的常量。

给调用方的说明

若要检索要配置的消息服务的 MAPIUID 结构,请从消息服务表中的消息服务的行中检索 PR_SERVICE_UID (PidTagServiceUid) 列。 有关详细信息,请参阅 IMsgServiceAdmin::CreateMsgService 方法中概述的过程。

仅当具有有关要设置的属性值的预先信息时,才能配置消息服务,而无需向用户显示属性表。 如果在配置消息服务时未显示属性表,请在 lpProps 参数中传递有效的属性值,并且不要设置MSG_SERVICE_UI_READ_ONLY、SERVICE_UI_ALLOWED或SERVICE_UI_ALWAYS标志。

如果通过属性表从用户那里收到全部或部分配置信息,请在 ulFlags 中设置SERVICE_UI_ALLOWED。 如果仅使用现有属性信息来建立默认设置,并且用户能够更改设置,请在 ulFlags 中设置SERVICE_UI_ALWAYS。

MFCMAPI 引用

有关 MFCMAPI 示例代码,请参阅下表。

文件 函数 Comment
MAPIProfileFunctions.cpp
HrAddServiceToProfile
MFCMAPI 使用 IMsgServiceAdmin::ConfigureMsgService 方法配置已添加到配置文件的服务。

另请参阅

MAPIUID

SPropValue

IMsgServiceAdmin : IUnknown

MFCMAPI 代码示例