変換候補を取得できるように改造。
(メモリノートパッド形式で返却)
といっても区切りが指定できないため、変換制度はイマイチ。
#module
#define GCL_CONVERSION 0x0001
#define GCL_REVERSECONVERSION 0x0002
#uselib "user32.dll"
;入力ロケールを取得する
#cfunc GetKeyboardLayout "GetKeyboardLayout" int
#uselib "imm32.dll"
;指定のウィンドウの入力コンテキストのハンドルを取得する
#cfunc ImmGetContext "ImmGetContext" int
;登録した単語の一つからリストを取得する
#cfunc ImmGetConversionList "ImmGetConversionListA" int,int,str,int,int,int
;入力コンテキストのハンドルを解放する
#func ImmReleaseContext "ImmReleaseContext" int,int
;漢字→かな変換:GetReverseConversion(文字列)
#defcfunc GetReverseConversion str prm
hIMC = ImmGetContext(hwnd)
hKL = GetKeyboardLayout(0)
dwsize=ImmGetConversionList(hKL,hIMC,prm,0,0,GCL_CONVERSION)
dim CANDIDATELIST,7+dwsize/4
dum=ImmGetConversionList(hKL,hIMC,prm,varptr(CANDIDATELIST),dwsize,GCL_CONVERSION)
sdim word2,1024
repeat CANDIDATELIST.2
offset = CANDIDATELIST.(cnt+6)
sdim word,dwsize-offset-2
memcpy word,CANDIDATELIST,dwsize-offset-3,0,offset
word2+=""+word+"\n"
loop
ImmReleaseContext hwnd,hIMC
return word2
#global
moji="あかぱじゃまきぱじゃまあおぱじゃま。とうきょうとっきょきょかきょく。"
moji+="うらにわにはにわにわにはにわにわとりがいる。"
mes moji
mes "↓"
ref=GetReverseConversion(moji)
mesbox ref,640,440,0