aboutsummaryrefslogtreecommitdiff
path: root/Src/omBrowser/internetFeatures.h
blob: 922aa88034560d73b8eeaa5194a5f61e2e0a3a6d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#ifndef NULLSOFT_WINAMP_INTERNET_FEATURES_HELPER_HEADER
#define NULLSOFT_WINAMP_INTERNET_FEATURES_HELPER_HEADER

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

#include <wtypes.h>
#include <urlmon.h>

#ifndef  FEATURE_TABBED_BROWSING
  #define FEATURE_TABBED_BROWSING ((INTERNETFEATURELIST)19)
#endif //FEATURE_TABBED_BROWSING

#ifndef FEATURE_SSLUX
  #define FEATURE_SSLUX ((INTERNETFEATURELIST)20)
#endif // FEATURE_SSLUX

#ifndef FEATURE_DISABLE_NAVIGATION_SOUNDS
  #define FEATURE_DISABLE_NAVIGATION_SOUNDS ((INTERNETFEATURELIST)21)
#endif // FEATURE_DISABLE_NAVIGATION_SOUNDS

#ifndef FEATURE_DISABLE_LEGACY_COMPRESSION
  #define FEATURE_DISABLE_LEGACY_COMPRESSION ((INTERNETFEATURELIST)22)
#endif // FEATURE_DISABLE_LEGACY_COMPRESSION

#ifndef  FEATURE_FORCE_ADDR_AND_STATUS
  #define FEATURE_FORCE_ADDR_AND_STATUS ((INTERNETFEATURELIST)23)
#endif //FEATURE_FORCE_ADDR_AND_STATUS

#ifndef  FEATURE_BLOCK_INPUT_PROMPTS
  #define FEATURE_BLOCK_INPUT_PROMPTS ((INTERNETFEATURELIST)27)
#endif //FEATURE_BLOCK_INPUT_PROMPTS

class InternetFeatures
{
public:
	InternetFeatures();
	~InternetFeatures();

public:
	HRESULT SetEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags, BOOL fEnable);
	HRESULT IsEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags);

	HRESULT SetDWORDFeature(const wchar_t *featureName, BOOL perUser, unsigned long value);
	HRESULT GetDWORDFeature(const wchar_t *featureName, BOOL perUser, unsigned long *value);
	void DeleteFeature(const wchar_t *featureName, BOOL perUser);

protected:
	HRESULT LoadModule();
	const wchar_t *GetProcessName();

private:
	typedef HRESULT (WINAPI *COINTERNETSETFEATUREENABLED)(INTERNETFEATURELIST /*FeatureEntry*/, DWORD /*dwFlags*/, BOOL /*fEnable*/);
	typedef HRESULT (WINAPI *COINTERNETISFEATUREENABLED)(INTERNETFEATURELIST /*FeatureEntry*/, DWORD /*dwFlags*/);
	
private:
	HMODULE module;
	HRESULT loadResult;
	COINTERNETSETFEATUREENABLED CoInternetSetFeatureEnabled;
	COINTERNETISFEATUREENABLED CoInternetIsFeatureEnabled;
	wchar_t *processName_;
};

#endif NULLSOFT_WINAMP_INTERNET_FEATURES_HELPER_HEADER