2010-07-13 107 views
2

我根據這個教程寫了一個BHO: http://www.codeproject.com/KB/cs/Attach_BHO_with_C_.aspxBHO內存泄露

GetSiteSetSite是相同的教程上市。我正在添加/刪除OnDocumentComplete處理程序並在IObjectWithSite內部設置SHDocVW.WebBrowser webBrowser SetSite函數

出於調試目的我已經刪除了除基本功能以外的所有內容。這是我的OnDocumentComplete處理程序。

public void OnDocumentComplete(object pDisp, ref object URL) 
    { 
     if (true) 
     { 

      HTMLDocument document; 
      document = (HTMLDocument)webBrowser.Document; 
      /*need to do some stuff here to the doc*/ 
      //then free up script references somehow? 
     } 
     return; 
    } 

當我附上我的VS2008調試器的IE實例,我發現所有的加載.js文件,由各自的窗口後,堅持圍繞/分頁關閉。如果我將OnDocumentComplete中的條件設置爲false(或禁用我的BHO),泄漏消失。我需要在mshtml.HTMLDocument上做更多的清理工作嗎?謝謝!

+1

爲什麼你需要關閉文檔?是不是你想要在瀏覽器中顯示的文檔?順便說一句,將局部變量設置爲null在這裏沒有任何區別。 – 2010-07-13 21:41:11

+0

我想我不知道。我假設有一個參考掛在這些.js文件,這就是爲什麼他們沒有脫落關閉頁面時。你是對的,如果我不調用document.close()或將文檔設置爲null,則沒有改變。 – Pete 2010-07-13 22:06:35

回答