2009-10-28 2 views
2

Я говорю о расширениях оболочки Windows.Как отключить расширение оболочки в диалоговом окне FileOpen

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

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

Спасибо.

ответ

2

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

+1

, но нам нужно делать такие вещи для каждого расширения оболочки, которое мы хотим. –

 Смежные вопросы

  • Нет связанных вопросов^_^