ActivateAudioInterfaceAsync 関数 (mmdeviceapi.h)
Windows ストア アプリが、WASAPI ファミリ内の既存のコンポーネント オブジェクト モデル (COM) インターフェイスにアクセスできるようにします。
構文
HRESULT ActivateAudioInterfaceAsync(
[in] LPCWSTR deviceInterfacePath,
[in] REFIID riid,
[in] PROPVARIANT *activationParams,
[in] IActivateAudioInterfaceCompletionHandler *completionHandler,
IActivateAudioInterfaceAsyncOperation **activationOperation
);
パラメーター
[in] deviceInterfacePath
オーディオ デバイスのデバイス インターフェイス ID。 これは通常、DeviceInformation オブジェクトまたは MediaDevice クラスのいずれかのメソッドから取得されます。
GUID DEVINTERFACE_AUDIO_CAPTURE と DEVINTERFACE_AUDIO_RENDER は、それぞれ既定のオーディオ キャプチャとレンダー デバイスを表します。 StringFromIID
プロセス ループバック キャプチャのオーディオ インターフェイスをアクティブ化する AUDIOCLIENT_ACTIVATION_TYPE_PROCESS_LOOPBACK を指定します。 プロセス ループバック キャプチャ シナリオを示すサンプル コードについては、アプリケーション ループバック API キャプチャのサンプルを参照してください。
[in] riid
IAudioClientなど、WASAPI ファミリ内の COM インターフェイスの IID。
[in] activationParams
インターフェイス固有のアクティブ化パラメーター。 詳細については、
Windows 10 ビルド 20438 以降では、インターフェイスをアクティブ化する AUDIOCLIENT_ACTIVATION_PARAMS を指定して、指定したプロセス ID に関連付けられているオーディオ ストリームを含めたり除外したりできます。
[in] completionHandler
アクティブ化プロシージャの結果が使用可能な場合に Windows によって呼び出される呼び出し元によって実装されるインターフェイス。
activationOperation
要求された
戻り値
この関数は、HRESULTを返します。 使用できる値には、次の表に示す値が含まれますが、これらに限定されません。
リターン コード | 形容 |
---|---|
|
基になるオブジェクトと非同期操作が正常に作成されました。 |
|
Windows 10 より前のバージョンの Windows では、関数が正しくない COM アパートメントから呼び出された場合、または渡された IActivateAudioInterfaceCompletionHandler がアジャイル オブジェクトに実装されていない場合 (フリースレッド マーシャラーを集約する) 場合、このエラーが発生する可能性があります。 |
備考
この関数を使用すると、Windows ストア アプリは、
多くの実装では、システムがダイアログをユーザーに表示できるように、アプリケーションでメイン UI スレッドからこの関数を呼び出して、WASAPI ファミリの COM インターフェイスをアクティブ化する必要があります。 アプリケーションは、completionHandlerを介して IActivateAudioInterfaceCompletionHandler コールバック COM インターフェイスを渡します。 Windows は、アクティブ化の結果が使用可能な場合、COM マルチスレッド アパートメント (MTA) のワーカー スレッドから、アプリケーションの IActivateAudioInterfaceCompletionHandler インターフェイス内のメソッドを呼び出します。 その後、アプリケーションは
- オーディオ レンダー デバイス を指定する deviceInterfacePath と、IAudioClient インターフェイスを指定する riid を使用して、ActivateAudioInterfaceAsync を呼び出します。
- オーディオ レンダー デバイス 指定する deviceInterfacePath と、IAudioEndpointVolume インターフェイスを指定する riid を使用して、ActivateAudioInterfaceAsync を呼び出します。
- セッション 0 サービスから ActivateAudioInterfaceAsync
呼び出します。 詳細については、「Services」を参照してください。
アプリケーションは、完了ハンドラーコールバックが実行されるまで、IActivateAudioInterfaceCompletionHandler を実装するオブジェクトを解放してはなりません。
ActivateAudioInterfaceAsync は、同意プロンプトを表示できるように、メイン UI スレッドで呼び出す必要があります。 同意プロンプトを表示できない場合、ユーザーはデバイスにアプリへのアクセス権を付与できません。
Windows 10 より前のバージョンの Windows では、オーディオ キャプチャ用にデバイスを開くときに、COM Single-Threaded アパートメント (STA) のスレッドで ActivateAudioInterfaceAsync を
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | mmdeviceapi.h (Mmdevapi.idl を含む) |
ライブラリ | Mmdevapi.lib |
DLL | Mmdevapi.dll |
IRQL | いいえ |
関連項目
IActivateAudioInterfaceAsyncOperation の