Os clientes de controle do WebBrowser compartilham configurações globais

Aviso

O aplicativo da área de trabalho desativado e sem suporte do Internet Explorer 11 está programado para ser desativado permanentemente por meio de uma atualização do Microsoft Edge em certas versões do Windows 10. Para obter mais informações, consulte Perguntas frequentes sobre a desativação do aplicativo de área de trabalho do Internet Explorer 11.

Este artigo fornece métodos para implementar configurações globais para compartilhar clientes de controle do WebBrowser substituindo o método OnAmbientProperty da classe baseada em CWnd de hospedagem.

Versão original do produto: Internet Explorer
Número de KB original: 183412

Sintomas

Todos os hosts do controle WebBrowser compartilham as mesmas configurações globais da Internet.

Resolução

Para a maioria das configurações globais da Internet, não há nenhum método com suporte para salvar automaticamente um conjunto de propriedades para cada host WebBrowser.

No entanto, determinadas opções de download, como baixar controles ActiveX ou não, podem ser substituídas e especificadas por host.

Status

Este é o comportamento padrão.

Mais informações

Conforme documentado no InetSDK (Internet Client SDK), os hosts do WebBrowser podem implementar a propriedade ambiente DISPID_AMBIENT_DLCONTROL em sua interface de expedição padrão para substituir as configurações globais para opções de download.

O exemplo WALKALL no InetSDK (\InetSDK\Samples\Walkall) demonstra essa técnica para um host MSHTML. Um método semelhante pode ser usado em hosts WebBrowser para obter o mesmo efeito.

O MSHTML também solicitará um novo agente de usuário por meio de DISPID_AMBIENT_USERAGENT ao navegar para hiperlinks clicados. Essa propriedade ambiente pode ser substituída, mas não é usada ao chamar programaticamente o método Navigate. Isso também não fará com que a userAgent propriedade do objeto navegador do DOM ou o comportamento clientInformation seja alterada - essa propriedade sempre refletirá a cadeia de caracteres UserAgent do próprio Explorer da Internet.

Um host MFC do controle WebBrowser pode afetar facilmente essas propriedades ambientais substituindo o método OnAmbientProperty da classe baseada em CWnd de hospedagem:

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

Os valores DISPID_AMBIENT_* e DLCTL_* são definidos em Mshtmdid.h (\InetSDK\Include\MSHTMDID. H).

Referências

Para obter mais informações sobre como desenvolver soluções baseadas na Web para o Microsoft Internet Explorer, consulte Modo de Explorer da Internet e o DevTools.