Eventos
Um serviço hospedado deve implementar a interface IUPnPEventSource se tiver variáveis de estado eventuais. Essa interface tem dois métodos: Aconselhar e Não criar consulta. Essa interface fornece um mecanismo para que o host do dispositivo assine as notificações de evento geradas pelo serviço hospedado. Não haverá mais de um coletor de eventos registrado por vez.
Um serviço hospedado deve implementar o método Advise mantendo uma referência à interface IUPnPEventSink , que foi passada como um parâmetro. Se a interface for encontrada, o método Advise manterá uma referência a essa interface até que Unadvise seja invocado ou até que o objeto de serviço hospedado seja removido. O conselho é chamado apenas uma vez.
Para remover a assinatura, o host do dispositivo invoca Unadvise e passa o ponteiro de objeto usado quando chamado Desaconselhe. O serviço hospedado removerá a assinatura se o ponteiro for o mesmo que o passado para Aconselhar.
Quando o valor de uma variável de estado é alterado, o serviço hospedado deve sinalizar que ocorreu um evento. Os serviços fazem isso invocando o método IUPnPEventSink::OnStateChanged .
Quando o host do dispositivo não precisa mais receber notificações do serviço hospedado, ele invoca IUPnPEventSource::Unadvise, passando o mesmo ponteiro de objeto que recebeu do Advise. O host do dispositivo invoca esse método quando o dispositivo não estará mais na rede.