Sdílet prostřednictvím


ComAwareEventInfo.RemoveEventHandler(Object, Delegate) Metoda

Definice

Oddělí obslužnou rutinu události od objektu 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)

Parametry

target
Object

Cílový objekt, ke kterému je delegát události vázán.

handler
Delegate

Delegát události.

Atributy

Výjimky

Událost nemá veřejný remove přístup.

Obslužnou rutinu, která byla předána, nelze použít.

Parametr target je null a událost není statická.

-nebo-

Hodnota EventInfo není deklarována v cíli.

Poznámka: V .NET pro aplikace pro Windows Store nebo v přenosné knihovně tříd místo toho zachyťte.Exception

Volající nemá oprávnění pro přístup ke členu.

Poznámka: V .NET pro aplikace pro Windows Store nebo v knihovně přenosných tříd místo toho zachyťte výjimku MemberAccessExceptionzákladní třídy .

Poznámky

Tato metoda je podobná EventInfo.RemoveEventHandler(Object, Delegate) metodě, s výjimkou toho, že umožňuje odpojit události od objektů MODELU COM.

Pokud target je objekt COM, tato metoda uvolní delegáta události pomocí ComEventsHelper.Remove(Object, Guid, Int32, Delegate) metody .

RemoveEventHandler usnadňuje zrušení registrace jímek událostí modelu COM, které přesměrovává volání na odpovídající spravované delegáty. Vyžaduje následující informace:

  • Samotný cílový objekt (target).

  • Identifikátor GUID zdrojového rozhraní.

  • DispID metody v rozhraní MODELU COM, která odpovídá zadané události.

  • Delegát, který by byl vyvolán, když objekt COM aktivuje odpovídající událost (handler).

RemoveEventHandler vyhledá odpovídající zdrojové rozhraní modelu COM (zadané jako první parametr konstruktoru ComEventInterfaceAttribute.ComEventInterfaceAttribute(Type, Type) ). Pak vyhledá metodu ve zdrojovém rozhraní, jejíž název je shodný s názvem události. Hodnota ve GuidAttribute zdrojovém rozhraní je identifikátor GUID, který se předává do ComEventsHelper.Remove(Object, Guid, Int32, Delegate). Hodnota DispIDAttribute metody je hodnota DispID, která je předána do ComEventsHelper.Remove(Object, Guid, Int32, Delegate).

Platí pro