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 访问器。
不能使用传入的处理程序。
调用方对成员没有访问权限。
注解
此方法与 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 值。