UDF > WinAPIEx > ShellEx >


_WinAPI_ShellExtractIcon

Extrait une icône de dimension spécifiée dans le fichier spécifié

#include <WinAPIShellEx.au3>
_WinAPI_ShellExtractIcon ( $sIcon, $iIndex, $iWidth, $iHeight )

Paramètres

$sIcon Chemin et nom du fichier à partir duquel l'icône doit être extraite.
$iIndex L'index de base 0 de l'icône à extraire. Si cette valeur est un nombre négatif, la fonction extrait l'icône dont l'identifiant de ressources est égal à la valeur absolue de $iIndex.
$iWidth Taille horizontale de l'icône recherchée.
$iHeight Taille verticale de l'icône recherchée.

Valeur de retour

Succès: Retourne le handle de l'icône extraite.
Échec: Retourne 0.

Remarques

Si l'icône de la dimension spécifié est introuvable dans le fichier, la fonction choisit l'icône appropriée la plus proche et la modifie en la dimension spécifiée.

Lorsque vous avez fini d'utiliser l'icône, détruisez-là en utilisant la fonction _WinAPI_DestroyIcon().

En relation

_WinAPI_DestroyIcon

Voir aussi

Consultez SHExtractIcons dans la librairie MSDN.

Exemple

#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <StaticConstants.au3>
#include <WinAPIIcons.au3>
#include <WinAPIShellEx.au3>

Local $iIndex = 0, $iTotal = _WinAPI_ExtractIconEx(@SystemDir & '\shell32.dll', -1, 0, 0, 0)

Local $hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 160, 160)
Local $idButton = GUICtrlCreateButton('Next', 50, 130, 70, 23)
Local $idIcon = GUICtrlCreateIcon(@SystemDir & '\shell32.dll', 0, 69, 54, 32, 32)
Local $hIcon = GUICtrlGetHandle(-1)
GUISetState(@SW_SHOW)

Local $iMsg
Do
    $iMsg = GUIGetMsg()
    if $iMsg = $idButton Then
        $iIndex += 1
        If $iIndex > $iTotal - 1 Then $iIndex = 0
        _WinAPI_DestroyIcon(_SendMessage($hIcon, $STM_SETIMAGE, 1, _WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', $iIndex, 32, 32)))
    EndIf
Until $iMsg = $GUI_EVENT_CLOSE