UDF > WinAPIEx > Menus & Resources > Icons >


_WinAPI_LookupIconIdFromDirectoryEx

Recherche parmi les données d'icône ou de curseur, l'icône ou le curseur qui correspond le mieux au périphérique d'affichage en cours

#include <WinAPIIcons.au3>
_WinAPI_LookupIconIdFromDirectoryEx ( $pData [, $bIcon = True [, $iXDesiredPixels = 0 [, $iYDesiredPixels = 0 [, $iFlags = 0]]]] )

Paramètres

$pData Les données de répertoire de l'icône ou du curseur. Parce que cette fonction ne valide pas les données de la ressource, elle provoque une erreur de protection générale (GP) ou retourne une valeur indéfinie si $pData ne pointe pas sur des données de ressource valides.
$bIcon [optionnel] Indique si la fonction doit rechercher une icône ou un curseur, les valeurs valides sont:
    True - La fonction doit rechercher une icône (par défaut).
    False - La fonction doit rechercher un curseur.
$iXDesiredPixels [optionnel] La largeur désirée, en pixels, de l'icône ou curseur.
Si ce paramètre est zéro (par défaut), la fonction utilise la valeur métrique du système.
$iYDesiredPixels [optionnel] La hauteur désirée, en pixels, de l'icône ou curseur.
Si ce paramètre est zéro (par défaut), la fonction utilise la valeur métrique du système.
$iFlags [optionnel] Ce paramètre peut prendre l'une ou plusieurs des valeurs suivantes:
$LR_DEFAULTCOLOR (par défaut)
$LR_MONOCHROME

Valeur de retour

Succès: Retourne un entier, identifiant de ressource, pour l'icône ou le curseur qui correspond le mieux au périphérique d'affichage en cours.
Échec: Retourne 0, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur.

Remarque

Le répertoire de l'icône est chargé à partir d'un fichier de ressources avec le type de resource $RT_GROUP_ICON (ou $RT_GROUP_CURSOR ),et un nom de ressource en nombre entier de l'icône spécifique à charger.
_WinAPI_LookupIconIdFromDirectoryEx() retourne un identifiant entier qui est le nom de la ressource de l'icône qui correspond le mieux au périphérique d'affichage en cours.

Voir aussi

Consultez LookupIconIdFromDirectoryEx dans la librairie MSDN.

Exemple

#include <APIResConstants.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <StaticConstants.au3>
#include <WinAPIIcons.au3>
#include <WinAPIRes.au3>

; Charge resources.dll en mémoire
Local $hInstance = _WinAPI_LoadLibraryEx(@ScriptDir & '\Extras\Resources.dll', $LOAD_LIBRARY_AS_DATAFILE)
If Not $hInstance Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Erreur', @ScriptDir & '\Extras\Resources.dll n''existe pas.')
    Exit
EndIf

; Charge la ressource RT_GROUP_ICON à partir de la bibliothèque Resources.dll
Local $hResource = _WinAPI_FindResource($hInstance, $RT_GROUP_ICON, 1)
Local $hData = _WinAPI_LoadResource($hInstance, $hResource)
Local $pData = _WinAPI_LockResource($hData)

; Recherche un nom de ressource entier pour l'icône qui correspond le mieux à la taille spécifiée (48x48)
Local $iIcon = _WinAPI_LookupIconIdFromDirectoryEx($pData, 1, 48, 48)

; Charge la ressource RT_ICON à partir de la bibliothèque Resources.dll
$hResource = _WinAPI_FindResource($hInstance, $RT_ICON, $iIcon)
Local $iSize = _WinAPI_SizeOfResource($hInstance, $hResource)
$hData = _WinAPI_LoadResource($hInstance, $hResource)
$pData = _WinAPI_LockResource($hData)

; Crée une icône à partir de la ressource
Local $hIcon = _WinAPI_CreateIconFromResourceEx($pData, $iSize)

; Décharge Resources.dll de la mémoire
_WinAPI_FreeLibrary($hInstance)

; Crée une GUI
GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 128, 128)
GUICtrlCreateIcon('', 0, 40, 40, 48, 48)
GUICtrlSendMsg(-1, $STM_SETIMAGE, 1, $hIcon)
GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE