The only important field at this point is cbSize, but if it's zero, the message will not be processed.
---
The other option would be to zero the buffer and then do the equivalent of `((COMBOBOXINFO *)buffer)->cbSize = sizeof(COMBOBOXINFO)`, rather than copying the incoming lparam. That doesn't seem better to me, but I'm no expert.
-- v2: win32u: Copy an incoming COMBOBOXINFO when packing CB_GETCOMBOBOXINFO for clients.
From: Tim Clem tclem@codeweavers.com
The only important field at this point is cbSize, but if it's zero, the message will not be processed. --- dlls/win32u/message.c | 3 --- 1 file changed, 3 deletions(-)
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c index 71c1017a3f0..095b3694e3d 100644 --- a/dlls/win32u/message.c +++ b/dlls/win32u/message.c @@ -1842,9 +1842,6 @@ void pack_user_message( void *buffer, size_t size, UINT message, } return; } - case CB_GETCOMBOBOXINFO: - memset( buffer, 0, size ); - return; }
if (size) memcpy( buffer, lparam_ptr, size );
(v2 is just a clarification/correction in the commit message)
Good catch, I messed up those tests. I created !3511, which fixes tests and makes Wine pass them.
This merge request was closed by Jacek Caban.