SHBrowseForFolder has blank treeview

D

David G. McDivitt

I have several VB programs that use SHBrowseForFolder with
BIF_NONEWFOLDERBUTTON. They all quit working. The browse folder dialog comes
up, but the treeview inside the dialog is blank. If I remove the
BIF_NONEWFOLDERBUTTON flag and recompile, the programs work OK. The programs
work fine on other XP systems with BIF_NONEWFOLDERBUTTON. They just don't
work on my XP system anymore.

I scanned my hard disk for exe files using SHBrowseForFolder. Two seem to
use NONEWFOLDERBUTTON and work OK. That would indicate something is wrong
with the way I am calling the API in my VB programs, but the programs have
worked for several years and I've never experienced the problem before.

I haven't been able to find any detail or answers to this problem. Help
would be appreciated. Thanks
 
D

David G. McDivitt

David G. McDivitt said:
I have several VB programs that use SHBrowseForFolder with
BIF_NONEWFOLDERBUTTON. They all quit working. The browse folder dialog comes
up, but the treeview inside the dialog is blank. If I remove the
BIF_NONEWFOLDERBUTTON flag and recompile, the programs work OK. The programs
work fine on other XP systems with BIF_NONEWFOLDERBUTTON. They just don't
work on my XP system anymore.

I scanned my hard disk for exe files using SHBrowseForFolder. Two seem to
use NONEWFOLDERBUTTON and work OK. That would indicate something is wrong
with the way I am calling the API in my VB programs, but the programs have
worked for several years and I've never experienced the problem before.

I haven't been able to find any detail or answers to this problem. Help
would be appreciated. Thanks

When I print out info from the callback routine, I get one occurrence of
BFFM_IUNKNOWN. The value is 5. According to the following links for Windows
XP I'm supposed to service that request:

http://msdn2.microsoft.com/en-us/library/ms647664.aspx
and
http://msdn2.microsoft.com/en-us/library/ms680509.aspx

It may be because a resource name is invalid and crashes the dialog. Does
anyone have an example of how to do this in VB?
 
D

David G. McDivitt

David G. McDivitt said:
When I print out info from the callback routine, I get one occurrence of
BFFM_IUNKNOWN. The value is 5. According to the following links for Windows
XP I'm supposed to service that request:

http://msdn2.microsoft.com/en-us/library/ms647664.aspx
and
http://msdn2.microsoft.com/en-us/library/ms680509.aspx

It may be because a resource name is invalid and crashes the dialog. Does
anyone have an example of how to do this in VB?

I meant top say BIF_NEWDIALOGSTYLE instead of BIF_NONEWFOLDERBUTTON.
 
T

Thorsten Albers

David G. McDivitt said:
I meant top say BIF_NEWDIALOGSTYLE instead of BIF_NONEWFOLDERBUTTON.

To let us be able to help you please post your code (the code which
performs the call to SHBrowseForFolder() as well as the main code parts of
you hook procedure). It is very likely that the problem is buried somewhere
in this code.

--
 
D

David G. McDivitt

Thorsten Albers said:
From: "Thorsten Albers" <[email protected]>
Date: Sun, 19 Nov 2006 13:51:01 -0800
Lines: 1



To let us be able to help you please post your code (the code which
performs the call to SHBrowseForFolder() as well as the main code parts of
you hook procedure). It is very likely that the problem is buried somewhere
in this code.

Thanks. Hope you can help.

I downloaded VB code from several places with SHBrowseForFolder and
NEWDIALOGSTYLE. None will work. They're all the same as my code. I
downloaded the BrowseDialog Server from http://ccrp.mvps.org and that works.




Dim reportpath$, a$
reportpath = RegFunGetValue(HKEY_CURRENT_USER, regkey, "reportpath", "")
If right(reportpath, 1) = "\" Then reportpath = left(reportpath,
Len(reportpath) - 1)
On Error Resume Next
a = IIf(Len(reportpath) = 0, "", Dir(reportpath, vbDirectory))
If Err <> 0 Then a = ""
On Error GoTo 0
If Len(a) = 0 Or prompt Then
a = BrowseForFolderByPath(SBCMilesWork.hWnd, _
IIf(Len(reportpath) = 0, FolderLocation(0,
CSIDL_DESKTOP), reportpath), _
"Report Path", _
"Choose path for report files", _
True, _
False, _
False)




