[PATCH 0/3] MR9883: comctl32: Use BOOLEAN instead of BOOL for RegisterClassNameW().
The return type should be BOOLEAN instead of BOOL. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9883
From: Zhiyi Zhang <zzhang@codeweavers.com> The return type should be BOOLEAN instead of BOOL. --- dlls/comctl32/commctrl.c | 2 +- dlls/comctl32/tests/misc.c | 2 +- dlls/user32/class.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/comctl32/commctrl.c b/dlls/comctl32/commctrl.c index 80404b8990f..0605680c792 100644 --- a/dlls/comctl32/commctrl.c +++ b/dlls/comctl32/commctrl.c @@ -166,7 +166,7 @@ static void unregister_classes(void) } } -BOOL WINAPI RegisterClassNameW(const WCHAR *class) +BOOLEAN WINAPI RegisterClassNameW(const WCHAR *class) { int min = 0, max = ARRAY_SIZE(classes) - 1; diff --git a/dlls/comctl32/tests/misc.c b/dlls/comctl32/tests/misc.c index 155d9e34ab3..d8a7e4a69b8 100644 --- a/dlls/comctl32/tests/misc.c +++ b/dlls/comctl32/tests/misc.c @@ -39,7 +39,7 @@ static INT (WINAPI * pStr_GetPtrW)(LPCWSTR, LPWSTR, INT); static BOOL (WINAPI * pStr_SetPtrW)(LPWSTR, LPCWSTR); static HRESULT (WINAPI *pDllGetVersion)(DLLVERSIONINFO *); -static BOOL (WINAPI *pRegisterClassNameW)(const WCHAR *class_name); +static BOOLEAN (WINAPI *pRegisterClassNameW)(const WCHAR *class_name); static BOOL (WINAPI *pSetWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR); static BOOL (WINAPI *pRemoveWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR); static LRESULT (WINAPI *pDefSubclassProc)(HWND, UINT, WPARAM, LPARAM); diff --git a/dlls/user32/class.c b/dlls/user32/class.c index a754720caec..b3d78506ea1 100644 --- a/dlls/user32/class.c +++ b/dlls/user32/class.c @@ -232,7 +232,7 @@ void get_class_version( UNICODE_STRING *name, UNICODE_STRING *version, BOOL load if (load && hmod) { - BOOL (WINAPI *pRegisterClassNameW)( const WCHAR *class ); + BOOLEAN (WINAPI *pRegisterClassNameW)( const WCHAR *class ); if ((pRegisterClassNameW = (void *)GetProcAddress( hmod, "RegisterClassNameW" ))) { TRACE( "registering %s version %s\n", debugstr_us(name), debugstr_us(version) ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9883
From: Zhiyi Zhang <zzhang@codeweavers.com> --- dlls/comctl32/tests/misc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/comctl32/tests/misc.c b/dlls/comctl32/tests/misc.c index d8a7e4a69b8..715e87b70e7 100644 --- a/dlls/comctl32/tests/misc.c +++ b/dlls/comctl32/tests/misc.c @@ -404,12 +404,13 @@ static void check_class( const char *name, int must_exist, UINT style, UINT igno HWND hwnd; DWORD objid; + todo_wine_if(!strcmp(name, "flatsb_class32")) ok( must_exist, "System class %s should %sexist\n", name, must_exist ? "" : "NOT " ); todo_wine_if(!strcmp(name, "ScrollBar") || (!strcmp(name, "tooltips_class32") && v6)) ok( !(~wc.style & style & ~ignore), "System class %s is missing bits %x (%08x/%08x)\n", name, ~wc.style & style, wc.style, style ); - todo_wine_if((!strcmp(name, "tooltips_class32") && v6) || !strcmp(name, "SysLink")) + todo_wine_if((!strcmp(name, "tooltips_class32") && v6) || !strcmp(name, "SysLink") || !strcmp(name, "flatsb_class32")) ok( !(wc.style & ~style), "System class %s has extra bits %x (%08x/%08x)\n", name, wc.style & ~style, wc.style, style ); ok( !wc.hInstance, "System class %s has hInstance %p\n", name, wc.hInstance ); @@ -474,6 +475,7 @@ static void test_comctl32_classes(BOOL v6) check_class(WC_TREEVIEWA, 1, CS_DBLCLKS | CS_GLOBALCLASS, 0, FALSE, 0x10019, FALSE); check_class(UPDOWN_CLASSA, 1, CS_HREDRAW | CS_VREDRAW | CS_GLOBALCLASS, 0, FALSE, 0x10016, FALSE); check_class("SysLink", v6, CS_GLOBALCLASS, 0, FALSE, 0, FALSE); + check_class("flatsb_class32", 0, 0, 0, FALSE, 0, FALSE); } struct wm_themechanged_test -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9883
From: Zhiyi Zhang <zzhang@codeweavers.com> There is no such window class on Windows. I checked on Windows 10, XP and even Windows 95. The window class was added by 638f169b in 1999. --- dlls/comctl32/comctl32.h | 1 - dlls/comctl32/commctrl.c | 2 -- dlls/comctl32/flatsb.c | 63 -------------------------------------- dlls/comctl32/tests/misc.c | 4 +-- include/commctrl.h | 11 ------- 5 files changed, 1 insertion(+), 80 deletions(-) diff --git a/dlls/comctl32/comctl32.h b/dlls/comctl32/comctl32.h index 249befa3c08..90a9a5fcd03 100644 --- a/dlls/comctl32/comctl32.h +++ b/dlls/comctl32/comctl32.h @@ -256,7 +256,6 @@ extern void STATIC_Register(void); extern void ANIMATE_Register(void); extern void COMBOEX_Register(void); extern void DATETIME_Register(void); -extern void FLATSB_Register(void); extern void HEADER_Register(void); extern void HOTKEY_Register(void); extern void IPADDRESS_Register(void); diff --git a/dlls/comctl32/commctrl.c b/dlls/comctl32/commctrl.c index 0605680c792..e0724529fc4 100644 --- a/dlls/comctl32/commctrl.c +++ b/dlls/comctl32/commctrl.c @@ -104,7 +104,6 @@ classes[] = {L"ComboBoxEx32", COMBOEX_Register}, {L"ComboLBox", COMBOLBOX_Register}, {L"Edit", EDIT_Register}, - {L"flatsb_class32", FLATSB_Register}, {L"ListBox", LISTBOX_Register}, {L"msctls_hotkey32", HOTKEY_Register}, {L"msctls_progress32", PROGRESS_Register}, @@ -128,7 +127,6 @@ classes[] = {L"tooltips_class32", TOOLTIPS_Register}, #else {L"ComboBoxEx32", COMBOEX_Register}, - {L"flatsb_class32", FLATSB_Register}, {L"msctls_hotkey32", HOTKEY_Register}, {L"msctls_progress32", PROGRESS_Register}, {L"msctls_statusbar32", STATUS_Register}, diff --git a/dlls/comctl32/flatsb.c b/dlls/comctl32/flatsb.c index 1cedca98a6c..76dedd60a43 100644 --- a/dlls/comctl32/flatsb.c +++ b/dlls/comctl32/flatsb.c @@ -222,66 +222,3 @@ FlatSB_SetScrollRange(HWND hwnd, int nBar, INT min, INT max, BOOL bRedraw) { return SetScrollRange(hwnd, nBar, min, max, bRedraw); } - - -static LRESULT -FlatSB_Create (HWND hwnd, WPARAM wParam, LPARAM lParam) -{ - TRACE("[%p] wParam %Ix, lParam %Ix\n", hwnd, wParam, lParam); - return 0; -} - - -static LRESULT -FlatSB_Destroy (HWND hwnd, WPARAM wParam, LPARAM lParam) -{ - TRACE("[%p] wParam %Ix, lParam %Ix\n", hwnd, wParam, lParam); - return 0; -} - - -static LRESULT WINAPI -FlatSB_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - if (!GetWindowLongPtrW(hwnd, 0) && (uMsg != WM_CREATE)) - return DefWindowProcW( hwnd, uMsg, wParam, lParam ); - - switch (uMsg) - { - case WM_CREATE: - return FlatSB_Create (hwnd, wParam, lParam); - - case WM_DESTROY: - return FlatSB_Destroy (hwnd, wParam, lParam); - - default: - if ((uMsg >= WM_USER) && (uMsg < WM_APP) && !COMCTL32_IsReflectedMessage(uMsg)) - ERR("unknown msg %04x, wp %#Ix, lp %#Ix\n", uMsg, wParam, lParam); - return DefWindowProcW (hwnd, uMsg, wParam, lParam); - } -} - - -VOID -FLATSB_Register (void) -{ - WNDCLASSW wndClass; - - ZeroMemory (&wndClass, sizeof(WNDCLASSW)); - wndClass.style = CS_GLOBALCLASS; - wndClass.lpfnWndProc = FlatSB_WindowProc; - wndClass.cbClsExtra = 0; - wndClass.cbWndExtra = sizeof(FLATSB_INFO *); - wndClass.hCursor = LoadCursorW (0, (LPWSTR)IDC_ARROW); - wndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); - wndClass.lpszClassName = FLATSB_CLASSW; - - RegisterClassW (&wndClass); -} - - -VOID -FLATSB_Unregister (void) -{ - UnregisterClassW (FLATSB_CLASSW, NULL); -} diff --git a/dlls/comctl32/tests/misc.c b/dlls/comctl32/tests/misc.c index 715e87b70e7..3fffbab198e 100644 --- a/dlls/comctl32/tests/misc.c +++ b/dlls/comctl32/tests/misc.c @@ -404,13 +404,12 @@ static void check_class( const char *name, int must_exist, UINT style, UINT igno HWND hwnd; DWORD objid; - todo_wine_if(!strcmp(name, "flatsb_class32")) ok( must_exist, "System class %s should %sexist\n", name, must_exist ? "" : "NOT " ); todo_wine_if(!strcmp(name, "ScrollBar") || (!strcmp(name, "tooltips_class32") && v6)) ok( !(~wc.style & style & ~ignore), "System class %s is missing bits %x (%08x/%08x)\n", name, ~wc.style & style, wc.style, style ); - todo_wine_if((!strcmp(name, "tooltips_class32") && v6) || !strcmp(name, "SysLink") || !strcmp(name, "flatsb_class32")) + todo_wine_if((!strcmp(name, "tooltips_class32") && v6) || !strcmp(name, "SysLink")) ok( !(wc.style & ~style), "System class %s has extra bits %x (%08x/%08x)\n", name, wc.style & ~style, wc.style, style ); ok( !wc.hInstance, "System class %s has hInstance %p\n", name, wc.hInstance ); @@ -1433,7 +1432,6 @@ static void test_RegisterClassNameW(BOOL v6) /* There is no flatsb_class32 window class */ ret = pRegisterClassNameW(L"flatsb_class32"); - todo_wine ok(!ret, "RegisterClassNameW succeeded.\n"); winetest_pop_context(); diff --git a/include/commctrl.h b/include/commctrl.h index 5a67c1284a0..6030b885a34 100644 --- a/include/commctrl.h +++ b/include/commctrl.h @@ -643,17 +643,6 @@ typedef struct tagTRACKMOUSEEVENT { WINCOMMCTRLAPI BOOL WINAPI _TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack); -/* Flat Scrollbar control */ - -#define FLATSB_CLASSA "flatsb_class32" -#if defined(_MSC_VER) || defined(__MINGW32__) -# define FLATSB_CLASSW L"flatsb_class32" -#else -static const WCHAR FLATSB_CLASSW[] = { 'f','l','a','t','s','b','_', - 'c','l','a','s','s','3','2',0 }; -#endif -#define FLATSB_CLASS WINELIB_NAME_AW(FLATSB_CLASS) - #define WSB_PROP_CYVSCROLL __MSABI_LONG(0x00000001) #define WSB_PROP_CXHSCROLL __MSABI_LONG(0x00000002) #define WSB_PROP_CYHSCROLL __MSABI_LONG(0x00000004) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9883
Nikolay Sivov (@nsivov) commented about dlls/comctl32/commctrl.c:
} }
-BOOL WINAPI RegisterClassNameW(const WCHAR *class) +BOOLEAN WINAPI RegisterClassNameW(const WCHAR *class) {
Where does this come from, and why does it matter for us? Did it cause problems with tests? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9883#note_126940
On Wed Jan 14 16:47:52 2026 +0000, Nikolay Sivov wrote:
Where does this come from, and why does it matter for us? Did it cause problems with tests? The RegisterClassNameW prototype comes from native headers. It's just something that I happen to notice. It hasn't caused any trouble.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/9883#note_127019
On Thu Jan 15 01:55:09 2026 +0000, Zhiyi Zhang wrote:
The RegisterClassNameW prototype comes from native headers. It's just something that I happen to notice. It hasn't caused any trouble. Ah, that's a good reason to fix it. Could you please add this typedef to the headers, and use it in user32? This way it will be easier to see the purpose of this change later.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/9883#note_127066
participants (3)
-
Nikolay Sivov (@nsivov) -
Zhiyi Zhang -
Zhiyi Zhang (@zhiyi)