user32: Make the builtin window procs table layout compatible with Windows.

This commit is contained in:
Alexandre Julliard 2024-11-12 11:30:51 +01:00
parent 9f9ce9fa46
commit d818a8d91d
3 changed files with 26 additions and 16 deletions

View file

@ -1061,10 +1061,15 @@ struct wow_handlers16 wow_handlers =
NULL, /* call_dialog_proc */
};
static const struct ntuser_client_procs_table client_procs =
{
#define MessageWndProcA MessageWndProc
#define MessageWndProcW MessageWndProc
#define ComboLBoxWndProcA ListBoxWndProcA
#define ComboLBoxWndProcW ListBoxWndProcW
#define GhostWndProcA DefWindowProcA
#define GhostWndProcW DefWindowProcW
static const struct ntuser_client_procs_table client_procs =
{
#define USER_FUNC(name,proc) .A[proc] = { name##A }, .W[proc] = { name##W },
ALL_NTUSER_CLIENT_PROCS
#undef USER_FUNC

View file

@ -1091,7 +1091,7 @@ static const struct builtin_class_descr builtin_classes[] =
{
.name = "ComboLBox",
.style = CS_DBLCLKS | CS_SAVEBITS,
.proc = NTUSER_WNDPROC_LISTBOX,
.proc = NTUSER_WNDPROC_COMBOLBOX,
.extra = sizeof(void *),
.cursor = IDC_ARROW,
},

View file

@ -446,23 +446,26 @@ struct send_message_callback_params
/* NtUserSetScrollInfo flag */
#define SIF_RETURNPREV 0x1000
/* NtUserInitializeClientPfnArrays parameter, not compatible with Windows */
/* NtUserInitializeClientPfnArrays parameter */
enum ntuser_client_procs
{
NTUSER_WNDPROC_SCROLLBAR,
NTUSER_WNDPROC_MESSAGE,
NTUSER_WNDPROC_MENU,
NTUSER_WNDPROC_DESKTOP,
NTUSER_WNDPROC_DEFWND,
NTUSER_WNDPROC_ICONTITLE,
NTUSER_WNDPROC_UNKNOWN,
NTUSER_WNDPROC_BUTTON,
NTUSER_WNDPROC_COMBO,
NTUSER_WNDPROC_DEFWND,
NTUSER_WNDPROC_COMBOLBOX,
NTUSER_WNDPROC_DIALOG,
NTUSER_WNDPROC_EDIT,
NTUSER_WNDPROC_LISTBOX,
NTUSER_WNDPROC_MDICLIENT,
NTUSER_WNDPROC_SCROLLBAR,
NTUSER_WNDPROC_STATIC,
NTUSER_WNDPROC_IME,
NTUSER_WNDPROC_DESKTOP,
NTUSER_WNDPROC_ICONTITLE,
NTUSER_WNDPROC_MENU,
NTUSER_WNDPROC_MESSAGE,
NTUSER_WNDPROC_GHOST,
NTUSER_NB_PROCS
};
@ -478,20 +481,22 @@ struct ntuser_client_procs_table
ntuser_client_func_ptr workers[NTUSER_NB_WORKERS];
};
#define ALL_NTUSER_CLIENT_PROCS \
USER_FUNC( ScrollBarWndProc, NTUSER_WNDPROC_SCROLLBAR ) \
USER_FUNC( MessageWndProc, NTUSER_WNDPROC_MESSAGE ) \
USER_FUNC( PopupMenuWndProc, NTUSER_WNDPROC_MENU ) \
USER_FUNC( DesktopWndProc, NTUSER_WNDPROC_DESKTOP ) \
USER_FUNC( DefWindowProc, NTUSER_WNDPROC_DEFWND ) \
USER_FUNC( IconTitleWndProc, NTUSER_WNDPROC_ICONTITLE ) \
USER_FUNC( ButtonWndProc, NTUSER_WNDPROC_BUTTON ) \
USER_FUNC( ComboWndProc, NTUSER_WNDPROC_COMBO ) \
USER_FUNC( DefWindowProc, NTUSER_WNDPROC_DEFWND ) \
USER_FUNC( ComboLBoxWndProc, NTUSER_WNDPROC_COMBOLBOX ) \
USER_FUNC( DialogWndProc, NTUSER_WNDPROC_DIALOG ) \
USER_FUNC( EditWndProc, NTUSER_WNDPROC_EDIT ) \
USER_FUNC( ListBoxWndProc, NTUSER_WNDPROC_LISTBOX ) \
USER_FUNC( MDIClientWndProc, NTUSER_WNDPROC_MDICLIENT ) \
USER_FUNC( ScrollBarWndProc, NTUSER_WNDPROC_SCROLLBAR ) \
USER_FUNC( StaticWndProc, NTUSER_WNDPROC_STATIC ) \
USER_FUNC( ImeWndProc, NTUSER_WNDPROC_IME ) \
USER_FUNC( DesktopWndProc, NTUSER_WNDPROC_DESKTOP ) \
USER_FUNC( IconTitleWndProc, NTUSER_WNDPROC_ICONTITLE ) \
USER_FUNC( PopupMenuWndProc, NTUSER_WNDPROC_MENU ) \
USER_FUNC( MessageWndProc, NTUSER_WNDPROC_MESSAGE )
USER_FUNC( GhostWndProc, NTUSER_WNDPROC_GHOST )
/* NtUserSetCursorIconData parameter, not compatible with Windows */