29 {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
30 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
31 'I',
'n',
't',
'e',
'r',
'n',
'e',
't',
' ',
'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'\\',
33 'F',
'e',
'a',
't',
'u',
'r',
'e',
'C',
'o',
'n',
't',
'r',
'o',
'l',0};
36 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'O',
'B',
'J',
'E',
'C',
'T',
'_',
'C',
'A',
'C',
'H',
'I',
'N',
'G',0};
38 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'Z',
'O',
'N',
'E',
'_',
'E',
'L',
'E',
'V',
'A',
'T',
'I',
'O',
'N',0};
40 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'M',
'I',
'M',
'E',
'_',
'H',
'A',
'N',
'D',
'L',
'I',
'N',
'G',0};
42 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'M',
'I',
'M',
'E',
'_',
'S',
'N',
'I',
'F',
'F',
'I',
'N',
'G',0};
44 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'W',
'I',
'N',
'D',
'O',
'W',
'_',
'R',
'E',
'S',
'T',
'R',
'I',
'C',
'T',
'I',
'O',
'N',
'S',0};
46 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'W',
'E',
'B',
'O',
'C',
'_',
'P',
'O',
'P',
'U',
'P',
'M',
'A',
'N',
'A',
'G',
'E',
'M',
'E',
'N',
'T',0};
48 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'B',
'E',
'H',
'A',
'V',
'I',
'O',
'R',
'S',0};
50 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'D',
'I',
'S',
'A',
'B',
'L',
'E',
'_',
'M',
'K',
'_',
'P',
'R',
'O',
'T',
'O',
'C',
'O',
'L',0};
52 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'L',
'O',
'C',
'A',
'L',
'M',
'A',
'C',
'H',
'I',
'N',
'E',
'_',
'L',
'O',
'C',
'K',
'D',
'O',
'W',
'N',0};
54 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'S',
'E',
'C',
'U',
'R',
'I',
'T',
'Y',
'B',
'A',
'N',
'D',0};
56 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'R',
'E',
'S',
'T',
'R',
'I',
'C',
'T',
'_',
'A',
'C',
'T',
'I',
'V',
'E',
'X',
'I',
'N',
'S',
'T',
'A',
'L',
'L',0};
58 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'V',
'A',
'L',
'I',
'D',
'A',
'T',
'E',
'_',
'N',
'A',
'V',
'I',
'G',
'A',
'T',
'E',
'_',
'U',
'R',
'L',0};
60 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'R',
'E',
'S',
'T',
'R',
'I',
'C',
'T',
'_',
'F',
'I',
'L',
'E',
'D',
'O',
'W',
'N',
'L',
'O',
'A',
'D',0};
62 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'A',
'D',
'D',
'O',
'N',
'_',
'M',
'A',
'N',
'A',
'G',
'E',
'M',
'E',
'N',
'T',0};
64 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'P',
'R',
'O',
'T',
'O',
'C',
'O',
'L',
'_',
'L',
'O',
'C',
'K',
'D',
'O',
'W',
'N',0};
66 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'H',
'T',
'T',
'P',
'_',
'U',
'S',
'E',
'R',
'N',
'A',
'M',
'E',
'_',
67 'P',
'A',
'S',
'S',
'W',
'O',
'R',
'D',
'_',
'D',
'I',
'S',
'A',
'B',
'L',
'E',0};
69 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'S',
'A',
'F',
'E',
'_',
'B',
'I',
'N',
'D',
'T',
'O',
'O',
'B',
'J',
'E',
'C',
'T',0};
71 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'U',
'N',
'C',
'_',
'S',
'A',
'V',
'E',
'D',
'F',
'I',
'L',
'E',
'C',
'H',
'E',
'C',
'K',0};
73 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'G',
'E',
'T',
'_',
'U',
'R',
'L',
'_',
'D',
'O',
'M',
'_',
74 'F',
'I',
'L',
'E',
'P',
'A',
'T',
'H',
'_',
'U',
'N',
'E',
'N',
'C',
'O',
'D',
'E',
'D',0};
76 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'T',
'A',
'B',
'B',
'E',
'D',
'_',
'B',
'R',
'O',
'W',
'S',
'I',
'N',
'G',0};
78 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'S',
'S',
'L',
'U',
'X',0};
80 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'D',
'I',
'S',
'A',
'B',
'L',
'E',
'_',
'N',
'A',
'V',
'I',
'G',
'A',
'T',
'I',
'O',
'N',
'_',
81 'S',
'O',
'U',
'N',
'D',
'S',0};
83 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'D',
'I',
'S',
'A',
'B',
'L',
'E',
'_',
'L',
'E',
'G',
'A',
'C',
'Y',
'_',
84 'C',
'O',
'M',
'P',
'R',
'E',
'S',
'S',
'I',
'O',
'N',0};
86 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'F',
'O',
'R',
'C',
'E',
'_',
'A',
'D',
'D',
'R',
'_',
'A',
'N',
'D',
'_',
87 'S',
'T',
'A',
'T',
'U',
'S',0};
89 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'X',
'M',
'L',
'H',
'T',
'T',
'P',0};
91 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'D',
'I',
'S',
'A',
'B',
'L',
'E',
'_',
'T',
'E',
'L',
'N',
'E',
'T',
'_',
92 'P',
'R',
'O',
'T',
'O',
'C',
'O',
'L',0};
94 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'F',
'E',
'E',
'D',
'S',0};
96 {
'F',
'E',
'A',
'T',
'U',
'R',
'E',
'_',
'B',
'L',
'O',
'C',
'K',
'_',
'I',
'N',
'P',
'U',
'T',
'_',
'P',
'R',
'O',
'M',
'P',
'T',
'S',0};
103 0, 0, { (
DWORD_PTR)(__FILE__
": process features") }
157 ERR(
"wrong flags\n");
398 switch(ParseAction) {
399 case PARSE_CANONICALIZE:
401 case PARSE_SECURITY_URL:
406 case PARSE_PATH_FROM_URL:
410 case PARSE_SECURITY_DOMAIN:
414 case PARSE_ROOTDOCUMENT:
417 FIXME(
"not supported action %d\n", ParseAction);
435 debugstr_w(pwzRelativeUrl), dwCombineFlags, pwzResult, cchResult, pcchResult,
441 hres = IInternetProtocolInfo_CombineUrl(
protocol_info, pwzBaseUrl, pwzRelativeUrl,
442 dwCombineFlags, pwzResult, cchResult, pcchResult,
dwReserved);
470 hres = IInternetProtocolInfo_CompareUrl(
protocol_info, pwzUrl1, pwzUrl2, dwCompareFlags);
493 QueryOption, dwQueryFlags, pvBuffer, cbBuffer, pcbBuffer,
dwReserved);
498 hres = IInternetProtocolInfo_QueryInfo(
protocol_info, pwzUrl, QueryOption, dwQueryFlags,
505 switch(QueryOption) {
506 case QUERY_USES_NETWORK:
507 if(!pvBuffer || cbBuffer <
sizeof(
DWORD))
510 *(
DWORD*)pvBuffer = 0;
512 *pcbBuffer =
sizeof(
DWORD);
516 FIXME(
"Not supported option %d\n", QueryOption);
535 const DWORD supported_flags = SET_FEATURE_ON_PROCESS;
537 if(
feature >= FEATURE_ENTRY_COUNT)
540 if(
flags & ~supported_flags)
541 FIXME(
"Unsupported flags: %08x\n",
flags & ~supported_flags);
543 if(
flags & SET_FEATURE_ON_PROCESS)
587 LPCWSTR process_name, feature_name;
660 if(
feature >= FEATURE_ENTRY_COUNT)
663 if(
flags == GET_FEATURE_FROM_PROCESS)
678 TRACE(
"(%d, %08x, %x)\n", FeatureEntry,
dwFlags, fEnable);
703 urlaction = URLACTION_FEATURE_MIME_SNIFFING;
705 urlaction = URLACTION_FEATURE_WINDOW_RESTRICTIONS;
707 urlaction = URLACTION_FEATURE_ZONE_ELEVATION;
709 if(!szURL || !urlaction || !pSecMgr)
713 case GET_FEATURE_FROM_THREAD:
714 case GET_FEATURE_FROM_THREAD_LOCALMACHINE:
715 case GET_FEATURE_FROM_THREAD_INTRANET:
716 case GET_FEATURE_FROM_THREAD_TRUSTED:
717 case GET_FEATURE_FROM_THREAD_INTERNET:
718 case GET_FEATURE_FROM_THREAD_RESTRICTED:
722 case GET_FEATURE_FROM_PROCESS:
731 hres = IInternetSecurityManager_ProcessUrlAction(pSecMgr, szURL, urlaction,
750 if(!pSecMgr || !szToURL)
754 case GET_FEATURE_FROM_THREAD:
755 case GET_FEATURE_FROM_THREAD_LOCALMACHINE:
756 case GET_FEATURE_FROM_THREAD_INTRANET:
757 case GET_FEATURE_FROM_THREAD_TRUSTED:
758 case GET_FEATURE_FROM_THREAD_INTERNET:
759 case GET_FEATURE_FROM_THREAD_RESTRICTED:
763 case GET_FEATURE_FROM_PROCESS:
772 hres = IInternetSecurityManager_ProcessUrlAction(pSecMgr, szToURL,
774 NULL, 0, PUAF_NOUI, 0);
779 case URLPOLICY_ALLOW:
781 case URLPOLICY_QUERY:
782 FIXME(
"Ask user dialog not implemented\n");
WINBASEAPI _Check_return_ _Out_ AppPolicyProcessTerminationMethod * policy
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
static LPCWSTR LPCWSTR module_name
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
HRESULT WINAPI ParseURLW(const WCHAR *url, PARSEDURLW *result)
INT WINAPI UrlCompareW(const WCHAR *url1, const WCHAR *url2, BOOL ignore_slash)
HRESULT WINAPI UrlCombineW(const WCHAR *baseW, const WCHAR *relativeW, WCHAR *combined, DWORD *combined_len, DWORD flags)
HRESULT WINAPI UrlUnescapeW(WCHAR *url, WCHAR *unescaped, DWORD *unescaped_len, DWORD flags)
HRESULT WINAPI PathCreateFromUrlW(const WCHAR *url, WCHAR *path, DWORD *pcchPath, DWORD dwReserved)
HRESULT WINAPI UrlGetPartW(const WCHAR *url, WCHAR *out, DWORD *out_len, DWORD part, DWORD flags)
HRESULT WINAPI UrlCanonicalizeW(const WCHAR *src_url, WCHAR *canonicalized, DWORD *canonicalized_len, DWORD flags)
static HRESULT get_internet_feature(INTERNETFEATURELIST feature, DWORD flags)
static HRESULT parse_canonicalize_url(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
static HRESULT parse_encode(LPCWSTR url, PARSEACTION action, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
static HRESULT parse_security_domain(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
HRESULT WINAPI CoInternetCombineUrl(LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved)
static HRESULT load_process_feature(INTERNETFEATURELIST feature)
static const WCHAR feature_disable_mk_protocolW[]
static void set_feature_on_process(INTERNETFEATURELIST feature, BOOL enable)
HRESULT WINAPI CoInternetQueryInfo(LPCWSTR pwzUrl, QUERYOPTION QueryOption, DWORD dwQueryFlags, LPVOID pvBuffer, DWORD cbBuffer, DWORD *pcbBuffer, DWORD dwReserved)
static const WCHAR feature_addon_managementW[]
static const WCHAR feature_window_restrictionsW[]
static const WCHAR feature_control_keyW[]
HRESULT WINAPI CoInternetParseUrl(LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwFlags, LPWSTR pszResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved)
static const WCHAR feature_http_username_password_disableW[]
static const WCHAR feature_behaviorsW[]
static const WCHAR feature_mime_handlingW[]
static const WCHAR feature_ssluxW[]
static HRESULT parse_rootdocument(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
static const WCHAR feature_unc_savedfilecheckW[]
static const WCHAR feature_tabbed_browsingW[]
static feature_control process_feature_controls[FEATURE_ENTRY_COUNT]
static HRESULT set_internet_feature(INTERNETFEATURELIST feature, DWORD flags, BOOL enable)
static const WCHAR feature_xmlhttpW[]
static HRESULT get_feature_from_process(INTERNETFEATURELIST feature)
HRESULT WINAPI CoInternetCompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags)
static const WCHAR feature_feedsW[]
HRESULT WINAPI CoInternetIsFeatureEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags)
static const WCHAR feature_disable_telnet_protocolW[]
static HRESULT parse_schema(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
HRESULT WINAPI CoInternetIsFeatureEnabledForUrl(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags, LPCWSTR szURL, IInternetSecurityManager *pSecMgr)
static BOOL get_feature_from_reg(HKEY feature_control, LPCWSTR feature_name, LPCWSTR process_name, BOOL *enabled)
static const WCHAR feature_zone_elevationW[]
static const WCHAR feature_disable_navigation_soundsW[]
static const WCHAR feature_get_url_dom_filepath_unencodedW[]
static const WCHAR feature_disable_legacy_compressionW[]
static HRESULT parse_domain(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
HRESULT WINAPI CoInternetIsFeatureZoneElevationEnabled(LPCWSTR szFromURL, LPCWSTR szToURL, IInternetSecurityManager *pSecMgr, DWORD dwFlags)
static const WCHAR feature_protocol_lockdownW[]
HRESULT WINAPI CoInternetSetFeatureEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags, BOOL fEnable)
static HRESULT parse_path_from_url(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
static const WCHAR feature_object_cachingW[]
static CRITICAL_SECTION_DEBUG process_features_cs_dbg
static const WCHAR feature_block_input_promptsW[]
static CRITICAL_SECTION process_features_cs
static const WCHAR feature_validate_navigate_urlW[]
static const WCHAR feature_securitybandW[]
static const WCHAR feature_force_addr_and_statusW[]
static const WCHAR feature_restrict_activexinstallW[]
static const WCHAR feature_localmachine_lockdownW[]
static const WCHAR feature_safe_bindtoobjectW[]
static const WCHAR feature_weboc_popupmanagementW[]
static HRESULT parse_security_url(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
static const WCHAR feature_mime_sniffingW[]
static const WCHAR feature_restrict_filedownloadW[]
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
GLuint GLuint GLsizei GLenum type
GLenum GLenum GLsizei const GLuint GLboolean enabled
#define memcpy(s1, s2, n)
static IInternetProtocolInfo protocol_info
INTERNETFEATURELIST feature
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
static const WCHAR wildcardW[]
LIST_ENTRY ProcessLocksList
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER