29 L"Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl";
36 0, 0, { (
DWORD_PTR)(__FILE__
": process features") }
57 {
L"FEATURE_WEBOC_POPUPMANAGEMENT",
FALSE,
TRUE},
59 {
L"FEATURE_DISABLE_MK_PROTOCOL",
TRUE ,
TRUE},
60 {
L"FEATURE_LOCALMACHINE_LOCKDOWN",
FALSE,
TRUE},
62 {
L"FEATURE_RESTRICT_ACTIVEXINSTALL",
FALSE,
TRUE},
63 {
L"FEATURE_VALIDATE_NAVIGATE_URL",
FALSE,
TRUE},
64 {
L"FEATURE_RESTRICT_FILEDOWNLOAD",
FALSE,
TRUE},
67 {
L"FEATURE_HTTP_USERNAME_PASSWORD_DISABLE",
FALSE,
TRUE},
70 {
L"FEATURE_GET_URL_DOM_FILEPATH_UNENCODED",
TRUE ,
TRUE},
73 {
L"FEATURE_DISABLE_NAVIGATION_SOUNDS",
FALSE,
TRUE},
74 {
L"FEATURE_DISABLE_LEGACY_COMPRESSION",
TRUE ,
TRUE},
75 {
L"FEATURE_FORCE_ADDR_AND_STATUS",
FALSE,
TRUE},
77 {
L"FEATURE_DISABLE_TELNET_PROTOCOL",
FALSE,
TRUE},
331 switch(ParseAction) {
332 case PARSE_CANONICALIZE:
334 case PARSE_SECURITY_URL:
339 case PARSE_PATH_FROM_URL:
343 case PARSE_SECURITY_DOMAIN:
347 case PARSE_ROOTDOCUMENT:
350 FIXME(
"not supported action %d\n", ParseAction);
368 debugstr_w(pwzRelativeUrl), dwCombineFlags, pwzResult, cchResult, pcchResult,
374 hres = IInternetProtocolInfo_CombineUrl(
protocol_info, pwzBaseUrl, pwzRelativeUrl,
375 dwCombineFlags, pwzResult, cchResult, pcchResult,
dwReserved);
403 hres = IInternetProtocolInfo_CompareUrl(
protocol_info, pwzUrl1, pwzUrl2, dwCompareFlags);
426 QueryOption, dwQueryFlags, pvBuffer, cbBuffer, pcbBuffer,
dwReserved);
431 hres = IInternetProtocolInfo_QueryInfo(
protocol_info, pwzUrl, QueryOption, dwQueryFlags,
438 switch(QueryOption) {
439 case QUERY_USES_NETWORK:
440 if(!pvBuffer || cbBuffer <
sizeof(
DWORD))
443 *(
DWORD*)pvBuffer = 0;
445 *pcbBuffer =
sizeof(
DWORD);
449 FIXME(
"Not supported option %d\n", QueryOption);
468 const DWORD supported_flags = SET_FEATURE_ON_PROCESS;
470 if(
feature >= FEATURE_ENTRY_COUNT)
473 if(
flags & ~supported_flags)
474 FIXME(
"Unsupported flags: %08lx\n",
flags & ~supported_flags);
476 if(
flags & SET_FEATURE_ON_PROCESS)
504 WARN(
"Unexpected registry value type %ld (expected REG_DWORD) for %s\n",
type,
debugstr_w(
L"*"));
518 LPCWSTR process_name, feature_name;
591 if(
feature >= FEATURE_ENTRY_COUNT)
594 if(
flags == GET_FEATURE_FROM_PROCESS)
609 TRACE(
"(%d, %08lx, %x)\n", FeatureEntry,
dwFlags, fEnable);
634 urlaction = URLACTION_FEATURE_MIME_SNIFFING;
636 urlaction = URLACTION_FEATURE_WINDOW_RESTRICTIONS;
638 urlaction = URLACTION_FEATURE_ZONE_ELEVATION;
640 if(!szURL || !urlaction || !pSecMgr)
644 case GET_FEATURE_FROM_THREAD:
645 case GET_FEATURE_FROM_THREAD_LOCALMACHINE:
646 case GET_FEATURE_FROM_THREAD_INTRANET:
647 case GET_FEATURE_FROM_THREAD_TRUSTED:
648 case GET_FEATURE_FROM_THREAD_INTERNET:
649 case GET_FEATURE_FROM_THREAD_RESTRICTED:
653 case GET_FEATURE_FROM_PROCESS:
662 hres = IInternetSecurityManager_ProcessUrlAction(pSecMgr, szURL, urlaction,
681 if(!pSecMgr || !szToURL)
685 case GET_FEATURE_FROM_THREAD:
686 case GET_FEATURE_FROM_THREAD_LOCALMACHINE:
687 case GET_FEATURE_FROM_THREAD_INTRANET:
688 case GET_FEATURE_FROM_THREAD_TRUSTED:
689 case GET_FEATURE_FROM_THREAD_INTERNET:
690 case GET_FEATURE_FROM_THREAD_RESTRICTED:
694 case GET_FEATURE_FROM_PROCESS:
703 hres = IInternetSecurityManager_ProcessUrlAction(pSecMgr, szToURL,
705 NULL, 0, PUAF_NOUI, 0);
710 case URLPOLICY_ALLOW:
712 case URLPOLICY_QUERY:
713 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 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_control_keyW[]
HRESULT WINAPI CoInternetParseUrl(LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwFlags, LPWSTR pszResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved)
static HRESULT parse_rootdocument(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
static feature_control process_feature_controls[FEATURE_ENTRY_COUNT]
static HRESULT set_internet_feature(INTERNETFEATURELIST feature, DWORD flags, BOOL enable)
static HRESULT get_feature_from_process(INTERNETFEATURELIST feature)
HRESULT WINAPI CoInternetCompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags)
HRESULT WINAPI CoInternetIsFeatureEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags)
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 HRESULT parse_domain(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
HRESULT WINAPI CoInternetIsFeatureZoneElevationEnabled(LPCWSTR szFromURL, LPCWSTR szToURL, IInternetSecurityManager *pSecMgr, DWORD dwFlags)
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 CRITICAL_SECTION_DEBUG process_features_cs_dbg
static CRITICAL_SECTION process_features_cs
static HRESULT parse_security_url(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
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
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
LIST_ENTRY ProcessLocksList
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER