Question

J'ai un navigateur de fichiers simple et là j'afficher les fichiers et dossiers,

obtenu par (pour le répertoire)

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

Il fonctionne très bien à 100%, mais je l'ai remarqué une bizarrerie - si je tente d'obtenir une icône pour le répertoire, mais au lieu de spécifier FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_DIRECTORY mais il fait des trucs bizarres pour les répertoires - dossiers normaux ont des icônes « type de fichier inconnu papier blanc », corbeille a icône VLC, etc. répertoires sous SVN ont superposition correcte, mais l'icône de fichier de base (feuille de papier blanc).

Je comprends que l'icône de base pour le répertoire serait maintenant celui de fichier inconnu, mais pourquoi certains dossiers ont icône tout à fait étrange? Config.Msi a icône d'installation, corbeille a icône VLC (wtf ?!), etc. Qu'est-ce que la fonction shell faire avec ces paramètres? Exactement ce que l'icône obtient-il?

Encore une fois, ce n'est pas un problème, je suis juste curieux.

Était-ce utile?

La solution

Pour autant que je sais des ressources d'icône sont accessibles par leur index numérique, donc je suppose que l'index droit est tiré par les cheveux, et l'icône est alors extraite soit de la mauvaise bibliothèque, ou de la droite, mais en utilisant un décalage erroné + index correct.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top