在VC对话框程序中,加入一WebBrowser Control, 相当于自己写了一个基于IE内核的浏览器。问题是:在Navigate一个网页后,怎么让它不加载ActiveX并且不运行javascript(禁用js引擎)。
  本人研究了好多关于IE内核编程的东西,但还是没有找到解决方案。欢迎大家一块来讨论这个问题。

解决方案 »

  1.   

    http://www.vckbase.com/document/viewdoc/?id=1486看这篇文章
    STDMETHODIMP CCustomControlSite::XInternetSecurityManager
    ::ProcessUrlAction( /* [in] */ LPCWSTR pwszUrl,
    /* [in] */ DWORD dwAction,
    /* [size_is][out] */ BYTE __RPC_FAR *pPolicy,
    /* [in] */ DWORD cbPolicy,
    /* [in] */ BYTE __RPC_FAR *pContext,
    /* [in] */ DWORD cbContext,
    /* [in] */ DWORD dwFlags,
    /* [in] */ DWORD dwReserved)
    { METHOD_PROLOGUE(CCustomControlSite, InternetSecurityManager) DWORD dwPolicy=URLPOLICY_ALLOW; BOOL bNoActiveX=FALSE;
    BOOL bNoJava=TRUE;
    BOOL bNoScript=FALSE;
    BOOL bCrossData=TRUE; if (dwAction <= URLACTION_ACTIVEX_MAX && dwAction >= URLACTION_ACTIVEX_MIN)
    dwPolicy = bNoActiveX ? URLPOLICY_DISALLOW : URLPOLICY_ALLOW;
    else if ((dwAction <= URLACTION_JAVA_MAX && dwAction >= URLACTION_JAVA_MIN) ||
    URLACTION_HTML_JAVA_RUN == dwAction)
    if (bNoJava)
    dwPolicy = URLPOLICY_JAVA_PROHIBIT;
    else
    return INET_E_DEFAULT_ACTION;
    else if (dwAction <= URLACTION_SCRIPT_MAX && dwAction >= URLACTION_SCRIPT_MIN)
    dwPolicy = bNoScript ? URLPOLICY_DISALLOW : URLPOLICY_ALLOW;
    // !! If the compiler can't find URLACTION_CROSS_DOMAIN_DATA, make sure you are building with
    // !! the latest version of the IE headers -- URLMON.H specifically -- from MSDN Downloads for the 
    // !! Web Workshop or the Platform SDK
    else if (URLACTION_CROSS_DOMAIN_DATA == dwAction)
    dwPolicy = bCrossData ? URLPOLICY_ALLOW : URLPOLICY_DISALLOW;
    else
    return INET_E_DEFAULT_ACTION; if ( cbPolicy >= sizeof (DWORD))
    {
    *(DWORD*) pPolicy = dwPolicy;
    return S_OK;

    else 
    {
    return S_FALSE;
    } }
      

  2.   

    谢谢wangjia184 ,我算是明白了