home *** CD-ROM | disk | FTP | other *** search
- Attribute VB_Name = "modShell"
- '-----------------------------------------------------------------------------
- ' This is a part of the BeeGrid ActiveX control.
- ' Copyright ⌐ 2000 Stinga
- ' All rights reserved.
- '
- ' You have a right to use and distribute the BeeGrid sample files in original
- ' form or modified, provided that you agree that Stinga has no warranty,
- ' obligations, or liability for any sample application files.
- '-----------------------------------------------------------------------------
- Option Explicit
-
- Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" _
- (ByVal hwndOwner As Long, _
- ByVal nFolder As Long, _
- pidl As Long) As Long
- Private Declare Function SHGetPathFromIDList Lib "shell32" _
- (ByVal pidl As Long, ByVal pszPath As String) As Long
- Public Const CSIDL_DESKTOP = &H0
- Public Const CSIDL_PROGRAMS = &H2
- Public Const CSIDL_CONTROLS = &H3
- Public Const CSIDL_PRINTERS = &H4
- Public Const CSIDL_PERSONAL = &H5
- Public Const CSIDL_FAVORITES = &H6
- Public Const CSIDL_STARTUP = &H7
- Public Const CSIDL_RECENT = &H8
- Public Const CSIDL_SENDTO = &H9
- Public Const CSIDL_BITBUCKET = &HA
- Public Const CSIDL_STARTMENU = &HB
- Public Const CSIDL_DESKTOPDIRECTORY = &H10
- Public Const CSIDL_DRIVES = &H11
- Public Const CSIDL_NETWORK = &H12
- Public Const CSIDL_NETHOOD = &H13
- Public Const CSIDL_FONTS = &H14
- Public Const CSIDL_TEMPLATES = &H15
- Public Const CSIDL_COMMON_STARTMENU = &H16
- Public Const CSIDL_COMMON_PROGRAMS = &H17
- Public Const CSIDL_COMMON_STARTUP = &H18
- Public Const CSIDL_COMMON_DESKTOPDIRECTORY = &H19
- Public Const CSIDL_APPDATA = &H1A
- Public Const CSIDL_PRINTHOOD = &H1B
-
- 'play file
- Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
- (ByVal hwnd As Long, ByVal lpOperation As String, _
- ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _
- ByVal nShowCmd As Long) As Long
- Public Function GetSpecialFolder(CSIDL As Long) As String
- Dim res As Long
- Dim sPath As String
- Dim pidl As Long
- Const MAX_PATH = 260
-
- 'fill pidl with the specified folder item
- res = SHGetSpecialFolderLocation(0, CSIDL, pidl)
-
- If res = 0 Then
- sPath = Space$(MAX_PATH)
- res = SHGetPathFromIDList(ByVal pidl, ByVal sPath)
- If res Then
- GetSpecialFolder = Left$(sPath, _
- InStr(sPath, Chr$(0)) - 1) & "\"
- End If
- End If
- End Function
-
-