Chamando código C++ do DHTML
Um controle DHTML pode ser hospedado em um contêiner, como o Contêiner de Teste ou o Internet Explorer. Confira Como testar propriedades e eventos com o Contêiner de Teste para informações sobre como acessar o Contêiner de Teste.
O contêiner que hospeda o controle se comunica com ele usando as interfaces normais. O DHTML usa a interface de expedição que termina com "UI" para se comunicar com o código C++ e o recurso HTML. Em Modificando o controle DHTML da ATL, você pode praticar a adição dos métodos a serem chamados por essas diversas interfaces.
Para ver um exemplo de chamada de código C++ por DHTML, crie um controle DHTML usando o Assistente de Controle da ATL e examine o código no arquivo de cabeçalho e no arquivo HTML.
Declarando métodos WebBrowser no arquivo de cabeçalho
Para invocar métodos C++ pela interface do usuário do DHTML, você deve adicionar métodos à interface do usuário do controle. Por exemplo, o arquivo de cabeçalho criado pelo Assistente de Controle da ATL contém o método C++ OnClick
, que é um membro da interface da interface do usuário do controle gerado pelo assistente.
Examine OnClick
no arquivo .h do controle:
STDMETHOD(OnClick)(IDispatch* pdispBody, VARIANT varColor)
O primeiro parâmetro, pdispBody, é um ponteiro para a interface de expedição do objeto do corpo. O segundo parâmetro, varColor, identifica a cor a ser aplicada ao controle.
Chamando código C++ no arquivo HTML
Depois de declarar os métodos WebBrowser no arquivo de cabeçalho, você poderá invocar os métodos pelo arquivo HTML. Observe no arquivo HTML que o Assistente de Controle da ATL insere três métodos de expedição do Windows: três métodos OnClick
que expedem mensagens para alterar a cor da tela de fundo do controle.
Examine um dos métodos no arquivo HTML:
<BUTTON onclick='window.external.OnClick(theBody, "red");'>Red</BUTTON>
No código HTML acima, o método externo da janela, OnClick
, é chamado como parte da marca do botão. O método tem dois parâmetros: theBody
, que faz referência ao corpo do documento HTML, e "red"
, que indica que a cor da tela de fundo do controle será alterada para vermelho quando o botão for clicado. O Red
depois da mara é o rótulo do botão.
Confira Modificando o controle DHTML da ATL para obter mais informações sobre como fornecer seus próprios métodos. Confira Identificando os elementos do projeto de controle DHTML para obter mais informações sobre o arquivo HTML.