ホーム › Media.Speech › ISpAudio
ISpAudio
COMメソッド 11
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 15 HRESULT SetState(SPAUDIOSTATE NewState, ULONGLONG ullReserved)
| NewState | SPAUDIOSTATE | in | 設定するオーディオ状態を示すSPAUDIOSTATE列挙値。停止/実行等を指定する。 |
| ullReserved | ULONGLONG | in | 予約済み引数。0を指定する。 |
vtbl 16 HRESULT SetFormat(GUID* rguidFmtId, WAVEFORMATEX* pWaveFormatEx)
| rguidFmtId | GUID* | in | 設定するオーディオフォーマットを識別するGUID。 |
| pWaveFormatEx | WAVEFORMATEX* | in | 波形フォーマット詳細を示すWAVEFORMATEX。 |
vtbl 17 HRESULT GetStatus(SPAUDIOSTATUS* pStatus)
| pStatus | SPAUDIOSTATUS* | inout | 現在のオーディオ状態を受け取るSPAUDIOSTATUS構造体へのポインタ。 |
vtbl 18 HRESULT SetBufferInfo(SPAUDIOBUFFERINFO* pBuffInfo)
| pBuffInfo | SPAUDIOBUFFERINFO* | in | 設定するバッファ情報を示すSPAUDIOBUFFERINFO構造体へのポインタ。 |
vtbl 19 HRESULT GetBufferInfo(SPAUDIOBUFFERINFO* pBuffInfo)
| pBuffInfo | SPAUDIOBUFFERINFO* | inout | 現在のバッファ情報を受け取るSPAUDIOBUFFERINFO構造体へのポインタ。 |
vtbl 20 HRESULT GetDefaultFormat(GUID* pFormatId, WAVEFORMATEX** ppCoMemWaveFormatEx)
| pFormatId | GUID* | inout | 既定フォーマットを識別するGUIDを受け取るポインタ。 |
| ppCoMemWaveFormatEx | WAVEFORMATEX** | inout | 既定の波形フォーマット詳細を受け取るWAVEFORMATEXポインタ。CoTaskMemFreeで解放する。 |
vtbl 21 HANDLE EventHandle()
| pLevel | DWORD* | inout | 現在の音量レベル(0~10000)を受け取るポインタ。 |
| Level | DWORD | in | 設定する音量レベル。0~10000の範囲で指定する。 |
| pcbSize | DWORD* | inout | 通知契機となるバッファサイズ(バイト)を受け取るポインタ。 |
| cbSize | DWORD | in | 通知契機とするバッファサイズをバイト単位で指定する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ISpAudio "{C05C768F-FAE8-4EC2-8E07-338321C12452}" #usecom global ISpAudio IID_ISpAudio "{}" #comfunc global ISpAudio_SetState 15 int,int64 #comfunc global ISpAudio_SetFormat 16 var,var #comfunc global ISpAudio_GetStatus 17 var #comfunc global ISpAudio_SetBufferInfo 18 var #comfunc global ISpAudio_GetBufferInfo 19 var #comfunc global ISpAudio_GetDefaultFormat 20 var,var #comfunc global ISpAudio_EventHandle 21 #comfunc global ISpAudio_GetVolumeLevel 22 var #comfunc global ISpAudio_SetVolumeLevel 23 int #comfunc global ISpAudio_GetBufferNotifySize 24 var #comfunc global ISpAudio_SetBufferNotifySize 25 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ISpAudio "{C05C768F-FAE8-4EC2-8E07-338321C12452}" #usecom global ISpAudio IID_ISpAudio "{}" #comfunc global ISpAudio_SetState 15 int,int64 #comfunc global ISpAudio_SetFormat 16 sptr,sptr #comfunc global ISpAudio_GetStatus 17 sptr #comfunc global ISpAudio_SetBufferInfo 18 sptr #comfunc global ISpAudio_GetBufferInfo 19 sptr #comfunc global ISpAudio_GetDefaultFormat 20 sptr,sptr #comfunc global ISpAudio_EventHandle 21 #comfunc global ISpAudio_GetVolumeLevel 22 sptr #comfunc global ISpAudio_SetVolumeLevel 23 int #comfunc global ISpAudio_GetBufferNotifySize 24 sptr #comfunc global ISpAudio_SetBufferNotifySize 25 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。