Win32 API 日本語リファレンス
ホームMedia.Speech › ISpGrammarBuilder

ISpGrammarBuilder

COM
IID8137828f-591a-4a42-be58-49ea7ebaac68継承元IUnknown自前メソッド開始 vtbl3

メソッド 8

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

vtbl 3 HRESULT ResetGrammar(WORD NewLanguage)
NewLanguageWORDin再初期化後の文法に設定する言語ID(LANGID)。
vtbl 4 HRESULT GetRule(LPWSTR pszRuleName, DWORD dwRuleId, DWORD dwAttributes, BOOL fCreateIfNotExist, SPSTATEHANDLE* phInitialState)
pszRuleNameLPWSTRin対象ルールの名前。NULL可だがdwRuleIdとの併用が必要。
dwRuleIdDWORDin対象ルールのID。
dwAttributesDWORDinルールの属性を示すSPCFGRULEATTRIBUTESビットマスク。トップレベル/動的等を指定する。
fCreateIfNotExistBOOLinルールが存在しない場合に作成するか。
phInitialStateSPSTATEHANDLE*inoutルールの初期状態ハンドルを受け取るSPSTATEHANDLEポインタ。
vtbl 5 HRESULT ClearRule(SPSTATEHANDLE hState)
hStateSPSTATEHANDLEinクリア対象ルールの初期状態ハンドル。
vtbl 6 HRESULT CreateNewState(SPSTATEHANDLE hState, SPSTATEHANDLE* phState)
hStateSPSTATEHANDLEin新しい状態の基準となる既存状態ハンドル。
phStateSPSTATEHANDLE*inout生成した新しい状態ハンドルを受け取るポインタ。
vtbl 7 HRESULT AddWordTransition(SPSTATEHANDLE hFromState, SPSTATEHANDLE hToState, LPWSTR psz, LPWSTR pszSeparators, SPGRAMMARWORDTYPE eWordType, FLOAT Weight, SPPROPERTYINFO* pPropInfo)
hFromStateSPSTATEHANDLEin遷移元の状態ハンドル。
hToStateSPSTATEHANDLEin遷移先の状態ハンドル。NULLで終端遷移にする。
pszLPWSTRinoptional遷移に割り当てる単語列。NULLでイプシロン遷移にする。
pszSeparatorsLPWSTRinoptional単語の区切り文字を示す文字列。
eWordTypeSPGRAMMARWORDTYPEin単語の種類を示すSPGRAMMARWORDTYPE列挙値。表示語/発音語等を指定する。
WeightFLOATin遷移の重み。認識の優先度に影響する。
pPropInfoSPPROPERTYINFO*in遷移に関連付けるセマンティックプロパティ情報SPPROPERTYINFO。NULL可。
vtbl 8 HRESULT AddRuleTransition(SPSTATEHANDLE hFromState, SPSTATEHANDLE hToState, SPSTATEHANDLE hRule, FLOAT Weight, SPPROPERTYINFO* pPropInfo)
hFromStateSPSTATEHANDLEin遷移元の状態ハンドル。
hToStateSPSTATEHANDLEin遷移先の状態ハンドル。NULLで終端遷移にする。
hRuleSPSTATEHANDLEin参照するサブルールの初期状態ハンドル。
WeightFLOATin遷移の重み。認識の優先度に影響する。
pPropInfoSPPROPERTYINFO*in遷移に関連付けるセマンティックプロパティ情報SPPROPERTYINFO。NULL可。
vtbl 9 HRESULT AddResource(SPSTATEHANDLE hRuleState, LPWSTR pszResourceName, LPWSTR pszResourceValue)
hRuleStateSPSTATEHANDLEinリソースを関連付けるルールの状態ハンドル。
pszResourceNameLPWSTRinリソースの名前。
pszResourceValueLPWSTRinoptionalリソースの値。
vtbl 10 HRESULT Commit(DWORD dwReserved)
dwReservedDWORDin予約済み引数。0を指定する。

HSP用 COM定義

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

出力引数:
#define global IID_ISpGrammarBuilder "{8137828F-591A-4A42-BE58-49EA7EBAAC68}"
#usecom global ISpGrammarBuilder IID_ISpGrammarBuilder "{}"
#comfunc global ISpGrammarBuilder_ResetGrammar       3 int
#comfunc global ISpGrammarBuilder_GetRule            4 wstr,int,int,int,sptr
#comfunc global ISpGrammarBuilder_ClearRule          5 sptr
#comfunc global ISpGrammarBuilder_CreateNewState     6 sptr,sptr
#comfunc global ISpGrammarBuilder_AddWordTransition  7 sptr,sptr,wstr,wstr,int,float,var
#comfunc global ISpGrammarBuilder_AddRuleTransition  8 sptr,sptr,sptr,float,var
#comfunc global ISpGrammarBuilder_AddResource        9 sptr,wstr,wstr
#comfunc global ISpGrammarBuilder_Commit             10 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。