更新:2007 年 11 月
COMEvents 示例说明使用 COM 的事件处理。
| .gif) 安全说明: | 
|---|
| 提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。对于超出本示例代码的预期用途以外的使用所造成的偶然或继发性损失,Microsoft 不承担任何责任。 | 
获取示例和安装示例的说明:
- 在 Visual Studio 的“帮助”菜单上,单击“示例”。 - 有关更多信息,请参见定位示例文件。 
- 示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。 
- 还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 Visual Studio 速成版,所有示例都位于联机位置。 
生成并运行示例
生成并运行 COMEvents
- 打开解决方案文件 COMEvents.sln。 
- 在“生成”菜单中,单击“生成解决方案”。 
- 在“解决方案资源管理器”中右键单击 EventReceiver 节点,然后选择**“设为启动项目”**。 
- 在**“调试”**菜单中,单击“开始执行(不调试)”。 
示例的工作机制
COMEvents 示例分别使用 event_source 属性和 event_receiver 属性来创建事件源 CSource 和事件接收器 CSink。
事件源将接口中的方法 IEvent、IEvent2 和 IJW 声明为事件(有关接口定义,请参见 Ifaces.h)。
事件接收器声明从 f1 到 f6 处理程序方法,并将每个处理程序挂钩到一个事件。
主代码实例化 CSource 和 CSink。CSink 构造函数执行挂钩操作。然后主代码激发事件,将事件解除挂钩,然后再次激发事件。