Share via


Método IAudioEndpointVolume::UnregisterControlChangeNotify (endpointvolume.h)

El método UnregisterControlChangeNotify elimina el registro de la interfaz de devolución de llamada de notificación de un cliente que el cliente registró en una llamada anterior al método IAudioEndpointVolume::RegisterControlChangeNotify .

Sintaxis

HRESULT UnregisterControlChangeNotify(
  [in] IAudioEndpointVolumeCallback *pNotify
);

Parámetros

[in] pNotify

Puntero a la interfaz IAudioEndpointVolumeCallback del cliente. El cliente pasó este mismo puntero de interfaz al objeto de volumen del punto de conexión en una llamada anterior al método IAudioEndpointVolume::RegisterControlChangeNotify . Si el método UnregisterControlChangeNotify se realiza correctamente, llama al método Release en la interfaz IAudioEndpointVolumeCallback del cliente.

Valor devuelto

Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los posibles códigos de retorno incluyen, pero no están limitados a, los valores que se muestran en la tabla siguiente.

Código devuelto Descripción
E_POINTER
El parámetro pNotify es NULL.

Comentarios

Antes de que el cliente libere su referencia final a la interfaz IAudioEndpointVolumeCallback , debe llamar a UnregisterControlChangeNotify para anular el registro de la interfaz. De lo contrario, la aplicación filtra los recursos mantenidos por los objetos IAudioEndpointVolumeCallback e IAudioEndpointVolume . Tenga en cuenta que el método IAudioEndpointVolume::RegisterControlChangeNotify llama al método IAudioEndpointVolumeCallback::AddRef y UnregisterControlChangeNotify llama al método IAudioEndpointVolumeCallback::Release . Si el cliente erra liberando su referencia a la interfaz IAudioEndpointVolumeCallback antes de llamar a UnregisterControlChangeNotify, el objeto IAudioEndpointVolume nunca libera su referencia a la interfaz IAudioEndpointVolumeCallback . Por ejemplo, una implementación IAudioEndpointVolumeCallback mal diseñada podría llamar a UnregisterControlChangeNotify desde el destructor para el objeto IAudioEndpointVolumeCallback . En este caso, el cliente no llamará a UnregisterControlChangeNotify hasta que el objeto IAudioEndpointVolume libere su referencia a la interfaz IAudioEndpointVolumeCallback y el objeto IAudioEndpointVolume no liberará su referencia a la interfaz IAudioEndpointVolumeCallback hasta que el cliente llame a UnregisterControlChangeNotify. Para obtener más información sobre los métodos AddRef y Release , consulte la explicación de la interfaz IUnknown en la documentación de Windows SDK.

Para obtener un ejemplo de código que llama a UnregisterControlChangeNotify, consulte Controles de volumen de punto de conexión.

Requisitos

   
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado endpointvolume.h

Consulte también

IAudioEndpointVolume (interfaz)

IAudioEndpointVolume::RegisterControlChangeNotify

IAudioEndpointVolumeCallback (Interfaz)