Huw Davies : msxml3: Support both v 2.x and 3.
0 version independent clsids as well as the v 3.0 version dependent
clsid.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Nov 14 05:14:23 CST 2006
Module: wine
Branch: master
Commit: 46964179419f312afe43ed844f40136a5783fa4f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=46964179419f312afe43ed844f40136a5783fa4f
Author: Huw Davies <huw at 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,
More information about the wine-cvs
mailing list