日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

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

發布時間:2024/6/5 HTML 76 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何使用BHO定制你的Internet Explorer浏览器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文出處:Browser Helper Objects: The Browser the Way You Want It

一、簡介
  有時,你可能需要一個定制版本的瀏覽器。在這種情況下,你可以自由地把一些新穎但又不標準的特征增加到一個瀏覽器上。結果,你最終有的只是一個新但不標準的瀏覽器。Web瀏覽器控件只是瀏覽器的分析引擎。這意味著仍然存在若干的與用戶接口相關的工作等待你做――增加一個地址欄,工具欄,歷史記錄,狀態欄,頻道欄和收藏夾等。如此,要產生一個定制的瀏覽器,你可以進行兩種類型的編程――一種象微軟把Web瀏覽器控件轉變成一個功能齊全的瀏覽器如Internet Explorer;一種是在現有的基礎上加一些新的功能。如果有一個直接的方法定制現有的Internet Explorer該多好?BHO(Browser Helper Objects,我譯為"瀏覽器幫助者對象",以下皆簡稱BHO)正是用來實現此目的的。

二、關于軟件定制
  以前,定制一個軟件的行為主要是通過子類化方法實現的。 通過這種辦法,你可以改變一個窗口的外表與行為。子類化雖然被認為是一種有點暴力方式――受害者根本不知道發生的事情――但它還是長時間以來的唯一的選擇。
  隨著微軟Win32 API的到來,進程間子類化不再被鼓勵使用并愈發變得困難起來。當然,如果你是勇敢的--指針從未嚇倒你,而最重要的是,如果你已經游刃于系統鉤子之間,你可能覺得這一問題太簡單了。 但是情形并不總是這樣。暫放下這點不管,問題在于每一個進程運行在自己的地址空間中,而且打破進程邊界略微有些不正確性。 另一方面, 你可能需要對定制進行更好的管理。更經常情況下,定制可能是程序本身強烈要求實現的。
  在后者情況下,已安裝的軟件只需在既定的磁盤位置查詢另外的組件模塊,然后裝載、設定初值,最后讓它們自由地按照既定的設計工作。這正是Internet Explorer瀏覽器和它的BHO所要實現的。

三、什么是BHO?
  從某種觀點看,Internet Explorer同普通的Win32程序沒有什么兩樣。借助于BHO,你可以寫一個進程內COM對象,這個對象在每次啟動時都要加載。這樣的對象會在與瀏覽器相同的上下文中運行,并能對可用的窗口和模塊執行任何行動。例如,一個BHO能夠探測到典型的事件,如GoBack、GoForward、DocumentComplete等;另外BHO能夠存取瀏覽器的菜單與工具欄并能做出修改,還能夠產生新窗口來顯示當前網頁的一些額外信息,還能夠安裝鉤子以監控一些消息和動作。簡而言之, BHO的工作如我們打入瀏覽器領地的一位間諜(注意這是微軟允許的合法工作)。
  在進一步了解BHO細節之前,有幾點我需要進一步闡述。首先,BHO對象依托于瀏覽器主窗口。實際上,這意味著一旦一個瀏覽器窗口產生,一個新的BHO對象實例就要生成。任何 BHO對象與瀏覽器實例的生命周期是一致的。其次, BHO僅存在于Internet Explorer 4.0及以后版本中。
如果你在使用Microsoft Windows? 98, Windows 2000, Windows 95, or Windows NT版本4.0 操作系統的話,也就一塊運行了活動桌面外殼4.71,BHO也被 Windows資源管理器所支持。 BHO是一個COM進程內服務,注冊于注冊表中某一鍵下。在啟動時,Internet Explorer查詢那個鍵并把該鍵下的所有對象預以加載。
  Internet Explorer瀏覽器初始化這一對象并要求某一接口功能。如果發現這一接口, Internet Explorer使用其提供的方法傳遞 IUnknown 指針到BHO對象。見圖一:


圖一 ie瀏覽器如何裝入和初始化BHO對象,BHO場所(site)是用于實現通信的COM接口

  瀏覽器可能在注冊表中發現一系列的CLSID,并由此為每個CLSID建立一個進程中實例。結果是,這些對象被裝載至瀏覽器上下文中并運行起來,好象它們是本地組件一樣。但是,由于Internet Explorer的COM特性,即使被裝入到它的進程空間中于事(你的野心實現)也不一定會有多大幫助。用另一說法, BHO的確能夠做許多潛在的有用的事情,如子類化組成窗口或者安裝線程局部鉤子,但是它確實遠離瀏覽器的核心活動。為了鉤住瀏覽器的事件或者自動化瀏覽器,BHO需要建立一個私有的基于COM的通訊通道。為此,該BHO應該實現一個稱為IObjectWithSite的接口。事實上,通過接口IobjectWithSite, Internet Explorer 可以傳遞它的IUnknown 接口。BHO反過來能夠存儲該接口并進一步查詢更專門的接口,如IWebBrowser2、IDispatch和IConnectionPointContainer。
  另外一種分析BHO對象的途徑與Internet Explorer外殼擴展有關。我們知道,一個WINDOWS外殼擴展即是一個進程內的COM服務器,它在Windows資源管理器執行某種動作時裝入內存――如顯示上下文菜單。通過建立一個實現幾個COM接口的COM模塊,你就給上下文菜單加上一些項并能預以正確處理。一個外殼擴展必須以Windows資源管理器能夠發現的方法注冊。一個BHO對象遵循同樣的模式――唯一的改變在于要實現的接口。然而,盡管實現方式有所不同,外殼擴展與 BHO 仍有許多共同的特點。如下表一:

表一 外殼擴展與 BHO相近特性比較

特性外殼擴展BHO對象
加載者Windows資源管理器Internet Explorer(和外殼4.17及以上版本的Windows資源管理器)
擊活動作在某類文檔上的用戶動作(即單擊右鍵)打開瀏覽器窗口
何時卸載參考計數達到0的幾秒之后導致它加載的窗口關閉時
實現形式COM進程中DLLCOM 進程中 DLL
注冊需求常常是為一個COM服務器設置的入口處,另加的入口依賴于外殼類型及它要應用至的文檔類型常常是為一個COM服務器設置的入口處,另加一個把它申請為BHO的注冊入口
接口需求依賴于外殼擴展的類型IObjectWithSite

如果你對SHELL擴展編程有興趣的話,可以參考MSDN有關資料。

四、BHO的生存周期
  前面已經說過,BHO不僅僅為Internet Explorer所支持。如果你在使用外殼 4.71或者更高版本,你的BHO對象也會被Windows資源管理器所加載。下表二展示了我們可以使用的不同版本的外殼產品情況,Windows外殼版本號存于庫文件shell32.dll中。

表二 不同版本的Windows外殼對于BHO的支持情況

