18 const GUID CLSID_CLayerUIPropPage = { 0x513D916F, 0x2A8E, 0x4F51, { 0xAE, 0xAB, 0x0C, 0xBC, 0x76, 0xFB, 0x1A, 0xF8 } };
21 #define GPLK_MACHINE 2 22 #define MAX_LAYER_LENGTH 256 28 {
L"Windows 95",
L"WIN95" },
29 {
L"Windows 98/ME",
L"WIN98" },
30 {
L"Windows NT 4.0 (SP5)",
L"NT4SP5" },
31 {
L"Windows 2000",
L"WIN2000" },
32 {
L"Windows XP (SP3)",
L"WINXPSP3" },
33 {
L"Windows Server 2003 (SP1)",
L"WINSRV03SP1" },
34 {
L"Windows Server 2008 (SP1)",
L"WINSRV08SP1" },
35 {
L"Windows Vista (SP2)",
L"VISTASP2" },
36 {
L"Windows 7",
L"WIN7RTM" },
37 {
L"Windows 7 (SP1)",
L"WIN7SP1" },
38 {
L"Windows 8.1",
L"WIN81RTM" },
39 {
L"Windows 10",
L"WIN10RTM" },
40 {
L"Windows Server 2016",
L"WINSRV16RTM" },
41 {
L"Windows Server 2019",
L"WINSRV19RTM" },
53 {
L"DISABLEDWM", IDC_??,
TRUE },
54 {
L"HIGHDPIAWARE", IDC_??,
TRUE },
55 {
L"RUNASADMIN", IDC_??,
TRUE },
106 #define ACDBG(fmt, ...) ACDBG_FN(__FUNCTION__, fmt, ##__VA_ARGS__ ) 111 : m_IsSfcProtected(
FALSE)
112 , m_AllowPermLayer(
FALSE)
114 , m_RegistryOSMode(0)
116 , m_RegistryEnabledLayers(0)
121 m_psp.pszTitle =
title.Detach();
139 if (dwRequired == dwReturned)
159 ACDBG(
L"Failed to find an extension: '%s'\r\n", (
PCWSTR)ExpandedFilename);
167 ACDBG(
L"Failed to read link target from: '%s'\r\n", (
PCWSTR)ExpandedFilename);
172 ACDBG(
L"Link redirects to itself: '%s'\r\n", (
PCWSTR)ExpandedFilename);
181 tmp +=
L"\\System32";
185 ACDBG(
L"Ignoring System32: %s\r\n", (
PCWSTR)ExpandedFilename);
193 ACDBG(
L"Ignoring WinSxs: %s\r\n", (
PCWSTR)ExpandedFilename);
209 ACDBG(
L"Extension not included: '%s'\r\n", pwszExt);
218 *OSMode = *Enabledlayers = 0;
219 customLayers.RemoveAll();
230 *Enabledlayers |= (1<<
n);
251 customLayers.Add(
Layer);
279 if (lhs.GetSize() != rhs.GetSize())
282 for (
int n = 0;
n < lhs.GetSize(); ++
n)
284 if (lhs[
n] != rhs[
n])
348 ACDBG(
L"AllowPermLayer returned FALSE\r\n");
354 ACDBG(
L"Protected OS file\r\n");
392 customLayers +=
L", ";
436 size =
sizeof(dwValue);
451 FORMATETC etc = {
CF_HDROP,
NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
457 HRESULT hr = pDataObj->GetData(&etc, &stg);
460 ACDBG(
L"Failed to retrieve Data from pDataObj.\r\n");
478 ACDBG(
L"Failed to query the file.\r\n");
483 ACDBG(
L"Invalid number of files: %d\r\n", uNumFiles);
489 ACDBG(
L"Could not lock stg.hGlobal\r\n");
#define IDC_CHKDISABLEVISUALTHEMES
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
_In_ ULONG _In_ ULONG _In_ ULONG Length
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
#define ComboBox_AddString(hwndCtl, lpsz)
#define IDC_EDITCOMPATIBILITYMODES
BOOL WINAPI SetPermLayerState(PCWSTR wszPath, PCWSTR wszLayer, DWORD dwFlags, BOOL bMachine, BOOL bEnable)
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
IN BOOLEAN OUT PSTR Buffer
#define IDC_CHKRUNCOMPATIBILITY
BOOL WINAPI SfcIsFileProtected(HANDLE RpcHandle, LPCWSTR ProtFileName)
STDMETHODIMP Initialize(PCIDLIST_ABSOLUTE pidlFolder, LPDATAOBJECT pdtobj, HKEY hkeyProgID)
#define IDS_FAILED_NETWORK
CSimpleArray< CString > m_CustomLayers
_Check_return_ _CRTIMP wchar_t *__cdecl wcstok(_Inout_opt_z_ wchar_t *_Str, _In_z_ const wchar_t *_Delim)
LRESULT OnCtrlCommand(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
#define ComboBox_GetCurSel(hwndCtl)
BOOL WINAPI AllowPermLayer(PCWSTR path)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
static BOOL ArrayEquals(const CSimpleArray< CString > &lhs, const CSimpleArray< CString > &rhs)
#define IDS_FAILED_PROTECTED
IN PVCB IN PBCB OUT PDIRENT IN USHORT IN POEM_STRING Filename
INT_PTR DisableControls()
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
STRSAFEAPI StringCchPrintfExW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPWSTR *ppszDestEnd, size_t *pcchRemaining, STRSAFE_DWORD dwFlags, STRSAFE_LPCWSTR pszFormat,...)
void WINAPI SHIM_OBJ_NAME() OutputDebugStringW(LPCWSTR lpOutputString)
CSimpleArray< CString > m_RegistryCustomLayers
static struct @294 g_Layers[]
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
static BOOL GetLayerInfo(PCWSTR Filename, DWORD QueryFlags, PDWORD OSMode, PDWORD Enabledlayers, CSimpleArray< CString > &customLayers)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
LRESULT OnClickNotify(INT uCode, LPNMHDR hdr, BOOL &bHandled)
EXTERN_C BOOL WINAPI GetExeFromLnk(PCWSTR pszLnk, PWSTR pszExe, size_t cchSize)
LRESULT OnEditModes(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define IDC_CHKRUNIN256COLORS
BOOL WINAPI SdbGetPermLayerKeys(PCWSTR wszPath, PWSTR pwszLayers, PDWORD pdwBytes, DWORD dwFlags)
static BOOL DisableShellext()
HRESULT InitFile(PCWSTR Filename)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
void ReleaseBufferSetLength(_In_ int nNewLength)
DWORD m_RegistryEnabledLayers
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
BOOL GetEnvironmentVariable(_In_z_ PCXSTR pszVar)
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
#define IDC_COMPATIBILITYMODE
interface IDataObject * LPDATAOBJECT
#define ComboBox_SetCurSel(hwndCtl, index)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
BOOL ShowEditCompatModes(HWND hWnd, CLayerUIPropPage *page)
#define IDC_ENABLED_LAYERS
STRSAFEAPI StringCchVPrintfExW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPWSTR *ppszDestEnd, size_t *pcchRemaining, STRSAFE_DWORD dwFlags, STRSAFE_LPCWSTR pszFormat, va_list argList)
void ACDBG_FN(PCSTR FunctionName, PCWSTR Format,...)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 ACPI_STATUS const char UINT32 const char * FunctionName
static const WCHAR * g_AllowedExtensions[]
#define STRSAFE_NULL_ON_FAILURE
BOOL LoadString(_In_ UINT nID)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
#define IDC_CHKRUNIN640480RES
const GUID CLSID_CLayerUIPropPage
GLuint GLuint GLsizei GLenum type
static struct @293 g_CompatModes[]
UINT WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszwFile, UINT lLength)
BOOL IsBuiltinLayer(PCWSTR Name)
CStringT Left(int nCount) const
static PCWSTR BOOL bMachine
#define RegCloseKey(hKey)
#define HKEY_LOCAL_MACHINE