manachmal ist die unterstützung im forum wirklich entäuschend. Es hat etwas länger gedauert, aber so eine einfache lösung mal gerade zu posten wäre nicht viel arbeit gewesen:
Delphi-Quellcode:
//zunächst den array deklarieren
APidl:
array of PItemIDlist;
//den dynamischen array füllen
SetLength(APidl, Length(APidl)+1);
APidl[High(APidl)] := PIDL;
//irgendeine PItemIDList
//Jetzt zum Beispiel dem GetUIObjectOf-Befehl den Array übergeben
//wichtig ist nur das man das 'nullte' Element als StartAdresse übergibt..
IShellFolder.GetUIObjectOf(
handle,Length(APidl),APIdl[0], ...
//zum schluss die PIDLs aus dem Array wieder freigeben
//..habe ich mal über eine For-Schleife gemacht
for I := 0
to Length(APidl)-1
do
Allocator.Free(APidl[I]);
//Allocator ist ein IMalloc..
Ich hoffe ich werde jemanden helfen, der irgendwann vor dem gleichen Problem steht. Das sieht jetzt zwar trivial aus, aber man muss erstmal aus der
MSDN-Beschreibung schlau werden..
Grüße
Sebastian