システム イベント通知サービスは、COM+ イベント システムと連携します。 SENS は、監視するイベントのクラス (ネットワーク、ログオン、電源/バッテリ イベント) のイベント発行元です。 通知を受け取るアプリケーションは、イベント サブスクライバーと呼ばれます。
アプリケーションは、通知の受信をサブスクライブするときに、サブスクライブされたイベントに関連付けられたフィルターを指定することもできます。 SENS イベントと COM+ イベントでは、フィルターを使用して、アプリケーションに通知するタイミングをさらに決定します。
通知は非同期であるため、通知を受信するアプリケーションは、通知の送信時にアクティブである必要はありません。 アプリケーションは、通知の受信をサブスクライブするときに、イベントが発生したときにアクティブ化するか、後でアクティブになったときに通知するかを指定できます。
サブスクリプションは、アプリケーションの実行を停止するまでのみ一時的で有効にすることも、アプリケーションがシステムから削除されるまで永続的かつ有効にすることもできます。
COM+ イベント データ ストアには、イベント発行元 (SENS)、イベント サブスクライバー、フィルターに関する情報が含まれています。 SENS では、タイプ ライブラリ内の各イベント クラスの送信インターフェイスも事前に定義されています。
イベント クラス | GUID | インターフェイス |
---|---|---|
ネットワーク イベント | SENSGUID_EVENTCLASS_NETWORK | ISensNetwork |
ログオン イベント | SENSGUID_EVENTCLASS_LOGON | ISensLogon |
電源イベント | SENSGUID_EVENTCLASS_ONNOW | ISensOnNow |
これらのイベントの通知を受信するには、アプリケーションで次の 2 つの操作を行う必要があります。
- 関心のある SENS イベントをサブスクライブします。 イベントをサブスクライブするには、IEventSubscription を使用し、COM+ イベントの IEventSystem インターフェイスを します。 イベント クラスの識別子と SENS パブリッシャー識別子 (SENSGUID_PUBLISHER) を指定する必要があります。 サブスクリプションはイベント レベルごとに行われるので、サブスクライブしているアプリケーションでは、対象となるクラス内のイベントも指定する必要があります。 各イベントは、そのイベント クラスに対応するインターフェイス内のメソッドに対応します。
- 処理する各インターフェイスの実装を含むシンク オブジェクトを作成します。 これらのインターフェイスと各インターフェイスでサポートされるイベントの詳細については、ISensNetwork、ISensLogon、および ISensOnNowのに関するを参照してください。
監視対象のイベントのいずれかが発生すると、SENS は、関連付けられているフィルターを使用して各サブスクリプションを処理し、COM+ イベント システムを介してサブスクライバーに通知します。