ホーム › Media.Speech › ISpGrammarBuilder
ISpGrammarBuilder
COMメソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| NewLanguage | WORD | in | 再初期化後の文法に設定する言語ID(LANGID)。 |
vtbl 4 HRESULT GetRule(LPWSTR pszRuleName, DWORD dwRuleId, DWORD dwAttributes, BOOL fCreateIfNotExist, SPSTATEHANDLE* phInitialState)
| pszRuleName | LPWSTR | in | 対象ルールの名前。NULL可だがdwRuleIdとの併用が必要。 |
| dwRuleId | DWORD | in | 対象ルールのID。 |
| dwAttributes | DWORD | in | ルールの属性を示すSPCFGRULEATTRIBUTESビットマスク。トップレベル/動的等を指定する。 |
| fCreateIfNotExist | BOOL | in | ルールが存在しない場合に作成するか。 |
| phInitialState | SPSTATEHANDLE* | inout | ルールの初期状態ハンドルを受け取るSPSTATEHANDLEポインタ。 |
vtbl 5 HRESULT ClearRule(SPSTATEHANDLE hState)
| hState | SPSTATEHANDLE | in | クリア対象ルールの初期状態ハンドル。 |
vtbl 6 HRESULT CreateNewState(SPSTATEHANDLE hState, SPSTATEHANDLE* phState)
| hState | SPSTATEHANDLE | in | 新しい状態の基準となる既存状態ハンドル。 |
| phState | SPSTATEHANDLE* | inout | 生成した新しい状態ハンドルを受け取るポインタ。 |
vtbl 7 HRESULT AddWordTransition(SPSTATEHANDLE hFromState, SPSTATEHANDLE hToState, LPWSTR psz, LPWSTR pszSeparators, SPGRAMMARWORDTYPE eWordType, FLOAT Weight, SPPROPERTYINFO* pPropInfo)
| hFromState | SPSTATEHANDLE | in | 遷移元の状態ハンドル。 |
| hToState | SPSTATEHANDLE | in | 遷移先の状態ハンドル。NULLで終端遷移にする。 |
| psz | LPWSTR | inoptional | 遷移に割り当てる単語列。NULLでイプシロン遷移にする。 |
| pszSeparators | LPWSTR | inoptional | 単語の区切り文字を示す文字列。 |
| eWordType | SPGRAMMARWORDTYPE | in | 単語の種類を示すSPGRAMMARWORDTYPE列挙値。表示語/発音語等を指定する。 |
| Weight | FLOAT | in | 遷移の重み。認識の優先度に影響する。 |
| pPropInfo | SPPROPERTYINFO* | in | 遷移に関連付けるセマンティックプロパティ情報SPPROPERTYINFO。NULL可。 |
vtbl 8 HRESULT AddRuleTransition(SPSTATEHANDLE hFromState, SPSTATEHANDLE hToState, SPSTATEHANDLE hRule, FLOAT Weight, SPPROPERTYINFO* pPropInfo)
| hFromState | SPSTATEHANDLE | in | 遷移元の状態ハンドル。 |
| hToState | SPSTATEHANDLE | in | 遷移先の状態ハンドル。NULLで終端遷移にする。 |
| hRule | SPSTATEHANDLE | in | 参照するサブルールの初期状態ハンドル。 |
| Weight | FLOAT | in | 遷移の重み。認識の優先度に影響する。 |
| pPropInfo | SPPROPERTYINFO* | in | 遷移に関連付けるセマンティックプロパティ情報SPPROPERTYINFO。NULL可。 |
vtbl 9 HRESULT AddResource(SPSTATEHANDLE hRuleState, LPWSTR pszResourceName, LPWSTR pszResourceValue)
| hRuleState | SPSTATEHANDLE | in | リソースを関連付けるルールの状態ハンドル。 |
| pszResourceName | LPWSTR | in | リソースの名前。 |
| pszResourceValue | LPWSTR | inoptional | リソースの値。 |
| dwReserved | DWORD | in | 予約済み引数。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 指定が可能。#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,sptr #comfunc global ISpGrammarBuilder_AddRuleTransition 8 sptr,sptr,sptr,float,sptr #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が無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。