Compartilhar via


Princípios de manipulação de eventos

Há três etapas comuns a toda manipulação de eventos. Você precisará:

  • Implementar a interface do evento em seu objeto.

  • Informar a origem do evento de que seu objeto deseja receber eventos.

  • Desinformar a origem do evento de que seu objeto não precisa mais receber eventos.

A maneira como você implementará a interface do evento dependerá de seu tipo. Uma interface de evento pode ser vtable, dual ou dispinterface. Cabe ao designer da origem do evento definir a interface; cabe a você implementar essa interface.

Observação

Embora não haja motivos técnicos para que uma interface de evento não possa ser dupla, há uma série de bons motivos de design para evitar o uso de duals. No entanto, essa é uma decisão tomada pelo designer/implementador da origem do evento. Como está trabalhando na perspectiva do evento sink, você precisa permitir a possibilidade de que talvez não tenha escolha a não ser implementar uma interface de evento dual. Para obter mais informações sobre interfaces dual, consulte Interfaces Dual e ATL.

O aconselhamento da origem do evento pode ser dividido em três etapas:

Depois de registrar com êxito seu interesse em receber eventos, os métodos na interface de evento do objeto serão chamados de acordo com os eventos disparados pelo objeto fonte. Quando você não precisar mais receber eventos, poderá passar o cookie de volta para o ponto de conexão por meio de IConnectionPoint::Unadvise. Isso interromperá a conexão entre a fonte e o coletor.

Tenha cuidado para evitar ciclos de referência ao manipular eventos.

Confira também

Manipulação de eventos