Я ищу кого-то с опытом работы в Windows Shell, чтобы дать мне несколько советов.
Я делаю простой браузер оболочки / файловой системы с использованием Delphi 2010, и он частично функционален, но у меня естьпара вопросов (пока).Код слишком велик для публикации, и я не уверен, какие части имеют отношение.
SHChangeNotifyRegister()
работает нормально с папками, которые либо являются чистой файловой системой (например, "e:\x\y"
)или виртуальный (начните с "::{clsid}"
).Независимо от переданных параметров (флаги событий, блокировка; рекурсия / подпапки всегда ложны), он отказывается возвращать RMDIR
и RENAMEDIR
уведомления для папок, подобных "c:\users\myname\music"
(которые имеют виртуальные пути, например, "::{this pc clsid}\music")
. Может ли это бытьисправлено? PIDL получаются с помощью SHCreateItemFromParsingName()
.
IShellItemImageFactory
не возвращает изображений для подпапок HomeGroup (одна из нескольких процедур получения изображений возвращает значки пустых листов. Другие возвращают ошибки). I 'Мы подготовили для этого собственные изображения. Мне просто интересно об этом.