MSHTML Pro's
The mshtml library provides a powerful set of interfaces to extend HtmlDocuments and HtmlElements that fully implement the MSHTML DOM and the browsing model generally.
Some of the common interfaces include IHTMLDocument, IHTMLDocument2, IHTMLDocument3, IHTMLElement, IHTMLElement2, IHTMLElementCollection
MSHTML is ideal for editing and content manipulation and very easy to use.
MSHTML allows you to manipulate and access content using the HTML DOM standard (IHTMLDomNode etc)
MSHTML provides the ability to extend the document loaded to support features such a Edit Glyphs
MSHTML classes can be used to create custom browser controls, componentsand applications
MSHTML Con's
MSHTML is problematic in that it requires full trust to run.
MSHTML needs to be deployed with the solution to avoid problems
MSHTML will require you to Marshal __ComObjects where there is no managed type equivelent
MSHTML converts page content to a very basic and non standard format
Quick Summary
Although the Full Trust issue does bring with it obvious limitations, theMSHTML library is a valued asset, all other drawbacks can be challenged easily with robust solutions rather than workarounds.
Used in conjuction with custom XML parsers the possibilities are endless.
The managed Html objects would seem a wise choice for speed and simplicity and can be used extensively in similar applications as to those using MSHTML.
I will extend this outline when I have more time,
Steve