ComAwareEventInfo.RemoveEventHandler(Object, Delegate) Метод

Определение

Отсоединяет обработчик событий от 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)

Параметры

target
Object

Целевой объект, к которому привязан делегат события.

handler
Delegate

Делегат события.

Атрибуты

Исключения

Событие не имеет общедоступного remove доступа.

Не удается использовать обработчик, который был передан.

Параметр target имеет значение null , и событие не является статическим.

–или–

Объект EventInfo не объявлен в целевом объекте.

Вызывающий объект не имеет разрешения на доступ к члену.

Комментарии

Этот метод аналогичен методу EventInfo.RemoveEventHandler(Object, Delegate) , за исключением того, что он позволяет отсоединять события от COM-объектов.

Если target это COM-объект, этот метод освобождает делегат события с помощью ComEventsHelper.Remove(Object, Guid, Int32, Delegate) метода.

RemoveEventHandler упрощает отмену регистрации приемников событий COM, которые перенаправляют вызовы соответствующим управляемым делегатам. Для этого требуется следующая информация:

  • Сам целевой объект (target).

  • GUID исходного интерфейса.

  • DispID метода в com-интерфейсе, соответствующем указанному событию.

  • Делегат, который будет вызываться, когда com-объект активирует соответствующее событие (handler).

RemoveEventHandler ищет соответствующий интерфейс COM-источника (указанный в качестве первого параметра конструктора ComEventInterfaceAttribute.ComEventInterfaceAttribute(Type, Type) ). Затем он ищет метод в исходном интерфейсе, имя которого идентично имени события. Значение GuidAttribute в исходном интерфейсе — это GUID, передаваемый ComEventsHelper.Remove(Object, Guid, Int32, Delegate)в; значение DispIDAttribute метода — значение DispID, переданное в ComEventsHelper.Remove(Object, Guid, Int32, Delegate).

Применяется к