RemoveEventHandler Method
Collapse the table of content
Expand the table of content

ComAwareEventInfo.RemoveEventHandler Method (Object, Delegate)

.NET Framework (current version)
 

Detaches an event handler from a COM object.

Namespace:   System.Runtime.InteropServices
Assembly:  System.Core (in System.Core.dll)

public override void RemoveEventHandler(
	object target,
	Delegate handler
)

Parameters

target
Type: System.Object

The target object that the event delegate is bound to.

handler
Type: System.Delegate

The event delegate.

Exception Condition
InvalidOperationException

The event does not have a public remove accessor.

ArgumentException

The handler that was passed in cannot be used.

TargetException

The target parameter is null and the event is not static.

-or-

The EventInfo is not declared on the target.

MethodAccessException
System_CAPS_noteNote

In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MemberAccessException, instead.

The caller does not have access permission to the member.

This method is similar to the EventInfo.RemoveEventHandler(Object, Delegate) method, except that it allows you to detach events from COM objects.

If target is a COM object, this method releases a delegate to an event by using the ComEventsHelper.Remove(Object, Guid, Int32, Delegate) method.

RemoveEventHandler facilitates unregistering COM event sinks that forward calls to corresponding managed delegates. It requires the following information:

  • The target object itself (target).

  • The GUID of the source interface.

  • The DispID of the method on the COM interface that corresponds to the specified event.

  • The delegate that would be invoked when the COM object triggers the corresponding event (handler).

RemoveEventHandler looks up the corresponding COM source interface (specified as the first parameter of the ComEventInterfaceAttribute.ComEventInterfaceAttribute(Type, Type) constructor). It then it looks up a method on the source interface whose name is identical to the event name. The value of GuidAttribute on the source interface is the GUID that is passed to ComEventsHelper.Remove(Object, Guid, Int32, Delegate); the value of DispIDAttribute on the method is the DispID value that is passed to ComEventsHelper.Remove(Object, Guid, Int32, Delegate).

SecurityPermission

for operating with unmanaged code. Associated enumeration: SecurityPermissionFlag.UnmanagedCode.

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1
Return to top
Show:
© 2016 Microsoft