Nein.. Es wird ein Icon für das Menu übergeben.. diese sind unterschiedlich.. hänge gleich mal einen Shot an.
Die Intention der Funktion GetHIcon insgesamt ist mir schon klar. Es ging mir nur um den darin enthaltenen Aufruf
if ExtractIconEx(..., -1, ...) <> 0
. Das eigentliche Extrahieren der Icons erfolgt ja erst danach in einem weiteren Aufruf von ExtractIconEx (sofern der erste Aufruf klappte).
Anders ausgedrückt: Sofern das erste ExtractIconEx klappt, rufst du es danach nochmals auf. Wenn man die Doku zu
ExtractIconEx ganz genau nimmt, holen beide Aufrufe (der mit -1 als Index und der mit dem eigentlichen Index) jeweils ein Icon:
Zitat:
nIconIndex
If this value is a negative number and either phiconLarge or phiconSmall is not NULL, the function begins by extracting the icon whose resource identifier is equal to the absolute value of nIconIndex.
Leider ist aus der Doku nicht ersichtlich, ob auch ein Icon geholt wird, wenn man
ExtractIconEx(AFileName, -1, Result, HICON(nil^), 0)
ruft, also nIconIndex=-1 und nIcons=0, aber trotzdem ein Ziel (hier Result) angegeben wurde.
Zitat:
Habe auch im Taskmanager nicht feststellen können das sich der Speicher erhöht der blieb immer konstant.
Schau lieber auf die Anzahl der Handles, ggf. im Process Explorer bzw. Process Hacker.
Zitat:
Danke nochmal für deine Hilfe.
Keine Ursache. Ich wusste nur deshalb um das Problem, weil ich es selbst schon hatte
.
Grüße
Dalai