event_source
attribute
Creates an event source.
Note
Event attributes in native C++ are incompatible with Standard C++. They don't compile when you specify /permissive-
conformance mode.
[ event_source(type, optimize=[speed | size], decorate=[true | false]) ]
type
An enumeration of one of the following values:
native
for unmanaged C/C++ code (default for unmanaged classes).com
for COM code. Usecoclass
whentype
=com
. This value requires that you include the following header files:#define _ATL_ATTRIBUTES #include <atlbase.h> #include <atlcom.h>
optimize
When type is native
, you can specify optimize=size
, to indicate that there are 4 bytes of storage (minimum) for all events in a class or optimize=speed
(the default) to indicate that there are 4 * (# of events) bytes of storage.
decorate
When type is native
, you can specify decorate=false
, to indicate that the expanded name in the merged (.mrg
) file shouldn't include the enclosing class name. /Fx
lets you generate .mrg
files. decorate=false
, which is the default, results in fully qualified type names in the merged file.
The event_source
C++ attribute specifies that the class or structure to which it's applied will be an event source.
event_source
is used in conjunction with the event_receiver
attribute and the __event
keyword. Use event_receiver
to create event receivers. Use __event
on methods within the event source to specify those methods as events.
Note
A templated class or struct cannot contain events.
Attribute context | Value |
---|---|
Applies to | class , struct |
Repeatable | No |
Required attributes | coclass when type =com |
Invalid attributes | None |
For more information, see Attribute Contexts.
Compiler attributes
event_receiver
__event
__hook
__unhook
Class attributes