Declare Function SHGetSpecialFolderLocation Lib "shell32" Alias "SHGetSpecialFolderLocationA" (ByVal hwndOwner As Long, ByVal nFolder As Long, ppidl As Long) As Long
В случае ошибки функция возвращает ненулевое значение или 0 в успешном случае
' Узнаем пути к специальным папкам Избранное и кнопки Пуск Me.AutoRedraw = True Me.Print "Папка кнопки Пуск: " + GetSpecialfolder(CSIDL_STARTMENU) Me.Print "Папка Избранное: " + GetSpecialfolder(CSIDL_FAVORITES) ' Создаем функцию-оболочку для удобства 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) ' получаем путь из IDList r = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$) ' удаляем ненужный символ chr$(0) GetSpecialfolder = Left$(Path, InStr(Path, Chr$(0)) - 1) Exit Function End If GetSpecialfolder = "" End Function