Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Advertencia
Se ha programado la deshabilitación permanente de la aplicación de escritorio retirada y sin soporte de Internet Explorer 11 a través de una actualización de Microsoft Edge en ciertas versiones de Windows 10. Para obtener más información, consulte Preguntas frecuentes sobre la retirada de la aplicación de escritorio de Internet Explorer 11.
En este artículo se proporcionan métodos para implementar la configuración global para compartir clientes de control de WebBrowser reemplazando el método OnAmbientProperty de la clase basada en CWnd de hospedaje.
Versión original del producto: Internet Explorer
Número de KB original: 183412
Síntomas
Todos los hosts del control WebBrowser comparten la misma configuración global de Internet.
Solución
Para la mayoría de la configuración global de Internet, no se admite 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 se van a descargar controles ActiveX o no, se pueden invalidar y especificar por host.
Estado
Este comportamiento es por diseño.
Más información
Como se documenta en el SDK de cliente de Internet (InetSDK), los hosts de WebBrowser pueden implementar la propiedad ambiente de DISPID_AMBIENT_DLCONTROL en su interfaz de distribución predeterminada para invalidar la configuración global para las opciones de descarga.
El ejemplo WALKALL de InetSDK (\InetSDK\Samples\Walkall) muestra esta técnica para un host MSHTML. Se puede usar 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 en los hipervínculos seleccionados. Esta propiedad ambiente se puede invalidar, pero no se usa cuando se llama mediante programación al método Navigate. Tampoco hará que la propiedad del objeto navegador del DOM o userAgent
se modifique; esta propiedad siempre reflejará la propia cadena UserAgent de Internet Explorer.
Un host MFC del control WebBrowser puede afectar fácilmente a estas propiedades ambientales sobrescribiendo el método OnAmbientProperty de la clase hospedadora basada en CWnd.
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);
}
Los valores DISPID_AMBIENT_* y DLCTL_* se definen en Mshtmdid.h
(\InetSDK\Include\MSHTMDID. H).
Referencias
Para obtener más información sobre el desarrollo de soluciones basadas en web para Microsoft Internet Explorer, vea Modo de Internet Explorer y DevTools.