SHGFI_USEFILEATTRIBUTES or SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_SMALLICON
ist scheinbar performanter, da weniger Daten abgefragt werden. Icons von Verzeichnissen werden aber nicht angezeigt.
Daran schuld ist scheinbar das
SHGFI_USEFILEATTRIBUTES
. Aber lasse ich das weg, ist die ganze Sache wesentlich langsamer.
Folgendermaßen funktioniert es für Dateien und Verzeichnisse. Die Geschwindigkeit ist relativ OK.
Delphi-Quellcode:
if IstDatei then
SHGetFileInfo(PChar(FileName), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), SHGFI_USEFILEATTRIBUTES or SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_SMALLICON)
else
SHGetFileInfo(PChar(FileName), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_SMALLICON);