狀況
請考慮下列情況:
-
您開發 web 瀏覽器控制項主應用程式或 ActiveX 控制項。
-
應用程式或 ActiveX 控制項參考該列舉程式物件,從集合物件介面的 HTML 網頁。若要建立這項功能,請參閱下列的指導方針︰
-
C + + 中,呼叫get__newEnum函式的集合物件介面來取得列舉值。 集合物件介面的範例是IHTMLElementCollection,而這通常會藉由呼叫IHTMLDocument2::get_all取得。
-
在 Visual Basic 中,這個步驟被執行 foreach 建構幕後集合 (例如,document.all 集合) 上。
-
-
您已安裝的 Internet Explorer 10 的電腦上執行的應用程式。
在這個案例中,就會發生記憶體遺漏。
注意因為 ActiveX 控制項使用更多的記憶體比原生的 HTML 項目,則記憶體遺漏會是更明顯,如果其中一個集合中的項目是 ActiveX 控制項。 例如,當您在 web 瀏覽器控制項主應用程式的函式中使用下列的 c + + 程式碼時,就會發生記憶體遺漏。在此情況下,如果其中一個網頁上的項目是 ActiveX 控制項遭到洩露大量的記憶體。 void CEnumLeakDlg::OnBnClicked(){ IDispatch* pDocDisp = m_web.get_Document(); IHTMLDocument2* pDoc = NULL; HRESULT hr = pDocDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pDoc); IHTMLElementCollection* pElColl = NULL; hr = pDoc->get_all(&pElColl); IUnknown* pEnum = NULL; hr = pElColl->get__newEnum(&pEnum); pEnum->Release(); pElColl->Release(); pDoc->Release(); pDocDisp->Release(); }解決方案
如果要解決這個問題,請安裝下列更新︰
2862772 MS13-059︰ 為 Internet Explorer 累積安全性更新︰ 2013 年 8 月 13,
更多的資訊
如需有關軟體更新術語的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
用來描述 Microsoft 軟體更新標準術語的編號 824684描述