Cómo obtener el modelo de objeto WebBrowser de un marco HTML

Seleccione idioma Seleccione idioma
Id. de artículo: 196340 - Ver los productos a los que se aplica este artículo
(c) 1998 Microsoft Corporation, reservados todos los derechos. Contribuciones por Scott Roberts, Microsoft Corporation.
Expandir todo | Contraer todo

Resumen

Este Detalles artículo los hosts de control de WebBrowser técnica estándar pueden utilizar para tener acceso el modelo de objetos de WebBrowser de ventanas de marco en una página HTML dentro del control. Este modelo de objetos proporciona funcionalidad adicional que no está expuesta para la ventana de marco a través del modelo de objetos HTML.

Más información

El código siguiente muestra cómo obtener acceso a WebBrowser Object Model de marcos en una página HTML para actualizar el contenido de cada marco.

La parte más importante del código utiliza el método IOleContainer::EnumObjects del objeto Document de HTML para enumerar las incrustaciones en la página. Cada uno de estas incrustaciones representa un control en la página. Al consultar cada objeto de control de IWebBrowser2, este código puede determinar si el control es un sub-frame. Y IWebBrowser2 representa el modelo de objetos WebBrowser; si QueryInterface es correcta para esta interfaz, el resultado es una referencia al modelo de objetos 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();
}
Nota controles de ActiveX alojados en una página HTML pueden utilizar esta técnica de manera similar. En general, un control ActiveX que tiene acceso el modelo de objeto WebBrowser inseguro no es seguro para secuencias de comandos y debe implementar la interfaz IObjectSafety en consecuencia para la seguridad.

Propiedades

Id. de artículo: 196340 - Última revisión: miércoles, 12 de mayo de 2004 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft Internet Explorer (Programming) 6.0
Palabras clave: 
kbmt kbfaq kbhowto kbwebbrowser KB196340 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 196340
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

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