Eventing (Zdarzenia)
Usługa hostowana musi zaimplementować interfejs IUPnPEventSource, jeśli ma zmienne stanu zdarzeń. Ten interfejs ma dwie metody: Radzić i Unadvise. Ten interfejs zapewnia mechanizm subskrybowania powiadomień o zdarzeniach generowanych przez usługę hostowaną przez hosta urządzenia. Jednocześnie nie będzie więcej niż jednego ujścia zdarzeń.
Usługa hostowana musi zaimplementować metodędoradcy, przechowując odwołanie do interfejsu IUPnPEventSink, który został przekazany jako parametr. Jeśli interfejs zostanie znaleziony, metoda Advise przechowuje odwołanie do tego interfejsu, dopóki nie zostanie wywołana unadvise lub do czasu usunięcia obiektu hostowanej usługi. Doradca jest wywoływany tylko raz.
Aby usunąć subskrypcję, host urządzenia wywołuje unadvise i przekazuje wskaźnik obiektu używany podczas wywoływania Doradca. Usługa hostowana usuwa subskrypcję, jeśli wskaźnik jest taki sam, jak ten przekazany do doradzać.
Gdy wartość zmiennej stanu zmieni się, hostowana usługa musi sygnalizować, że wystąpiło zdarzenie. Usługi to robi, wywołując metodę IUPnPEventSink::OnStateChanged.
Gdy host urządzenia nie musi już otrzymywać powiadomień z usługi hostowanej, wywołuje IUPnPEventSource::Unadvise, przekazując ten sam wskaźnik obiektu, który otrzymał od Doradca. Host urządzenia wywołuje tę metodę, gdy urządzenie nie będzie już w sieci.