Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
|
AW: [nonVCL]Drag&Drop nach Explorer will nicht (AV)
22. Feb 2011, 21:12
Moin,
also mir fällt nur auf, daß der Code rund um die fragliche Stelle etwas seltsam aussieht:
Delphi-Quellcode:
// Wozu eigentlich? Ist doch ohnehin nur ein Pointer ...
p := AllocMem(SizeOf(PItemIDList));
// Der Teil ist klar
// Wenn p hier nil ist und das Ding erfolgreich
// ist, wird in p der Pointer zurückgegeben.
// *Dein* Wert aus AllocMem ist dann wech ...
OleCheck(Folder.ParseDisplayName(0, nil, PWideChar(WideString(FileName)), chEaten, p, dwAttributes));
// yaddayadda ...
OleCheck(Folder.GetUIObjectOf(0, 1, p, IDataObject, nil, Pointer(Result)));
// Freigeben ala Shell
if p <> nil then
Malloc.Free(p);
// Wozu nochmal?
// Wert von p ist hier ungültig, ist aber
// auch nicht der Wert den AllocMem vergeben
// hat ...
FreeMem(p); // <-- AV hier
Malloc.Free(FolderPidl);
Kommentare inline.
Oliver "... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
|
|
Zitat
|