On Thu, 23 Apr 2009, Rob May wrote: > 2009/4/23 Jan Dubois <j...@activestate.com>: >> Interesting. I don't quite understand how this would work though, as >> the names of the controls are registered globally, so I don't see how >> you could mix old and new style controls inside a single process. > > I'm not going to pretend that I understand it all either, but it's > certainly possible for a process to load both v5 and v6 controls and > use both - I suspect that if one was to understand activation contexts > in detail it's possible to have both sorts of contro; within the same > window - not that I can think of a reason for doing that! > > My starting point was this documentation: > http://msdn.microsoft.com/en-us/library/ms997646.aspx > >> Could you find a link to some documentation about this so I can >> understand how this is supposed to work? > > Per application: SetThemeAppProperties - > http://msdn.microsoft.com/en-us/library/bb759825(VS.85).aspx Per > window: SetWindowTheme - > http://msdn.microsoft.com/en-us/library/bb759827(VS.85).aspx
Ok, I see. You would not be missing v5 and v6 style controls; all controls will be from v6, but you would disable the styling, so they would still look like the old style. But any changes in the message handling of the controls would still be there. But I think this should be good enough. So I think perl.exe should change the manifest to always request v6 style controls, and then the Win32 module could add a function to call SetThemeAppProperties() to switch off theming if an application wants to do this. This way the function would be generally available for all users, even if the specific GUI toolkit (e.g. Perl/Tk, or gTk, or wxPerl or Tkx or whatever doesn't provide access to it). Since you said you wanted to provide access to the theming APIs in Win32-GUI in the future: these APIs are all in the uxtheme.dll, which only exists on Windows XP and later. Therefore you must not link against uxtheme.lib if you want the module to continue to work on Windows 2000; instead you need to do the LoadLibrary/GetProcAddress dance, or put the calls into a separate XS file that is only loaded on XP and later. Cheers, -Jan ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensign option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Perl-Win32-GUI-Users mailing list Perl-Win32-GUI-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users http://perl-win32-gui.sourceforge.net/