共用方式為


事件處理原則

所有事件處理共有三個步驟。 您將需要:

  • 在您的對象上實作事件介面。

  • 建議您的物件想要接收事件的事件來源。

  • 當您的物件不再需要接收事件時,請取消加入事件來源。

您將實作事件介面的方式將取決於其類型。 事件介面可以是 vtable、dual 或 dispinterface。 由事件來源的設計工具決定,以定義 介面;實作該介面由您決定。

注意

雖然沒有事件介面不可為雙重的技術原因,但有許多良好的設計理由可避免使用雙重。 不過,這是事件 來源設計工具/實作者所做的決策。 由於您正從事件 sink的觀點著手,因此您必須允許您可能沒有任何選擇,但要實作雙重事件介面的可能性。 如需雙重介面的詳細資訊,請參閱 雙重介面和 ATL

建議事件來源可分成三個步驟:

成功註冊您接收事件的興趣之後,系統會根據來源物件所引發的事件呼叫物件事件介面上的方法。 當您不再需要接收事件時,可以透過 IConnectionPoint::Unadvise 將 Cookie 傳回連接點。 這會中斷來源和接收之間的連線。

請小心避免在處理事件時參考迴圈。

另請參閱

事件處理