Einzelnen Beitrag anzeigen

Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#5

AW: [nonVCL]Drag&Drop nach Explorer will nicht (AV)

  Alt 22. Feb 2011, 20: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)
  Mit Zitat antworten Zitat