Сообщений 4 Оценка 1 [+0/-1] Оценить |
Метод IShellFolder::ParseDisplayName( ) позволяет получить указатель на ITEMIDLIST для любого действительного пути path файловой системы.
// path - строка ANSI-символов, содержащая путь к заданному файлу/каталогу // hWnd - хэндл окна, которому будут направляться сообщения об ошибках; // если нет необходимости в их получении, используйте NULL #include <windows.h> #include <shlobj.h> #pragma comment(lib, "shell32") HRESULT hRes; WCHAR wpath[MAX_PATH]; IMalloc* pMalloc = NULL; ITEMIDLIST* pidl = NULL; IShellFolder* pshf = NULL; hRes = SHGetDesktopFolder(&pshf); mbstowcs(wpath, path, MAX_PATH); // ANSI to UNICODE hRes = pshf->ParseDisplayName(hWnd, 0, wpath, NULL, &pidl, NULL); . . . // Используем указатель pidl . . . // Освобождаем список и интерфейсы hRes = SHGetMalloc(&pMalloc); pMalloc->Free(pidl); pMalloc->Release(); pshf->Release(); |
Сообщений 4 Оценка 1 [+0/-1] Оценить |