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

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
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
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: (c) Microsoft Corporation 1998, todos os direitos reservados. Contribuições por Scott Roberts, Microsoft Corporation

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 188015 - Última Revisão: 10/09/2013 17:36:41 - Revisão: 2.1

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

  • kbnosurvey kbarchive kbmt kbfaq kbhowto kbscript kbwebbrowser KB188015 KbMtpt
Comentários
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)