Wundert mich nur etwas, dass der Parameter von SendMessage vom Typ LPARAM ist und nicht vom Typ Integer...
Na ja, der Parameter ist nun mal vom Typ LPARAM. Lediglich dein Cast funktioniert damit nicht, da unter 64-Bit ein TSmallPoint eben eine andere Größe hat als LPARAM. Nach dem Cast auf Integer erweitert der Compiler den Integer-Wert dann implizit auf LPARAM.