[Bug 24952] New: dlls/user32/button.c handles incorrectly unknown button types

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Oct 30 10:45:34 CDT 2010


http://bugs.winehq.org/show_bug.cgi?id=24952

           Summary: dlls/user32/button.c handles incorrectly unknown
                    button types
           Product: Wine
           Version: 1.3.6
          Platform: x86
        OS/Version: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: user32
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: mity at morous.org


Created an attachment (id=31597)
 --> (http://bugs.winehq.org/attachment.cgi?id=31597)
code demonstrating the difference

When an unknown/unsupported button type is specified (e.g. BS_SPLITBUTTON or
BS_DEFSPLITBUTTON), creation of button control fails in Wine.

In contrary on Windows it suceeds (even though the created control then behaves
incorrectly) whenever BS_[DEF]SPLITBUTON is not supported. Tested on Windows
2000, Windows XP, Windows 7 (with program without manifest, so comctl32 6.0 was
NOT used).

The behavior difference in effect prevents mCtrl split button emulation from
working (see http://sourceforge.net/projects/mctrl/). The MCTRL.DLL provides a
split button as a subclass of standard BUTTON window class.

When needed (i.e. COMCTL32 < 6.0), the split buttons are handled by the code in
MCTRL.DLL implementation. This works perfectly on Windows, but not within Wine
for the reason described above.

The behavior difference can be tested with the attached code: On Windows the
two buttons are created successfully (even they misbehave), on Wine the two
CreateWindow calls fail.

Obviously the reason is the test:

        if (btn_type >= MAX_BTN_TYPE)
            return -1; /* abort */

in dlls/couser32/button.c:260.

There are probably also other related problems (e.g. in BM_SETSTYLE) etc.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list