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

IFEDictionary

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

公式ドキュメント

IFEDictionary インターフェースは、クライアントが Microsoft IME のユーザー辞書にアクセスできるようにします。

解説(Remarks)

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

メソッド 17

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

vtbl 3 HRESULT Open(LPSTR pchDictPath, IMESHF* pshf)

辞書ファイルを開きます。

pchDictPathLPSTRinoutoptional開く NULL 終端のファイル名文字列を指します。pchDictPathNULL または空文字列の場合、IME カーネルが開いているユーザー辞書が使用されます。pchDictPath が空文字列の場合、ユーザー辞書の名前が pchDictPath にコピーされます。この場合、pchDictPath のサイズは MAX_PATH でなければなりません。
pshfIMESHF*inout開いたファイルの IMESHF ヘッダー。NULL でも構いません。

戻り値

次のいずれか:

vtbl 4 HRESULT Close()

辞書ファイルを閉じます。

戻り値

成功した場合は S_OK、それ以外の場合は E_FAIL

vtbl 5 HRESULT GetHeader(LPSTR pchDictPath, IMESHF* pshf, IMEFMT* pjfmt, DWORD* pulType)

辞書を開かずに、辞書ファイルから辞書ヘッダーを取得します。

pchDictPathLPSTRinoutoptional辞書ファイルのパスと名前を含む NULL 終端文字列。
pshfIMESHF*inoutファイルの IMESHF ヘッダー。NULL でも構いません。
pjfmtIMEFMT*inout

辞書のフォーマット。次のいずれかの値になります:

IFED_UNKNOWN

IFED_MSIME2_BIN_SYSTEM

IFED_MSIME2_BIN_USER

IFED_MSIME2_TEXT_USER

IFED_MSIME95_BIN_SYSTEM

IFED_MSIME95_BIN_USER

IFED_MSIME95_TEXT_USER

IFED_MSIME97_BIN_SYSTEM

IFED_MSIME97_BIN_USER

IFED_MSIME97_TEXT_USER

IFED_MSIME98_BIN_SYSTEM

IFED_MSIME98_BIN_USER

IFED_MSIME98_TEST_USER

IFED_ACTIVE_DICT

IFED_ATOK9

IFED_ATOK10

IFED_NEC_AI_

IFED_WX_II

IFED_WX_III

IFED_VJE_20

IFED_MSIME98_SYSTEM_CE

IFED_MSIME_BIN_SYSTEM

IFED_MSIME_BIN_USER

IFED_MSIME_TEXT_USER

IFED_PIME2_BIN_USER

IFED_PIME2_BIN_SYSTEM

IFED_PIME2_BIN_STANDARD_SYSTEM

pulTypeDWORD*inout

辞書の種類。次のフラグの 1 つ以上の組み合わせです:

意味
IFED_TYPE_NONE
未定義。
IFED_TYPE_GENERAL
一般辞書。
IFED_TYPE_NAMEPLACE
人名/地名辞書。
IFED_TYPE_SPEECH
音声辞書。
IFED_TYPE_REVERSE
逆引き辞書。
IFED_TYPE_ENGLISH
英語辞書。
IFED_TYPE_ALL
上記すべての種類。

戻り値

次のいずれか:

vtbl 6 HRESULT DisplayProperty(HWND hwnd)

このメソッドは Windows 8 以降では廃止されており、サポートされていません。

hwndHWNDin親ウィンドウのハンドル。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 7 HRESULT GetPosTable(POSTBL** prgPosTbl, INT* pcPosTbl)

公開 POS(品詞)テーブルを取得します。

prgPosTblPOSTBL**inoutPOSTBL 構造体の配列へのポインター。
pcPosTblINT*inout返される配列内の POSTBL 構造体の数へのポインター。NULL でも構いません。

戻り値

成功した場合は S_OK、それ以外の場合は E_FAIL

vtbl 8 HRESULT GetWords(LPWSTR pwchFirst, LPWSTR pwchLast, LPWSTR pwchDisplay, DWORD ulPos, DWORD ulSelect, DWORD ulWordSrc, BYTE* pchBuffer, DWORD cbBuffer, DWORD* pcWrd)

辞書から単語エントリを取得します。

pwchFirstLPWSTRin

IFEDictionary のエントリを照合するテキスト文字列。値は次のいずれかでなければなりません:

意味
NULL
下限値。
ひらがな文字列(取得するテキスト全体)。
"*" で終わるひらがな文字列(テキストの先頭文字のみを指定)。

単語の範囲を取得する場合の開始テキスト文字列にできます。その場合、ワイルドカードは使用できません。

pwchLastLPWSTRin

