从自定义操作返回错误消息

本部分介绍如何通过调用动态链接库或脚本从实际执行部分安装的自定义操作发送消息。 请注意,自定义操作类型 19 仅发送指定的错误消息,接着返回失败,然后终止安装。 自定义操作类型 19 不参与安装。

若要从使用动态链接库 (DLL) 的自定义操作发送错误消息,请让自定义操作调用 MsiProcessMessage。 请注意,由 DoAction ControlEvent 启动的自定义操作可以使用 Message 方法发送消息,但不能使用 MsiProcessMessage 发送消息。 在早于 Windows Server 2003 的系统上,由 DoAction ControlEvent 启动的自定义操作无法使用 MsiProcessMessage 或 Message 方法发送消息。 有关详细信息,请参阅使用 MsiProcessMessage 向 Windows Installer 发送消息

使用 DLL 从自定义操作中显示错误消息

  1. 自定义操作应调用 MsiProcessMessage 并传入参数 hInstall、eMessageType 和 hRecord。 安装句柄(自定义操作类型 19)可以提供给自定义操作,如从自定义操作内部访问当前安装程序会话(也可以从 MsiOpenProductMsiOpenPackage 进行访问)所述。
  2. 参数 eMessageType 应指定 MsiProcessMessage 中列出的消息类型之一。
  3. MsiProcessMessage 函数的 hRecord 参数取决于消息类型。 请参阅使用 MsiProcessMessage 向 Windows Installer 发送消息。 如果消息包含格式化数据,请使用格式化中描述的格式将消息输入到 Error 表中。

为了从使用脚本的自定义操作发送错误消息,自定义操作可以调用 Session 对象的 Message 方法。

使用脚本从自定义操作中显示错误消息

  1. 自定义操作应调用 Session 对象的 Message 方法并传入参数 kind 和 record。
  2. 参数 kind 应指定 Message 方法中列出的消息类型之一。
  3. Message 方法的 record 参数取决于消息类型。 如果消息包含格式化数据,请使用格式化中描述的格式将消息输入到 Error 表中。

使用可执行文件的自定义操作无法通过调用 MsiProcessMessageMessage 方法发送消息,因为它们无法获取安装的句柄。

自定义操作返回值