Mit TShellTreeView/TShellListView klappt es...
Aber ich werd im moment nicht ganz schlau daraus... wie kann ich diese Funktion aus TShellTreeView/TShellListView verwenden, wenn ich einen Dateinamen übergeben will?
Delphi-Quellcode:
function GetShellImage(PIDL: PItemIDList; Large, Open: Boolean): Integer;
var
FileInfo: TSHFileInfo;
Flags: Integer;
begin
Flags := SHGFI_PIDL or SHGFI_SYSICONINDEX;
if Open then Flags := Flags or SHGFI_OPENICON;
if Large then Flags := Flags or SHGFI_LARGEICON
else Flags := Flags or SHGFI_SMALLICON;
SHGetFileInfo(PChar(PIDL),
0,
FileInfo,
SizeOf(FileInfo),
Flags);
Result := FileInfo.iIcon;
end;