Просто примените то, что вы узнали в этой статье.То, что вы хотите сделать сейчас, это почти то же самое.Оболочка вызывает ваш обработчик и запрашивает значок наложения.Ваш код проверяет состояние элемента и возвращает правильный значок наложения.Если вам не принадлежит элемент, вы говорите оболочке вообще не рисовать наложение.
Вы можете прочитать больше о Создание обработчиков наложения иконок в MSDN.
Или, как Дэвид предлагает здесь и Ричард предлагает здесь , вы можете просмотреть исходный код TortoiseSVN (поскольку он лицензирован по лицензии GPL), чтобы увидеть, как они это сделали, если вы предпочитаетеизучите на примере.
Но помните, что оболочка налагает жесткое ограничение на количество значков наложения , которые могут быть зарегистрированы.В настоящее время это число составляет 15. Вы столкнетесь с проблемами, если ваше приложение попытается зарегистрировать слишком много или если у ваших пользователей будут установлены другие приложения (например, TortoiseSVN), которые также зарегистрировали наложения.Возможно, вы захотите серьезно пересмотреть, действительно ли это правильный способ отображения информации.