Browse Source

All: Substitute `RegDeleteKeyW` with `RegDeleteTreeW`

This is because the keys should be deleted regardless of whether they
contain subkeys or not.
pull/1138/head
Valentin Radu 3 years ago
parent
commit
8fd7c46db0
  1. 2
      ExplorerPatcher/GUI.c
  2. 10
      ExplorerPatcher/dllmain.c
  3. 13
      ep_setup/ep_setup.c
  4. 4
      ep_weather_host/ep_weather.c

2
ExplorerPatcher/GUI.c

@ -469,7 +469,7 @@ LSTATUS GUI_Internal_RegSetValueExW( @@ -469,7 +469,7 @@ LSTATUS GUI_Internal_RegSetValueExW(
{
if (!*(DWORD*)lpData)
{
RegDeleteKeyW(HKEY_CURRENT_USER, L"SOFTWARE\\Classes\\CLSID\\{d93ed569-3b3e-4bff-8355-3c44f6a52bb5}\\InProcServer32");
RegDeleteTreeW(HKEY_CURRENT_USER, L"SOFTWARE\\Classes\\CLSID\\{d93ed569-3b3e-4bff-8355-3c44f6a52bb5}");
}
else
{

10
ExplorerPatcher/dllmain.c

@ -677,7 +677,7 @@ DWORD CheckForegroundThread(DWORD dwMode) @@ -677,7 +677,7 @@ DWORD CheckForegroundThread(DWORD dwMode)
elapsedCheckForeground = milliseconds_now();
if (!dwMode)
{
RegDeleteKeyW(HKEY_CURRENT_USER, _T(SEH_REGPATH));
RegDeleteTreeW(HKEY_CURRENT_USER, _T(SEH_REGPATH));
TerminateShellExperienceHost();
Sleep(100);
}
@ -11616,7 +11616,7 @@ HRESULT WINAPI _DllUnregisterServer() @@ -11616,7 +11616,7 @@ HRESULT WINAPI _DllUnregisterServer()
RegCloseKey(hKey);
if (!dwLastError)
{
RegDeleteKeyW(
RegDeleteTreeW(
HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Classes\\CLSID\\" TEXT(EP_CLSID)
);
@ -11649,7 +11649,7 @@ HRESULT WINAPI _DllUnregisterServer() @@ -11649,7 +11649,7 @@ HRESULT WINAPI _DllUnregisterServer()
RegCloseKey(hKey);
if (!dwLastError)
{
RegDeleteKeyW(
RegDeleteTreeW(
HKEY_LOCAL_MACHINE,
L"SOFTWARE\\WOW6432Node\\Classes\\CLSID\\" TEXT(EP_CLSID)
);
@ -11676,7 +11676,7 @@ HRESULT WINAPI _DllUnregisterServer() @@ -11676,7 +11676,7 @@ HRESULT WINAPI _DllUnregisterServer()
RegCloseKey(hKey);
if (!dwLastError)
{
RegDeleteKeyW(
RegDeleteTreeW(
HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Classes\\Drive\\shellex\\FolderExtensions\\" TEXT(EP_CLSID)
);
@ -11703,7 +11703,7 @@ HRESULT WINAPI _DllUnregisterServer() @@ -11703,7 +11703,7 @@ HRESULT WINAPI _DllUnregisterServer()
RegCloseKey(hKey);
if (!dwLastError)
{
RegDeleteKeyW(
RegDeleteTreeW(
HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects\\" TEXT(EP_CLSID)
);

13
ep_setup/ep_setup.c

@ -310,19 +310,8 @@ BOOL SetupUninstallEntry(BOOL bInstall, WCHAR* wszPath) @@ -310,19 +310,8 @@ BOOL SetupUninstallEntry(BOOL bInstall, WCHAR* wszPath)
}
if (hKey)
{
dwLastError = RegDeleteTreeW(
hKey,
0
);
dwLastError = RegDeleteTreeW(hKey, NULL);
RegCloseKey(hKey);
if (!dwLastError)
{
RegDeleteKeyW(
HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" _T(EP_CLSID) L"_" _T(PRODUCT_NAME)
);
}
return TRUE;
}
}
}

4
ep_weather_host/ep_weather.c

@ -218,7 +218,7 @@ HRESULT WINAPI _DllUnregisterServer() @@ -218,7 +218,7 @@ HRESULT WINAPI _DllUnregisterServer()
RegCloseKey(hKey);
if (!dwLastError)
{
RegDeleteKeyW(
RegDeleteTreeW(
HKEY_LOCAL_MACHINE,
_T("SOFTWARE\\Classes\\CLSID\\") _T(CLSID_EPWeather_TEXT)
);
@ -242,7 +242,7 @@ HRESULT WINAPI _DllUnregisterServer() @@ -242,7 +242,7 @@ HRESULT WINAPI _DllUnregisterServer()
RegCloseKey(hKey);
if (!dwLastError)
{
RegDeleteKeyW(
RegDeleteTreeW(
HKEY_LOCAL_MACHINE,
_T("SOFTWARE\\Classes\\AppID\\") _T(CLSID_EPWeather_TEXT)
);

Loading…
Cancel
Save