Como propriedades/métodos de acesso do contêiner de script

Traduções deste artigo Traduções deste artigo
ID do artigo: 188015 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Sumário

Ao hospedar o controle WebBrowser em um aplicativo Visual C++, talvez seja necessário acessar métodos ou propriedades do recipiente de script em uma página da Web. Este artigo descreve como fazer isso implementando a interface IDocHostUIHandler.

Mais Informações

Implementando a interface IDocHostUIHandler, você pode controlar muitos dos recursos interface do usuário do controle WebBrowser em seu aplicativo de hospedagem. IDocHostUIHandler também permite estender o modelo de objeto HTML dinâmico (DHTML) para acessar métodos e propriedades do recipiente dentro de script.

O método GetExternal() do IDocHostUIHandler fornece essa funcionalidade. Quando o script em uma página da Web chama "window.external.yourMethod", o controle WebBrowser chama seu método GetExternal para recuperar um ponteiro para o IDispatch do seu aplicativo de hospedagem. É por esse ponteiro que o controle WebBrowser é capaz de acessar seus métodos e propriedades.

Depois que o controle WebBrowser tiver um ponteiro para o IDispatch do recipiente, em seguida, ele chama IDispatch::GetIDsOfNames() obter DISPID do método ou propriedade chamada de script, yourMethod nesse caso.

Finalmente, as chamadas de controle do WebBrowser IDispatch::Invoke() com o DISPID recuperado do GetIDsOfNames().

Aqui estão as etapas você deve seguir para estender o modelo de objeto DHTML para poder acessar o recipiente métodos e propriedades de script:
  1. Implemente IDocHostUIHandler.
  2. Implemente o método IDocHostUIHandler::GetExternal. Definir o IDispatch parâmetro para que seu contêiner assim:
    STDMETHOD(GetExternal)(IDispatch** ppDispatch)
    {
       // Assumes you inherit from IDispatch
       *ppDispatch = (IDispatch*)this;
       (*ppDispatch)->AddRef();
    
       return S_OK;
    }
    					
  3. Retorne a identificação (DISPID) do seu método ou propriedade de expedição de GetIDsOfNames. Se você tiver adicionado o método ou propriedade utilizando um assistente, isso será feito para você.
  4. Implementar DISPID de seu método ou propriedade em sua implementação de IDispatch:: Invoke assim:
    STDMETHODIMP CAtlBrCon::Invoke(DISPID dispidMember, REFIID riid,
                                   LCID lcid, WORD wFlags,
                                   DISPPARAMS* pDispParams,
                                   VARIANT* pvarResult,
                                   EXCEPINFO* pExcepInfo, UINT* puArgErr)
    {
       switch (dispidMember)
       {
          case DISPID_MYMETHOD_OR_PROPERTY:
             // Do something here
    
          default:
             return E_INVALIDARG;
       }
    
       return S_OK;
    }
    					
  5. Chamar um método ou propriedade do contêiner de script como este:
     <SCRIPT LANGUAGE="VBScript">
        Sub SomeControl_OnClick
           window.external.yourMethod
        End Sub
     </SCRIPT>
    					

Referências

Para obter mais informações sobre as tecnologias abordadas neste artigo, consulte a documentação sobre interfaces de hospedagem avançadas e IDocHostUIHandler no MSDN Online Web Workshop:
http://msdn.microsoft.com/workshop/
(c) Microsoft Corporation 1998, todos os direitos reservados. Contribuições por Scott Roberts, Microsoft Corporation

Propriedades

ID do artigo: 188015 - Última revisão: quarta-feira, 9 de outubro de 2013 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Explorer 4.0 Edição de 128 Bits
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
Palavras-chave: 
kbnosurvey kbarchive kbmt kbfaq kbhowto kbscript kbwebbrowser KB188015 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 188015

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com