Como identificar os elementos do projeto de controle DHTML
A maioria dos códigos de controle DHTML é exatamente igual à criada para qualquer controle ATL. Para uma compreensão básica do código genérico, confira o Tutorial da ATL e leia as seções Como criar um projeto de ATL e Conceitos básicos de objetos COM da ATL.
Um controle DHTML é semelhante a qualquer controle ATL, exceto:
Além das interfaces regulares que um controle implementa, ele implementa uma interface adicional usada para comunicação entre o código C++ e a interface do usuário HTML. A interface do usuário HTML chama o código C++ usando essa interface.
Ela cria um recurso HTML para a interface do usuário de controle.
Ela dá acesso ao modelo de objeto DHTML por meio da variável de membro
m_spBrowser
, que é um ponteiro inteligente do tipo IWebBrowser2. Use este ponteiro para acessar qualquer parte do modelo de objeto DHTML.
O gráfico a seguir ilustra a relação entre sua DLL, o controle DHTML, o navegador da Web e o recurso HTML.
Observação
Os nomes neste gráfico são espaços reservados. Os nomes do recurso HTML e as interfaces expostas em seu controle se baseiam nos nomes que você atribui no Assistente de Controle da ATL.
Neste gráfico, os elementos são:
Minha DLL A DLL criada usando o Assistente de Projeto da ATL.
Controle DHTML (
m_spBrowser
) O controle DHTML, criado usando o Assistente de Objeto da ATL. Esse controle acessa o objeto do navegador da Web e seus métodos por meio da interface do objeto do navegador da Web,IWebBrowser2
. O controle em si expõe as duas interfaces a seguir, além das outras interfaces padrão necessárias para um controle.IDHCTL1
A interface exposta pelo controle para uso somente pelo contêiner.IDHCTLUI1
A interface de expedição para comunicação entre o código C++ e a interface do usuário HTML. O navegador da Web usa a interface de expedição do controle para exibir o controle. Você pode chamar vários métodos dessa interface de expedição da interface do usuário do controle invocandowindow.external
, seguido pelo nome do método nesta interface de expedição que você deseja invocar. Você acessariawindow.external
de uma marca SCRIPT dentro do HTML que compõe a interface do usuário para esse controle. Para mais informações sobre como invocar métodos externos no arquivo de recurso, confira Chamar código C++ do DHTML.
IDR_CTL1 A ID do recurso HTML. Seu nome de arquivo, nesse caso, é DHCTL1UI.htm. O controle DHTML usa um recurso HTML que contém marcas HTML padrão e comandos de expedição de janela externa que você pode editar usando o editor de Texto.
Navegador da Web O navegador da Web exibe a interface do usuário do controle, com base no HTML no recurso HTML. Um ponteiro para a interface
IWebBrowser2
do navegador da Web está disponível no controle DHTML para permitir o acesso ao modelo de objeto DHTML.
O Assistente de Controle ATL gera um controle com código padrão no recurso HTML e no arquivo .cpp. Você pode compilar e executar o controle conforme gerado pelo assistente e, em seguida, exibir o controle no navegador da Web ou no Contêiner de Teste de Controle ActiveX. A imagem abaixo mostra o controle DHTML da ATL padrão com três botões exibidos no Contêiner de Teste:
Confira Como criar um controle DHTML da ATL para começar a criar um controle DHTML. Confira Como testar propriedades e eventos com o Contêiner de Teste para informações sobre como acessar o Contêiner de Teste.