ComAwareEventInfo.RemoveEventHandler(Object, Delegate) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 do evento está associado.
- handler
- Delegate
O delegado do evento.
- Atributos
Exceções
O evento não tem um acessador remove
público.
O manipulador passado não pode ser usado.
O parâmetro target
é null
e o evento não é estático.
- ou -
O EventInfo não está declarado no destino.
Observação: no .NET para aplicativos da Windows Store ou na Biblioteca de Classes Portátil, capture Exception em vez disso.
O chamador não tem permissão de acesso ao membro.
Observação: no .NET para aplicativos da Windows Store ou na Biblioteca de Classes Portátil, capture a exceção de classe base, MemberAccessException, em vez disso.
Comentários
Esse método é semelhante ao EventInfo.RemoveEventHandler(Object, Delegate) método , exceto que ele permite desanexar eventos de objetos COM.
Se target
for um objeto COM, esse método liberará 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 próprio objeto de destino (
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 de na interface de GuidAttribute
origem é o GUID que é passado para ComEventsHelper.Remove(Object, Guid, Int32, Delegate); o valor de DispIDAttribute
no método é o valor DispID que é passado para ComEventsHelper.Remove(Object, Guid, Int32, Delegate).