[PATCH 2/5] shell32/tests: Fix win8 knownfolders relative and parsed paths
Andrew Eikum
aeikum at codeweavers.com
Wed Mar 11 12:11:48 CDT 2015
---
This patch converts the relative paths to double-null-terminated
string lists.
dlls/shell32/tests/shellpath.c | 196 ++++++++++++++++++++---------------------
1 file changed, 95 insertions(+), 101 deletions(-)
diff --git a/dlls/shell32/tests/shellpath.c b/dlls/shell32/tests/shellpath.c
index 14cb34a..b727e1d 100644
--- a/dlls/shell32/tests/shellpath.c
+++ b/dlls/shell32/tests/shellpath.c
@@ -1002,7 +1002,7 @@ static const struct knownFolderDef known_folders[] = {
"Common Start Menu",
KF_CATEGORY_COMMON,
FOLDERID_ProgramData,
- "Microsoft\\Windows\\Start Menu",
+ "Microsoft\\Windows\\Start Menu\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1020,7 +1020,7 @@ static const struct knownFolderDef known_folders[] = {
"Common Templates",
KF_CATEGORY_COMMON,
FOLDERID_ProgramData,
- "Microsoft\\Windows\\Templates",
+ "Microsoft\\Windows\\Templates\0",
NULL,
0,
0),
@@ -1077,7 +1077,7 @@ static const struct knownFolderDef known_folders[] = {
"Cookies",
KF_CATEGORY_PERUSER,
FOLDERID_RoamingAppData,
- "Microsoft\\Windows\\Cookies",
+ "Microsoft\\Windows\\Cookies\0Microsoft\\Windows\\INetCookies\0" /* win8 */,
NULL,
0,
0),
@@ -1095,7 +1095,7 @@ static const struct knownFolderDef known_folders[] = {
"Device Metadata Store",
KF_CATEGORY_COMMON,
FOLDERID_ProgramData,
- "Microsoft\\Windows\\DeviceMetadataStore",
+ "Microsoft\\Windows\\DeviceMetadataStore\0",
NULL,
0,
0),
@@ -1104,8 +1104,8 @@ static const struct knownFolderDef known_folders[] = {
"Personal",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "Documents",
- "::{59031a47-3f72-44a7-89c5-5595fe6b30ee}\\{FDD39AD0-238F-46AF-ADB4-6C85480369C7}\0\0",
+ "Documents\0",
+ "::{59031a47-3f72-44a7-89c5-5595fe6b30ee}\\{FDD39AD0-238F-46AF-ADB4-6C85480369C7}\0shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}\0\0", /* win8 */
FILE_ATTRIBUTE_READONLY,
KFDF_ROAMABLE | KFDF_PRECREATE),
KNOWN_FOLDER(FOLDERID_DocumentsLibrary,
@@ -1113,7 +1113,7 @@ static const struct knownFolderDef known_folders[] = {
"DocumentsLibrary",
KF_CATEGORY_PERUSER,
FOLDERID_Libraries,
- "Documents.library-ms",
+ "Documents.library-ms\0",
"::{031E4825-7B94-4dc3-B131-E946B44C8DD5}\\{7b0db17d-9cd2-4a93-9733-46cc89022e7c}\0\0",
0,
KFDF_PRECREATE | KFDF_STREAM),
@@ -1122,8 +1122,8 @@ static const struct knownFolderDef known_folders[] = {
"Downloads",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "Downloads",
- NULL,
+ "Downloads\0",
+ "(null)\0shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{374DE290-123F-4565-9164-39C4925E467B}\0\0", /* win8 */
FILE_ATTRIBUTE_READONLY,
KFDF_ROAMABLE | KFDF_PRECREATE | KFDF_PUBLISHEXPANDEDPATH),
KNOWN_FOLDER(FOLDERID_Favorites,
@@ -1131,7 +1131,7 @@ static const struct knownFolderDef known_folders[] = {
"Favorites",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "Favorites",
+ "Favorites\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_ROAMABLE | KFDF_PRECREATE | KFDF_PUBLISHEXPANDEDPATH),
@@ -1158,7 +1158,7 @@ static const struct knownFolderDef known_folders[] = {
"GameTasks",
KF_CATEGORY_PERUSER,
FOLDERID_LocalAppData,
- "Microsoft\\Windows\\GameExplorer",
+ "Microsoft\\Windows\\GameExplorer\0",
NULL,
0,
KFDF_LOCAL_REDIRECT_ONLY),
@@ -1167,7 +1167,7 @@ static const struct knownFolderDef known_folders[] = {
"History",
KF_CATEGORY_PERUSER,
FOLDERID_LocalAppData,
- "Microsoft\\Windows\\History",
+ "Microsoft\\Windows\\History\0",
NULL,
0,
KFDF_LOCAL_REDIRECT_ONLY),
@@ -1185,7 +1185,7 @@ static const struct knownFolderDef known_folders[] = {
"ImplicitAppShortcuts",
KF_CATEGORY_PERUSER,
FOLDERID_UserPinned,
- "ImplicitAppShortcuts",
+ "ImplicitAppShortcuts\0",
NULL,
0,
KFDF_PRECREATE),
@@ -1194,7 +1194,7 @@ static const struct knownFolderDef known_folders[] = {
"Cache",
KF_CATEGORY_PERUSER,
FOLDERID_LocalAppData,
- "Microsoft\\Windows\\Temporary Internet Files",
+ "Microsoft\\Windows\\Temporary Internet Files\0Microsoft\\Windows\\INetCache\0\0", /* win8 */
NULL,
0,
KFDF_LOCAL_REDIRECT_ONLY),
@@ -1212,7 +1212,7 @@ static const struct knownFolderDef known_folders[] = {
"Libraries",
KF_CATEGORY_PERUSER,
FOLDERID_RoamingAppData,
- "Microsoft\\Windows\\Libraries",
+ "Microsoft\\Windows\\Libraries\0",
NULL,
0,
KFDF_PRECREATE | KFDF_PUBLISHEXPANDEDPATH),
@@ -1221,7 +1221,7 @@ static const struct knownFolderDef known_folders[] = {
"Links",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "Links",
+ "Links\0",
"::{59031a47-3f72-44a7-89c5-5595fe6b30ee}\\{bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968}\0\0",
FILE_ATTRIBUTE_READONLY,
KFDF_ROAMABLE | KFDF_PRECREATE | KFDF_PUBLISHEXPANDEDPATH),
@@ -1230,7 +1230,7 @@ static const struct knownFolderDef known_folders[] = {
"Local AppData",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "AppData\\Local",
+ "AppData\\Local\0",
NULL,
0,
KFDF_LOCAL_REDIRECT_ONLY | KFDF_PUBLISHEXPANDEDPATH),
@@ -1239,7 +1239,7 @@ static const struct knownFolderDef known_folders[] = {
"LocalAppDataLow",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "AppData\\LocalLow",
+ "AppData\\LocalLow\0",
NULL,
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED,
KFDF_LOCAL_REDIRECT_ONLY | KFDF_PRECREATE | KFDF_PUBLISHEXPANDEDPATH),
@@ -1257,8 +1257,8 @@ static const struct knownFolderDef known_folders[] = {
"My Music",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "Music",
- "::{59031a47-3f72-44a7-89c5-5595fe6b30ee}\\{4BD8D571-6D19-48D3-BE97-422220080E43}\0\0",
+ "Music\0",
+ "::{59031a47-3f72-44a7-89c5-5595fe6b30ee}\\{4BD8D571-6D19-48D3-BE97-422220080E43}\0shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{1CF1260C-4DD0-4EBB-811F-33C572699FDE}\0\0", /* win8 */
FILE_ATTRIBUTE_READONLY,
KFDF_ROAMABLE | KFDF_PRECREATE),
KNOWN_FOLDER(FOLDERID_MusicLibrary,
@@ -1266,7 +1266,7 @@ static const struct knownFolderDef known_folders[] = {
"MusicLibrary",
KF_CATEGORY_PERUSER,
FOLDERID_Libraries,
- "Music.library-ms",
+ "Music.library-ms\0",
"::{031E4825-7B94-4dc3-B131-E946B44C8DD5}\\{2112AB0A-C86A-4ffe-A368-0DE96E47012E}\0\0",
0,
KFDF_PRECREATE | KFDF_STREAM),
@@ -1275,7 +1275,7 @@ static const struct knownFolderDef known_folders[] = {
"NetHood",
KF_CATEGORY_PERUSER,
FOLDERID_RoamingAppData,
- "Microsoft\\Windows\\Network Shortcuts",
+ "Microsoft\\Windows\\Network Shortcuts\0",
NULL,
0,
0),
@@ -1293,7 +1293,7 @@ static const struct knownFolderDef known_folders[] = {
"Original Images",
KF_CATEGORY_PERUSER,
FOLDERID_LocalAppData,
- "Microsoft\\Windows Photo Gallery\\Original Images",
+ "Microsoft\\Windows Photo Gallery\\Original Images\0",
NULL,
0,
0),
@@ -1302,7 +1302,7 @@ static const struct knownFolderDef known_folders[] = {
"PhotoAlbums",
KF_CATEGORY_PERUSER,
FOLDERID_Pictures,
- "Slide Shows",
+ "Slide Shows\0",
NULL,
FILE_ATTRIBUTE_READONLY,
0),
@@ -1311,8 +1311,8 @@ static const struct knownFolderDef known_folders[] = {
"My Pictures",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "Pictures",
- "::{59031a47-3f72-44a7-89c5-5595fe6b30ee}\\{33E28130-4E1E-4676-835A-98395C3BC3BB}\0\0",
+ "Pictures\0",
+ "::{59031a47-3f72-44a7-89c5-5595fe6b30ee}\\{33E28130-4E1E-4676-835A-98395C3BC3BB}\0shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{3ADD1653-EB32-4CB0-BBD7-DFA0ABB5ACCA}\0\0", /* win8 */
FILE_ATTRIBUTE_READONLY,
KFDF_ROAMABLE | KFDF_PRECREATE),
KNOWN_FOLDER(FOLDERID_PicturesLibrary,
@@ -1320,7 +1320,7 @@ static const struct knownFolderDef known_folders[] = {
"PicturesLibrary",
KF_CATEGORY_PERUSER,
FOLDERID_Libraries,
- "Pictures.library-ms",
+ "Pictures.library-ms\0",
"::{031E4825-7B94-4dc3-B131-E946B44C8DD5}\\{A990AE9F-A03B-4e80-94BC-9912D7504104}\0\0",
0,
KFDF_PRECREATE | KFDF_STREAM),
@@ -1329,7 +1329,7 @@ static const struct knownFolderDef known_folders[] = {
"Playlists",
KF_CATEGORY_PERUSER,
FOLDERID_Music,
- "Playlists",
+ "Playlists\0",
NULL,
FILE_ATTRIBUTE_READONLY,
0),
@@ -1347,7 +1347,7 @@ static const struct knownFolderDef known_folders[] = {
"PrintHood",
KF_CATEGORY_PERUSER,
FOLDERID_RoamingAppData,
- "Microsoft\\Windows\\Printer Shortcuts",
+ "Microsoft\\Windows\\Printer Shortcuts\0",
NULL,
0,
0),
@@ -1429,7 +1429,7 @@ static const struct knownFolderDef known_folders[] = {
"Programs",
KF_CATEGORY_PERUSER,
FOLDERID_StartMenu,
- "Programs",
+ "Programs\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1448,7 +1448,7 @@ static const struct knownFolderDef known_folders[] = {
"Common Desktop",
KF_CATEGORY_COMMON,
FOLDERID_Public,
- "Desktop",
+ "Desktop\0",
NULL,
FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN,
KFDF_PRECREATE),
@@ -1457,7 +1457,7 @@ static const struct knownFolderDef known_folders[] = {
"Common Documents",
KF_CATEGORY_COMMON,
FOLDERID_Public,
- "Documents",
+ "Documents\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1466,7 +1466,7 @@ static const struct knownFolderDef known_folders[] = {
"CommonDownloads",
KF_CATEGORY_COMMON,
FOLDERID_Public,
- "Downloads",
+ "Downloads\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1475,7 +1475,7 @@ static const struct knownFolderDef known_folders[] = {
"PublicGameTasks",
KF_CATEGORY_COMMON,
FOLDERID_ProgramData,
- "Microsoft\\Windows\\GameExplorer",
+ "Microsoft\\Windows\\GameExplorer\0",
NULL,
0,
KFDF_LOCAL_REDIRECT_ONLY),
@@ -1484,7 +1484,7 @@ static const struct knownFolderDef known_folders[] = {
"PublicLibraries",
KF_CATEGORY_COMMON,
FOLDERID_Public,
- "Libraries",
+ "Libraries\0",
NULL,
FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN,
KFDF_PRECREATE),
@@ -1493,7 +1493,7 @@ static const struct knownFolderDef known_folders[] = {
"CommonMusic",
KF_CATEGORY_COMMON,
FOLDERID_Public,
- "Music",
+ "Music\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1502,7 +1502,7 @@ static const struct knownFolderDef known_folders[] = {
"CommonPictures",
KF_CATEGORY_COMMON,
FOLDERID_Public,
- "Pictures",
+ "Pictures\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1511,7 +1511,7 @@ static const struct knownFolderDef known_folders[] = {
"CommonRingtones",
KF_CATEGORY_COMMON,
FOLDERID_ProgramData,
- "Microsoft\\Windows\\Ringtones",
+ "Microsoft\\Windows\\Ringtones\0",
NULL,
0,
KFDF_PRECREATE),
@@ -1520,7 +1520,7 @@ static const struct knownFolderDef known_folders[] = {
"CommonVideo",
KF_CATEGORY_COMMON,
FOLDERID_Public,
- "Videos",
+ "Videos\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1529,7 +1529,7 @@ static const struct knownFolderDef known_folders[] = {
"Quick Launch",
KF_CATEGORY_PERUSER,
FOLDERID_RoamingAppData,
- "Microsoft\\Internet Explorer\\Quick Launch",
+ "Microsoft\\Internet Explorer\\Quick Launch\0",
NULL,
0,
0),
@@ -1538,7 +1538,7 @@ static const struct knownFolderDef known_folders[] = {
"Recent",
KF_CATEGORY_PERUSER,
FOLDERID_RoamingAppData,
- "Microsoft\\Windows\\Recent",
+ "Microsoft\\Windows\\Recent\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1547,7 +1547,7 @@ static const struct knownFolderDef known_folders[] = {
"RecordedTVLibrary",
KF_CATEGORY_COMMON,
FOLDERID_PublicLibraries,
- "RecordedTV.library-ms",
+ "RecordedTV.library-ms\0",
NULL,
0,
KFDF_PRECREATE | KFDF_STREAM),
@@ -1574,7 +1574,7 @@ static const struct knownFolderDef known_folders[] = {
"Ringtones",
KF_CATEGORY_PERUSER,
FOLDERID_LocalAppData,
- "Microsoft\\Windows\\Ringtones",
+ "Microsoft\\Windows\\Ringtones\0",
NULL,
0,
KFDF_PRECREATE),
@@ -1583,7 +1583,7 @@ static const struct knownFolderDef known_folders[] = {
"AppData",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "AppData\\Roaming",
+ "AppData\\Roaming\0",
NULL,
0,
0),
@@ -1592,7 +1592,7 @@ static const struct knownFolderDef known_folders[] = {
"SampleMusic",
KF_CATEGORY_COMMON,
FOLDERID_PublicMusic,
- "Sample Music",
+ "Sample Music\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1601,7 +1601,7 @@ static const struct knownFolderDef known_folders[] = {
"SamplePictures",
KF_CATEGORY_COMMON,
FOLDERID_PublicPictures,
- "Sample Pictures",
+ "Sample Pictures\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1610,7 +1610,7 @@ static const struct knownFolderDef known_folders[] = {
"SamplePlaylists",
KF_CATEGORY_COMMON,
FOLDERID_PublicMusic,
- "Sample Playlists",
+ "Sample Playlists\0",
NULL,
FILE_ATTRIBUTE_READONLY,
0),
@@ -1619,7 +1619,7 @@ static const struct knownFolderDef known_folders[] = {
"SampleVideos",
KF_CATEGORY_COMMON,
FOLDERID_PublicVideos,
- "Sample Videos",
+ "Sample Videos\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1628,7 +1628,7 @@ static const struct knownFolderDef known_folders[] = {
"SavedGames",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "Saved Games",
+ "Saved Games\0",
"::{59031a47-3f72-44a7-89c5-5595fe6b30ee}\\{4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}\0\0",
FILE_ATTRIBUTE_READONLY,
KFDF_ROAMABLE | KFDF_PRECREATE | KFDF_PUBLISHEXPANDEDPATH),
@@ -1637,7 +1637,7 @@ static const struct knownFolderDef known_folders[] = {
"Searches",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "Searches",
+ "Searches\0",
"::{59031a47-3f72-44a7-89c5-5595fe6b30ee}\\{7d1d3a04-debb-4115-95cf-2f29da2920da}\0\0",
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE | KFDF_PUBLISHEXPANDEDPATH),
@@ -1673,7 +1673,7 @@ static const struct knownFolderDef known_folders[] = {
"SendTo",
KF_CATEGORY_PERUSER,
FOLDERID_RoamingAppData,
- "Microsoft\\Windows\\SendTo",
+ "Microsoft\\Windows\\SendTo\0",
NULL,
0,
0),
@@ -1682,7 +1682,7 @@ static const struct knownFolderDef known_folders[] = {
"Default Gadgets",
KF_CATEGORY_COMMON,
FOLDERID_ProgramFiles,
- "Windows Sidebar\\Gadgets",
+ "Windows Sidebar\\Gadgets\0",
NULL,
0,
0),
@@ -1691,7 +1691,7 @@ static const struct knownFolderDef known_folders[] = {
"Gadgets",
KF_CATEGORY_PERUSER,
FOLDERID_LocalAppData,
- "Microsoft\\Windows Sidebar\\Gadgets",
+ "Microsoft\\Windows Sidebar\\Gadgets\0",
NULL,
0,
0),
@@ -1700,7 +1700,7 @@ static const struct knownFolderDef known_folders[] = {
"Start Menu",
KF_CATEGORY_PERUSER,
FOLDERID_RoamingAppData,
- "Microsoft\\Windows\\Start Menu",
+ "Microsoft\\Windows\\Start Menu\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1709,7 +1709,7 @@ static const struct knownFolderDef known_folders[] = {
"Startup",
KF_CATEGORY_PERUSER,
FOLDERID_Programs,
- "StartUp",
+ "StartUp\0",
NULL,
FILE_ATTRIBUTE_READONLY,
KFDF_PRECREATE),
@@ -1766,7 +1766,7 @@ static const struct knownFolderDef known_folders[] = {
"Templates",
KF_CATEGORY_PERUSER,
FOLDERID_RoamingAppData,
- "Microsoft\\Windows\\Templates",
+ "Microsoft\\Windows\\Templates\0",
NULL,
0,
0),
@@ -1775,7 +1775,7 @@ static const struct knownFolderDef known_folders[] = {
"User Pinned",
KF_CATEGORY_PERUSER,
FOLDERID_QuickLaunch,
- "User Pinned",
+ "User Pinned\0",
NULL,
FILE_ATTRIBUTE_HIDDEN,
KFDF_PRECREATE),
@@ -1793,7 +1793,7 @@ static const struct knownFolderDef known_folders[] = {
"UserProgramFiles",
KF_CATEGORY_PERUSER,
FOLDERID_LocalAppData,
- "Programs",
+ "Programs\0",
NULL,
0,
0),
@@ -1802,7 +1802,7 @@ static const struct knownFolderDef known_folders[] = {
"UserProgramFilesCommon",
KF_CATEGORY_PERUSER,
FOLDERID_UserProgramFiles,
- "Common",
+ "Common\0",
NULL,
0,
0),
@@ -1829,8 +1829,8 @@ static const struct knownFolderDef known_folders[] = {
"My Video",
KF_CATEGORY_PERUSER,
FOLDERID_Profile,
- "Videos",
- "::{59031a47-3f72-44a7-89c5-5595fe6b30ee}\\{18989B1D-99B5-455B-841C-AB7C74E4DDFC}\0\0",
+ "Videos\0",
+ "::{59031a47-3f72-44a7-89c5-5595fe6b30ee}\\{18989B1D-99B5-455B-841C-AB7C74E4DDFC}\0shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{A0953C92-50DC-43BF-BE83-3742FED03C9C}\0\0", /* win8 */
FILE_ATTRIBUTE_READONLY,
KFDF_ROAMABLE | KFDF_PRECREATE),
KNOWN_FOLDER(FOLDERID_VideosLibrary,
@@ -1838,7 +1838,7 @@ static const struct knownFolderDef known_folders[] = {
"VideosLibrary",
KF_CATEGORY_PERUSER,
FOLDERID_Libraries,
- "Videos.library-ms",
+ "Videos.library-ms\0",
"::{031E4825-7B94-4dc3-B131-E946B44C8DD5}\\{491E922F-5643-4af4-A7EB-4E7A138D8174}\0\0",
0,
KFDF_PRECREATE | KFDF_STREAM),
@@ -1892,6 +1892,36 @@ static const struct knownFolderDef known_folders[] = {
#undef KNOWN_FOLDER
BOOL known_folder_found[sizeof(known_folders)/sizeof(known_folders[0])-1];
+static BOOL is_in_strarray(const WCHAR *needle, const char *hay)
+{
+ WCHAR wstr[MAX_PATH];
+
+ if(!needle && !hay)
+ return TRUE;
+
+ while(hay && *hay)
+ {
+ DWORD ret;
+
+ if(strcmp(hay, "(null)") == 0 && !needle)
+ return TRUE;
+
+ ret = MultiByteToWideChar(CP_ACP, 0, hay, -1, wstr, sizeof(wstr)/sizeof(wstr[0]));
+ if(ret == 0)
+ {
+ ok(0, "Failed to convert string\n");
+ return FALSE;
+ }
+
+ if(lstrcmpW(wstr, needle) == 0)
+ return TRUE;
+
+ hay += strlen(hay) + 1;
+ }
+
+ return FALSE;
+}
+
static void check_known_folder(IKnownFolderManager *mgr, KNOWNFOLDERID *folderId)
{
HRESULT hr;
@@ -1899,11 +1929,9 @@ static void check_known_folder(IKnownFolderManager *mgr, KNOWNFOLDERID *folderId
int csidl, expectedCsidl, ret;
KNOWNFOLDER_DEFINITION kfd;
IKnownFolder *folder;
- WCHAR sName[1024], sRelativePath[MAX_PATH], sParsingName[MAX_PATH];
- BOOL validPath;
+ WCHAR sName[1024];
BOOL *current_known_folder_found = &known_folder_found[0];
BOOL found = FALSE;
- const char *srcParsingName;
while(known_folder->folderId != NULL)
{
@@ -1946,43 +1974,9 @@ static void check_known_folder(IKnownFolderManager *mgr, KNOWNFOLDERID *folderId
"invalid known folder parent for %s: %s expected, but %s retrieved\n",
known_folder->sFolderId, known_folder->sParent, wine_dbgstr_guid(&kfd.fidParent));
- if(!known_folder->sRelativePath)
- validPath = (kfd.pszRelativePath==NULL);
- else
- {
- ret = MultiByteToWideChar(CP_ACP, 0, known_folder->sRelativePath, -1, sRelativePath, sizeof(sRelativePath)/sizeof(sRelativePath[0]));
- ok_(__FILE__, known_folder->line)(ret != 0, "cannot convert known folder path \"%s\" to wide characters\n", known_folder->sRelativePath);
+ ok_(__FILE__, known_folder->line)(is_in_strarray(kfd.pszRelativePath, known_folder->sRelativePath), "invalid known folder relative path returned for %s: %s expected, but %s retrieved\n", known_folder->sFolderId, known_folder->sRelativePath, wine_dbgstr_w(kfd.pszRelativePath));
- validPath = (lstrcmpW(kfd.pszRelativePath, sRelativePath)==0);
- }
-
- ok_(__FILE__, known_folder->line)(validPath, "invalid known folder relative path returned for %s: %s expected, but %s retrieved\n", known_folder->sFolderId, known_folder->sRelativePath, wine_dbgstr_w(kfd.pszRelativePath));
-
- /* to check parsing name, we need to iterate list */
- srcParsingName = known_folder->sParsingName;
-
- /* if we expect NULL, then we don't even check the list */
- validPath = (srcParsingName==NULL) && (kfd.pszParsingName==NULL);
-
- if(srcParsingName)
- while(*srcParsingName && !validPath)
- {
- /* when NULL is only one of possible value, we mark path as valid */
- validPath = (strcmp(srcParsingName, "(null)")==0) && (kfd.pszParsingName==NULL);
-
- /* in the other case, we compare string from list with retrieved value */
- if(!validPath)
- {
- ret = MultiByteToWideChar(CP_ACP, 0, srcParsingName, -1, sParsingName, sizeof(sParsingName)/sizeof(sParsingName[0]));
- ok_(__FILE__, known_folder->line)(ret != 0, "cannot convert known folder path \"%s\" to wide characters\n", srcParsingName);
-
- validPath = (lstrcmpW(kfd.pszParsingName, sParsingName)==0);
- }
-
- srcParsingName += strlen(srcParsingName)+1;
- }
-
- ok_(__FILE__, known_folder->line)(validPath, "invalid known folder parsing name returned for %s: %s retrieved\n", known_folder->sFolderId, wine_dbgstr_w(kfd.pszParsingName));
+ ok_(__FILE__, known_folder->line)(is_in_strarray(kfd.pszParsingName, known_folder->sParsingName), "invalid known folder parsing name returned for %s: %s retrieved\n", known_folder->sFolderId, wine_dbgstr_w(kfd.pszParsingName));
ok_(__FILE__, known_folder->line)(known_folder->attributes == kfd.dwAttributes, "invalid known folder attributes for %s: 0x%08x expected, but 0x%08x retrieved\n", known_folder->sFolderId, known_folder->attributes, kfd.dwAttributes);
--
2.3.2
More information about the wine-patches
mailing list