ComAwareEventInfo.RemoveEventHandler(Object, Delegate) Metódus

Definíció

Leválaszt egy eseménykezelőt egy COM-objektumról.

public:
 override void RemoveEventHandler(System::Object ^ target, Delegate ^ handler);
public override void RemoveEventHandler(object target, Delegate handler);
override this.RemoveEventHandler : obj * Delegate -> unit
abstract member RemoveEventHandler : obj * Delegate -> unit
override this.RemoveEventHandler : obj * Delegate -> unit
Public Overrides Sub RemoveEventHandler (target As Object, handler As Delegate)

Paraméterek

target
Object

Az a célobjektum, amelyhez az esemény-delegált hozzá van kötve.

handler
Delegate

Az esemény delegáltja.

Kivételek

Az esemény nem rendelkezik nyilvános remove kiegészítővel.

Az átadott kezelő nem használható.

A target paraméter és null az esemény nem statikus.

-vagy-

Ez EventInfo nincs deklarálva a célon.

Megjegyzés: Az .NET Windows Áruházbeli alkalmazások vagy a Portable Osztálytár esetében inkább Exception.

A hívó nem rendelkezik hozzáférési engedéllyel a taghoz.

Megjegyzés: Az .NET Windows Áruházbeli alkalmazások vagy a Portable Class Library esetében inkább az alaposztály kivételét MemberAccessException.

Megjegyzések

Ez a módszer hasonló a módszerhez, azzal a EventInfo.RemoveEventHandler(Object, Delegate) kivételrel, hogy lehetővé teszi az események leválasztására COM-objektumokról.

Ha target COM-objektum, ez a metódus a metódus használatával ComEventsHelper.Remove(Object, Guid, Int32, Delegate) delegáltat ad ki egy eseményhez.

RemoveEventHandler megkönnyíti a com-eseményfogyók regisztrációját, amelyek a megfelelő felügyelt meghatalmazottaknak továbbítják a hívásokat. Ehhez a következő információkra van szükség:

  • Maga a célobjektum (target).

  • A forrásfelület GUID azonosítója.

  • A módszer DispID azonosítója a COM-felületen, amely megfelel a megadott eseménynek.

  • Az a meghatalmazott, aki akkor lesz meghívva, amikor a COM-objektum elindítja a megfelelő eseményt (handler).

RemoveEventHandler megkeresi a megfelelő COM-forrásfelületet (a konstruktor első paramétereként ComEventInterfaceAttribute.ComEventInterfaceAttribute(Type, Type) megadva). Ezután megkeres egy metódust a forrásfelületen, amelynek neve megegyezik az esemény nevével. A forrásfelületen az a GUID érték GuidAttribute , amelyet a rendszer átad ComEventsHelper.Remove(Object, Guid, Int32, Delegate); a metódus értéke DispIDAttribute a DispID érték, amely a következőnek lesz átadva ComEventsHelper.Remove(Object, Guid, Int32, Delegate).

A következőre érvényes: