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

ISpRecoGrammar2

COM
IID4b37bc9e-9ed6-44a3-93d3-18f022b79ec3継承元IUnknown自前メソッド開始 vtbl3

メソッド 8

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

vtbl 3 HRESULT GetRules(SPRULE** ppCoMemRules, DWORD* puNumRules)
ppCoMemRulesSPRULE**inout文法内のルール情報配列を受け取るSPRULEポインタ。CoTaskMemFreeで解放する。
puNumRulesDWORD*inout取得したルール数を受け取るポインタ。
vtbl 4 HRESULT LoadCmdFromFile2(LPWSTR pszFileName, SPLOADOPTIONS Options, LPWSTR pszSharingUri, LPWSTR pszBaseUri)
pszFileNameLPWSTRin読み込む文法ファイルのパスまたはURL。
OptionsSPLOADOPTIONSin読み込み方法を指定するSPLOADOPTIONS列挙値。
pszSharingUriLPWSTRinoptional文法共有を識別するURI。NULL可。
pszBaseUriLPWSTRinoptional相対参照解決に用いる基底URI。NULL可。
vtbl 5 HRESULT LoadCmdFromMemory2(SPBINARYGRAMMAR* pGrammar, SPLOADOPTIONS Options, LPWSTR pszSharingUri, LPWSTR pszBaseUri)
pGrammarSPBINARYGRAMMAR*inメモリ上のバイナリ文法を示すSPBINARYGRAMMARへのポインタ。
OptionsSPLOADOPTIONSin読み込み方法を指定するSPLOADOPTIONS列挙値。
pszSharingUriLPWSTRinoptional文法共有を識別するURI。NULL可。
pszBaseUriLPWSTRinoptional相対参照解決に用いる基底URI。NULL可。
vtbl 6 HRESULT SetRulePriority(LPWSTR pszRuleName, DWORD ulRuleId, INT nRulePriority)
pszRuleNameLPWSTRin優先度を設定するルール名。NULL可だがIDとの併用が必要。
ulRuleIdDWORDin優先度を設定するルールのID。
nRulePriorityINTin設定するルールの優先度。値が高いほど優先される。
vtbl 7 HRESULT SetRuleWeight(LPWSTR pszRuleName, DWORD ulRuleId, FLOAT flWeight)
pszRuleNameLPWSTRin重みを設定するルール名。NULL可だがIDとの併用が必要。
ulRuleIdDWORDin重みを設定するルールのID。
flWeightFLOATin設定するルールの重み。認識スコアに影響する。
vtbl 8 HRESULT SetDictationWeight(FLOAT flWeight)
flWeightFLOATinディクテーション部分の重み。認識スコアに影響する。
vtbl 9 HRESULT SetGrammarLoader(ISpeechResourceLoader* pLoader)
pLoaderISpeechResourceLoader*in文法リソース読み込みに用いるISpeechResourceLoaderへのポインタ。
vtbl 10 HRESULT SetSMLSecurityManager(IInternetSecurityManager* pSMLSecurityManager)
pSMLSecurityManagerIInternetSecurityManager*inSML処理時のセキュリティを制御するIInternetSecurityManagerへのポインタ。

HSP用 COM定義

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

出力引数:
#define global IID_ISpRecoGrammar2 "{4B37BC9E-9ED6-44A3-93D3-18F022B79EC3}"
#usecom global ISpRecoGrammar2 IID_ISpRecoGrammar2 "{}"
#comfunc global ISpRecoGrammar2_GetRules               3 var,var
#comfunc global ISpRecoGrammar2_LoadCmdFromFile2       4 wstr,int,wstr,wstr
#comfunc global ISpRecoGrammar2_LoadCmdFromMemory2     5 var,int,wstr,wstr
#comfunc global ISpRecoGrammar2_SetRulePriority        6 wstr,int,int
#comfunc global ISpRecoGrammar2_SetRuleWeight          7 wstr,int,float
#comfunc global ISpRecoGrammar2_SetDictationWeight     8 float
#comfunc global ISpRecoGrammar2_SetGrammarLoader       9 sptr
#comfunc global ISpRecoGrammar2_SetSMLSecurityManager  10 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。