event_source 属性

创建事件源。

注意

本机 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_sourceevent_receiver 属性和 __event 关键字结合使用。 使用 event_receiver 创建事件接收器。 对事件源中的方法使用 __event 可将这些方法指定为事件。

注意

模板化的类或结构不能包含事件。

要求

特性上下文
适用于 classstruct
可重复
必需的特性 如果为 type=com,则为 coclass
无效的特性

有关详细信息,请参见 特性上下文

另请参阅

编译器特性
event_receiver
__event
__hook
__unhook
类特性