Compartilhar via


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.

Confira também

Suporte para controle DHTML