Прошло много времени с тех пор, как я использовал mshtml, но разве интерфейс IHTMLElement2 не имеет метода close? Вы пытались это назвать?
Как долго цикл работал до того, как утечка стала очевидной?
Я посмотрю, смогу ли я покопаться в унаследованном здесь коде, использующем mshtml, и посмотрю, как разработчики выпустили объекты.
EDIT:
Старый код, который у нас здесь, вызывает закрытие HTMLDocument2, а затем освобождает объект com, как он есть.
Следует отметить, что метод ReleaseComObject вызывается в цикле, пока не вернет ноль. Это обеспечит освобождение всех упаковщиков и исходного объекта, здесь есть примечание .