Compartilhar via


ComAwareEventInfo.RemoveEventHandler(Object, Delegate) Método

Definição

Desanexa um manipulador de eventos de um objeto 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)

Parâmetros

target
Object

O objeto de destino ao qual o delegado de eventos está associado.

handler
Delegate

O delegado do evento.

Atributos

Exceções

O evento não tem um acessador público remove .

O manipulador passado não pode ser usado.

O target parâmetro é null e o evento não é estático.

- ou -

O EventInfo não é declarado no destino.

O chamador não tem permissão de acesso ao membro.

Comentários

Esse método é semelhante ao EventInfo.RemoveEventHandler(Object, Delegate) método, exceto que permite desanexar eventos de objetos COM.

Se target for um objeto COM, esse método libera um delegado para um evento usando o ComEventsHelper.Remove(Object, Guid, Int32, Delegate) método.

RemoveEventHandler facilita o cancelamento do registro de coletores de eventos COM que encaminham chamadas para delegados gerenciados correspondentes. Ele requer as seguintes informações:

  • O objeto de destino em si (target).

  • O GUID da interface de origem.

  • O DispID do método na interface COM que corresponde ao evento especificado.

  • O delegado que seria invocado quando o objeto COM dispara o evento correspondente (handler).

RemoveEventHandler pesquisa a interface de origem COM correspondente (especificada como o primeiro parâmetro do ComEventInterfaceAttribute.ComEventInterfaceAttribute(Type, Type) construtor). Em seguida, ele pesquisa um método na interface de origem cujo nome é idêntico ao nome do evento. O valor da interface de GuidAttribute origem é o GUID que é passado para ComEventsHelper.Remove(Object, Guid, Int32, Delegate); o valor do DispIDAttribute método é o valor dispID que é passado para ComEventsHelper.Remove(Object, Guid, Int32, Delegate).

Aplica-se a