テキスト文字列の終端に使用するテキスト文字列。範囲値ではなく単一の値で取得を行う場合、IMEWRD 構造体の pwchReading と同じ値を含める必要があります。値は次のいずれかでなければなりません:

意味
NULL
上限値。
ひらがな文字列(取得するテキスト全体)。
"*" で終わるひらがな文字列(テキストの先頭文字のみを指定)。
pwchDisplayLPWSTRin

IFEDictionary のエントリを照合する表示文字列。値は次のいずれかでなければなりません:

意味
NULL
"*" を意味します。
任意の日本語文字列。
"*" で終わる日本語文字列。
ulPosDWORDin

Microsoft IME の公開品詞に対するフィルター。次のフラグの 1 つ以上の組み合わせです:

IFED_POS_NONE

IFED_POS_NOUN

IFED_POS_VERB

IFED_POS_ADJECTIVE

IFED_POS_ADJECTIVE_VERB

IFED_POS_ADVERB

IFED_POS_ADNOUN

IFED_POS_CONJUNCTION

IFED_POS_INTERJECTION

IFED_POS_INDEPENDENT

IFED_POS_INFLECTIONALSUFFIX

IFED_POS_PREFIX

IFED_POS_SUFFIX

IFED_POS_AFFIX

IFED_POS_TANKANJI

IFED_POS_IDIOMS

IFED_POS_SYMBOLS

IFED_POS_PARTICLE

IFED_POS_AUXILIARY_VERB

IFED_POS_SUB_VERB

IFED_POS_DEPENDENT

IFED_POS_ALL

ulSelectDWORDin

単語のクエリ出力を指定します。次のフラグの 1 つ以上の組み合わせです:

IFED_SELECT_NONE

IFED_SELECT_READING

IFED_SELECT_DISPLAY

IFED_SELECT_POS

IFED_SELECT_COMMENT

IFED_SELECT_ALL

ulWordSrcDWORDin

単語のソースを指定します。IFEDictionary がユーザー辞書の場合、次のフラグの 1 つ以上の組み合わせになります:

IFED_REG_NONE

IFED_REG_USER

IFED_REG_AUTO

IFED_REG_GRAMMAR

IFED_REG_ALL

pchBufferBYTE*inoutデータを受け取るために呼び出し元が用意するバッファー。
cbBufferDWORDinpchBuffer のサイズ。
pcWrdDWORD*inoutpchBuffer に返される IMEWRD 構造体の数。pchBuffer に格納できる数より多くのエントリが見つかった場合は、IFED_S_MORE_ENTRIES が返されます。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
IFED_S_MORE_ENTRIES
クライアントは追加の IMEWRD 構造体を取得するために NextWords を呼び出す必要があります。
IFED_E_NO_ENTRY
E_OUTOFMEMORY
E_FAIL
vtbl 9 HRESULT NextWords(BYTE* pchBuffer, DWORD cbBuffer, DWORD* pcWrd)

辞書から次の単語エントリを取得します。

pchBufferBYTE*inoutデータを受け取るために呼び出し元が用意するバッファー。
cbBufferDWORDinpchBuffer のサイズ。
pcWrdDWORD*inoutpchBuffer に返される IMEWRD 構造体の数。pchBuffer に格納できる数より多くのエントリが見つかった場合は、IFED_S_MORE_ENTRIES が返されます。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
IFED_S_MORE_ENTRIES
クライアントは追加の IMEWRD 構造体を取得するために NextWords を呼び出す必要があります。
E_FAIL
vtbl 10 HRESULT Create(LPSTR pchDictPath, IMESHF* pshf)

新しい辞書ファイルを作成します。

pchDictPathLPSTRin作成する新しい辞書ファイルのパスと名前を含む NULL 終端文字列。
pshfIMESHF*inout新しい辞書の IMESHF ヘッダー。

戻り値

次のいずれか:

vtbl 11 HRESULT SetHeader(IMESHF* pshf)

辞書ファイルに辞書ヘッダーを設定します。

pshfIMESHF*inout設定する IMESHF ヘッダー。

戻り値

成功した場合は S_OK、それ以外の場合は E_FAIL

vtbl 12 HRESULT ExistWord(IMEWRD* pwrd)

指定した単語が IFEDictionary に存在するかどうかを判定します。

pwrdIMEWRD*inoutチェックする単語を指定する IMEWRD 構造体。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
単語が存在します。
S_FALSE
単語が存在しません。
E_FAIL
予期しないエラー。
vtbl 13 HRESULT ExistDependency(IMEDP* pdp)
pdpIMEDP*inout存在を確認する係り受け情報(IMEDP)へのポインタである。
vtbl 14 HRESULT RegisterWord(IMEREG reg, IMEWRD* pwrd)

