sub BrowseForFolder {
undef $Win32::FileOp::Error;
my ($hwndOwner, $pidlRoot, $pszDisplayName,
$lpszTitle, $nFolder, $ulFlags,
$lpfn, $lParam, $iImage, $pszPath)
=
(GetWindowHandle(), "\0"x260, "\0"x260,
shift() || "\0", shift() || 0, (shift() || 0) | 0x0000,
0, 0, 0, "\0"x260);
$nFolder = CSIDL_DRIVES() unless defined $nFolder;
....
####
sub BrowseForFolder {
undef $Win32::FileOp::Error;
my ($pidlRoot, $pszDisplayName, # removed first var
$lpszTitle, $nFolder, $ulFlags,
$lpfn, $lParam, $iImage, $pszPath, $hwndOwner) # and put it last
=
("\0"x260, "\0"x260,
shift() || "\0", shift() || 0, (shift() || 0) | 0x0000,
0, 0, 0, "\0"x260, shift());
$hwndOwner = GetWindowHandle() unless defined $hwndOwner; #added for if $hwndOwner is undef
$nFolder = CSIDL_DRIVES() unless defined $nFolder;
####
my $windowid = hex ($main_window -> id);
my $dir = BrowseForFolder("Relative to \$main_window", undef, undef, $windowid);
####
title => ...
filters => ...
defaultfilter => ...
dir => ...
handle => ...
options => ...
etc...
####
my $windowid = hex ($mw -> id);
my $directory = BrowseForFolder (
-title => "Choose Directory:",
-CSIDL_opt => 'CSIDL_DRIVES,
-BIF_opts => 'BIF_RETURNFSANCESTORS',
-open_folder => 'C:\Perl\site\lib\Win32',
-handle => $windowid,
);