IMsmMerge2::MergeEx 方法 (mergemod.h)

MergeEx 方法执行当前数据库和当前模块的合并。 合并将模块中的组件附加到 Feature 标识的功能。 模块目录树的根将被重定向到 RedirectDir 提供的位置。 有关详细信息,请参阅 Merge 对象的 MergeEx 方法。

语法

HRESULT MergeEx(
  [in] const BSTR Feature,
  [in] const BSTR RedirectDir,
  [in] IUnknown   *pConfiguration
);

parameters

[in] Feature

数据库中功能的名称。 可以使用 LPCWSTR 代替 BSTR

[in] RedirectDir

数据库的 Directory 表中条目的键。 可以使用 LPCWSTR 代替 BSTR。 此参数可以是 NULL 或空字符串。

[in] pConfiguration

pConfiguration 参数是由客户端实现的接口。 参数可以为 NULL。 此参数的存在表明客户端工具能够修改可配置的合并模块。 此参数的存在不需要客户端为任何特定的可配置项提供配置数据。

返回值

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

含义
E_OUTOFMEMORY
系统内存不足,无法完成操作。
E_INVALIDARG
其中一个参数无效。
E_FAIL
合并因错误而停止。 某些表可能尚未合并。 有关详细信息,请参阅备注部分。
S_FALSE
函数成功,但存在错误,合并本身可能无效。
S_OK
函数成功。

注解

此函数执行当前数据库和当前模块的合并。 模块目录树的根将被重定向到 RedirectDir 提供的位置。 如果发生任何合并冲突(包括排除项),它们将放在错误枚举器中供以后检索,但不会导致合并失败。 可以使用 get_Errors 函数检索错误。 错误和信息性消息将发布到当前日志文件。

合并完成后,模块中的组件将附加到 Feature 标识的功能。 此功能必须已存在且未创建。 可以使用 Connect 函数将模块附加到其他功能。

除非调用 CloseDatabase 函数并将 bCommit 设置为 TRUE,否则对数据库所做的更改不会保存到磁盘。

当合并因模块配置不正确而失败时,函数将返回E_FAIL。 这包括以下 msmErrorType 错误:msmErrorBadNullSubstitution、msmErrorBadSubstitutionType、msmErrorBadNullResponse、msmErrorMissingConfigItem 和 msmErrorDataRequestFailed。 这些错误会导致在遇到错误时立即停止合并。 当 MergeEx 返回 E_FAIL 时,错误对象仍添加到枚举器中。 有关 msmErrorType 错误的详细信息,请参阅 get_Type 函数(错误对象)。 所有其他错误都会导致 MergeEx 返回 S_FALSE 并导致合并继续。

要求

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

另请参阅

合并模块自动化