ActivateAudioInterfaceAsync, fonction (mmdeviceapi.h)
Permet aux applications du Windows Store d’accéder aux interfaces COM (Component Object Model) préexistantes dans la famille WASAPI.
Syntaxe
HRESULT ActivateAudioInterfaceAsync(
[in] LPCWSTR deviceInterfacePath,
[in] REFIID riid,
[in] PROPVARIANT *activationParams,
[in] IActivateAudioInterfaceCompletionHandler *completionHandler,
IActivateAudioInterfaceAsyncOperation **activationOperation
);
Paramètres
[in] deviceInterfacePath
ID d’interface d’appareil pour un appareil audio. Cela est normalement récupéré à partir d’un objet DeviceInformation ou de l’une des méthodes de la classe MediaDevice.
Les GUID DEVINTERFACE_AUDIO_CAPTURE et DEVINTERFACE_AUDIO_RENDER représentent respectivement la capture audio par défaut et l’appareil de rendu. Appelez StringFromIID pour convertir l’un de ces GUID en un LPCWSTR à utiliser pour cet argument.
Spécifiez AUDIOCLIENT_ACTIVATION_TYPE_PROCESS_LOOPBACK pour activer l’interface audio pour la capture de bouclage de processus. Pour obtenir un exemple de code qui illustre le scénario de capture de bouclage de processus, consultez l’exemple de capture d’API de boucle d’application .
[in] riid
IID d’une interface COM dans la famille WASAPI, par exemple IAudioClient.
[in] activationParams
Paramètres d’activation spécifiques à l’interface. Pour plus d’informations, consultez le paramètre pActivationParams
À compter de Windows 10 Build 20438, vous pouvez spécifier AUDIOCLIENT_ACTIVATION_PARAMS pour activer l’interface pour inclure ou exclure des flux audio associés à un ID de processus spécifié.
[in] completionHandler
Interface implémentée par l’appelant appelé par Windows lorsque le résultat de la procédure d’activation est disponible.
activationOperation
Renvoie une interface IActivateAudioInterfaceAsyncOperation qui représente l’opération asynchrone d’activation de l’interface WASAPI demandée.
Valeur de retour
La fonction retourne une HRESULT. Les valeurs possibles incluent, mais ne sont pas limitées à celles du tableau suivant.
Retourner le code | Description |
---|---|
|
L’objet sous-jacent et l’opération asynchrone ont été créés avec succès. |
|
Sur les versions de Windows antérieures à Windows 10, cette erreur peut se produire si la fonction est appelée à partir d’un appartement COM incorrect ou si le passé IActivateAudioInterfaceCompletionHandler n’est pas implémenté sur un objet agile (agrégation d’un marshaleur à threads libres). |
Remarques
Cette fonction permet aux applications du Windows Store d’activer certaines interfaces WASAPI COM
Pour de nombreuses implémentations, une application doit appeler cette fonction à partir du thread d’interface utilisateur principal pour activer une interface COM dans la famille WASAPI afin que le système puisse afficher une boîte de dialogue à l’utilisateur. L’application transmet une interface COM de rappel COM IActivateAudioInterfaceCompletionHandler via completionHandler. Windows appelle une méthode dans l’interface IActivateAudioInterfaceCompletionHandler de l’application à partir d’un thread de travail dans l’assistant Multithread Apartment (MTA) COM lorsque les résultats de l’activation sont disponibles. L’application peut ensuite appeler une méthode dans l’interface IActivateAudioInterfaceAsyncOperation pour récupérer le code de résultat et l’interface WASAPI demandée. Certaines activations sont explicitement sécurisées et ne nécessitent donc pas que cette fonction soit appelée à partir du thread d’interface utilisateur principal. Ces activations explicitement sécurisées sont les suivantes :
- Appel de
activateAudioInterfaceAsync avec undeviceInterfacePath qui spécifie un appareil de rendu audio et unriid qui spécifie l’interface IAudioClient. - Appel de activateAudioInterfaceAsync avec un deviceInterfacePath qui spécifie un appareil de rendu audio et un riid qui spécifie l’interface IAudioEndpointVolume.
- Appel de ActivateAudioInterfaceAsync à partir d’un service de session 0. Pour plus d’informations, consultez Services.
Les applications ne doivent pas libérer l’objet implémentant l'IActivateAudioInterfaceCompletionHandler tant que le rappel du gestionnaire d’achèvement n’a pas été exécuté.
activateAudioInterfaceAsync doit être appelée sur le thread d’interface utilisateur principal afin que l’invite de consentement puisse être affichée. Si l’invite de consentement ne peut pas être affichée, l’utilisateur ne peut pas accorder l’accès de l’appareil à l’application.
Sur les versions de Windows antérieures à Windows 10, ActivateAudioInterfaceAsync doivent être appelées sur un thread dans un COM Single-Threaded Apartment (STA), lors de l’ouverture d’un appareil pour la capture audio. Le
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 8 [applications de bureau | Applications UWP] |
serveur minimum pris en charge | Windows Server 2012 [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | mmdeviceapi.h (include Mmdevapi.idl) |
bibliothèque | Mmdevapi.lib |
DLL | Mmdevapi.dll |
IRQL | Non |