winamp/Src/omBrowser/internetFeatures.h
2024-09-24 14:54:57 +02:00

65 lines
2.0 KiB
C++

#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