ホーム › Media.Speech › ISpStream
ISpStream
COMメソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 15 HRESULT SetBaseStream(IStream* pStream, GUID* rguidFormat, WAVEFORMATEX* pWaveFormatEx)
| pStream | IStream* | in | 基盤として使用するIStreamへのポインタ。 |
| rguidFormat | GUID* | in | ストリームのフォーマットを識別するGUID。 |
| pWaveFormatEx | WAVEFORMATEX* | in | 波形フォーマット詳細を示すWAVEFORMATEX。PCM以外で必要となる。 |
| ppStream | IStream** | out | 基盤となっているIStreamを受け取るポインタ。 |
vtbl 17 HRESULT BindToFile(LPWSTR pszFileName, SPFILEMODE eMode, GUID* pFormatId, WAVEFORMATEX* pWaveFormatEx, ULONGLONG ullEventInterest)
| pszFileName | LPWSTR | in | バインドするファイルのパス。 |
| eMode | SPFILEMODE | in | ファイルの開き方を示すSPFILEMODE列挙値。読み取り/書き込み等を指定する。 |
| pFormatId | GUID* | inoptional | ファイルのフォーマットを識別するGUID。NULL可。 |
| pWaveFormatEx | WAVEFORMATEX* | inoptional | 波形フォーマット詳細を示すWAVEFORMATEX。NULL可。 |
| ullEventInterest | ULONGLONG | in | ストリームで関心を持つイベントのビットマスク。 |
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 指定が可能。#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,sptr,sptr #comfunc global ISpStream_GetBaseStream 16 sptr #comfunc global ISpStream_BindToFile 17 wstr,int,sptr,sptr,int64 #comfunc global ISpStream_Close 18 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。