Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Index des Overlay-Icons (https://www.delphipraxis.net/36111-index-des-overlay-icons.html)

gkoeder 15. Dez 2004 22:18


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

gkoeder 16. Dez 2004 00:56

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:
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;
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?

Viele Grüße
Gerald


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz