Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка содержимого Корзины. Visual C++ и MFC. 
:(
    Опции темы
AndreySol
Дата 12.6.2004, 05:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вопрос по обработке содержимого Корзины.
Помогите начинающему в Visual C++ и MFC.
Недавно получил на форуме подсказку как поиметь содержимое Корзины.
Привожу код полностью.
//инициализируем КОМ
CoInitialize(NULL);
ITEMIDLIST* pidl;
//получаем PIDL для Корзины
HRESULT Result;
Result = SHGetSpecialFolderLocation(NULL, CSIDL_BITBUCKET, &pidl);
if(SUCCEEDED(Result))
{
IShellFolder *df, *sf;
//получаем интерфейс для Главной Папки
Result = SHGetDesktopFolder(&df);
if(SUCCEEDED(Result))
{
// получаем интерфейс для Корзины
Result = df-> BindToObject(pidl, NULL, IID_IShellFolder, (void**)&sf);
if(SUCCEEDED(Result))
{
IEnumIDList *ieidl;
//список файлов в корзине, для папок надо флаг SHCONTF_FOLDERS и
//для каждой папки повторить процедуру, имхо
Result = sf -> EnumObjects(NULL, SHCONTF_NONFOLDERS, &ieidl);
if(SUCCEEDED(Result))
{
ITEMIDLIST* sfidl;
ULONG Cnt = 0;
while(ieidl -> Next(1, &sfidl, &Cnt) == NOERROR)
{
STRRET fName;
//получаем стуктуру "описания" файла
Result = sf -> GetDisplayNameOf(sfidl, SHGDN_NORMAL, &fName);
if(SUCCEEDED(Result))
{
TCHAR* pszName;
//получаем полный путь и имя файла
Result = StrRetToStr(&fName, sfidl, &pszName);
if(SUCCEEDED(Result))
{ // выводим куда нибудь
//Это для билдера, для VC тоже
// что-нибудь вроде этого

CoTaskMemFree(pszName);
}
}
}
ieidl->Release();
}
sf->Release();
}
df->Release();
}
IMalloc *im;
Result=CoGetMalloc(1,&im);
if(SUCCEEDED(Result))
{
if(im->DidAlloc(pidl)==1)
im->Free(pidl);
im->Release();
}
}
CoUninitialize();
При сборке получаю - error C2065: 'StrRetToStr' : undeclared identifier
Пошел в MSDN, там нашел эту ф-цию для нее написано:
Header shlwapi.h
Import library shlwapi.lib
Подключил: в cpp - файле #include "shlwapi.h", а в настройках проекта "Link -> General -> Object\Library modules - shlwapi.lib
Собираю опять - снова error C2065: 'StrRetToStr' : undeclared identifier
Помогите ! Что не так делаю ?
На всякий случай - у меня WinMe и Visual C++ 6.0 + SP 5.
Заранее спасибо за ответы и подсказки.
  Вверх
Олег М
Дата 15.6.2004, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



В Vc.net вроде всё нормально.
У тебя линкер даёт ошибку или компилятор?
PM MAIL ICQ   Вверх
AndreySol
Дата 16.6.2004, 05:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Олегу М.
На другом форуме получил такой ответ на мой вопрос:

"А ты в хедер заглядывал? Я так думаю, что там этого определния нет... А появится оно там после установки Platform SDK.
Поэтому, можешь просто где-нить в исходнике объявить эту функцию:
#ifndef StrRetToStr
HRESULT StrRetToStr(
LPSTRRET pstr,
LPCITEMIDLIST pidl,
LPTSTR *ppszName
);
#endif
Чтобы собиралось как с Platform SDK, так и без него, описание функции внесем под условный define".
Буду пробовать.
Всем спасибо.
  Вверх
Олег М
Дата 16.6.2004, 06:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



В том то и дело, что для начала я заглянул в заголовок в VC60. Устанавливать студию просто не стал. Всё там есть.
PM MAIL ICQ   Вверх
AndreySol
Дата 26.8.2004, 05:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



Получилось как подсказали, все работает.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0422 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.