Método IAudioSessionManager2::RegisterSessionNotification (audiopolicy.h)

El método RegisterSessionNotification registra la aplicación para recibir una notificación cuando se crea una sesión.

Sintaxis

HRESULT RegisterSessionNotification(
  IAudioSessionNotification *SessionNotification
);

Parámetros

SessionNotification

Puntero a la implementación de la aplicación de la interfaz IAudioSessionNotification . Si la llamada al método se realiza correctamente, llama al método AddRef en la interfaz IAudioSessionNotification de la aplicación.

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.

Valor devuelto Descripción
E_POINTER
SessionNotification es NULL.
E_OUTOFMEMORY
No se pudo crear el objeto interno debido a memoria insuficiente.

Comentarios

La aplicación puede registrarse para recibir una notificación cuando se crea una sesión, a través de los métodos de la interfaz IAudioSessionNotification . La aplicación implementa la interfaz IAudioSessionNotification . Los métodos definidos en esta interfaz reciben devoluciones de llamada del sistema cuando se crea una sesión. Para obtener código de ejemplo que muestra cómo implementar esta interfaz, consulte

Interfaz IAudioSessionNotification.

Para empezar a recibir notificaciones, la aplicación llama al método IAudioSessionManager2::RegisterSessionNotification para registrar su interfaz IAudioSessionNotification . Cuando la aplicación ya no requiere notificaciones, llama al método IAudioSessionManager2::UnregisterSessionNotification para eliminar el registro.

Importante

Debe llamar a IAudioSessionEnumerator::GetCount para empezar a recibir notificaciones. La API de enumeración de sesiones descarta nuevas notificaciones de sesión hasta que la aplicación haya recuperado primero la lista de sesiones existentes. Esto es para evitar una condición de carrera que puede producirse cuando llega una notificación de sesión mientras la aplicación usa las API de sesión se está iniciando. Al llamar a GetCount , se desencadena la API de enumeración para empezar a enviar notificaciones de sesión.

Nota Asegúrese de que la aplicación inicializa COM con el modelo de apartamento multiproceso (MTA) llamando a CoInitializeEx(NULL, COINIT_MULTITHREADED) en un subproceso que no es de interfaz de usuario. Si MTA no se inicializa, la aplicación no recibe notificaciones de sesión del administrador de sesiones. Los subprocesos que ejecutan la interfaz de usuario de una aplicación deben inicializarse en el modelo de subprocesos de apartamento.
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado audiopolicy.h

Consulte también

IAudioSessionManager2