From: Rémi Bernon <rbernon@codeweavers.com> This adds a todo_wine on the comctl32 scrollbar test as the comctl32 class is supposed to be duplicated from the user32 class instead of reusing it. --- dlls/comctl32/tests/misc.c | 8 +++++--- dlls/user32/tests/class.c | 2 +- dlls/win32u/scroll.c | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/dlls/comctl32/tests/misc.c b/dlls/comctl32/tests/misc.c index 83dc93eaed3..8f578e7fca8 100644 --- a/dlls/comctl32/tests/misc.c +++ b/dlls/comctl32/tests/misc.c @@ -430,7 +430,9 @@ static void check_real_class_name_( int line, HWND hwnd, const char *expect ) ok_(__FILE__, line)( len == wcslen( expectW ), "got %ld\n", len ); } -static void check_class( const char *name, int must_exist, UINT style, UINT ignore, BOOL v6, DWORD classnameidx, BOOL classnameidx_todo ) +#define check_class( a, b, c, d, e, f, g ) check_class_( a, b, c, d, e, f, g, FALSE ) +static void check_class_( const char *name, int must_exist, UINT style, UINT ignore, BOOL v6, + DWORD classnameidx, BOOL classnameidx_todo, BOOL name_todo ) { WNDCLASSA wc; @@ -476,7 +478,7 @@ static void check_class( const char *name, int must_exist, UINT style, UINT igno RegisterClassA( &wc ); hwnd = CreateWindowA( wc.lpszClassName, 0, 0, 0, 0, 0, 0, 0, NULL, GetModuleHandleA( NULL ), 0 ); - check_real_class_name( hwnd, wc.lpszClassName ); + todo_wine_if( name_todo ) check_real_class_name( hwnd, wc.lpszClassName ); DestroyWindow( hwnd ); UnregisterClassA( wc.lpszClassName, GetModuleHandleA( NULL ) ); @@ -495,7 +497,7 @@ static void test_builtin_classes(void) check_class( "ComboBox", 1, CS_PARENTDC | CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW | CS_GLOBALCLASS, 0, FALSE, 0x10005, FALSE ); check_class( "Edit", 1, CS_PARENTDC | CS_DBLCLKS | CS_GLOBALCLASS, 0, FALSE, 0x10004, FALSE ); check_class( "ListBox", 1, CS_PARENTDC | CS_DBLCLKS | CS_GLOBALCLASS, 0, FALSE, 0x10000, FALSE ); - check_class( "ScrollBar", 1, CS_PARENTDC | CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW | CS_GLOBALCLASS, 0, FALSE, 0x1000a, FALSE ); + check_class_( "ScrollBar", 1, CS_PARENTDC | CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW | CS_GLOBALCLASS, 0, FALSE, 0x1000a, FALSE, TRUE ); check_class( "Static", 1, CS_PARENTDC | CS_DBLCLKS | CS_GLOBALCLASS, 0, FALSE, 0x10003, FALSE ); check_class( "ComboLBox", 1, CS_SAVEBITS | CS_DBLCLKS | CS_DROPSHADOW | CS_GLOBALCLASS, CS_DROPSHADOW, FALSE, 0x10000, FALSE ); } diff --git a/dlls/user32/tests/class.c b/dlls/user32/tests/class.c index a554891f4a6..aa9a8e5003e 100644 --- a/dlls/user32/tests/class.c +++ b/dlls/user32/tests/class.c @@ -2524,7 +2524,7 @@ static const struct real_class_test class_tests[] = { "ComboBox", "ComboBox", FALSE, TRUE, TRUE, TRUE, FALSE }, { "Edit", "Edit", FALSE, FALSE, TRUE, TRUE, FALSE }, { "ListBox", "ListBox", FALSE, TRUE, TRUE, TRUE, FALSE }, - { "ScrollBar", "ScrollBar", FALSE, TRUE, FALSE, TRUE, TRUE }, + { "ScrollBar", "ScrollBar", FALSE, TRUE, FALSE, TRUE, FALSE }, { "Static", "Static", TRUE, TRUE, TRUE, TRUE, FALSE }, { "ComboLBox", "ListBox", FALSE, TRUE, TRUE, TRUE, FALSE }, { "MDIClient", "MDIClient", TRUE, TRUE, TRUE, TRUE, FALSE }, diff --git a/dlls/win32u/scroll.c b/dlls/win32u/scroll.c index d572ea94ed5..00450c20709 100644 --- a/dlls/win32u/scroll.c +++ b/dlls/win32u/scroll.c @@ -1135,6 +1135,7 @@ static void create_scroll_bar( HWND hwnd, CREATESTRUCTW *create ) TRACE( "hwnd=%p create=%p\n", hwnd, create ); if (!(info = calloc( 1, sizeof(*info) ))) return; + NtUserSetWindowFNID( hwnd, MAKE_FNID(NTUSER_WNDPROC_SCROLLBAR) ); set_control_state( hwnd, info ); if (create->style & WS_DISABLED) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11064