From 08dec82aec36fd05c4445a2bba594e46ca849143 Mon Sep 17 00:00:00 2001 From: Amrsatrio Date: Sun, 18 Feb 2024 16:38:59 +0700 Subject: [PATCH] Setup: Slight fix in ProcessTaskbarDlls --- ExplorerPatcher/dllmain.c | 2 +- ep_setup/ep_setup.c | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/ExplorerPatcher/dllmain.c b/ExplorerPatcher/dllmain.c index 9900c6558..4f791d3f9 100644 --- a/ExplorerPatcher/dllmain.c +++ b/ExplorerPatcher/dllmain.c @@ -10160,7 +10160,7 @@ int RtlQueryFeatureConfigurationHook(UINT32 featureId, int sectionType, INT64* c { // This feature flag when enabled makes the flyouts disregard the left and right offsets, so that they // appear over the Copilot sidebar instead of beside it. Disabling this fixes start menu positioning - // when the taskbar is at the left or right side, but it produce that aforementioned behavior. + // when the taskbar is at the left or right side, but it will make that behavior occur again. buffer->enabledState = FEATURE_ENABLED_STATE_DISABLED; } break; diff --git a/ep_setup/ep_setup.c b/ep_setup/ep_setup.c index 019ec1b1c..a9fadd1df 100644 --- a/ep_setup/ep_setup.c +++ b/ep_setup/ep_setup.c @@ -440,15 +440,13 @@ BOOL DownloadResource(BOOL bInstall, LPCWSTR pwszURL, DWORD dwSize, LPCSTR chash return bOk; } -BOOL ProcessTaskbarDlls(BOOL bInstall, HINSTANCE hInstance, WCHAR wszPath[260], BOOL bExtractMode) +void ProcessTaskbarDlls(BOOL* bInOutOk, BOOL bInstall, BOOL bExtractMode, HINSTANCE hInstance, WCHAR wszPath[260]) { - BOOL bOk = TRUE; LPCWSTR pwszTaskbarDllName = bExtractMode ? NULL : PickTaskbarDll(); - if (bOk) bOk = InstallResource(bInstall && (bExtractMode || pwszTaskbarDllName && !wcscmp(pwszTaskbarDllName, L"ep_taskbar.2.dll")), hInstance, IDR_EP_TASKBAR_2, wszPath, L"ep_taskbar.2.dll"); - if (bOk) bOk = InstallResource(bInstall && (bExtractMode || pwszTaskbarDllName && !wcscmp(pwszTaskbarDllName, L"ep_taskbar.3.dll")), hInstance, IDR_EP_TASKBAR_3, wszPath, L"ep_taskbar.3.dll"); - if (bOk) bOk = InstallResource(bInstall && (bExtractMode || pwszTaskbarDllName && !wcscmp(pwszTaskbarDllName, L"ep_taskbar.4.dll")), hInstance, IDR_EP_TASKBAR_4, wszPath, L"ep_taskbar.4.dll"); - if (bOk) bOk = InstallResource(bInstall && (bExtractMode || pwszTaskbarDllName && !wcscmp(pwszTaskbarDllName, L"ep_taskbar.5.dll")), hInstance, IDR_EP_TASKBAR_5, wszPath, L"ep_taskbar.5.dll"); - return bOk; + if (*bInOutOk) *bInOutOk = InstallResource(bInstall && (bExtractMode || pwszTaskbarDllName && !wcscmp(pwszTaskbarDllName, L"ep_taskbar.2.dll")), hInstance, IDR_EP_TASKBAR_2, wszPath, L"ep_taskbar.2.dll"); + if (*bInOutOk) *bInOutOk = InstallResource(bInstall && (bExtractMode || pwszTaskbarDllName && !wcscmp(pwszTaskbarDllName, L"ep_taskbar.3.dll")), hInstance, IDR_EP_TASKBAR_3, wszPath, L"ep_taskbar.3.dll"); + if (*bInOutOk) *bInOutOk = InstallResource(bInstall && (bExtractMode || pwszTaskbarDllName && !wcscmp(pwszTaskbarDllName, L"ep_taskbar.4.dll")), hInstance, IDR_EP_TASKBAR_4, wszPath, L"ep_taskbar.4.dll"); + if (*bInOutOk) *bInOutOk = InstallResource(bInstall && (bExtractMode || pwszTaskbarDllName && !wcscmp(pwszTaskbarDllName, L"ep_taskbar.5.dll")), hInstance, IDR_EP_TASKBAR_5, wszPath, L"ep_taskbar.5.dll"); } int WINAPI wWinMain( @@ -492,7 +490,7 @@ int WINAPI wWinMain( if (bOk) bOk = InstallResource(bInstall, hInstance, IDR_MS_WEBVIEW2_LOADER, wszPath, L"WebView2Loader.dll"); if (bOk) bOk = InstallResource(bInstall, hInstance, IDR_EP_STARTMENU, wszPath, L"wincorlib.dll"); if (bOk) bOk = InstallResource(bInstall, hInstance, IDR_EP_GUI, wszPath, L"ep_gui.dll"); - if (bOk) bOk = ProcessTaskbarDlls(bInstall, hInstance, wszPath, TRUE); + ProcessTaskbarDlls(&bOk, bInstall, TRUE, hInstance, wszPath); return !bOk; } @@ -832,7 +830,7 @@ int WINAPI wWinMain( if (bOk) bOk = InstallResource(bInstall, hInstance, IDR_EP_WEATHER_STUB, wszPath, L"ep_weather_host_stub.dll"); if (bOk) bOk = InstallResource(bInstall, hInstance, IDR_MS_WEBVIEW2_LOADER, wszPath, L"WebView2Loader.dll"); } - if (bOk) bOk = ProcessTaskbarDlls(bInstall, hInstance, wszPath, FALSE); + ProcessTaskbarDlls(&bOk, bInstall, FALSE, hInstance, wszPath); // --------------------------------------------------------------------------------