Groesse := (wfd.nFileSizeHigh * (MAXDWORD)) + wfd.nFileSizeLow;
Ist die Berechnung falsch?
MAXDWORD ist ums eins zu klein und du bekommst auch noch einen Integer-Overflow da der Compiler nicht automatisch nach Int64 konvertiert.
Probiere es mal so:
Delphi-Quellcode:
var
Groesse: Int64;
Groesse := Int64(wfd.nFileSizeHigh) shl 32 + wfd.nFileSizeLow;