Erstmal Danke Andreas. Das Problem war aber ein ganz anderes, denn wir kriegen auch bei Outlook (classic) 365 weiterhin Messages und keine Files: Ich lade beim Erhalt von Messages MAPI32. Das scheitert mit "unbekannter Fehler". Wir haben mit Outlook 365 auf Office x64 gewechselt. Und ich brauche irgendwie
MAPI, um die Message-Streams zu speichern, oder? Ohne gestartetes
MAPI meldet Outlook (classic) nämlich einen Netzwerk- oder Verbindungsfehler (Danke für nichts!) und mein Programm nimmt keine DnD-Aktionen mehr an ("No"-Mauszeiger). Beim Beenden meldet mein Programm eine Zugriffsverletzung und nicht freigegebene Objekte.
Outlook (classic) x86 installiert. Funktioniert wie eh und je. Beim Ablegen von Anhängen, die keine Nachrichten sind, passiert auch bei Outlook (classic) x86 weiterhin absolut gar nichts, da ich weder ein Outlook- noch ein FileDataFormat kriege.
TOutlookDataFormat zu benutzen
erfordert wegen MAPI wohl dieselbe Bittigkeit bei Outlook. (Mit einer Ausnahme, die aber für uns irrelevant ist.)
Outlook (new) funktioniert hingegen unabhängig von der Bittigkeit. Ich könnte mir vorstellen, dass das der Grund gewesen ist, warum man bei Outlook (new) von
MAPI auf asynchrone Dateien wechselt. Dafür braucht man übrigens deine Klasse nicht. Man kann einfach das
Standard-FileDataFormat benutzen und AllowAsyncTransfer im EmptyDropTarget anmachen. (Auf AllowAsyncTransfer wäre ich aber ohne Andreas' Post nie gekommen.) Dann kriegt man aus Outlook (new) sowohl Nachrichten als auch - und das ist neu! - Nicht-Nachrichten-Anhänge.
Das Standard-FileDataFormat war bei mir nämlich zusätzlich drin und zusammen mit deiner Klasse haben dann beide für dieselbe Datei (inkl. Mail) getriggert.
Jetzt fragt sich noch, wie das bei beiden Outlooks jeweils mit
OLE ist.