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
只有在 com type= 指定 。 layout_dependent layout_dependent 是布林值:

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

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

備註

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

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

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

注意

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

需求

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

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

另請參閱

編譯器屬性
event_source
__event
__hook
__unhook
類別屬性