Symptomen
Overweeg het volgende scenario:
-
Ontwikkelen van een web browser controle host-toepassing of een ActiveX-besturingselement.
-
De toepassing of het ActiveX-besturingselement verwijst naar het enumerator-object uit een collectie interface van een HTML-pagina. Zie de volgende richtlijnen voor het maken van deze functionaliteit:
-
De enumerator in C++ wordt verkregen door het aanroepen van de functie get__newEnum van de interface van een. Een voorbeeld van de interface van een IHTMLElementCollectionis en dit wordt meestal opgehaald door het aanroepen van IHTMLDocument2::get_all.
-
Deze stap uitgevoerd in Visual Basic op een verzameling (bijvoorbeeld de collectie document.all) achter de schermen in een foreach-constructie.
-
-
U kunt de toepassing uitvoert op een computer met Internet Explorer 10 geïnstalleerd.
In dit scenario kan optreedt een geheugenlek.
Opmerking Omdat ActiveX-besturingselementen meer geheugen dan de oorspronkelijke HTML-elementen gebruiken, is het geheugenlek duidelijker als een van de elementen in de collectie een ActiveX-besturingselement is.
Bijvoorbeeld geheugenlek een wanneer u de volgende C++-code in een functie van een web browser control-hosttoepassing gebruiken. In dit geval is een grote hoeveelheid geheugen lekken als een van de elementen op de webpagina die een ActiveX-besturingselement is.
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();
}
Oplossing
U kunt dit probleem oplossen door de volgende update te installeren:
2862772 MS13-059: cumulatieve beveiligingsupdate voor Internet Explorer: 13 augustus 2013
Meer informatie
Voor meer informatie over terminologie voor software-updates klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
824684 beschrijving van de standaardterminologie die wordt gebruikt om software-updates voor Microsoft te beschrijven