Martin Fuchs <martin-fuchs@gmx.net>

- make drive letters in PIDLs always uppercase to enable PIDL
  comparison
- Unicodify _ILCreateDrive()

svn path=/trunk/; revision=10934
This commit is contained in:
Gé van Geldorp 2004-09-20 15:36:07 +00:00
parent 56dec0d9ee
commit db2f0db5f7

View file

@ -196,7 +196,6 @@ ISF_MyComputer_fnParseDisplayName (IShellFolder2 * iface,
HRESULT hr = E_INVALIDARG;
LPCWSTR szNext = NULL;
WCHAR szElement[MAX_PATH];
CHAR szTempA[MAX_PATH];
LPITEMIDLIST pidlTemp = NULL;
CLSID clsid;
@ -218,8 +217,7 @@ ISF_MyComputer_fnParseDisplayName (IShellFolder2 * iface,
else if (PathGetDriveNumberW (lpszDisplayName) >= 0 && lpszDisplayName[2] == (WCHAR) '\\') {
szNext = GetNextElementW (lpszDisplayName, szElement, MAX_PATH);
szElement[0] = toupper(szElement[0]); /* make drive letter uppercase to enable PIDL comparison */
WideCharToMultiByte (CP_ACP, 0, szElement, -1, szTempA, MAX_PATH, NULL, NULL);
pidlTemp = _ILCreateDrive (szTempA);
pidlTemp = _ILCreateDrive (szElement);
}
if (szNext && *szNext) {
@ -250,15 +248,15 @@ static BOOL CreateMyCompEnumList(IEnumIDList *list, DWORD dwFlags)
/*enumerate the folders*/
if(dwFlags & SHCONTF_FOLDERS)
{
CHAR szDriveName[] = "A:\\";
WCHAR wszDriveName[] = {'A', ':', '\\', '\0'};
DWORD dwDrivemap = GetLogicalDrives();
HKEY hkey;
while (ret && szDriveName[0]<='Z')
while (ret && wszDriveName[0]<='Z')
{
if(dwDrivemap & 0x00000001L)
ret = AddToEnumList(list, _ILCreateDrive(szDriveName));
szDriveName[0]++;
ret = AddToEnumList(list, _ILCreateDrive(wszDriveName));
wszDriveName[0]++;
dwDrivemap = dwDrivemap >> 1;
}