je complètement perdu avec mes pointeurs
je suis sur un truc tordu et je sais plus trop comment m'en sortir
je dois envoyer un pointeur mémoire en paramètre de procédure.
Et ce pointeur est mis à jour par la procédure. Sauf que je n'ai pas la nouvelle valeur du pointeur de retournée.
Code : Tout sélectionner
#LOAD_LIBRARY_AS_DATAFILE = 2
Procedure GetIconIndexList_Enumerate(hLibrary, lpszType, lpszName, *Memory)
Protected Result.l
Debug "Enumeration :"
Debug lpszName
*Memory = ReAllocateMemory(*Memory, MemorySize(*Memory) + 4)
Debug *Memory
If *Memory
PokeL(*Memory + MemorySize(*Memory) - 4, lpszName)
Result = #True
Else
Result = #False
EndIf
ProcedureReturn Result
EndProcedure
ProcedureDLL.l GetIconIndexList(IconFile.s)
Protected hLibrary, Memory.l
hLibrary = LoadLibraryEx_(IconFile, #NULL, #LOAD_LIBRARY_AS_DATAFILE)
If hLibrary <> #NULL
*Memory = AllocateMemory(4)
If *Memory
Debug "Mémoire origine"
Debug *Memory
EnumResourceNames_(hLibrary, #RT_GROUP_ICON, @GetIconIndexList_Enumerate(), *Memory)
Debug "Mémoire au final"
Debug *Memory
EndIf
FreeLibrary_(hLibrary)
EndIf
ProcedureReturn *Memory
EndProcedure
*Pointeur = GetIconIndexList("mydocs.dll")
Debug "Mémoire reçue"
Debug *Pointeur
Index = 0
While PeekL(*Pointeur + Index) > 0
Debug PeekL(*Pointeur + Index)
Index + 1
Wend