イベント
ホステッド サービスは、イベント状態変数がある場合、IUPnPEventSource インターフェイスを実装する必要があります。 このインターフェイスには、2 つの方法があります: アドバイス と Unadvise. このインターフェイスは、ホストされたサービスによって生成されたイベント通知をデバイス ホストがサブスクライブするためのメカニズムを提供します。 一度に 1 つ以上のイベント シンクが登録されることはありません。
ホストされるサービスは、パラメーターとして渡された IUPnPEventSink インターフェイスへの参照を保持することによって、Advise メソッドを実装する必要があります。 インターフェイスが見つかった場合、Advise メソッドは、Unadvise が呼び出されるまで、またはホストされているサービス オブジェクトが削除されるまで、そのインターフェイスへの参照を保持します。 アドバイズ は 1 回だけ呼び出されます。
サブスクリプションを削除するために、デバイス ホストは Unadvise呼び出し、Adviseを呼び出したときに使用されるオブジェクト ポインターを渡します。 ポインターが Adviseに渡されたものと同じである場合、ホステッド サービスはサブスクリプションを削除します。
状態変数の値が変更されると、ホストされるサービスはイベントが発生したことを通知する必要があります。 この処理は、IUPnPEventSink::OnStateChanged メソッドを呼び出すことによって行われます。
ホストされたサービスから通知を受信する必要がなくなったデバイス ホストは、IUPnPEventSource::Unadvise呼び出し、Adviseから受信したのと同じオブジェクト ポインターを渡します。 デバイス ホストは、デバイスがネットワーク上に存在しなくなったときに、このメソッドを呼び出します。