ReactOS  0.4.13-dev-961-g238ea69
internet.c File Reference
#include "urlmon_main.h"
#include "winreg.h"
#include "shlwapi.h"
#include "wine/debug.h"
Include dependency graph for internet.c:

Go to the source code of this file.

Classes

struct  feature_control
 

Typedefs

typedef struct feature_control feature_control
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (urlmon)
 
static HRESULT parse_schema (LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
 
static HRESULT parse_canonicalize_url (LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
 
static HRESULT parse_security_url (LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
 
static HRESULT parse_encode (LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
 
static HRESULT parse_path_from_url (LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
 
static HRESULT parse_security_domain (LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
 
static HRESULT parse_domain (LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
 
static HRESULT parse_rootdocument (LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
 
HRESULT WINAPI CoInternetParseUrl (LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwFlags, LPWSTR pszResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved)
 
HRESULT WINAPI CoInternetCombineUrl (LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved)
 
HRESULT WINAPI CoInternetCompareUrl (LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags)
 
HRESULT WINAPI CoInternetQueryInfo (LPCWSTR pwzUrl, QUERYOPTION QueryOption, DWORD dwQueryFlags, LPVOID pvBuffer, DWORD cbBuffer, DWORD *pcbBuffer, DWORD dwReserved)
 
static void set_feature_on_process (INTERNETFEATURELIST feature, BOOL enable)
 
static HRESULT set_internet_feature (INTERNETFEATURELIST feature, DWORD flags, BOOL enable)
 
static BOOL get_feature_from_reg (HKEY feature_control, LPCWSTR feature_name, LPCWSTR process_name, BOOL *enabled)
 
static HRESULT load_process_feature (INTERNETFEATURELIST feature)
 
static HRESULT get_feature_from_process (INTERNETFEATURELIST feature)
 
static HRESULT get_internet_feature (INTERNETFEATURELIST feature, DWORD flags)
 
HRESULT WINAPI CoInternetSetFeatureEnabled (INTERNETFEATURELIST FeatureEntry, DWORD dwFlags, BOOL fEnable)
 
HRESULT WINAPI CoInternetIsFeatureEnabled (INTERNETFEATURELIST FeatureEntry, DWORD dwFlags)
 
HRESULT WINAPI CoInternetIsFeatureEnabledForUrl (INTERNETFEATURELIST FeatureEntry, DWORD dwFlags, LPCWSTR szURL, IInternetSecurityManager *pSecMgr)
 
HRESULT WINAPI CoInternetIsFeatureZoneElevationEnabled (LPCWSTR szFromURL, LPCWSTR szToURL, IInternetSecurityManager *pSecMgr, DWORD dwFlags)
 

Variables

static const WCHAR feature_control_keyW []
 
static const WCHAR feature_object_cachingW []
 
static const WCHAR feature_zone_elevationW []
 
static const WCHAR feature_mime_handlingW []
 
static const WCHAR feature_mime_sniffingW []
 
static const WCHAR feature_window_restrictionsW []
 
static const WCHAR feature_weboc_popupmanagementW []
 
static const WCHAR feature_behaviorsW []
 
static const WCHAR feature_disable_mk_protocolW []
 
static const WCHAR feature_localmachine_lockdownW []
 
static const WCHAR feature_securitybandW []
 
static const WCHAR feature_restrict_activexinstallW []
 
static const WCHAR feature_validate_navigate_urlW []
 
static const WCHAR feature_restrict_filedownloadW []
 
static const WCHAR feature_addon_managementW []
 
static const WCHAR feature_protocol_lockdownW []
 
static const WCHAR feature_http_username_password_disableW []
 
static const WCHAR feature_safe_bindtoobjectW []
 
static const WCHAR feature_unc_savedfilecheckW []
 
static const WCHAR feature_get_url_dom_filepath_unencodedW []
 
static const WCHAR feature_tabbed_browsingW []
 
static const WCHAR feature_ssluxW []
 
static const WCHAR feature_disable_navigation_soundsW []
 
static const WCHAR feature_disable_legacy_compressionW []
 
static const WCHAR feature_force_addr_and_statusW []
 
static const WCHAR feature_xmlhttpW []
 
static const WCHAR feature_disable_telnet_protocolW []
 
static const WCHAR feature_feedsW []
 
static const WCHAR feature_block_input_promptsW []
 
static CRITICAL_SECTION process_features_cs = { &process_features_cs_dbg, -1, 0, 0, 0, 0 }
 
static CRITICAL_SECTION_DEBUG process_features_cs_dbg
 
static feature_control process_feature_controls [FEATURE_ENTRY_COUNT]
 

Typedef Documentation

◆ feature_control

Function Documentation

◆ CoInternetCombineUrl()

HRESULT WINAPI CoInternetCombineUrl ( LPCWSTR  pwzBaseUrl,
LPCWSTR  pwzRelativeUrl,
DWORD  dwCombineFlags,
LPWSTR  pwzResult,
DWORD  cchResult,
DWORD pcchResult,
DWORD  dwReserved 
)

Definition at line 425 of file internet.c.

428 {
430  DWORD size = cchResult;
431  HRESULT hres;
432 
433  TRACE("(%s,%s,0x%08x,%p,%d,%p,%d)\n", debugstr_w(pwzBaseUrl),
434  debugstr_w(pwzRelativeUrl), dwCombineFlags, pwzResult, cchResult, pcchResult,
435  dwReserved);
436 
437  protocol_info = get_protocol_info(pwzBaseUrl);
438 
439  if(protocol_info) {
440  hres = IInternetProtocolInfo_CombineUrl(protocol_info, pwzBaseUrl, pwzRelativeUrl,
441  dwCombineFlags, pwzResult, cchResult, pcchResult, dwReserved);
442  IInternetProtocolInfo_Release(protocol_info);
443  if(SUCCEEDED(hres))
444  return hres;
445  }
446 
447 
448  hres = UrlCombineW(pwzBaseUrl, pwzRelativeUrl, pwzResult, &size, dwCombineFlags);
449 
450  if(pcchResult)
451  *pcchResult = size;
452 
453  return hres;
454 }
static IInternetProtocolInfo protocol_info
Definition: misc.c:927
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
Definition: session.c:181
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:90
#define debugstr_w
Definition: kernel32.h:32
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
unsigned long DWORD
Definition: ntddk_ex.h:95
HRESULT WINAPI UrlCombineW(LPCWSTR pszBase, LPCWSTR pszRelative, LPWSTR pszCombined, LPDWORD pcchCombined, DWORD dwFlags)
Definition: url.c:662
#define SUCCEEDED(hr)
Definition: intsafe.h:57

◆ CoInternetCompareUrl()

HRESULT WINAPI CoInternetCompareUrl ( LPCWSTR  pwzUrl1,
LPCWSTR  pwzUrl2,
DWORD  dwCompareFlags 
)

Definition at line 459 of file internet.c.

460 {
462  HRESULT hres;
463 
464  TRACE("(%s,%s,%08x)\n", debugstr_w(pwzUrl1), debugstr_w(pwzUrl2), dwCompareFlags);
465 
466  protocol_info = get_protocol_info(pwzUrl1);
467 
468  if(protocol_info) {
469  hres = IInternetProtocolInfo_CompareUrl(protocol_info, pwzUrl1, pwzUrl2, dwCompareFlags);
470  IInternetProtocolInfo_Release(protocol_info);
471  if(SUCCEEDED(hres))
472  return hres;
473  }
474 
475  return UrlCompareW(pwzUrl1, pwzUrl2, dwCompareFlags) ? S_FALSE : S_OK;
476 }
static IInternetProtocolInfo protocol_info
Definition: misc.c:927
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
Definition: session.c:181
#define debugstr_w
Definition: kernel32.h:32
#define S_FALSE
Definition: winerror.h:2357
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
INT WINAPI UrlCompareW(LPCWSTR pszUrl1, LPCWSTR pszUrl2, BOOL fIgnoreSlash)
Definition: url.c:1537
#define S_OK
Definition: intsafe.h:59
#define SUCCEEDED(hr)
Definition: intsafe.h:57

◆ CoInternetIsFeatureEnabled()

HRESULT WINAPI CoInternetIsFeatureEnabled ( INTERNETFEATURELIST  FeatureEntry,
DWORD  dwFlags 
)

Definition at line 684 of file internet.c.

685 {
686  TRACE("(%d, %08x)\n", FeatureEntry, dwFlags);
687  return get_internet_feature(FeatureEntry, dwFlags);
688 }
static HRESULT get_internet_feature(INTERNETFEATURELIST feature, DWORD flags)
Definition: internet.c:655
#define TRACE(s)
Definition: solgame.cpp:4
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175

Referenced by CoInternetIsFeatureEnabledForUrl(), and CoInternetIsFeatureZoneElevationEnabled().

◆ CoInternetIsFeatureEnabledForUrl()

HRESULT WINAPI CoInternetIsFeatureEnabledForUrl ( INTERNETFEATURELIST  FeatureEntry,
DWORD  dwFlags,
LPCWSTR  szURL,
IInternetSecurityManager pSecMgr 
)

Definition at line 693 of file internet.c.

695 {
696  DWORD urlaction = 0;
697  HRESULT hres;
698 
699  TRACE("(%d %08x %s %p)\n", FeatureEntry, dwFlags, debugstr_w(szURL), pSecMgr);
700 
701  if(FeatureEntry == FEATURE_MIME_SNIFFING)
702  urlaction = URLACTION_FEATURE_MIME_SNIFFING;
703  else if(FeatureEntry == FEATURE_WINDOW_RESTRICTIONS)
704  urlaction = URLACTION_FEATURE_WINDOW_RESTRICTIONS;
705  else if(FeatureEntry == FEATURE_ZONE_ELEVATION)
706  urlaction = URLACTION_FEATURE_ZONE_ELEVATION;
707 
708  if(!szURL || !urlaction || !pSecMgr)
709  return CoInternetIsFeatureEnabled(FeatureEntry, dwFlags);
710 
711  switch(dwFlags) {
712  case GET_FEATURE_FROM_THREAD:
713  case GET_FEATURE_FROM_THREAD_LOCALMACHINE:
714  case GET_FEATURE_FROM_THREAD_INTRANET:
715  case GET_FEATURE_FROM_THREAD_TRUSTED:
716  case GET_FEATURE_FROM_THREAD_INTERNET:
717  case GET_FEATURE_FROM_THREAD_RESTRICTED:
718  FIXME("unsupported flags %x\n", dwFlags);
719  return E_NOTIMPL;
720 
721  case GET_FEATURE_FROM_PROCESS:
722  hres = CoInternetIsFeatureEnabled(FeatureEntry, dwFlags);
723  if(hres != S_OK)
724  return hres;
725  /* fall through */
726 
727  default: {
728  DWORD policy = URLPOLICY_DISALLOW;
729 
730  hres = IInternetSecurityManager_ProcessUrlAction(pSecMgr, szURL, urlaction,
731  (BYTE*)&policy, sizeof(DWORD), NULL, 0, PUAF_NOUI, 0);
732  if(hres!=S_OK || policy!=URLPOLICY_ALLOW)
733  return S_OK;
734  return S_FALSE;
735  }
736  }
737 }
HRESULT WINAPI CoInternetIsFeatureEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags)
Definition: internet.c:684
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_FALSE
Definition: winerror.h:2357
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
unsigned long DWORD
Definition: ntddk_ex.h:95
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
unsigned char BYTE
Definition: mem.h:68
#define S_OK
Definition: intsafe.h:59
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ CoInternetIsFeatureZoneElevationEnabled()

HRESULT WINAPI CoInternetIsFeatureZoneElevationEnabled ( LPCWSTR  szFromURL,
LPCWSTR  szToURL,
IInternetSecurityManager pSecMgr,
DWORD  dwFlags 
)

Definition at line 742 of file internet.c.

744 {
745  HRESULT hres;
746 
747  TRACE("(%s %s %p %x)\n", debugstr_w(szFromURL), debugstr_w(szToURL), pSecMgr, dwFlags);
748 
749  if(!pSecMgr || !szToURL)
751 
752  switch(dwFlags) {
753  case GET_FEATURE_FROM_THREAD:
754  case GET_FEATURE_FROM_THREAD_LOCALMACHINE:
755  case GET_FEATURE_FROM_THREAD_INTRANET:
756  case GET_FEATURE_FROM_THREAD_TRUSTED:
757  case GET_FEATURE_FROM_THREAD_INTERNET:
758  case GET_FEATURE_FROM_THREAD_RESTRICTED:
759  FIXME("unsupported flags %x\n", dwFlags);
760  return E_NOTIMPL;
761 
762  case GET_FEATURE_FROM_PROCESS:
764  if(hres != S_OK)
765  return hres;
766  /* fall through */
767 
768  default: {
769  DWORD policy = URLPOLICY_DISALLOW;
770 
771  hres = IInternetSecurityManager_ProcessUrlAction(pSecMgr, szToURL,
772  URLACTION_FEATURE_ZONE_ELEVATION, (BYTE*)&policy, sizeof(DWORD),
773  NULL, 0, PUAF_NOUI, 0);
774  if(FAILED(hres))
775  return S_OK;
776 
777  switch(policy) {
778  case URLPOLICY_ALLOW:
779  return S_FALSE;
780  case URLPOLICY_QUERY:
781  FIXME("Ask user dialog not implemented\n");
782  default:
783  return S_OK;
784  }
785  }
786  }
787 }
HRESULT WINAPI CoInternetIsFeatureEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags)
Definition: internet.c:684
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_FALSE
Definition: winerror.h:2357
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
unsigned long DWORD
Definition: ntddk_ex.h:95
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
unsigned char BYTE
Definition: mem.h:68
#define S_OK
Definition: intsafe.h:59
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ CoInternetParseUrl()

HRESULT WINAPI CoInternetParseUrl ( LPCWSTR  pwzUrl,
PARSEACTION  ParseAction,
DWORD  dwFlags,
LPWSTR  pszResult,
DWORD  cchResult,
DWORD pcchResult,
DWORD  dwReserved 
)

Definition at line 392 of file internet.c.

394 {
395  if(dwReserved)
396  WARN("dwReserved = %d\n", dwReserved);
397 
398  switch(ParseAction) {
399  case PARSE_CANONICALIZE:
400  return parse_canonicalize_url(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
401  case PARSE_SECURITY_URL:
402  return parse_security_url(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
403  case PARSE_ENCODE:
404  return parse_encode(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
405  case PARSE_PATH_FROM_URL:
406  return parse_path_from_url(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
407  case PARSE_SCHEMA:
408  return parse_schema(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
409  case PARSE_SECURITY_DOMAIN:
410  return parse_security_domain(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
411  case PARSE_DOMAIN:
412  return parse_domain(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
413  case PARSE_ROOTDOCUMENT:
414  return parse_rootdocument(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
415  default:
416  FIXME("not supported action %d\n", ParseAction);
417  }
418 
419  return E_NOTIMPL;
420 }
static HRESULT parse_encode(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:221
static HRESULT parse_security_domain(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:274
#define WARN(fmt,...)
Definition: debug.h:111
static HRESULT parse_security_url(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:202
static HRESULT parse_schema(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:149
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:90
#define FIXME(fmt,...)
Definition: debug.h:110
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
static HRESULT parse_domain(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:295
#define E_NOTIMPL
Definition: ddrawi.h:99
static HRESULT parse_path_from_url(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:248
static HRESULT parse_rootdocument(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:325
static HRESULT parse_canonicalize_url(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:176

Referenced by get_protocol_info(), is_registered_protocol(), OleLoadPicturePath(), ResProtocol_Start(), try_application_url(), and UniformResourceLocatorW_InvokeCommand().

◆ CoInternetQueryInfo()

HRESULT WINAPI CoInternetQueryInfo ( LPCWSTR  pwzUrl,
QUERYOPTION  QueryOption,
DWORD  dwQueryFlags,
LPVOID  pvBuffer,
DWORD  cbBuffer,
DWORD pcbBuffer,
DWORD  dwReserved 
)

Definition at line 484 of file internet.c.

487 {
489  HRESULT hres;
490 
491  TRACE("(%s, %x, %x, %p, %x, %p, %x)\n", debugstr_w(pwzUrl),
492  QueryOption, dwQueryFlags, pvBuffer, cbBuffer, pcbBuffer, dwReserved);
493 
495 
496  if(protocol_info) {
497  hres = IInternetProtocolInfo_QueryInfo(protocol_info, pwzUrl, QueryOption, dwQueryFlags,
498  pvBuffer, cbBuffer, pcbBuffer, dwReserved);
499  IInternetProtocolInfo_Release(protocol_info);
500 
501  return SUCCEEDED(hres) ? hres : E_FAIL;
502  }
503 
504  switch(QueryOption) {
505  case QUERY_USES_NETWORK:
506  if(!pvBuffer || cbBuffer < sizeof(DWORD))
507  return E_FAIL;
508 
509  *(DWORD*)pvBuffer = 0;
510  if(pcbBuffer)
511  *pcbBuffer = sizeof(DWORD);
512  break;
513 
514  default:
515  FIXME("Not supported option %d\n", QueryOption);
516  return E_NOTIMPL;
517  }
518 
519  return S_OK;
520 }
static IInternetProtocolInfo protocol_info
Definition: misc.c:927
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
Definition: session.c:181
#define E_FAIL
Definition: ddrawi.h:102
static DWORD
Definition: internet.c:33
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:90
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
unsigned long DWORD
Definition: ntddk_ex.h:95
#define S_OK
Definition: intsafe.h:59
#define E_NOTIMPL
Definition: ddrawi.h:99
#define SUCCEEDED(hr)
Definition: intsafe.h:57

◆ CoInternetSetFeatureEnabled()

HRESULT WINAPI CoInternetSetFeatureEnabled ( INTERNETFEATURELIST  FeatureEntry,
DWORD  dwFlags,
BOOL  fEnable 
)

Definition at line 675 of file internet.c.

676 {
677  TRACE("(%d, %08x, %x)\n", FeatureEntry, dwFlags, fEnable);
678  return set_internet_feature(FeatureEntry, dwFlags, fEnable);
679 }
#define TRACE(s)
Definition: solgame.cpp:4
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
static HRESULT set_internet_feature(INTERNETFEATURELIST feature, DWORD flags, BOOL enable)
Definition: internet.c:532

◆ get_feature_from_process()

static HRESULT get_feature_from_process ( INTERNETFEATURELIST  feature)
static

Definition at line 636 of file internet.c.

637 {
638  HRESULT hres = S_OK;
639 
641 
642  /* Try loading the feature from the registry, if it hasn't already
643  * been done.
644  */
645  if(process_feature_controls[feature].check_registry)
647  if(SUCCEEDED(hres))
649 
651 
652  return hres;
653 }
INTERNETFEATURELIST feature
Definition: misc.c:1689
static feature_control process_feature_controls[FEATURE_ENTRY_COUNT]
Definition: internet.c:118
static HRESULT load_process_feature(INTERNETFEATURELIST feature)
Definition: internet.c:581
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static CRITICAL_SECTION process_features_cs
Definition: internet.c:98
#define S_FALSE
Definition: winerror.h:2357
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
#define S_OK
Definition: intsafe.h:59
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define SUCCEEDED(hr)
Definition: intsafe.h:57

Referenced by get_internet_feature().

◆ get_feature_from_reg()

static BOOL get_feature_from_reg ( HKEY  feature_control,
LPCWSTR  feature_name,
LPCWSTR  process_name,
BOOL enabled 
)
static

Definition at line 548 of file internet.c.

549 {
550  DWORD type, value, size;
551  HKEY feature;
552  DWORD res;
553 
554  static const WCHAR wildcardW[] = {'*',0};
555 
556  res = RegOpenKeyW(feature_control, feature_name, &feature);
557  if(res != ERROR_SUCCESS)
558  return FALSE;
559 
560  size = sizeof(DWORD);
561  res = RegQueryValueExW(feature, process_name, NULL, &type, (BYTE*)&value, &size);
562  if(res != ERROR_SUCCESS || type != REG_DWORD) {
563  size = sizeof(DWORD);
565  }
566 
568  if(res != ERROR_SUCCESS)
569  return FALSE;
570 
571  if(type != REG_DWORD) {
572  WARN("Unexpected registry value type %d (expected REG_DWORD) for %s\n", type, debugstr_w(wildcardW));
573  return FALSE;
574  }
575 
576  *enabled = value == 1;
577  return TRUE;
578 }
INTERNETFEATURELIST feature
Definition: misc.c:1689
#define TRUE
Definition: types.h:120
#define ERROR_SUCCESS
Definition: deptool.c:10
#define WARN(fmt,...)
Definition: debug.h:111
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glext.h:7750
static DWORD
Definition: internet.c:33
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3296
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
GLsizeiptr size
Definition: glext.h:5919
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4116
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned char BYTE
Definition: mem.h:68
GLsizei const GLfloat * value
Definition: glext.h:6069
GLuint res
Definition: glext.h:9613
static const WCHAR wildcardW[]
Definition: actctx.c:709
#define REG_DWORD
Definition: sdbapi.c:596

Referenced by load_process_feature().

◆ get_internet_feature()

static HRESULT get_internet_feature ( INTERNETFEATURELIST  feature,
DWORD  flags 
)
static

Definition at line 655 of file internet.c.

656 {
657  HRESULT hres;
658 
659  if(feature >= FEATURE_ENTRY_COUNT)
660  return E_FAIL;
661 
662  if(flags == GET_FEATURE_FROM_PROCESS)
664  else {
665  FIXME("Unsupported flags: %08x\n", flags);
666  hres = E_NOTIMPL;
667  }
668 
669  return hres;
670 }
INTERNETFEATURELIST feature
Definition: misc.c:1689
#define E_FAIL
Definition: ddrawi.h:102
#define FIXME(fmt,...)
Definition: debug.h:110
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
GLbitfield flags
Definition: glext.h:7161
#define E_NOTIMPL
Definition: ddrawi.h:99
static HRESULT get_feature_from_process(INTERNETFEATURELIST feature)
Definition: internet.c:636

Referenced by CoInternetIsFeatureEnabled().

◆ load_process_feature()

static HRESULT load_process_feature ( INTERNETFEATURELIST  feature)
static

Definition at line 581 of file internet.c.

582 {
583  DWORD res;
586  LPCWSTR process_name, feature_name;
587  HRESULT hres = S_FALSE;
588  BOOL check_hklm = FALSE;
589  BOOL enabled;
590 
592  ERR("Failed to get module file name: %u\n", GetLastError());
593  return E_UNEXPECTED;
594  }
595 
596  process_name = strrchrW(module_name, '\\');
597  if(!process_name) {
598  ERR("Invalid module file name: %s\n", debugstr_w(module_name));
599  return E_UNEXPECTED;
600  }
601 
602  /* Skip past the '\\' in front of the filename. */
603  ++process_name;
604 
606 
608  if(res == ERROR_SUCCESS) {
609  if(get_feature_from_reg(feature_control, feature_name, process_name, &enabled)) {
610  hres = enabled ? S_OK : S_FALSE;
612  } else
613  /* We didn't find anything in HKCU, so check HKLM. */
614  check_hklm = TRUE;
615 
617  }
618 
619  if(check_hklm) {
621  if(res == ERROR_SUCCESS) {
622  if(get_feature_from_reg(feature_control, feature_name, process_name, &enabled)) {
623  hres = enabled ? S_OK : S_FALSE;
625  }
627  }
628  }
629 
630  /* Don't bother checking the registry again for this feature. */
632 
633  return hres;
634 }
INTERNETFEATURELIST feature
Definition: misc.c:1689
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
Definition: loader.c:609
static feature_control process_feature_controls[FEATURE_ENTRY_COUNT]
Definition: internet.c:118
#define TRUE
Definition: types.h:120
#define ERROR_SUCCESS
Definition: deptool.c:10
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
static LPCWSTR LPCWSTR module_name
Definition: db.cpp:168
#define HKEY_CURRENT_USER
Definition: winreg.h:11
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
LPCWSTR feature_name
Definition: internet.c:108
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glext.h:7750
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned int BOOL
Definition: ntddk_ex.h:94
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3296
#define debugstr_w
Definition: kernel32.h:32
#define S_FALSE
Definition: winerror.h:2357
BOOL check_registry
Definition: internet.c:110
smooth NULL
Definition: ftsmooth.c:416
HRESULT hres
Definition: protocol.c:465
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
#define MAX_PATH
Definition: compat.h:26
unsigned long DWORD
Definition: ntddk_ex.h:95
struct feature_control feature_control
static const WCHAR feature_control_keyW[]
Definition: internet.c:28
WINE_UNICODE_INLINE WCHAR * strrchrW(const WCHAR *str, WCHAR ch)
Definition: unicode.h:254
#define ERR(fmt,...)
Definition: debug.h:109
#define S_OK
Definition: intsafe.h:59
#define ARRAY_SIZE(a)
Definition: main.h:24
#define E_UNEXPECTED
Definition: winerror.h:2456
GLuint res
Definition: glext.h:9613
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
static BOOL get_feature_from_reg(HKEY feature_control, LPCWSTR feature_name, LPCWSTR process_name, BOOL *enabled)
Definition: internet.c:548

Referenced by get_feature_from_process().

◆ parse_canonicalize_url()

static HRESULT parse_canonicalize_url ( LPCWSTR  url,
DWORD  flags,
LPWSTR  result,
DWORD  size,
DWORD rsize 
)
static

Definition at line 176 of file internet.c.

178 {
180  DWORD prsize = size;
181  HRESULT hres;
182 
183  TRACE("(%s %08x %p %d %p)\n", debugstr_w(url), flags, result, size, rsize);
184 
186 
187  if(protocol_info) {
188  hres = IInternetProtocolInfo_ParseUrl(protocol_info, url, PARSE_CANONICALIZE,
189  flags, result, size, rsize, 0);
190  IInternetProtocolInfo_Release(protocol_info);
191  if(SUCCEEDED(hres))
192  return hres;
193  }
194 
195  hres = UrlCanonicalizeW(url, result, &prsize, flags);
196 
197  if(rsize)
198  *rsize = prsize;
199  return hres;
200 }
static IInternetProtocolInfo protocol_info
Definition: misc.c:927
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
Definition: session.c:181
#define debugstr_w
Definition: kernel32.h:32
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
static const WCHAR url[]
Definition: encode.c:1432
HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized, LPDWORD pcchCanonicalized, DWORD dwFlags)
Definition: url.c:282
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
GLuint64EXT * result
Definition: glext.h:11304
#define SUCCEEDED(hr)
Definition: intsafe.h:57

Referenced by CoInternetParseUrl().

◆ parse_domain()

static HRESULT parse_domain ( LPCWSTR  url,
DWORD  flags,
LPWSTR  result,
DWORD  size,
DWORD rsize 
)
static

Definition at line 295 of file internet.c.

297 {
299  HRESULT hres;
300 
301  TRACE("(%s %08x %p %d %p)\n", debugstr_w(url), flags, result, size, rsize);
302 
304 
305  if(protocol_info) {
306  hres = IInternetProtocolInfo_ParseUrl(protocol_info, url, PARSE_DOMAIN,
307  flags, result, size, rsize, 0);
308  IInternetProtocolInfo_Release(protocol_info);
309  if(SUCCEEDED(hres))
310  return hres;
311  }
312 
314  if(rsize)
315  *rsize = size;
316 
317  if(hres == E_POINTER)
318  return S_FALSE;
319 
320  if(FAILED(hres))
321  return E_FAIL;
322  return S_OK;
323 }
static IInternetProtocolInfo protocol_info
Definition: misc.c:927
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
Definition: session.c:181
#define E_FAIL
Definition: ddrawi.h:102
#define debugstr_w
Definition: kernel32.h:32
#define S_FALSE
Definition: winerror.h:2357
HRESULT WINAPI UrlGetPartW(LPCWSTR pszIn, LPWSTR pszOut, LPDWORD pcchOut, DWORD dwPart, DWORD dwFlags)
Definition: url.c:2269
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
static const WCHAR url[]
Definition: encode.c:1432
GLbitfield flags
Definition: glext.h:7161
#define S_OK
Definition: intsafe.h:59
#define E_POINTER
Definition: winerror.h:2365
GLuint64EXT * result
Definition: glext.h:11304
#define SUCCEEDED(hr)
Definition: intsafe.h:57

Referenced by CoInternetParseUrl().

◆ parse_encode()

static HRESULT parse_encode ( LPCWSTR  url,
DWORD  flags,
LPWSTR  result,
DWORD  size,
DWORD rsize 
)
static

Definition at line 221 of file internet.c.

222 {
224  DWORD prsize;
225  HRESULT hres;
226 
227  TRACE("(%s %08x %p %d %p)\n", debugstr_w(url), flags, result, size, rsize);
228 
230 
231  if(protocol_info) {
232  hres = IInternetProtocolInfo_ParseUrl(protocol_info, url, PARSE_ENCODE,
233  flags, result, size, rsize, 0);
234  IInternetProtocolInfo_Release(protocol_info);
235  if(SUCCEEDED(hres))
236  return hres;
237  }
238 
239  prsize = size;
240  hres = UrlUnescapeW((LPWSTR)url, result, &prsize, flags);
241 
242  if(rsize)
243  *rsize = prsize;
244 
245  return hres;
246 }
static IInternetProtocolInfo protocol_info
Definition: misc.c:927
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
Definition: session.c:181
HRESULT WINAPI UrlUnescapeW(LPWSTR pszUrl, LPWSTR pszUnescaped, LPDWORD pcchUnescaped, DWORD dwFlags)
Definition: url.c:1367
#define debugstr_w
Definition: kernel32.h:32
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
static const WCHAR url[]
Definition: encode.c:1432
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
WCHAR * LPWSTR
Definition: xmlstorage.h:184
GLuint64EXT * result
Definition: glext.h:11304
#define SUCCEEDED(hr)
Definition: intsafe.h:57

Referenced by CoInternetParseUrl().

◆ parse_path_from_url()

static HRESULT parse_path_from_url ( LPCWSTR  url,
DWORD  flags,
LPWSTR  result,
DWORD  size,
DWORD rsize 
)
static

Definition at line 248 of file internet.c.

249 {
251  DWORD prsize;
252  HRESULT hres;
253 
254  TRACE("(%s %08x %p %d %p)\n", debugstr_w(url), flags, result, size, rsize);
255 
257 
258  if(protocol_info) {
259  hres = IInternetProtocolInfo_ParseUrl(protocol_info, url, PARSE_PATH_FROM_URL,
260  flags, result, size, rsize, 0);
261  IInternetProtocolInfo_Release(protocol_info);
262  if(SUCCEEDED(hres))
263  return hres;
264  }
265 
266  prsize = size;
267  hres = PathCreateFromUrlW(url, result, &prsize, 0);
268 
269  if(rsize)
270  *rsize = prsize;
271  return hres;
272 }
HRESULT WINAPI PathCreateFromUrlW(LPCWSTR pszUrl, LPWSTR pszPath, LPDWORD pcchPath, DWORD dwReserved)
Definition: path.c:3334
static IInternetProtocolInfo protocol_info
Definition: misc.c:927
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
Definition: session.c:181
#define debugstr_w
Definition: kernel32.h:32
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
static const WCHAR url[]
Definition: encode.c:1432
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
GLuint64EXT * result
Definition: glext.h:11304
#define SUCCEEDED(hr)
Definition: intsafe.h:57

Referenced by CoInternetParseUrl().

◆ parse_rootdocument()

static HRESULT parse_rootdocument ( LPCWSTR  url,
DWORD  flags,
LPWSTR  result,
DWORD  size,
DWORD rsize 
)
static

Definition at line 325 of file internet.c.

327 {
330  HRESULT hres;
331 
332  TRACE("(%s %08x %p %d %p)\n", debugstr_w(url), flags, result, size, rsize);
333 
335 
336  if(protocol_info) {
337  hres = IInternetProtocolInfo_ParseUrl(protocol_info, url, PARSE_ROOTDOCUMENT,
338  flags, result, size, rsize, 0);
339  IInternetProtocolInfo_Release(protocol_info);
340  if(SUCCEEDED(hres))
341  return hres;
342  }
343 
344  url_info.cbSize = sizeof(url_info);
345  if(FAILED(ParseURLW(url, &url_info)))
346  return E_FAIL;
347 
348  switch(url_info.nScheme) {
349  case URL_SCHEME_FTP:
350  case URL_SCHEME_HTTP:
351  case URL_SCHEME_HTTPS:
352  if(url_info.cchSuffix<3 || *(url_info.pszSuffix)!='/'
353  || *(url_info.pszSuffix+1)!='/')
354  return E_FAIL;
355 
356  if(size < url_info.cchProtocol+3) {
357  size = 0;
359 
360  if(rsize)
361  *rsize = size+url_info.cchProtocol+3;
362 
363  if(hres == E_POINTER)
364  return S_FALSE;
365 
366  return hres;
367  }
368 
369  size -= url_info.cchProtocol+3;
370  hres = UrlGetPartW(url, result+url_info.cchProtocol+3,
372 
373  if(hres == E_POINTER)
374  return S_FALSE;
375 
376  if(FAILED(hres))
377  return E_FAIL;
378 
379  if(rsize)
380  *rsize = size+url_info.cchProtocol+3;
381 
382  memcpy(result, url, (url_info.cchProtocol+3)*sizeof(WCHAR));
383  return hres;
384  default:
385  return E_FAIL;
386  }
387 }
static IInternetProtocolInfo protocol_info
Definition: misc.c:927
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
Definition: session.c:181
#define E_FAIL
Definition: ddrawi.h:102
#define debugstr_w
Definition: kernel32.h:32
#define S_FALSE
Definition: winerror.h:2357
HRESULT WINAPI UrlGetPartW(LPCWSTR pszIn, LPWSTR pszOut, LPDWORD pcchOut, DWORD dwPart, DWORD dwFlags)
Definition: url.c:2269
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
HRESULT hres
Definition: protocol.c:465
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
static const WCHAR url[]
Definition: encode.c:1432
GLbitfield flags
Definition: glext.h:7161
HRESULT WINAPI ParseURLW(LPCWSTR x, PARSEDURLW *y)
Definition: url.c:197
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
Definition: icif.c:77
#define E_POINTER
Definition: winerror.h:2365
GLuint64EXT * result
Definition: glext.h:11304
#define SUCCEEDED(hr)
Definition: intsafe.h:57

Referenced by CoInternetParseUrl().

◆ parse_schema()

static HRESULT parse_schema ( LPCWSTR  url,
DWORD  flags,
LPWSTR  result,
DWORD  size,
DWORD rsize 
)
static

Definition at line 149 of file internet.c.

150 {
151  WCHAR *ptr;
152  DWORD len = 0;
153 
154  TRACE("(%s %08x %p %d %p)\n", debugstr_w(url), flags, result, size, rsize);
155 
156  if(flags)
157  ERR("wrong flags\n");
158 
159  ptr = strchrW(url, ':');
160  if(ptr)
161  len = ptr-url;
162 
163  if(rsize)
164  *rsize = len;
165 
166  if(len >= size)
167  return E_POINTER;
168 
169  if(len)
170  memcpy(result, url, len*sizeof(WCHAR));
171  result[len] = 0;
172 
173  return S_OK;
174 }
WINE_UNICODE_INLINE WCHAR * strchrW(const WCHAR *str, WCHAR ch)
Definition: unicode.h:248
#define debugstr_w
Definition: kernel32.h:32
static PVOID ptr
Definition: dispmode.c:27
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
__wchar_t WCHAR
Definition: xmlstorage.h:180
static const WCHAR url[]
Definition: encode.c:1432
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
#define ERR(fmt,...)
Definition: debug.h:109
#define S_OK
Definition: intsafe.h:59
#define E_POINTER
Definition: winerror.h:2365
GLuint64EXT * result
Definition: glext.h:11304

Referenced by CoInternetParseUrl().

◆ parse_security_domain()

static HRESULT parse_security_domain ( LPCWSTR  url,
DWORD  flags,
LPWSTR  result,
DWORD  size,
DWORD rsize 
)
static

Definition at line 274 of file internet.c.

276 {
278  HRESULT hres;
279 
280  TRACE("(%s %08x %p %d %p)\n", debugstr_w(url), flags, result, size, rsize);
281 
283 
284  if(protocol_info) {
285  hres = IInternetProtocolInfo_ParseUrl(protocol_info, url, PARSE_SECURITY_DOMAIN,
286  flags, result, size, rsize, 0);
287  IInternetProtocolInfo_Release(protocol_info);
288  if(SUCCEEDED(hres))
289  return hres;
290  }
291 
292  return E_FAIL;
293 }
static IInternetProtocolInfo protocol_info
Definition: misc.c:927
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
Definition: session.c:181
#define E_FAIL
Definition: ddrawi.h:102
#define debugstr_w
Definition: kernel32.h:32
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
static const WCHAR url[]
Definition: encode.c:1432
GLbitfield flags
Definition: glext.h:7161
GLuint64EXT * result
Definition: glext.h:11304
#define SUCCEEDED(hr)
Definition: intsafe.h:57

Referenced by CoInternetParseUrl().

◆ parse_security_url()

static HRESULT parse_security_url ( LPCWSTR  url,
DWORD  flags,
LPWSTR  result,
DWORD  size,
DWORD rsize 
)
static

Definition at line 202 of file internet.c.

203 {
205  HRESULT hres;
206 
207  TRACE("(%s %08x %p %d %p)\n", debugstr_w(url), flags, result, size, rsize);
208 
210 
211  if(protocol_info) {
212  hres = IInternetProtocolInfo_ParseUrl(protocol_info, url, PARSE_SECURITY_URL,
213  flags, result, size, rsize, 0);
214  IInternetProtocolInfo_Release(protocol_info);
215  return hres;
216  }
217 
218  return E_FAIL;
219 }
static IInternetProtocolInfo protocol_info
Definition: misc.c:927
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
Definition: session.c:181
#define E_FAIL
Definition: ddrawi.h:102
#define debugstr_w
Definition: kernel32.h:32
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
static const WCHAR url[]
Definition: encode.c:1432
GLbitfield flags
Definition: glext.h:7161
GLuint64EXT * result
Definition: glext.h:11304

Referenced by CoInternetParseUrl().

◆ set_feature_on_process()

static void set_feature_on_process ( INTERNETFEATURELIST  feature,
BOOL  enable 
)
static

Definition at line 522 of file internet.c.

523 {
525 
528 
530 }
INTERNETFEATURELIST feature
Definition: misc.c:1689
static feature_control process_feature_controls[FEATURE_ENTRY_COUNT]
Definition: internet.c:118
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static CRITICAL_SECTION process_features_cs
Definition: internet.c:98
BOOL check_registry
Definition: internet.c:110
GLboolean enable
Definition: glext.h:11120
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)

Referenced by set_internet_feature().

◆ set_internet_feature()

static HRESULT set_internet_feature ( INTERNETFEATURELIST  feature,
DWORD  flags,
BOOL  enable 
)
static

Definition at line 532 of file internet.c.

533 {
534  const DWORD supported_flags = SET_FEATURE_ON_PROCESS;
535 
536  if(feature >= FEATURE_ENTRY_COUNT)
537  return E_FAIL;
538 
539  if(flags & ~supported_flags)
540  FIXME("Unsupported flags: %08x\n", flags & ~supported_flags);
541 
542  if(flags & SET_FEATURE_ON_PROCESS)
544 
545  return S_OK;
546 }
INTERNETFEATURELIST feature
Definition: misc.c:1689
#define E_FAIL
Definition: ddrawi.h:102
#define FIXME(fmt,...)
Definition: debug.h:110
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
static void set_feature_on_process(INTERNETFEATURELIST feature, BOOL enable)
Definition: internet.c:522
#define S_OK
Definition: intsafe.h:59
GLboolean enable
Definition: glext.h:11120

Referenced by CoInternetSetFeatureEnabled().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( urlmon  )

Variable Documentation

◆ feature_addon_managementW

const WCHAR feature_addon_managementW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','A','D','D','O','N','_','M','A','N','A','G','E','M','E','N','T',0}

Definition at line 61 of file internet.c.

◆ feature_behaviorsW

const WCHAR feature_behaviorsW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','B','E','H','A','V','I','O','R','S',0}

Definition at line 47 of file internet.c.

◆ feature_block_input_promptsW

const WCHAR feature_block_input_promptsW[]
static
Initial value:
=
{'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}

Definition at line 95 of file internet.c.

◆ feature_control_keyW

const WCHAR feature_control_keyW[]
static
Initial value:
=
{'S','o','f','t','w','a','r','e','\\',
'M','i','c','r','o','s','o','f','t','\\',
'I','n','t','e','r','n','e','t',' ','E','x','p','l','o','r','e','r','\\',
'M','a','i','n','\\',
'F','e','a','t','u','r','e','C','o','n','t','r','o','l',0}

Definition at line 28 of file internet.c.

Referenced by load_process_feature().

◆ feature_disable_legacy_compressionW

const WCHAR feature_disable_legacy_compressionW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','D','I','S','A','B','L','E','_','L','E','G','A','C','Y','_',
'C','O','M','P','R','E','S','S','I','O','N',0}

Definition at line 82 of file internet.c.

◆ feature_disable_mk_protocolW

const WCHAR feature_disable_mk_protocolW[]
static
Initial value:
=
{'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}

Definition at line 49 of file internet.c.

◆ feature_disable_navigation_soundsW

const WCHAR feature_disable_navigation_soundsW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','D','I','S','A','B','L','E','_','N','A','V','I','G','A','T','I','O','N','_',
'S','O','U','N','D','S',0}

Definition at line 79 of file internet.c.

◆ feature_disable_telnet_protocolW

const WCHAR feature_disable_telnet_protocolW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','D','I','S','A','B','L','E','_','T','E','L','N','E','T','_',
'P','R','O','T','O','C','O','L',0}

Definition at line 90 of file internet.c.

◆ feature_feedsW

const WCHAR feature_feedsW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','F','E','E','D','S',0}

Definition at line 93 of file internet.c.

◆ feature_force_addr_and_statusW

const WCHAR feature_force_addr_and_statusW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','F','O','R','C','E','_','A','D','D','R','_','A','N','D','_',
'S','T','A','T','U','S',0}

Definition at line 85 of file internet.c.

◆ feature_get_url_dom_filepath_unencodedW

const WCHAR feature_get_url_dom_filepath_unencodedW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','G','E','T','_','U','R','L','_','D','O','M','_',
'F','I','L','E','P','A','T','H','_','U','N','E','N','C','O','D','E','D',0}

Definition at line 72 of file internet.c.

◆ feature_http_username_password_disableW

const WCHAR feature_http_username_password_disableW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','H','T','T','P','_','U','S','E','R','N','A','M','E','_',
'P','A','S','S','W','O','R','D','_','D','I','S','A','B','L','E',0}

Definition at line 65 of file internet.c.

◆ feature_localmachine_lockdownW

const WCHAR feature_localmachine_lockdownW[]
static
Initial value:
=
{'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}

Definition at line 51 of file internet.c.

◆ feature_mime_handlingW

const WCHAR feature_mime_handlingW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','M','I','M','E','_','H','A','N','D','L','I','N','G',0}

Definition at line 39 of file internet.c.

◆ feature_mime_sniffingW

const WCHAR feature_mime_sniffingW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','M','I','M','E','_','S','N','I','F','F','I','N','G',0}

Definition at line 41 of file internet.c.

◆ feature_object_cachingW

const WCHAR feature_object_cachingW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','O','B','J','E','C','T','_','C','A','C','H','I','N','G',0}

Definition at line 35 of file internet.c.

◆ feature_protocol_lockdownW

const WCHAR feature_protocol_lockdownW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','P','R','O','T','O','C','O','L','_','L','O','C','K','D','O','W','N',0}

Definition at line 63 of file internet.c.

◆ feature_restrict_activexinstallW

const WCHAR feature_restrict_activexinstallW[]
static
Initial value:
=
{'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}

Definition at line 55 of file internet.c.

◆ feature_restrict_filedownloadW

const WCHAR feature_restrict_filedownloadW[]
static
Initial value:
=
{'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}

Definition at line 59 of file internet.c.

◆ feature_safe_bindtoobjectW

const WCHAR feature_safe_bindtoobjectW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','S','A','F','E','_','B','I','N','D','T','O','O','B','J','E','C','T',0}

Definition at line 68 of file internet.c.

◆ feature_securitybandW

const WCHAR feature_securitybandW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','S','E','C','U','R','I','T','Y','B','A','N','D',0}

Definition at line 53 of file internet.c.

◆ feature_ssluxW

const WCHAR feature_ssluxW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','S','S','L','U','X',0}

Definition at line 77 of file internet.c.

◆ feature_tabbed_browsingW

const WCHAR feature_tabbed_browsingW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','T','A','B','B','E','D','_','B','R','O','W','S','I','N','G',0}

Definition at line 75 of file internet.c.

◆ feature_unc_savedfilecheckW

const WCHAR feature_unc_savedfilecheckW[]
static
Initial value:
=
{'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}

Definition at line 70 of file internet.c.

◆ feature_validate_navigate_urlW

const WCHAR feature_validate_navigate_urlW[]
static
Initial value:
=
{'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}

Definition at line 57 of file internet.c.

◆ feature_weboc_popupmanagementW

const WCHAR feature_weboc_popupmanagementW[]
static
Initial value:
=
{'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}

Definition at line 45 of file internet.c.

◆ feature_window_restrictionsW

const WCHAR feature_window_restrictionsW[]
static
Initial value:
=
{'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}

Definition at line 43 of file internet.c.

◆ feature_xmlhttpW

const WCHAR feature_xmlhttpW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','X','M','L','H','T','T','P',0}

Definition at line 88 of file internet.c.

◆ feature_zone_elevationW

const WCHAR feature_zone_elevationW[]
static
Initial value:
=
{'F','E','A','T','U','R','E','_','Z','O','N','E','_','E','L','E','V','A','T','I','O','N',0}

Definition at line 37 of file internet.c.

◆ process_feature_controls

feature_control process_feature_controls[FEATURE_ENTRY_COUNT]
static
Initial value:
= {
}
static const WCHAR feature_validate_navigate_urlW[]
Definition: internet.c:57
#define TRUE
Definition: types.h:120
static const WCHAR feature_behaviorsW[]
Definition: internet.c:47
static const WCHAR feature_get_url_dom_filepath_unencodedW[]
Definition: internet.c:72
static const WCHAR feature_disable_legacy_compressionW[]
Definition: internet.c:82
static const WCHAR feature_disable_navigation_soundsW[]
Definition: internet.c:79
static const WCHAR feature_http_username_password_disableW[]
Definition: internet.c:65
static const WCHAR feature_mime_handlingW[]
Definition: internet.c:39
static const WCHAR feature_securitybandW[]
Definition: internet.c:53
static const WCHAR feature_disable_mk_protocolW[]
Definition: internet.c:49
static const WCHAR feature_weboc_popupmanagementW[]
Definition: internet.c:45
static const WCHAR feature_object_cachingW[]
Definition: internet.c:35
static const WCHAR feature_xmlhttpW[]
Definition: internet.c:88
static const WCHAR feature_protocol_lockdownW[]
Definition: internet.c:63
static const WCHAR feature_tabbed_browsingW[]
Definition: internet.c:75
static const WCHAR feature_ssluxW[]
Definition: internet.c:77
static const WCHAR feature_block_input_promptsW[]
Definition: internet.c:95
static const WCHAR feature_zone_elevationW[]
Definition: internet.c:37
static const WCHAR feature_mime_sniffingW[]
Definition: internet.c:41
static const WCHAR feature_restrict_activexinstallW[]
Definition: internet.c:55
static const WCHAR feature_addon_managementW[]
Definition: internet.c:61
static const WCHAR feature_window_restrictionsW[]
Definition: internet.c:43
static const WCHAR feature_safe_bindtoobjectW[]
Definition: internet.c:68
static const WCHAR feature_unc_savedfilecheckW[]
Definition: internet.c:70
static const WCHAR feature_restrict_filedownloadW[]
Definition: internet.c:59
static const WCHAR feature_localmachine_lockdownW[]
Definition: internet.c:51
static const WCHAR feature_disable_telnet_protocolW[]
Definition: internet.c:90
static const WCHAR feature_force_addr_and_statusW[]
Definition: internet.c:85
static const WCHAR feature_feedsW[]
Definition: internet.c:93

Definition at line 118 of file internet.c.

Referenced by get_feature_from_process(), load_process_feature(), and set_feature_on_process().

◆ process_features_cs

static CRITICAL_SECTION process_features_cs = { &process_features_cs_dbg, -1, 0, 0, 0, 0 }
static

Definition at line 98 of file internet.c.

Referenced by get_feature_from_process(), and set_feature_on_process().

◆ process_features_cs_dbg

CRITICAL_SECTION_DEBUG process_features_cs_dbg
static
Initial value:
=
{
0, 0, { (DWORD_PTR)(__FILE__ ": process features") }
}
#define DWORD_PTR
Definition: treelist.c:76
static CRITICAL_SECTION process_features_cs
Definition: internet.c:98
static CRITICAL_SECTION_DEBUG process_features_cs_dbg
Definition: internet.c:99
LIST_ENTRY ProcessLocksList
Definition: winbase.h:848

Definition at line 99 of file internet.c.