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 である可能性があります。 この引数が存在する場合は、クライアント ツールが構成可能なマージ モジュールを変更できることを示します。 この引数が存在する場合、クライアントは特定の構成可能な項目の構成データを提供する必要はありません。
戻り値
このメソッドは、これらの値のいずれかを返すことができます。
値 | 説明 |
---|---|
|
システムのメモリ不足のため、操作を完了できませんでした。 |
|
引数の 1 つが無効です。 |
|
エラーが発生したため、マージが停止されました。 一部のテーブルがマージされていない可能性があります。 詳細については、次の「解説」を参照してください。 |
|
関数は成功しましたが、エラーが発生し、マージ自体が有効でない可能性があります。 |
|
関数が正常に実行されました。 |
解説
この関数は、現在のデータベースと現在のモジュールのマージを実行します。 モジュールのディレクトリ ツリーのルートは、RedirectDir によって指定されている場所にリダイレクトされます。 何らかのマージの競合 (除外を含む) が発生した場合、それらは後で取得するためにエラー列挙子に配置されますが、それによりマージが失敗するわけではありません。 エラーは、 get_Errors 関数を使用して取得できます。 エラーと情報メッセージは、現在のログ ファイルに投稿されます。
マージが完了すると、モジュール内のコンポーネントは Feature によって識別される機能にアタッチされます。 この機能は既に存在している必要があり、作成されていません。 Connect 関数を 使用して、モジュールを追加の機能にアタッチできます。
bCommit を TRUE に設定して 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 |