Compiling CMarkupMSXML with MSXML 4.0
The CMarkup project release 6.5 comes with debug and release build options for MSXML 4.0. This is the same as the MSXML build, except that MARKUP_MSXML4 is defined in addition to MARKUP_MSXML. The MARKUP_MSXML4 define only affects the #import "msxml4.dll" and CreateInstance( __uuidof(MSXML2::DOMDocument40)) lines in MarkupMSXML.h and MarkupMSXML.cpp respectively.
You need to download MSXML4 if your machine does not have it. At the time of writing this the latest version at MSDN Downloads is "MSXML 4.0 Service Pack 1 (Microsoft XML Core Services)." After installing it, you may need to copy the files in the MSXML 4.0\inc folder into your appropriate Microsoft Visual Studio\VC98\include or Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include folder, and the corresponding lib file to the lib folder as well.
In Visual Studio 6.0 I had to #include <msxml2.h> above the #import statement in MarkupMSXML.h to avoid the following compiler errors:
msxml4.tli(49) : error C2143: syntax error : missing ';' before 'tag::id'
msxml4.tli(49) : error C2433: 'DOMNodeType' : 'inline' not permitted on data declarations
msxml4.tli(49) : error C2501: 'DOMNodeType' : missing storage-class or type specifiers
msxml4.tli(49) : fatal error C1004: unexpected end of file found
If you leave this #include in Visual Studio .NET it produces compiler warnings, so there is an #if _MFC_VER < 0x0700 preprocessor directive so that the msxml2.h file is only included in 6.0.
