Я пытался разобраться в этом пару раз за последние пару лет,
это кажется такой тривиальной вещью (это было для верстака AmigaDos),
но программирование для оболочки Windows ужасно;
на самом деле программирование чего-либо в Windows API ужасно. Это ужасный беспорядок.
Будьте готовы к пучку волос и боли в сердце.
Не отговаривать вас, но MicroSoft думает, что знает лучше, когда приходит
для размещения значков в представлениях папок, и я нашел немного в пути
реализовать «постоянное» размещение значков (т. е. представление значков далеко от постоянного).
Документы MSDN предлагают небольшую помощь в этом отношении (по крайней мере, без примеров).
Последнее, на что я обращал внимание - это написание расширения оболочки для записи и восстановления.
положение значка (я бы не записывал их в реестр, я просто собирался сохранить позиции в файле desktop.ini папки, но, вероятно, было бы лучше создать файл в папке личных настроек пользователя).
Code Project содержит ряд статей по программированию и расширениям оболочки.
http://www.codeproject.com/KB/shell/
http://www.codeproject.com/KB/shell/shlext.aspx
В итоге я написал свою собственную маленькую оболочку на чистом чистом C ++
это именно то, что я хочу в контексте моего приложения.