Gestione eventi

Un servizio ospitato deve implementare l'interfaccia IUPnPEventSource se ha variabili di stato evento. Questa interfaccia ha due metodi: Advise e Unadvise. Questa interfaccia fornisce un meccanismo per l'host del dispositivo per sottoscrivere le notifiche degli eventi generate dal servizio ospitato. Non ci sarà più di un sink di eventi registrato alla volta.

Un servizio ospitato deve implementare il metodo Advise tenendo un riferimento all'interfaccia IUPnPEventSink , che è stata passata come parametro. Se l'interfaccia viene trovata, il metodo Advise contiene un riferimento a tale interfaccia fino a quando non viene richiamato Undvise o finché l'oggetto servizio ospitato non viene rimosso. Consiglia viene chiamato una sola volta.

Per rimuovere la sottoscrizione, l'host del dispositivo richiama Unadvise e passa il puntatore all'oggetto usato quando viene chiamato Advise. Il servizio ospitato rimuove la sottoscrizione se il puntatore è uguale a quello passato a Consiglia.

Quando il valore di una variabile di stato cambia, il servizio ospitato deve segnalare che si è verificato un evento. A tale scopo, i servizi richiamano il metodo IUPnPEventSink::OnStateChanged .

Quando l'host del dispositivo non deve più ricevere notifiche dal servizio ospitato, richiama IUPnPEventSource::Unadvise, passando lo stesso puntatore a oggetti ricevuto da Advise. L'host del dispositivo richiama questo metodo quando il dispositivo non sarà più in rete.