Fix some SHGetSpecialFolderPathA exceptions on WinME:

- pass pointer to valid buffer as lpszPath.
- disable check passing NULL as lpszPath.
This commit is contained in:
Saulius Krasuckas 2005-08-15 10:22:56 +00:00 committed by Alexandre Julliard
parent 756d8e17cf
commit 6400c8e3dd
1 changed files with 8 additions and 5 deletions

View File

@ -359,16 +359,18 @@ static void testSHGetSpecialFolderPathInvalidArgs(void)
if (!pSHGetSpecialFolderPathA) return;
#if 0
ret = pSHGetSpecialFolderPathA(NULL, NULL, CSIDL_BITBUCKET, FALSE);
ok(!ret,
"SHGetSpecialFolderPathA(NULL, NULL, CSIDL_BITBUCKET, FALSE)\n"
"returned TRUE, expected FALSE\n");
#endif
/* 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,
"SHGetSpecialFolderPathA(NULL, NULL, CSIDL_PROGRAMS, FALSE)\n"
"SHGetSpecialFolderPathA(NULL, path, CSIDL_PROGRAMS, FALSE)\n"
"returned FALSE, expected TRUE\n");
ret = pSHGetSpecialFolderPathA(NULL, path, 0xeeee, FALSE);
ok(!ret,
@ -720,7 +722,7 @@ static void testNonExistentPath1(void)
/* test some failure cases first: */
hr = pSHGetFolderPathA(NULL, CSIDL_FAVORITES, NULL,
SHGFP_TYPE_CURRENT, NULL);
SHGFP_TYPE_CURRENT, path);
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND),
"SHGetFolderPath returned 0x%08lx, expected 0x80070002\n", hr);
pidl = NULL;
@ -768,9 +770,10 @@ static void testNonExistentPath1(void)
static void testNonExistentPath2(void)
{
HRESULT hr;
char path[MAX_PATH];
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);
}