IE的TOOLBAND基础知识

 创建自定义的Explorer Bars(浏览器栏),Tool Bands(工具条栏)和Desk Bands(桌面工具条栏)
说明:这三种工具栏都是com组件形式的,ie为了可以扩展它自己订制了一套逻辑,只要我们写的自己的
工具条按照它的逻辑来,当ie启动的时候就会把我们的工具条加载上去。
实现这种逻辑很简单,只要我们实现它相应的接口,然后把我们的工具条注册到它指定的位置即可,他
运行的时候就会去看注册表信息,下边会具体说明如何填写注册表信息。
1、Explorer Bars
   IE->查看-〉浏览器栏中打开一个你想要的浏览器栏
   说明: 该功能是在ie4.0中被加上的,他是ie的一个子窗口而已,被用于显示一些信息。他分为两种,
竖向的和纵向的。
2、Tool Bands(工具栏)
   IE-〉查看-〉工具栏
   说明:该功能是在ie5.0中被加上的,和我们平常用的ToolBar一样。ie的ToolBar其实是个Rebar
Control,它相当于一个容器,它可以有一个或者多个子Band,它可以动态的改变子band的位置和大小。
3、Desk Bands
   右键任务栏-〉工具栏-〉选择你要显示的Desk Band
   说明:该功能是和ie无关的,它主要是被显示在任务栏上便于用户操作,MediaPlayer在xp下就有个
Desk Band,大家应该也都用过了。
大家可以去看看msdn:ms-help://MS.VSCC.2003/MS.MSDNQTR.2006JAN.1033/shellcc/platform/shell/programmersguide/shell_adv/bands.htm

Band对象的基础知识
虽然这三种band看起来和一般的window窗口差不多,但是他是要宿主于容器之内的,原因很简单它不过是
个com的组件而已。就像Explorer Bars被包含在IE浏览器中,DeskBands被包含Shell中。这几个Band的实
现基本上一样,不同的只是他们要注册的位置和信息不同而已。
除了IUnknown和IClassFactory(类厂接口,不用我们实现,atl给我们写好了)外,所有的band对象都要
实现下面三个接口:
  IDeskBand
  IObjectWithSite
  IPersistStream
在注册Explorer Bars和Desk Bands时必须注册为适当的组件类别为了确定该组件的类型和所在的容器,
ToolBand不同于他们,它不需用注册类别因为它只有一种而且容器也不用指定。
Explorer Bars有两种类别:
竖向的 ----> CATID_InfoBand
横向的 ----> CATID_CommBand
DeskBand的类别: --〉CATID_DeskBand

如果band对象需要接受用户的健盘输入的话,那么必须实现IInputObject接口。
如果Explorer Bar或者Desk Band需要支持快捷菜单的话,那么必须实现IContextMenu接口,Tool band不
支持该功能。
因为Band对象实现了一个子窗体,所以它也应该能处理window消息,Band对象能通过容器的
IOleCommandTarget接口去向容器Send消息,该接口可以通过容器的IInputObjectSit结构QueryInterface
到,你接着可以通过IOleCommandTarget::Exec发送消息。

Band的注册说明:
每个Com都有一个Clsid,但是我们的band如果被安装了那么会在相应的容器里面有个自己的菜单的以便来
控制显示或者隐藏自己,这个菜单的字符串一般都会被写到注册表中的:
HKEY_CLASSES_ROOT
    CLSID
      {你的Band对象的CLSID}
        (Default) = 菜单的字符串
        InProcServer32
          (Default) = DLL的全路径
          ThreadingModel= Apartment
IE的Tool Band除了要注册上面的信息外,还要在HKEY_LOCAL_MACHINE/Software/Microsoft/Internet Explorer/Toolbar
下面添加我们ToolBand的clasid的key这样ie在启动的时候才能认为它是个ie的toolBar插件。
HKEY_LOCAL_MACHINE
    Software
        Microsoft
            Internet Explorer
                Toolbar
                    {你的Band对象的CLSID}
IE的Explorer Bar也同样,就是key不一样:
HKEY_CURRENT_USER
    Software
        Microsoft
          Internet Explorer
              Explorer Bars
              {你的Band对象的CLSID}
              BarSize
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值