• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 248
  • Last Modified:

DLL Differences

I am somewhat confused by the difference between Microsoft.XMLDOM and MSXML3.DOMDocument.

I have installed MSXML3 nad this is what I am supposed to be using.  If I do CreateObject("MSXML3.DOMDocument") I get an invalid ProgID though.  My main question though is what the difference between these two DLLs is.

Thanks

Dave
0
daveamour
Asked:
daveamour
1 Solution
 
RobinPatraCommented:
These are the methods of different parsers .
The Microsoft XML parser comes with Microsoft Internet Explorer 5.0.

Check the following url plzz

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk30/htm/xmrefguidprogidinformation.asp

************************************************
This is a bit explanation for u



Installing MSXML

You have two options for installing MSXML 3: side-by-side for use with earlier versions, and replacement to blow old versions away and clean up references to them in the registry. It also includes a tool, XMLinst.exe, that lets you switch back and forth almost at will.

In a move that is surprisingly rare for the company who instigated DLL Hell, MSXML 3.0 is implement both in a DLL with a new name, MSXML3.dll versus the older MSXML.dll, and a new library name part of the ProgID: MSXML2 versus the older MSXML. No word yet whether the discrepancy between the 2 and 3 in the names will be cleaned up before release.

Side-by-Side

MSXML 3.0 is designed to coexist with your current version of MSXML. After installation, in the registry all the old MSXML-related entries still point to MSXML.dll, not the newer file, MSXML3.dll. New entries have been added for the new features. To use the new features in this side-by-side installation, you will have to explicitly disambiguate references to the objects that you want, lest your applications become confused:

 

var xmlDoc = new ActiveXObject("MSXML2.DOMDocument");

 

Retrievably Replaced

Since the new component is backward compatible, with new names in all the right places, it's a bit more difficult to install the new version as a replacement. All the detritus will remain in the registry unless you painstakingly remove it; regsvr32 can help.

But you may also want to fool around with the new version before committing it. A utility, XMLinst.exe, is installed with MSXML 3.0 in your SYSTEM32 directory. If you run the utility without any command line parameters, all your old MSXML registry entries are replaced by references to MSXML 2.6. If you want to remove all entries created by a particular DLL, use this command line:

 

xmlinst -u dllname

where dllname is either msxml or msxml3.

 

If you want to go back to the previous version, this line does the trick:

 

xmlinst msxml.dll

 

The dll named on that command line (which can take a fully-qualified path) will replace all entries created by MSXML with references to the named DLL.




***************************************************

Robin
0
 
daveamourAuthor Commented:
Ok thanks very much.  One other question though if thats ok.  I have downloaded MSXML3 and ran the install program but whenever I try and use the DLL I get an error message suggesting that the DLL isn't registered.  Any ideas?

Thanks

Dave
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now