More ... | 編集履歴:差分記録開始以来の漢字の読みを取得の変更箇所
- IFELanguageを使って、漢字の読みを取得してみる。 - - - [[$$toc]] - - →[[HSP3・サンプルスクリプト]]に戻る - - ---- - - HSP3.1β6で動作確認~% - IME98 以降であれば使えます。~% - - * スクリプト - - {{{ - ; <<<< HSP 3.1β1 サンプル >>>> - ; - ; IFELanguageを使ってみる。 - ; - - onexit gosub *exit - - #uselib "oleaut32.dll" - #cfunc SysAllocString "SysAllocString" wptr - #func SysFreeString "SysFreeString" int - #cfunc SysStringLen "SysStringLen" int - - //IFELanguage Methods in VTable Order--- - - #define IID_IFELanguage "{019F7152-E6DB-11D0-83C3-00C04FDDB82E}" - #define CLSID_MSIME "{019F7150-E6DB-11d0-83C3-00C04FDDB82E}" - - #usecom IFELanguage IID_IFELanguage CLSID_MSIME - #comfunc FELang_Open 3 - #comfunc FELang_Close 4 - #comfunc FELang_GetPhonetic 7 int,int,int,var - - //---------------------------------------- - - screen 0,480,320 - - sdim buf,260: sdim buf1,520 - - buf="冬過ぎて春来るらし朝日さす春日の山に霞たなびく" - - pos 10,10 :input buf,280,20 - pos 10,35 :input buf1,330,20 - pos 350,10 :button gosub "GO",*go1 - stop - - *go1 - newcom pFEL,IFELanguage - - FELang_Open pFEL - - bstr=SysAllocString(buf) - FELang_GetPhonetic pFEL,bstr,1,-1,bstr1 - - dupptr r,bstr1,SysStringLen(bstr1)*2+1 ;+1?・・微妙・・ - objprm 1,cnvwtos(r) - - SysFreeString bstr ; 必ずクリア - SysFreeString bstr1; - - FELang_Close pFEL - - delcom pFEL : pFEL=0 - return - - *exit - pFEL=0 - end - - }}} - * 解説 - オートメーション非対応なので、'''pFEL->"Open"''' の様な書き方は出来ません。~% - '''IFELanguage'''インターフェイスの'''GetPhonetic'''メソッドを使って変換しています。~% - {{{ - #comfunc FELang_GetPhonetic 7 int,int,int,var - - BSTR string (IN) 変換したい文字列を指定します(BSTR型です。) - LONG start (IN) 文字列の先頭を指定します。(普通は 1 ) - LONG length (IN) 文字列の長さを指定します。(-1を指定すると全て) - BSTR *phonetic (OUT) 変換された文字列を受け取るポインタ(BSTR型です。) - }}} - * memo~% - 2006/04/08 13:39:10 JST 変更 onexit *exit -> onexit gosub *exit~% - 2006/11/18 12:17:30 JST HSP3.1β6で動作確認~% |