Wenn du Aufrufe für SendMessage() usw. benutzt, solltest du auch auf WPARAM oder LPARAM casten. Cardinal ist ja auch nur ein gemappter Typ für ein DWORD, wie es in der
API häufig benutzt wird. Für x64 sind einige Paramter vom Typ DWORD auf DWORD_PTR umgestellt wurden. Genau diese Datentypen gibt es in Delphi auch.
Ich verwende deshalb in meinen Applikationen immer diese Original-Typen statt irgendwelcher gemappter (Cardinal) Typen.