Commit 6400c8e3 authored by Saulius Krasuckas's avatar Saulius Krasuckas Committed by Alexandre Julliard

Fix some SHGetSpecialFolderPathA exceptions on WinME:

- pass pointer to valid buffer as lpszPath. - disable check passing NULL as lpszPath.
parent 756d8e17
...@@ -359,16 +359,18 @@ static void testSHGetSpecialFolderPathInvalidArgs(void) ...@@ -359,16 +359,18 @@ static void testSHGetSpecialFolderPathInvalidArgs(void)
if (!pSHGetSpecialFolderPathA) return; if (!pSHGetSpecialFolderPathA) return;
#if 0
ret = pSHGetSpecialFolderPathA(NULL, NULL, CSIDL_BITBUCKET, FALSE); ret = pSHGetSpecialFolderPathA(NULL, NULL, CSIDL_BITBUCKET, FALSE);
ok(!ret, ok(!ret,
"SHGetSpecialFolderPathA(NULL, NULL, CSIDL_BITBUCKET, FALSE)\n" "SHGetSpecialFolderPathA(NULL, NULL, CSIDL_BITBUCKET, FALSE)\n"
"returned TRUE, expected FALSE\n"); "returned TRUE, expected FALSE\n");
#endif
/* odd but true: calling with a NULL path still succeeds if it's a real /* odd but true: calling with a NULL path still succeeds if it's a real
* dir * dir (on some windows platform). on winME it generates exception.
*/ */
ret = pSHGetSpecialFolderPathA(NULL, NULL, CSIDL_PROGRAMS, FALSE); ret = pSHGetSpecialFolderPathA(NULL, path, CSIDL_PROGRAMS, FALSE);
ok(ret, ok(ret,
"SHGetSpecialFolderPathA(NULL, NULL, CSIDL_PROGRAMS, FALSE)\n" "SHGetSpecialFolderPathA(NULL, path, CSIDL_PROGRAMS, FALSE)\n"
"returned FALSE, expected TRUE\n"); "returned FALSE, expected TRUE\n");
ret = pSHGetSpecialFolderPathA(NULL, path, 0xeeee, FALSE); ret = pSHGetSpecialFolderPathA(NULL, path, 0xeeee, FALSE);
ok(!ret, ok(!ret,
...@@ -720,7 +722,7 @@ static void testNonExistentPath1(void) ...@@ -720,7 +722,7 @@ static void testNonExistentPath1(void)
/* test some failure cases first: */ /* test some failure cases first: */
hr = pSHGetFolderPathA(NULL, CSIDL_FAVORITES, NULL, hr = pSHGetFolderPathA(NULL, CSIDL_FAVORITES, NULL,
SHGFP_TYPE_CURRENT, NULL); SHGFP_TYPE_CURRENT, path);
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND),
"SHGetFolderPath returned 0x%08lx, expected 0x80070002\n", hr); "SHGetFolderPath returned 0x%08lx, expected 0x80070002\n", hr);
pidl = NULL; pidl = NULL;
...@@ -768,9 +770,10 @@ static void testNonExistentPath1(void) ...@@ -768,9 +770,10 @@ static void testNonExistentPath1(void)
static void testNonExistentPath2(void) static void testNonExistentPath2(void)
{ {
HRESULT hr; HRESULT hr;
char path[MAX_PATH];
hr = pSHGetFolderPathA(NULL, CSIDL_FAVORITES | CSIDL_FLAG_CREATE, NULL, hr = pSHGetFolderPathA(NULL, CSIDL_FAVORITES | CSIDL_FLAG_CREATE, NULL,
SHGFP_TYPE_CURRENT, NULL); SHGFP_TYPE_CURRENT, path);
ok(SUCCEEDED(hr), "SHGetFolderPath failed: 0x%08lx\n", hr); ok(SUCCEEDED(hr), "SHGetFolderPath failed: 0x%08lx\n", hr);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment