SW_* constants are not defined in GUI_constants.cpp (nor exported in GUI.pm). In general there are many constants missing.

There are 2 issues to address here:
(1) How should we deal with constants? I, personally, don't like the way that Win32::GUI by default exports all it's constants into the calling namespace, and so have made a conscious decision not to extend the list at the moment: IMHO we should not export anything by default, and have suitable groups of constants that can be exported on request. I also feel that separating the constants into their own module (Win32::GUI::Constants?) would be a useful thing to do.

(2) Wherever possible we should be removing the need for the use of constants, so in your example of BrowseForFolder we should extend the options available to keep up with the enhancements made by microsoft. If you can raise a RFE, then I'll look at the for the next release.

Comments?

Rob.

Glenn Linderman wrote:
On approximately 10/21/2005 9:57 PM, came the following characters from
the keyboard of Glenn Linderman:

Tried out the ShellExecute API tonight. Works. Can't use the SW_* constants that are documented, though, because they aren't defined.

Should they be?  Looks like they would also be usable with the Show
API.


Hmm.  BIF_* options are also not exposed (for BrowseForFolder).  On the
other hand, a small selection of BIF_* constants are implicitly used
based on user options to the GUI BrowseForFolder command.  However, GUI
hasn't kept pace with BrowseForFolder enhancements (see
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/structures/browseinfo.asp)

So the question is, should additional options be added to GUI's
BrowseForFolder to correspond with all the new options in the above
link?  I'm particularly interested in the BIF_NEWDIALOGSTYLE.

BIF_NEWDIALOGSTYLE
Version 5.0. Use the new user interface. Setting this flag provides
the user with a larger dialog box that can be resized. The dialog box
has several new capabilities including: drag-and-drop capability
within the dialog box, reordering, shortcut menus, new folders,
delete, and other shortcut menu commands. To use this flag, you must
call OleInitialize or CoInitialize before calling SHBrowseForFolder.


Does GUI already call OleInitialize and/or CoInitialize? I couldn't find them, but they seem to be a prerequisite for this option. I see that these functions set the thread's "concurrency model", which I have no idea what that is, or if it would adversely affect GUI.


Reply via email to