windows-nt/Source/XPSP1/NT/shell/inc/inetsmgr.h
2020-09-26 16:20:57 +08:00

66 lines
2 KiB
C++

#if !defined(_INETSMGR_H_)
#define _INETSMGR_H_
// whoever inherits this class must implement _IsSafeSite
class CInternetSecurityMgrImpl : public IInternetSecurityManager
{
public:
// *** IUnknown ***
// (client must provide!)
// *** IInternetSecurityManager methods ***
virtual STDMETHODIMP MapUrlToZone(LPCWSTR pwszUrl, DWORD *pdwZone, DWORD dwReserved)
{
return INET_E_DEFAULT_ACTION;
}
virtual STDMETHODIMP GetSecurityId(LPCWSTR pwszUrl, BYTE* pbSecurityId, DWORD *pcbSecurityId, DWORD_PTR dwReserved)
{
return INET_E_DEFAULT_ACTION;
}
virtual STDMETHODIMP ProcessUrlAction(LPCWSTR pwszUrl, DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy,
BYTE *pContext, DWORD cbContext, DWORD dwFlags, DWORD dwReserved)
{
HRESULT hres = INET_E_DEFAULT_ACTION;
if (_IsSafeUrl(pwszUrl))
{
if (cbPolicy >= SIZEOF(DWORD))
{
*(DWORD *)pPolicy = URLPOLICY_ALLOW;
hres = S_OK;
}
else
hres = S_FALSE;
}
return hres;
}
virtual STDMETHODIMP QueryCustomPolicy(LPCWSTR pwszUrl, REFGUID guidKey, BYTE **ppPolicy, DWORD *pcbPolicy,
BYTE *pContext, DWORD cbContext, DWORD dwReserved)
{
return INET_E_DEFAULT_ACTION;
}
virtual STDMETHODIMP SetSecuritySite(IInternetSecurityMgrSite *pSite)
{
return INET_E_DEFAULT_ACTION;
}
virtual STDMETHODIMP GetSecuritySite(IInternetSecurityMgrSite **ppSite)
{
return INET_E_DEFAULT_ACTION;
}
virtual STDMETHODIMP SetZoneMapping(DWORD dwZone, LPCWSTR lpszPattern, DWORD dwFlags)
{
return INET_E_DEFAULT_ACTION;
}
virtual STDMETHODIMP GetZoneMappings(DWORD dwZone, IEnumString **ppEnumString, DWORD dwFlags)
{
return INET_E_DEFAULT_ACTION;
}
protected:
virtual BOOL _IsSafeUrl(LPCWSTR pwszUrl) = 0;
};
#endif