The trouble is that early Delphi didn't have 32-bit unsigned, and translated a lot of unsigned 32-bit values as signed 32-bit.
Then 64-bit happened, and again the same with 64-bit unsigned.
Usually it is no problem, but may give some warnings.
In some cases, there can be real problems (where the high bit is mutilated), but usually that is somewhat dirty code.
In this case, afaik lparam's declaration of wndproc is still defined as a signed type.