[PATCH] shell32: Fix definitions for FOLDERID_ProgramFilesX64 and FOLDERID_ProgramFilesCommonX64 on 64-bit.
Hans Leidekker
hans at codeweavers.com
Thu Nov 14 06:24:09 CST 2019
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
dlls/shell32/shellpath.c | 12 ++++++++++++
dlls/shell32/tests/shellpath.c | 22 ++++++++++++++++++++++
2 files changed, 34 insertions(+)
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index 8c6e8a89b2..d9d65cbaed 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -2697,9 +2697,15 @@ static const CSIDL_DATA CSIDL_Data[] =
},
{ /* 0x54 */
&FOLDERID_ProgramFilesX64,
+#ifdef _WIN64
+ CSIDL_Type_CurrVer,
+ ProgramFilesDirW,
+ Program_FilesW,
+#else
CSIDL_Type_NonExistent,
NULL,
NULL,
+#endif
KF_CATEGORY_FIXED, /* category */
ProgramFilesX64W, /* name */
@@ -2717,9 +2723,15 @@ static const CSIDL_DATA CSIDL_Data[] =
},
{ /* 0x55 */
&FOLDERID_ProgramFilesCommonX64,
+#ifdef _WIN64
+ CSIDL_Type_CurrVer,
+ ProgramFilesCommonX64W,
+ Program_Files_Common_FilesW,
+#else
CSIDL_Type_NonExistent,
NULL,
NULL,
+#endif
KF_CATEGORY_FIXED, /* category */
ProgramFilesCommonX64W, /* name */
diff --git a/dlls/shell32/tests/shellpath.c b/dlls/shell32/tests/shellpath.c
index f768f44c8b..262714a9f3 100644
--- a/dlls/shell32/tests/shellpath.c
+++ b/dlls/shell32/tests/shellpath.c
@@ -1932,6 +1932,28 @@ if (0) { /* crashes */
hr = pSHGetFolderPathEx(&FOLDERID_Desktop, 0, NULL, buffer, len + 1);
ok(hr == S_OK, "expected S_OK, got 0x%08x\n", hr);
+
+ path = NULL;
+ hr = pSHGetKnownFolderPath(&FOLDERID_ProgramFilesX64, 0, NULL, &path);
+#ifdef _WIN64
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(path != NULL, "path not set\n");
+ CoTaskMemFree(path);
+#else
+ todo_wine ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got 0x%08x\n", hr);
+ ok(path == NULL, "path set\n");
+#endif
+
+ path = NULL;
+ hr = pSHGetKnownFolderPath(&FOLDERID_ProgramFilesCommonX64, 0, NULL, &path);
+#ifdef _WIN64
+ ok(hr == S_OK, "expected S_OK, got 0x%08x\n", hr);
+ ok(path != NULL, "path not set\n");
+ CoTaskMemFree(path);
+#else
+ todo_wine ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got 0x%08x\n", hr);
+ ok(path == NULL, "path set\n");
+#endif
}
static BOOL is_in_strarray(const WCHAR *needle, const char *hay)
--
2.20.1
More information about the wine-devel
mailing list