IMAPIFormContainer::InstallForm

适用于:Outlook 2013 | Outlook 2016

将窗体安装到表单库中。

HRESULT InstallForm(
  ULONG_PTR ulUIParam,
  ULONG ulFlags,
  LPCSTR szCfgPathName
);

参数

ulUIParam

[in]此方法显示的任何对话框或窗口的父窗口的句柄。 除非客户端应用程序在 ulFlags 参数中设置 MAPI_DIALOG 标志,否则将忽略 ulUIParam 参数。 如果未同时传递 MAPI_DIALOG,ulUIParam 参数可以为 NULL。

ulFlags

[in]控制窗体安装的标志的位掩码。 可以设置以下标志:

MAPI_DIALOG

显示一个对话框,用于提供进度信息或提示用户输入详细信息。 如果未设置此标志,则不显示任何对话框。

MAPI_UNICODE

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

MAPIFORM_INSTALL_OVERWRITEONCONFLICT

如果已存在处理此窗体处理的邮件类的另一个窗体,请将现有窗体替换为此窗体。 如果MAPI_DIALOG标志也存在,则忽略此标志。

szCfgPathName

[in]窗体配置文件的路径。

返回值

S_OK

调用成功,并返回了预期的值。

MAPI_E_EXTENDED_ERROR

发生实现错误。 若要获取与错误关联的 MAPIERROR 结构,请调用 IMAPIFormContainer::GetLastError 方法。

MAPI_E_USER_CANCEL

用户取消了窗体的安装,通常单击对话框中的“ 取消 ”按钮。

针对实现者的说明

如果出现以下任一情况,表单库提供程序应填写 MAPIERROR 结构并返回MAPI_E_EXTENDED_ERROR:

  • 找不到配置文件。

  • 配置文件不可读。

  • 配置文件无效。

给调用方的说明

客户端应用程序调用 IMAPIFormContainer::InstallForm 方法将窗体安装到特定的表单容器中。 szCfgPathName 参数必须包含表单配置文件的路径 (即具有 .cfg 扩展名的文件,用于描述窗体及其实现) 。 ulFlags 参数中的标志指定以下内容:

  • 如果设置了MAPI_DIALOG标志,则会显示一个用户界面,使安装窗体的用户能够指定安装详细信息。

  • 如果设置了MAPIFORM_INSTALL_OVERWRITEONCONFLICT标志,则同一邮件类的任何先前窗体将替换为要安装的窗体。 否则,表单安装将与当前表单说明(如果存在)合并。

  • 如果设置了MAPI_DIALOG,则忽略MAPIFORM_INSTALL_OVERWRITEONCONFLICT。

  • 标志集中没有MAPIFORM_INSTALL_OVERWRITEONCONFLICT意味着将完成合并。 将安装 .cfg 文件中当前不存在于表单说明中的任何新平台,并且不会发生其他更改。

  • 如果设置了 MAPI_UNICODE 标志,则表单配置文件的路径为 Unicode 字符串。

如果 InstallForm 返回MAPI_E_EXTENDED_ERROR,客户端应调用 IMAPIFormContainer::GetLastError,并且它们应检查返回的 MAPIERROR 结构,以确定引发错误的条件。

MFCMAPI 引用

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

文件 函数 Comment
FormContainerDlg.cpp
CFormContainerDlg::OnInstallForm
MFCMAPI 使用 IMAPIFormContainer::InstallForm 方法在窗体容器中安装窗体。

另请参阅

MAPIERROR

IMAPIFormContainer : IUnknown

MFCMAPI 代码示例