Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Tutorial da ATL demonstra como criar um controle com suporte para pontos de conexão, como adicionar eventos e como implementar o ponto de conexão. A ATL implementa pontos de conexão com a IConnectionPointImpl classe.
Para implementar um ponto de conexão, você tem duas opções:
- Implementar sua própria origem do evento de saída, adicionando um ponto de conexão ao controle ou objeto.
- Reutilizar uma interface de ponto de conexão definida em outra biblioteca de tipos.
Em ambos os casos, o Assistente para Implementar Ponto de Conexão usa uma biblioteca de tipos para realizar seu trabalho.
Adicionar um ponto de conexão a um controle ou objeto
Defina uma dispinterface no bloco de biblioteca do arquivo
.idl. Se você habilitou o suporte para pontos de conexão quando criou o controle com o Assistente de Controle ATL, a dispinterface já estará criada. Se você não habilitou o suporte para pontos de conexão ao criar o controle, deverá adicionar manualmente uma dispinterface ao.idlarquivo. O seguinte é um exemplo de uma dispinterface. As interfaces de saída não precisam ser interfaces de expedição, mas muitas linguagens de script, como VBScript e JScript, exigem isso. Portanto, este exemplo usa duas dispinterfaces:[ uuid(3233E37D-BCC0-4871-B277-48AE6B61224A), helpstring("Buddy Events") ] dispinterface DBuddyEvents { properties: methods: };Use o utilitário
uuidgen.exeouguidgen.exepara gerar um GUID.Adicione a dispinterface como uma interface
[default,source]na coclass para o objeto no arquivo.idldo projeto. Novamente, se você habilitou o suporte para pontos de conexão quando criou o controle, o Assistente de Controle da ATL criará a[default,source]entrada. Para adicionar manualmente esta entrada, adicione a linha em negrito:coclass Buddy { [default] interface IBuddy; [default,source] dispinterface DBuddyEvents; };Consulte o arquivo
.idlno exemplo Circ ATL para obter um exemplo.Use a Visualização de Classe para adicionar métodos e propriedades à interface de eventos. Clique com o botão direito do mouse na classe no Modo de Exibição de Classe, aponte para Adicionar no menu de atalho e selecione Adicionar Ponto de Conexão.
Na lista de Interfaces de Origem do Assistente para Implementar Ponto de Conexão, selecione as interfaces do projeto. Se você escolher uma interface para o controle e selecionar OK, você:
- Gerar um arquivo de cabeçalho com uma classe de proxy de evento que implemente o código que fará as chamadas de saída para o evento.
- Adicionar uma entrada ao mapa de pontos de conexão.
Você também verá uma lista de todas as bibliotecas de tipos em seu computador. Use apenas uma dessas outras bibliotecas de tipos para definir o ponto de conexão se você quiser implementar exatamente a mesma interface de saída encontrada em outra biblioteca de tipos.
Reutilizar uma interface de ponto de conexão definida em outra biblioteca de tipos
No Modo de Exibição de Classe, clique com o botão direito do mouse em uma classe que implementa uma
BEGIN_COM_MAPmacro, aponte para Adicionar no menu de atalho e selecione Adicionar Ponto de Conexão.No Assistente para Implementar Ponto de Conexão, selecione uma biblioteca de tipos e uma interface na biblioteca de tipos e selecione Adicionar.
Edite o arquivo
.idlpara:- Copiar a dispinterface do arquivo
.idlpara o objeto cuja fonte de evento está sendo usada. - Use a instrução importlib nessa biblioteca de tipos.
- Copiar a dispinterface do arquivo