| 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 |