ComAwareEventInfo.RemoveEventHandler(Object, Delegate) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將事件處理程序從 COM 物件中分離。
public:
override void RemoveEventHandler(System::Object ^ target, Delegate ^ handler);
public override void RemoveEventHandler(object target, Delegate handler);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public override void RemoveEventHandler(object target, Delegate handler);
override this.RemoveEventHandler : obj * Delegate -> unit
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
override this.RemoveEventHandler : obj * Delegate -> unit
Public Overrides Sub RemoveEventHandler (target As Object, handler As Delegate)
參數
- target
- Object
事件委派綁定的目標物件。
- handler
- Delegate
活動代表。
- 屬性
例外狀況
該活動沒有公開 remove 的參與者。
被傳入的處理者無法使用。
來電者無權存取該成員。
備註
此方法與 COM EventInfo.RemoveEventHandler(Object, Delegate) 類似,但允許將事件與 COM 物件分離。
若 target 是 COM 物件,此方法會透過該 ComEventsHelper.Remove(Object, Guid, Int32, Delegate) 方法釋放事件代理。
RemoveEventHandler 促進取消註冊 COM 事件匯入,將通話轉交給對應的受管理代理。 它需要以下資訊:
目標物件本身(
target)。原始碼介面的 GUID。
對應特定事件的 COM 介面上方法的 DispID。
當 COM 物件觸發對應事件()
handler時,會被呼叫的代理。
RemoveEventHandler 查找對應的 COM 來源介面(作為建構子的 ComEventInterfaceAttribute.ComEventInterfaceAttribute(Type, Type) 第一個參數)。 接著它會在原始碼介面上查找一個名稱與事件名稱相同的方法。 來源介面上的 值 GuidAttribute 是傳遞給 ComEventsHelper.Remove(Object, Guid, Int32, Delegate)的 GUID;方法 上的 DispIDAttribute 值是傳給 ComEventsHelper.Remove(Object, Guid, Int32, Delegate)的 DispID 值。