Und genau das ist auch bei einem
Handle der Fall, so wie es aussieht: In Delphi ist der Wert für INVALID_HANDLE_VALUE als -1 deklariert. Handles sind unsigned, also ergibt das die höchstmögliche Zahl. Ich habe noch nichts auf 64 Bit kompiliert, aber im Nachhinein wundere ich mich jetzt auch, warum auf 32 Bit keine Warnung kommt...
Nur:
Du nimmst als Datentyp LongWord. LongWord ist Cardinal. Cardinal ist immer 32 Bit.
Ich würde NativeUInt als Typ nehmen...
Nur:
Was willst du eigentlich mit INVALID_HANDLE_VALUE? Das gibt die Funktion doch garnicht her. Sie gibt ein DWORD zurück. Handles sind NativeUInt. Schau doch nochmal
in die Doku - Die Funktion gibt überhaupt kein
Handle zurück!