Private Const MAX_PATH = 260
Private Const WM_USER = &H400&
Private Const BIF_STATUSTEXT = &H4&
Private Const BIF_RETURNONLYFSDIRS = &H1&
Private Const BIF_DONTGOBELOWDOMAIN = &H2&
Private Const BIF_SHAREABLE = &H80
Private Const BIF_NEWDIALOGSTYLE = &H40
Private Const BIF_UAHINT = &H100
Private Const BIF_VALIDATE = &H20
Private Const BIF_NONEWFOLDERBUTTON = &H200
Private Const BIF_EDITBOX = &H10
Private Const BIF_USENEWUI As Long = (BIF_NEWDIALOGSTYLE Or BIF_EDITBOX)
Private Const BIF_BROWSEFORPRINTER = &H2000
Private Const BFFM_INITIALIZED = &H1&
Private Const BFFM_SELCHANGED = &H2&
Private Const BFFM_IUNKNOWN = &H5&
Private Const BFFM_SETSTATUSTEXT = (WM_USER + 100)
Private Const BFFM_SETSELECTION = (WM_USER + 102)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As
BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" _
(ByVal pidList As Long, _
ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" _
(ByVal lpString1 As String, _
ByVal lpString2 As String) As Long
Public Declare Function SetWindowText Lib "User32.dll" Alias
"SetWindowTextA" _
(ByVal hWnd As Long, _
ByVal lpString As String) As Long
Private Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)
Private startfolder$, title$

Public Function BrowseForFolderByPath$(hWnd&, _
StartPath$, _
WindowCaption$, _
Description$, _
ShowCreate As Boolean, _
ShowEdit As Boolean, _
ShowHint As Boolean)
Dim idlist&, sbuf$, BI As BrowseInfo
startfolder = StartPath & vbNullChar
title = WindowCaption
With BI
.hWndOwner = hWnd
.lpszTitle = lstrcat(Description, vbNullChar)
'.ulFlags = BIF_RETURNONLYFSDIRS Or _
BIF_STATUSTEXT Or _
IIf(ShowCreate, 0, BIF_NONEWFOLDERBUTTON) Or _
IIf(ShowEdit, BIF_EDITBOX, 0) Or _
IIf(ShowHint, BIF_UAHINT, 0)
.ulFlags = BIF_RETURNONLYFSDIRS Or _
BIF_STATUSTEXT Or _
BIF_NEWDIALOGSTYLE Or _
IIf(ShowCreate, 0, BIF_NONEWFOLDERBUTTON) Or _
IIf(ShowEdit, BIF_EDITBOX, 0) Or _
IIf(ShowHint, BIF_UAHINT, 0)
.lpfnCallback = GetAddressofFunction(AddressOf BrowseCallbackProc)
End With
idlist = SHBrowseForFolder(BI)
If idlist _
Then
sbuf = String(MAX_PATH, 0)
SHGetPathFromIDList idlist, sbuf
sbuf = left(sbuf, InStr(sbuf, vbNullChar) - 1)
BrowseForFolderByPath = sbuf
CoTaskMemFree idlist
Else
BrowseForFolderByPath = ""
End If
End Function

Private Function BrowseCallbackProc&(ByVal hWnd&, ByVal uMsg&, ByVal lp&,
ByVal pData&)
Dim sbuf$
On Error Resume Next
'Debug.Print "hwnd=" & hWnd & " uMsg=" & uMsg & " lp=" & lp & " pData=" &
pData
Select Case uMsg
Case BFFM_INITIALIZED
SendMessage hWnd, BFFM_SETSELECTION, 1, startfolder
If Len(title) > 0 Then SetWindowText hWnd, title
Case BFFM_SELCHANGED
sbuf = Space(MAX_PATH)
If SHGetPathFromIDList(lp, sbuf) = 1 Then SendMessage hWnd,
BFFM_SETSTATUSTEXT, 0, sbuf
End Select
BrowseCallbackProc = 0
End Function

