Const
CSIDL_DESKTOP = &H0 'Desktop
Directory |
Const
CSIDL_PROGRAMS = &H2 'Program
Files Directory |
Const
CSIDL_PERSONAL = &H5
'My Documents Directory |
Const
CSIDL_FAVORITES = &H6 'My
Favorites Directory |
Const
CSIDL_RECENT = &H8 'My
Recent Files Directory |
Const
CSIDL_STARTMENU = &HB
'The StartMenu Directory |
Const
CSIDL_FONTS = &H14
'Fonts Directory |
Const
MAX_PATH = 260 |
Private
Type
SHITEMID |
cb As Long |
abID As Byte |
End
Type |
Private
Type ITEMIDLIST |
mkid As
SHITEMID |
End
Type |
Private
Declare Function ShellAbout Lib
"shell32.dll" Alias
"ShellAboutA" (ByVal
hWnd As Long,
ByVal
szApp As String,
ByVal
szOtherStuff As String,
ByVal
hIcon As Long)
As Long |
Private
Declare Function
SHGetSpecialFolderLocation Lib
"shell32.dll"
(ByVal
hwndOwner As
Long, ByVal
nFolder As Long,
pidl As
ITEMIDLIST) As Long |
Private
Declare Function SHGetPathFromIDList Lib
"shell32.dll" Alias
"SHGetPathFromIDListA" (ByVal
pidl As Long,
ByVal
pszPath As String)
As Long |
|
Private
Function GetSpecialfolder(CSIDL As
Long) As
String |
Dim r As
Long |
Dim IDL As
ITEMIDLIST |
r = SHGetSpecialFolderLocation(100, CSIDL, IDL) |
If r =
NOERROR Then |
Path$ = Space$(512) |
r = SHGetPathFromIDList(ByVal
IDL.mkid.cb, ByVal
Path$) |
GetSpecialfolder = Left$(Path, InStr(Path, Chr$(0)) - 1) |
Exit Function |
End If |
GetSpecialfolder = "" |
End
Function |