您的位置:逆风者 VC++ 正文
 添加时间:2007-09-01 原文发表:2007-08-31 人气:164 来源:vckbase.com

本文章共9293字,分6页,当前第1页,快速翻页:
 

ATL 实现定制的 IE 浏览器栏、工具栏和桌面工具栏

作者:杨老师

下载源代码
逆风编程精品

关键字:Band,Desk Band,Explorer Band,Tool Band,浏览器栏,工具栏,桌面工具栏

一、引言
  最近,由于工作的要求,我需要在 IE 上做一些开发工作。于是在 MSDN 上翻阅了一些资料,根据 MSDN 上的说明我用 ATL 胜利完成了“资本家老板”分配的任务。
(并且在白天睡觉的过程中梦到了老板给我加工资啦......)
现在,我把 MSDN 上的原文资料,经过翻译整理并把一个 ATL 的实现奉贤给 VCKBASE 上的朋友们。

二、概念
  在翻译的过程中,有两个词汇非常不好理解。第一个词是 Band 对象,词典中翻译为“镶边、裙子边、带子、乐队......”我的英文水平有限,实在不知道应该翻译为什么词汇更合适。于是我毅然决然地决定:在如下的论述中,依然使用 band 这个词!(什么?没听明白?我的意思就是说,我不翻译这个词了)但到底 Band 对象应该如何理解那?请看图一:


图一

  图一中画红圈的地方,分别称作“垂直的浏览器栏”、“水平的浏览器栏”、“工具栏”和“桌面工具栏”。这些“栏”,都可以在 IE 的“查看”菜单中或鼠标右键的上下文快捷方式菜单中显示或隐藏起来。这些界面窗口的实现,其实就是实现一种 COM 接口对象,而这个对象叫 band。这个概念实在是只能意会而无法言传的,我总不能在文章中把它翻译为“总是靠在 IE 主窗口边上的对象”吧?^_^
  另外,还有一个词叫 site。这个很好翻译,叫“站点”!。呵呵,我敢打包票,如果你要能理解这个翻译在计算机类文章中的含义,那就只能恭喜你了,你的智慧太高了。(都是学计算机软件的人,做人的差距咋就这么大呢?)在本篇文章中,site 可以这样理解:IE 的主框架四周,就好比是“汽车站”,那些 band 对象,就好比是“汽车”。band 汽车总是可以停靠在“汽车站”上。所以,site 就是“站点”,它也是 COM 接口的对象(IObjectWithSite、IInputObjectSite)。

三、原理

3.1 基本 band 对象
  Band 对象,从 Shell 4.71(IE 5.0) 开始提供支持。Band 是一个 COM 对象,必须放在一个容器中去使用,当然使用它们就好象使用普通窗口是一样的。IE 就是一个容器,桌面 Shell 也是一个容器,它们提供不同的函数功能,但基本的实现是相似的。
  Band 对象分三种类型,浏览器栏 band(Explorer bands)、工具栏 band(Tool Bands)和桌面工具栏(Desk bands),而浏览器栏 band 又有两种表现形式:垂直和水平的。那么 IE 和 Shell 如何区分并加载这些 bands 对象呢?方法是:你要对不同的 band 对象,在注册表中注册不同的组件类型(CATID)。

Band 样式

组件类型

CATID 垂直的浏览器栏 CATID_InfoBand 00021493-0000-0000-C000-000000000046 水平的浏览器栏 CATID_CommBand 00021494-0000-0000-C000-000000000046 桌面的工具栏 CATID_DeskBand 00021492-0000-0000-C000-000000000046
 

本文章更多内容1 - 2 - 3 - 4 - 5 - 6 - 下一页>>
相关文章

乱砍设计模式之二:STATE 模式——履胡之肠
点对点视频会议程序:VideoNet
系统托盘编程完全指南(一)
枚举声明,模板函数特化
COM 组件注册方法
关于SendMessage
初试驱动---OV511 摄像头驱动开发
定制编辑框的上下文菜单
ATL布幔之下的秘密(5)
如何在NT下获取进程的路径
对“仅通过崩溃地址找出源代码的出错行”一
COM插件模型浅谈
Windows 2000驱动程序的设计
MFC 编写的仿 Windows 计算器
用VC实现支持多语言的程序
连接 COM 与.NET 的桥梁(二)——COM 服务
浅谈PDFlib中文输出(一)如何使用Acrobat标
代号 WinFS:革命性的文件存储系统...
使用 LIBCTINY.LIB 为 EXE 和 DLL 文件 减肥
树视控件在多文档中的使用

相关评论


本文章所属分类:首页 VC++

  热门关键字: