Page 1 of 1

How to open folder using VB6

Posted: Mon Oct 31, 2011 3:02 pm
by SevenZero

Code: Select all

Option Explicit

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 Const BIF_RETURNONLYFSDIRS = 1
Private Const MAX_PATH = 260

Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 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

Public Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String

	'declare variables to be used
	Dim iNull As Integer
	Dim lpIDList As Long
	Dim lResult As Long
	Dim sPath As String
	Dim udtBI As BrowseInfo

	'initialise variables
	With udtBI
		.hwndOwner = hwndOwner
		.lpszTitle = lstrcat(sPrompt, "")
		.ulFlags = BIF_RETURNONLYFSDIRS
	End With

	'Call the browse for folder API
	lpIDList = SHBrowseForFolder(udtBI)

	'get the resulting string path
	If lpIDList Then
		sPath = String$(MAX_PATH, 0)
		lResult = SHGetPathFromIDList(lpIDList, sPath)
		Call CoTaskMemFree(lpIDList)
		iNull = InStr(sPath, vbNullChar)
		If iNull Then sPath = Left$(sPath, iNull - 1)
	End If

	'If cancel was pressed, sPath = ""
	BrowseForFolder = sPath

End Function
Usage:

Code: Select all

Private Sub cmdServerBrowse_Click()
	txtDatabasePath.Text = BrowseForFolder(hwnd, "Please select a Server folder.")
End Sub

Re: How to open folder using VB6

Posted: Mon Nov 14, 2011 10:21 am
by Nandika
use shell32.dll.it has api for open folder,send mail and more tasks with os.you can use msdn 4 more info.

[ Post made via Mobile Device ] Image