Программирование расширений Shell Icon - PullRequest
0 голосов
/ 04 ноября 2011

В моем проекте мне нужно реализовать наложение значков для выбранных файлов и папок в файловой системе. При щелчке правой кнопкой мыши на файле / папке и выборе контекстного меню значок файла / папки должен быть наложен на маленький значок..

Я новичок в программировании оболочки Windows, и у меня нет достаточно времени на исследования и разработки

1 Ответ

0 голосов
/ 20 декабря 2011

Что ж, я знаю, что уже поздно отвечать на ваш вопрос, но это может дать некоторую подсказку другим или даже вам, если вы еще не можете понять это.

Как правило, вам нужны некоторые общие медиа / структурамежду контекстным меню и обработчиками наложения значков.

У вас может быть карта / хэш, содержащий пути файлов / папок, которые должны иметь значок наложения внутри обработчика наложения значков.Обработчик ищет путь каждый раз, когда запрашивается оболочкой, и возвращает S_OK из IShellIconOverlayIdentifier :: IsMemberOf, иначе возвращает S_FALSE.

Теперь вам нужно найти способ связи, поэтому, когда ваша команда контекстного менюпри запуске он должен отправить путь к файлу / папке потоку списка в обработчике наложения значков, где поток вставляет путь в карту, которую обработчик использует, чтобы определить, следует ли поместить значок поверх запрошенного файла / папки.

Не забудьте реализовать подходящую блокировку на этой общей карте.

Еще одна проблема, вам нужно сделать карту сохраняемой, если вам нужно, чтобы значки оставались неподвижными после перезапуска Windows, где вы могли бы периодически выгружать содержимое карты в файл на диске и обновлять его каждый раз, когдаоболочка запускается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...