Thema: Delphi Index des Overlay-Icons

Einzelnen Beitrag anzeigen

gkoeder

Registriert seit: 15. Jun 2004
84 Beiträge
 
Delphi 2010 Professional
 
#2

Ergänzung: Index des Overlay-Icons

  Alt 16. Dez 2004, 00:56
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
  Mit Zitat antworten Zitat