怎样写一个与Windows10 IE11兼容的标准BHO?
环境:Windows10 x64(10240) IE11(x86环境类似)
作者:magictong
日期:2015/11/11
概述
其实Windows8刚出来的时候写过一篇关于BHO怎么与Win8 x86下IE11(增强保护模式开启)兼容的文章(传送门:http://blog.csdn.net/magictong/article/details/21280243),本文主要讨论的问题是Windows10 x86 &x64(是的x64也包含了)下BHO与IE11(增强保护模式开启)兼容的问题。
其方法和思路跟Windows8下是类似的,但是修改了一些实现方法,修复了之前那篇文章里面的bug,并且针对x64做了一些必要的处理,本文后面说到的系统和一些贴图都是来之于Windows10x64的10240版本(不再赘述)。
现象
看到这篇文章的人,上面这个图应该见过吧,网上很多的文章对于这个问题的解决方法是将IE的增强安全功能关掉,以解决此不兼容问题。当然对于第三方的插件来说,譬如网购插件,支付插件,这可能是唯一的方法,但是作为一个开发者,我们应该更多的思考怎么从技术上解决此问题,微软既然有此提示,说明也是有方法解决的。
第一步:兼容x64系统
其实如果是优先兼容x86系统,兼容x64系统是可以放到最后讲的,但是因为我们以x64系统为例讲,而且兼容x64系统的操作很简单,因此提到最前面说了。
其实秘密就是你要准备两个BHO组件(别问我是怎么知道的,反正就是这样o(∩_∩)o ),一个是x86下使用的(32位模块),一个是x64下使用的(64位模块),二者使用的CLSID,IID,LIBID都要完全一样,简单点处理就是可以把原始代码分