IMsmError::get_Type 方法 (mergemod.h)

get_Type 方法检索 Error 对象的 Type 属性。 此方法返回一个 msmErrorType 值,该值指示此对象表示的错误类型。

语法

HRESULT get_Type(
  [out] msmErrorType *ErrorType
);

参数

[out] ErrorType

指向内存中接收错误类型的位置的指针。

msmErrorType 说明
msmErrorLanguageUnsupported 1 发出了一个请求,要求使用模块不支持的语言打开模块。 模块不支持其他常规语言。 将 msmErrorLanguageUnsupported 添加到 Type 属性,将请求的语言添加到 Language 属性 (Error Object) 。 所有 Error 对象属性均为空。 OpenModule 函数以 HRESULT) 的形式返回ERROR_INSTALL_LANGUAGE_UNSUPPORTED (。
msmErrorLanguageFailed 2 请求使用支持的语言打开模块,但该模块的语言转换无效。 将 msmErrorLanguageFailed 添加到 Type 属性,并将应用转换的语言添加到 Error 对象的 Language 属性。 如果使用了更通用的语言,则可能不是请求的语言。 Error 对象的所有其他属性均为空。 OpenModule 函数以 HRESULT) 的形式返回ERROR_INSTALL_LANGUAGE_UNSUPPORTED (。
msmErrorExclusion 3 无法合并该模块,因为它排除或被数据库中的另一个模块排除。 将 msmErrorExclusion 添加到 Error 对象的 Type 属性。 ModuleKeys 属性DatabaseKeys 属性包含 ModuleExclusion 表中排除的模块行的主键。 如果现有模块排除了正在合并的模块,则排除的模块的 ModuleSignature 信息将添加到 ModuleKeys。 如果要合并的模块排除现有模块,则 DatabaseKeys 将包含已排除模块的 ModuleSignature 信息。 所有其他属性为空 (或 -1) 。
msmErrorTableMerge 4 合并期间发生合并冲突。 Type 属性的值设置为 msmErrorTableMerge。 DatabaseTable 属性DatabaseKeys 属性包含数据库中冲突行的表名称和主键。 ModuleTable 属性ModuleKeys 属性包含模块中冲突行的表名和主键。 如果数据库中不存在该行,则 ModuleTable 和 ModuleKeys 条目可能为 null。 例如,如果冲突位于生成的 FeatureComponents 表条目中。 合并 可配置的合并模块时,配置可能会导致这些属性引用模块中不存在的行。
msmErrorResequenceMerge 5 重新对序列表进行排队以包含必要的合并操作时出现问题。 Type 属性设置为 msmErrorResequenceMerge。 DatabaseTable 和 DatabaseKeys 属性包含序列表名称和主键, (冲突行的操作名称) 。 ModuleTable 和 ModuleKeys 属性包含冲突行的序列表名称和主键 (操作名称) 。 合并可配置的合并模块时,配置可能会导致这些属性引用模块中不存在的行。
msmErrorFileCreate 6 未使用。
msmErrorDirCreate 7 创建目录以将文件提取到磁盘时出现问题。 Path 属性包含无法创建的目录。 所有其他属性均为空或 -1。
msmErrorFeatureRequired 8 完成合并需要功能名称,但未提供功能名称。 Type 属性设置为 msmErrorFeatureRequired。 DatabaseTable 和 DatabaseKeys 包含冲突行的表名和主键。 ModuleTable 和 ModuleKeys 属性包含表名,行的主键不能合并。 合并可配置的合并模块时,配置可能会导致这些属性引用模块中不存在的行。 如果失败位于生成的 FeatureComponents 表中,则 DatabaseTable 和 DatabaseKeys 属性为空,ModuleTable 和 ModuleKeys 属性引用 组件表中 导致失败的行。
msmErrorBadNullSubstitution 9 将 Null 值替换为不可为 null 的列。 这会在 Type 属性中输入 msmErrorBadNullSubstitution,并将“ModuleSubstitution”以及此行的 ModuleSubstitution 表中 的键输入到 ModuleTable 属性和 ModuleKeys 属性中。 Error 对象的所有其他属性都设置为空字符串或 -1。

此错误会导致合并立即失败, MergeEx函数 返回E_FAIL。

msmErrorBadSubstitutionType 10 文本格式类型整数格式类型 替换为 二进制类型 数据列。 这种类型的错误在 Type 属性中返回 msmErrorBadSubstitutionType,并将“ModuleSubstitution”和 ModuleSubstitution 表中 的键输入到 ModuleTable 属性中。 Error 对象的所有其他属性都设置为空字符串或 -1。

此错误会导致合并立即失败, MergeEx函数 返回E_FAIL。

msmErrorMissingConfigItem 11 ModuleSubstitution 表中的一行引用了 ModuleConfiguration 表中未定义的配置项目。 这种类型的错误在 Type 属性中返回 msmErrorMissingConfigItem,并将“ModuleSubstitution”和 ModuleSubstitution 表中 的键输入到 ModuleTable 属性中。 Error 对象的所有其他属性都设置为空字符串或 -1。

此错误会导致合并立即失败, MergeEx函数 返回E_FAIL。

msmErrorBadNullResponse 12 创作工具已返回使用 msmConfigItemNonNullable 属性标记的项的 Null 值。 此类型的错误在 Type 属性中返回 msmErrorBadNullResponse,并在 ModuleTable 属性中输入“ModuleSubstitution”和 ModuleSubstitution 表中项的键。 Error 对象的所有其他属性都设置为空字符串或 -1。

此错误会导致合并立即失败, MergeEx函数 返回E_FAIL。

msmErrorDataRequestFailed 13 当请求数据时,创作工具返回了失败代码 (未S_OK或S_FALSE) 。 此类型的错误将在 Type 属性中返回 msmErrorDataRequestFailed,并在 ModuleTable 属性中输入“ModuleSubstitution”和 ModuleSubstitution 表中该项的键。 Error 对象的所有其他属性都设置为空字符串或 -1。

此错误会导致合并立即失败, MergeEx函数 返回E_FAIL。

msmErrorPlatformMismatch 14 指示尝试将 64 位模块合并到不是 64 位包的包中。 此类型的错误在 Type 属性中返回 msmErrorPlatformMismatch。 错误对象的所有其他属性都设置为空字符串或 -1。 此错误会导致合并立即失败,并导致 Merge 函数或 MergeEx 函数返回E_FAIL。

返回值

此方法可以返回其中一个值。

含义
E_INVALIDARG
ErrorType 为 Null。
S_OK
函数成功。

要求

要求
最低受支持的客户端 Mergemod.dll 2.0 或更高版本
目标平台 Windows
标头 mergemod.h
DLL Mergemod.dll

另请参阅

合并模块自动化