Sintomas
Considere o seguinte cenário:
-
Você desenvolve um aplicativo de host do controle de navegador da web ou um controle ActiveX.
-
O aplicativo ou controle ActiveX faz referência ao objeto enumerador de uma interface de coleção de uma página HTML. Para criar essa funcionalidade, consulte as diretrizes a seguir:
-
No C++, o enumerador é obtido chamando a função get__newEnum de uma interface de coleção. Um exemplo de uma interface de coleção é IHTMLElementCollectione isso geralmente é obtido chamando IHTMLDocument2::get_all.
-
No Visual Basic, essa etapa é executada nos bastidores uma construção foreach em uma coleção (por exemplo, a coleção de document.all).
-
-
Execute o aplicativo em um computador que tenha instalado o Internet Explorer 10.
Nessa situação, ocorre um vazamento de memória.
Observação: Como os controles ActiveX consomem mais memória do que elementos HTML nativos, o vazamento de memória é mais evidente se um dos elementos da coleção é um controle ActiveX.
Por exemplo, um vazamento de memória ocorre quando você usar o seguinte código C++ em uma função de um aplicativo de host do controle de navegador da web. Nessa situação, um grande volume de memória é perdido se um dos elementos na página da Web é um controle 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();
}
Resolução
Para resolver esse problema, instale a seguinte atualização:
2862772 MS13-059: Actualização de segurança cumulativa para o Internet Explorer: 13 de agosto de 2013
Mais informações
Para obter mais informações sobre a terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
824684 descrição da terminologia padrão usada para descrever as atualizações de software