Eventos

Un servicio hospedado debe implementar la interfaz IUPnPEventSource si tiene variables de estado con eventos. Esta interfaz tiene dos métodos: Advise y Unadvise. Esta interfaz proporciona un mecanismo para que el host del dispositivo se suscriba a las notificaciones de eventos generadas por el servicio hospedado. No habrá más de un receptor de eventos registrado a la vez.

Un servicio hospedado debe implementar el método Advise manteniendo una referencia a la interfaz IUPnPEventSink , que se pasó como parámetro. Si se encuentra la interfaz, el método Advise contiene una referencia a esa interfaz hasta que se invoca Unadvise o hasta que se quita el objeto de servicio hospedado. Se llama a aviso solo una vez.

Para quitar la suscripción, el host de dispositivo invoca Unadvise y pasa el puntero de objeto que se usa cuando se llama Aviso. El servicio hospedado quita la suscripción si el puntero es el mismo que el pasado a Aviso.

Cuando cambia el valor de una variable de estado, el servicio hospedado debe indicar que se ha producido un evento. Los servicios lo hacen invocando el método IUPnPEventSink::OnStateChanged .

Cuando el host del dispositivo ya no necesita recibir notificaciones del servicio hospedado, invoca IUPnPEventSource::Unadvise, pasando el mismo puntero de objeto que recibió de Advise. El host de dispositivo invoca este método cuando el dispositivo ya no va a estar en la red.