Microsoft proporciona una completa librería de componentes COM dentro de mshtml.dll, como una extensión de servicios ISAPI. En MSDN, busca las interfaces prefijadas con IHTML, como IHTMLAreaElement o IHTMLButtonElement.
Si COM es muy fastidioso para tí, he recibido buenas recomendaciones de HTML Tidy, en http://sourceforge.net/projects/tidy/. Quizás en SourceForge.net encuentres más.