Compartilhar via


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.
Ao implementar a interface IMMNotificationClient , o cliente deve observar essas regras para evitar deadlocks e comportamento indefinido: Para obter um exemplo de código que implementa a interface IMMNotificationClient , consulte Eventos de dispositivo.

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

IMMDevice::GetId

IMMDeviceEnumerator::GetDevice

IMMDeviceEnumerator::RegisterEndpointNotificationCallback

IMMDeviceEnumerator::UnregisterEndpointNotificationCallback

MMDevice API