Nur so am Rande bemerkt:
Es ist nicht notwendig, hier mit einem PChar und StrAlloc zu arbeiten. Es geht auch so:
Delphi-Quellcode:
const
DF_NUMBEROFFILES = $FFFFFFFF;
procedure TForm1.WMDROPFILES(var Msg: TMessage);
var
i,
anzahl,
size: Integer;
Dateiname: string;
begin
inherited;
anzahl := DragQueryFile(Msg.WParam, DF_NUMBEROFFILES, nil, 0);
for i := 0 to (anzahl - 1) do
begin
size := DragQueryFile(Msg.WParam, i, nil, 0);
SetLength(Dateiname, size);
DragQueryFile(Msg.WParam, i, PChar(Dateiname), size);
Listbox1.Items.Add(Dateiname);
end;
DragFinish(Msg.WParam);
end;
(Code ungetestet runtergetippt)