Síntomas
Imagine el siguiente escenario:
-
Desarrollar una aplicación de host de control de explorador web o un control ActiveX.
-
La aplicación o el control ActiveX hace referencia al objeto de enumerador desde una interfaz de colección de una página HTML. Para crear esta funcionalidad, vea las instrucciones siguientes:
-
En C++, el enumerador se obtiene mediante una llamada a la función get__newEnum de una interfaz de colección. Un ejemplo de una interfaz de colección es IHTMLElementCollectiony normalmente se obtiene mediante una llamada a IHTMLDocument2::get_all.
-
En Visual Basic, este paso se realiza en segundo plano en una construcción de foreach sobre una colección (por ejemplo, la colección document.all).
-
-
Ejecute la aplicación en un equipo que tiene instalado Internet Explorer 10.
En este escenario, se produce una pérdida de memoria.
Nota: Dado que los controles ActiveX consumen más memoria de elementos nativos de HTML, la pérdida de memoria es más evidente si uno de los elementos de la colección es un control ActiveX.
Por ejemplo, se produce una pérdida de memoria cuando se utiliza el siguiente código de C++ en una función de una aplicación de host de control de explorador web. En esta situación, un gran volumen de memoria se pierde si uno de los elementos en la página Web es un control 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();
}
Solución
Para resolver este problema, instale la actualización siguiente:
2862772 MS13-059: actualización de seguridad acumulativa para Internet Explorer: 13 de agosto de 2013
Más información
Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft