SetLastError setzt nur den Result Code der
WinAPI - aber was erwartest du denn noch dazu? So lange keiner dieses Flag auswertet passiert nix weiter. Du könntest z.B. eine
Exception auslösen nach dem SetLastError() mit
RaiseLastOSError;
bzw. früher
RaiseLastWin32Error;
.