8#define _ATL_NO_EXCEPTIONS
59 { POLID_UsePathEnvVarForCommandTemplates,
L"Explorer",
L"UsePathEnvVarForCommandTemplates",
61 { POLID_ScanWithAntiVirus,
L"Attachments",
L"ScanWithAntiVirus", &
c_TriValue },
62 { POLID_SaveZoneInformation,
L"Attachments",
L"SaveZoneInformation", &
c_TriValue },
63 { POLID_UseTrustedHandlers,
L"Attachments",
L"UseTrustedHandlers", &
c_TriValue },
64 { POLID_HideZoneInfoOnProperties,
L"Attachments",
L"HideZoneInfoOnProperties", &
c_Bool },
65 { POLID_DefaultFileTypeRisk,
L"Associations",
L"DefaultFileTypeRisk", &
c_Special },
66 { POLID_HighRiskFileTypes,
L"Associations",
L"HighRiskFileTypes", &
c_String },
67 { POLID_ModRiskFileTypes,
L"Associations",
L"ModRiskFileTypes", &
c_String },
68 { POLID_LowRiskFileTypes,
L"Associations",
L"LowRiskFileTypes", &
c_String },
69 { POLID_PreXPSP2ShellProtocolBehavior,
L"Explorer",
L"PreXPSP2ShellProtocolBehavior", &
c_Bool },
70 { POLID_CompareJunctionness,
L"Explorer",
L"CompareJunctionness", &
c_Bool },
87 static void*
operator new(
size_t size)
93 static void operator delete(
void *
ptr)
101 m_pszRootKey =
L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies";
161 for (iItem = 0; iItem <
m_cItems; ++iItem)
225 if (dwValue < pConstraint->dwMin || pConstraint->dwMax < dwValue)
WINBASEAPI _Check_return_ _Out_ AppPolicyProcessTerminationMethod * policy
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
HRESULT GetValue(_In_ REFGUID rpolid, _Out_opt_ PVOID pvValue, _Out_opt_ PDWORD pcbValue)
void _ValidateCachedResults()
const SHPOLICY_ITEM * m_pItems
HRESULT _GetValue(_In_ LPCWSTR pszSubKey, _In_ LPCWSTR pszValueName, _In_ const SHPOLICY_CONSTRAINT *pConstraint, _Out_opt_ PDWORD pdwType, _Out_opt_ PVOID pvData, _Inout_opt_ PDWORD pcbData)
BOOL Initialize(const SHPOLICY_ITEM *pItems, UINT cItems)
PSHPOLICY_RESULT m_pResults
static void _CacheResult(const SHPOLICY_CONSTRAINT *pConstraint, PVOID pvValue, PDWORD pcbValue, PSHPOLICY_RESULT pResult)
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
HANDLE WINAPI SHGlobalCounterCreate(REFGUID guid)
LONG WINAPI SHGlobalCounterGetValue(HANDLE hSem)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
#define ERROR_FILE_NOT_FOUND
static int int const SCRIPT_CONTROL const SCRIPT_STATE SCRIPT_ITEM * pItems
_In_ LPWSTR _In_ DWORD _In_ LPCVOID pvData
#define UNREFERENCED_PARAMETER(P)
struct tagSHPOLICY_CONSTRAINT * PSHPOLICY_CONSTRAINT
enum tagPOLICY_STATE POLICY_STATE
static const SHPOLICY_CONSTRAINT c_String
static BOOL SHPolicyCache_Create(VOID)
struct tagSHPOLICY_CONSTRAINT SHPOLICY_CONSTRAINT
static const SHPOLICY_CONSTRAINT c_Special
EXTERN_C VOID SHPolicyCache_DllProcessAttach(VOID)
struct tagSHPOLICY_ITEM * PSHPOLICY_ITEM
EXTERN_C VOID SHPolicyCache_DllProcessDetach(VOID)
EXTERN_C HRESULT WINAPI SHWindowsPolicyGetValue(_In_ REFGUID rpolid, _Out_opt_ PVOID pvValue, _Out_opt_ PDWORD pcbValue)
struct tagSHPOLICY_RESULT SHPOLICY_RESULT
CPolicyCache * g_pPolicyCache
struct tagSHPOLICY_ITEM SHPOLICY_ITEM
struct tagSHPOLICY_RESULT * PSHPOLICY_RESULT
static const SHPOLICY_ITEM g_PolicyItems[]
static const SHPOLICY_CONSTRAINT c_TriValue
CRITICAL_SECTION g_csPolicyLock
static const SHPOLICY_CONSTRAINT c_Bool
#define IsEqualGUID(rguid1, rguid2)
_In_opt_ LPCSTR _In_opt_ LPCSTR _In_ SRRF _Out_opt_ LPDWORD pdwType
_In_ _Out_writes_opt_ pcchValueName _Inout_opt_ LPDWORD _Out_opt_ _Out_writes_bytes_to_opt_ pcbData _Inout_opt_ LPDWORD pcbData
_In_opt_ LPCSTR pszSubKey
#define E_DATATYPE_MISMATCH
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER