2

我说的是 Windows shell 扩展。

我有一个 shell 扩展,它可以显示我的自定义文件类型的特定属性,比如 *.filetype。当然,它会导致我的 shell 扩展 dll 被加载到 explorer.exe 进程中。但是现在如果我在任何应用程序中触发 FileOpen 对话框并检查该对话框中的文件属性(例如记事本),那么这些 shell 扩展 dll 将被加载到 notepad.exe 进程中,这是我想要避免的情况。

那么是否可以在 FileOpen 对话框中禁用特定的 shell 扩展?

谢谢。

4

1 回答 1

2

创建一个 shim dll,它只加载您的真实(大)shell 扩展 dll。该 shim dll 的唯一工作是检查当前进程是否为“explorer.exe”。如果是,则 shim 加载真正的 dll 并将所有调用转发到那里。如果不是,则 shim 不会加载您的真实 dll,而只是将 E_NOTIMPL 或类似的东西返回给所有请求。

于 2009-11-03T15:20:58.747 回答