Holen Sie sich icons für gängige Dateitypen
Ich möchte die icons der gängigen Dateitypen, die sich in meiner dll. Ich benutze vc++. Ich habe nur die Dateierweiterung und der mime-Typ der Datei, auf dessen Basis ich möchte das Symbol für die Datei.
Kann mir bitte jemand sagen, wie ich das tun kann? (Die Methode zur Verfügung, die in vc++ muss der Benutzer den Pfad zu der Datei, für die das Symbol nötig ist. Ich habe keinen Zugriff auf eine solche Datei)
Dank.
InformationsquelleAutor lostInTransit | 2009-02-07
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
- Shell-API
Können Sie Sie von der shell durch Aufruf
SHGetFileInfo()
zusammen mit derSHGFI_USEFILEATTRIBUTES
flag - dieses flag ermöglicht es, die routine zu arbeiten, ohne dass der Dateiname übergeben, um tatsächlich zu existieren, also, wenn Sie einen Datei-Erweiterung nur machen, bis Sie einen Namen ein, fügen Sie die Erweiterung, und es passieren in.Durch die Kombination von anderen Flaggen, Sie werden in der Lage sein abrufen:
SHGFI_ICON|SHGFI_LARGEICON
oderSHGFI_ICON|SHGFI_SMALLICON
SHGFI_ICON|SHGFI_LARGEICON|SHGFI_SHELLICONSIZE
oderSHGFI_ICON|SHGFI_SMALLICON|SHGFI_SHELLICONSIZE
SHGFI_SYSICONINDEX
SHGFI_ICONLOCATION
Beispiele
Wenn Sie möchten, zeichnen Sie ein solches Symbol, so etwas wie dieses:
Den icon-handle sowie den Dateisystem-Pfad erhalten Sie von der
SHFILEINFO
Struktur:Halten Sie im Verstand, Sie müssen die erhaltenen Symbol durch die übergabe
hIcon
zuDestroyIcon()
, nachdem Sie fertig sind mit ihm.Identifizieren Sie das Symbol, Informationen aus der Registrierung, die assoziierte Datei Typ und Programm, verarbeitet die Datei und extrahieren Sie das Symbol aus der Datei.
http://www.codeproject.com/KB/shell/iconextract.aspx