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

ISpAudio

COM
IIDc05c768f-fae8-4ec2-8e07-338321c12452継承元ISpStreamFormat自前メソッド開始 vtbl15

メソッド 11

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

vtbl 15 HRESULT SetState(SPAUDIOSTATE NewState, ULONGLONG ullReserved)
NewStateSPAUDIOSTATEin設定するオーディオ状態を示すSPAUDIOSTATE列挙値。停止/実行等を指定する。
ullReservedULONGLONGin予約済み引数。0を指定する。
vtbl 16 HRESULT SetFormat(GUID* rguidFmtId, WAVEFORMATEX* pWaveFormatEx)
rguidFmtIdGUID*in設定するオーディオフォーマットを識別するGUID。
pWaveFormatExWAVEFORMATEX*in波形フォーマット詳細を示すWAVEFORMATEX。
vtbl 17 HRESULT GetStatus(SPAUDIOSTATUS* pStatus)
pStatusSPAUDIOSTATUS*inout現在のオーディオ状態を受け取るSPAUDIOSTATUS構造体へのポインタ。
vtbl 18 HRESULT SetBufferInfo(SPAUDIOBUFFERINFO* pBuffInfo)
pBuffInfoSPAUDIOBUFFERINFO*in設定するバッファ情報を示すSPAUDIOBUFFERINFO構造体へのポインタ。
vtbl 19 HRESULT GetBufferInfo(SPAUDIOBUFFERINFO* pBuffInfo)
pBuffInfoSPAUDIOBUFFERINFO*inout現在のバッファ情報を受け取るSPAUDIOBUFFERINFO構造体へのポインタ。
vtbl 20 HRESULT GetDefaultFormat(GUID* pFormatId, WAVEFORMATEX** ppCoMemWaveFormatEx)
pFormatIdGUID*inout既定フォーマットを識別するGUIDを受け取るポインタ。
ppCoMemWaveFormatExWAVEFORMATEX**inout既定の波形フォーマット詳細を受け取るWAVEFORMATEXポインタ。CoTaskMemFreeで解放する。
vtbl 21 HANDLE EventHandle()
vtbl 22 HRESULT GetVolumeLevel(DWORD* pLevel)
pLevelDWORD*inout現在の音量レベル(0~10000)を受け取るポインタ。
vtbl 23 HRESULT SetVolumeLevel(DWORD Level)
LevelDWORDin設定する音量レベル。0~10000の範囲で指定する。
vtbl 24 HRESULT GetBufferNotifySize(DWORD* pcbSize)
pcbSizeDWORD*inout通知契機となるバッファサイズ(バイト)を受け取るポインタ。
vtbl 25 HRESULT SetBufferNotifySize(DWORD cbSize)
cbSizeDWORDin通知契機とするバッファサイズをバイト単位で指定する。

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 方式にも切替可。