« SQLGetInfo | トップページ | ScriptGetPropertiesの続き »

2008年1月29日 (火)

ScriptGetProperties

最近、寒い。寒くて集中する必要がある作業に集中できん。というより、そういう事は避けていた・・・

今回はScriptGetProperties。Uniscribeでは、まず、テキストをScriptItemizeでシェーピングエンジンの変わり目や読む方向の変わり目などで、実行単位(ラン)に分割して処理するが、この分割された実行単位のスクリプトに関する情報にScriptGetPropertiesというAPIを使ってアクセスできる。

具体的には、ScriptGetPropertiesでスクリプトに関する情報が格納されたグローバルスクリプトプロパティテーブル(Global Script Properties Table)へのポインタが返されるが、これと、各実行単位のSCRIPT_ANALYSIS構造体のeScriptメンバに格納されているスクリプトインデックスを使って実行単位のスクリプトの情報にアクセスできる。

で、今回はScrigetGetPropertiesだけを使って、グローバルスクリプトテーブル内の各スクリプトの属性(SCRIPT_PROPERTIES構造体)を表示させてみた。こんな感じに・・

Scprops1_2

言語IDの列はSCRIPT_PROPERTIES.langidメンバをわかり易く表示してある。この列はそのスクリプトで使われる言語を表す。複数の言語で使われるスクリプトの場合、その主な?言語が返される。fComplexメンバはそのスクリプトがComplex Shapingを必要とするかを表す。細かいことはMSDNを参照ということで・・

ちなみに、上の画像は自分のWindows2000の環境上で実行したものであるが、自分のWindows2000上では、計53種類のスクリプトが返された。

で、同じプログラムをWindowsXP SP2上で実行してみる。、

Scprops2

上の画像のように、計74種類のスクリプトが返された。LANG_MONGORIANなどモンゴル語??系のスクプリトが追加されていることもわかる。各スクリプトのスクリプトインデックスやUnicodeコードポイントの範囲などは、Uniscribeのバージョンアップで変わったりするので、公開はされておらず、不定であるので注意を。

« SQLGetInfo | トップページ | ScriptGetPropertiesの続き »

Windows」カテゴリの記事

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: ScriptGetProperties:

« SQLGetInfo | トップページ | ScriptGetPropertiesの続き »

自作ソフトウェア

無料ブログはココログ

メモ