3,245
社区成员
发帖
与我相关
我的任务
分享
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;
}
}