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 besitzt keinen öffentlichen remove-Accessor.

Der übergebene Handler kann nicht verwendet werden.

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

- oder -

Die EventInfo ist im Ziel nicht deklariert.

Hinweis: In .NET für Windows Store-Apps oder der portablen Klassenbibliothek sollten Sie stattdessen abfangen Exception .

Der Aufrufer verfügt nicht über Zugriffsberechtigung für diesen Member.

Hinweis: Erfassen Sie in .NET für Windows Store-Apps oder der portablen Klassenbibliothek stattdessen die Basisklassen-Ausnahme MemberAccessException.

Hinweise

Diese Methode ähnelt der Methode, mit der EventInfo.RemoveEventHandler(Object, Delegate) 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 für ein Ereignis frei.

RemoveEventHandler erleichtert das Aufheben der Registrierung von COM-Ereignissenken, die Aufrufe an entsprechende verwaltete Delegaten weiterleiten. Hierfür sind die folgenden Informationen erforderlich:

  • 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 (handler) auslöst.

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

Gilt für: