Webbrowser控件 怎么样禁用ActiveX 在VC对话框程序中,加入一WebBrowser Control, 相当于自己写了一个基于IE内核的浏览器。问题是:在Navigate一个网页后,怎么让它不加载ActiveX并且不运行javascript(禁用js引擎)。 本人研究了好多关于IE内核编程的东西,但还是没有找到解决方案。欢迎大家一块来讨论这个问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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; } } 谢谢wangjia184 ,我算是明白了 单步调试总进入disassembly 请问下程序为什么每次都记住了我上次关闭时的状态? 关于vc操纵word时的各种函数的说明,有没有这方面的资料呀? 我要在一个CArray中改变一个值要用什么函数 从BCB中转到VC的新手,请大家推荐一些学习VC的资料和信息! SOS!!关于程序国际化问题,中文写的程序在日文系统下乱码 钩子函数对桌面和任务栏无效!!! 关于SMTP的身份验证问题 变量和内存是关系??? 怎样让ActiveX控件随IE窗口的大小改变而改变? 结构体转换为cstring "::","->","."都是什么意思
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;
} }