event_source 属性

イベント ソースを作成します。

Note

ネイティブ C++ のイベント属性は、標準 C++ と互換性がありません。 この属性は、/permissive- 準拠モードを指定するとコンパイルされません。

構文

[ event_source(type, optimize=[speed | size], decorate=[true | false]) ]

パラメーター

type
次の値のいずれかの列挙です。

  • アンマネージ C/C++ コード用のnative (アンマネージ クラスの既定)。

  • COM コード用のcomtype=com のときは coclass を使用します。 この値の場合、ユーザーが次のヘッダー ファイルを含める必要があります。

    #define _ATL_ATTRIBUTES
    #include <atlbase.h>
    #include <atlcom.h>
    

optimize
typenative のときに optimize=size と指定すると、クラスのすべてのイベントに対して記憶域を (最低) 4 バイト確保することを指定でき、optimize=speed (既定) を指定すると、記憶域を 4 * (イベントの数) バイト確保することを指定できます。

decorate
typenative のときに decorate=false と指定すると、マージされた (.mrg) ファイルの拡張名に外部クラス名を含めないようにすることを指定できます。 /Fx.mrg ファイルを生成できるようにします。 decorate=false (既定) では、マージされたファイルの型名が完全修飾されます。

解説

event_source C++ 属性は、それが適用されているクラスまたは構造がイベント ソースとなることを指定します。

event_source は、event_receiver 属性および __event キーワードと組み合わせて使用します。 イベントレシーバーを作成するには、event_receiver を使用します。 イベント ソース内のメソッドで __event を使用すると、それらのメソッドをイベントとして指定することができます。

Note

テンプレート クラスまたは構造体に events を含めることはできません。

必要条件

属性コンテキスト Value
適用対象 class, struct
反復可能 いいえ
必要な属性 type=com の場合は coclass
無効な属性 なし

詳細については、「 属性コンテキスト」を参照してください。

関連項目

コンパイラ属性
event_receiver
__event
__hook
__unhook
クラス属性