入力 漢字が入っている文字列型
出力 漢字の読み仮名が入っている文字列型の配列
変換され終わってる文字列が対象です。
(テキストファイルから読み込んだ漢字でも使えるということです)
WindowsXPではImmGetConversionListを使うことで達成できていましたが、
VistaではImmGetConversionListは利用不可能になり、
TSFを使うことになるという記述は見かけるのですが実装までたどり着けません。
C#,C,C++,VB.NETのいずれがの言語を手段として目的が達成できる実装を教えてください。
ご質問とは違ったアプローチですが、形態素解析エンジンをご利用になってみてはいかがでしょうか。
OSやIMEのバージョンに依存することなく「読み」を取得することができます。
形態素解析エンジンは、入力した自然文を単語に分解することを目的としていますが、分解された単語の読み仮名を出力することができます。
たとえば、「MeCab」はオープンソースの形態素解析エンジンで、C/C++ ライブラリが付属しています。
もちろん、完全な形態素解析はできませんから、読みが間違っている場合もあります。その場合は、重み付けを変更したり、ユーザー辞書を追加することで、より精度を高めることができます。
ありがとうございます。
形態素解析は使ったことがありますが、今回の目的には速度面とバイナリ配布の制約(ライセンスや容量)の点で使えません。
形態素解析で読みは出てましたね・・・思いつきませんでした。