event_source

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

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

パラメータ

  • type
    次のいずれかの値の列挙型を指定します。

    • アンマネージ C/C++ コードの場合は native。これはアンマネージ クラスの既定値です。

    • COM コードの場合は com。type=com の場合は coclass を使用する必要があります。この値には、次のヘッダー ファイルが必要です。

         #define _ATL_ATTRIBUTES
         #include <atlbase.h>
         #include <atlcom.h>
      
  • optimize
    type が native の場合は、optimize=size を指定すると、クラスのすべてのイベントに対して 4 バイトのストレージ (最小値) が割り当てられ、optimize=speed (既定値) を指定すると、4 × (イベント数) バイトのストレージが割り当てられます。

  • decorate
    type が native の場合は、decorate=false を指定すると、マージ ファイル (.mrg) の展開された名前に外側のクラス名は含まれません。/Fx を使用すると、.mrg ファイルが生成されます。decorate=false (既定値) を指定すると、マージ ファイルに完全修飾型名が生成されます。

解説

C++ 属性 event_source は、この属性が設定されたクラスまたは構造体が、イベント ソースになるように指定します。

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

3fw55ssh.alert_note(ja-jp,VS.90).gifメモ :

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

必要条件

属性コンテキスト

対象

class、struct

複数回の適用

不可

必要な属性

type=com の場合は coclass

無効な属性

なし

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

参照

概念

コンパイラ属性

event_receiver

__event

__hook

__unhook

クラス属性

ATL サンプル