Actually, I figured it out, but I will post it anyway, in case there is something I missed, or maybe someone else could use this. The trick was a global variable for the StartFolder.
>>In the module:
Option Explicit
Private Const BIF_RETURNONLYFSDIRS = 1
Private Const BIF_DONTGOBELOWDOMAIN = 2
Private Const MAX_PATH = 260
Public Declare Function SHBrowseForFolder Lib "shell32" _
(lpbi As BrowseInfo) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32" _
(ByVal pidList As Long, ByVal _
lpBuffer As String) As Long
Public Declare Function lstrcat Lib "kernel32" Alias _
"lstrcatA" (ByVal lpString1 _
As String, ByVal lpString2 As _
String) As Long
Public Declare Function SendMessage Lib "user32.dll" Alias _
"SendMessageA" (ByVal hWnd As Long, _
ByVal Msg As Long, wParam _
As Any, lParam As Any) As Long
Public Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)
Public Declare Function GetActiveWindow Lib "user32" () As Long
Public 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
Const BFFM_ENABLEOK = &H465
Const BFFM_SETSELECTION = &H466
Const BFFM_SETSTATUSTEXT = &H464
Const BFFM_INITIALIZED = 1
Const BFFM_SELCHANGED = 2
Const BFFM_VALIDATEFAILED = 3
Global StartFolder As String
>>Then the Dummy Function for the Callback Procedure
Public Function DummyFunc(ByVal param As Long) As Long
DummyFunc = param
End Function
>> Then the callback function itself.
Public Function BrowseCallbackProc(ByVal hWnd As Long, ByVal uMsg _
As Long, ByVal lParam As Long, ByVal lpData As Long) As Long
Dim retval As Long ' return value
' If the BFFM_INITIALIZED message is received, set the
' default selection to the StartFolder.
Select Case uMsg
Case BFFM_INITIALIZED
retval = SendMessage(hWnd, BFFM_SETSELECTION, ByVal CLng(1), ByVal StartFolder)
End Select
BrowseCallbackProc = 0 ' the function should always return 0
End Function
>> And finally, the BrowseFolder Function
Public Function BrowseFolder(ByVal szTitle As String) As String
Dim lpIDList As Long
Dim sBuffer As String
Dim retval
Dim tBrowseInfo As BrowseInfo
With tBrowseInfo
.hWndOwner = Form1.hWnd
.lpszTitle = lstrcat(szTitle, ""

.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
.lpfnCallback = DummyFunc(AddressOf BrowseCallbackProc)
End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
ActHwnd = GetActiveWindow
retval = SendMessage(ActHwnd, BFFM_SETSELECTION, ByVal CLng(1), ByVal StartFolder)
If (lpIDList) Then
sBuffer = Space(MAX_PATH)
SHGetPathFromIDList lpIDList, sBuffer
sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
BrowseFolder = sBuffer
End If
End Function
>> In the form's browse button
Private Sub Command1_Click()
StartFolder = "C:\SomeFolder"
Text1.Text = BrowseFolder("This is a test"

End Sub
Thanks for the help.
Elena