Hi Mike,
I was unable to download the ComCntlsXP.F file. IE reports that it's unavailable. The other
files downloaded fine.
Not sure whats happening,
Gene
> Hello Douglas,
>
> I posted a few files to our server showing how to load/utilize version 6
> of ComCtl32.
>
> See http://www.logix-controls.com/SwiftForth/XP-Themes/
>
> For a quick demo, see the comments in ComCntlsXP.F. After copying the
> manifest file, you will need to restart SF.exe.
>
> I also posted a couple of text files I found useful (from MSDN I
> believe).
>
> Mike
>
> -----Original Message-----
> From: sftalk-bounce_at_forth.com [mailto:sftalk-bounce_at_forth.com] On Behalf
> Of Douglas Reid
> Sent: Sunday, May 02, 2010 10:44 AM
> To: sftalk_at_forth.com
> Subject: [sftalk] COMCTL32 controls versions
>
> I am wondering how it is possible to select between the versions 5 and 6
> of the Comctl32.dll controls library?
> I am using Windows XP Professional with recent service packs installed
> so version 6 of Comctl32.dll is present on the PC (although version 5 is
> also present elsewhere).
>
> I note that what is in C:\WINDOWS\System32=20
> is 5.82.2900.5512
>
> However other more recent versions are also present elsewhere in other
> directories (presumably resulting from installation of the service pack
> upgrades).
> The most recent is in:
> C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df
> _6.0.2600.5512_x-ww_35d4ce83
> which contains 6.0.2900.5512
>
> It is not completely clear which version SwifthForth is using although
> it seems that the controls produced in a SwiftForth programme are those
> of the version 5 type.
> I have this impression since the edit control in a SwiftForth programme
> with the ES_PASSWORD style displays asterisks rather than black circles.
>
> http://msdn.microsoft.com/en-us/library/bb775464(VS.85).aspx
> states:
> =3D=3D=3D begin =3D=3D=3D
> Windows XP: If the edit control is from user32.dll, the default password
> character is an asterisk.
> However, if the edit control is from comctl32.dll version 6, the default
> character is a black circle.
>
> To change the characters that is displayed, or set or clear this style,
> use the EM_SETPASSWORDCHAR message.
>
> Note Comctl32.dll version 6 is not redistributable but it is included
> in Windows XP or later.
> To use Comctl32.dll version 6, specify it in a manifest. For more
> information on manifests, see Enabling Visual Styles.
> =3D=3D=3D end =3D=3D=3D
>
> I am not personally particularly bothered whether the edit control shows
> asterisks rather than black circles.
> However, the default behaviour indicates that SwiftForth is using the
> version 5 control.
>
> Thus, it is necessary to have some way of selecting the alternative
> version 6.
> It is also necessary to enable use v6 of Comctl32.dll rather than the v5
> to take advantage of other controls that don't exist in v5 or have been
> significantly enhanced.
>
> Furthermore, it is also necessary to have the alternative of selecting
> the v5 to develop code to support systems that do not have v6 of
> Comctl32.dll
>
> The PC operating system itself seems to be using v6 since when I look at
> Control Panel ... User Accounts ... in setting a password, black circles
> rather than asterisks are seen.
>
> I found InitCommonControlsEx function which appears to offer a possible
> solution
> http://msdn.microsoft.com/en-us/library/bb775697(VS.85).aspx
>
> Values in the INITCOMMONCONTROLSEX Structure
> http://msdn.microsoft.com/en-us/library/bb775507(v=3DVS.85).aspx
> are supported by SwiftForth (e.g., ICC_STANDARD_CLASSES,
> ICC_TREEVIEW_CLASSES, etc.) suggesting that it is relevant.
> However, the InitCommonControlsEx function itself is not present in
> SwiftForth nor, apparently, the structure.
>
> The documentation is unclear since it does not indicate what (if
> anything) needs to be done to select the v6 version of the edit control.
>
> Actually, using ICC_STANDARD_CLASSES it seems that the
> InitCommonControlsEx function can be used to deselect v6 since the
> documentation states:
> > ICC_STANDARD_CLASSES: Load one of the intrinsic User32 control
> classes.
> > The user controls include button, edit, static, listbox, combobox, and
> scrollbar.
>
> Thus the impression is that one may not need to do nothing to benefit
> from v6 (assuming that one has a system running Windows XP) and, in
> respect of the edit edit, use of InitCommonControlsEx function is only
> relevant if it is desired to deselect it.
> =20
> In summary, the edit control in my Forth test programme has asterisks by
> default whether or not I use InitCommonControlsEx
> (I believe I have successfully implemented a INITCOMMONCONTROLSEX
> structure and use of the function).
>
> http://msdn.microsoft.com/en-us/library/bb773175(v=3DVS.85).aspx
> This article discusses "Using Manifests or Directives to Ensure That
> Visual Styles Can Be Applied to Applications"
>
> Do we need a file called sf.exe.manifest ?
>
> It would be preferable if v5/ v6 selection could more simply be based on
> some sort of directives or commands within a particular programme.
> In any event, it is unclear exactly what content would be used in the
> manifold file.
>
> Another resource I found is=20
> www.geoffchappell.com/viewer.htm?doc=3Dstudies/windows/shell/comctl32/con=
> t
> rols/index.htm&tx=3D14
> Chappel writes:
> =3D=3D=3D begin =3D=3D=3D
> 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
>
> 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.
> =3D=3D=3D end =3D=3D=3D
>
> All ideas welcomed!
>
> Best Regards,
> Douglas
> ----------------------------------------------------------------------
> sftalk_at_forth.com The SwiftForth programming discussion email list
> To unsubscribe, send subject "unsubscribe" to sftalk-request_at_forth.com
> For list command help, send subject "help" to sftalk-request_at_forth.com
> Message archives are located at http://www.forth.com/archive/sftalk
> ----------------------------------------------------------------------
> This list is a forum for SwiftForth users. For product support and
> bug reports, please send email to support_at_forth.com
> ----------------------------------------------------------------------
>
> ----------------------------------------------------------------------
> sftalk_at_forth.com The SwiftForth programming discussion email list
> To unsubscribe, send subject "unsubscribe" to sftalk-request_at_forth.com
> For list command help, send subject "help" to sftalk-request_at_forth.com
> Message archives are located at http://www.forth.com/archive/sftalk
> ----------------------------------------------------------------------
> This list is a forum for SwiftForth users. For product support and
> bug reports, please send email to support_at_forth.com
> ----------------------------------------------------------------------
>
----------------------------------------------------------------------
sftalk_at_forth.com The SwiftForth programming discussion email list
To unsubscribe, send subject "unsubscribe" to sftalk-request_at_forth.com
For list command help, send subject "help" to sftalk-request_at_forth.com
Message archives are located at http://www.forth.com/archive/sftalk
----------------------------------------------------------------------
This list is a forum for SwiftForth users. For product support and
bug reports, please send email to support_at_forth.com
----------------------------------------------------------------------
Received on Mon May 03 2010 - 07:18:41 PDT
Subscribe to our e-mail list service. It's free for all SwiftForth and SwiftX users!
This archive was generated 06-Feb-2012. Archive updated nightly.