如何?自訂的URL協議

來源:互聯網
上載者:User
IURLSearchHook
        該介面被瀏覽器用來轉換一個未知的URL協議地址。當瀏覽器企圖去開啟一個未知協議的URL地址時,瀏覽器首先嘗試從這個地址得到當前的協議,如果不成功,瀏覽器將建立在系統中註冊的URL Search Hook對象並調用每一個對象的Translate方法,直到地址被轉換或所有的URL Search Hook都嘗試過。  IURLSearchHook的方法HRESULT Translate( LPWSTR lpwszSearchURL, DWORD cchBufferSize  );             
參數:
lpwszSearchURL
寬字元的緩衝區地址,方法被調用時。緩衝區內儲存著瀏覽器要解析的URL地址。
如果方法返回S_OK,則緩衝區內儲存被解析(修改)的URL地址。
CchButterSize
第一個參數指向的緩衝區的大小,以位元組計
 
傳回值:
  S_OK: URL被成功轉換,lpwszSearchURL包含轉換後的URL,瀏覽器將不會調用其它的URL Search Hook對象。
  S_FALSE: URL被部分處理,但仍然需要解析。LpwszSearchURL包含被處理後的
URL,瀏覽器將繼續調用其它URL Search Hook對象。
  E_FAIL: URL無法轉換,LpwszSearchURL沒有被修改,瀏覽器將繼續調用其它URL Search Hook對象。
 
 
     例如,使用者在IE地址欄輸入一個網址:www.csdn.net。這個網址解析成功,就會跳轉到該網站。如果不存在這個網域名稱,那麼IE就會搜尋系統上註冊的URL Search Hook對象載入並調用它的Translate。如果這個方法返回S_OK,則將返回被解析(修改)的URL。瀏覽器將開啟此URL。                                       你可以利用這個對象,當使用者試圖開啟一個不存在的網站時把URL轉向另一個網站。或者,也可以將使用者在地址欄輸入的文字以關鍵字形式開啟某個搜尋引摯,如在地址欄輸入MP3,就用GOOGLE去搜尋MP3。或者,做一個中文實名庫,把瀏覽器轉進來的URL到庫裡匹配,匹配成功後返回正確的URL。   如何註冊一個URL Search Hook對象     要實現一個URL Search Hook,必須在註冊表的HKEY_LOCAL_MACHINE/Software/Microsoft/Internet Explorer/UrlSearchHooks位置上,建立一個名稱為對象CLISID的字串的值。註冊完可能要重啟後才能用。 註:當URL以 xxx:xxx 的形式時,即使解析不成功也不會調用URL Search Hook。                                  只適用於MS-IE瀏覽器和小數瀏覽器。例子參考:http://www.codeguru.com/Cpp/I-N/ieprogram/article.php/c1243

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.