Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/shell32/shfldr_desktop.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/shfldr_desktop.c b/dlls/shell32/shfldr_desktop.c index 938871e..bdfc460 100644 --- a/dlls/shell32/shfldr_desktop.c +++ b/dlls/shell32/shfldr_desktop.c @@ -154,7 +154,7 @@ static HRESULT WINAPI ISF_Desktop_fnParseDisplayName (IShellFolder2 * iface, DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes) { IDesktopFolderImpl *This = impl_from_IShellFolder2(iface); - WCHAR szElement[MAX_PATH]; + WCHAR c, szElement[MAX_PATH]; LPCWSTR szNext = NULL; LPITEMIDLIST pidlTemp = NULL; PARSEDURLW urldata; @@ -182,7 +182,8 @@ static HRESULT WINAPI ISF_Desktop_fnParseDisplayName (IShellFolder2 * iface, SHCLSIDFromStringW (szElement + 2, &clsid); pidlTemp = _ILCreateGuid (PT_GUID, &clsid); } - else if (PathGetDriveNumberW (lpszDisplayName) >= 0) + /* we can't use PathGetDriveNumberW because we can't have the \?\ prefix */ + else if ((c = toupperW(lpszDisplayName[0])) >= 'A' && c <= 'Z' && lpszDisplayName[1] == ':') { /* it's a filesystem path with a drive. Let MyComputer/UnixDosFolder parse it */ if (UNIXFS_is_rooted_at_desktop())