IMsmMerge::OpenModule メソッド (mergemod.h)
OpenModule メソッドは、読み取り専用モードで Windows インストーラーマージ モジュールを開きます。 モジュールをインストール データベースとマージするには、まず開いておく必要があります。 詳細については、Merge オブジェクトの OpenModule メソッドを参照してください。
IMsmMerge2::OpenModule バージョン 2.0 以降 Mergemod.dll。
構文
HRESULT OpenModule(
[in] const BSTR Path,
[in] const short Language
);
パラメーター
[in] Path
マージ モジュールを指す完全修飾ファイル名。 BSTR の代わりに LPCWSTR を使用できます。
[in] Language
言語識別子 (LANGID)。
戻り値
OpenModule 関数は、次の値を返します。
値 | 説明 |
---|---|
|
指定されたファイルは Windows インストーラー データベースですが、マージ モジュールではありません ( ModuleSignature テーブルがありません)。 |
|
この言語は、モジュールではサポートされていません。 |
|
この言語はモジュールでサポートされていますが、変換の適用中にエラーが発生しました。 |
|
ファイルを Windows インストーラー データベースとして開けませんでした。 |
|
既にモジュールが開いています。 最初に現在のモジュールを閉じます。 |
|
関数が正常に実行されました。 |
解説
この関数は、読み取り専用モード (MSIDBOPEN_READONLY) でマージ モジュールを開き、 CloseModule 関数が呼び出されるまで、他のプログラムがマージ モジュールに書き込むのを除外します。 マージ モジュールは、マージする前に開く必要があります。
インストーラーは、 Language で指定された言語またはそれ以上の一般的な言語でモジュールを開こうとします。 たとえば、 Language 値で 1033 が指定されている場合、既定の言語が 1033、9、または 0 のモジュールが既定の言語で開かれます。 Language の値が 9 の場合は、既定の言語が 9 または 0 のモジュールが開きます。 モジュールの既定の言語が指定された要件を満たしていない場合は、モジュールを要求された言語に変換しようとします。 失敗した場合、インストーラーはモジュールをますます一般的な言語に変換し、言語に依存しない言語に変換しようとします。 どの変換も成功しない場合、モジュールは開けません。 この場合、msmErrorLanguageUnsupported 型のエラー リストにエラーが追加され、関数は HRESULT としてERROR_INSTALL_LANGUAGE_UNSUPPORTEDを返します。
モジュールを目的の言語に変換中にエラーが発生した場合は、msmErrorLanguageFailed 型のエラーが作成され、関数は HRESULT としてERROR_INSTALL_TRANSFORM_FAILUREを返します。
詳細については、Error オブジェクトの Type プロパティを参照してください。
マージ モジュールが開かれるとと、まだ取得されていないエラーはクリアされます。
要件
サポートされている最小のクライアント | Mergemod.dll 1.0 以降 |
対象プラットフォーム | Windows |
ヘッダー | mergemod.h |
[DLL] | Mergemod.dll |