ホーム › Media.Audio.Endpoints › IHardwareAudioEngineBase
IHardwareAudioEngineBase
COMメソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetAvailableOffloadConnectorCount(LPWSTR _pwstrDeviceId, DWORD _uConnectorId, DWORD* _pAvailableConnectorInstanceCount)
| _pwstrDeviceId | LPWSTR | in | 対象デバイスを識別するデバイスID文字列(LPWSTR)。 |
| _uConnectorId | DWORD | in | 対象とするコネクタのID。デバイス内の特定の接続端子を指定する。 |
| _pAvailableConnectorInstanceCount | DWORD* | out | 利用可能なオフロードコネクタインスタンス数を受け取るDWORDへのポインタ。 |
vtbl 4 HRESULT GetEngineFormat(IMMDevice* pDevice, BOOL _bRequestDeviceFormat, WAVEFORMATEX** _ppwfxFormat)
| pDevice | IMMDevice* | in | 対象オーディオエンドポイントを表すIMMDeviceインターフェイスへのポインタ。 |
| _bRequestDeviceFormat | BOOL | in | TRUEでデバイスフォーマット、FALSEでミックスフォーマットを要求するBOOL値。 |
| _ppwfxFormat | WAVEFORMATEX** | inout | 取得したオーディオフォーマットを受け取るWAVEFORMATEXポインタのアドレス。呼び出し側が解放する。 |
vtbl 5 HRESULT SetEngineDeviceFormat(IMMDevice* pDevice, WAVEFORMATEX* _pwfxFormat)
| pDevice | IMMDevice* | in | 対象オーディオエンドポイントを表すIMMDeviceインターフェイスへのポインタ。 |
| _pwfxFormat | WAVEFORMATEX* | inout | 設定するデバイスフォーマットを記述したWAVEFORMATEX構造体へのポインタ。 |
| pDevice | IMMDevice* | in | 対象オーディオエンドポイントを表すIMMDeviceインターフェイスへのポインタ。 |
| _bEnable | BOOL | in | グローバルエフェクト(GFX)を有効にするか指定するBOOL値。TRUEで有効化。 |
| pDevice | IMMDevice* | in | 対象オーディオエンドポイントを表すIMMDeviceインターフェイスへのポインタ。 |
| _pbEnable | BOOL* | out | グローバルエフェクト(GFX)の現在の有効状態を受け取るBOOLへのポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IHardwareAudioEngineBase "{EDDCE3E4-F3C1-453A-B461-223563CBD886}" #usecom global IHardwareAudioEngineBase IID_IHardwareAudioEngineBase "{}" #comfunc global IHardwareAudioEngineBase_GetAvailableOffloadConnectorCount 3 wstr,int,var #comfunc global IHardwareAudioEngineBase_GetEngineFormat 4 sptr,int,var #comfunc global IHardwareAudioEngineBase_SetEngineDeviceFormat 5 sptr,var #comfunc global IHardwareAudioEngineBase_SetGfxState 6 sptr,int #comfunc global IHardwareAudioEngineBase_GetGfxState 7 sptr,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IHardwareAudioEngineBase "{EDDCE3E4-F3C1-453A-B461-223563CBD886}" #usecom global IHardwareAudioEngineBase IID_IHardwareAudioEngineBase "{}" #comfunc global IHardwareAudioEngineBase_GetAvailableOffloadConnectorCount 3 wstr,int,sptr #comfunc global IHardwareAudioEngineBase_GetEngineFormat 4 sptr,int,sptr #comfunc global IHardwareAudioEngineBase_SetEngineDeviceFormat 5 sptr,sptr #comfunc global IHardwareAudioEngineBase_SetGfxState 6 sptr,int #comfunc global IHardwareAudioEngineBase_GetGfxState 7 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。