Et j'ai trouvé une fonctions qui me bouffe 2.5 Mo de mémoire à elle toute seule

il s'agit de SHGETFILEINFO
voir cet exemple, j'ai affiché en commentaires l'espace mémoire occupée après chaque fonction en ko
Code : Tout sélectionner
Procedure.l ExtractLargeIconFile2(IconPath.s) ; Extraire l'icône 32*32 d'un fichier
; Cette procedure permet d'extraire l'ID de l'icône 32*32 associé au type de fichier ou au dossier dont l'adresse est IconPath
hImageList = SHGetFileInfo_(IconPath, 0, @InfosFile.SHFILEINFO, SizeOf(SHFILEINFO), #SHGFI_SYSICONINDEX | #SHGFI_ICON | #SHGFI_LARGEICON)
; hImageList est le handle de l'ImageList
ProcedureReturn InfosFile\hIcon
EndProcedure
OpenWindow(0, 0, 0, 100, 100, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Test") ; 1364
CreateGadgetList(WindowID()) ; 1376
Icone = ExtractLargeIconFile2("c:\") ; 3944 (+2568 Arg)
ImageGadget(0, 0, 0, 32, 32, Icone) ; 3984
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Je n'y arrive pas.
J'ai essayé avec ImageList_Destroy mais je n'obtients aucun résultat

Si quelqu'un peut m'aider.
Car 2.5mo, c'est pas négligeable et *2 programmes, ça fait 5mo de gagner.
Merci d'avance