Volumes namentlich auflisten
-
Hi,
ich möchte einfach nur alle vorhandenen Volumes namentlich auflisten. Da habe ich dann diese Funktion gefunden:
http://msdn.microsoft.com/en-us/library/aa364975(v=vs.85).aspx
Die gibt mir aber nur die Pfade (z.B. C:\); ich möchte aber auch die Namen haben. (z.B. C:\System)Da habe ich mir gedacht, dass ich hiermit
http://msdn.microsoft.com/en-us/library/aa364993(v=vs.85).aspx
bestimmt weiter komme. Das funktioniert aber irgendwie nur manchmal. Bei leeren CD-Laufwerken bekomme ich 21 bei GetLastError(). Das wäre nicht mal sonderlich schlimm, allerdings bekomme ich bei mit TrueCrypt gemounteten Volumes nicht mal einen Fehler, sondern einfach nur keinen Namen. Im Explorer werden die aber ganz normal angezeigt.Was mache ich falsch bzw. wie kann ich die Namen der Volumes doch noch erhalten?
Edit:
"Ich bekomme den Namen nicht" bedeutet buffer[0] = '\0';Wenn ich bei den besagten TrueCrypt Volumes im Explorer auf Eigenschaften gehe, wird dort auch kein Name angezeigt. Da liegt vermutlich das Problem, die Frage ist jetzt aber, wie TrueCrypt dem Explorer klar macht welche Namen er anzeigen soll und ob ich das irgendwie auslesen kann.
-
Hat denn niemand eine Idee? Bin langsam echt am verzweifeln

Der Explorer muss die Namen doch auch irgendwie bekommen!
-
Die Funktionen aus shellapi.h kommen hierfür in Frage:
SHFILEINFOW sfi; SHGetFileInfo(L"c:\\", 0, &sfi, sizeof(SHFILEINFOW), SHGFI_DISPLAYNAME | SHGFI_TYPENAME); wcout << sfi.szDisplayName << "\t" << sfi.szTypeName <<endl;Der erste Parameter kann auch direkt ein Zeiger auf eine ITEMIDLIST sein (dann müsstest du das Flag SHGFI_PIDL ebenfalls angegeben und den Zeiger casten).
-
http://msdn.microsoft.com/en-us/library/aa364993(VS.85).aspx
Du benötigst nur die ersten 3 Parameter.
-
Danke, SHGetFileInfo funktioniert gut

EinGast schrieb:
http://msdn.microsoft.com/en-us/library/aa364993(VS.85).aspx
Du benötigst nur die ersten 3 Parameter.
Hatte ich schon ausprobiert (siehe erster Post), und das funktioniert leider nicht.