We currently try to preserve message's lparam value in win32u. This is inherited from user32 and it was needed in the past, but with !493 (and !646), this is mostly covered by leaving win32u out of winproc calls whenever possible. According to tests, native win32k almost never attempts to preserve lparam and copies its content instead (with a few exceptions for messages passing strings). Implementing that in Wine will provide a nice way to fix problem from bug 55152.
This is the first patch in the series that will implement it. Since user callback requirements are different than server communication, the series incrementally decouples them. I created https://gitlab.winehq.org/jacek/wine/-/commits/win32u-msg/ with complete conversion for a better context.