MsiDoActionA 函数 (msiquery.h)

MsiDoAction 函数执行内置操作、自定义操作或用户界面向导操作。

语法

UINT MsiDoActionA(
  [in] MSIHANDLE hInstall,
  [in] LPCSTR    szAction
);

参数

[in] hInstall

对提供给 DLL 自定义操作的安装句柄,或通过 MsiOpenPackageMsiOpenPackageExMsiOpenProduct获取的安装句柄。

[in] szAction

指定要执行的操作。

返回值

此函数返回 UINT。

言论

MsiDoAction 函数执行与提供的名称对应的操作。 如果安装程序无法将名称识别为内置操作或自定义操作 CustomAction 表中的自定义操作,该名称将传递给用户界面处理程序对象,该对象可以调用函数或对话框。 如果提供了 null 操作名称,安装程序将使用 ACTION 属性的大写值作为要执行的操作。 如果未定义属性值,则执行默认操作,定义为“INSTALL”。

更新系统的操作(如 InstallFilesWriteRegistryValues 操作)无法通过调用 MsiDoAction来运行。 此规则的例外情况是,如果从 InstallExecuteSequence 表中计划的自定义操作调用 MsiDoActionInstallInitializeInstallFinalize 操作之间。 可以调用不更新系统的操作,例如 AppSearchCostInitialize

注意

msiquery.h 标头将 MsiDoAction 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer
目标平台 窗户
标头 msiquery.h
Msi.lib
DLL Msi.dll

另请参阅

安装程序操作函数