event_receiver 屬性

建立事件接收器 (接收)。

注意

原生 C++ 中的事件屬性與標準 C++ 不相容。 當您指定 /permissive- 一致性模式時,它們不會編譯。

語法

[ event_receiver(type
   [, layout_dependent=false]) ]

參數

type
下列其中一個值的列舉:

  • native 適用於 Unmanaged C/C++ 程式代碼(原生類別的預設值)。

  • COM 程式碼的com 。 這個值需要您包含這些標頭檔:

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

layout_dependent
只有在 comtype=指定 。layout_dependent layout_dependent 是布林值:

  • true 表示事件接收器中委派的簽章必須與事件來源中連結的委派簽章完全相符。 事件處理程式名稱必須符合相關事件來源介面中指定的名稱。 當是truelayout_dependent,請使用 coclass 。 指定 true會稍微更有效率。

  • false (default) 表示呼叫慣例和儲存類別 (virtualstatic和其他) 不需要符合事件方法和處理程式。 處理程式名稱也不需要符合事件來源介面方法名稱。

備註

event_receiver C++ 屬性會使用Microsoft C++統一事件模型,指定套用它的類別或結構將是事件接收器。

event_receiver與屬性和 __hook__unhook 關鍵詞搭配event_source使用。 用來 event_source 建立事件來源。 在事件接收器的方法內使用 __hook ,將 (“hook”) 事件接收者方法與事件來源的事件產生關聯。 使用 __unhook 來解除關聯。

layout_dependent 僅針對 COM 事件接收器 (type=com) 指定。 layout_dependent 的預設值為 false

注意

樣板類別或結構不能包含事件。

需求

屬性內容
適用於 class, struct
可重複 No
必要屬性 若為 layout_dependent=true則為 coclass
無效屬性

如需詳細資訊,請參閱 屬性內容

另請參閱

編譯程序屬性
event_source
__event
__hook
__unhook
類別屬性