- /* FIXME: check if disk is a really a local hdd */
- UINT i = LoadStringW(shell32_hInstance, IDS_DRIVE_FIXED, wszName, sizeof(wszName) / sizeof(WCHAR) - 6);
- StringCchPrintf(wszName + i, sizeof(wszName) / sizeof(WCHAR) - i, L" (%s)", pwszDrive);
+ UINT len;
+ switch (GetDriveTypeW(pwszDrive))
+ {
+ case DRIVE_CDROM:
+ len = LoadStringW(shell32_hInstance, IDS_DRIVE_CDROM, wszName, _countof(wszName));
+ break;
+ case DRIVE_REMOTE:
+ len = LoadStringW(shell32_hInstance, IDS_DRIVE_NETWORK, wszName, _countof(wszName));
+ break;
+ case DRIVE_FIXED:
+ default:
+ len = LoadStringW(shell32_hInstance, IDS_DRIVE_FIXED, wszName, _countof(wszName));
+ break;
+ }
+ StringCchPrintf(wszName + len, _countof(wszName) - len, L" (%s)", pwszDrive);