SENS 体系结构
系统事件通知服务适用于 COM+ 事件系统。 SENS 是它监视的事件类的事件发布者:网络、登录和电源/电池事件。 接收通知的应用程序称为事件订阅服务器。
当应用程序订阅接收通知时,它还可以指定与订阅事件关联的筛选器。 SENS 和 COM+ 事件使用筛选器进一步确定何时应通知应用程序。
通知是异步的,因此在发送通知时,接收通知的应用程序不必处于活动状态。 当应用程序订阅接收通知时,它可以指定是应在事件发生时激活它,还是稍后在事件处于活动状态时收到通知。
订阅可以是暂时的且有效的,直到应用程序停止运行,也可以是持久且有效的,直到应用程序从系统中删除。
COM+ 事件数据存储包含有关事件发布者(SENS)、事件订阅服务器和筛选器的信息。 SENS 还预定义类型库中每个事件类的传出接口。
事件类 | GUID | 接口 |
---|---|---|
网络事件 | SENSGUID_EVENTCLASS_NETWORK | ISensNetwork |
登录事件 | SENSGUID_EVENTCLASS_LOGON | ISensLogon |
电源事件 | SENSGUID_EVENTCLASS_ONNOW | ISensOnNow |
若要接收上述任何事件的通知,应用程序必须执行以下两项作:
- 订阅感兴趣的 SENS 事件。 若要订阅事件,请使用 COM+ 事件中的 IEventSubscription 和 IEventSystem 接口。 你需要为事件类和 SENS 发布者标识符提供标识符,SENSGUID_PUBLISHER。 订阅基于每个事件级别,因此订阅应用程序还必须指定类中感兴趣的事件。 每个事件对应于其事件类的接口中的一个方法。
- 为处理的每个接口创建一个具有实现的接收器对象。 请参阅 ISensNetwork、ISensLogon,以及 ISensOnNow,详细了解这些接口以及每个接口支持的事件。
发生其中一个受监视事件时,SENS 会处理每个订阅,其中包含任何关联的筛选器,并通过 COM+ 事件系统通知订阅者。