Declare Sub CoTaskMemFree Lib "ole32" (ByVal pv As Long)
CoTaskMemFree освобождает определенные типы задействованной памяти. Процедура может освобождать ресурсы памяти, связанной с указателем на структуру ITEMIDLIST (PIDL)
Процедура CoTaskMemFree не возвращает значений
' Откроем диалоговое окно ' Обзор папок и покажем имя выбранной папки Dim iNull As Integer Dim lpIDList As Long, lResult As Long Dim sPath As String, udtBI As BrowseInfo With udtBI ' Окно владельца .hWndOwner = Me.hWnd ' lstrcat связывает две строки ' и возвращает адрес в памяти .lpszTitle = lstrcat("C:\", "") .ulFlags = BIF_RETURNONLYFSDIRS End With ' Показываем диалоговое окно lpIDList = SHBrowseForFolder(udtBI) If lpIDList Then sPath = String$(MAX_PATH, 0) ' Получаем путь из IDList SHGetPathFromIDList lpIDList, sPath ' Освобождаем память CoTaskMemFree lpIDList iNull = InStr(sPath, vbNullChar) If iNull Then sPath = Left$(sPath, iNull - 1) End If End If MsgBox sPath