Vista et les Icons

aquanovax Messages postés 25 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 février 2009 - 21 déc. 2007 à 23:43
aquanovax Messages postés 25 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 février 2009 - 23 déc. 2007 à 15:34
Bonsoir, je cherche à extraire des icons d'une Dll ( imageres.dll ).

Voila comment je fais :

[DllImport("Shell32.dll",EntryPoint="ExtractIconExW",CharSet=CharSet.Unicode,ExactSpelling=true,CallingConvention=CallingConvention.StdCall)]

public static extern int ExtractIconEx(string sFile,int iIndex, out IntPtr piLargeVersion, out IntPtr piSmallVersion, int amountIcons);

IntPtr _large, _small;

ExtractIconEx("imageres.dll", 110, out _large, out _small, 1);

Icon icon = Icon.FromHandle(_large);

Cette méthode fonctionne correctement, cependant j'aimerai extraire des Icônes de plus grande taille, en effet l'icône avec le pointeur _large fais 32x32 et la _small 16x16.

J'ai lus que sous Vista la résolution des icônes allait jusqu'à 256x256.

Comment faire  ?

Merci de vos réponses.

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
22 déc. 2007 à 16:41
Salut, ExtractIconEx ne renvoie pas un IntPtr mais des tableaux de IntPtr qu'il faut penser à detruire avec DestroyIcon par la suite.

Regarde cet exemple :

http://www.pinvoke.net/default.aspx/shell32/ExtractIconEx.html
aquanovax Messages postés 25 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 février 2009
22 déc. 2007 à 19:10
Salut, merci de ta reponse, c'est juste que cette méthode renvoie des tableaux, cependant le problème ne change pas, il n'y a qu'un élément dans les tableau et toujours pas les icônes de plus grande résolution. Ce qui ne m'avance pas beaucoup .

Je cherche depuis un bon moment et je ne trouve rien, pas de sources ni d'exemple , n'aurais-tu pas une idée sur la façon de procéder?

Merci @+
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
23 déc. 2007 à 13:59
C'est apparemment c'est le même problème avec SHGetFileInfo, faudrait passer par COM Interop et l'interface IExtractIcon.
aquanovax Messages postés 25 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 février 2009
23 déc. 2007 à 15:34
Ok merci, je vais creuser cette voix. Je mettrai à jour le topic si je trouve quelquechose.

@+
Rejoignez-nous