This factors out the common code of the xml parsers to use a more exception friendly class with improved error reporting when there's a problem with the xml (the later being useful for the option of having a docked window), and make appropriate use of CComPtr
It also reintroduces the double catch so that failures with a command don't stop other commands being run for the extension whereas other errors (very probably writing a temp file) will still get caught and logged rather than resulting in an uncaught exception.
Finally I added .h to the source code extensions as the header view in the project was removed.
Note: The comparison works better with white space ignored.
This factors out the common code of the xml parsers to use a more exception friendly class with improved error reporting when there's a problem with the xml (the later being useful for the option of having a docked window), and make appropriate use of CComPtr
It also reintroduces the double catch so that failures with a command don't stop other commands being run for the extension whereas other errors (very probably writing a temp file) will still get caught and logged rather than resulting in an uncaught exception.
Finally I added .h to the source code extensions as the header view in the project was removed.
Note: The comparison works better with white space ignored.