IMsmMerge::OpenModule 方法 (mergemod.h)
OpenModule 方法以只读模式打开 Windows Installer 合并模块。 必须先打开模块,然后才能将其与安装数据库合并。 有关详细信息,请参阅 Merge 对象的 OpenModule 方法。
IMsmMerge2::OpenModule Mergemod.dll 2.0 及更高版本。
语法
HRESULT OpenModule(
[in] const BSTR Path,
[in] const short Language
);
parameters
[in] Path
指向合并模块的完全限定文件名。 可以使用 LPCWSTR 代替 BSTR。
[in] Language
LANGID) (语言标识符。
返回值
OpenModule 函数返回以下值。
值 | 含义 |
---|---|
|
指定的文件是 Windows Installer 数据库,但不是合并模块, (缺少 ModuleSignature 表) 。 |
|
该模块不支持该语言。 |
|
该语言受模块支持,但应用转换时出错。 |
|
无法以 Windows Installer 数据库的形式打开该文件。 |
|
已打开一个模块。 首先关闭当前模块。 |
|
函数成功。 |
注解
此函数在只读模式下打开合并模块 (MSIDBOPEN_READONLY) ,并在调用 CloseModule 函数之前排除其他程序写入合并模块。 必须先打开合并模块,然后才能进行合并。
安装程序尝试以 Language 指定的语言或任何更常规的语言打开模块。 例如,如果 语言 值指定 1033,则默认语言为 1033、9 或 0 的模块将以其默认语言打开。 如果 Language 值为 9,则会打开默认语言为 9 或 0 的模块。 如果模块的默认语言不符合指定要求,则会尝试将模块转换为请求的语言。 如果失败,安装程序会尝试将模块转换为越来越通用的语言,一直转换为非特定语言。 如果所有转换均未成功,则无法打开模块。 在这种情况下,错误将添加到类型为 msmErrorLanguageUnsupported 的错误列表中,函数返回ERROR_INSTALL_LANGUAGE_UNSUPPORTED HRESULT。
如果在将模块转换为所需语言时出错,则会创建 msmErrorLanguageFailed 类型的错误,并且该函数将ERROR_INSTALL_TRANSFORM_FAILURE作为 HRESULT 返回。
打开合并模块的操作会清除尚未检索到的任何错误。
要求
最低受支持的客户端 | Mergemod.dll 1.0 或更高版本 |
目标平台 | Windows |
标头 | mergemod.h |
DLL | Mergemod.dll |