« コードページの続き(3)・・・コードページの列挙(EnumSystemCodePages) | トップページ | MLang(Multilingual Language)の続き(2)・・・IEnumCodePage,IEnumRfc1766 »

2008年10月10日 (金)

MLang(Multilingual Language)

今回はMLangについて。MLang(Multilingual Language)は、国際化・多言語の環境に存在する問題を開発者が解決するのを助ける様々なサービスの集合で、これらによって開発者は国際化・多言語の環境における様々な問題を取り扱えるようになる。また、WindowsのCOM(Component Object Model)を使ってインプロセスサーバとして実装されている(MLang.dll)。MLang.dllはインターネットエクスプローラ4.0以上と共に配布されているので、今日の環境においてMLang.dllが存在しないと言った事は稀であると思われる。

MLangによって提供される機能は次のようになる。

  • MIMEデータベースからのコードページとロケールの列挙(IEnumCodePage,IEnumRfc1766)
  • コードページ、ロケール、キャラクタセットの情報の取得(IMultiLanguage)
  • 異なるキャラクタセット間のキャラクタセット変換
  • 与えられた文字または文字列を含むコードページの決定(IMLangCodePages)
  • 文字列データから使われている可能性のあるコードページ、言語の決定(IMultiLanguage)
  • 様々なキャラクタセットからの文字を一度に表示するためのカスタムフォントの作成(IMLangFontLink)
  • コンソールベースのアプリケーションのためのロケールに基づいた行分割(IMLangLineBreakConsole)

と、色々な便利な機能が提供されているのだが、これらの内のいくつかを実際に使ってみる。上記の括弧内は主に使用するインターフェースである。また、上記の機能を利用するには、最初にMultiLanguageオブジェクトというオブジェクトを作成する。MultiLanguageオブジェクトはMLangによって実装される他の全てのオブジェクト(Code Page EnumerationオブジェクトLocale Enumerationオブジェクトなど)とインターフェースへのアクセスを提供する。MultiLanguageオブジェクトによって実装されているインターフェースは次のようになる。

  • IMLangCodePages
  • IMLangFontLink
  • IMLangFontLink2
  • IMLangLineBreakConsole
  • IMultiLanguage
  • IMultiLanguage2

MultiLanguageオブジェクトを作成するにはCLSIDパラメータにCLSID_CMultiLanguageを指定してCoCreateInstanceを呼び出す。

Delphiで利用する場合はこんな感じ。

注:CreateComObjectは内部でCoCreateInstanceを呼び出すDelphiのラッパー関数である。

今回はここまで。

« コードページの続き(3)・・・コードページの列挙(EnumSystemCodePages) | トップページ | MLang(Multilingual Language)の続き(2)・・・IEnumCodePage,IEnumRfc1766 »

Windows」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1497665/39651742

この記事へのトラックバック一覧です: MLang(Multilingual Language):

« コードページの続き(3)・・・コードページの列挙(EnumSystemCodePages) | トップページ | MLang(Multilingual Language)の続き(2)・・・IEnumCodePage,IEnumRfc1766 »

自作ソフトウェア

無料ブログはココログ

メモ