Interface IMMNotificationClient (mmdeviceapi.h)
A interface 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 de ponto de extremidade mudam ou quando há uma alteração na função padrão atribuída a um dispositivo de ponto de extremidade. Ao contrário das outras interfaces nesta seção, que são implementadas pelo componente do sistema de API MMDevice, um cliente de API MMDevice implementa a interface IMMNotificationClient . Para receber notificações, o cliente passa um ponteiro para sua instância de interface IMMNotificationClient como um parâmetro para o método IMMDeviceEnumerator::RegisterEndpointNotificationCallback .
Depois de registrar sua interface IMMNotificationClient , o cliente recebe notificações de evento na forma de retornos de chamada por meio dos métodos da interface .
Cada método na interface IMMNotificationClient recebe, como um de seus parâmetros de entrada, uma cadeia de caracteres de ID de ponto de extremidade que identifica o dispositivo de ponto de extremidade de áudio que é o assunto da notificação. A cadeia de caracteres identifica exclusivamente o dispositivo em relação a todos os outros dispositivos de ponto de extremidade de áudio no sistema. Os métodos na implementação da interface IMMNotificationClient devem tratar essa cadeia de caracteres como opaca. Ou seja, nenhum dos métodos deve tentar analisar o conteúdo da cadeia de caracteres para obter informações sobre o dispositivo. O motivo é que o formato de cadeia de caracteres é indefinido e pode mudar de uma implementação do módulo do sistema de API MMDevice para a próxima.
Um cliente pode usar a cadeia de caracteres de ID do ponto de extremidade que recebe como um parâmetro de entrada em uma chamada para um método IMMNotificationClient de duas maneiras:
- O cliente pode criar uma instância do dispositivo que a cadeia de caracteres de ID do ponto de extremidade identifica. O cliente faz isso chamando o método IMMDeviceEnumerator::GetDevice e fornecendo a cadeia de caracteres de ID do ponto de extremidade como um parâmetro de entrada.
- O cliente pode comparar a cadeia de caracteres de ID do ponto de extremidade com a cadeia de caracteres de ID do ponto de extremidade de uma instância de dispositivo existente. Para obter a segunda cadeia de caracteres de ID do ponto de extremidade, o cliente chama o método IMMDevice::GetId da instância do dispositivo. Se as duas cadeias de caracteres corresponderem, elas identificarão o mesmo dispositivo.
- Os métodos da interface devem não ser desbloqueados. O cliente nunca deve aguardar um objeto de sincronização durante um retorno de chamada de evento.
- Para evitar bloqueios inativos, o cliente nunca deve chamar IMMDeviceEnumerator::RegisterEndpointNotificationCallback ou IMMDeviceEnumerator::UnregisterEndpointNotificationCallback em sua implementação de métodos IMMNotificationClient .
- O cliente nunca deve liberar a referência final em um objeto de API MMDevice durante um retorno de chamada de evento.
Herança
A interface IMMNotificationClient herda da interface IUnknown . IMMNotificationClient também tem estes tipos de membros:
Métodos
A interface IMMNotificationClient tem esses métodos.
IMMNotificationClient::OnDefaultDeviceChanged O método OnDefaultDeviceChanged notifica o cliente de que o dispositivo de ponto de extremidade de áudio padrão para uma função de dispositivo específica foi alterado. |
IMMNotificationClient::OnDeviceAdded O método OnDeviceAdded indica que um novo dispositivo de ponto de extremidade de áudio foi adicionado. |
IMMNotificationClient::OnDeviceRemoved O método OnDeviceRemoved indica que um dispositivo de ponto de extremidade de áudio foi removido. |
IMMNotificationClient::OnDeviceStateChanged O método OnDeviceStateChanged indica que o estado de um dispositivo de ponto de extremidade de áudio foi alterado. |
IMMNotificationClient::OnPropertyValueChanged O método OnPropertyValueChanged indica que o valor de uma propriedade pertencente a um dispositivo de ponto de extremidade de áudio foi alterado. |
Requisitos
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | mmdeviceapi.h |
Confira também
Principais interfaces de áudio
IMMDeviceEnumerator::GetDevice
IMMDeviceEnumerator::RegisterEndpointNotificationCallback