0

我的自定义文件有一个图标处理程序。如何限制图标处理程序功能,使其只能由 explorer.exe 线程调用?

4

1 回答 1

2

好吧,您可以使用GetModuleFileName(NULL)它来找出您的处理程序加载到哪个 EXE 中。您可以在 COM 方法中执行此操作(并返回,例如,E_FAIL如果您认为进程错误),或者DllMain您的处理程序甚至无法加载。

但是,尚不清楚您为什么要这样做。例如,任何应用程序中的标准打开文件对话框都使用图标处理程序;你不希望你的图标出现在那里吗?

如果您将此设想为某种安全措施,那么它不会很好地工作。一个坚定的攻击者会编写自己的 shell 扩展,加载到资源管理器中,然后从那里访问您的处理程序。

于 2013-08-05T18:45:51.540 回答