IFEDictionary に新しい単語を登録するか、既存の単語を削除します。

regIMEREGin

実行する操作の種類。次のいずれかの値になります:

意味
IFED_REG_HEAD
単語を辞書の先頭に登録します。
IFED_REG_TAIL
単語を辞書の末尾に登録します。
IFED_REG_DEL
単語を辞書から削除します。
pwrdIMEWRD*inout登録または削除する単語を指定する IMEWRD 構造体。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
メソッドが成功しました。
IFED_E_NOT_USER_DIC
この IFEDictionary オブジェクトはユーザー辞書ではありません。
IFED_S_WORD_EXISTS
単語はすでに登録されています。
IFED_E_USER_COMMENT
ユーザーコメントの挿入に失敗しました。
S_FALSE
単語の登録または削除に失敗しました。
E_FAIL
予期しないエラー。
vtbl 15 HRESULT RegisterDependency(IMEREG reg, IMEDP* pdp)
regIMEREGin登録か削除かを示す操作種別(IMEREG)を指定する。
pdpIMEDP*inout登録・削除する係り受け情報(IMEDP)へのポインタである。
vtbl 16 HRESULT GetDependencies(LPWSTR pwchKakariReading, LPWSTR pwchKakariDisplay, DWORD ulKakariPos, LPWSTR pwchUkeReading, LPWSTR pwchUkeDisplay, DWORD ulUkePos, IMEREL jrel, DWORD ulWordSrc, BYTE* pchBuffer, DWORD cbBuffer, DWORD* pcdp)
pwchKakariReadingLPWSTRin係り側の読み文字列へのポインタである。
pwchKakariDisplayLPWSTRin係り側の表記文字列へのポインタである。
ulKakariPosDWORDin係り側の品詞を指定する。
pwchUkeReadingLPWSTRin受け側の読み文字列へのポインタである。
pwchUkeDisplayLPWSTRin受け側の表記文字列へのポインタである。
ulUkePosDWORDin受け側の品詞を指定する。
jrelIMERELin係り受けの関係種別(IMEREL)を指定する。
ulWordSrcDWORDin検索対象とする単語ソースを指定する。
pchBufferBYTE*inout取得した係り受けデータを受け取るバッファへのポインタである。
cbBufferDWORDinpchBuffer のサイズ(バイト数)を指定する。
pcdpDWORD*inout取得した係り受けの個数を受け取る。
vtbl 17 HRESULT NextDependencies(BYTE* pchBuffer, DWORD cbBuffer, DWORD* pcDp)
pchBufferBYTE*inout続きの係り受けデータを受け取るバッファへのポインタである。
cbBufferDWORDinpchBuffer のサイズ(バイト数)を指定する。
pcDpDWORD*inout取得した係り受けの個数を受け取る。
vtbl 18 HRESULT ConvertFromOldMSIME(LPSTR pchDic, PFNLOG pfnLog, IMEREG reg)
pchDicLPSTRin変換元となる旧 MS-IME 辞書ファイルのパスを指定する。
pfnLogPFNLOGin変換の進捗を通知するログコールバック関数を指定する。
regIMEREGin変換時の登録操作種別(IMEREG)を指定する。
vtbl 19 HRESULT ConvertFromUserToSys()
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IFEDictionary "{019F7153-E6DB-11D0-83C3-00C04FDDB82E}"
#usecom global IFEDictionary IID_IFEDictionary "{}"
#comfunc global IFEDictionary_Open                  3 var,var
#comfunc global IFEDictionary_Close                 4
#comfunc global IFEDictionary_GetHeader             5 var,var,var,var
#comfunc global IFEDictionary_DisplayProperty       6 sptr
#comfunc global IFEDictionary_GetPosTable           7 var,var
#comfunc global IFEDictionary_GetWords              8 wstr,wstr,wstr,int,int,int,var,int,var
#comfunc global IFEDictionary_NextWords             9 var,int,var
#comfunc global IFEDictionary_Create                10 str,var
#comfunc global IFEDictionary_SetHeader             11 var
#comfunc global IFEDictionary_ExistWord             12 var
#comfunc global IFEDictionary_ExistDependency       13 var
#comfunc global IFEDictionary_RegisterWord          14 int,var
#comfunc global IFEDictionary_RegisterDependency    15 int,var
#comfunc global IFEDictionary_GetDependencies       16 wstr,wstr,int,wstr,wstr,int,int,int,var,int,var
#comfunc global IFEDictionary_NextDependencies      17 var,int,var
#comfunc global IFEDictionary_ConvertFromOldMSIME   18 str,sptr,int
#comfunc global IFEDictionary_ConvertFromUserToSys  19
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。