|
|
|
@ -9279,6 +9279,32 @@ BOOL shell32_TrackPopupMenu(HMENU hMenu, UINT uFlags, int x, int y, int nReserve |
|
|
|
#pragma endregion |
|
|
|
#pragma endregion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma region "Fix Windows 10 taskbar high DPI button width bug" |
|
|
|
|
|
|
|
#ifdef _WIN64 |
|
|
|
|
|
|
|
int patched_GetSystemMetrics(int nIndex) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if ((bOldTaskbar && nIndex == SM_CXMINIMIZED) || nIndex == SM_CXICONSPACING || nIndex == SM_CYICONSPACING) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
wchar_t wszDim[MAX_PATH + 4]; |
|
|
|
|
|
|
|
ZeroMemory(wszDim, sizeof(wchar_t) * (MAX_PATH + 4)); |
|
|
|
|
|
|
|
DWORD dwSize = MAX_PATH; |
|
|
|
|
|
|
|
wchar_t* pVal = L"MinWidth"; |
|
|
|
|
|
|
|
if (nIndex == SM_CXICONSPACING) pVal = L"IconSpacing"; |
|
|
|
|
|
|
|
else if (nIndex == SM_CYICONSPACING) pVal = L"IconVerticalSpacing"; |
|
|
|
|
|
|
|
RegGetValueW(HKEY_CURRENT_USER, L"Control Panel\\Desktop\\WindowMetrics", pVal, SRRF_RT_REG_SZ, NULL, wszDim, &dwSize); |
|
|
|
|
|
|
|
int dwDim = _wtoi(wszDim); |
|
|
|
|
|
|
|
if (dwDim <= 0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (nIndex == SM_CXMINIMIZED) return 160; |
|
|
|
|
|
|
|
else if (dwDim < 0) return MulDiv(dwDim, GetDpiForSystem(), -1440); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return GetSystemMetrics(nIndex); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#pragma endregion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DWORD InjectBasicFunctions(BOOL bIsExplorer, BOOL bInstall) |
|
|
|
DWORD InjectBasicFunctions(BOOL bIsExplorer, BOOL bInstall) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//Sleep(150);
|
|
|
|
//Sleep(150);
|
|
|
|
@ -9843,6 +9869,11 @@ DWORD Inject(BOOL bIsExplorer) |
|
|
|
VnPatchIAT(hExplorer, "uxtheme.dll", "OpenThemeDataForDpi", explorer_OpenThemeDataForDpi); |
|
|
|
VnPatchIAT(hExplorer, "uxtheme.dll", "OpenThemeDataForDpi", explorer_OpenThemeDataForDpi); |
|
|
|
VnPatchIAT(hExplorer, "uxtheme.dll", "DrawThemeBackground", explorer_DrawThemeBackground); |
|
|
|
VnPatchIAT(hExplorer, "uxtheme.dll", "DrawThemeBackground", explorer_DrawThemeBackground); |
|
|
|
VnPatchIAT(hExplorer, "uxtheme.dll", "CloseThemeData", explorer_CloseThemeData); |
|
|
|
VnPatchIAT(hExplorer, "uxtheme.dll", "CloseThemeData", explorer_CloseThemeData); |
|
|
|
|
|
|
|
// Fix Windows 10 taskbar high DPI button width bug
|
|
|
|
|
|
|
|
if (IsWindows11()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
VnPatchIAT(hExplorer, "api-ms-win-ntuser-sysparams-l1-1-0.dll", "GetSystemMetrics", patched_GetSystemMetrics); |
|
|
|
|
|
|
|
} |
|
|
|
//VnPatchIAT(hExplorer, "api-ms-win-core-libraryloader-l1-2-0.dll", "LoadStringW", explorer_LoadStringWHook);
|
|
|
|
//VnPatchIAT(hExplorer, "api-ms-win-core-libraryloader-l1-2-0.dll", "LoadStringW", explorer_LoadStringWHook);
|
|
|
|
if (bClassicThemeMitigations) |
|
|
|
if (bClassicThemeMitigations) |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -10167,6 +10198,12 @@ DWORD Inject(BOOL bIsExplorer) |
|
|
|
VnPatchIAT(hShell32, "API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL", "RegSetValueExW", shell32_RegSetValueExW); |
|
|
|
VnPatchIAT(hShell32, "API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL", "RegSetValueExW", shell32_RegSetValueExW); |
|
|
|
VnPatchIAT(hShell32, "user32.dll", "DeleteMenu", shell32_DeleteMenu); |
|
|
|
VnPatchIAT(hShell32, "user32.dll", "DeleteMenu", shell32_DeleteMenu); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Fix high DPI wrong (desktop) icon spacing bug
|
|
|
|
|
|
|
|
if (IsWindows11()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
VnPatchIAT(hShell32, "user32.dll", "GetSystemMetrics", patched_GetSystemMetrics); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
printf("Setup shell32 functions done\n"); |
|
|
|
printf("Setup shell32 functions done\n"); |
|
|
|
|
|
|
|
|
|
|
|
|