Win32 API 日本語リファレンス
ホームUI.Input.Ime › IFELanguage

IFELanguage

COM
IID019f7152-e6db-11d0-83c3-00c04fddb82e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IFELanguage インターフェースは、Microsoft IME を使用した言語処理サービスを提供します。

解説(Remarks)

このインターフェースのインスタンスは CreateIFELanguageInstance 関数で作成します。

メソッド 6

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Open()

IFELanguage オブジェクトを初期化します。

戻り値

成功した場合は S_OK、それ以外の場合は E_FAIL を返します。

vtbl 4 HRESULT Close()

IFELanguage オブジェクトを終了します。

戻り値

成功した場合は S_OK、それ以外の場合は E_FAIL を返します。

vtbl 5 HRESULT GetJMorphResult(DWORD dwRequest, DWORD dwCMode, INT cwchInput, LPWSTR pwchInput, DWORD* pfCInfo, MORRSLT** ppResult)

形態素解析の結果を取得します。

dwRequestDWORDin

変換要求。次のいずれかの値を指定できます。

FELANG_REQ_CONV

FELANG_REQ_RECONV

FELANG_REQ_REV

dwCModeDWORDin

変換出力文字と変換オプションを指定します。この値は、次のフラグの 1 つ以上を組み合わせたものです。

意味
FELANG_CMODE_MONORUBY
モノルビ。
FELANG_CMODE_NOPRUNING
枝刈りなし。
FELANG_CMODE_KATAKANAOUT
カタカナ出力。
FELANG_CMODE_HIRAGANAOUT
既定の出力。
FELANG_CMODE_HALFWIDTHOUT
半角出力。
FELANG_CMODE_FULLWIDTHOUT
全角出力。
FELANG_CMODE_BOPOMOFO
FELANG_CMODE_HANGUL
FELANG_CMODE_PINYIN
FELANG_CMODE_PRECONV
次のように変換します。
  • ローマ字からかなへ。
  • 変換前のオートコレクト。
  • 句点、読点、括弧。
FELANG_CMODE_RADICAL
FELANG_CMODE_UNKNOWNREADING
FELANG_CMODE_MERGECAND
同じ候補の表示をマージします。
FELANG_CMODE_ROMAN
FELANG_CMODE_BESTFIRST
最良の第一候補のみを作成します。
FELANG_CMODE_USENOREVWORDS
REV/RECONV で無効な revword を使用します。
FELANG_CMODE_NONE

IME_SMODE_NONE

FELANG_CMODE_PLAURALCLAUSE

IME_SMODE_PLAURALCLAUSE

FELANG_CMODE_SINGLECONVERT

IME_SMODE_SINGLECONVERT

FELANG_CMODE_AUTOMATIC

IME_SMODE_AUTOMATIC

FELANG_CMODE_PHRASEPREDICT

IME_SMODE_PHRASEPREDICT

FELANG_CMODE_CONVERSATION

IME_SMODE_CONVERSATION

FELANG_CMODE_NAME
名前モード (MSKKIME)。
FELANG_CMODE_NOINVISIBLECHAR
不可視文字 (声調記号など) を削除します。
cwchInputINTinpwchInput の文字数。
pwchInputLPWSTRin

形態素エンジンによって変換される入力文字。UNICODE 文字列である必要があります。

前回入力した文字列に対する次の順位のエントリを取得するには、このパラメーターを NULL に設定します。次のエントリが返される順序は実装によって定義されます。

pfCInfoDWORD*inout

各列の情報。各 pfCInfo[x]pwchInput[x] に対応します。各 DWORD は、以下のフラグの組み合わせにできます。

FELANG_CLMN_WBREAK

FELANG_CLMN_NOWBREAK

FELANG_CLMN_PBREAK

FELANG_CLMN_NOPBREAK

FELANG_CLMN_FIXR

FELANG_CLMN_FIXD

ppResultMORRSLT**inout

形態素結果データを受け取る MORRSLT 構造体のアドレス。

GetJMorphResult は、返されるデータのために OLE タスク アロケーターを使用してメモリを割り当て、そのメモリを指すように pResult を設定します。 アプリケーションは、CoTaskMemFree を使用して、pResult が指すメモリを解放する必要があります。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
S_OK
さらに候補が存在します。pwchInputNULL にしてこの関数を再度呼び出すと、前回の pwchInput に対する次に良い候補を取得します。
S_FALSE
結果がありません。
E_NOCAND
これ以上候補がありません。
E_LARGEINPUT
入力が大きすぎます。
ERROR_SEM_TIMEOUT
ミューテックスのタイムアウトが発生しました。
vtbl 6 HRESULT GetConversionModeCaps(DWORD* pdwCaps)

IFELanguage オブジェクトの変換モード機能を取得します。

pdwCapsDWORD*inout

機能。次のフラグの 1 つ以上を組み合わせて表されます。

意味
FELANG_CMODE_MONORUBY
モノルビ。
FELANG_CMODE_NOPRUNING
枝刈りなし。
FELANG_CMODE_KATAKANAOUT
カタカナ出力。
FELANG_CMODE_HIRAGANAOUT
既定の出力。
FELANG_CMODE_HALFWIDTHOUT
半角出力。
FELANG_CMODE_FULLWIDTHOUT
全角出力。
FELANG_CMODE_BOPOMOFO
FELANG_CMODE_HANGUL
FELANG_CMODE_PINYIN
FELANG_CMODE_PRECONV
次のように変換します。
  • ローマ字からかなへ。
  • 変換前のオートコレクト。
  • 句点、読点、括弧。
FELANG_CMODE_RADICAL
FELANG_CMODE_UNKNOWNREADING
FELANG_CMODE_MERGECAND
同じ候補の表示をマージします。
FELANG_CMODE_ROMAN
FELANG_CMODE_BESTFIRST
最良の第一候補のみを作成します。
FELANG_CMODE_USENOREVWORDS
REV/RECONV で無効な revword を使用します。
FELANG_CMODE_NONE

IME_SMODE_NONE

FELANG_CMODE_PLAURALCLAUSE

IME_SMODE_PLAURALCLAUSE

FELANG_CMODE_SINGLECONVERT

IME_SMODE_SINGLECONVERT

FELANG_CMODE_AUTOMATIC

IME_SMODE_AUTOMATIC

FELANG_CMODE_PHRASEPREDICT

IME_SMODE_PHRASEPREDICT

FELANG_CMODE_CONVERSATION

IME_SMODE_CONVERSATION

FELANG_CMODE_NAME
名前モード (MSKKIME)。
FELANG_CMODE_NOINVISIBLECHAR
不可視文字 (声調記号など) を削除します。

戻り値

成功した場合は S_OK、それ以外の場合は E_FAIL を返します。

vtbl 7 HRESULT GetPhonetic(LPWSTR string, INT start, INT length, LPWSTR* phonetic)
stringLPWSTRin対象の文字列へのポインタである。
startINTin処理を開始する文字位置を指定する。
lengthINTin処理する文字数を指定する。-1 で末尾までを対象とする。
phoneticLPWSTR*inout取得した読み(ふりがな)文字列を受け取る。
vtbl 8 HRESULT GetConversion(LPWSTR string, INT start, INT length, LPWSTR* result)

入力文字列 (通常はひらがな文字を含む) を変換後の文字列に変換します。

stringLPWSTRin変換する表音文字の文字列。
startINTinIFELanguage が変換を開始する先頭文字。 string の最初の文字は 0 ではなく 1 で表されます。
lengthINTin変換する文字数。この値が -1 の場合、start 以降の残りのすべての文字が変換されます。
resultLPWSTR*inout変換後の文字列。この文字列は SysAllocStringLen によって割り当てられるため、クライアントが解放する必要があります。

戻り値

成功した場合は S_OK、それ以外の場合は E_FAIL を返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IFELanguage "{019F7152-E6DB-11D0-83C3-00C04FDDB82E}"
#usecom global IFELanguage IID_IFELanguage "{}"
#comfunc global IFELanguage_Open                   3
#comfunc global IFELanguage_Close                  4
#comfunc global IFELanguage_GetJMorphResult        5 int,int,int,wstr,var,var
#comfunc global IFELanguage_GetConversionModeCaps  6 var
#comfunc global IFELanguage_GetPhonetic            7 wstr,int,int,var
#comfunc global IFELanguage_GetConversion          8 wstr,int,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。