Диалоговое окно Windows XP - для выбора каталога
'В модуль----------------------------------------------------------------- 
Option Explicit 
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 
Public Enum WhatBrowse 
BIF_RETURNONLYFSDIRS = &H1 
BIF_BROWSEINCLUDEFILES = &H1 Or &H4000 
BIF_BROWSEFORCOMPUTER = &H1000 
BIF_BROWSEFORPRINTER = &H2000 
End Enum 
Public Const MAX_PATH = 260 
Public Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long) 
Public Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long 
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 Function fBrowseForFolder(hWndOwner As Long, sPrompt As String, WhatBr) As String 
Dim iNull As Integer 
Dim lpIDList As Long 
Dim lResult As Long 
Dim sPath As String 
Dim udtBI As BrowseInfo 
With udtBI 
.hWndOwner = hWndOwner 
.lpszTitle = lstrcat(sPrompt, "") 
.ulFlags = WhatBr 
End With 
lpIDList = SHBrowseForFolder(udtBI) 
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 
fBrowseForFolder = sPath 
End Function 

-Form1------------------------------------------------------------------ 
Dim sStr As String 
sStr = fBrowseForFolder(hWnd, "Выберите папку установки", BIF_BROWSEINCLUDEFILES)

Категория: API функции в VB6 | Добавил: server2009 (10.02.2009)
Просмотров: 1680 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: