用 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)相关推荐

  1. WebBrowser控件的高级定制+mshtml

    --> blog:WebBrowser控件的高级定制---以下为三篇重要的参考文献,     第一篇可以禁用了js弹窗和声音     第二篇的引用文献禁用了IE弹窗,但是原文的说明很好      ...

  2. 控制 WebBrowser 控件的外观和行为

    控制 WebBrowser 控件的外观和行为 2011-03-23 09:33 在 CSDN 上经常看到以下两个问题: 1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 C ...

  3. 用WebBrowser实现HTML界面的应用和交互

    这一篇将继续讨论在使用delphi进行普通应用程序开发的时候,WebBrowser的具体应用,主要是针对使用其进行HTML界面开发的,这也是一篇我在网上找到的资料,大家如要转载,请尊重原作者的知识产权 ...

  4. 定制IE浏览器的尖兵利器 - BHO

    IE浏览器是当前使用人数最广的浏览器, 本文主要来讲述如何来打造我们自己特色的浏览器, 自定义工具栏按钮, 自定义网页的右击菜单, BHO技术与IE浏览器. 本文写作过程中参考不少网络上的相关资料, ...

  5. 如何使用BHO定制你的Internet Explorer浏览器

    原文出处:Browser Helper Objects: The Browser the Way You Want It 一.简介 有时,你可能需要一个定制版本的浏览器.在这种情况下,你可以自由地把一 ...

  6. c#winform使用WebBrowser 大全

    C# WinForm WebBrowser (一) MSDN资料 1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispos ...

  7. html页面调用存储过程,用WebBrowser实现HTML界面的应用

    HTML的界面有以下特点:图文混排,格式灵活,可以包含Flash.声音和视频等,实现图文声像的多媒体界面,而且易于建立和维护.另外,HTML的显示环境一般机器上都具备,通常不需要安装额外的软件.当然, ...

  8. c#winform使用WebBrowser 大全[超长文转载]

    1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispose 方法,以便确保及时释放所有资源.必须在附加事件的同一线程上调用 ...

  9. 无法嵌入互操作类型 请改用适用的接口_西门子COMOS软件开发定制学习7-嵌入谷歌浏览器内核...

    首先需要声明的是,本篇并非COMOS实用案例,只是希望借此让大家了解,如何使用微软的WPF和C#语言开发COMOS插件. 首先看下效果图 功能说明: 拖拽COMOS设备至定制的浏览器,自动根据设备的名 ...

最新文章

  1. Windows系统一键安装zabbix agent
  2. 第15章 进程间通行 15.6 XSI IPC 15.7 消息队列
  3. 【笔记】opencv图像运算 图像加密
  4. xml突然变成空白_“侏罗纪中期”出现了型增转变填补食肉性恐龙体型发展当中的空白...
  5. Hive 高级编程??深入浅出学Hive
  6. 提升软件开发者效率的10个提示
  7. 最优化(part1)--近似点梯度法
  8. 转-HTC 手机生产日期,产地查询 以及 SN码 IMEI码 查询等问题汇总
  9. 在Xshell 6开NumLock时按小键盘上的数字键并不能输入数字
  10. 1024大波红包来袭,程序员们请查收
  11. 小程序支付“”商户号该产品权限未开通,请前往商户平台产品中心检查后重试“”解决方案
  12. (IS 19)wav2vec: Unsupervised Pre-training for Speech Recognition
  13. 可信平台模块TPM(Trusted Platform Module)介绍及tpm-tools安装使用
  14. python3的numpy包中的numpy.logspace解析
  15. 第90届中国电子展聚焦行业新热点,拉动产业链上下游快速发展
  16. NFS导致df -h卡主解决
  17. G003-181-01
  18. c语言系统通常将一个判断为真,C语言程序设计学习-习题2
  19. 夏天地板保养的注意事项
  20. 解决win10系统 3dMax只能渲染一次的问题

热门文章

  1. linux命令分割文件
  2. Lunix历史及如何学习
  3. Flask的Jinjia模板渲染
  4. python语言字符串定义_Python语言基础1-字符串
  5. DAO,Service,Controler的简介
  6. 品牌根据地--中小企业创建领先品牌的思想武器
  7. matlab 索引图像
  8. 【愚公系列】华为产品测评官-开发者之声(CodeArts产品流程体验)
  9. excel打印预览在哪里_Excel打印表格不再手忙脚乱
  10. java 五角星_java用星号打出五角星