MSDN states that the pszDisplayName member of BROWSEINFO is assumed to
be MAX_PATH in length. So when doing the A->W conversion in BrowseForFolderA do not set that member to be the size of the incoming string, instead make it MAX_PATH.
This commit is contained in:
parent
9577e5e296
commit
5a8d76749a
|
@ -627,9 +627,8 @@ LPITEMIDLIST WINAPI SHBrowseForFolderA (LPBROWSEINFOA lpbi)
|
||||||
bi.pidlRoot = lpbi->pidlRoot;
|
bi.pidlRoot = lpbi->pidlRoot;
|
||||||
if (lpbi->pszDisplayName)
|
if (lpbi->pszDisplayName)
|
||||||
{
|
{
|
||||||
len = MultiByteToWideChar( CP_ACP, 0, lpbi->pszDisplayName, -1, NULL, 0 );
|
bi.pszDisplayName = HeapAlloc( GetProcessHeap(), 0, MAX_PATH * sizeof(WCHAR) );
|
||||||
bi.pszDisplayName = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) );
|
MultiByteToWideChar( CP_ACP, 0, lpbi->pszDisplayName, -1, bi.pszDisplayName, MAX_PATH );
|
||||||
MultiByteToWideChar( CP_ACP, 0, lpbi->pszDisplayName, -1, bi.pszDisplayName, len );
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
bi.pszDisplayName = NULL;
|
bi.pszDisplayName = NULL;
|
||||||
|
|
Loading…
Reference in New Issue