定制 WebBrowser (Part 1)
用 WTL 向导创建一个程序 WtlHtml, 显示 HTML page. 其实也就是 host 一个 webBrowser 控件. 打算做一些定制的工作.
1. 首先需要定制的是指定 external IDispatch 接口. 我们可以向项目中增加一个 ATL Object. 或者, 简单一点, 直接在现有的类上实现. 我打算采用第二种方法. 在 CWtlHtmlView 上实现. 给 CWtlHtmlView 增加两个父类:
class CWtlHtmlView :
public CWindowImpl<CWtlHtmlView, CAxWindow>,
public CComObjectRootEx<CComSingleThreadModel>, // 提供 IUnknown 接口
public IDispatchImpl<IWtlHtml, &IID_IWtlHtml, &LIBID_WTLHTMLLib> // 实现 IDispatch
{..}
既然用 IDispatchImpl, 那得有自己的类型库. 创建一个 idl. 从别的项目中复制一份. 将名字. GUID 换了就可以了. 编译之, 就生成了 tlb (LIBID_WTLHTMLLib).
还得在类的声明中加上 COM map:
BEGIN_COM_MAP(CWtlHtmlView)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()
现在 CWtlHtmlView 成了纯虚类. 不能实例化了. 所以, 修改 CMainFrame 中 m_view 的定义:
CComObject<CWtlHtmlView> m_view;
由于 m_view 没有在堆上创建, 所以不用考虑生命期的问题, 当然也不能被 Release() 里的 delete 掉, 我们可以先在 CMainFrame::OnCreate() AddRef() 一下, 再设置 external.
定制 WebBrowser (Part 1)相关推荐
- WebBrowser控件的高级定制+mshtml
--> blog:WebBrowser控件的高级定制---以下为三篇重要的参考文献, 第一篇可以禁用了js弹窗和声音 第二篇的引用文献禁用了IE弹窗,但是原文的说明很好 ...
- 控制 WebBrowser 控件的外观和行为
控制 WebBrowser 控件的外观和行为 2011-03-23 09:33 在 CSDN 上经常看到以下两个问题: 1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 C ...
- 用WebBrowser实现HTML界面的应用和交互
这一篇将继续讨论在使用delphi进行普通应用程序开发的时候,WebBrowser的具体应用,主要是针对使用其进行HTML界面开发的,这也是一篇我在网上找到的资料,大家如要转载,请尊重原作者的知识产权 ...
- 定制IE浏览器的尖兵利器 - BHO
IE浏览器是当前使用人数最广的浏览器, 本文主要来讲述如何来打造我们自己特色的浏览器, 自定义工具栏按钮, 自定义网页的右击菜单, BHO技术与IE浏览器. 本文写作过程中参考不少网络上的相关资料, ...
- 如何使用BHO定制你的Internet Explorer浏览器
原文出处:Browser Helper Objects: The Browser the Way You Want It 一.简介 有时,你可能需要一个定制版本的浏览器.在这种情况下,你可以自由地把一 ...
- c#winform使用WebBrowser 大全
C# WinForm WebBrowser (一) MSDN资料 1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispos ...
- html页面调用存储过程,用WebBrowser实现HTML界面的应用
HTML的界面有以下特点:图文混排,格式灵活,可以包含Flash.声音和视频等,实现图文声像的多媒体界面,而且易于建立和维护.另外,HTML的显示环境一般机器上都具备,通常不需要安装额外的软件.当然, ...
- c#winform使用WebBrowser 大全[超长文转载]
1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispose 方法,以便确保及时释放所有资源.必须在附加事件的同一线程上调用 ...
- 无法嵌入互操作类型 请改用适用的接口_西门子COMOS软件开发定制学习7-嵌入谷歌浏览器内核...
首先需要声明的是,本篇并非COMOS实用案例,只是希望借此让大家了解,如何使用微软的WPF和C#语言开发COMOS插件. 首先看下效果图 功能说明: 拖拽COMOS设备至定制的浏览器,自动根据设备的名 ...
最新文章
- Windows系统一键安装zabbix agent
- 第15章 进程间通行 15.6 XSI IPC 15.7 消息队列
- 【笔记】opencv图像运算 图像加密
- xml突然变成空白_“侏罗纪中期”出现了型增转变填补食肉性恐龙体型发展当中的空白...
- Hive 高级编程??深入浅出学Hive
- 提升软件开发者效率的10个提示
- 最优化(part1)--近似点梯度法
- 转-HTC 手机生产日期,产地查询 以及 SN码 IMEI码 查询等问题汇总
- 在Xshell 6开NumLock时按小键盘上的数字键并不能输入数字
- 1024大波红包来袭,程序员们请查收
- 小程序支付“”商户号该产品权限未开通,请前往商户平台产品中心检查后重试“”解决方案
- (IS 19)wav2vec: Unsupervised Pre-training for Speech Recognition
- 可信平台模块TPM(Trusted Platform Module)介绍及tpm-tools安装使用
- python3的numpy包中的numpy.logspace解析
- 第90届中国电子展聚焦行业新热点,拉动产业链上下游快速发展
- NFS导致df -h卡主解决
- G003-181-01
- c语言系统通常将一个判断为真,C语言程序设计学习-习题2
- 夏天地板保养的注意事项
- 解决win10系统 3dMax只能渲染一次的问题