概述Windowsshell扩展没有调用初始化
我希望这里有人对导致这个问题的原因有了一些了解。 我已经为Explorer提供了几个COM扩展,提供了ShelliconOverlay和ContextMenu,覆盖层完美地工作。 上下文菜单工作正常,当我点击桌面,但是当我右键单击任何资源pipe理器实例中,我可以看到在deBUGging器中查询接口和正在生成的IShellExtinit实例,但初始化函数不会在浏览器中调用实例,但在桌面上被称为罚款,并立即查询ContextMenu项目。
有没有人在这里看到过这样的事情?
在代码文件中search一个项目/解决scheme中缺less模式
OpenThread()返回NulL Win32
如何正确检测主窗口的拐angular半径
windowslogin的“使用条件”对话框
在C ++中向registry写入一个DWORD值
如果你正在调试一个shell扩展,很可能会有终止正在运行的explorer.exe进程并启动一个新的。 当你开始一个新的,是否运行与原来一样的完整性水平?
你的资源管理器设置是否说在新的过程中浏览文件? 如果是这样,那么这个过程是否与原来的完整性级别一样?
另外,由于您运行的是调试器,因此您可能会构建一个调试版本。 explorer.exe是否有时会尝试加载DLL的调试版本,有时会尝试加载DLL的发行版本?
好的,我遇到了同样的问题,事实证明这个问题与此有关
ThreadingModel = Apartment
基本上,我认为你正在经历的是explorer.exe(桌面运行在STA线程中)的第二个线程使用默认(传统) ThreadingModel – 并期望您的COM实现IMarshal做IPC。 Apartment ThreadingModel允许您的IShellExt类的多个实例共存。
注意事项 – 如果您使用ActiveQt开发上下文菜单外壳扩展,则可以使用更多的技巧。
总结
以上是内存溢出为你收集整理的Windowsshell扩展没有调用初始化全部内容,希望文章能够帮你解决Windowsshell扩展没有调用初始化所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容