Sean, Many thanks for your help in pointing me in the right direction!!
Here's the partial code listing I got working. use constant DIR_NORMALFILES => \&H0; ~ ~ ~ sub AddItemsToListBox1{ my $dir = "C:/*.*"; my $result=Win32::GUI::Listbox::Dir($Listbox1, $dir , DIR_NORMALFILES); } Notes: It turns out that the VB method DirDlgList is not an issue at all, nor do I need to use AddFile to populate the Listbox after calling ListBox::Dir. However, the constants that you found do not seem to work. The constants defined in http://www.vbexplorer.com/VBExplorer/SourceCode/vbs_fd.asp#tip1 as written by Gordon F. MacLeod for Visual Basic do seem to work: ' Note**, The author defined these constants, so you ' won't find them in API documentation, although they ' are based on values used with LB_DIR. Global Const WM_USER = &H400 Global Const LB_DIR = (WM_USER + 14) Global Const DIR_NORMALFILES = &H0 Global Const DIR_READONLY = &H8001 Global Const DIR_HIDDEN = &H8002 Global Const DIR_SYSTEM = &H8004 Global Const DIR_DIRECTORIES = &H8010 Global Const DIR_ARCHIVED = &H8020 Global Const DIR_DRIVES = &HC000 Thanks, Brian ------------------------------ Message: 2 Date: Mon, 15 Dec 2008 17:08:07 +0100 From: Sean Healy <jalope...@hotmail.com> Subject: Re: [perl-win32-gui-users] Filling Listbox with Dir and AddFile To: perl-win32-gui-users@lists.sourceforge.net Message-ID: <col0-dav14d60199ef91fdc7381e16b4...@phx.gbl> Content-Type: text/plain; charset=windows-1252; format=flowed Brian Somers wrote: > Basically, I?m trying to implement a dual listbox interface quite > similar to what Eric Hansen wrote about in 1999. What I can?t find > anywhere is how to fill the left listbox with the files in a given > directory, although the closest I found was a tutorial in VB out on the > web. I?m trying to use the methods Dir and AddFile, but something?s not > working. I can?t figure out what the Dir method is supposed to return, > nor what parameters/arguments to send. I try AddFile and my app crashes. > I can make AddString work, though. MSDN is your friend! (Seriously, MSDN is your best bet for figuring out undocumented Win32::GUI methods.) AddFile($path) http://msdn.microsoft.com/en-us/library/bb775165(VS.85).aspx Take note: "The list box to which lParam is added must have been filled by the DlgDirList function." This is presumably why you're crashing Unfortunately, however, Win32::GUI does not expose the DlgDirList function to Perl. (At least, a search of the source files does not find "DlgDirList".) Dir($path, $flags) http://msdn.microsoft.com/en-us/library/bb775185(VS.85).aspx Some notes: 2) The order of parameters is swapped in Win32::GUI. 3) The constants don't seem to be available via Win32::GUI::Constants, so here they are: DDL_READWRITE = 0x00 DDL_READONLY = 0x01 DDL_HIDDEN = 0x02 DDL_SYSTEM = 0x04 DDL_DIRECTORY = 0x10 DDL_ARCHIVE = 0x20 DDL_DRIVES = 0x4000 DDL_EXCLUSIVE = 0x8000 (I hope these are correct - I found them on the web and haven't tested them.) ------------------------------------------------------------------------------ _______________________________________________ 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/