I am talking about windows shell extensions.
I have a shell extension which could show the specific properties of my customized file type, say, *.filetype. And of course it will cause my shell extension dlls being loaded into the explorer.exe process. But now if I fire the FileOpen dialog in any application and check the file properties inside that dialog(notepad as an example), then these shell extension dlls would be loaded into notepad.exe process, which is the case I want to avoid.
So is it possible to disable a specific shell extension in FileOpen Dialog?
Thanks.
Create a shim dll which does nothing but load your real (big) shell extension dll. The only job of that shim dll is to check whether the current process is "explorer.exe". If it is, the shim loads the real dll and forwards all calls there. If it's not, the shim doesn't load your real dll but simply returns E_NOTIMPL or something like that to all requests.
来源:https://stackoverflow.com/questions/1635410/how-to-disable-shell-extension-in-fileopen-dialog