PRB : Contrôle WebBrowser Clients partagent des paramètres globaux

Symptômes

Tous les hôtes du contrôle WebBrowser partagent les mêmes paramètres Internet globales.


Les hôtes de contrôle WebBrowser commerciales telles que le navigateur America Online (AOL) sont affectés par ce problème. Par exemple, spécifier une page d’accueil par défaut d’AOL dans les préférences de WEB d’AOL définira la même page d’accueil par défaut pour à la fois AOL et Internet Explorer (IE), même si Internet Explorer est utilisée séparément à partir d’AOL.


Les produits tiers mentionnés dans cet article sont fabriqués par des fournisseurs indépendants de Microsoft ; Nous n’offrons aucune garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.

Résolution

Pour la plupart des paramètres Internet globales, il n’existe aucune méthode prise en charge pour l’enregistrement automatique d’un ensemble de propriétés pour chaque hôte WebBrowser.


Toutefois, certaines options de téléchargement, par exemple si vous souhaitez télécharger ActiveX contrôle ou non, peuvent être substituées et spécifiés sur une base par hôte.

État

Ce comportement est voulu par la conception.

Plus d'informations

Comme indiqué dans Internet Client SDK (InetSDK), les hôtes de WebBrowser peuvent implémenter la propriété ambiante DISPID_AMBIENT_DLCONTROL sur son interface de dispatch par défaut pour remplacer les paramètres globaux pour les options de téléchargement.


WALKALL de la InetSDK (\InetSDK\Samples\Walkall) illustre cette technique pour un hôte MSHTML. Une méthode similaire peut être utilisée dans des hôtes WebBrowser pour obtenir le même effet.


MSHTML également demandera un nouvel agent utilisateur via DISPID_AMBIENT_USERAGENT lors de la navigation pour l’utilisateur clique sur des liens hypertexte. Cette propriété ambiante peut être substituée, mais il n’est pas utilisé lors de l’appel par programme de la méthode Navigate ; Il sera également pas provoquer la propriété userAgent de navigation du DOM objet ou clientInformation n’un comportement à modifier - cette propriété reflète toujours la chaîne UserAgent de Microsoft Internet Explorer propre.


Un hôte MFC du contrôle WebBrowser peut facilement affecter des ces propriétés ambiantes en substituant la méthode OnAmbientProperty de la classe CWnd-hébergement :

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);
}

Valeurs de DLCTL_ et DISPID_AMBIENT_ * sont définies dans Mshtmdid.h (\InetSDK\Include\MSHTMDID. (H).

Références

Pour plus d’informations sur le développement de solutions Web pour Microsoft Internet Explorer, visitez les sites Web de Microsoft à l’adresse suivante :
Propriétés

ID d'article : 183412 - Dernière mise à jour : 8 janv. 2017 - Révision : 1

Commentaires