Frage

Ich habe eine einfache Datei-Browser und dort habe ich Anzeigen von Dateien und Ordnern,

, erhalten durch (für Verzeichnis)

SHFILEINFO info = new SHFILEINFO();
SHGetFileInfo(filename,
FILE_ATTRIBUTE_DIRECTORY,
ref info,Marshal.SizeOf(info),
SHGFI_ICON | SHGFI_USEFILEATTRIBUTES | SHGFI_SMALLICON | SHGFI_ADDOVERLAYS);

Es funktioniert 100% in Ordnung, aber ich habe eine Kuriosität bemerkt - wenn ich versuche, ein Symbol für das Verzeichnis zu erhalten, sondern gebe FILE_ATTRIBUTE_NORMAL statt FILE_ATTRIBUTE_DIRECTORY aber es tut seltsame Dinge für Verzeichnisse - normale Ordner haben „unbekannter Dateityp Whitepaper“ Symbole, Papierkorb hat VLC Symbol usw. Verzeichnisse unter SVN richtigen Overlay, aber Basisdateisymbol (weißes Blatt Papier).

Ich verstehe, dass die Basis Symbol für das Verzeichnis nun die eine unbekannte Datei wäre, aber warum einige Ordner völlig fremd Symbol haben? Config.msi Installer-Symbol hat, hat Papierkorb VLC-Symbol (wtf ?!) usw. Was ist die Shell-Funktion mit diesem Parameter zu tun? Genau das, was Symbol hat es erhalten?

Auch dies ist kein Problem, ich bin nur neugierig.

War es hilfreich?

Lösung

Soweit ich weiß, Symbol Ressourcen durch ihren numerischen Index zugegriffen werden, so meine Vermutung ist, dass der richtige Index abgerufen wird, und das Symbol wird dann abgerufen entweder die falsche Bibliothek oder von rechts ein, aber mit falscher Offset + korrekter Index.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top