Compartilhar via


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.

Diagram of the elements of a DHTML control project.

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 invocando window.external, seguido pelo nome do método nesta interface de expedição que você deseja invocar. Você acessaria window.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:

ATL DHTML control.

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.

Confira também

Suporte para controle DHTML