Événements
Un service hébergé doit implémenter l’interface IUPnPEventSource s’il a des variables d’état événementielles. Cette interface a deux méthodes : Advise et Unadvise. Cette interface fournit un mécanisme permettant à l’hôte de l’appareil de s’abonner aux notifications d’événements générées par le service hébergé. Il n’y aura pas plus d’un récepteur d’événements inscrit à la fois.
Un service hébergé doit implémenter la méthode Advise en conservant une référence à l’interface IUPnPEventSink , qui a été passée en tant que paramètre. Si l’interface est trouvée, la méthode Advise conserve une référence à cette interface jusqu’à ce que Unadvise soit appelé, ou jusqu’à ce que l’objet de service hébergé soit supprimé. Advise n’est appelé qu’une seule fois.
Pour supprimer l’abonnement, l’hôte de l’appareil appelle Unadvise et passe le pointeur d’objet utilisé lorsqu’il a appelé Advise. Le service hébergé supprime l’abonnement si le pointeur est le même que celui passé à Conseiller.
Lorsque la valeur d’une variable d’état change, le service hébergé doit signaler qu’un événement s’est produit. Pour ce faire, les services appellent la méthode IUPnPEventSink::OnStateChanged .
Lorsque l’hôte de l’appareil n’a plus besoin de recevoir des notifications du service hébergé, il appelle IUPnPEventSource::Unadvise, en passant le pointeur d’objet qu’il a reçu de Advise. L’hôte de l’appareil appelle cette méthode lorsque l’appareil ne sera plus sur le réseau.