PDA

Click to See Complete Forum and Search --> : Shell32 Network Browsing - HELP!


Judd
Jul 12th, 2000, 05:50 AM
Has any one used these network browsing functions? I'm trying to show the network browsing dialog, then retrieve the name of the selected computer...

This is what I've got:


Option Explicit

Const MAXPATH = 260
Const CSIDL_NETWORK = 18
Const CSIDL_DESKTOP = 0

Const BIF_RETURNONLYFSDIRS = &H1 ' For finding a folder to start document searching
Const BIF_DONTGOBELOWDOMAIN = &H2 ' For starting the Find Computer
Const BIF_STATUSTEXT = &H4
Const BIF_RETURNFSANCESTORS = &H8
Const BIF_EDITBOX = &H10
Const BIF_VALIDATE = &H20 ' insist on valid result (or CANCEL)

Const BIF_BROWSEFORCOMPUTER = &H1000 ' Browsing for Computers.
Const BIF_BROWSEFORPRINTER = &H2000 ' Browsing for Printers
Const BIF_BROWSEINCLUDEFILES = &H4000 ' Browsing for Everything

Private Type BROWSEINFO
hwndOwner As Long
pidlRoot As Long
strDisplayName As Long
strTitle As Long
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type

Private Declare Function GlobalFree Lib "kernel32" (ByVal pntr As Long) As Long

Private Declare Function SHGetSpecialFolderLocation Lib "Shell32" (ByVal hwnd As Long, _
ByVal lpstr As Long, ByRef pntr As Long) As Long

Private Declare Function SHGetPathFromIDList Lib "Shell32" (ByVal pntr As Long, _
ByRef str As String) As Long

Private Declare Function SHBrowseForFolder Lib "Shell32" (ByVal pntr As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Long, Source As Long, ByVal Length As Long)


Private Sub Command1_Click()
Dim udtBrowse As BROWSEINFO
Dim lngIdl As Long
Dim nHwndFlag As Long
Dim nResult As Long

Dim szPath As String, szDLL As String, szParameter As String
Dim pszOperation As Long, pszFile As Long, pszPath As Long, pszParameter As Long
Dim pudtBrowse As Long, pstrPath As Long, pstrTitle As Long
Dim strPath As String * MAXPATH
Dim strTitle As String * MAXPATH
Dim nReturn As Long
Dim nFolder As Long

nFolder = CSIDL_NETWORK

nResult = SHGetSpecialFolderLocation(Me.hwnd, nFolder, lngIdl)

If nResult = 0 Then

strPath = ""
strTitle = "Arse Beaver" & vbNullChar

pstrPath = StrPtr(strPath)
pstrTitle = StrPtr(strTitle)

udtBrowse.hwndOwner = Me.hwnd
udtBrowse.pidlRoot = lngIdl
'udtBrowse.strDisplayName = pstrPath
udtBrowse.strTitle = pstrTitle
udtBrowse.ulFlags = BIF_BROWSEFORCOMPUTER 'BIF_RETURNONLYFSDIRS
pudtBrowse = VarPtr(udtBrowse)

lngIdl = SHBrowseForFolder(pudtBrowse)
If lngIdl <> 0 Then
' 'strPath = String(512, vbNullChar)
' nResult = SHGetPathFromIDList(lngIdl, strPath)
' Label1.Caption = strPath
' GlobalFree (lngIdl)
End If
End If
End Sub


Can anyone make this work?? Please help!