das ist jetzt aber nicht dein erstn?!
Delphi-Quellcode:
[...]
Dateiname := StrAlloc(size);
if IsDirectory(Dateiname) then
[...]
Die Wahrscheinlichkeit ist seeehr hoch das es den Ordner mit dem Namen [ZufälligeZeischenAusDemSpeicher] nicht gibt.
Du forderst ja nur Speicher an aber kopierst keinen Dateinamen in den Speicherbereich.
hier ein kleines Kuriosum
anzahl := DragQueryFile(Msg.WParam, $FFFFFFFF, Dateiname, 255);
Dateiname ist undefiniert und zeigt auch nicht auf einen Speicherbereich von mindestens 255 Byte freiem Speicher.
Klar spielt das keine Rolle weil du ja hier die Anzahl der gedroppten Files abfragst aber dann kannst du anstelle des Dateinamens auch nil übergeben und als Länge des Buffers 0. Alles andere ist einfach nur verwirrend.