Eventos COM
Este tópico fornece uma visão geral de pontos de conexão e apresenta a terminologia relacionados a eventos, normalmente usada para descrever os eventos COM.
Pontos de conexão estabeleçam a comunicação bidirecional entre um cliente e um servidor em COM. Com esse mecanismo, um servidor COM pode retornar chamada para um cliente quando algum evento ocorreu. Por exemplo, um servidor (como o Microsoft Internet Explorer) pode elevar um evento para relatar uma alteração (como, por exemplo, uma alteração de título) para o seu programa cliente. O cliente cria um objeto COM interno, denominado um coletor de evento para se preparar para notificações recebidas. Ao receber a notificação, o cliente pode executar as ações associadas ao evento.
O coletor de eventos fornece uma interface para expor métodos de evento relacionado ao servidor. Servidores elevar eventos por chamar esses métodos relacionados a eventos. O cliente implementa a interface do coletor de eventos como uma interface normal do COM. O servidor declara a interface como uma interface de saída; o servidor COM o autor se aplica a fonte na interface na biblioteca de tipos de servidor COM o atributo. O servidor usa definições de interface do coletor de eventos para identificar o coletor e invocar métodos.
Um cliente COM que implementa a interface do coletor de evento é chamado o coletor de eventos ou simplesmente o dissipador. Na ilustração a seguir, o coletor implementa o ISinkEvents interface. O servidor que dispara o evento é chamado de origem.
Modelo de evento de ponto de conexão
Depois que a interface do coletor de eventos é estabelecida, o dissipador deve estar conectado (com fio) para a fonte. O mecanismo de ponto de conexão usa o seguinte protocolo para reunir uma PIA e uma fonte:
O coletor de consultas a um objeto de servidor para o IConnectionPointContainer interface. Se o objeto oferece suporte a pontos de conexão, ele retorna um ponteiro.
O coletor de usando métodos no objeto de recipiente, localiza o IConnectionPoint interface que representa um ponto de conexão específica. Desde que um servidor pode oferecer suporte a várias interfaces de saída, um cliente deve corresponder ao seu coletor para o identificador de interface (IID) de uma interface de ponto de conexão específica.
Tendo obtido o objeto de ponto de conexão correta, as chamadas de coletor IConnectionPoint:: Advise para registrar o seu ponteiro de interface do coletor. O servidor (origem) mantém a conexão (e gera eventos nele) até que o cliente interrompe a conexão chamando IConnectionPoint::Unadvise.
Visual Basic oculta a maioria dos detalhes de pontos de conexão; No entanto, você deve incluir um WithEvents diretiva na declaração do cliente do servidor. No C++, o código do cliente deve consultar e chamar métodos em IConnectionPointContainer e IConnectionPoint. O servidor implementa duas interfaces.
Consulte também
Tarefas
Como: Gerar eventos manipulados por um coletor COM
Como: Manipular eventos gerados por uma fonte COM