Private Function GetAddressofFunction&(add&)
GetAddressofFunction = add
End Function
 
T

Thorsten Albers

David G. McDivitt said:
Dim reportpath$, a$
reportpath = RegFunGetValue(HKEY_CURRENT_USER, regkey, "reportpath", "")
If right(reportpath, 1) = "\" Then reportpath = left(reportpath,
Len(reportpath) - 1)
On Error Resume Next
a = IIf(Len(reportpath) = 0, "", Dir(reportpath, vbDirectory))
If Err <> 0 Then a = ""
On Error GoTo 0
If Len(a) = 0 Or prompt Then
a = BrowseForFolderByPath(SBCMilesWork.hWnd, _
IIf(Len(reportpath) = 0, FolderLocation(0,
CSIDL_DESKTOP), reportpath), _
"Report Path", _
"Choose path for report files", _
True, _
False, _
False)

Except for this part of the code is really bad code I can't see any errors.
Private Const BIF_SHAREABLE = &H80

This is not the correct value:

#define BIF_BROWSEINCLUDEURLS 0x0080
#define BIF_SHAREABLE 0x8000

->
Private Const BIF_BROWSEINCLUDEURLS As Long = &H80
Private Const BIF_SHAREABLE As Long = &H8000&
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As
BrowseInfo) As Long

This is missing something:
Private Declare Function SHBrowseForFolder _
Lib "shell32" _
Alias "SHBrowseForFolderA" _
( _
lpbi As BrowseInfo _
) As Long

On Windows 9x this wouldn't be a problem since SHELL32 has an export
"SHBrowseForFolder" as well which points to SHBrowseForFolderW(). Don't
know, if the SHELL32 on XP is designed the same or different. Nevertheless,
it is better to explicitely name the function which is to be used to
prevent errors with future versions of SHELL32.
Private Declare Function SHGetPathFromIDList Lib "shell32" _
(ByVal pidList As Long, _
ByVal lpBuffer As String) As Long

Same like above:
Private Declare Function SHGetPathFromIDList _
Lib "shell32" _
Alias "SHGetPathFromIDListA" _
( _
ByVal pidList As Long, _
ByVal lpBuffer As String _
) As Long
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)
Public Function BrowseForFolderByPath$(hWnd&, _
StartPath$, _
WindowCaption$, _
Description$, _
ShowCreate As Boolean, _
ShowEdit As Boolean, _
ShowHint As Boolean)
Dim idlist&, sbuf$, BI As BrowseInfo
startfolder = StartPath & vbNullChar
title = WindowCaption
With BI
.hWndOwner = hWnd
.lpszTitle = lstrcat(Description, vbNullChar)

Why don't you just declare

Private Type BrowseInfo
...
sDisplayName As String
sTitle As String
...
End Type

and set
.sTitle = Description
.ulFlags = BIF_RETURNONLYFSDIRS Or _
BIF_STATUSTEXT Or _
BIF_NEWDIALOGSTYLE Or _
IIf(ShowCreate, 0, BIF_NONEWFOLDERBUTTON) Or _
IIf(ShowEdit, BIF_EDITBOX, 0) Or _
IIf(ShowHint, BIF_UAHINT, 0)

Some things have to be observed with the BROWSEINFO flags:
BIF_UAHINT
May not be combined with BIF_EDITBOX
BIF_NEWDIALOGSTYLE / BIF_USENEWUI
To use this flag, you must call OleInitialize or CoInitialize
before calling SHBrowseForFolder

Furthermore you should observe that some flags are available only with a
SHELL32 version >= ...:
BIF_EDITBOX >= 4.71
BIF_VALIDATE >= 4.71
BIF_BROWSEINCLUDEFILES >= 4.71
BIF_NEWDIALOGSTYLE >= 5.0
BIF_USENEWUI >= 5.0
BIF_BROWSEINCLUDEURLS >= 5.0
BIF_SHAREABLE >= 5.0
BIF_UAHINT >= 6.0
BIF_NONEWFOLDERBUTTON >= 6.0
BIF_NOTRANSLATETARGETS >= 6.0
End Function

Don't know, if one of these corrections will resolve you problem. But give
it a try...

--
 
D

