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

ISpGrammarCompiler

COM
IIDb1e29d58-a675-11d2-8302-00c04f8ee6c0継承元IUnknown自前メソッド開始 vtbl3

メソッド 1

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

vtbl 3 HRESULT CompileStream(IStream* pSource, IStream* pDest, IStream* pHeader, IUnknown* pReserved, ISpErrorLog* pErrorLog, DWORD dwFlags)
pSourceIStream*inコンパイル元の文法ソースを供給する入力ストリームIStream。
pDestIStream*inコンパイル結果(バイナリ文法)を書き出す出力ストリームIStream。
pHeaderIStream*inoptional生成されるヘッダ情報を書き出すストリームIStream。NULL可。
pReservedIUnknown*inoptional予約引数。NULLを指定する。
pErrorLogISpErrorLog*inoptionalコンパイル中のエラーを記録するISpErrorLog。NULL可。
dwFlagsDWORDinコンパイル動作を制御するフラグ。通常0を指定する。

HSP用 COM定義

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

#define global IID_ISpGrammarCompiler "{B1E29D58-A675-11D2-8302-00C04F8EE6C0}"
#usecom global ISpGrammarCompiler IID_ISpGrammarCompiler "{B1E29D59-A675-11D2-8302-00C04F8EE6C0}"
#comfunc global ISpGrammarCompiler_CompileStream  3 sptr,sptr,sptr,sptr,sptr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。