WebBrowser-Steuerelementclients teilen globale Einstellungen
Wichtig
Die Internet Explorer 11-Desktopanwendung wird für bestimmte Versionen von Windows 10 eingestellt und ab dem 15. Juni 2022 nicht mehr unterstützt.
Sie können mit dem Internet Explorer-Modus in Microsoft Edge weiterhin auf ältere Websites zugreifen, für die Internet Explorer erforderlich ist. Anleitung.
Die Internet Explorer 11-Desktopanwendung wird schrittweise an den schnelleren, sichereren Microsoft Edge-Browser umgeleitet und letztendlich über Windows Update deaktiviert werden. Deaktivieren von IE heute.
Dieser Artikel enthält Methoden zum Implementieren globaler Einstellungen für die Freigabe von WebBrowser-Steuerelementclients durch Überschreiben der OnAmbientProperty-Methode der hostenden CWnd-basierten Klasse.
Ursprüngliche Produktversion: Internet Explorer
Ursprüngliche KB-Nummer: 183412
Problembeschreibung
Alle Hosts des WebBrowser-Steuerelements verwenden die gleichen globalen Interneteinstellungen.
Lösung
Für die meisten globalen Interneteinstellungen gibt es keine unterstützte Methode zum automatischen Speichern eines Eigenschaftensatzes für jeden WebBrowser-Host.
Bestimmte Downloadoptionen, z. B. ob ActiveX Steuerelemente heruntergeladen werden sollen oder nicht, können jedoch auf Hostbasis überschrieben und angegeben werden.
Status
Es handelt sich hierbei um ein beabsichtigtes Verhalten.
Weitere Informationen
Wie im Internet Client SDK (InetSDK) dokumentiert, können WebBrowser-Hosts die DISPID_AMBIENT_DLCONTROL Ambient-Eigenschaft auf ihrer Standardversandschnittstelle implementieren, um die globalen Einstellungen für Downloadoptionen außer Kraft zu setzen.
Das WALKALL-Beispiel im InetSDK (\InetSDK\Samples\Walkall) veranschaulicht diese Technik für einen MSHTML-Host. Eine ähnliche Methode kann in WebBrowser-Hosts verwendet werden, um denselben Effekt zu erzielen.
MSHTML fragt auch über DISPID_AMBIENT_USERAGENT nach einem neuen Benutzer-Agent, wenn sie zu angeklickten Hyperlinks navigiert. Diese Ambient-Eigenschaft kann überschrieben werden, wird aber beim programmgesteuerten Aufrufen der Navigate-Methode nicht verwendet. Sie bewirkt auch nicht, dass die userAgent Eigenschaft des Navigatorobjekts oder des ClientInformation-Verhaltens des DOM geändert wird . Diese Eigenschaft spiegelt immer die userAgent-Zeichenfolge von Internet Explorer wider.
Ein MFC-Host des WebBrowser-Steuerelements kann sich leicht auf diese Umgebungseigenschaften auswirken, indem die OnAmbientProperty-Methode der hostenden CWnd-basierten Klasse überschrieben wird:
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);
}
Die Werte DISPID_AMBIENT_ _ und _*DLCTL_≡ werden in Mshtmdid.h (\InetSDK\Include\MSHTMDID) definiert. H).
References
Weitere Informationen zum Entwickeln webbasierter Lösungen für Microsoft Internet Explorer finden Sie im Internet Explorer-Modus und in den DevTools.