37 L"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\";
39 L"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap";
41 L"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains";
114 static const WCHAR wszZoneMapProtocolKey[] =
115 L"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\ProtocolDefaults";
119 ERR(
"Could not open key %s\n",
debugstr_w(wszZoneMapProtocolKey));
131 ERR(
"Could not open key %s\n",
debugstr_w(wszZoneMapProtocolKey));
190 if (
ptr ==
str || implicit_wildcard) {
195 }
else if(implicit_wildcard &&
str_len > pattern_len) {
229 TRACE(
"No match found\n");
255 WARN(
"Unexpected value type %ld for value %s, expected REG_DWORD\n",
type,
debugstr_w(
L"*"));
289 DWORD subdomain_count, subdomain_len;
302 if(subdomain_count) {
307 subdomain =
malloc((subdomain_len + 1) *
sizeof(
WCHAR));
320 for(
i = 0;
i < subdomain_count; ++
i) {
322 const WCHAR *sub_matched;
337 ERR(
"Unable to open subdomain key %s of %s: %ld\n",
debugstr_w(subdomain),
346 check_domain =
FALSE;
389 DWORD domain_count, domain_len,
i;
396 WARN(
"Failed to retrieve information about key\n");
407 for(
i = 0;
i < domain_count; ++
i) {
433 hres = IUri_GetScheme(
uri, &scheme_type);
452 *
zone = URLZONE_INVALID;
494 *
zone = URLZONE_INVALID;
531 *
zone = URLZONE_LOCAL_MACHINE;
535 *
zone = URLZONE_INTERNET;
539 FIXME(
"unsupported drive type %d\n",
type);
545 if(*
zone == URLZONE_INVALID) {
561 *
zone = URLZONE_INVALID;
574 hres =
CreateUri(secur_url, Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME, 0, &secur_uri);
581 IUri_Release(secur_uri);
586 *ret_url = secur_url;
602 IUri_Release(secur_uri);
604 *ret_uri = secur_uri;
619 WARN(
"RegOpenKey failed\n");
634 case URLACTION_SCRIPT_OVERRIDE_SAFETY:
635 case URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY:
641 case URLZONEREG_DEFAULT:
642 case URLZONEREG_HKCU:
645 case URLZONEREG_HKLM:
649 WARN(
"Unknown URLZONEREG: %d\n", zone_reg);
655 WCHAR action_str[16];
666 ERR(
"RegQueryValue failed: %ld\n",
res);
673 if(
FAILED(
hres) && zone_reg == URLZONEREG_DEFAULT)
685 if(
zone == URLZONE_INVALID)
688 hres = IUri_GetScheme(
uri, &scheme_type);
696 hres = IUri_GetDisplayUri(
uri, &display_uri);
702 if(
len+
sizeof(
DWORD) > *secid_len) {
713 DWORD host_len, scheme_len;
735 len = host_len+scheme_len+
sizeof(
BYTE);
737 if(
len+
sizeof(
DWORD) > *secid_len) {
773 hres =
CreateUri(secur_url, Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME, 0, &
uri);
795 IUri_Release(secur_uri);
838 IInternetSecurityManagerEx2_AddRef(iface);
862 IInternetSecurityMgrSite_Release(
This->mgrsite);
863 if(
This->custom_manager)
864 IInternetSecurityManager_Release(
This->custom_manager);
882 IInternetSecurityMgrSite_Release(
This->mgrsite);
884 if(
This->custom_manager) {
885 IInternetSecurityManager_Release(
This->custom_manager);
889 This->mgrsite = pSite;
895 IInternetSecurityMgrSite_AddRef(pSite);
897 hres = IInternetSecurityMgrSite_QueryInterface(pSite, &IID_IServiceProvider,
900 IServiceProvider_QueryService(servprov, &SID_SInternetSecurityManager,
901 &IID_IInternetSecurityManager, (
void**)&
This->custom_manager);
902 IServiceProvider_Release(servprov);
920 IInternetSecurityMgrSite_AddRef(
This->mgrsite);
922 *ppSite =
This->mgrsite;
935 if(
This->custom_manager) {
936 hres = IInternetSecurityManager_MapUrlToZone(
This->custom_manager,
938 if(
hres != INET_E_DEFAULT_ACTION)
943 *pdwZone = URLZONE_INVALID;
958 TRACE(
"(%p)->(%s %p %p %08Ix)\n", iface,
debugstr_w(pwszUrl), pbSecurityId,
961 if(
This->custom_manager) {
964 hres = IInternetSecurityManager_GetSecurityId(
This->custom_manager,
965 pwszUrl, pbSecurityId, pcbSecurityId,
dwReserved);
966 if(
hres != INET_E_DEFAULT_ACTION)
970 if(!pwszUrl || !pbSecurityId || !pcbSecurityId)
974 FIXME(
"dwReserved is not supported\n");
990 TRACE(
"(%p)->(%s %08lx %p %08lx %p %08lx %08lx %08lx)\n", iface,
debugstr_w(pwszUrl), dwAction,
993 if(
This->custom_manager) {
994 hres = IInternetSecurityManager_ProcessUrlAction(
This->custom_manager, pwszUrl, dwAction,
996 if(
hres != INET_E_DEFAULT_ACTION)
1001 FIXME(
"Unsupported arguments\n");
1015 if(cbPolicy >=
sizeof(
DWORD))
1018 switch(GetUrlPolicyPermissions(
policy)) {
1019 case URLPOLICY_ALLOW:
1020 case URLPOLICY_CHANNEL_SOFTDIST_PRECACHE:
1022 case URLPOLICY_DISALLOW:
1024 case URLPOLICY_QUERY:
1025 FIXME(
"URLPOLICY_QUERY not implemented\n");
1045 ppPolicy, pcbPolicy, pContext, cbContext,
dwReserved);
1047 if(
This->custom_manager) {
1048 hres = IInternetSecurityManager_QueryCustomPolicy(
This->custom_manager, pwszUrl, guidKey,
1049 ppPolicy, pcbPolicy, pContext, cbContext,
dwReserved);
1050 if(
hres != INET_E_DEFAULT_ACTION)
1066 if(
This->custom_manager) {
1067 hres = IInternetSecurityManager_SetZoneMapping(
This->custom_manager, dwZone,
1069 if(
hres != INET_E_DEFAULT_ACTION)
1073 FIXME(
"Default action is not implemented\n");
1083 TRACE(
"(%p)->(%08lx %p %08lx)\n", iface, dwZone, ppenumString,
dwFlags);
1085 if(
This->custom_manager) {
1086 hres = IInternetSecurityManager_GetZoneMappings(
This->custom_manager, dwZone,
1088 if(
hres != INET_E_DEFAULT_ACTION)
1092 FIXME(
"Default action is not implemented\n");
1101 FIXME(
"(%p)->(%s %08lx %p %ld %p %ld %08lx %08lx %p) stub\n",
This,
debugstr_w(pwszUrl), dwAction, pPolicy, cbPolicy,
1111 TRACE(
"(%p)->(%p %p %08lx %p %p)\n",
This, pUri, pdwZone,
dwFlags, ppwszMappedUrl, pdwOutFlags);
1113 if(
This->custom_manager) {
1117 hres = IInternetSecurityManager_QueryInterface(
This->custom_manager, &IID_IInternetSecurityManagerEx2,
1120 hres = IInternetSecurityManagerEx2_MapUrlToZoneEx2(sec_mgr2, pUri, pdwZone,
dwFlags, ppwszMappedUrl, pdwOutFlags);
1121 IInternetSecurityManagerEx2_Release(sec_mgr2);
1125 hres = IUri_GetDisplayUri(pUri, &
url);
1129 hres = IInternetSecurityManager_MapUrlToZone(
This->custom_manager,
url, pdwZone,
dwFlags);
1133 if(
hres != INET_E_DEFAULT_ACTION)
1141 *pdwZone = URLZONE_INVALID;
1156 FIXME(
"(%p)->(%p %08lx %p %ld %p %ld %08lx %08Ix %p) stub\n",
This, pUri, dwAction, pPolicy,
1165 TRACE(
"(%p)->(%p %p %p %08Ix) stub\n",
This, pUri, pbSecurityId, pcbSecurityId,
dwReserved);
1168 FIXME(
"dwReserved is not supported yet\n");
1170 if(!pUri || !pcbSecurityId || !pbSecurityId)
1181 FIXME(
"(%p)->(%p %s %p %p %p %ld %08Ix) stub\n",
This, pUri,
debugstr_guid(guidKey), ppPolicy, pcbPolicy,
1210 TRACE(
"(%p,%p)\n",pUnkOuter,ppobj);
1255 DWORD allocated = 6;
1276 if (
used == allocated) {
1311 if(!
This || !ppvObject)
1315 TRACE(
"(%p)->(IID_IUnknown %p)\n",
This, ppvObject);
1317 TRACE(
"(%p)->(IID_InternetZoneManager %p)\n",
This, ppvObject);
1319 TRACE(
"(%p)->(IID_InternetZoneManagerEx %p)\n",
This, ppvObject);
1321 TRACE(
"(%p)->(IID_InternetZoneManagerEx2 %p)\n",
This, ppvObject);
1331 IInternetZoneManagerEx2_AddRef(iface);
1343 TRACE(
"(%p)->(ref before=%lu)\n",
This, refCount - 1);
1356 TRACE(
"(%p)->(ref before=%lu)\n",
This, refCount + 1);
1373 ZONEATTRIBUTES* pZoneAttributes)
1380 TRACE(
"(%p)->(%ld %p)\n",
This, dwZone, pZoneAttributes);
1382 if (!pZoneAttributes)
1391 TRACE(
"Zone %ld not in HKLM\n", dwZone);
1394 get_string_from_reg(hcu, hklm,
L"Description", pZoneAttributes->szDescription, MAX_ZONE_DESCRIPTION);
1398 get_dword_from_reg(hcu, hklm,
L"RecommendedLevel", &pZoneAttributes->dwTemplateRecommended);
1411 ZONEATTRIBUTES* pZoneAttributes)
1417 TRACE(
"(%p)->(%ld %p)\n",
This, dwZone, pZoneAttributes);
1419 if (!pZoneAttributes)
1428 (
lstrlenW(pZoneAttributes->szDisplayName)+1)*
sizeof(
WCHAR));
1431 (
lstrlenW(pZoneAttributes->szDescription)+1)*
sizeof(
WCHAR));
1437 (
const BYTE*) &pZoneAttributes->dwTemplateMinLevel,
sizeof(
DWORD));
1440 (
const BYTE*) &pZoneAttributes->dwTemplateCurrentLevel,
sizeof(
DWORD));
1443 (
const BYTE*) &pZoneAttributes->dwTemplateRecommended,
sizeof(
DWORD));
1459 URLZONEREG ulrZoneReg)
1462 ppPolicy, pcbPolicy, ulrZoneReg);
1474 URLZONEREG ulrZoneReg)
1476 FIXME(
"(%p)->(%08lx %s %p %08lx %08x) stub\n", iface, dwZone,
debugstr_guid(guidKey),
1477 ppPolicy, cbPolicy, ulrZoneReg);
1487 TRACE(
"(%p)->(%ld %08lx %p %ld %d)\n", iface, dwZone, dwAction, pPolicy,
1488 cbPolicy, urlZoneReg);
1504 URLZONEREG urlZoneReg)
1506 FIXME(
"(%p)->(%08lx %08lx %p %08lx %08x) stub\n", iface, dwZone, dwAction, pPolicy,
1507 cbPolicy, urlZoneReg);
1519 DWORD dwPromptFlags)
1535 FIXME(
"(%p)->(%08lx %s %s %08lx) stub\n", iface, dwAction,
debugstr_w(pwszUrl),
1551 DWORD new_map_count;
1555 if (!pdwEnum || !pdwCount || (
dwFlags != 0))
1564 for (
i = 0;
i <
This->zonemap_count;
i++) {
1565 if (
This->zonemaps && !
This->zonemaps[
i]) {
1568 *pdwCount =
data[0];
1574 new_map_count =
This->zonemaps ?
This->zonemap_count * 2 : 2;
1580 This->zonemaps = new_maps;
1581 This->zonemap_count = new_map_count;
1584 *pdwCount =
data[0];
1599 TRACE(
"(%p)->(0x%08lx, %ld, %p)\n",
This, dwEnum, dwIndex, pdwZone);
1602 if (dwEnum < This->zonemap_count) {
1603 if ((
data =
This->zonemaps[dwEnum])) {
1604 if (dwIndex <
data[0]) {
1605 *pdwZone =
data[dwIndex + 1];
1622 TRACE(
"(%p)->(0x%08lx)\n",
This, dwEnum);
1624 if (dwEnum < This->zonemap_count) {
1625 if ((
data =
This->zonemaps[dwEnum])) {
1642 FIXME(
"(%p)->(%08lx %08lx %08lx) stub\n", iface, dwTemplate, dwZone,
dwReserved);
1654 URLZONEREG urlZoneReg,
1657 TRACE(
"(%p)->(%ld, 0x%lx, %p, %ld, %d, 0x%lx)\n", iface, dwZone,
1658 dwAction, pPolicy, cbPolicy, urlZoneReg,
dwFlags);
1677 URLZONEREG urlZoneReg,
1680 FIXME(
"(%p)->(%ld, 0x%lx, %p, %ld, %d, 0x%lx) stub\n", iface, dwZone, dwAction, pPolicy,
1681 cbPolicy, urlZoneReg,
dwFlags);
1690 ZONEATTRIBUTES* pZoneAttributes,
1693 TRACE(
"(%p)->(%ld, %p, 0x%lx)\n", iface, dwZone, pZoneAttributes,
dwFlags);
1698 return IInternetZoneManagerEx2_GetZoneAttributes(iface, dwZone, pZoneAttributes);
1707 BOOL fRespectPolicy,
1709 BOOL *pfPolicyEncountered)
1711 FIXME(
"(%p)->(%ld, %d, %p, %p) stub\n", iface, dwZoneIndex, fRespectPolicy,
1712 pdwState, pfPolicyEncountered);
1714 *pdwState = SECURITY_IE_STATE_GREEN;
1716 if (pfPolicyEncountered)
1717 *pfPolicyEncountered =
FALSE;
1726 BOOL fRespectPolicy,
1728 BOOL *pfPolicyEncountered,
1731 FIXME(
"(%p)->(%d, %p, %p, %d) stub\n", iface, fRespectPolicy, pdwState,
1732 pfPolicyEncountered, fNoCache);
1734 *pdwState = SECURITY_IE_STATE_GREEN;
1736 if (pfPolicyEncountered)
1737 *pfPolicyEncountered =
FALSE;
1747 FIXME(
"(%p) stub\n", iface);
1785 TRACE(
"(%p %p)\n", pUnkOuter, ppobj);
1788 *ppobj = &
ret->IInternetZoneManagerEx2_iface;
1805 FIXME(
"pSP not supported\n");
1853 parse_hres = IInternetProtocolInfo_ParseUrl(
protocol_info,
url, PARSE_SECURITY_URL, 0, new_url,
1865 url = alloc_url = new_url;
1882 parse_hres = IInternetProtocolInfo_ParseUrl(
protocol_info,
url, PARSE_SECURITY_DOMAIN, 0,
1889 parse_hres = IInternetProtocolInfo_ParseUrl(
protocol_info,
url, PARSE_SECURITY_DOMAIN, 0, new_url,
1903 url = alloc_url = new_url;
1946 if(psuAction != PSU_SECURITY_URL_ONLY) {
1966 WARN(
"UrlGetPart failed: %08lx\n",
hres);
1970 secure_url = new_url;
1975 *ppwzSecUrl = secure_url;
1991 if(!pUri || !ppSecUri)
1994 hres = IUri_GetDisplayUri(pUri, &secure_uri);
2004 hres = IUri_GetScheme(pUri, (
DWORD*)&scheme_type);
2006 const WCHAR *tmp = ret_url;
2010 if(*tmp !=
'/' || *(tmp+1) !=
'/')
2015 hres =
CreateUri(ret_url, Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME, 0, ppSecUri);
2036 static BOOL esc_initialized, esc_enabled;
2040 if(!esc_initialized) {
2050 esc_initialized =
TRUE;
WINBASEAPI _Check_return_ _Out_ AppPolicyProcessTerminationMethod * policy
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
void *WINAPI CoTaskMemAlloc(SIZE_T size)
void *WINAPI CoTaskMemRealloc(void *ptr, SIZE_T size)
void WINAPI CoTaskMemFree(void *ptr)
#define WideCharToMultiByte
static void cleanup(void)
UINT WINAPI GetDriveTypeW(IN LPCWSTR lpRootPathName)
HRESULT WINAPI ParseURLW(const WCHAR *url, PARSEDURLW *result)
HRESULT WINAPI UrlGetPartW(const WCHAR *url, WCHAR *out, DWORD *out_len, DWORD part, DWORD flags)
_ACRTIMP void *__cdecl _recalloc(void *, size_t, size_t) __WINE_ALLOC_SIZE(2
_ACRTIMP __msvcrt_long __cdecl wcstol(const wchar_t *, wchar_t **, int)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
static HRESULT WINAPI ZoneMgrImpl_GetIESecurityState(IInternetZoneManagerEx2 *iface, BOOL fRespectPolicy, LPDWORD pdwState, BOOL *pfPolicyEncountered, BOOL fNoCache)
static ULONG WINAPI SecManagerImpl_AddRef(IInternetSecurityManagerEx2 *iface)
static ULONG WINAPI ZoneMgrImpl_Release(IInternetZoneManagerEx2 *iface)
static HRESULT WINAPI SecManagerImpl_GetSecurityIdEx2(IInternetSecurityManagerEx2 *iface, IUri *pUri, BYTE *pbSecurityId, DWORD *pcbSecurityId, DWORD_PTR dwReserved)
static HRESULT get_zone_from_domains(IUri *uri, DWORD *zone)
static HRESULT WINAPI ZoneMgrImpl_CopyTemplatePoliciesToZone(IInternetZoneManagerEx2 *iface, DWORD dwTemplate, DWORD dwZone, DWORD dwReserved)
static HRESULT WINAPI ZoneMgrImpl_DestroyZoneEnumerator(IInternetZoneManagerEx2 *iface, DWORD dwEnum)
static ULONG WINAPI ZoneMgrImpl_AddRef(IInternetZoneManagerEx2 *iface)
static HRESULT WINAPI ZoneMgrImpl_GetZoneCustomPolicy(IInternetZoneManagerEx2 *iface, DWORD dwZone, REFGUID guidKey, BYTE **ppPolicy, DWORD *pcbPolicy, URLZONEREG ulrZoneReg)
HRESULT ZoneMgrImpl_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
static LPDWORD build_zonemap_from_reg(void)
static HRESULT map_security_uri_to_zone(IUri *uri, DWORD *zone)
static const WCHAR wszZonesKey[]
static HRESULT WINAPI SecManagerImpl_SetZoneMapping(IInternetSecurityManagerEx2 *iface, DWORD dwZone, LPCWSTR pwszPattern, DWORD dwFlags)
static HRESULT map_uri_to_zone(IUri *uri, DWORD *zone, IUri **ret_uri)
BOOL WINAPI IsInternetESCEnabledLocal(void)
static HRESULT WINAPI ZoneMgrImpl_FixInsecureSettings(IInternetZoneManagerEx2 *iface)
static HRESULT WINAPI ZoneMgrImpl_GetZoneAttributes(IInternetZoneManagerEx2 *iface, DWORD dwZone, ZONEATTRIBUTES *pZoneAttributes)
static const WCHAR wszZoneMapDomainsKey[]
static BOOL is_drive_path(const WCHAR *path)
static HRESULT WINAPI SecManagerImpl_GetSecuritySite(IInternetSecurityManagerEx2 *iface, IInternetSecurityMgrSite **ppSite)
static HRESULT search_domain_for_zone(HKEY domains, LPCWSTR domain, DWORD domain_len, LPCWSTR schema, LPCWSTR host, DWORD host_len, DWORD *zone)
static BOOL matches_domain_pattern(LPCWSTR pattern, LPCWSTR str, BOOL implicit_wildcard, LPCWSTR *matched)
static HRESULT WINAPI SecManagerImpl_ProcessUrlActionEx2(IInternetSecurityManagerEx2 *iface, IUri *pUri, DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy, BYTE *pContext, DWORD cbContext, DWORD dwFlags, DWORD_PTR dwReserved, DWORD *pdwOutFlags)
static HRESULT WINAPI SecManagerImpl_ProcessUrlAction(IInternetSecurityManagerEx2 *iface, LPCWSTR pwszUrl, DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy, BYTE *pContext, DWORD cbContext, DWORD dwFlags, DWORD dwReserved)
static HRESULT WINAPI ZoneMgrImpl_GetZoneAttributesEx(IInternetZoneManagerEx2 *iface, DWORD dwZone, ZONEATTRIBUTES *pZoneAttributes, DWORD dwFlags)
static HRESULT WINAPI ZoneMgrImpl_CreateZoneEnumerator(IInternetZoneManagerEx2 *iface, DWORD *pdwEnum, DWORD *pdwCount, DWORD dwFlags)
static HRESULT WINAPI ZoneMgrImpl_PromptAction(IInternetZoneManagerEx2 *iface, DWORD dwAction, HWND hwndParent, LPCWSTR pwszUrl, LPCWSTR pwszText, DWORD dwPromptFlags)
HRESULT WINAPI CoInternetCreateZoneManager(IServiceProvider *pSP, IInternetZoneManager **ppZM, DWORD dwReserved)
static HRESULT get_zone_from_reg(LPCWSTR schema, DWORD *zone)
static HRESULT WINAPI ZoneMgrImpl_SetZoneActionPolicyEx(IInternetZoneManagerEx2 *iface, DWORD dwZone, DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy, URLZONEREG urlZoneReg, DWORD dwFlags)
static HRESULT WINAPI SecManagerImpl_QueryInterface(IInternetSecurityManagerEx2 *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI ZoneMgrImpl_LogAction(IInternetZoneManagerEx2 *iface, DWORD dwAction, LPCWSTR pwszUrl, LPCWSTR pwszText, DWORD dwLogFlags)
static HRESULT WINAPI SecManagerImpl_MapUrlToZone(IInternetSecurityManagerEx2 *iface, LPCWSTR pwszUrl, DWORD *pdwZone, DWORD dwFlags)
static HRESULT search_for_domain_mapping(HKEY domains, LPCWSTR schema, LPCWSTR host, DWORD host_len, DWORD *zone)
static HRESULT WINAPI SecManagerImpl_SetSecuritySite(IInternetSecurityManagerEx2 *iface, IInternetSecurityMgrSite *pSite)
static BOOL is_hierarchical_scheme(URL_SCHEME type)
static HRESULT parse_security_url(const WCHAR *url, PSUACTION action, WCHAR **result)
HRESULT WINAPI CoInternetGetSecurityUrlEx(IUri *pUri, IUri **ppSecUri, PSUACTION psuAction, DWORD_PTR dwReserved)
static HRESULT WINAPI SecManagerImpl_QueryCustomPolicy(IInternetSecurityManagerEx2 *iface, LPCWSTR pwszUrl, REFGUID guidKey, BYTE **ppPolicy, DWORD *pcbPolicy, BYTE *pContext, DWORD cbContext, DWORD dwReserved)
static const WCHAR zone_map_keyW[]
static HRESULT WINAPI ZoneMgrImpl_GetZoneSecurityState(IInternetZoneManagerEx2 *iface, DWORD dwZoneIndex, BOOL fRespectPolicy, LPDWORD pdwState, BOOL *pfPolicyEncountered)
HRESULT WINAPI CoInternetCreateSecurityManager(IServiceProvider *pSP, IInternetSecurityManager **ppSM, DWORD dwReserved)
static SecManagerImpl * impl_from_IInternetSecurityManagerEx2(IInternetSecurityManagerEx2 *iface)
static HRESULT WINAPI ZoneMgrImpl_QueryInterface(IInternetZoneManagerEx2 *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI ZoneMgrImpl_GetZoneActionPolicy(IInternetZoneManagerEx2 *iface, DWORD dwZone, DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy, URLZONEREG urlZoneReg)
static HRESULT get_action_policy(DWORD zone, DWORD action, BYTE *policy, DWORD size, URLZONEREG zone_reg)
static HRESULT WINAPI SecManagerImpl_QueryCustomPolicyEx2(IInternetSecurityManagerEx2 *iface, IUri *pUri, REFGUID guidKey, BYTE **ppPolicy, DWORD *pcbPolicy, BYTE *pContext, DWORD cbContext, DWORD_PTR dwReserved)
static HRESULT WINAPI SecManagerImpl_GetSecurityId(IInternetSecurityManagerEx2 *iface, LPCWSTR pwszUrl, BYTE *pbSecurityId, DWORD *pcbSecurityId, DWORD_PTR dwReserved)
static HRESULT get_security_id_for_url(LPCWSTR url, BYTE *secid, DWORD *secid_len)
HRESULT SecManagerImpl_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
static ULONG WINAPI SecManagerImpl_Release(IInternetSecurityManagerEx2 *iface)
static HRESULT WINAPI ZoneMgrImpl_SetZoneAttributes(IInternetZoneManagerEx2 *iface, DWORD dwZone, ZONEATTRIBUTES *pZoneAttributes)
static HRESULT WINAPI SecManagerImpl_GetZoneMappings(IInternetSecurityManagerEx2 *iface, DWORD dwZone, IEnumString **ppenumString, DWORD dwFlags)
static HRESULT WINAPI ZoneMgrImpl_GetZoneActionPolicyEx(IInternetZoneManagerEx2 *iface, DWORD dwZone, DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy, URLZONEREG urlZoneReg, DWORD dwFlags)
static HRESULT WINAPI ZoneMgrImpl_SetZoneCustomPolicy(IInternetZoneManagerEx2 *iface, DWORD dwZone, REFGUID guidKey, BYTE *ppPolicy, DWORD cbPolicy, URLZONEREG ulrZoneReg)
static void get_dword_from_reg(HKEY hcu, HKEY hklm, LPCWSTR name, LPDWORD out)
static HRESULT WINAPI ZoneMgrImpl_SetZoneActionPolicy(IInternetZoneManagerEx2 *iface, DWORD dwZone, DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy, URLZONEREG urlZoneReg)
static HRESULT WINAPI SecManagerImpl_ProcessUrlActionEx(IInternetSecurityManagerEx2 *iface, LPCWSTR pwszUrl, DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy, BYTE *pContext, DWORD cbContext, DWORD dwFlags, DWORD dwReserved, DWORD *pdwOutFlags)
static BOOL get_zone_for_scheme(HKEY key, LPCWSTR schema, DWORD *zone)
static HRESULT generate_security_id(IUri *uri, BYTE *secid, DWORD *secid_len, DWORD zone)
static HRESULT map_url_to_zone(LPCWSTR url, DWORD *zone, LPWSTR *ret_url)
static HRESULT get_security_id_for_uri(IUri *uri, BYTE *secid, DWORD *secid_len)
HRESULT WINAPI CompareSecurityIds(BYTE *secid1, DWORD size1, BYTE *secid2, DWORD size2, DWORD reserved)
HRESULT WINAPI CoInternetGetSecurityUrl(LPCWSTR pwzUrl, LPWSTR *ppwzSecUrl, PSUACTION psuAction, DWORD dwReserved)
static HRESULT WINAPI ZoneMgrImpl_GetZoneAt(IInternetZoneManagerEx2 *iface, DWORD dwEnum, DWORD dwIndex, DWORD *pdwZone)
static HRESULT WINAPI SecManagerImpl_MapUrlToZoneEx2(IInternetSecurityManagerEx2 *iface, IUri *pUri, DWORD *pdwZone, DWORD dwFlags, LPWSTR *ppwszMappedUrl, DWORD *pdwOutFlags)
static const IInternetZoneManagerEx2Vtbl ZoneMgrImplVtbl
static void get_string_from_reg(HKEY hcu, HKEY hklm, LPCWSTR name, LPWSTR out, DWORD maxlen)
static ZoneMgrImpl * impl_from_IInternetZoneManagerEx2(IInternetZoneManagerEx2 *iface)
static const IInternetSecurityManagerEx2Vtbl VT_SecManagerImpl
static HRESULT open_zone_key(HKEY parent_key, DWORD zone, HKEY *hkey)
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
void find_domain_name(const WCHAR *host, DWORD host_len, INT *domain_start)
HRESULT WINAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IUri **ppURI)
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
static IInternetProtocolInfo protocol_info
static const BYTE secid2[]
static const BYTE secid1[]
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define IsEqualIID(riid1, riid2)
#define URL_PARTFLAG_KEEPSCHEME
IInternetSecurityManager * custom_manager
IInternetSecurityMgrSite * mgrsite
IInternetSecurityManagerEx2 IInternetSecurityManagerEx2_iface
IInternetZoneManagerEx2 IInternetZoneManagerEx2_iface
#define CONTAINING_RECORD(address, type, field)
static void URLMON_LockModule(void)
static void URLMON_UnlockModule(void)
static WCHAR * strndupW(LPCWSTR str, int len)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
#define DRIVE_NO_ROOT_DIR
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define E_NOT_SUFFICIENT_BUFFER
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)