voici le code
Option Explicit
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" _
(ByVal lpszFile As String, _
ByVal nIconIndex As Long, _
phiconLarge As Long, _
phiconSmall As Long, _
ByVal nIcons As Long) As Long
Private Declare Function DrawIconEx Lib "user32" _
(ByVal hDC As Long, _
ByVal xLeft As Long, _
ByVal yTop As Long, _
ByVal hIcon As Long, _
ByVal cxWidth As Long, _
ByVal cyWidth As Long, _
ByVal istepIfAniCur As Long, _
ByVal hbrFlickerFreeDraw As Long, _
ByVal diFlags As Long) As Boolean
Private Declare Function DestroyIcon Lib "user32" _
(ByVal hIcon As Long) As Long
' Valeur de diFlags pour DrawIconEx
'Const DI_MASK = &H1
'Const DI_IMAGE = &H2
Const DI_NORMAL = &H3
'Const DI_COMPAT = &H4
Private Sub Command1_Click()
Dim sFilename As String
Dim nIconIdx As Long
Dim hSmallIcon As Long
Dim hLargeIcon As Long
Dim pDessin
Dim gDessin
Dim Extraction
Dim Ind
commonddialog1.showopen
sFilename = commonddialog1.filename
'Renvoie le nombre total d'icônes du fichier
Ind = ExtractIcon(Me.hDC, sFilename, -1)
Label1.Caption = "Nombre d'icones dans le fichier = " & Ind
If Ind > 0 Then
'Dans les fichiers l'index de la première icône est toujours 0
nIconIdx = 0
Do While nIconIdx < Ind
'Renvoie le nombre d'icone extrait (ou 0 si erreur)
Extraction = ExtractIconEx(sFilename, nIconIdx, hLargeIcon, hSmallIcon, 1)
Label3.Caption = "Index d'icone = " & nIconIdx
Picture1.Cls
Picture2.Cls
' dessine les icones dans les PictureBox
pDessin = DrawIconEx(Picture1.hDC, 1, 1, hSmallIcon, 0, 0, 0, 0, DI_NORMAL)
gDessin = DrawIconEx(Picture2.hDC, 1, 1, hLargeIcon, 0, 0, 0, 0, DI_NORMAL)
' Détruit l'icone extrait de la memoire
DestroyIcon hSmallIcon
DestroyIcon hLargeIcon
nIconIdx = nIconIdx + 1
DoEvents 'pour raffraichir l'affichage et ne pas bloquer le système
Loop
End If
End Sub
Private Sub Form_Load()
'************************************************************
'* NOM : ExtractIcon
'* DATE : 14/11/1998
'*
'* AUTEUR : J-Luc
'*
'* CODE TROUVE SUR "Le petit monde de Visual Basic"
'* http://www.vbasic.org
'*
'* DESCRIPTION :
'* Permet d'extraire toutes les icônes contenues dans un fichier
'*, en petite taille (16x16) ainsi qu'en grande taille (32x32)
'* Les icônes sont ensuite placés dans un contrôle PictureBox,
'* ce qui permet d'en faire ensuite ce qu'on veut : les affecter
'* à un autre contrôle comme un ImageList....
'*
'* A noter : dans cet exemple, les icônes défilent à la suite
'* les unes après les autres sans interruption jusqu'à la dernière icône.
'* A vous d'adapter cet exemple en fonction de vos besoins bien sûr
'*
'************************************************************
End Sub
et mon besoin est de sauvergader la grande icone contenu dans hLargeIcon
Merci!