1つの要素のPositionは正常に値がセットされます。文節ごとに下線を引くプログラムなので、文節より短く下線が引かれることから気づきました。文節の数(ImeData->ClauseNum)だけループして処理するものになっています。現在の環境に問題があるのかとも思いましたが違うようで、次のものは正常に動作しています。非常に古いのですが以前VS2005で作成したEXEが手元に残っており、その中では正常に取れており、現在の環境で実行させても文節ごとの下線が正常な長さで引かれてました。当時のEXEのソースをVS2010で動くように修正してコンパイルしたもので、上記の症状となりました。VS2010でコンパイルしたものであっても、他のCandidate関係やConvertFlag等は正常に動作しているので、ClauseData[i].Lengthだけがおかしいようです。19:10すみません、IME確定のつもりでEnterを押したら、送信してしまいました。題名「ClauseData[i].Lengthが常に0のソース」にするつもりでした。0になってしまいます。先のソースはデバッグ用にprintfDXを追加してありますが、printfDXの無い元のソースを2008年頃にVC2005で作成したexeのものは正常に動作(下線の長さが文節の長さと一致して描画される)しています。09:06早速の修正ありがとうございます。修正版を試したところ、以下のようになりました。Lengs:12になっていく値だと思います。09:43修正ありがとうございます。Length大丈夫になりました。すみません、、、ImeData->SelectClauseですが以下のようになります。※「()」は変換対象文節の位置(ATOK上のカーソル位置)です。