Windows Explorer Overlay Icons — с чего начать?

В настоящее время я пытаюсь реализовать Overlay Icons для Windows Explorer с помощью Visual C ++. Для этого я прочитал информацию о Microsoft MSDN (говоря, что я должен реализовать IShellIconOverlayIdentifier), а также некоторые другие ресурсы в интернете.

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

Сначала я попытался создать службу Windows, но мне кажется, что я не могу реализовать интерфейс. Теперь я перешел на DLL, и больше нет ошибок компилятора, но когда я пытаюсь зарегистрироваться, он говорит, что модуль был загружен, но точка входа DllRegisterServer не был найден. Кажется, проблема в том, что у меня нет COM-сервера, но он мне действительно нужен?

Я также нашел руководство по CodeProject.com, который также не имеет ошибок компиляции, но просто не отображает иконки без ошибок.

Итак, кто-нибудь может вкратце рассказать, как начать реализацию Overlay Icons с Visual Studio и C ++ (Service / DLL / …, какие параметры компилятора должны быть установлены, какой минимум кода мне нужен для отображения простых иконок)?

0

Решение

«Значки», на которые вы ссылаетесь, это значки, отображаемые в процессе проводника. Это означает, что вы являетесь гостем в другом процессе, и вы должны вести себя в соответствии с их правилами.

Если вы понимаете это, понятно, почему ваш код не будет работать в сервисе. Служба не является процессом проводника.

Если вы понимаете это, понятно, почему вы должны предоставить DllRegisterServer(), Исследователь называет это.

Компилятор C ++ не знает о конкретных правилах Explorer.EXE. Тем не менее, вы можете сказать компилятору о IShellIconOverlayIdentifier включив заголовочный файл, где он определен. Это скажет компилятору, что это на самом деле интерфейс COM.

Возможно, вам следует начать с простых примеров COM, прежде чем пытаться сделать что-то более сложное, например, предоставление значков другому процессу вне вашего контроля. Вы не можете скомпилировать Explorer.EXE в режиме отладки, поэтому вы видите только половину любой проблемы.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector