AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Index des Overlay-Icons

Ein Thema von gkoeder · begonnen am 15. Dez 2004 · letzter Beitrag vom 16. Dez 2004
Antwort Antwort
gkoeder

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

Index des Overlay-Icons

  Alt 15. Dez 2004, 23:18
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
  Mit Zitat antworten Zitat
gkoeder

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

Ergänzung: Index des Overlay-Icons

  Alt 16. Dez 2004, 01: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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 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