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 sobre a implementação de configurações globais para compartilhar clientes de controle WebBrowser substituindo o método OnAmbientProperty da classe baseada em CWnd de hospedagem.
Versão original do produto: Internet Explorer
Número original do KB: 183412
Todos os hosts do controle WebBrowser compartilham as mesmas configurações globais da Internet.
Para a maioria das configurações globais da Internet, não há nenhum método suportado para salvar automaticamente um conjunto de propriedades para cada host WebBrowser.
No entanto, determinadas opções de download, como baixar ou não controles ActiveX, podem ser substituídas e especificadas por host.
Este comportamento ocorre por design.
Conforme documentado no SDK do cliente da Internet (InetSDK), os hosts do navegador da Web podem implementar a propriedade DISPID_AMBIENT_DLCONTROL ambient em sua interface de expedição padrão para substituir as configurações globais das 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 DISPID_AMBIENT_USERAGENT ao navegar para hiperlinks clicados. Essa propriedade de 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 de navegador do DOM ou o comportamento clientInformation seja alterado - essa propriedade sempre refletirá a própria cadeia de caracteres UserAgent do Internet Explorer.
Um host MFC do controle WebBrowser pode afetar facilmente essas propriedades de ambiente 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).
Para obter mais informações sobre o desenvolvimento de soluções baseadas na Web para o Microsoft Internet Explorer, consulte o modo Internet Explorer e o DevTools.