IMMDevice ::Activate, méthode (mmdeviceapi.h)
La méthode Activate
Syntaxe
HRESULT Activate(
[in] REFIID iid,
[in] DWORD dwClsCtx,
[in] PROPVARIANT *pActivationParams,
[out] void **ppInterface
);
Paramètres
[in] iid
Identificateur de l’interface. Ce paramètre est une référence à un GUID qui identifie l’interface que l’appelant demande être activée. L’appelant utilise cette interface pour communiquer avec l’objet COM. Définissez ce paramètre sur l’un des identificateurs d’interface suivants :
IID_IAudioClient
IID_IAudioEndpointVolume
IID_IAudioMeterInformation
IID_IAudioSessionManager
IID_IAudioSessionManager2
IID_IBaseFilter
IID_IDeviceTopology
IID_IDirectSound
IID_IDirectSound8
IID_IDirectSoundCapture
IID_IDirectSoundCapture8
IID_IMFTrustedOutput
IID_ISpatialAudioClient
IID_ISpatialAudioMetadataClient
Pour plus d’informations, consultez Remarques.
[in] dwClsCtx
Contexte d’exécution dans lequel le code qui gère l’objet nouvellement créé s’exécute. L’appelant peut restreindre le contexte en définissant ce paramètre sur le ou d’une ou plusieurs valeurs d’énumération CLSCTX. Le client peut également éviter d’imposer des restrictions de contexte en spécifiant CLSCTX_ALL. Pour plus d’informations sur CLSCTX, consultez la documentation du Kit de développement logiciel (SDK) Windows.
[in] pActivationParams
Défini sur
Lors de l’activation d’un
[out] ppInterface
Pointeur vers une variable de pointeur dans laquelle la méthode écrit l’adresse de l’interface spécifiée par le paramètre iid. Grâce à cette méthode, l’appelant obtient une référence comptée à l’interface. L’appelant est chargé de libérer l’interface, lorsqu’elle n’est plus nécessaire, en appelant la méthode Release de l’interface. Si l’appel Activer échoue, *ppInterface est NULL.
Valeur de retour
Si la méthode réussit, elle retourne S_OK. En cas d’échec, les codes de retour possibles incluent, mais ne sont pas limités, les valeurs indiquées dans le tableau suivant.
Retourner le code | Description |
---|---|
|
L’objet ne prend pas en charge le type d’interface demandé. |
|
Le paramètre ppInterface est NULL. |
|
Le paramètre pActivationParams doit être NULL pour l’interface spécifiée ; ou pActivationParams pointe vers des données non valides. |
|
Mémoire insuffisante. |
|
L’utilisateur a supprimé l’appareil de point de terminaison audio ou l’appareil adaptateur auquel se connecte l’appareil de point de terminaison. |
Remarques
Cette méthode crée un objet COM avec une interface spécifiée par le paramètre iid. La méthode est similaire à la fonction CoCreateInstance de Windows
Un client peut appeler la méthode Activate de l’interface IMMDevice pour un appareil de point de terminaison audio particulier afin d’obtenir une référence comptée à une interface sur cet appareil. La méthode peut activer les interfaces suivantes :
- IAudioClient
- IAudioEndpointVolume
- IAudioMeterInformation
- IAudioSessionManager
- IAudioSessionManager2
- IBaseFilter
- IDeviceTopology
- IDirectSound
- IDirectSound8
- IDirectSoundCapture
- IDirectSoundCapture8
- IMFTrustedOutput
const IID IID_IAudioClient __uuidof(IAudioCaptureClient)
Pour plus d’informations sur l’opérateur __uuidof, consultez la documentation du Kit de développement logiciel (SDK) Windows. Pour plus d’informations sur IBaseFilter, IDirectSound, IDirectSound8, IDirectSoundCapture, IDirectSoundCapture8et IMFTrustedOutput consultez la documentation du KIT de développement logiciel (SDK) Windows.
Le paramètre pActivationParams
Pour un appel Activate
Un IBaseFilter, IDirectSound, IDirectSound8, IDirectSoundCaptureou instance d’interface IDirectSoundCapture8 créée par la méthode Activate encapsule un flux sur l’appareil de point de terminaison audio. Pendant l’appel Activate, le module système DirectSound crée le flux en appelant la méthode IAudioClient ::Initialize. Si pActivationParams n’est pasNULL, DirectSound fournit le GUID de session audio et les indicateurs d’initialisation de flux à partir de la structure DIRECTX_AUDIO_ACTIVATION_PARAMS en tant que paramètres d’entrée à l'Initialiser appel. Si pActivationParams est NULL, DirectSound définit les paramètres Initialiser méthode AudioSessionGuid et Les paramètres StreamFlags sur leurs valeurs par défaut respectives, NULL et 0. Ces valeurs indiquent à la méthode d’affecter le flux à la session spécifique au processus identifiée par la valeur GUID de session GUID_NULL.
Activer peut activer une interface IDirectSound ou interface IDirectSound8 uniquement sur un appareil de point de terminaison de rendu. Il peut activer une interface IDirectSoundCapture ou interface IDirectSoundCapture8 uniquement sur un appareil de point de terminaison de capture. Un appel Activer pour activer un IDirectSound ou interface IDirectSoundCapture8 sur un appareil de capture ou un IDirectSoundCapture ou interface IDirectSoundCapture8 sur un appareil de rendu échoue et retourne le code d’erreur E_NOINTERFACE.
Dans Windows 7, un client peut appeler IMMDevice ::Activate et spécifier, IID_IMFTrustedOutput, pour créer un objet OTA (Output Trust Authorities) et récupérer un pointeur vers l’interface IMFTrustedOutput de l’objet. Les otas peuvent fonctionner à l’intérieur ou à l’extérieur du chemin d’accès multimédia protégé de Media Foundation (PMP) et envoyer du contenu en dehors du pipeline Media Foundation. Si l’appelant est en dehors de PMP, l’OTA peut ne pas fonctionner dans le PMP et les paramètres de protection sont moins robustes. Pour plus d’informations sur l’utilisation d’objets protégés pour l’audio et l’exemple de code, consultez PUMA (Protected User Mode Audio).
Pour obtenir des informations générales sur les objets protégés et IMFTrustedOutput, consultez la documentation « Protected Media Path » dans la documentation de Media Foundation.
- Rendu d’un de flux
- topologies d’appareils
- utilisation de l’interface IKsControl pour accéder aux propriétés audio
- événements audio pour les applications audio héritées
- afficher le son spatial à l’aide d’objets audio spatiaux
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista [applications de bureau uniquement] |
serveur minimum pris en charge | Windows Server 2008 [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | mmdeviceapi.h |
Voir aussi
interface IAudioEndpointVolume
interface IAudioMeterInformation