![]() |
Index des Overlay-Icons
Hallo!
hat jemand eine Idee, wie man den Index des Overlay-Icons in der SystemImagelist zu einem Objekt auslesen kann (also z.B. der Index des kleinen Pfeilsymbols bei Verknüpfungen)? Der 'normale' Imageindex eines ShellObjekts (Datei, Ordner, etc.) ist ja relativ einfach zu ermitteln, aber wie komm ich an den Index des Overlay-Icons. Ich hab' schonmal in der MSDN nachgeschaut; hier gibt es zwar diverse Einträge (IShellIconOverlay-Interface, SHGetIconOverlayIndex, ...) aber zugegebenermaßen bin ich hiervon nicht so richtig schlau geworden. Viele Grüße, Gerald |
Ergänzung: Index des Overlay-Icons
Hallo!
Das Thema mit dem Iconoverlay lässt mich nicht in Ruhe. Ich hab' weitergesucht und herausgefunden, dass es scheinbar mit der Funktion SHGetFileInfo möglich ist, an den Index des Overlay-Icons heranzukommen (nun ja, das sagt zumindest die MSDN ...). Dabei muss als Flag SHGFI_OVERLAYINDEX angegeben werden. Dieses Flag ist scheinbar in Delphi nicht definiert. Nach einiger Suche in Google fand ich dann heraus, dass diese Flag dem Wert 40 entspricht. Also sollte die folgende Funktion prinzipiell funktionieren:
Code:
Leider gibt es da noch einen kleinen Haken: Der Index des Overlayimages befindet sich in den oberen 8 Bits von iIcon. Wie kann ich denn die oberen 8 Bits auswerten und in eine Zahl umwandeln?
Function TForm1.GetOverlayImageIndex(sFilename: String): Integer;
var shfi: TSHFileInfo; begin try SHGetFileInfo( PChar( sFilename ), 0, shfi, Sizeof( TSHFileInfo ), SHGFI_PIDL or 000000040 ); Result := shfi.iIcon; except Result := 0; end; end; Viele Grüße Gerald |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz