Update September 10, 2009: With CMarkup release 11.2, during compile CMarkupMSXML imports the MSXML interface from msxml6.dll (since release 10.1 it defaulted to msxml3.dll, before that msxml.dll). If you would rather build your project using MSXML 4.0, define MARKUP_MSXML4.

Update December 17, 2008: With CMarkup release 10.1, CMarkupMSXML compiled with MSXML 3.0 or 4.0 or 6.0 will dynamically load the MSXML component available on the machine at runtime, it will try MSXML 6.0, then 3.0, then 4.0 then 5.0. That is, unless you compile with MARKUP_MSXML1 defined, in which case it will import MSXML 1.0 and at runtime load MSXML 1.0 only.

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" line in MarkupMSXML.h.

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.

See also:

MSXML Wrapper CMarkupMSXML