From 5f3c4b88922f3a301ce90534c90ec0400412f9d4 Mon Sep 17 00:00:00 2001 From: Valentin Radu Date: Mon, 1 Nov 2021 21:23:54 +0200 Subject: [PATCH] Fixed #252 (Show Cortana toggle on taskbar context menu works) --- ExplorerPatcher/ExplorerPatcher.rc | 8 ++++---- ExplorerPatcher/dllmain.c | 22 ++++++++++++++++++++-- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/ExplorerPatcher/ExplorerPatcher.rc b/ExplorerPatcher/ExplorerPatcher.rc index 33d0c0c..2b89d4f 100644 --- a/ExplorerPatcher/ExplorerPatcher.rc +++ b/ExplorerPatcher/ExplorerPatcher.rc @@ -51,8 +51,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 22000,282,32,0 - PRODUCTVERSION 22000,282,32,0 + FILEVERSION 22000,282,32,2 + PRODUCTVERSION 22000,282,32,2 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -69,12 +69,12 @@ BEGIN BEGIN VALUE "CompanyName", "VALINET Solutions SRL" VALUE "FileDescription", "ExplorerPatcher" - VALUE "FileVersion", "22000.282.32.0" + VALUE "FileVersion", "22000.282.32.2" VALUE "InternalName", "ExplorerPatcher.dll" VALUE "LegalCopyright", "Copyright (C) 2006-2021 VALINET Solutions SRL. All rights reserved." VALUE "OriginalFilename", "ExplorerPatcher.dll" VALUE "ProductName", "ExplorerPatcher" - VALUE "ProductVersion", "22000.282.32.0" + VALUE "ProductVersion", "22000.282.32.2" END END BLOCK "VarFileInfo" diff --git a/ExplorerPatcher/dllmain.c b/ExplorerPatcher/dllmain.c index 25d6373..7d7593f 100644 --- a/ExplorerPatcher/dllmain.c +++ b/ExplorerPatcher/dllmain.c @@ -3687,6 +3687,23 @@ DWORD InjectBasicFunctions(BOOL bIsExplorer, BOOL bInstall) } +LSTATUS explorer_RegSetValueExW( + HKEY hKey, + LPCWSTR lpValueName, + DWORD Reserved, + DWORD dwType, + const BYTE* lpData, + DWORD cbData +) +{ + if (!lstrcmpW(lpValueName, L"ShowCortanaButton")) + { + return RegSetValueExW(hKey, L"TaskbarDa", Reserved, dwType, lpData, cbData); + } + + return RegSetValueExW(hKey, lpValueName, Reserved, dwType, lpData, cbData); +} + LSTATUS explorer_RegGetValueW( HKEY hkey, LPCWSTR lpSubKey, @@ -3705,10 +3722,10 @@ LSTATUS explorer_RegGetValueW( { lRes = RegGetValueW(hkey, lpSubKey, L"TaskbarDa", dwFlags, pdwType, pvData, pcbData); } - else if (!lstrcmpW(lpValue, L"PeopleBand")) + /*else if (!lstrcmpW(lpValue, L"PeopleBand")) { lRes = RegGetValueW(hkey, lpSubKey, L"TaskbarMn", dwFlags, pdwType, pvData, pcbData); - } + }*/ else { lRes = RegGetValueW(hkey, lpSubKey, lpValue, dwFlags, pdwType, pvData, pcbData); @@ -4056,6 +4073,7 @@ __declspec(dllexport) DWORD WINAPI main( VnPatchIAT(hExplorer, "api-ms-win-core-libraryloader-l1-2-0.dll", "GetProcAddress", explorer_GetProcAddressHook); VnPatchIAT(hExplorer, "shell32.dll", "ShellExecuteW", explorer_ShellExecuteW); VnPatchIAT(hExplorer, "API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL", "RegGetValueW", explorer_RegGetValueW); + VnPatchIAT(hExplorer, "API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL", "RegSetValueExW", explorer_RegSetValueExW); VnPatchIAT(hExplorer, "user32.dll", "MonitorFromRect", explorer_MonitorFromRect); } VnPatchIAT(hExplorer, "user32.dll", "TrackPopupMenuEx", explorer_TrackPopupMenuExHook);