事件处理

如果托管服务具有事件状态变量,则必须实现 IUPnPEventSource 接口。 此接口有两种方法: 建议取消推荐。 此接口为设备主机提供一种机制,用于订阅托管服务生成的事件通知。 一次注册的事件接收器不超过一个。

托管服务必须通过持有对作为参数传递的 IUPnPEventSink 接口的引用来实现建议方法。 如果找到接口, 建议 方法将保留对该接口的引用,直到调用 Unadvise ,或删除托管服务对象。 建议 只调用一次。

若要删除订阅,设备主机调用 Unadvise ,并在调用 “建议”时传入所使用的对象指针。 如果指针与传递给 建议的指针相同,则托管服务会删除订阅。

当状态变量的值发生更改时,托管服务必须发出事件发生信号。 这些服务通过调用 IUPnPEventSink::OnStateChanged 方法执行此操作。

当设备主机不再需要从托管服务接收通知时,它会调用 IUPnPEventSource::Unadvise,并传入它从 建议收到的同一对象指针。 设备主机在设备不再位于网络上时调用此方法。