[トップ][一覧][最近の更新]

編集履歴:差分

記録開始以来の漢字の読みを取得の変更箇所

  • + 追加された行
  • - 削除された行

編集履歴ページに戻る

- 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で動作確認~%