Zitat von
sieppl:
dass bei einem 'Next' nur der Zeiger umgebogen wird
und ich demnach in jedem Next-Schritt die PIDL komplett 'disposen' muss?
Es reicht also nicht am Ende des while-Durchlaufes die PIDL freizugeben??
Richtig:
Zitat von
MSDN Library:
Retrieves the specified number of item identifiers in the enumeration sequence and advances the current position by the number of items retrieved.
[...]
The implementation must allocate these item identifiers using the Shell's allocator (retrieved by the SHGetMalloc function). The calling application is responsible for freeing the item identifiers using the Shell's allocator.
Zitat von
sieppl:
Variablen die Speicher allozieren liegen doch nicht auf im Stack und müssen
doch explizit freigegeben werden auch wenn sie innerhalb einer Funktion benutzt
werden, oder?
Auch richtig. Hier musst du allerdings nicht normal Speicher freigeben, sondern über IMalloc; der Speicher ist in diesem Falle noch nicht einmal auf dem Heap deiner Applikation (es sei denn, du hast das
COM-Objekt aus einem Local Server).