David G. McDivitt

Thorsten Albers said:
From: "Thorsten Albers" <[email protected]>
Date: Mon, 20 Nov 2006 07:33:54 -0800
Lines: 1



Except for this part of the code is really bad code I can't see any errors.


This is not the correct value:

#define BIF_BROWSEINCLUDEURLS 0x0080
#define BIF_SHAREABLE 0x8000

->
Private Const BIF_BROWSEINCLUDEURLS As Long = &H80
Private Const BIF_SHAREABLE As Long = &H8000&


This is missing something:
Private Declare Function SHBrowseForFolder _
Lib "shell32" _
Alias "SHBrowseForFolderA" _
( _
lpbi As BrowseInfo _
) As Long

On Windows 9x this wouldn't be a problem since SHELL32 has an export
"SHBrowseForFolder" as well which points to SHBrowseForFolderW(). Don't
know, if the SHELL32 on XP is designed the same or different. Nevertheless,
it is better to explicitely name the function which is to be used to
prevent errors with future versions of SHELL32.


Same like above:
Private Declare Function SHGetPathFromIDList _
Lib "shell32" _
Alias "SHGetPathFromIDListA" _
( _
ByVal pidList As Long, _
ByVal lpBuffer As String _
) As Long



Why don't you just declare

Private Type BrowseInfo
...
sDisplayName As String
sTitle As String
...
End Type

and set
.sTitle = Description


Some things have to be observed with the BROWSEINFO flags:
BIF_UAHINT
May not be combined with BIF_EDITBOX
BIF_NEWDIALOGSTYLE / BIF_USENEWUI
To use this flag, you must call OleInitialize or CoInitialize
before calling SHBrowseForFolder

Furthermore you should observe that some flags are available only with a
SHELL32 version >= ...:
BIF_EDITBOX >= 4.71
BIF_VALIDATE >= 4.71
BIF_BROWSEINCLUDEFILES >= 4.71
BIF_NEWDIALOGSTYLE >= 5.0
BIF_USENEWUI >= 5.0
BIF_BROWSEINCLUDEURLS >= 5.0
BIF_SHAREABLE >= 5.0
BIF_UAHINT >= 6.0
BIF_NONEWFOLDERBUTTON >= 6.0
BIF_NOTRANSLATETARGETS >= 6.0


Don't know, if one of these corrections will resolve you problem. But give
it a try...


Thanks for giving it a shot, Thorsten. I tried your suggestions but no
difference. I read elsewhere that OleInitialize and CoInitialize are already
called by VB and not needed. I tried CoInitialize and it returned S_FALSE,
or one, which means COM was already initialized. I changed BrowseInfo as you
suggested and like it better. DisplayName is not needed, but having title as
string avoids use of lstrcat.

One day my VB programs that use SHBrowseForFolder were no longer working on
this machine. The same programs work on other XP systems. Other non VB
programs seem to use SHBrowseForFolder with BIF_NEWDIALOGSTYLE OK on this
machine.

Rebuilding my system would probably fix the problem, but then I wouldn't
know what caused it. Makes no sense to me.
 
T

Thorsten Albers

David G. McDivitt said:
One day my VB programs that use SHBrowseForFolder were no longer working on
this machine. The same programs work on other XP systems. Other non VB
programs seem to use SHBrowseForFolder with BIF_NEWDIALOGSTYLE OK on this
machine.
Rebuilding my system would probably fix the problem, but then I wouldn't
know what caused it. Makes no sense to me.

Check the version number of the SHELL32.DLL on the different machines.

--
 
D

David G. McDivitt

From: "Thorsten Albers said:
Date: Mon, 20 Nov 2006 14:50:41 -0800
Lines: 1



Check the version number of the SHELL32.DLL on the different machines.

The SHELL32.DLL versions are the same.

