パラメーター文字列のコード ページ処理
インストール データベースにローカライズ情報を追加するには、Windows インストーラー SDK で提供される Orca などのデータベース テーブル エディターを使用するか、アプリケーションから Database Functions を呼び出します。 ローカライズされているデータベースのコード ページを使用する文字列パラメーターのみを渡すよう注意してください。 データベースのコード ページで表すことができない文字が文字列パラメーターに含まれている場合、MsiDatabaseImport呼び出すと、インストーラーによってエラーが返されます。 数値コード ページの一覧については、「Error テーブルと ActionText テーブルのローカライズ」を参照してください。
詳細については、「インストール データベースのコード ページのを決定する」を参照してください。
データベースへのローカリゼーション情報の追加
ローカライズ情報をデータベースに追加する場合、データベースのコード ページはオペレーティング システムでサポートされている必要があります。 システムの現在のコード ページである必要はありません。 IsValidCodePageは、データベース コード ページ TRUE を返す必要があります。 システムは ANSI 文字列を Unicode に変換するため、現在のユーザー コード ページがデータベース コード ページと同じでない場合はエラーが発生します。
WINDOWS インストーラー API の ANSI バージョンを呼び出すと、現在のシステム コード ページを使用してローカライズされた文字列が Unicode に変換されます。 データベースがコミットされると、Unicode 文字列はデータベースのコード ページを使用して ANSI に変換されます。 現在のシステム コード ページがローカライズされた文字列のコード ページと異なる場合、結果としてデータが失われ、文字列変換が正しくない可能性があります。
次の手順では、ローカライズ データを格納する方法を示します。
ローカリゼーション データ を格納するには
- データベースのコード ページを、ローカライズされた文字列のコード ページに設定します。
- multiByteToWideChar関数使用して ANSI 文字列を Unicode に変換し、ローカライズされたデータのコード ページを指定します。
- Unicode 文字列を使用して Windows インストーラー API の Unicode バージョンを呼び出し、ローカライズされたデータを追加します。
- MsiDatabaseCommitを使用して、ローカライズの変更データベースにコミットします。
ASCII テキスト アーカイブ ファイルをインポートおよびエクスポートすることで、ローカライズ情報をインストール データベースに追加することもできます。 詳細については、「インポートテーブルとエクスポートテーブルのコードページ処理を参照してください。