创建事件源。
注意
本机 C++ 中的事件特性与标准 C++ 不兼容。 指定 /permissive- 一致性模式时,它们不会编译。
语法
[ event_source(type, optimize=[speed | size], decorate=[true | false]) ]
参数
type
以下值之一的枚举:
native,用于非托管 C/C++ 代码(非托管类的默认值)。com,用于 COM 代码。 当type=com时使用coclass。 此值需要包含以下头文件:#define _ATL_ATTRIBUTES #include <atlbase.h> #include <atlcom.h>
optimize
当类型为 native 时,可以指定 optimize=size 以指示对于类中的所有事件存在 4 个字节的存储(最小值),也可以指定 optimize=speed(默认值)以指示存在 4 *(事件数)个字节的存储。
decorate
当类型为 native 时,可以指定 decorate=false,以指示合并 (.mrg) 文件中的扩展名称不应包含封闭类名。 /Fx 让你能生成 .mrg 文件。 decorate=false(这是默认值)会导致合并文件中存在完全限定的类型名称。
注解
event_source C++ 属性指定应用它的类或结构会是事件源。
event_source 与 event_receiver 属性和 __event 关键字结合使用。 使用 event_receiver 创建事件接收器。 对事件源中的方法使用 __event 可将这些方法指定为事件。
注意
模板化的类或结构不能包含事件。
要求
| 特性上下文 | 值 |
|---|---|
| 适用于 | %> |
| 可重复 | 否 |
| 必需的特性 | 如果为 type=com,则为 coclass |
| 无效的特性 | 无 |
有关详细信息,请参见 特性上下文。