イベント

ホステッドサービスに evented 状態変数がある場合は、 IUPnPEventSource インターフェイスを実装する必要があります。 このインターフェイスには、 アドバイズアドバイズの2つのメソッドがあります。 このインターフェイスは、ホストされるサービスによって生成されるイベント通知をデバイスホストが定期受信するためのメカニズムを提供します。 一度に登録できるイベントシンクは1つだけです。

ホステッドサービスは、パラメーターとして渡された IUPnPEventSinkインターフェイスへの参照を保持することによって、アドバイズメソッドを実装する必要があります。 インターフェイスが見つかった場合、アドバイズ メソッドはアドバイズ が呼び出されるか、ホステッドサービスオブジェクトが削除されるまで、そのインターフェイスへの参照を保持します。 Advise は1回だけ呼び出されます。

サブスクリプションを削除するために、デバイスホストは アドバイズ を呼び出し 、アドバイズを呼び出したときに使用されるオブジェクトポインターを渡します。 ポインターが アドバイズ に渡されたものと同じである場合、ホステッドサービスはサブスクリプションを削除します。

状態変数の値が変更されると、ホステッドサービスは、イベントが発生したことを通知する必要があります。 サービスは、 IUPnPEventSink:: OnStateChanged メソッドを呼び出すことによってこれを行います。

デバイスホストがホステッドサービスから通知を受信する必要がなくなった場合、 IUPnPEventSource:: アドバイズが呼び出され、 アドバイズから受け取ったのと同じオブジェクトポインターが渡されます。 デバイスがネットワーク上に存在しなくなると、デバイスホストはこのメソッドを呼び出します。