Moin Matz,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS.
Hast Du schon mal überprüft, ob CreateFile ein gültiges
Handle zurückliefert?
Für den Fall, dass das es nicht gültig ist, könntest Du Dir mal mit
ShowMessage(SysErrorMessage(GetLastError)));
anzeigen lassen, was schiefgegangen ist.
BTW: Bitte benütze künftig die Delphi-Tags. Danke.