Microsoft habe beim neuen Outlook nicht nur beim Drag&Drop vom MSG-Format zum EML-Format gewechselt, sondern nutzt nun asynchrones Drag&Drop, das so gut wie keine (ältere) Anwendung implementiert.
Die JVCL-Komponente TJvDropTarget wurde im Dezember um das asynchrone Drag&Drop erweitert. Der entsprechende Git Commit ist:
https://github.com/project-jedi/jvcl...795e4f7ddc067a
Ein aufs wesentliche reduziertes Beispiel mit der TJvDragTarget Komponente:
Delphi-Quellcode:
procedure TForm1.JvDropTargetDragAccept(Sender: TJvDropTarget; var Accept: Boolean);
begin
Accept := (Sender.GetFilenames(nil) > 0) or // CF_HDROP
(Sender.GetFileDescrCount > 0) or // CF_FILEDESCRIPTOR
Sender.IsAsyncHDrop // "Neues Outlook" (WebApp) - Gültigkeit muss im OnDragDrop geprüft werden
end;
procedure TForm1.JvDropTargetDragDrop(Sender: TJvDropTarget;
var Effect: TJvDropEffect; Shift: TShiftState; X, Y: Integer);
var
List: TStrings;
begin
// ...
// GetFilenames bei Sender.IsAsyncHDrop = True funktioniert erst im OnDragDrop
Sender.GetFilenames(List);
// Dateien auf *.eml Suffix prüfen ...
end;