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