Como obter o modelo de objeto WebBrowser de um quadro HTML

Traduções deste artigo Traduções deste artigo
ID do artigo: 196340 - Exibir os produtos aos quais esse artigo se aplica.
(c) Microsoft Corporation 1998, todos os direitos reservados. Contribuições de Scott Roberts, Microsoft Corporation.
Expandir tudo | Recolher tudo

Sumário

Este artigo detalhes os hosts de controle do WebBrowser técnica padrão podem usar para acessar o modelo de objeto WebBrowser de janelas de quadro em uma página HTML dentro do controle. Esse modelo de objeto fornece funcionalidade extra que não seja exposta para a janela quadro através do modelo de objeto HTML.

Mais Informações

O código a seguir demonstra como acessar o modelo de objeto WebBrowser de quadros em uma página HTML para atualizar o conteúdo de cada quadro.

A parte mais importante do código usa o método IOleContainer::EnumObjects do objeto de documento HTML para enumerar objetos incorporados na página. Cada um desses objetos incorporados ao representa um controle na página. Consultando cada objeto de controle para IWebBrowser2, esse código pode determinar se o controle é um sub-frame. E IWebBrowser2 representa o modelo de objeto WebBrowser; se QueryInterface for bem-sucedida para esta interface, o resultado é uma referência para o modelo de objeto WebBrowser.
// Get the IDispatch of the document
LPDISPATCH lpDisp = NULL;
lpDisp = m_webBrowser.GetDocument();

if (lpDisp)
{
   IOleContainer* pContainer;

   // Get the container
   HRESULT hr = lpDisp->QueryInterface(IID_IOleContainer,
                                       (void**)&pContainer);
   lpDisp->Release();

   if (FAILED(hr))
      return hr;

   IEnumUnknown* pEnumerator;

   // Get an enumerator for the frames
   hr = pContainer->EnumObjects(OLECONTF_EMBEDDINGS, &pEnumerator);
   pContainer->Release();

   if (FAILED(hr))
      return hr;

   IUnknown* pUnk;
   ULONG uFetched;

   // Enumerate and refresh all the frames
   for (UINT i = 0; S_OK == pEnumerator->Next(1, &pUnk, &uFetched); i++)
   {
      IWebBrowser2* pBrowser;

      hr = pUnk->QueryInterface(IID_IWebBrowser2, (void**)&pBrowser);
      pUnk->Release();

      if (SUCCEEDED(hr))
      {
         // Refresh the frame
         pBrowser->Refresh();
         pBrowser->Release();
      }
   }

   pEnumerator->Release();
}
Observação os controles ActiveX hospedados em uma página HTML podem usar essa técnica de maneira semelhante. Em geral, um controle ActiveX que acessa o modelo de objeto não seguro WebBrowser não é seguro para script e deve implementar a interface IObjectSafety acordo de segurança.

Propriedades

ID do artigo: 196340 - Última revisão: quarta-feira, 12 de maio de 2004 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Explorer (Programming) 6.0
Palavras-chave: 
kbmt kbfaq kbhowto kbwebbrowser KB196340 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: 196340
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

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