Module: wine Branch: master Commit: 46964179419f312afe43ed844f40136a5783fa4f URL: http://source.winehq.org/git/wine.git/?a=commit;h=46964179419f312afe43ed844f...
Author: Huw Davies huw@codeweavers.com Date: Mon Nov 13 15:49:49 2006 +0000
msxml3: Support both v 2.x and 3.0 version independent clsids as well as the v 3.0 version dependent clsid.
---
dlls/msxml3/factory.c | 4 +++- dlls/msxml3/regsvr.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletions(-)
diff --git a/dlls/msxml3/factory.c b/dlls/msxml3/factory.c index 3d042bc..53d59d1 100644 --- a/dlls/msxml3/factory.c +++ b/dlls/msxml3/factory.c @@ -141,7 +141,9 @@ HRESULT WINAPI DllGetClassObject( REFCLS
TRACE("%s %s %p\n", debugstr_guid(rclsid), debugstr_guid(iid), ppv );
- if( IsEqualGUID( rclsid, &CLSID_DOMDocument ) ) + if( IsEqualGUID( rclsid, &CLSID_DOMDocument ) || /* Version indep. v 2.x */ + IsEqualGUID( rclsid, &CLSID_DOMDocument2 ) || /* Version indep. v 3.0 */ + IsEqualGUID( rclsid, &CLSID_DOMDocument30 ) ) /* Version dep. v 3.0 */ cf = (IClassFactory*) &domdoccf.lpVtbl;
if ( !cf ) diff --git a/dlls/msxml3/regsvr.c b/dlls/msxml3/regsvr.c index efdbd7d..3686590 100644 --- a/dlls/msxml3/regsvr.c +++ b/dlls/msxml3/regsvr.c @@ -31,6 +31,11 @@ #include "ole2.h" #include "msxml.h" #include "xmldom.h" #include "xmldso.h" +#include "msxml2.h" + +/* undef the #define in msxml2 so that we can access the v.2 version + independent CLSID as well as the v.3 one. */ +#undef CLSID_DOMDocument
#include "msxml_private.h"
@@ -529,6 +534,22 @@ static struct regsvr_coclass const cocla "Microsoft.XMLDOM", "1.0" }, + { &CLSID_DOMDocument2, + "XML DOM Document", + NULL, + "msxml3.dll", + "Both", + "Msxml2.DOMDocument", + "3.0" + }, + { &CLSID_DOMDocument30, + "XML DOM Document 3.0", + NULL, + "msxml3.dll", + "Both", + "Msxml2.DOMDocument", + "3.0" + }, { &CLSID_DOMFreeThreadedDocument, "Free threaded XML DOM Document", NULL, @@ -589,6 +610,16 @@ static struct progid const progid_list[] &CLSID_DOMDocument, "Microsoft.XMLDOM.1.0" }, + { "Msxml2.DOMDocument", + "XML DOM Document", + &CLSID_DOMDocument2, + "Msxml2.DOMDocument.3.0" + }, + { "Msxml2.DOMDocument.3.0", + "XML DOM Document 3.0", + &CLSID_DOMDocument30, + NULL + }, { "Microsoft.FreeThreadedXMLDOM", "Free threaded XML DOM Document", &CLSID_DOMFreeThreadedDocument,