Hallo Ultimator,
mir ist noch eine Kleinigkeit aufgefallen:
Es fehlt der Aufruf von DragFinish am Ende der Methode.
Da im EventHandler etwas schief gehen könnte sollte es
innerhalb eines Resourceschutzblockes stehen.
Delphi-Quellcode:
procedure TUltiShellListView.WMDropFiles(var Message: TWMDropFiles);
var
Count: Integer;
I: Integer;
Buffer: array[0..MAX_PATH] of Char;
Temp : TStringList;
begin
Temp := TStringList.Create;
Try
Count := DragQueryFile(Message.Drop, UINT(-1), nil, 0);
for I := 0 to Count - 1 do
begin
DragQueryFile(Message.Drop, I, @Buffer, SizeOf(Buffer));
Temp.Add(Buffer);
end;
OnGetFiles(Temp);
Finally
DragFinish(Message.WParam);
Temp.Free;
end;
end;