外殼版本安裝的產品BHO的支持情況
4.00Windows 95,Windows? NT 4.0 帶或不帶 Internet Explorer 4.0 或更老版本。 注意沒有安裝外殼更新Internet Explorer 4.0
4.71Windows 95,Windows NT 4.0 帶Internet Explorer 4.0 和活動桌面外殼更新?Internet Explorer 與Windows 資源管理器
4.72?Windows 98?Internet Explorer與Windows 資源管理器
5.00?Windows 2000?Internet Explorer與Windows 資源管理器

  BHO對象隨著瀏覽器主窗口的顯示而裝入,隨著瀏覽器主窗口的銷毀而缷載。如果你打開多個瀏覽器窗口,多個BHO實例也一同產生。
  無論瀏覽器以什么樣的命令行啟動,BHO對象都被加載。舉例來說,即使你只是想要見到特定的 HTML 頁或一個給定的文件夾,BHO對象也被加載。一般地,當 explorer.exe 或 iexplore.exe 運行的時候,BHO都要被考慮在內。如果你設置了"Open each folder in its own window"(對每一個文件夾以一個獨立窗口打開)文件夾選項,那么你每次打開一個文件夾,BHO對象都要被加載。見圖二。


圖二 經過這樣設置,你每次打開一個文件夾時,執行一個獨立的explorer.exe實例,并裝入已注冊的BHO對象。

  但是注意,這種情形僅適于當你從桌面上的"我的電腦"圖標中打開文件夾的情況。在這種情況下,每次你移到另外一個文件夾時外殼都要調用explorer.exe。這種情況在你同時用兩個窗格進行瀏覽時是不會發生的。事實上,當你改變文件夾時,外殼是不會啟動瀏覽器的新的實例的而僅是簡單創建嵌入視圖對象的另外一個實例。奇怪的是,如果你在地址欄中輸入一個新的名字來改變文件夾時,在同一個窗口中同樣可以達到瀏覽之目的,無論Windows資源管理器視圖是單個的還是雙視圖形式。
  對于Internet Explorer的情形,事情要更簡單一些。只有你顯式地多次運行iexplore.exe瀏覽器時,你才有多個Internet Explorer的拷貝。當你從Internet Explorer中打開新的窗口時,每一個窗口在一個新的線程中被復制而不是創建一個新的進程,因此也就不需要重新載入BHO對象。
  首先,BHO最有趣的地方是,它是極度動態的。每次Windows資源管理器或者Internet Explorer打開,裝載器從注冊表中讀取已安裝的BHO對象的CLSID然后處理它們。如果你在打開的瀏覽器多個實例中間編輯注冊表的話,你可以隨著多個瀏覽器拷貝的載入而裝入多個不同的BHO。 這就是說,如果你選擇從頭創建一個新的屬于自己的瀏覽器,那么你可以把它內嵌在一個Visual Basic或者MFC框架窗口中。同時你有相當的機會來靈活安排瀏覽程序。如果它們能滿足你的需要的話,你可以依賴于Internet Explorer的強大的功能并且加上你想要的盡可能多的插件。

五、關于IObjectWithSite接口
  從一個高起點來看,BHO即是一個DLL,它能夠依附于Internet Explorer瀏覽器的一個新建的實例,在某些情況下也適用于Windows資源管理器。
  一般地,一個場所(site)是一個中間對象,它位于容器對象與被包容對象之間。通過它,容器對象管理被包容對象的內容,也因此使得對象的內部功能可用。為此,容器方要實現接口IoleClientSite,被包容對象要實現接口IOleObject 。通過調用IOleObject提供的方法,容器對象使得被包容對象清楚地了解其HOST的環境。
  一旦容器對象成為Internet Explorer(或是具有WEB能力的Windows資源管理器),被包容對象只需實現一個輕型的IObjectWithSite接口。該接口提供了以下方法:

表三 IObjectWithSite定義

方法描述
HRESULT SetSite(IUnknown* pUnkSite) 接收ie瀏覽器的IUnknown指針。典型實現是保存該指針以備將來使用。.
HRESULT GetSite(REFIID riid, void** ppvSite) 從通過SetSite()方法設置的場所中接收并返回指定的接口,典型實現是查詢前面保存的接口指針以進一步取得指定的接口。

  對BHO 的唯一嚴格的要求正在于必須實現這一個接口。 注意你應該避免在調用以上任何一個函數時返回E_NOTIMPL 。 要么你不實現這一接口,要么應保證在調用這些方法時進行正確地編碼。

六、構造自己的BHO對象
  一個BHO對象就是一個進程中服務器DLL,選用ATL創建它是再恰當不過的了。我們選擇ATL的另外一個原因是因為它已經提供了缺省的而且提供了IObjectWithSite接口的足夠好的實現。另外,在ATL COM 向導本地支持的已定義好的對象類型當中,有一個,就是Internet Explorer對象,這正是一個BHO應該具有的類型。一個 ATL Internet Explorer 對象,事實上是一個簡單對象――也就是說,是一個支持IUnknown和自注冊,還有接口IObjectWithSite的COM 服務器。如果你在ATL工程中添加一個這樣的對象,并調用相應的類CViewSource,你將從向導中得到下列代碼:

class ATL_NO_VTABLE CViewSource : public CComObjectRootEx<CComSingleThreadModel>,public CComCoClass<CViewSource, &CLSID_ViewSource>,public IObjectWithSiteImpl<CViewSource>,public IDispatchImpl<IViewSource, &IID_IViewSource, &LIBID_HTMLEDITLib>   正如你所見,向導已經使類從接口IObjectWithSiteImpl繼承,這是一個ATL模板類,它提供了接口IObjectWithSite的基本實現。一般情況下,沒有必要重載成員函數GetSite()。取而代之的是, SetSite() 實現代碼經常需要加以定制。ATL實際上僅僅把一個IUnknown接口指針存儲在成員變量m_spUnkSite中。
  在文章的剩余部分,我將討論一個 BHO 的相當復雜而豐富的例子。該BHO對象將依附于Internet Explorer,并顯示一個文本框來顯示當前正瀏覽的網頁源碼。 該代碼窗口將 隨著你改變網頁而自動更新,如果瀏覽器顯示的不是一個HTML網頁時,它將變灰。你對于原始HTML代碼的任何改動立即反映在瀏覽器中。HTML (DHTML)使得這一看似魔術般的實現成為可能。該代碼窗口可被隱藏和通過按動熱鍵重現。 在可見情況下,它與Internet Explorer共享整個桌面空間,見圖三。


