Freigeben über


ComAwareEventInfo.RemoveEventHandler(Object, Delegate) Methode

Definition

Trennt einen Ereignishandler von einem COM-Objekt.

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)

Parameter

target
Object

Das Zielobjekt, an das der Ereignisdelegat gebunden ist.

handler
Delegate

Der Ereignisdelegat.

Attribute

Ausnahmen

Das Ereignis verfügt nicht über einen öffentlichen remove Accessor.

Der übergebene Handler kann nicht verwendet werden.

Der target Parameter ist null und das Ereignis ist nicht statisch.

- oder -

Dies EventInfo wird nicht für das Ziel deklariert.

Der Aufrufer verfügt nicht über Zugriffsberechtigungen für das Mitglied.

Hinweise

Diese Methode ähnelt der EventInfo.RemoveEventHandler(Object, Delegate) Methode, mit der Ausnahme, dass Sie Ereignisse von COM-Objekten trennen können.

Wenn target es sich um ein COM-Objekt handelt, gibt diese Methode mithilfe der ComEventsHelper.Remove(Object, Guid, Int32, Delegate) Methode einen Delegaten an ein Ereignis frei.

RemoveEventHandler erleichtert das Aufheben der Registrierung von COM-Ereignissenken, die Aufrufe an entsprechende verwaltete Stellvertretungen weiterleiten. Sie erfordert die folgenden Informationen:

  • Das Zielobjekt selbst (target).

  • Die GUID der Quellschnittstelle.

  • Die DispID der Methode auf der COM-Schnittstelle, die dem angegebenen Ereignis entspricht.

  • Der Delegat, der aufgerufen wird, wenn das COM-Objekt das entsprechende Ereignis auslöst (handler).

RemoveEventHandler sucht die entsprechende COM-Quellschnittstelle (angegeben als erster Parameter des ComEventInterfaceAttribute.ComEventInterfaceAttribute(Type, Type) Konstruktors). Anschließend wird eine Methode auf der Quellschnittstelle nachschlagen, deren Name mit dem Ereignisnamen identisch ist. Der Wert der GuidAttribute Quellschnittstelle ist die GUID, die an ; ComEventsHelper.Remove(Object, Guid, Int32, Delegate)der Wert der DispIDAttribute Methode ist der DispID-Wert, der ComEventsHelper.Remove(Object, Guid, Int32, Delegate)an übergeben wird.

Gilt für: