Naja, dass in nFileSizeHigh 0 steht, finde ich nicht direkt überraschend, wenn die Datei nicht gerade größer als 4GB ist. Vielleicht mal (sinngemäß)
(nFileSizeHigh shl 32) or nFileSizeLow
probieren?
Übrigens ist mir aufgefallen, dass im Online-
MSDN die Mindestanforderung Windows 2000 ist, laut Windows Vista
SDK jedoch Windows 98/NT4. Wie unangenehm, dass da auch langsam der Support für die alten Windows-Versionen endet. Ich fand es eigentlich immer ganz angenehm, zu wissen, ob mein Programm theoretisch auch unter Windows 98 laufen würde.
Edit @Nachtrag: Müsstest du nicht auch GetFileAttributesExA benutzen können?