圖三 BHO對象在使用中。它依附于Internet Explorer,并顯示一個窗口來顯示當前正瀏覽的網頁源碼。還允許你源碼進行修改。

  本例子的關鍵點在于存取Internet Explorer的瀏覽機制,其實它只不過是WebBrowser控件的一個實例而已。這個例子可以分解為以下五步來實現:
  • 探測誰在裝入這個對象,是Internet Explorer還是Windows資源管理器;
  • 獲取接口IWebBrowser2以實現Web瀏覽器對象;
  • 捕捉Web瀏覽器的特定事件;
  • 存取當前文檔對象,確定它是一份HTML類型的文件;
  • 管理對話框窗口以實現HTML源碼的顯示;
  •   第一個步驟是在DllMain()中完成的。SetSite()是取得指向WebBrowser對象指針的適當位置。請詳細分析以下步驟。

    七、探測誰在調用這個對象
      如前所述,一個BHO對象會被Internet Explorer或者Windows資源管理器(前提:外殼版本4.71或者更高)所加載。所以我專門設計了一個BHO來處理HTML網頁,因此這個BHO與資源管理器毫無關系。如果一個Dll不想被調用者一起加載,只需在DllMain()中實現了探明誰在調用該對象后返回FALSE即可。參看下面代碼:

    if (dwReason == DLL_PROCESS_ATTACH) { TCHAR pszLoader[MAX_PATH];//返回調用者模塊的名稱,第一個參數應為NULL,詳見msdn。 GetModuleFileName(NULL, pszLoader, MAX_PATH); _tcslwr(pszLoader); if (_tcsstr(pszLoader, _T("explorer.exe"))) return FALSE; } 一旦知道了當前進程是Windows資源管理器,可立即退出。
      注意,再多加一些條件語句是危險的!事實上,另外一些進程試圖裝入該DLL時將被放棄。如果你做另外一個試驗,比方說針對Internet Explorer的執行文件iexplorer.exe,這時第一個受害者就是regsvr32.exe(該程序用于自動注冊對象)。
    if (!_tcsstr(pszLoader, _T("iexplore.exe")))   你不能夠再次注冊該DLL庫了。 事實上,當 regsvr32.exe 試圖裝入DLL以激活函數DllRegisterServer()時,該調用將被放棄。

    八、與Web瀏覽器取得聯系
      SetSite()方法正是BHO對象被初始化的地方,此外,在這個方法中你可以執行所有的僅僅允許發生一次的任務。當你用Internet Explorer打開一個URL時,你應該等待一系列的事件以確保要求的文檔已完全下載并被初始化。唯有在此時,你才可以通過對象模型暴露的接口(如果存在的話)存取文檔內容。這就是說你要取得一系列的指針。第一個就是指向IWebBrowser2(該接口用來生成WebBrowser對象)的指針。第二個指針與事件有關。該模塊必須作為一個瀏覽器的事件偵聽器來實現,目的是為接收下載以及與文檔相關的事件。下面用ATL靈敏指針加以封裝:
    CComQIPtr< IWebBrowser2, &IID_IWebBrowser2> m_spWebBrowser2; CComQIPtr<IConnectionPointContainer, &IID_IConnectionPointContainer> m_spCPC; 源代碼部分如下所示:
    HRESULT CViewSource::SetSite(IUnknown *pUnkSite) {// 檢索并存儲 IWebBrowser2 指針 m_spWebBrowser2 = pUnkSite; if (m_spWebBrowser2 == NULL)return E_INVALIDARG;//檢索并存儲 IConnectionPointerContainer指針m_spCPC = m_spWebBrowser2;if (m_spCPC == NULL) return E_POINTER;//檢索并存儲瀏覽器的句柄HWND. 并且安裝一個鍵盤鉤子備后用RetrieveBrowserWindow();// 為接受事件通知連接到容器return Connect(); }   為了取得IWebBrowser2接口指針,你可以進行查詢。當然也可以在事件剛剛發生時查詢IConnectionPointContainer。這里,SetSite()檢索了瀏覽器的句柄HWND,并且在當前線程中安裝了一個鍵盤鉤子。HWND用于后面Internet Explorer窗口的移動或尺寸調整。這里的鉤子用來實現熱鍵功能,用戶可以按動熱鍵來顯示/隱藏代碼窗口。

    九、從Internet Explorer瀏覽器取得事件
      當你導向一個新的URL時,瀏覽器最需要完成的是兩種事件:下載文檔并為之準備HOST環境。也就是說,它必須初始化某對象并使該對象從外部可以利用。針對不同的文檔類型,或者裝入一個已注冊的Microsoft ActiveX? 服務器來處理該文檔(如Word對于.doc文件的處理)或者初始化一些內部組件來分析文檔內容并生成和顯示該文檔。對于HTML網頁就是這樣,其內容由于DHTML對象作用而變得可用。當文檔全部下載結束,DownloadComplete事件被激活。這并不是說,這樣利用對象模型就可以安全地管理文檔的內容了。事實上,DocumentComplete 事件僅指明一切已經結束,文檔已準備好了 (注意DocumentComplete事件僅在你第一次存取URL時到達,如果你執行了刷新動作,你僅僅收到一個DocumentComplete事件)。
      為了截獲瀏覽器發出的事件, BHO需要通過IConnectionPoint 接口連接到瀏覽器上 并且實現傳遞接口IDispatch指針以處理各種事件。現在利用前面取得的IConnectionPointContainer指針來調用FindConnectionPoint方法――它返回一個指針指向連接點對象(正是通過這個連接點對象來取得要求的外向接口,此時是DIID_DWebBrowserEvent2)。 下列代碼顯示了連接點的發生情況:
    HRESULT CViewSource::Connect(void) {HRESULT hr;CComPtr<IConnectionPoint> spCP;//為Web瀏覽器事件而接收(receive)連接點 hr = m_spCPC->FindConnectionPoint(DIID_DWebBrowserEvent2, &spCP);if (FAILED(hr))return hr;// 把事件處理器傳遞到容器。每次事件發生容器都將激活我們實現的IDispatch接口上的相應的函數。hr = spCP->Advise( reinterpret_cast<IDispatch*>(this), &m_dwCookie);return hr; }   通過調用接口IConnectionPoint的Advise() 方法, BHO告訴瀏覽器它對它產生的事件很感興趣。 由于COM事件處理機制,所有這些意味著BHO把IDispatch接口指針提供給瀏覽器。瀏覽器將回調IDispatch接口的Invoke() 方法,以事件的ID值作為第一參數:
    HRESULT CViewSource::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pvarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) {if (dispidMember == DISPID_DOCUMENTCOMPLETE) {OnDocumentComplete();m_bDocumentCompleted = true;}: }   切記,當事件不再需要時,應該使之與瀏覽器分離。如果你忘記了做這件事情,BHO對象將被鎖定,即使在你關閉瀏覽器窗口之后。很明顯,實現分離的最佳時機是收到事件OnQuit時。

    十、存取文檔對象
      此時,該BHO已經有一個參照指向Internet Explorer的Web瀏覽器控件并被連接到瀏覽器控件以接收所有它產生的事件。當網頁被全部下載并正確初始化后,我們就可以通過DHTML文檔模型存取它。Web瀏覽器的文檔屬性返回一個指向文檔對象的IDispatch接口的指針:
    CComPtr<IDispatch> pDisp; HRESULT hr = m_spWebBrowser2->get_Document(&pDisp);   get_Document() 方法取得的僅僅是一個接口指針。我們要進一步確定在IDispatch 指針背后存在一個HTML文檔對象。用VB實現的話,可以用下面代碼:
    Dim doc As Object Set doc = WebBrowser1.Document If TypeName(doc)="HTMLDocument" Then'' 獲取文檔內容并予以顯示 Else'' Disable the display dialog End If   現在要了解一下get_Document()返回的IDispatch指針 。Internet Explorer不僅僅是一個HTML瀏覽器,而且還是一個ActiveX文檔容器。 這樣一來,難以保證當前瀏覽對象就是一個HTML文檔。不過辦法還是有的――你想,如果IDispatch指針真正指向一個HTML文檔,查詢IHTMLDocument2 接口一定成功。
    IHTMLDocument2接口包裝了DHTML對象模型用來展現HTML頁面的所有功能。下面代碼實現這些功能:
    CComPtr<IDispatch> pDisp; HRESULT hr = m_spWebBrowser2->get_Document(&pDisp); CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> spHTML; spHTML = pDisp; if (spHTML) {// 獲取文檔內容并予以顯示 } else {// disable the Code Window controls } 如果IHTMLDocument2接口查詢失敗,spHTML指針將是NULL。
      現在考慮如何獲得當前顯示窗口的源代碼。正如一個HTML頁把它所有的內容封裝在標簽<BODY>中,DHTML對象模型要求你取得一個指向Body對象的指針:
    CComPtr<IHTMLElement> m_pBody; hr = spHTML->get_body(&m_pBody);   奇怪的是,DHTML對象模型不讓你取得標簽<BODY>之前的原始內容,如<HEAD>。其內容被處理并存于一些屬性中,但你還是不能從HTML原始文件中提取這部分的RAW文本。這過,僅從BODY部分取得的內容足夠了。為了取得包含在<BODY>…</BODY>間的HTML代碼部分,可以把outerHTML屬性內容讀取到一個BSTR變量中:
    BSTR bstrHTMLText; hr = m_pBody->get_outerHTML(&bstrHTMLText);   在此基礎上,在代碼窗口中顯示源碼就是一種簡單的事情了:生成一個窗口,進行字符的UNICODE至ANSI轉化和設置編輯框控件的問題。下面代碼實現這些功能: HRESULT CViewSource::GetDocumentContent() {USES_CONVERSION;// 獲取 WebBrowser的文檔對象CComPtr<IDispatch> pDisp;HRESULT hr = m_spWebBrowser2->get_Document(&pDisp);if (FAILED(hr))return hr;// 確保我們取得的是一個IHTMLDocument2接口指針//讓我們查詢一下 IHTMLDocument2 接口 (使用靈敏指針)CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> spHTML;spHTML = pDisp;// 抽取文檔源代碼if (spHTML){// 取得BODY 對象hr = spHTML->get_body(&m_pBody); if (FAILED(hr))return hr;// 取得HTML 文本BSTR bstrHTMLText;hr = m_pBody->get_outerHTML(&bstrHTMLText); if (FAILED(hr))return hr;// 進行文本的Unicode到 ANSI的轉換LPTSTR psz = new TCHAR[SysStringLen(bstrHTMLText)];lstrcpy(psz, OLE2T(bstrHTMLText));// 文本進行相應的調整HWND hwnd = m_dlgCode.GetDlgItem(IDC_TEXT);EnableWindow(hwnd, true);hwnd = m_dlgCode.GetDlgItem(IDC_APPLY);EnableWindow(hwnd, true);// 設置代碼窗口中的文本m_dlgCode.SetDlgItemText(IDC_TEXT, psz); delete [] psz;}else // 文檔不是一個 HTML 頁{m_dlgCode.SetDlgItemText(IDC_TEXT, ""); HWND hwnd = m_dlgCode.GetDlgItem(IDC_TEXT);EnableWindow(hwnd, false);hwnd = m_dlgCode.GetDlgItem(IDC_APPLY);EnableWindow(hwnd, false);}return S_OK; }   因為我要運行這段代碼來響應DocumentComplete事件通知,每個新的頁自動地而且敏捷地被處理。DHTML對象模型使你能夠隨意修改網頁的結構,但這一變化在按F5刷新后全部復原。你還要處理一下DownloadComplete事件以刷新代碼窗口 (注意, DownloadComplete 事件發生在 DocumentComplete事件之前)。你應該忽略網頁的首次DownloadComplete事件,而是在執行刷新動作時才關注這一事件。布爾成員變量m_bDocumentCompleted正是用來區別這兩種情形的。

    十一、管理代碼窗口
      用來顯示當前HTML頁原始碼的代碼窗口涉及另外一個ATL 基本編程問題-對話框窗口,它位于ATL對象向導的"Miscellaneous"選項卡下。
      我調整了代碼窗口的大小來響應WM_INITDIALOG消息,使它占居桌面空間的下部區域,正好是在任務欄的上面。在瀏覽器啟動時你可以選擇顯示或不顯示這個窗口。缺省情況下是顯示的,但這可以通過清除"Show window at startup"復選框項來實現。當然喜歡的話,你可以隨時關閉。按鍵F12即可重新顯示代碼窗口。F12是通過在SetSite()中安裝的鍵盤鉤子實現的。啟動環境存于WINDOWS注冊表中,我選擇外殼庫文件shlwapi.dll中函數SHGetValue來實現注冊表的讀寫操作。這同使用Reg開頭的Win32函數操作相比,簡單極了。請看:
    DWORD dwType, dwVal; DWORD dwSize = sizeof(DWORD); SHGetValue(HKEY_CURRENT_USER, _T("Software\\MSDN\\BHO"), _T("ShowWindowAtStartup"), &dwType, &dwVal, &dwSize); 這個DLL文件是同Internet Explorer 4.0 和活動桌面的誕生一起產生的,是WIN98及以后版本的標準組成,你可以放心使用。

    十二、注冊BHO對象
      因為BHO 是一個COM 服務器,所以既應該作為COM 服務器注冊又應該作為BHO對象注冊。ATL向導自動生成.rgs文件,第一種情況的注冊就免除了。下面的文件代碼段是用來實現作為BHO對象注冊的(CLSID為例中生成)。 HKLM {SOFTWARE {Microsoft { Windows {CurrentVersion {Explorer {''BHO'' {ForceRemove {1E1B2879-88FF-11D2-8D96-D7ACAC95951F} }}}}}}}   注意ForceRemove一詞能夠實現在卸載對象時刪除這一行相應的鍵值。BHO鍵下聚集了所有的BHO對象。對于這么多的一串家伙是從來不作緩沖調用的。這樣以來,安裝與測試BHO就是不費時的事情了。

    十三、總結
      本文描述了BHO對象,通過它你可以把自己的代碼注入瀏覽器的地址空間中。你必須做的事情是寫一個支持IObjectWithSite 接口的COM 服務器。在這一點上,你的BHO對象可以實現瀏覽器機制范圍內的各種合法目的。本文所及示例涉及了COM事件,DHTML對象模型以及WEB瀏覽器編程接口。雖然內容稍寬一些,但它正顯示了現實世界中的BHO對象的應用。如,你想知道瀏覽器在顯示什么,那么您就需要了解接收事件并要熟悉WEB瀏覽器才行。
      另外:Windows資源管理器也是與BHO對象交互的,這一點在編程時要特別注意。本文所附源程序為MSDN所帶,在Windows2000/VC6下調試通過(編譯通過后,重新啟動IE即得到結果)。

    轉載于:https://www.cnblogs.com/xxaxx/archive/2009/11/26/1610965.html

    總結

    以上是生活随笔為你收集整理的如何使用BHO定制你的Internet Explorer浏览器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产精品久久亚洲 | 天无日天天操天天干 | av三级在线免费观看 | 日韩a欧美 | 久久久私人影院 | 亚洲成年人免费网站 | 亚洲精品视频免费在线 | 亚洲乱码中文字幕综合 | 日韩av看片 | 色免费在线 | 色香com. | 国产中文欧美日韩在线 | 日韩电影一区二区在线 | 国产精品久久综合 | 国产不卡免费视频 | 玖玖在线视频观看 | 欧美成人黄色片 | 国产精品成人自产拍在线观看 | 日本在线视频网址 | 欧美人zozo | 日韩 国产 | 一区二区不卡在线观看 | 国产午夜三级一区二区三 | 久久精品久久精品久久精品 | 99热这里只有精品在线观看 | 免费三级影片 | 五月天综合激情 | 午夜影院一级 | 亚洲高清在线精品 | 国产精品2019| 美女福利视频一区二区 | 92av视频 | 日韩欧美综合在线视频 | 免费久久99精品国产婷婷六月 | 国产对白av| 99在线观看免费视频精品观看 | 2019国产精品 | av在线直接看| 六月色丁 | 人人爽人人 | 在线免费看黄网站 | 肉色欧美久久久久久久免费看 | 天天插天天射 | 日本成人中文字幕在线观看 | 国产一区二区三区免费视频 | 午夜a区 | 一二三区高清 | 国产999精品久久久 免费a网站 | 天天爱av导航 | 在线播放 日韩专区 | 国产美女免费视频 | 五月天婷婷免费视频 | 欧美精品资源 | 日韩在线观看中文字幕 | 国产成人黄色网址 | 337p西西人体大胆瓣开下部 | 我要色综合天天 | 天天综合网 天天综合色 | 日本丶国产丶欧美色综合 | 91成人天堂久久成人 | av电影免费 | 国产精品1区 | av日韩在线网站 | 亚洲视频在线观看免费 | 成人在线播放网站 | 玖玖精品在线 | 亚洲成人精品影院 | 久久99精品国产一区二区三区 | 国产成人av在线影院 | 91精品办公室少妇高潮对白 | 精品少妇一区二区三区在线 | 亚洲aⅴ在线 | 91精品国产99久久久久 | 国产精品9999久久久久仙踪林 | 三日本三级少妇三级99 | 中文字幕日韩在线播放 | 国产精品第二页 | www日日 | 伊人久操 | 五月开心激情 | 久久99网 | 精品人人人人 | 国产精品久久久久久久久久新婚 | 国产精品久久久久久久久软件 | 在线一区观看 | 国产亚洲精品久久久久久久久久久久 | 久久99亚洲精品久久 | 91成版人在线观看入口 | 九色激情网 | 亚洲视频在线播放 | 国产91av视频在线观看 | 欧美一级免费 | 国产精品久久久 | 999国产精品视频 | 午夜精品福利在线 | 在线看国产一区 | 国产精品一区久久久久 | 国产精品第二十页 | 在线午夜 | 亚洲无吗视频在线 | 中文字幕 国产专区 | 91精品国产91p65| 在线国产一区二区 | 香蕉日日| 成人一区二区在线观看 | 久久永久视频 | 成人在线一区二区三区 | 成人免费在线看片 | 亚洲最新精品 | 一级免费观看 | 亚洲伦理电影在线 | 免费黄色特级片 | 国产一性一爱一乱一交 | 免费网站黄色 | 日韩欧美一区二区三区在线 | www.伊人网 | 国产黑丝一区二区 | 欧美性黑人 | 丁香六月婷 | 日韩中字在线观看 | 在线免费国产 | 精品1区2区| 国产成a人亚洲精v品在线观看 | 奇米影视777影音先锋 | 日韩一区二区三免费高清在线观看 | 久久久精品视频网站 | 日韩性xxxx | 久久精品一区二区国产 | 亚洲综合在线五月 | 婷婷5月色 | 久久久久久久久久久久亚洲 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩精品免费在线视频 | 99精品黄色片免费大全 | 久久精品欧美一区 | 日韩最新理论电影 | 免费a级黄色毛片 | 又污又黄网站 | 天天干天天操天天入 | 久久乐九色婷婷综合色狠狠182 | 国产成人在线综合 | 视频在线观看入口黄最新永久免费国产 | 国产亚洲欧美日韩高清 | 亚洲春色成人 | 久久久久久综合网天天 | 在线视频app| 黄污视频网站大全 | 久久视频在线观看中文字幕 | 日本久久91 | 在线免费视频你懂的 | 肉色欧美久久久久久久免费看 | av中文字幕第一页 | 天天干夜夜擦 | 国产一区国产精品 | 色偷偷中文字幕 | 日韩久久久久久久久久 | 一级一级一片免费 | 中文字幕视频播放 | 欧美 日韩 久久 | 一区二区三区在线视频111 | 91免费高清视频 | 高清av中文字幕 | 激情五月婷婷综合 | 四虎影视精品永久在线观看 | 国产成人高清av | 日韩网站视频 | 中文av在线天堂 | 久久天天操 | 日韩av播放在线 | 国产美女永久免费 | 久久免费高清 | 激情五月看片 | 成人毛片一区二区三区 | 久久66热这里只有精品 | 免费网站v | 天天射天天操天天色 | 99热只有精品在线观看 | 中文字幕无吗 | av成人在线看 | 97免费在线观看视频 | 五月开心婷婷网 | 亚洲精品视频观看 | 婷婷丁香六月天 | 综合久久久久久久久 | 992tv人人网tv亚洲精品 | 国产99视频在线观看 | 国内精品在线看 | 五月天久久 | 91成人免费看片 | 五月天久久婷 | 国产爽妇网 | 69国产精品视频免费观看 | 欧美精品乱码久久久久 | 五月网婷婷 | 又湿又紧又大又爽a视频国产 | 麻豆影视网 | 国产又粗又硬又爽的视频 | av中文字幕日韩 | 久久久国产高清 | 欧美性爽爽 | 天天色天天艹 | 久久国产精品久久w女人spa | 亚州天堂 | 国产精品一区二区久久 | 色综合天天综合 | 黄色小网站在线 | 国产一级免费观看视频 | 欧美国产精品久久久久久免费 | 日韩激情在线 | 中文字幕在线播放一区二区 | 久草国产视频 | 日韩影视大全 | 在线成人性视频 | 国产精品久久99综合免费观看尤物 | 国产91影院| 99久久精品免费一区 | 亚洲在线视频网站 | 久久久毛片 | 69国产在线观看 | 久久久久久久看片 | 日韩欧美高清免费 | 亚洲va欧美va国产va黑人 | 亚洲午夜精| 超碰在线人人爱 | 久久婷婷激情 | 欧美在线视频二区 | 欧美一级欧美一级 | 久久精品视频免费观看 | 91cn国产在线 | 999精品在线 | av观看免费在线 | 国产成人精品国内自产拍免费看 | 欧美一区视频 | 最新国产视频 | 国产91精品一区二区绿帽 | 国产亚洲在线视频 | 久久老司机精品视频 | 久久精品欧美视频 | 亚洲精品激情 | 久久国产高清 | 欧美日韩国产一二三区 | 亚洲人人网| 亚洲免费在线播放视频 | 久久久久久久久毛片 | 97视频免费观看2区 亚洲视屏 | 亚洲国产成人高清精品 | 国产视频精品久久 | 西西444www大胆无视频 | 欧美在线你懂的 | 国产精品一区二区精品视频免费看 | 国产精品嫩草影视久久久 | 亚洲免费视频观看 | 欧美日韩一区二区在线 | 超碰在线98| 韩国av免费看| 精品免费在线视频 | 亚洲综合色视频 | 99热播精品 | 亚洲日本在线视频观看 | 婷婷精品国产欧美精品亚洲人人爽 | 在线观看黄网站 | 综合久久精品 | 999ZYZ玖玖资源站永久 | 在线国产黄色 | 国产成人精品福利 | 成人91免费视频 | 香蕉视频色 | 国产精品欧美久久久久天天影视 | 97av影院 | 中文视频一区二区 | 亚洲国产精品久久久久久 | 欧美色图东方 | 久久精品一二区 | 久久你懂的 | 精品亚洲网 | 国产精品久久久久四虎 | 69欧美视频 | 日韩在线视频免费看 | 免费成人短视频 | 亚洲精品在线二区 | 在线免费黄色av | 91chinese在线 | 日韩一区二区免费在线观看 | 69xx视频| 精品国产资源 | 亚洲欧美日韩在线一区二区 | 超级碰碰视频 | 国产免费区 | 午夜视频亚洲 | 日本久草电影 | 日本成人中文字幕在线观看 | 久久最新网址 | 天天天操操操 | 91成人午夜| 91亚洲影院 | 中文字幕在线观看你懂的 | 欧美在线资源 | 亚洲精选99 | 亚洲欧美视频网站 | 欧美国产日韩一区 | a在线观看免费视频 | 中文在线www | 久久手机在线视频 | 一区二区三区免费在线观看视频 | 亚洲伦理一区 | 亚洲国产精品久久久久 | 最近日本中文字幕 | 一区二区精品国产 | 国产一线天在线观看 | 亚洲激情p| 日韩 在线 | 亚洲尺码电影av久久 | 狠狠操操| 久草视频在线资源站 | 在线免费av观看 | 97视频在线看 | 亚洲日b视频 | 免费三级影片 | 亚洲天天看| 99视频在线观看一区三区 | 精品一区二区av | 91免费国产在线观看 | 久久高视频| 九九久久国产 | 色久av| 亚洲理论片 | 手机色站 | 精品国产亚洲一区二区麻豆 | 国产一级二级视频 | 最新国产中文字幕 | 一区二区三区四区五区在线 | 久久99精品久久久久久 | 久久手机免费观看 | 欧美日韩精品网站 | 久久精品男人的天堂 | 亚洲国产视频直播 | 国产69精品久久久久99尤 | 日韩精品一区二区三区丰满 | 免费看日韩片 | 欧美激情综合五月色丁香小说 | 国产成人亚洲在线观看 | 国产精品久久久久久久久久久久午 | 这里只有精品视频在线 | 91精品网站在线观看 | 久久久九色精品国产一区二区三区 | 人人舔人人舔 | 日韩综合一区二区三区 | 日韩视频精品在线 | 久久久国产视频 | 国内精品小视频 | 91高清不卡| 91精品一区国产高清在线gif | 九九久久成人 | 99精品久久久久久久 | 成人黄色毛片 | 国产精品视屏 | 日韩日韩日韩日韩 | 国产色啪| 国产成人99av超碰超爽 | 久久婷婷色综合 | 亚洲精品一区二区18漫画 | 亚洲精品国产欧美在线观看 | 中文字幕麻豆 | 激情偷乱人伦小说视频在线观看 | 伊人影院在线观看 | 激情婷婷综合 | 国产一区久久 | 2019中文字幕网站 | 亚洲精品美女久久久久 | 天天摸天天操天天爽 | 日产乱码一二三区别在线 | 国产精品自产拍在线观看网站 | 天天天色综合a | 国内久久精品视频 | 国产无遮挡又黄又爽馒头漫画 | 正在播放 久久 | 日韩精品电影在线播放 | 国产在线观看99 | 国产精品99久久久久的智能播放 | 日日夜夜天天久久 | 久久成人黄色 | 亚洲精品影视在线观看 | 在线 日韩 av | 日韩一区二区三区不卡 | 国产精品高潮呻吟久久av无 | 韩日三级在线 | 狠狠操影视 | 青青草在久久免费久久免费 | 亚洲精品视频在线播放 | 国产又粗又猛又爽又黄的视频先 | 丝袜制服天堂 | 日一日干一干 | 国产福利不卡视频 | 欧美在线18 | 婷婷天天色 | 日韩专区中文字幕 | 国内精品国产三级国产aⅴ久 | 亚洲日本中文字幕在线观看 | 欧美日韩高清在线一区 | 国产精品国产三级国产aⅴ入口 | 亚洲三级精品 | 天天操天天色综合 | 亚洲国产一区在线观看 | 在线草 | 在线成人国产 | 五月开心婷婷网 | av片无限看| 在线观看免费中文字幕 | 亚洲精品456在线播放 | 这里有精品在线视频 | 久久草在线视频国产 | 欧美激情视频在线观看免费 | 亚洲精品中文在线观看 | 久久伊人精品一区二区三区 | 天天干天天操天天干 | 在线观看日韩一区 | 九九热免费观看 | 中文字幕日本电影 | 在线国产一区二区三区 | 久草在线 | 国产成人1区 | 热99在线视频 | 久久一区二区三区四区 | 欧美一级片播放 | 另类老妇性bbwbbw高清 | 啪啪资源| 欧美国产视频在线 | 欧美日韩视频在线观看一区二区 | 天天天综合 | 精品一区二区久久久久久久网站 | 亚洲国产97在线精品一区 | 成人动漫一区二区 | 中文字幕国语官网在线视频 | 日韩高清精品一区二区 | 亚洲精品www久久久 www国产精品com | 成人污视频在线观看 | 免费国产在线精品 | 狠狠的日日 | 九九视频精品免费 | 国产乱视频 | 国产在线观看一 | 亚洲精色 | 久久久久久久久久久久久影院 | 精品国产欧美一区二区 | 人人干人人搞 | 99久久婷婷国产综合亚洲 | 国产成人精品午夜在线播放 | 97精品国产一二三产区 | 天天色中文 | 91免费视频网站在线观看 | 国产精品原创视频 | 欧美激情综合色综合啪啪五月 | 日韩一区二区三区在线观看 | 在线v片免费观看视频 | 在线黄色毛片 | 一级欧美黄 | 久操综合| 亚洲精品婷婷 | 97人人人人 | 激情欧美国产 | 亚洲久久视频 | 国产精品久久久视频 | 中文字幕黄色av | 在线亚洲观看 | 人人爽人人爽人人爽人人爽 | 久久久久久高清 | 国产一级特黄毛片在线毛片 | 香蕉日日| 日本在线观看视频一区 | 天天射天天爽 | 欧美性另类 | 天堂在线视频中文网 | 在线观看av黄色 | 精品一区二区三区久久久 | 国产一级片免费视频 | 超碰在线成人 | 久久69av | 婷婷丁香九月 | 夜夜躁日日躁狠狠久久av | 日韩美女一级片 | 婷婷成人综合 | 亚洲成人在线免费 | 久久久免费观看完整版 | 麻豆视频免费入口 | 天天做日日爱夜夜爽 | 在线观看的av网站 | 日韩mv欧美mv国产精品 | 日本精品视频一区二区 | 精品亚洲男同gayvideo网站 | 亚洲最大在线视频 | 欧美精品被 | 国产精品久久久久国产精品日日 | 麻豆一区在线观看 | 久久精品中文 | 欧美激情综合色 | 6080yy午夜一二三区久久 | 美女黄频在线观看 | 在线视频福利 | 日韩免费av在线 | 精品九九九九 | 国产成人在线免费观看 | 成年人在线观看视频免费 | 一级黄色在线视频 | 99婷婷狠狠成为人免费视频 | ww亚洲ww亚在线观看 | 男女拍拍免费视频 | 日韩欧美一区二区三区在线 | 国产精品大片免费观看 | 欧美黄色软件 | 中文久草 | 天天狠狠 | 在线观看中文字幕一区二区 | 精品久久久久久一区二区里番 | 日韩中文字幕亚洲一区二区va在线 | 婷婷亚洲五月 | 亚洲 欧美 另类人妖 | 日韩福利在线观看 | 成人免费视频网站在线观看 | 在线中文字母电影观看 | 色欧美成人精品a∨在线观看 | 最新不卡av | 欧美日本啪啪无遮挡网站 | 成人啪啪18免费游戏链接 | 国产一在线精品一区在线观看 | 亚洲一区二区精品 | 天天操天天干天天爽 | 精品美女在线视频 | 国产精品久久久久久久久久三级 | 亚洲精品综合一区二区 | 色在线中文字幕 | 麻豆视频在线 | 人人干人人上 | 国产精品久久久久久久久蜜臀 | 精品国产a | 精品久久久久久国产91 | 久久久国产影视 | 色国产精品一区在线观看 | 色综合色综合色综合 | 国产精品久久亚洲 | 四虎影视成人永久免费观看视频 | 亚洲综合在线五月天 | 天天操天天爽天天干 | 亚洲a在线观看 | av在线免费在线 | 在线免费视 | 久久久久免费精品视频 | av天天色 | 日韩国产在线观看 | 精品亚洲va在线va天堂资源站 | 在线中文字幕视频 | 国产一区二区在线免费 | 香蕉在线观看 | 久久99精品波多结衣一区 | av中文字幕在线电影 | 日韩高清成人在线 | 午夜精品电影 | 最新中文字幕在线资源 | 99精品久久99久久久久 | 欧美精品999 | 久久久在线免费观看 | 亚洲涩涩涩涩涩涩 | 日韩在线播放欧美字幕 | 久久字幕精品一区 | 欧美日韩免费观看一区二区三区 | 日韩丝袜在线 | 青青五月天 | 亚洲精品乱码久久久久久9色 | 久久桃花网| 日韩中文字幕在线不卡 | 久久久久夜色 | 中文字幕免费高清av | 婷婷久久国产 | 国产精品久久久久9999吃药 | 久久99国产精品免费网站 | 992tv在线观看网站 | 国产免费二区 | 97人人超碰在线 | 黄色成年 | 精品国产1区2区 | 久久人人精品 | 亚洲精品天天 | 午夜美女视频 | 日韩精品免费在线 | 青青河边草免费直播 | 国产精品99久久免费黑人 | 我要看黄色一级片 | 亚洲五月 | 国产999精品久久久久久绿帽 | 日b视频国产 | 国产精品短视频 | 婷婷亚洲最大 | 91人人澡 | 91精品视频网站 | 欧美成人播放 | 97爱| 免费在线色电影 | 人人干,人人爽 | 在线观看免费福利 | 超碰在线最新 | 久久精品国产第一区二区三区 | 国产亚洲欧美精品久久久久久 | 国产99一区 | 亚洲精品视频一二三 | 日韩专区av | 伊人色综合久久天天 | 欧美一级片在线观看视频 | 午夜精品久久一牛影视 | 天天操人人要 | 美女网站视频免费黄 | 日韩在线视频在线观看 | 人人爱天天操 | 天天曰天天爽 | 99久久精品国产毛片 | 免费看的黄网站 | 免费在线观看不卡av | 最近中文字幕高清字幕免费mv | 亚洲成av人影院 | 国产日韩在线视频 | 久久精彩免费视频 | 国产 成人 久久 | 欧美aa一级 | 日韩在线无| 国产精品综合久久久久 | 久久少妇免费视频 | 成片免费观看视频大全 | 一本色道久久精品 | 香蕉网址 | 91丨porny丨九色 | 精品xxx | av在线中文 | 国产一区二区精品久久 | 中文字幕在线第一页 | 福利网在线 | 国产一级在线视频 | 久久成熟| 久久久综合精品 | 五月婷婷在线视频 | 91视频久久久久久 | 国产亚洲欧美一区 | 国产精品久久视频 | 午夜三级毛片 | 国产精品久久久久久妇 | 久久er99热精品一区二区三区 | 久草av在线播放 | 99日精品 | 日本成人中文字幕在线观看 | 日韩精品一区二区在线观看 | 高清中文字幕 | 成人免费观看网站 | 97精品超碰一区二区三区 | 欧美日韩在线观看视频 | adn—256中文在线观看 | 奇米影视在线99精品 | 91麻豆看国产在线紧急地址 | 麻豆av一区二区三区在线观看 | 国产一区二区视频在线 | 国产 日韩 在线 亚洲 字幕 中文 | 91高清视频免费 | 免费在线a | 97超级碰碰碰碰久久久久 | 国产精品999久久久 久产久精国产品 | 国产一区二区高清不卡 | 一级免费黄视频 | 亚洲欧美日韩不卡 | 日韩av一区二区在线播放 | 91视频久久久久久 | 最新av网址大全 | 91av在线免费播放 | 国产成人福利在线 | 久精品视频在线观看 | 91精品老司机久久一区啪 | 婷婷色在线视频 | 一区二区三区四区精品 | 91成人精品 | 夜夜高潮夜夜爽国产伦精品 | 精品一区二区av | 夜夜爽www| 亚洲最新av在线网址 | 久二影院 | 在线观看视频97 | 中文字幕 91 | 国产在线自 | 精品免费视频 | 亚洲精品在线一区二区三区 | 国产精品视频线看 | 精品伊人久久久 | 久久久久久国产一区二区三区 | 99热精品国产一区二区在线观看 | 国产精品igao视频网入口 | www.久久免费视频 | 美女视频黄是免费的 | 亚洲精品色婷婷 | 一区二区三区在线免费播放 | 国产一区二区精品 | 青青看片 | 碰天天操天天 | 日日摸日日碰 | 国产精品6 | 久精品视频在线观看 | 黄色录像av | 中文字幕免费不卡视频 | 天天色天天上天天操 | 国产在线更新 | 亚洲成人黄色在线观看 | 色婷婷中文 | 国产精品久久视频 | 91免费在线 | 久久久久久国产精品久久 | 日韩成人免费在线电影 | 日韩大片在线免费观看 | 在线电影91| 国产日韩中文在线 | 五月婷婷操 | 亚洲日本va午夜在线影院 | 日韩欧美一区二区三区在线 | 国产日韩欧美中文 | 成人午夜电影久久影院 | 国产精品一区二区三区电影 | 久久人人精 | 国产精品人成电影在线观看 | 麻豆传媒在线免费看 | 欧美成人亚洲成人 | 亚洲成人黄| 国内精品视频一区二区三区八戒 | 青青河边草免费直播 | 欧美成人精品欧美一级乱 | 中文资源在线观看 | 超碰人人超 | 国产在线1区 | 国产探花| 久久这里有 | 亚洲精品一区二区在线观看 | 日韩天堂网 | 国产视频一区二区在线播放 | 九九热在线精品视频 | 久久中文网 | 国产精品h在线观看 | 日韩精品免费一线在线观看 | 国产日韩精品一区二区三区在线 | 97小视频 | av不卡中文 | 91视频亚洲| 午夜电影一区 | 在线观看国产成人av片 | 日韩高清二区 | 免费日韩一区二区 | 日韩色av色资源 | 天天操天天操天天爽 | 久久狠狠一本精品综合网 | 97在线免费视频 | 婷婷六月天在线 | 精品国产精品久久 | 久热免费 | 久草在线视频精品 | 天天色天天综合 | 蜜臀av夜夜澡人人爽人人桃色 | 手机成人av在线 | 日日爽视频 | 狠狠干婷婷 | 成人av影视 | 人人天天夜夜 | 91色偷偷 | www.色爱| 日韩在线电影一区二区 | 久久久午夜电影 | 亚洲国产高清在线观看视频 | 免费三级黄色 | 成人国产精品久久久久久亚洲 | 久久一区91| 国产女人18毛片水真多18精品 | 亚洲激情视频在线 | 免费精品人在线二线三线 | 国产精品密入口果冻 | 国产成人免费观看久久久 | 成人网页在线免费观看 | 欧美成人a在线 | www.com黄色| 国产成人一区二区精品非洲 | 国产电影黄色av | 中文字幕乱码日本亚洲一区二区 | 蜜臀久久99精品久久久无需会员 | 中文字幕 国产专区 | 国产系列 在线观看 | 国产精品成人国产乱一区 | a成人v在线 | 国产亚洲久一区二区 | 国产丝袜一区二区三区 | 日韩美女免费线视频 | 91自拍成人| 久久网站免费 | 免费a一级 | 92国产精品久久久久首页 | www亚洲视频| 五月天亚洲综合小说网 | 国产日韩三级 | 在线观看免费黄色 | 免费av电影网站 | 一级免费看 | 国产婷婷在线观看 | 日韩一级片观看 | av中文字幕电影 | 中文字幕一区二区三区久久蜜桃 | 国内成人av| 免费网站看v片在线a | 欧美日韩国产在线一区 | 午夜久久久久久久久久久 | 国产一级在线免费观看 | 伊人五月天.com | 国产一区二区三区免费视频 | 中文字幕在线视频国产 | 在线观看视频你懂的 | 五月婷婷综合在线观看 | 日韩欧美xxxx | 欧美中文字幕第一页 | 国产一在线精品一区在线观看 | 91免费看片黄 | 中文字幕在线观看网址 | 久久精彩视频 | 亚洲一区精品二人人爽久久 | 婷婷中文字幕在线观看 | 天躁狠狠躁 | 99精品影视 | 四虎在线观看网址 | 欧美肥妇free | 国产福利精品一区二区 | 成人影片在线免费观看 | 97在线免费观看视频 | 五月婷亚洲 | 91视视频在线直接观看在线看网页在线看 | 亚洲视频1区2区 | 中文字幕在线观看2018 | 日韩 在线观看 | 婷婷激情在线 | 丁香婷婷综合激情五月色 | 51久久成人国产精品麻豆 | www五月| 91豆花在线 | 国产无限资源在线观看 | 色婷五月天 | 国产亚洲亚洲 | 超碰在线人人97 | 亚洲一区二区三区四区精品 | 五月天网站在线 | 免费毛片一区二区三区久久久 | 婷婷五月情 | 色婷婷电影网 | 色婷婷狠狠操 | 日韩欧美一区视频 | 欧美成年人在线视频 | 99精品在线免费视频 | 精品国产黄色片 | 精品视频免费 | 久草97| 国产精品免费视频网站 | 国产精品久久久久久爽爽爽 | 在线黄色av| 丁香婷婷激情国产高清秒播 | 色播六月天 | 久久免费美女视频 | 国产精品久久久久久久久久新婚 | 久久人91精品久久久久久不卡 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 五月天久久精品 | 国产精品12 | 97免费中文视频在线观看 | 免费亚洲婷婷 | 国产精品第7页 | 91福利视频网站 | 欧美激情综合五月 | 成人在线免费视频观看 | 91视频链接 | 狠狠色伊人亚洲综合网站野外 | 99精品视频免费在线观看 | 欧美地下肉体性派对 | 永久免费视频国产 | 日韩精品久久一区二区 | 国产黄色片免费 | 亚洲天堂香蕉 | 日本公妇在线观看高清 | 玖玖玖影院 | 久久99精品国产99久久6尤 | 超碰在线中文字幕 | 97综合网| 久久国内视频 | 97热在线观看 | 亚洲精品午夜久久久久久久 | 久久免费av电影 | 久草综合在线 | 久久久久久久久久久久99 | 国产一区在线视频播放 | 午夜丁香网| 91欧美视频网站 | 在线 高清 中文字幕 | 国产资源免费 | 美女福利视频网 | 午夜精品福利一区二区 | 天天干天天操av | 天天天色综合 | 久久久私人影院 | 在线观看一 | 97中文字幕| 色网站国产精品 | 免费在线观看日韩 | 国产成人久久精品77777 | 99精品在线观看视频 | 免费毛片一区二区三区久久久 | 久草网免费 | 国产特级毛片aaaaaa高清 | 韩国av免费在线观看 | 黄色国产在线观看 | 三级小视频在线观看 | 日韩三级不卡 | 69国产成人综合久久精品欧美 | 中文字幕高清在线 | 天天干,天天干 | 日韩超碰在线 | 欧美9999 | 综合激情网 | 一区二区三区免费在线观看 | 免费视频黄色 | 69av免费视频| 91丨九色丨蝌蚪丨老版 | 日韩欧美电影网 | 亚洲精品国产欧美在线观看 | 精品一区二区影视 | 久久精品www人人爽人人 | 五月婷婷播播 | 日韩欧美高清一区二区 | 久久久久草 | 国产在线精品区 | 天海冀一区二区三区 | 中文在线www | 久久综合久久综合九色 | 免费日韩av片 | 国产青春久久久国产毛片 | 欧美一级爽 | 亚洲最新在线视频 | 91免费日韩 | 成年人在线看片 | 中文字幕在线日 | 在线观看中文字幕2021 | 手机看片 | 久久精品美女视频 | www.五月婷婷| 日本精品一二区 | 亚洲观看黄色网 | 国产精品久久久久久高潮 | 亚洲美女在线国产 | 国产美女精品视频 | 国产精品网站 | www久久99| 中文字幕视频免费观看 | 欧美黑人xxxx猛性大交 | 久久女同性恋中文字幕 | 视频国产 | 中字幕视频在线永久在线观看免费 | 欧美做受高潮电影o | 天天色天天综合网 | 天天干天天操天天操 | 亚洲 欧洲 国产 精品 | 久久人人爽av| 在线观看黄色av | 久久久久久久久久久久国产精品 | 99爱这里只有精品 | 国产视频欧美视频 | 久久久久久久久久久久影院 | 91麻豆视频网站 | 国产中文字幕在线视频 | 国产免费观看久久 | 永久免费毛片在线观看 | 国产精品精 | 亚洲免费婷婷 | 亚洲免费精彩视频 | 国产精品久久久久久久午夜片 | 午夜在线日韩 | 在线色网站 | 亚洲激情六月 | 日本 在线 视频 中文 有码 | 91成人精品一区在线播放69 | 亚洲欧美激情精品一区二区 | 五月婷婷综合在线视频 | 国产精品96久久久久久吹潮 | 日韩专区av| 国产无套精品久久久久久 | 色在线免费 | 国产伦精品一区二区三区… | 在线播放 亚洲 | 亚洲黄色在线 | 日韩在线电影一区二区 | 精品国产乱码久久久久久浪潮 | 国产二区电影 | 日韩欧美在线观看一区二区三区 | 天天综合狠狠精品 | 国产区在线 | 国产一区二区在线免费观看 | 久久精品香蕉 | 狠狠色噜噜狠狠狠合久 | 天天射天天搞 |