SizeOf(Buf)
?
Überleg mal, was man da als zweiten/dritten Parameter übergeben soll.
Length(Buf)
Tja, hätte man mal gleich die Dokumentation richtig gelesen.
Wobei die Fehlerbehandlung nun auch nicht sonderlich ideal ist.
[add]
Delphi-Quellcode:
procedure GetVolumes(Vol:TStrings);
var Res : THandle;
Buf : array [0..MAX_PATH] of Char;
begin
Vol.Clear;
Res := FindFirstVolume(Buf, Length(Buf));
if Res = INVALID_HANDLE_VALUE then
RaiseLastOSError;
repeat
Vol.Add(StrPas(Buf));
until not FindNextVolume(Res, Buf, Length(Buf));
FindVolumeClose(Res);
end;