C# で IME 操作(2)

ImmGetCompositionString() の動作は、

http://nienie.com/~masapico/api_ImmGetCompositionString.html

ここを見れば大体分かる。


でも、

GCS_RESULTCLAUSE 最後に変換を行った際の各文節の位置をバイト単位で表す、32bit整数のオフセット値の配列が、bufに返される。ただし、配列の末尾に、入力された文字列長をバイト数で表した値が格納される。戻り値は、配列のバイトサイズ。
GCS_RESULTREADCLAUSE 最後に変換を行った際の各文節の位置を文字単位で表す、32bit整数のオフセット値の配列が、bufに返される。ただし、配列の末尾に、入力された文字列長を文字数で表した値が格納される。戻り値は、配列のバイトサイズ。

これ、違いがいまいち分からなかったんだけど、どうやらGCS_RESULTCLAUSE が、変換された後の(漢字付きの)文字列の文節のオフセットがバイト単位で入力されて、GCS_RESULTREADCLAUSE が、その文字列のよみがな(半角カナ)の、文字列の文節のオフセットがバイト単位で入力されるみたい。


そんな説明じゃ全然わかんないよヽ(`Д´)ノウワァン