[Bug 39637] Samsung TV SDK 3.5.2 (MFC MDI app) crashes on startup ('comctl32' needs to register builtin 'Button' class with 'CS_GLOBALCLASS')

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Nov 23 04:35:08 CST 2015


https://bugs.winehq.org/show_bug.cgi?id=39637

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|-unknown                    |comctl32
            Summary|Samsung TV SDK 3.5.2 (MFC   |Samsung TV SDK 3.5.2 (MFC
                   |MDI app) crashes on startup |MDI app) crashes on startup
                   |                            |('comctl32' needs to
                   |                            |register builtin 'Button'
                   |                            |class with
                   |                            |'CS_GLOBALCLASS')

--- Comment #7 from Anastasius Focht <focht at gmx.net> ---
Hello Dmitry,

thanks for the analysis.

I found the activation context dependent behaviour you described also mentioned
here:

http://www.geoffchappell.com/studies/windows/shell/comctl32/controls/ (Geoff
Chappell about Common Controls)

--- quote ---
...
Note that in version 6.00 and higher, COMCTL32 re-implements some of the
built-in controls. The implementations in USER32 remain. Both implementations
use the same class names. Whether a given control is implemented through
COMCTL32 or USER32 depends on the current activation context when the control
is created. The affected controls are:

    Button, ComboBox, ComboLBox, Edit, ListBox, ScrollBar and Static

The ComboLBox control is obscure. Microsoft documents it as being “available
only for use by the system” (yet MSHTML knows of it, admittedly to subclass an
existing control, not to create one). The ComboLBox control is essentially a
ListBox, with the same window procedure but different class styles, intended to
exist only as a child of a ComboBox.

Redirection of window classes according to the current activation context is
supported by USER32 in Windows XP and higher. Part of the feature is that any
module, such as COMCTL32.DLL, that implements window classes can declare its
support through an assembly manifest. If a window cannot be created because the
requested class is not yet registered, but the class is supported by the module
associated with the current activation context, then USER32 can call that
module to get the class registered, and then retry the window creation. The
module must export a function named RegisterClassNameW. COMCTL32 does this in
versions 5.82 and 6.0 from Windows XP SP2, but not Windows XP SP3, and higher,
with the effect that InitCommonControlsEx becomes unnecessary.

Version 6.10 takes this one step further. The ImageDrag control, new for
version 6.10, is outside the machinery of InitCommonControlsEx. Its class name
can only be registered through RegisterClassNameW. However, the only use known
at present is internal, for COMCTL32 to enhance image lists. 
--- quote ---

Regards

-- 
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