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 не объявлен для целевого объекта.
Примечание. Вместо этого в .NET для приложений Магазина Windows или переносимой библиотеки классов выполните перехват Exception .
Вызывающий объект не имеет разрешения на доступ к этому элементу.
Примечание. В .NET для приложений Магазина Windows или переносимой библиотеки классов перехватите исключение базового класса , MemberAccessException.
Комментарии
Этот метод аналогичен методу 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).
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по