Как отключить расширение оболочки в диалоге FileOpen - PullRequest
2 голосов
/ 28 октября 2009

Я говорю о расширениях оболочки Windows.

У меня есть расширение оболочки, которое может показывать конкретные свойства моего настраиваемого типа файла, скажем, * .filetype. И, конечно, это приведет к загрузке моей библиотеки расширения оболочки в процесс explorer.exe. Но теперь, если я запускаю диалоговое окно FileOpen в любом приложении и проверяю свойства файла в этом диалоговом окне (например, в блокноте), то эти DLL-файлы расширения оболочки будут загружены в процесс notepad.exe, чего я и хочу избежать.

Так можно ли отключить определенное расширение оболочки в диалоге FileOpen?

Спасибо.

1 Ответ

2 голосов
/ 03 ноября 2009

Создайте shim dll, который ничего не делает, кроме загрузки вашей реальной (большой) оболочки dll. Единственная задача этого shim dll - проверить, является ли текущий процесс «explorer.exe». Если это так, то шим загружает настоящую dll и перенаправляет туда все звонки. Если это не так, то shim не загружает вашу настоящую dll, а просто возвращает E_NOTIMPL или что-то подобное для всех запросов.

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