Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O ATL Tutorial demonstra como criar um controle com suporte para pontos de conexão, como adicionar eventos e, em seguida, como implementar o ponto de conexão. ATL implementa pontos de conexão com a IConnectionPointImpl classe.
Para implementar um ponto de conexão, você tem duas opções:
- Implemente sua própria fonte de eventos de saída, adicionando um ponto de conexão ao controle ou objeto.
- Reutilize 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 fazer seu trabalho.
Adicionar um ponto de conexão a um controle ou objeto
Defina um dispinterface no bloco de biblioteca do arquivo
.idl. Se você habilitou o suporte para pontos de conexão quando criou o controle com o ATL Control Wizard, o dispinterface já será criado. Se você não habilitou o suporte para pontos de conexão quando criou o controle, você deve adicionar manualmente um dispinterface para o.idlarquivo. Segue-se um exemplo de uma dispinterface. As interfaces de saída não precisam ser interfaces de despacho, mas muitas linguagens de script, como VBScript e JScript, exigem isso, portanto, este exemplo usa dois dispinterfaces:[ uuid(3233E37D-BCC0-4871-B277-48AE6B61224A), helpstring("Buddy Events") ] dispinterface DBuddyEvents { properties: methods: };Utilize o utilitário
uuidgen.exeou o utilitárioguidgen.exepara gerar um GUID.Adicione o dispinterface como a
[default,source]interface na coclasse para o objeto no arquivo do.idlprojeto. Novamente, se você habilitou o suporte para pontos de conexão quando criou o controle, o Assistente de controle 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
.idlarquivo no exemplo do Circ ATL para obter um exemplo.Use o Modo de Exibição de Classe para adicionar métodos e propriedades à interface do evento. 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 caixa de listagem Interfaces de Origem do Assistente para Implementar Ponto de Conexão, selecione Interfaces do projeto. Se escolheres uma interface para o teu controlo e selecionares OK, tu:
- Gere um arquivo de cabeçalho com uma classe de proxy de evento que implementa o código que fará as chamadas de saída para o evento.
- Adicione uma entrada ao mapa do ponto de conexão.
Você também verá uma lista de todas as bibliotecas de tipos no seu computador. Use apenas uma dessas outras bibliotecas de tipos para definir seu ponto de conexão se 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
.idlficheiro para:- Copiar o dispinterface do ficheiro
.idlpara o objeto de que se está a usar a fonte de eventos. - Use a instrução importlib nessa biblioteca de tipos.
- Copiar o dispinterface do ficheiro