changeset 2224:d3974aa8ad64

Win: Add a second registry check for when running on x86.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 24 Dec 2020 09:42:52 +0000
parents a81b9031412e
children 1ec6300a627b
files win/edge.cpp
diffstat 1 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/win/edge.cpp	Wed Dec 23 23:29:17 2020 +0000
+++ b/win/edge.cpp	Thu Dec 24 09:42:52 2020 +0000
@@ -426,12 +426,22 @@
 		static WCHAR EdgeStablePath[MAX_PATH+1] = {0};
 
 		/* If we haven't successfully gotten the path, try to find it in the registry */
-		if(!EdgeStablePath[0] &&
-			RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\WOW6432Node\\Microsoft\\EdgeUpdate\\Clients\\{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}", 0, KEY_READ, &hKey) == ERROR_SUCCESS &&
-			RegQueryValueExW(hKey, L"pv", 0, NULL, (LPBYTE)szBuffer, &dwBufferSize) == ERROR_SUCCESS)
+		if(!EdgeStablePath[0])
 		{
-			wcscpy(EdgeStablePath, L"C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\");
-			wcscat(EdgeStablePath, szBuffer);
+			// Handle the case we are running on x64
+			if(RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\WOW6432Node\\Microsoft\\EdgeUpdate\\Clients\\{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}", 0, KEY_READ, &hKey) == ERROR_SUCCESS &&
+				RegQueryValueExW(hKey, L"pv", 0, NULL, (LPBYTE)szBuffer, &dwBufferSize) == ERROR_SUCCESS)
+			{
+				wcscpy(EdgeStablePath, L"C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\");
+				wcscat(EdgeStablePath, szBuffer);
+			}
+			// and also the case we are running x86
+			else if(RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\EdgeUpdate\\Clients\\{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}", 0, KEY_READ, &hKey) == ERROR_SUCCESS &&
+					RegQueryValueExW(hKey, L"pv", 0, NULL, (LPBYTE)szBuffer, &dwBufferSize) == ERROR_SUCCESS)
+			{
+				wcscpy(EdgeStablePath, L"C:\\Program Files\\Microsoft\\Edge\\Application\\");
+				wcscat(EdgeStablePath, szBuffer);
+			}
 		}
 		return EdgeStablePath;
 	 }