Code:
function GetSpecialFolder (aFolder: Integer): String; //
Unit ShlObj.pas
pIdL: PItemIDList;
Path: Array [0..Max_Path] Of Char;
Allocator: IMalloc;
begin
// ItemIdList für den Ordner holen
SHGetSpecialFolderLocation (0, aFolder, pIdL);
// ItemIdList in String umwandeln lassen
SHGetPathFromIDList (pIDL, Path);
// Speicher wieder freigeben
if Succeeded (SHGetMalloc (Allocator)) then
begin
Allocator.Free (pIdL);
{$IFDEF VER100}
Allocator.Release;
{$ENDIF}
end;
Result := Path;
end;
Unit ShlObj.pas
GetSpecialFolder(CSIDL_[irgend was]);
hab jetzt leider nicht die zutreffende
Bezeichnung parat,
aber als Schleife (i := 0 to 255) mit
GetSpecialFolder(i) sollte sich das rausfinden lassen.
. . . ups, da war jemand schneller
Markus H.