ホーム › Media.Speech › ISpLexicon
ISpLexicon
COMメソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetPronunciations(LPWSTR pszWord, WORD LangID, DWORD dwFlags, SPWORDPRONUNCIATIONLIST* pWordPronunciationList)
| pszWord | LPWSTR | in | 発音を取得する対象の語。 |
| LangID | WORD | in | 対象言語を示す言語ID(LANGID)。 |
| dwFlags | DWORD | in | 取得元辞書を指定するeLEXTYPE系フラグ。ユーザー/アプリ辞書等を選択する。 |
| pWordPronunciationList | SPWORDPRONUNCIATIONLIST* | inout | 取得した発音一覧を受け取るSPWORDPRONUNCIATIONLIST構造体へのポインタ。 |
vtbl 4 HRESULT AddPronunciation(LPWSTR pszWord, WORD LangID, SPPARTOFSPEECH ePartOfSpeech, WORD* pszPronunciation)
| pszWord | LPWSTR | in | 登録する語。 |
| LangID | WORD | in | 対象言語を示す言語ID。 |
| ePartOfSpeech | SPPARTOFSPEECH | in | 語の品詞を示すSPPARTOFSPEECH列挙値。 |
| pszPronunciation | WORD* | inoptional | 登録する音素列(SAPI音素IDのNULL終端配列)。 |
vtbl 5 HRESULT RemovePronunciation(LPWSTR pszWord, WORD LangID, SPPARTOFSPEECH ePartOfSpeech, WORD* pszPronunciation)
| pszWord | LPWSTR | in | 削除対象の語。 |
| LangID | WORD | in | 対象言語を示す言語ID。 |
| ePartOfSpeech | SPPARTOFSPEECH | in | 削除対象の品詞を示すSPPARTOFSPEECH列挙値。 |
| pszPronunciation | WORD* | inoptional | 削除する音素列。NULLで該当語の全発音を対象にできる。 |
| pdwGeneration | DWORD* | inout | 辞書の現在の世代番号を受け取るポインタ。変更検出に用いる。 |
vtbl 7 HRESULT GetGenerationChange(DWORD dwFlags, DWORD* pdwGeneration, SPWORDLIST* pWordList)
| dwFlags | DWORD | in | 対象辞書を指定するeLEXTYPE系フラグ。 |
| pdwGeneration | DWORD* | inout | 入力で基準世代、出力で最新世代を受け取るポインタ。 |
| pWordList | SPWORDLIST* | inout | 指定世代以降に変更された語の一覧を受け取るSPWORDLIST構造体へのポインタ。 |
vtbl 8 HRESULT GetWords(DWORD dwFlags, DWORD* pdwGeneration, DWORD* pdwCookie, SPWORDLIST* pWordList)
| dwFlags | DWORD | in | 対象辞書および取得方法を指定するフラグを受け取るポインタ。 |
| pdwGeneration | DWORD* | inout | 現在の世代番号を受け取るポインタ。 |
| pdwCookie | DWORD* | inoutoptional | 列挙継続用のクッキー値を入出力するポインタ。 |
| pWordList | SPWORDLIST* | inout | 取得した語の一覧を受け取るSPWORDLIST構造体へのポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ISpLexicon "{DA41A7C2-5383-4DB2-916B-6C1719E3DB58}" #usecom global ISpLexicon IID_ISpLexicon "{0655E396-25D0-11D3-9C26-00C04F8EF87C}" #comfunc global ISpLexicon_GetPronunciations 3 wstr,int,int,var #comfunc global ISpLexicon_AddPronunciation 4 wstr,int,int,var #comfunc global ISpLexicon_RemovePronunciation 5 wstr,int,int,var #comfunc global ISpLexicon_GetGeneration 6 var #comfunc global ISpLexicon_GetGenerationChange 7 int,var,var #comfunc global ISpLexicon_GetWords 8 int,var,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ISpLexicon "{DA41A7C2-5383-4DB2-916B-6C1719E3DB58}" #usecom global ISpLexicon IID_ISpLexicon "{0655E396-25D0-11D3-9C26-00C04F8EF87C}" #comfunc global ISpLexicon_GetPronunciations 3 wstr,int,int,sptr #comfunc global ISpLexicon_AddPronunciation 4 wstr,int,int,sptr #comfunc global ISpLexicon_RemovePronunciation 5 wstr,int,int,sptr #comfunc global ISpLexicon_GetGeneration 6 sptr #comfunc global ISpLexicon_GetGenerationChange 7 int,sptr,sptr #comfunc global ISpLexicon_GetWords 8 int,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。