All pastes #72936 Raw Edit

CSIDL

public text v1 · immutable
#72936 ·published 2006-06-27 07:51 UTC
rendered paste body
 Const CSIDL_DESKTOP                    As Long = &H0
 Const CSIDL_INTERNET                   As Long = &H1
 Const CSIDL_PROGRAMS                   As Long = &H2
 Const CSIDL_CONTROLS                   As Long = &H3
 Const CSIDL_PRINTERS                   As Long = &H4
 Const CSIDL_PERSONAL                   As Long = &H5
 Const CSIDL_FAVORITES                  As Long = &H6
 Const CSIDL_STARTUP                    As Long = &H7
 Const CSIDL_RECENT                     As Long = &H8
 Const CSIDL_SENDTO                     As Long = &H9
 Const CSIDL_BITBUCKET                  As Long = &HA
 Const CSIDL_STARTMENU                  As Long = &HB
 Const CSIDL_MYDOCUMENTS                As Long = &HC
 Const CSIDL_MYMUSIC                    As Long = &HD
 Const CSIDL_MYVIDEO                    As Long = &HE
 Const CSIDL_DESKTOPDIRECTORY           As Long = &H10
 Const CSIDL_DRIVES                     As Long = &H11
 Const CSIDL_NETWORK                    As Long = &H12
 Const CSIDL_NETHOOD                    As Long = &H13
 Const CSIDL_FONTS                      As Long = &H14
 Const CSIDL_TEMPLATES                  As Long = &H15
 Const CSIDL_COMMON_STARTMENU           As Long = &H16
 Const CSIDL_COMMON_PROGRAMS            As Long = &H17
 Const CSIDL_COMMON_STARTUP             As Long = &H18
 Const CSIDL_COMMON_DESKTOPDIRECTORY    As Long = &H19
 Const CSIDL_APPDATA                    As Long = &H1A
 Const CSIDL_PRINTHOOD                  As Long = &H1B
 Const CSIDL_LOCAL_APPDATA              As Long = &H1C
 Const CSIDL_ALTSTARTUP                 As Long = &H1D
 Const CSIDL_COMMON_ALTSTARTUP          As Long = &H1E

 Const CSIDL_COMMON_FAVORITES           As Long = &H1F
 Const CSIDL_INTERNET_CACHE             As Long = &H20
 Const CSIDL_COOKIES                    As Long = &H21
 Const CSIDL_HISTORY                    As Long = &H22
 Const CSIDL_COMMON_APPDATA             As Long = &H23
 Const CSIDL_WINDOWS                    As Long = &H24
 Const CSIDL_SYSTEM                     As Long = &H25
 Const CSIDL_PROGRAM_FILES              As Long = &H26
 Const CSIDL_MYPICTURES                 As Long = &H27
 Const CSIDL_PROFILE                    As Long = &H28
 Const CSIDL_PROGRAM_FILES_COMMON       As Long = &H2B
 Const CSIDL_COMMON_TEMPLATES           As Long = &H2D
 Const CSIDL_COMMON_DOCUMENTS           As Long = &H2E
 Const CSIDL_COMMON_ADMINTOOLS          As Long = &H2F
 Const CSIDL_ADMINTOOLS                 As Long = &H30
 Const CSIDL_CONNECTIONS                As Long = &H31
 Const CSIDL_COMMON_MUSIC               As Long = &H35
 Const CSIDL_COMMON_PICTURES            As Long = &H36
 Const CSIDL_COMMON_VIDEO               As Long = &H37
 Const CSIDL_RESOURCES                  As Long = &H38
 Const CSIDL_RESOURCES_LOCALIZED        As Long = &H39
 Const CSIDL_COMMON_OEM_LINKS           As Long = &H3A
 Const CSIDL_CDBURN_AREA                As Long = &H3B
 Const CSIDL_COMPUTERSNEARME            As Long = &H3D
 
Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
    (ByVal pidl As Long, _
     ByVal pszPath As String) _
    As Long
    
Public Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" _
    (ByVal hwndOwner As Long, _
     ByVal nFolder As Long, _
     ByRef pidl As Long) _
    As Long
 
 Public Function GetSpecialFolder(ByVal CSIDL As Long) As String
    Dim pidl    As Long
    Dim strPath As String
    dim lngPos  As Long
    
    Dim csidltopidl As Long
    
    If (csidl) Then
        If SHGetSpecialFolderLocation(frmRef.hWnd, csidl, pidl) = 0 Then _
            csidltopidl = pidl
      Else
        csidltopidl = 0&
    End If
    
    strPath = Space$(260)
    
    If SHGetPathFromIDList(ByVal pidl, ByVal strPath) Then
        lngPos = InStr(strPath, Chr$(0))
        If (lngPos) Then _
            GetSpecialWinFolder = Left$(strPath, lngPos - 1)
   End If
End Function