Public Enum FolderEnum
feCDBurnArea = 59 ' \Docs & Settings\User\Local Settings\Application Data\Microsoft\CD Burning
feCommonAppData = 35 ' \Docs & Settings\All Users\Application Data
feCommonAdminTools = 47 ' \Docs & Settings\All Users\Start Menu\Programs\Administrative Tools
feCommonDesktop = 25 ' \Docs & Settings\All Users\Desktop
feCommonDocs = 46 ' \Docs & Settings\All Users\Documents
feCommonPics = 54 ' \Docs & Settings\All Users\Documents\Pictures
feCommonMusic = 53 ' \Docs & Settings\All Users\Documents\Music
feCommonStartMenu = 22 ' \Docs & Settings\All Users\Start Menu
feCommonStartMenuPrograms = 23 ' \Docs & Settings\All Users\Start Menu\Programs
feCommonTemplates = 45 ' \Docs & Settings\All Users\Templates
feCommonVideos = 55 ' \Docs & Settings\All Users\Documents\My Videos
feLocalAppData = 28 ' \Docs & Settings\User\Local Settings\Application Data
feLocalCDBurning = 59 ' \Docs & Settings\User\Local Settings\Application Data\Microsoft\CD Burning
feLocalHistory = 34 ' \Docs & Settings\User\Local Settings\History
feLocalTempInternetFiles = 32 ' \Docs & Settings\User\Local Settings\Temporary Internet Files
feProgramFiles = 38 ' \Program Files
feProgramFilesCommon = 43 ' \Program Files\Common Files
'feRecycleBin = 10 ' ???
feUser = 40 ' \Docs & Settings\User
feUserAdminTools = 48 ' \Docs & Settings\User\Start Menu\Programs\Administrative Tools
feUserAppData = 26 ' \Docs & Settings\User\Application Data
feUserCache = 32 ' \Docs & Settings\User\Local Settings\Temporary Internet Files
feUserCookies = 33 ' \Docs & Settings\User\Cookies
feUserDesktop = 16 ' \Docs & Settings\User\Desktop
feUserDocs = 5 ' \Docs & Settings\User\My Documents
feUserFavorites = 6 ' \Docs & Settings\User\Favorites
feUserMusic = 13 ' \Docs & Settings\User\My Documents\My Music
feUserNetHood = 19 ' \Docs & Settings\User\NetHood
feUserPics = 39 ' \Docs & Settings\User\My Documents\My Pictures
feUserPrintHood = 27 ' \Docs & Settings\User\PrintHood
feUserRecent = 8 ' \Docs & Settings\User\Recent
feUserSendTo = 9 ' \Docs & Settings\User\SendTo
feUserStartMenu = 11 ' \Docs & Settings\User\Start Menu
feUserStartMenuPrograms = 2 ' \Docs & Settings\User\Start Menu\Programs
feUserStartup = 7 ' \Docs & Settings\User\Start Menu\Programs\Startup
feUserTemplates = 21 ' \Docs & Settings\User\Templates
feUserVideos = 14 ' \Docs & Settings\User\My Documents\My Videos
feWindows = 36 ' \Windows
feWindowFonts = 20 ' \Windows\Fonts
feWindowsResources = 56 ' \Windows\Resources
feWindowsSystem = 37 ' \Windows\System32
End Enum
Private Declare Function SHGetFolderPath Lib "shfolder" Alias "SHGetFolderPathA" (ByVal hwndOwner As Long, ByVal nFolder As Long, ByVal hToken As Long, ByVal dwFlags As Long, ByVal pszPath As String) As Long
Public Function SpecialFolder(pfe As FolderEnum) As String
Const MAX_PATH = 260
Dim strPath As String
Dim strBuffer As String
strBuffer = Space$(MAX_PATH)
If SHGetFolderPath(0, pfe, 0, 0, strBuffer) = 0 Then strPath = Left$(strBuffer, InStr(strBuffer, vbNullChar) - 1)
If Right$(strPath, 1) = "\" Then strPath = Left$(strPath, Len(strPath) - 1)
SpecialFolder = strPath
End Function