Работа с виртуальными папками и файлами

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Работа с виртуальными папками и файлами

Kolinus » 19 май 2005, 13:16

Я спросил потому как не могу вытянуть имя даже у фолдера :(

Romeo » 19 май 2005, 12:55

Конечно полный. Относительно чего ему быть, если он относительный? :)

Kolinus » 19 май 2005, 12:48

Такой вопрос: а код
hr=folder->QueryInterface(IID_IPersistFolder2,(void**)&pf);
LPITEMIDLIST pidlFolder;
hr=pf->GetCurFolder(&pidlFolder);
возвращает полный или относительный пидл в фолдер?
че-то я в МСДНе этого не углядель :(

Kolinus » 18 май 2005, 17:39

Возможно.
Но ведь виндой-то я его могу вытянуть. Вот что меня ставит в тупик. :(

Romeo » 18 май 2005, 17:38

Есть ещё вариант: такого файла на диске не существует - он виртуальный.

Kolinus » 18 май 2005, 17:27

Размер буфера 2560 - вряд ли мало.
а насчет не существует - через виндовый эксплорер я их могу скопировать.
Или может такое быть что через эксплорер копируются, а программно - нет??

Eugie » 18 май 2005, 16:49

SHGetPathFromIDList очень простая функция, чтобы ошибка лежала слишком глубоко. ИМХО, всего 2 варианта: 1) буфер мал; 2) путь не существует. А уж что там на самом деле - тебе виднее ;)

Kolinus » 18 май 2005, 15:46

Поменял и так и этак.
Делал и с нулями и без.
Возвращает всегда ложь.
GetLastError() ничего не дает :( .
Что еще посоветуете ? :)

Romeo » 18 май 2005, 11:16

Точно, просмотрел, времени было мало. Действительно в неправильном порядке копируется. Если будет возвращаться неправильный результат и после этого фикса, то напиши код ошибки. Это многое прояснит.

Eugie » 18 май 2005, 01:57

Romeo, нет GetSize() из примера MSDN учитывает концевые нули.

Kolinus, поменяй порядок:

Код: Выделить всё

  CopyMemory(pidlNew, pidlFolder, cb1); 
  CopyMemory(((LPSTR)pidlNew) + cb1, pidlChild, cb2);

Вернуться к началу