I'm thinking there may be an invalid namespace entry. I installed some
cruddy software for my Sony Ericsson cell phone and camera. It had a lot of
bugs. If I clicked on the icon present in My Computer, sometimes Windows
Explorer would crash and have to reload. When I tried to uninstall it wasn't
successful. I had to delete anything having "Ericsson" from the registry. If
there is a namespace problem, SHBrowseForFolder might die when building the
treeview nodes, and the treeview would not appear because it was never
completely initialized. But SHBrowseForFolder does work without
BIF_NEWDIALOGSTYLE, the treeview is initialized OK, and probably the same
routine is used to build the treeview with or without BIF_NEWDIALOGSTYLE.
Also, other non VB programs appear to do SHBrowseForFolder with
BIF_NEWDIALOGSTYLE OK. I have no other problems on the machine at all, and I
have no problems with any other VB programs at all. I downloaded and
implemented the BrowseDialog Server from http://ccrp.mvps.org. It uses
SHBrowseForFolder, and my VB programs use that just fine. CoInitialize would
still be done by VB. Though the BrowseDialog Server is a nice component, I
should be able to call SHBrowseForFolder directly with BIF_NEWDIALOGSTYLE,
and I do not want to distribute an extra component with the application.
 
R

Randy Birch

The ccrp control does not use the newstyle flag; it was created ages before
that became available -- Brad uses subclassing magic to put a button on the
ccrp browse dialog to create the new folder.

--

Randy Birch
MS MVP Visual Basic
http://vbnet.mvps.org/

Please reply to the newsgroups so all can participate.




Thorsten Albers said:
From: "Thorsten Albers" <[email protected]>
Date: Sun, 19 Nov 2006 13:51:01 -0800
Lines: 1



To let us be able to help you please post your code (the code which
performs the call to SHBrowseForFolder() as well as the main code parts of
you hook procedure). It is very likely that the problem is buried somewhere
in this code.

Thanks. Hope you can help.

I downloaded VB code from several places with SHBrowseForFolder and
NEWDIALOGSTYLE. None will work. They're all the same as my code. I
downloaded the BrowseDialog Server from http://ccrp.mvps.org and that works.




Dim reportpath$, a$
reportpath = RegFunGetValue(HKEY_CURRENT_USER, regkey, "reportpath", "")
If right(reportpath, 1) = "\" Then reportpath = left(reportpath,
Len(reportpath) - 1)
On Error Resume Next
a = IIf(Len(reportpath) = 0, "", Dir(reportpath, vbDirectory))
If Err <> 0 Then a = ""
On Error GoTo 0
If Len(a) = 0 Or prompt Then
a = BrowseForFolderByPath(SBCMilesWork.hWnd, _
IIf(Len(reportpath) = 0, FolderLocation(0,
CSIDL_DESKTOP), reportpath), _
"Report Path", _
"Choose path for report files", _
True, _
False, _
False)




Private Const MAX_PATH = 260
Private Const WM_USER = &H400&
Private Const BIF_STATUSTEXT = &H4&
Private Const BIF_RETURNONLYFSDIRS = &H1&
Private Const BIF_DONTGOBELOWDOMAIN = &H2&
Private Const BIF_SHAREABLE = &H80
Private Const BIF_NEWDIALOGSTYLE = &H40
Private Const BIF_UAHINT = &H100
Private Const BIF_VALIDATE = &H20
Private Const BIF_NONEWFOLDERBUTTON = &H200
Private Const BIF_EDITBOX = &H10
Private Const BIF_USENEWUI As Long = (BIF_NEWDIALOGSTYLE Or BIF_EDITBOX)
Private Const BIF_BROWSEFORPRINTER = &H2000
Private Const BFFM_INITIALIZED = &H1&
Private Const BFFM_SELCHANGED = &H2&
Private Const BFFM_IUNKNOWN = &H5&
Private Const BFFM_SETSTATUSTEXT = (WM_USER + 100)
Private Const BFFM_SETSELECTION = (WM_USER + 102)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As
BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" _
(ByVal pidList As Long, _
ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" _
(ByVal lpString1 As String, _
ByVal lpString2 As String) As Long
Public Declare Function SetWindowText Lib "User32.dll" Alias
"SetWindowTextA" _
(ByVal hWnd As Long, _
ByVal lpString As String) As Long
Private Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)
Private startfolder$, title$

Public Function BrowseForFolderByPath$(hWnd&, _
StartPath$, _
WindowCaption$, _
Description$, _
ShowCreate As Boolean, _
ShowEdit As Boolean, _
ShowHint As Boolean)
Dim idlist&, sbuf$, BI As BrowseInfo
startfolder = StartPath & vbNullChar
title = WindowCaption
With BI
.hWndOwner = hWnd
.lpszTitle = lstrcat(Description, vbNullChar)
'.ulFlags = BIF_RETURNONLYFSDIRS Or _
BIF_STATUSTEXT Or _
IIf(ShowCreate, 0, BIF_NONEWFOLDERBUTTON) Or _
IIf(ShowEdit, BIF_EDITBOX, 0) Or _
IIf(ShowHint, BIF_UAHINT, 0)
.ulFlags = BIF_RETURNONLYFSDIRS Or _
BIF_STATUSTEXT Or _
BIF_NEWDIALOGSTYLE Or _
IIf(ShowCreate, 0, BIF_NONEWFOLDERBUTTON) Or _
IIf(ShowEdit, BIF_EDITBOX, 0) Or _
IIf(ShowHint, BIF_UAHINT, 0)
.lpfnCallback = GetAddressofFunction(AddressOf BrowseCallbackProc)
End With
idlist = SHBrowseForFolder(BI)
If idlist _
Then
sbuf = String(MAX_PATH, 0)
SHGetPathFromIDList idlist, sbuf
sbuf = left(sbuf, InStr(sbuf, vbNullChar) - 1)
BrowseForFolderByPath = sbuf
CoTaskMemFree idlist
Else
BrowseForFolderByPath = ""
End If
End Function

Private Function BrowseCallbackProc&(ByVal hWnd&, ByVal uMsg&, ByVal lp&,
ByVal pData&)
Dim sbuf$
On Error Resume Next
'Debug.Print "hwnd=" & hWnd & " uMsg=" & uMsg & " lp=" & lp & " pData=" &
pData
Select Case uMsg
Case BFFM_INITIALIZED
SendMessage hWnd, BFFM_SETSELECTION, 1, startfolder
If Len(title) > 0 Then SetWindowText hWnd, title
Case BFFM_SELCHANGED
sbuf = Space(MAX_PATH)
If SHGetPathFromIDList(lp, sbuf) = 1 Then SendMessage hWnd,
BFFM_SETSTATUSTEXT, 0, sbuf
End Select
BrowseCallbackProc = 0
End Function

Private Function GetAddressofFunction&(add&)
GetAddressofFunction = add
End Function
 
D

David G. McDivitt

Randy Birch said:
From: "Randy Birch" <[email protected]>
Date: Fri, 24 Nov 2006 21:32:01 -0500
Lines: 171

The ccrp control does not use the newstyle flag; it was created ages before
that became available -- Brad uses subclassing magic to put a button on the
ccrp browse dialog to create the new folder.

--

Randy Birch
MS MVP Visual Basic
http://vbnet.mvps.org/


Thanks for telling me that, Randy. It looks just like SHBrowseForFolder
looks with BIF_NEWDIALOGSTYLE!

I can say for a certainty, SHBrowseForFolder does not work with
BIF_NEWDIALOGSTYLE for any application on my machine. I thought it might be
just programs I wrote, but it is any program I download or install.

I have no idea why it no longer works. It's a problem, too, since software I
download or install is not functional if SHBrowseForFolder is used with
BIF_NEWDIALOGSTYLE.

Does anyone have an idea why, or what I might do to try and find out why?
 
D

David G. McDivitt

From: David G. McDivitt said:
Date: Mon, 27 Nov 2006 01:02:31 -0600
Lines: 1




Thanks for telling me that, Randy. It looks just like SHBrowseForFolder
looks with BIF_NEWDIALOGSTYLE!

I can say for a certainty, SHBrowseForFolder does not work with
BIF_NEWDIALOGSTYLE for any application on my machine. I thought it might be
just programs I wrote, but it is any program I download or install.

I have no idea why it no longer works. It's a problem, too, since software I
download or install is not functional if SHBrowseForFolder is used with
BIF_NEWDIALOGSTYLE.

Does anyone have an idea why, or what I might do to try and find out why?


This issue was resolved by going to the following URL:

http://windowsxp.mvps.org/copytoempty.htm
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top