OVH Cloud OVH Cloud

Récupérer l'icone d'un lecteur

5 réponses
Avatar
Neilos
Salut à tous,
je voudrais récupérer l'icone d'un lecteur de cd-rom ( je connais sa
lettre ). J'ai bien essayé la fonction ExtractIcon sans grand succès.

Quelqu'un peut il m'aider ?

Merci d'avance

--
Neilos
neilos2@caramail.com

5 réponses

Avatar
Thierry
Bonjour,

Neilos a écrit :

je voudrais récupérer l'icone d'un lecteur de cd-rom ( je
connais sa
lettre ). J'ai bien essayé la fonction ExtractIcon sans grand succès.

Quelqu'un peut il m'aider ?



regarde dans l'autorun.inf.

--
"MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Avatar
Neilos
Thierry wrote in news:XnF93E49D530316Bpouletetcetc@
213.228.0.138:

Bonjour,

Neilos a écrit :

je voudrais récupérer l'icone d'un lecteur de cd-rom ( je
connais sa
lettre ). J'ai bien essayé la fonction ExtractIcon sans grand succès.

Quelqu'un peut il m'aider ?



regarde dans l'autorun.inf.




Merci ca je le sais.... Mais je voudrais récupérer l'icone du lecteur même
s'il n'y a pas de fichier autorun ou tout simplement pas de disque dans le
lecteur.... Et ca je ne sais pas comment faire !

--
Neilos

Avatar
Neilos
"Arnaud Debaene" wrote in
news:3f4cebd2$0$16147$:

Neilos wrote:
Salut à tous,
je voudrais récupérer l'icone d'un lecteur de cd-rom ( je connais
sa lettre ). J'ai bien essayé la fonction ExtractIcon sans grand
succès.

Quelqu'un peut il m'aider ?



IShellFolder::GetUIObjectOf pour récupérer une interface IExtractIcon
puis IExtractIcon::GetLocation et IExtractIcon::Extract (au passage,
la conception de ette interface est foireuse au possible, comme
beaucoup de choses dans le shell malheureusement :-( Je me semande
qui, quand et dans quel contexte a pondu cette horreur...)

Arnaud
MVP - VC






Ok merci beaucoup et effectivement c'est une vrai horreur....
D'ailleur tant que j'y suis autre petite question pour récupérer l'icone
associé à une extension... ExtractIcon ca marche ou pas ???? Parce qu'il
demande en paramètre un nom de fichier et moi je travaille pas avec des
fichiers.... ( enfin juste avec des noms de fichiers qui n'existent pas
;) ))

Merci d'avance

--
Neilos

Avatar
Arnaud Debaene
Neilos wrote:

D'ailleur tant que j'y suis autre petite question pour récupérer
l'icone associé à une extension... ExtractIcon ca marche ou pas ????


ExtractIcon permet d'extraire une icone qui se trouve en ressource dans un
fichier (exe ou dll) passé en paramètre - c'est pas pour rien que le nom du
paramètre est lpszExeFilename.

Pour récupérer l'icone associée à un fichier donné existant, c'est
ExtractAssociatedIcon.

Pour déterminer l'icone associée à un type de fichier (une extension) sans
avoir de fichier correspondant, soit tu va fouiller à la main dans le
registre (et c'est assez moche vu le nombre de cas possibles), soit tu
utilises ShGetFileInfo : Si tu lui passes le flag SHGFI_USEFILEATTRIBUTES,
tu peux lui donner n'importe quel nom de fichier fictif, elle ne tient
compte que de l'extension pour te retourner les infos correspondantes. Ca
donne :
SHFILEINFO sfi;
memset(sfi, 0, sizeof(sfi));
ShGetFileInfo("je_n_existe_pas.bmp",
FILE_ATTRIBUTE_NORMAL,
&shfi, sizeof(shfi),
SHGFI_ICON | SHGFI_USEFILEATTRIBUTES);
HICON icon=sfi.hIcon;
// c'est à toi de libérer icon avec DestroyIcon.

Tu peux varier les méthodes en utilisant SHGFI_ICONLOCATION à la place de
SHGFI_ICON puis ExtractIcon, et tu as un paquet d'autres flags pour jouer
avec le comportement de ShGetFileInfo - voir la doc.

Arnaud
MVP - VC



Parce qu'il demande en paramètre un nom de fichier et moi je
travaille pas avec des fichiers.... ( enfin juste avec des noms de
fichiers qui n'existent pas ;) ))

Merci d'avance


Avatar
Neilos
Neilos wrote in
news::

Ok merci beaucoup pour toutes ces précisions !




Désolé j'ai encore un petit problème....
J'ai beau essayé de comprendre comment marche les fonctions
IShellFolder::GetUIObjectOf et la suite je comprend pas ( je suis allé voir
sur la msdn mais je comprend pas trop comment faire ).

J'ai toujours eu beaucoup de mal avec les paramètres style ITEMIDLIST...

Si quelqu'un peut m'aider ou me donner un petit exemple histoire que je
comprenne....

Merci d'avance !

--
Neilos