ホーム › Media.Audio.Apo › IAudioDeviceModulesClient
IAudioDeviceModulesClient
COM公式ドキュメント
Audio Processing Object (APO) は、IAudioDeviceModulesManager インスタンスへの参照を取得するためにこのインターフェースを実装します。
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IAudioDeviceModulesClient インターフェースを実装する Audio Processing Object (APO) に IAudioDeviceModulesManager のインスタンスを渡すために、システムによって呼び出されます。
| pAudioDeviceModulesManager | IUnknown* | in | IAudioDeviceModulesManager を表す IUnknown インターフェース。 |
戻り値
HRESULT。
解説(Remarks)
次のコード例は、IAudioDeviceModulesClient の実装を示しています。
STDMETHODIMP CTestModuleAPO::SetAudioDeviceModulesManager(_In_ IUnknown* pAudioDeviceModulesManager)
{
HRESULT hr = S_OK;
CComQIPtr<Windows::Media::Devices::IAudioDeviceModulesManager> spModuleManager = pAudioDeviceModulesManager;
ComPtr<IVectorView<AudioDeviceModule *>> spModules;
// APO 内で後で使用するためにオーディオモジュールマネージャーをキャッシュする
m_AudioModulesManager = pAudioDeviceModulesManager;
// 既知のモジュールをオーディオモジュールから検索する
hr = m_pAudioDeviceModulesMgr->FindAllById(KNOWN_MODULE_ID, &spModules);
if (SUCCEEDED(hr))
{
// 返されたモジュールに対して何らかの処理を行うか、後で使用するためにキャッシュする
m_KnownModules = spModules;
}
return hr;
}
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAudioDeviceModulesClient "{98F37DAC-D0B6-49F5-896A-AA4D169A4C48}"
#usecom global IAudioDeviceModulesClient IID_IAudioDeviceModulesClient "{}"
#comfunc global IAudioDeviceModulesClient_SetAudioDeviceModulesManager 3 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。