IWMPAudioRenderConfig
COM公式ドキュメント
IWMPAudioRenderConfig インターフェイスは、Windows Media Player ActiveX コントロールが使用するオーディオ出力デバイスを設定および取得するためのメソッドを提供します。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
get_audioOutputDevice メソッドは、Windows Media Player ActiveX コントロールが現在使用しているオーディオ出力デバイスを取得します。
| pbstrOutputDevice | LPWSTR* | inout | 現在構成されているオーディオ出力デバイスを表す MMDeviceAPI デバイス ID です。 |
戻り値
このメソッドは HRESULT を返します。使用される値には次の表のものが含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
既定のオーディオデバイスが構成されていない場合、このメソッドは空の BSTR を取得します。ActiveX コントロールが Windows Media Player でホストされており、Player が出力デバイスを構成している場合、このメソッドは Player によって構成された出力デバイスを取得します。
このメソッドが空の文字列を取得する場合、Windows Media Player ActiveX コントロールは既定のオーディオレンダリングデバイスを使用して再生します。
put_audioOutputDevice は、Windows Media Player ActiveX コントロールの現在のオーディオ出力デバイスを設定します。
| bstrOutputDevice | LPWSTR | in | デバイスを表す MMDeviceAPI デバイス ID です。このメソッドに NULL または空の BSTR を渡すと、Windows Media Player ActiveX コントロールは既定のオーディオ出力デバイスに戻ります。 |
戻り値
このメソッドは HRESULT を返します。使用される値には次の表のものが含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドは、bstrOutputDevice で指定されたエンドポイントが、オーディオ出力エンドポイントの有効な MMDeviceAPI デバイス識別子文字列であることを検証します。有効な識別子でない場合、このメソッドは失敗します。このメソッドは、指定されたエンドポイントがアクティブであることの確認は行いません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMPAudioRenderConfig "{E79C6349-5997-4CE4-917C-22A3391EC564}" #usecom global IWMPAudioRenderConfig IID_IWMPAudioRenderConfig "{}" #comfunc global IWMPAudioRenderConfig_get_audioOutputDevice 3 var #comfunc global IWMPAudioRenderConfig_put_audioOutputDevice 4 wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IWMPAudioRenderConfig "{E79C6349-5997-4CE4-917C-22A3391EC564}" #usecom global IWMPAudioRenderConfig IID_IWMPAudioRenderConfig "{}" #comfunc global IWMPAudioRenderConfig_get_audioOutputDevice 3 sptr #comfunc global IWMPAudioRenderConfig_put_audioOutputDevice 4 wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。