次の方法で共有


IMsmMerge2::MergeEx メソッド (mergemod.h)

MergeEx メソッドは、現在のデータベースと現在のモジュールのマージを実行します。 このマージによって、モジュール内のコンポーネントが Feature によって識別される機能にアタッチされます。 モジュールのディレクトリ ツリーのルートは、RedirectDir によって指定されている場所にリダイレクトされます。 詳細については、Merge オブジェクトの MergeEx メソッドを参照してください。

構文

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

パラメーター

[in] Feature

データベース内の機能の名前。 BSTR の代わりに LPCWSTR を使用できます。

[in] RedirectDir

データベースの Directory テーブル内のエントリのキー。 BSTR の代わりに LPCWSTR を使用できます。 このパラメーターには 、NULL または空の文字列を指定できます。

[in] pConfiguration

pConfiguration 引数は、クライアントによって実装されるインターフェイスです。 引数は NULL である可能性があります。 この引数が存在する場合は、クライアント ツールが構成可能なマージ モジュールを変更できることを示します。 この引数が存在する場合、クライアントは特定の構成可能な項目の構成データを提供する必要はありません。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

説明
E_OUTOFMEMORY
システムのメモリ不足のため、操作を完了できませんでした。
E_INVALIDARG
引数の 1 つが無効です。
E_FAIL
エラーが発生したため、マージが停止されました。 一部のテーブルがマージされていない可能性があります。 詳細については、次の「解説」を参照してください。
S_FALSE
関数は成功しましたが、エラーが発生し、マージ自体が有効でない可能性があります。
S_OK
関数が正常に実行されました。

解説

この関数は、現在のデータベースと現在のモジュールのマージを実行します。 モジュールのディレクトリ ツリーのルートは、RedirectDir によって指定されている場所にリダイレクトされます。 何らかのマージの競合 (除外を含む) が発生した場合、それらは後で取得するためにエラー列挙子に配置されますが、それによりマージが失敗するわけではありません。 エラーは、 get_Errors 関数を使用して取得できます。 エラーと情報メッセージは、現在のログ ファイルに投稿されます。

マージが完了すると、モジュール内のコンポーネントは Feature によって識別される機能にアタッチされます。 この機能は既に存在している必要があり、作成されていません。 Connect 関数を 使用して、モジュールを追加の機能にアタッチできます。

bCommitTRUE に設定して CloseDatabase 関数を呼び出さない限り、データベースに加えられた変更はディスクに保存されません。

モジュール構成が正しくないためにマージが失敗すると、関数は E_FAILを返します。 これには、msmErrorBadNullSubstitution、msmErrorBadSubstitutionType、msmErrorBadNullResponse、msmErrorMissingConfigItem、msmErrorDataRequestFailed という msmErrorType エラーが含まれます。 これらのエラーの場合は、エラーが発生すると、マージは直ちに停止されます。 MergeEx が E_FAIL を返した場合は、エラー オブジェクトが引き続き列挙子に追加されます。 msmErrorType エラーの詳細については、get_Type 関数 (Error オブジェクト) に関するページを参照してください。 その他のすべてのエラーの場合、MergeEx は S_FALSE を返し、マージが続行されます。

要件

   
サポートされている最小のクライアント Mergemod.dll 2.0 以降
対象プラットフォーム Windows
ヘッダー mergemod.h
[DLL] Mergemod.dll

関連項目

マージ モジュールのオートメーション