在开发IE插件时,遇到的各种问题记录
问题1.win8 IE10 设置断点,不起作用。但是messagebox可以打印。
原因:要调试,IE需要处于单进程状态。需要修改注册表项 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\TabProcGrowth
将TabProcGrowth设置为0,IE处于单进程。但是当TabProcGrowth为0时,对于win8 64位IE10,此时只启动64位IE,由于有些插件不支持64位,因此即使IE加载项中显示已加载插件,但是插件无效。
当没有设置TabProcGrowth,或者设置为>0的值时,win8 桌面版ie10启动32位IE标签,则此时插件起作用。
参考资料。http://support.microsoft.com/kb/2716529/zh-cn
问题2.加了DocumentComplete事件后崩溃。
添加的代码是
STDMETHODIMP CCShowWeb::SetSite(IUnknown *pUnkSite)
{
::MessageBox(NULL, NULL, NULL, NULL);
if (NULL != pUnkSite)
{
HRESULT hr = pUnkSite->QueryInterface(IID_IWebBrowser2, (void**)&m_spWebBrowser);
if (NULL != m_spWebBrowser)
{
hr = DispEventAdvise(m_spWebBrowser);
}
}
else
{
//m_spWebBrowser->Release();
}
return IObjectWithSiteImpl<CCShowWeb>::SetSite(pUnkSite);
}
class ATL_NO_VTABLE CCShowWeb :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CCShowWeb, &CLSID_CShowWeb>,
public IObjectWithSiteImpl<CCShowWeb>,
public IDispatchImpl<ICShowWeb, &IID_ICShowWeb, &LIBID_TestFinderLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public IDispEventImpl<1, CCShowWeb, &DIID_DWebBrowserEvents2, &LIBID_SHDocVw,1, 1>
解决方法:
class ATL_NO_VTABLE CCShowWeb :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CCShowWeb, &CLSID_CShowWeb>,
public IObjectWithSiteImpl<CCShowWeb>,
public IDispatchImpl<ICShowWeb, &IID_ICShowWeb, &LIBID_TestFinderLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public IDispEventImpl<1, CCShowWeb, &DIID_DWebBrowserEvents2, &LIBID_SHDocVw,0, 1>
在开发IE插件时,遇到的各种问题记录相关推荐
- 开发的vscode插件,如何在用户卸载该插件时,删除该插件对应的文件
当用户卸载VSCode插件时,可以使用VSCode提供的Activation Events来执行相关的卸载操作.Activation Events是插件在激活过程中触发的事件.在插件卸载时,可以使用& ...
- QIIME 2教程. 26为QIIME 2开发新插件DevelopingPlugin(2021.2)
为QIIME 2开发新插件 Developing a QIIME 2 plugin https://docs.qiime2.org/2021.2/plugins/developing/ 注意:本文档还 ...
- QIIME 2教程. 26为QIIME 2开发新插件DevelopingPlugin(2020.11)
文章目录 为QIIME 2开发新插件 概述Overview 插件组件Plugin components 定义功能Define functionality 创建一个函数并注册为方法 Create a f ...
- 安装Eclipse ADT插件时遇到的问题
最近开学Android开发,大家都知道Android开发入门必需掌握的是Android开发环境的搭建,在搭建Android开发环境过程中安装Eclipse ADT插件时遇到了: Android DDM ...
- 开发 Eclipse 插件
如何创建.调试和安装插件 在本文中,David Gallardo 向您展示了如何使用 Plug-in Development Environment 的代码生成向导来创建 Eclipse 插件.您将学 ...
- flutter开发vscode插件推荐(开发必备)
这里是坚果前端小课堂,大家喜欢的话,可以关注我的公众号"坚果前端,",或者加我好友,获取更多精彩内容 vscode开发插件推荐 扩展是完成工作的快捷方式.许多扩展有助于减少重复性工 ...
- 从零开始实现ASP.NET Core MVC的插件式开发(五) - 插件的删除和升级
标题:从零开始实现ASP.NET Core MVC的插件式开发(五) - 使用AssemblyLoadContext实现插件的升级和删除 作者:Lamond Lu 地址:https://www.cnb ...
- 从零开始实现ASP.NET Core MVC的插件式开发(四) - 插件安装
标题:从零开始实现ASP.NET Core MVC的插件式开发(四) - 插件安装 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11343141. ...
- blazor wasm开发chrome插件
用blazor(Wasm)开发了一个chrome插件感觉效率挺高的,分享给大家 先简单介绍下WebAssembly的原理: "WebAssembly是一种用于基于堆栈的虚拟机的二进制指令格式 ...
- 教你开发jQuery插件(转)
教你开发jQuery插件(转) 阅读目录 基本方法 支持链式调用 让插件接收参数 面向对象的插件开发 关于命名空间 关于变量定义及命名 压缩的好处 工具 GitHub Service Hook 原文: ...
最新文章
- 1.2 C语言--函数与数组
- 模6计数器以及模10计数器(Verilog HDL语言设计)(Modelsim仿真与ISE综合)
- java之IO流(commons-IO)
- DataGrid 功能实现收集(一)
- c 结构体 不允许使用不完整的类型_.NET Core 基础类型介绍
- 什么事计算机事实性知识,《人工智能》复习要点
- python实现tkinter可视化一
- 51单片机汇编_1_内外存储器转移数据
- Luogu P1120 小木棍 [数据加强版]
- 如何过滤freebayes得到原始vcf文件
- 商务部:保障春节期间“菜篮子”供应充足、价格稳定
- 《测绘综合能力》——地籍测绘
- 短信通道防盗刷,短信发送策略
- 1分钟彻底搞懂关于nginx的proxy_pass
- FBEC2020大会圆满闭幕!区块链分会场人气爆棚!
- 怡和嘉业在创业板上市:总市值约186亿元,前三季度业绩同比翻倍
- 安卓 每日一题 2019年9-12月问题及答案
- 计算机表演赛qq输入法,25届计算机表演赛命题搜索之中国文学篇.doc
- ROS12机器人操作系统免安装在线自主学习平台简介和官方第三方教程列表
- Outlook Express日常错误代码解析
热门文章
- 计算机vf等级,全国计算机等级考试二级考试大纲(VF语言版)
- PM3破解加密IC卡
- echart.js给series,xAxis中的data动态赋值(三种方式)
- pyhton爬取广州链家租房信息,并用tableau进行数据分析
- 4针串口线接法图_​RS232串口线常见接法与引脚定义
- vue对table的某一行的数据进行编辑,删除,查看详情操作
- 电子计算机机房防雷装置,网络机房防雷方案
- 读书笔记-人月神话5
- 判断一个数是否为素数常见的四种方法
- 在OpenWrt系统的路由器NETGEAR WNDR4300上安装KMS服务器vlmcsd