PRB: Clientes de Control WebBrowser compartir configuración Global

Síntomas

Todos los hosts del control WebBrowser comparten la misma configuración global de Internet.


Hosts de control WebBrowser comerciales tales como el navegador de America Online (AOL) se ven afectados por este comportamiento. Por ejemplo, especificar una página principal predeterminada de AOL en Preferencias WWW de AOL establecerá la misma página principal para AOL e Internet Explorer (IE), incluso cuando Internet Explorer se usa por separado desde AOL.


Los productos de terceros aquí descritos están fabricados por proveedores independientes de Microsoft; no ofrecemos ninguna garantía, implícita o de otro tipo, respecto al rendimiento o la confiabilidad de estos productos.

Solución

Para la mayoría de los ajustes de Internet globales, no hay ningún método para guardar automáticamente un conjunto de propiedades para cada host de WebBrowser.


Sin embargo, ciertas opciones de descarga, como si desea descargar ActiveX controla o no, puede reemplazar y especificado por hosts.

Estado

Este comportamiento es por diseño.

Más información

Tal como se documenta en Internet Client SDK (InetSDK), hosts de WebBrowser pueden implementar la propiedad de ambiente DISPID_AMBIENT_DLCONTROL en su interfaz de distribución predeterminada para reemplazar la configuración global para las opciones de descarga.


El ejemplo WALKALL en el InetSDK (\InetSDK\Samples\Walkall) muestra esta técnica para un host MSHTML. Puede utilizarse un método similar en hosts de WebBrowser para lograr el mismo efecto.


MSHTML también pedirá un nuevo agente de usuario a través de DISPID_AMBIENT_USERAGENT al navegar al hacer clic en hipervínculos. Esta propiedad de ambiente se puede reemplazar, pero no se utiliza cuando mediante programación llamando al método Navigate; También no provocará la propiedad userAgent del navegador de DOM comportamiento de objeto o clientInformation alterar, esta propiedad siempre reflejará la cadena UserAgent del Internet Explorer propio.


Un host MFC del control WebBrowser fácilmente puede afectar a estas propiedades de ambiente reemplazando el método OnAmbientProperty de la clase CWnd-según alojamiento:

BOOL CWBHostView::OnAmbientProperty(COleControlSite* pSite,                                    DISPID dispid, VARIANT* pvar)
{
USES_CONVERSION;
// Change download properties - no java, no scripts...
if (dispid == DISPID_AMBIENT_DLCONTROL)
{
pvar->vt = VT_I4;
pvar->lVal = DLCTL_NO_SCRIPTS | DLCTL_NO_JAVA
| DLCTL_NO_RUNACTIVEXCTLS | DLCTL_NO_DLACTIVEXCTLS;

return TRUE;
}

// Change user agent for this web browser host during hyperlinks
if (dispid == DISPID_AMBIENT_USERAGENT)
{
CString strUserAgent("MyWebBrowserHost");

pvar->vt = VT_BSTR;
pvar->bstrVal = ::SysAllocString(T2OLE(strUserAgent));

return TRUE;
}

return CView::OnAmbientProperty(pSite, dispid, pvar);
}

Se definen los valores de DLCTL_ y DISPID_AMBIENT_ * en Mshtmdid.h (\InetSDK\Include\MSHTMDID. (H).

Referencias

Para obtener más información acerca de cómo desarrollar soluciones basadas en Web para Microsoft Internet Explorer, visite los siguientes sitios Web de Microsoft:
Propiedades

Id. de artículo: 183412 - Última revisión: 8 ene. 2017 - Revisión: 1

Comentarios