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

ISpStream

COM
IID12e3cca9-7518-44c5-a5e7-ba5a79cb929e継承元ISpStreamFormat自前メソッド開始 vtbl15

メソッド 4

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

vtbl 15 HRESULT SetBaseStream(IStream* pStream, GUID* rguidFormat, WAVEFORMATEX* pWaveFormatEx)
pStreamIStream*in基盤として使用するIStreamへのポインタ。
rguidFormatGUID*inストリームのフォーマットを識別するGUID。
pWaveFormatExWAVEFORMATEX*in波形フォーマット詳細を示すWAVEFORMATEX。PCM以外で必要となる。
vtbl 16 HRESULT GetBaseStream(IStream** ppStream)
ppStreamIStream**out基盤となっているIStreamを受け取るポインタ。
vtbl 17 HRESULT BindToFile(LPWSTR pszFileName, SPFILEMODE eMode, GUID* pFormatId, WAVEFORMATEX* pWaveFormatEx, ULONGLONG ullEventInterest)
pszFileNameLPWSTRinバインドするファイルのパス。
eModeSPFILEMODEinファイルの開き方を示すSPFILEMODE列挙値。読み取り/書き込み等を指定する。
pFormatIdGUID*inoptionalファイルのフォーマットを識別するGUID。NULL可。
pWaveFormatExWAVEFORMATEX*inoptional波形フォーマット詳細を示すWAVEFORMATEX。NULL可。
ullEventInterestULONGLONGinストリームで関心を持つイベントのビットマスク。
vtbl 18 HRESULT Close()

HSP用 COM定義

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

出力引数:
#define global IID_ISpStream "{12E3CCA9-7518-44C5-A5E7-BA5A79CB929E}"
#usecom global ISpStream IID_ISpStream "{715D9C59-4442-11D2-9605-00C04F8EE628}"
#comfunc global ISpStream_SetBaseStream  15 sptr,var,var
#comfunc global ISpStream_GetBaseStream  16 sptr
#comfunc global ISpStream_BindToFile     17 wstr,int,var,var,int64
#comfunc global ISpStream_Close          18
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。