1
0
mirror of https://github.com/valinet/ExplorerPatcher.git synced 2024-11-23 23:21:08 +01:00

Start10: Fixed symbols mechanism when custom StartUI_.dll is used

This commit is contained in:
Amrsatrio 2024-09-01 02:06:20 +07:00
parent 060066cd53
commit 0f38628355

View File

@ -339,21 +339,31 @@ static BOOL ProcessStartUISymbols(const char* pszSettingsPath, DWORD* pOffsets)
return FALSE; return FALSE;
} }
CHAR szHash[100];
WCHAR wszPath[MAX_PATH]; WCHAR wszPath[MAX_PATH];
ZeroMemory(szHash, sizeof(szHash));
ZeroMemory(wszPath, sizeof(wszPath)); ZeroMemory(wszPath, sizeof(wszPath));
GetWindowsDirectoryW(wszPath, MAX_PATH);
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\" _T(STARTUI_SB_NAME) L".dll");
BOOL bCustomStartUI = FALSE;
if (!FileExistsW(wszPath))
{
GetWindowsDirectoryW(wszPath, MAX_PATH);
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\StartUI_.dll");
if (!FileExistsW(wszPath))
{
return TRUE; // StartUI.dll or StartUI_.dll is not present in the current Windows installation, treat this as success
}
bCustomStartUI = TRUE;
}
char startui_sb_dll[MAX_PATH]; char startui_sb_dll[MAX_PATH];
ZeroMemory(startui_sb_dll, sizeof(startui_sb_dll)); ZeroMemory(startui_sb_dll, sizeof(startui_sb_dll));
GetWindowsDirectoryA(startui_sb_dll, MAX_PATH); GetWindowsDirectoryA(startui_sb_dll, MAX_PATH);
strcat_s(startui_sb_dll, MAX_PATH, "\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\"); strcat_s(startui_sb_dll, MAX_PATH, "\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\");
strcat_s(startui_sb_dll, MAX_PATH, STARTUI_SB_NAME); strcat_s(startui_sb_dll, MAX_PATH, bCustomStartUI ? "StartUI_.dll" : STARTUI_SB_NAME ".dll");
strcat_s(startui_sb_dll, MAX_PATH, ".dll");
GetWindowsDirectoryW(wszPath, MAX_PATH); CHAR szHash[100];
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\" _T(STARTUI_SB_NAME) L".dll"); ZeroMemory(szHash, sizeof(szHash));
ComputeFileHash(wszPath, szHash, ARRAYSIZE(szHash)); ComputeFileHash(wszPath, szHash, ARRAYSIZE(szHash));
printf("[Symbols] Downloading symbols for \"%s\" (\"%s\")...\n", startui_sb_dll, szHash); printf("[Symbols] Downloading symbols for \"%s\" (\"%s\")...\n", startui_sb_dll, szHash);
@ -815,6 +825,11 @@ LoadSymbolsResult LoadSymbols(symbols_addr* symbols_PTRS)
GetWindowsDirectoryW(wszPath, MAX_PATH); GetWindowsDirectoryW(wszPath, MAX_PATH);
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\" TEXT(STARTUI_SB_NAME) L".dll"); wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\" TEXT(STARTUI_SB_NAME) L".dll");
if (!FileExistsW(wszPath))
{
GetWindowsDirectoryW(wszPath, MAX_PATH);
wcscat_s(wszPath, MAX_PATH, L"\\SystemApps\\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\\StartUI_.dll");
}
if (ComputeFileHash(wszPath, szHash, ARRAYSIZE(szHash)) == ERROR_SUCCESS) if (ComputeFileHash(wszPath, szHash, ARRAYSIZE(szHash)) == ERROR_SUCCESS)
{ {
szStoredHash[0] = 0; szStoredHash[0] = 0;