IE的TOOLBAND基礎知識

來源:互聯網
上載者:User
 建立自訂的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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.