當您在應用程式中使用列舉值物件的 Internet Explorer 10 的記憶體遺漏

狀況

請考慮下列情況:

  • 您開發 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描述

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×