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. |
Tópicos relacionados