Compartilhar via


Sobre a API MMDevice

A API do Dispositivo Multimídia do Windows (MMDevice) permite que os clientes de áudio descubram dispositivos de ponto de extremidade de áudio, determinem seus recursos e criem instâncias de driver para esses dispositivos.

O arquivo de cabeçalho Mmdeviceapi.h define as interfaces na API MMDevice.

A API MMDevice consiste em várias interfaces. O primeiro deles é a interface IMMDeviceEnumerator. Para acessar as interfaces na API MMDevice, um cliente obtém uma referência à interface IMMDeviceEnumerator de um objeto device-enumerator chamando a função CoCreateInstance, conforme mostrado no fragmento de código a seguir:

  const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator);
  const IID IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator);
  hr = CoCreateInstance(
         CLSID_MMDeviceEnumerator, NULL,
         CLSCTX_ALL, IID_IMMDeviceEnumerator,
         (void**)&pEnumerator);

No fragmento de código anterior, CLSID_MMDeviceEnumerator e IID_IMMDeviceEnumerator são os valores GUID anexados como atributos ao objeto de classe MMDeviceEnumerator e à interface IMMDeviceEnumerator. A chamada CoCreateInstance passa esses valores por referência. Variável hr é do tipo HRESULTe variável pEnumerator é um ponteiro para a interface IMMDeviceEnumerator de um objeto device-enumerator . IMMDeviceEnumerator fornece métodos para enumerar dispositivos de ponto de extremidade de áudio. Para obter informações sobre o operador __uuidof, a função CoCreateInstance e as constantes CLSCTX_Xxx, consulte a documentação do SDK do Windows.

Através da interface IMMDeviceEnumerator , o cliente pode obter referências às outras interfaces na API MMDevice. A API MMDevice implementa as seguintes interfaces.

Interface Descrição
IMMevice Representa um dispositivo de áudio.
IMMDeviceCollection Representa uma coleção de dispositivos de áudio.
IMMDeviceEnumerador Fornece métodos para enumerar dispositivos de áudio.
IMMEndpoint Representa um dispositivo de ponto de extremidade de áudio.

 

Além disso, os clientes da API MMDevice que exigem notificação de alterações de status em dispositivos de ponto de extremidade de áudio devem implementar a interface a seguir.

Interface Descrição
IMMNotificationClient Fornece notificações quando um dispositivo de ponto de extremidade de áudio é adicionado ou removido, quando o estado ou as propriedades de um dispositivo são alterados ou quando há uma alteração na função padrão atribuída a um dispositivo.

 

Dispositivos de ponto de extremidade de áudio

Referência de programação