Como obter o modelo de objecto WebBrowser de uma frame HTML

Traduções de Artigos Traduções de Artigos
Artigo: 196340 - Ver produtos para os quais este artigo se aplica.
(c) Microsoft Corporation 1998, todos os direitos reservados. Contribuições de Scott Roberts, Microsoft Corporation.
Expandir tudo | Reduzir tudo

Sumário

Este artigo detalhes os anfitriões de controlo do WebBrowser técnica padrão podem utilizar para o modelo de objecto WebBrowser das janelas de frame numa página HTML no interior do controlo de acesso. Este modelo de objecto fornece funcionalidades extra que não é apresentada a janela de pacotes através do modelo de objecto HTML.

Mais Informação

O seguinte código demonstra como aceder modelo do objecto WebBrowser das frames numa página HTML para actualizar o conteúdo de cada pacote.

A parte mais importante do código utiliza o método IOleContainer::EnumObjects do documento HTML do objecto a enumerar incorporações na página. Cada um destes incorporações representa um controlo da página. Consultando a cada objecto de controlo para IWebBrowser2, este código pode determinar se o controlo é um sub-frame. E IWebBrowser2 representa o modelo de objecto WebBrowser; se tiver êxito QueryInterface para esta interface, o resultado é uma referência para o modelo de objecto do 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();
}
controlos de ActiveX Nota hospedados numa página HTML podem utilizar esta técnica de forma semelhante. Em geral, um controlo ActiveX que aceda ao modelo do objecto WebBrowser inseguro não é seguro para processamento de scripts e deve implementar interface IObjectSafety em conformidade para a segurança.

Propriedades

Artigo: 196340 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 196340
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

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