IAudioSystemEffects3
COM公式ドキュメント
IAudioProcessingObject::Initialize メソッドに APOInitSystemEffects3 構造体を渡す必要があるクライアントによって実装されます。
解説(Remarks)
オーディオドライバーに同梱できる Audio Processing Object (APO) 向けの Windows 11 API の詳細については、Windows 11 APIs for Audio Processing Objects を参照してください。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
System Effects Audio Processing Object (sAPO) のオーディオエフェクトによって実装され、呼び出し元が現在のエフェクトの一覧を取得できるようにします。
| effects | AUDIO_SYSTEMEFFECT** | out | 現在のオーディオエフェクトの一覧を表す AUDIO_SYSTEMEFFECT_STATE 構造体の配列へのポインターを受け取ります。 |
| numEffects | DWORD* | out | effects で返される AUDIO_EFFECT 構造体の数を受け取ります。 |
| event | HANDLE | inoptional | 一覧が変更された場合にシグナル状態になるイベントの HANDLE です。 |
戻り値
HRESULT。
解説(Remarks)
オーディオドライバーに同梱できる Audio Processing Object (APO) 向けの Windows 11 API の詳細については、Windows 11 APIs for Audio Processing Objects を参照してください。
System Effects Audio Processing Object (sAPO) のオーディオエフェクトによって実装され、呼び出し元がエフェクトの状態を設定できるようにします。
| effectId | GUID | in | オーディオエフェクトの GUID 識別子です。オーディオエフェクトの GUID は ksmedia.h で定義されています。 |
| state | AUDIO_SYSTEMEFFECT_STATE | in | 設定する状態を指定する、AUDIO_SYSTEMEFFECT_STATE 列挙型の値です。 |
戻り値
HRESULT。
解説(Remarks)
オーディオドライバーに同梱できる Audio Processing Object (APO) 向けの Windows 11 API の詳細については、Windows 11 APIs for Audio Processing Objects を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAudioSystemEffects3 "{C58B31CD-FC6A-4255-BC1F-AD29BB0A4A17}" #usecom global IAudioSystemEffects3 IID_IAudioSystemEffects3 "{}" #comfunc global IAudioSystemEffects3_GetControllableSystemEffectsList 4 var,var,sptr #comfunc global IAudioSystemEffects3_SetAudioSystemEffectState 5 int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IAudioSystemEffects3 "{C58B31CD-FC6A-4255-BC1F-AD29BB0A4A17}" #usecom global IAudioSystemEffects3 IID_IAudioSystemEffects3 "{}" #comfunc global IAudioSystemEffects3_GetControllableSystemEffectsList 4 sptr,sptr,sptr #comfunc global IAudioSystemEffects3_SetAudioSystemEffectState 5 int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。