-#elif defined(__WIN32__)
- wxChar driveBuffer[256];
- size_t n = (size_t) GetLogicalDriveStrings(255, driveBuffer);
- size_t i = 0;
- while (i < n)
- {
- wxString path, name;
- path.Printf(wxT("%c:\\"), driveBuffer[i]);
- name.Printf(wxT("%c:"), driveBuffer[i]);
-
-#if !defined(__WXWINCE__)
- wxChar pname[52]; // FIXME: why 52 and not MAX_PATH or whatever?
- if ( GetVolumeInformation(path, pname, WXSIZEOF(pname),
- NULL, NULL, NULL, NULL, 0) )
- {
- name << _T(' ') << pname;
- }
-#endif // __WXWINCE__
+#elif defined(__WIN32__) && wxUSE_FSVOLUME
+ // TODO: this code (using wxFSVolumeBase) should be used for all platforms
+ // but unfortunately wxFSVolumeBase is not implemented everywhere
+ const wxArrayString as = wxFSVolumeBase::GetVolumes();