WebBrowser-besturingsclients delen globale instellingen

Waarschuwing

De buiten gebruik gestelde, niet meer ondersteunde Internet Explorer 11-desktoptoepassing is permanent uitgeschakeld via een Microsoft Edge-update op bepaalde versies van Windows 10. Raadpleeg Veelgestelde vragen over de beëindiging van de desktoptoepassing voor Internet Explorer 11 voor meer informatie.

Dit artikel bevat methoden voor het implementeren van globale instellingen voor het delen van clients voor webbrowserbeheer door de methode OnAmbientProperty van de hostklasse op basis van CWnd te overschrijven.

Oorspronkelijke productversie: Internet Explorer
Origineel KB-nummer: 183412

Symptomen

Alle hosts van het besturingselement Webbrowser delen dezelfde algemene internetinstellingen.

Oplossing

Voor de meeste algemene internetinstellingen is er geen ondersteunde methode voor het automatisch opslaan van een set eigenschappen voor elke WebBrowser-host.

Bepaalde downloadopties, zoals het al dan niet downloaden van ActiveX-besturingselementen, kunnen echter per host worden overschreven en opgegeven.

Status

Dit gedrag is inherent aan het ontwerp van het product.

Meer informatie

Zoals beschreven in de Internet Client SDK (InetSDK), kunnen webbrowserhosts de omgevingseigenschap DISPID_AMBIENT_DLCONTROL implementeren in hun standaard verzendinterface om de algemene instellingen voor downloadopties te overschrijven.

Het WALKALL-voorbeeld in de InetSDK (\InetSDK\Samples\Walkall) demonstreert deze techniek voor een MSHTML-host. Een vergelijkbare methode kan worden gebruikt in webbrowserhosts om hetzelfde effect te bereiken.

MSHTML vraagt ook om een nieuwe gebruikersagent via DISPID_AMBIENT_USERAGENT bij het navigeren naar hyperlinks waarop is geklikt. Deze omgevingseigenschap kan worden overschreven, maar wordt niet gebruikt bij het programmatisch aanroepen van de navigate-methode. Het zorgt er ook niet voor dat de userAgent eigenschap van het navigatorobject van de DOM of het gedrag van de clientInformation wordt gewijzigd. Deze eigenschap weerspiegelt altijd de eigen UserAgent-tekenreeks van Internet Explorer.

Een MFC-host van het besturingselement Webbrowser kan deze omgevingseigenschappen eenvoudig beïnvloeden door de methode OnAmbientProperty van de hostklasse op basis van CWnd te overschrijven:

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

De waarden DISPID_AMBIENT_* en DLCTL_* worden gedefinieerd in Mshtmdid.h (\InetSDK\Include\MSHTMDID. H).

Verwijzingen

Zie Internet Explorer-modus en DevTools voor meer informatie over het ontwikkelen van weboplossingen voor Microsoft Internet Explorer.