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
プロセス ループバック キャプチャのオーディオ インターフェイスをアクティブ化する VIRTUAL_AUDIO_DEVICE_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
呼び出します。 詳細については、「 サービス」を参照してください。
アプリケーションは、完了ハンドラーコールバックが実行されるまで 、IActivateAudioInterfaceCompletionHandler を実装するオブジェクトを解放しないでください。
同意プロンプトを表示できるようにするには、メイン UI スレッドで ActivateAudioInterfaceAsync を呼び出す必要があります。 同意プロンプトを表示できない場合、ユーザーはデバイスにアプリへのアクセス権を付与できません。
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 の