Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не получается найти Корзину

321
25 ноября 2002 года
Doomych
124 / / 20.01.2000
Вот код:

LPITEMIDLIST pidl;
char buffer[256];
SHGetSpecialFolderLocation(NULL, CSIDL_BITBUCKET, &pidl);
BOOL bbb = SHGetPathFromIDList(pidl, buffer);

Функция SHGetSpecialFolderLocation() присваивает значение указателю pidl, однако функция SHGetPathFromIDList() не выдает расположение Корзины (buffer). Почему?
Если искать не Корзину (CSIDL_BITBUCKET), а, скажем, папку "Избранное" (CSIDL_FAVORITES), все работает.

Спасибо всем, кто ответит!
409
25 ноября 2002 года
Ramzes
163 / / 20.09.2000
Выдержка из MSDN:

Remarks
This function is a superset of SHGetSpecialFolderPath, included with earlier versions of the Shell. It is implemented in a redistributable DLL, SHFolder.dll, that also simulates many of the new Shell folders on older platforms such as Windows 95, Windows 98, and Windows NT 4.0. This DLL always calls the current platform's version of this function. If that fails, it will try to simulate the appropriate behavior. Only some CSIDLs are supported, including:

CSIDL_ADMINTOOLS
CSIDL_COMMON_ADMINTOOLS
CSIDL_APPDATA
CSIDL_COMMON_APPDATA
CSIDL_COMMON_DOCUMENTS
CSIDL_COOKIES
CSIDL_FLAG_CREATE
CSIDL_HISTORY
CSIDL_INTERNET_CACHE
CSIDL_LOCAL_APPDATA
CSIDL_MYPICTURES
CSIDL_PERSONAL
CSIDL_PROGRAM_FILES
CSIDL_PROGRAM_FILES_COMMON
CSIDL_SYSTEM
CSIDL_WINDOWS

то есть используй другую функцию:

BOOL SHGetSpecialFolderPath(
HWND hwndOwner,
LPTSTR lpszPath,
int nFolder,
BOOL fCreate
);
380
25 ноября 2002 года
Arestov
285 / / 20.09.2000
Цитата:
Originally posted by Doomych
Вот код:

LPITEMIDLIST pidl;
char buffer[256];
SHGetSpecialFolderLocation(NULL, CSIDL_BITBUCKET, &pidl);
BOOL bbb = SHGetPathFromIDList(pidl, buffer);

Функция SHGetSpecialFolderLocation() присваивает значение указателю pidl, однако функция SHGetPathFromIDList() не выдает расположение Корзины (buffer). Почему?
Если искать не Корзину (CSIDL_BITBUCKET), а, скажем, папку "Избранное" (CSIDL_FAVORITES), все работает.

Спасибо всем, кто ответит!



Имхо, дело тут вот в чем:
CSIDL_BITBUCKET
Virtual folder containing the objects in the user's Recycle Bin.
CSIDL_COMMON_FAVORITES
File system directory that serves as a common repository for all users' favorite items...

в другом месте в MSDN имеем:

...Virtual folders contain objects that are generally not part of the file system. Some virtual folders, such as the Recycle Bin, can represent data that is stored on the hard drive but not as ordinary file system objects. Some can represent stored data that is on a remote system, such as a hand-held PC, or an FTP site. Others, such as the Printers folder, contain objects that do not represent stored data at all. While some virtual folders are part of the system, developers can also create and install custom virtual folders by implementing a namespace extension....


а также:
Differences Between the Recycle Bin and the Recycler Folder

When you delete a file in Windows NT Explorer or My Computer, the file is stored in the Recycle Bin. The file remains in the Recycle Bin until you empty the Recycle Bin or restore the file.

The Recycler folder is used only on NTFS partitions. The Recycler folder contains a Recycle Bin for each user that logs on to the computer, sorted by their security identifier (SID).

а вапще зачем тебе карзина? X:\recycled\

380
25 ноября 2002 года
Arestov
285 / / 20.09.2000
Цитата:
Originally posted by Ramzes
....
то есть используй другую функцию:
BOOL SHGetSpecialFolderPath(
HWND hwndOwner,
LPTSTR lpszPath,
int nFolder,
BOOL fCreate
);



но следует иметь в виду что использование этой ф-ции возможно тока с Windows 98/Windows 2000 или с Windows 95 с IE 4x
если необходимо запускаться на более ранних системах надо использовать LoadLibrary, GetProcAddress для аккуратного апщения с DLL'хой

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог