Événements

Un service hébergé doit implémenter l’interface IUPnPEventSource s’il a des variables d’état d’événement. Cette interface a deux méthodes : Advise et Unadvise. Cette interface fournit un mécanisme permettant à l’hôte d’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 enregistré à la fois.

Un service hébergé doit implémenter la méthode Advise en maintenant une référence à l’interface IUPnPEventSink , qui a été transmise en tant que paramètre. Si l’interface est trouvée, la méthode Advise contient une référence à cette interface jusqu’à ce que Unadvise soit appelée, ou jusqu’à ce que l’objet de service hébergé soit supprimé. La méthode Advise est appelée une seule fois.

Pour supprimer l’abonnement, l’hôte d’appareil appelle Unadvise et passe le pointeur d’objet utilisé quand il a appelé Advise. Le service hébergé supprime l’abonnement si le pointeur est le même que celui passé à Advise.

Quand 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 même pointeur d’objet que celui qu’il a reçu de la part de l' avis. L’hôte d’appareil appelle cette méthode lorsque l’appareil n’est plus sur le réseau.