WebBrowser-Steuerelementclients teilen globale Einstellungen

Warnung

Die eingestellte, nicht mehr unterstützte Desktop-Anwendung Internet Explorer 11 wurde durch ein Microsoft Edge-Update in bestimmten Versionen von Windows 10 dauerhaft deaktiviert. Weitere Informationen finden Sie unter Häufig gestellte Fragen zur Einstellung der Desktop-App von Internet Explorer 11.

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

Symptome

Alle Hosts des WebBrowser-Steuerelements verwenden dieselben globalen Interneteinstellungen.

Lösung

Für die meisten globalen Interneteinstellungen gibt es keine unterstützte Methode zum automatischen Speichern eines Satzes von Eigenschaften für jeden WebBrowser-Host.

Bestimmte Downloadoptionen, z. B. ob ActiveX-Steuerelemente heruntergeladen werden sollen oder nicht, können jedoch pro Host ü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 Standardverteilungsschnittstelle implementieren, um die globalen Einstellungen für Downloadoptionen zu überschreiben.

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 nach einem neuen Benutzer-Agent über DISPID_AMBIENT_USERAGENT , wenn Sie zu links navigieren, auf die geklickt wurde. Diese Ambient-Eigenschaft kann überschrieben werden, wird aber nicht beim programmgesteuerten Aufrufen der Navigate-Methode verwendet. Außerdem wird die userAgent Eigenschaft des Navigatorobjekts oder des ClientInformation-Verhaltens des DOM nicht geändert. Diese Eigenschaft spiegelt immer die userAgent-Zeichenfolge des Internets Explorer wider.

Ein MFC-Host des WebBrowser-Steuerelements kann diese Umgebungseigenschaften leicht beeinflussen, 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 unter Internet Explorer Modus und DevTools.