Eventos

Um serviço hospedado deve implementar a interface IUPnPEventSource se ela tiver variáveis de estado com eventos. Essa interface tem dois métodos: Advise e Unadvise. Essa interface fornece um mecanismo para o host do dispositivo assinar notificações de eventos 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 aviso é chamado apenas uma vez.

Para remover a assinatura, o host do dispositivo invoca Unadvise e passa no ponteiro do objeto usado quando ele chamou Advise. O serviço hospedado remove a assinatura se o ponteiro for o mesmo passado para Advise.

Quando o valor de uma variável de estado é alterado, o serviço hospedado deve sinalizar que ocorreu um evento. Os serviços faz 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 recebido de Advise. O host do dispositivo invoca esse método quando o dispositivo não está mais na rede.