Расширение оболочки не работает в Windows-Explorer, но работает в других программах?

Я сделал расширение оболочки (реализации IContextMenu, IShellExtInit, IExtractIcon & IPersistFile) используя ATL, "по книге".

Самое смешное, что в некоторых файловых менеджерах, таких как "Total Commander" и "Free Commander", все хорошо, но в Windows Explorer все не работает:


Когда я нажимаю правой кнопкой мыши на мой зарегистрированный файл (скажем, *.000) в TC ("Total Commander") расширение работает: я вижу его в своих логах и в контекстном меню: появляется запись с ее иконкой.

Но если я использую Win-Explorer, ничего не происходит! нет записи в журнале, нет никаких доказательств в контекстном меню - ничего! даже полная перезагрузка компьютера не помогает.

Я конечно зарегистрировал ShellEx\MyX\ContextMenuHandlers а также ShellEx\IconHandlerключи, а также проводники ...\Shell Extensions\Approved\и все они указывают на мой CLSID, Я использую Windows 7.

Что мне здесь не хватает?

1 ответ

Решение

@SevaTitov ответил на мой вопрос, но в качестве комментария, поэтому для будущих ссылок для тех, кто наткнулся на эту проблему:

@SevaTitov:

Если ваша ОС 64-битная, то Explorer также будет 64-битной, и все ваши расширения оболочки также должны быть 64-битными. Похоже, текущая версия Total Commander только 32-битная

Редакция реестра перенаправляет информацию о том, что когда вы работаете с 32-битной программой, она скрывает ("перенаправляет") 64-битные записи reg, и наоборот.

Я был сбит с толку, потому что в моем 32-битном приложении для просмотра реестра я мог видеть эти ключи, но не знал, что вижу только часть реестра (64-битная часть должна просматриваться в 64-битном средстве просмотра, таком как по умолчанию regedit.exe на 64-разрядной машине Windows)

Другие вопросы по тегам