Alexandre Julliard : include: Correctly define the msxml typelib by directly including xmldom. idl and xmldso.idl.

Alexandre Julliard julliard at winehq.org
Tue Dec 21 14:32:18 CST 2010


Module: wine
Branch: master
Commit: f6b6c7bade8fe07bb8d0065be55686093ea5bc23
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f6b6c7bade8fe07bb8d0065be55686093ea5bc23

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Dec 21 11:40:04 2010 +0100

include: Correctly define the msxml typelib by directly including xmldom.idl and xmldso.idl.

---

 .gitignore                  |    2 --
 dlls/gameux/gameexplorer.c  |    1 -
 dlls/mscoree/mscoree_main.c |    2 --
 dlls/msxml3/factory.c       |    1 -
 dlls/msxml3/regsvr.c        |    2 --
 dlls/msxml3/tests/domdoc.c  |    1 -
 dlls/msxml3/tests/schema.c  |    1 -
 dlls/msxml3/tests/xmlelem.c |    1 -
 dlls/msxml3/uuid.c          |    2 --
 dlls/uuid/uuid.c            |    2 --
 include/Makefile.in         |    5 +++--
 include/msxml.idl           |   17 +++++++++++++++++
 include/msxml2.idl          |    5 +++--
 include/msxml6.idl          |    5 +++--
 include/xmldom.h            |   20 ++++++++++++++++++++
 include/xmldom.idl          |    6 +++---
 include/xmldso.idl          |    3 ---
 tools/make_makefiles        |    2 ++
 18 files changed, 51 insertions(+), 27 deletions(-)

diff --git a/.gitignore b/.gitignore
index 95b9fe9..31b5dcb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -252,8 +252,6 @@ include/wine/winedxgi.h
 include/winsxs.h
 include/wtypes.h
 include/wuapi.h
-include/xmldom.h
-include/xmldso.h
 include/xmllite.h
 libs/wpp/ppl.yy.c
 libs/wpp/ppy.tab.c
diff --git a/dlls/gameux/gameexplorer.c b/dlls/gameux/gameexplorer.c
index ea9307b..096e48e 100644
--- a/dlls/gameux/gameexplorer.c
+++ b/dlls/gameux/gameexplorer.c
@@ -23,7 +23,6 @@
 
 #include "ole2.h"
 #include "sddl.h"
-#include "xmldom.h"
 
 #include "gameux.h"
 #include "gameux_private.h"
diff --git a/dlls/mscoree/mscoree_main.c b/dlls/mscoree/mscoree_main.c
index e63a1db..1f2cfb0 100644
--- a/dlls/mscoree/mscoree_main.c
+++ b/dlls/mscoree/mscoree_main.c
@@ -32,8 +32,6 @@
 #include "ole2.h"
 #include "ocidl.h"
 #include "shellapi.h"
-#include "xmldom.h"
-#include "xmldso.h"
 
 #include "initguid.h"
 #include "msxml2.h"
diff --git a/dlls/msxml3/factory.c b/dlls/msxml3/factory.c
index 4e7d29e..8ad1abc 100644
--- a/dlls/msxml3/factory.c
+++ b/dlls/msxml3/factory.c
@@ -29,7 +29,6 @@
 #include "winuser.h"
 #include "ole2.h"
 #include "msxml.h"
-#include "xmldom.h"
 #include "msxml2.h"
 
 /* undef the #define in msxml2 so that we can access the v.2 version
diff --git a/dlls/msxml3/regsvr.c b/dlls/msxml3/regsvr.c
index ca1cc12..7097b41 100644
--- a/dlls/msxml3/regsvr.c
+++ b/dlls/msxml3/regsvr.c
@@ -34,8 +34,6 @@
 #include "winerror.h"
 #include "ole2.h"
 #include "msxml.h"
-#include "xmldom.h"
-#include "xmldso.h"
 #include "msxml6.h"
 
 /* undef the #define in msxml2 so that we can access the v.2 version
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 6c2bf25..d821bac 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -26,7 +26,6 @@
 #include "windows.h"
 #include "ole2.h"
 #include "objsafe.h"
-#include "xmldom.h"
 #include "msxml2.h"
 #include "msxml2did.h"
 #include "dispex.h"
diff --git a/dlls/msxml3/tests/schema.c b/dlls/msxml3/tests/schema.c
index 9e8494a..2b20603 100644
--- a/dlls/msxml3/tests/schema.c
+++ b/dlls/msxml3/tests/schema.c
@@ -26,7 +26,6 @@
 #include "initguid.h"
 #include "windows.h"
 #include "ole2.h"
-#include "xmldom.h"
 #include "msxml2.h"
 #include "dispex.h"
 
diff --git a/dlls/msxml3/tests/xmlelem.c b/dlls/msxml3/tests/xmlelem.c
index f38d515..e591494 100644
--- a/dlls/msxml3/tests/xmlelem.c
+++ b/dlls/msxml3/tests/xmlelem.c
@@ -24,7 +24,6 @@
 
 #include "windows.h"
 #include "ole2.h"
-#include "xmldom.h"
 #include "msxml2.h"
 #include "ocidl.h"
 
diff --git a/dlls/msxml3/uuid.c b/dlls/msxml3/uuid.c
index a3c7965..4abbe5e 100644
--- a/dlls/msxml3/uuid.c
+++ b/dlls/msxml3/uuid.c
@@ -35,8 +35,6 @@
  * First include the version 2 headers so that we don't redefine their
  * uuids - they're already in libuuid
  */
-#include "xmldom.h"
-#include "xmldso.h"
 #include "msxml.h"
 
 /* Now we can initialize the rest of the uuids */
diff --git a/dlls/uuid/uuid.c b/dlls/uuid/uuid.c
index f8d19e2..8df7334 100644
--- a/dlls/uuid/uuid.c
+++ b/dlls/uuid/uuid.c
@@ -63,8 +63,6 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
 #include "mshtml.h"
 #include "mshtmhst.h"
 #include "richole.h"
-#include "xmldom.h"
-#include "xmldso.h"
 #include "downloadmgr.h"
 #include "objsel.h"
 #include "hlink.h"
diff --git a/include/Makefile.in b/include/Makefile.in
index ae0e842..d31bd74 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -101,8 +101,6 @@ PUBLIC_IDL_H_SRCS = \
 	winsxs.idl \
 	wtypes.idl \
 	wuapi.idl \
-	xmldom.idl \
-	xmldso.idl \
 	xmllite.idl
 
 IDL_TLB_SRCS = \
@@ -549,7 +547,10 @@ SRCDIR_INCLUDES = \
 	wtsapi32.h \
 	xcmc.h \
 	xinput.h \
+	xmldom.h \
+	xmldom.idl \
 	xmldomdid.h \
+	xmldso.idl \
 	xmldsodid.h \
 	zmouse.h
 
diff --git a/include/msxml.idl b/include/msxml.idl
index 8c2496b..62dbcfa 100644
--- a/include/msxml.idl
+++ b/include/msxml.idl
@@ -18,6 +18,8 @@
  */
 
 #include <msxmldid.h>
+#include <msxml2did.h>
+#include <idispids.h>
 
 #ifndef DO_NO_IMPORTS
 import "unknwn.idl";
@@ -27,6 +29,19 @@ import "oaidl.idl";
 #endif
 
 [
+    uuid(d63e0ce2-a0a2-11d0-9c02-00c04fc99c8e),
+    version(2.0),
+    helpstring("Microsoft XML, v2.0")
+]
+library MSXML
+{
+
+importlib("stdole2.tlb");
+
+#include <xmldom.idl>
+#include <xmldso.idl>
+
+[
 local,
 object,
 odl,
@@ -334,3 +349,5 @@ coclass XMLDocument
 {
     [default] interface IXMLDocument;
 }
+
+} /* Library MSXML */
diff --git a/include/msxml2.idl b/include/msxml2.idl
index d91ba47..c5738d2 100644
--- a/include/msxml2.idl
+++ b/include/msxml2.idl
@@ -107,7 +107,8 @@ interface ISchemaNotation;
 cpp_quote("#define DOMDocument DOMDocument2")
 cpp_quote("#define CLSID_DOMDocument CLSID_DOMDocument2")
 
-cpp_quote("#ifndef __WIDL_XMLDOM_H")
+cpp_quote("#ifndef __MSXML_DOMNODETYPE_DEFINED")
+cpp_quote("#define __MSXML_DOMNODETYPE_DEFINED")
 typedef enum tagDOMNodeType 
 {  
     NODE_INVALID  		= 0,
@@ -124,7 +125,7 @@ typedef enum tagDOMNodeType
     NODE_DOCUMENT_FRAGMENT 	= 11,
     NODE_NOTATION 		= 12
 } DOMNodeType;
-cpp_quote("#endif   /* __WIDL_XMLDOM_H */")
+cpp_quote("#endif")
 
 typedef enum _SOMITEMTYPE
 {
diff --git a/include/msxml6.idl b/include/msxml6.idl
index 45cef98..565f65e 100644
--- a/include/msxml6.idl
+++ b/include/msxml6.idl
@@ -113,7 +113,8 @@ interface ISchemaNotation;
 cpp_quote("#define DOMDocument DOMDocument2")
 cpp_quote("#define CLSID_DOMDocument CLSID_DOMDocument2")
 
-cpp_quote("#ifndef __WIDL_XMLDOM_H")
+cpp_quote("#ifndef __MSXML_DOMNODETYPE_DEFINED")
+cpp_quote("#define __MSXML_DOMNODETYPE_DEFINED")
 typedef enum tagDOMNodeType
 {
     NODE_INVALID  		= 0,
@@ -130,7 +131,7 @@ typedef enum tagDOMNodeType
     NODE_DOCUMENT_FRAGMENT 	= 11,
     NODE_NOTATION 		= 12
 } DOMNodeType;
-cpp_quote("#endif   /* __WIDL_XMLDOM_H */")
+cpp_quote("#endif")
 
 typedef enum _SOMITEMTYPE
 {
diff --git a/include/xmldom.h b/include/xmldom.h
new file mode 100644
index 0000000..b774b30
--- /dev/null
+++ b/include/xmldom.h
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2010 Alexandre Julliard
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/* xmldom.idl is included by msxml.idl so it doesn't need a stand-alone header */
+#include <msxml.h>
diff --git a/include/xmldom.idl b/include/xmldom.idl
index d5d51ff..d47c06e 100644
--- a/include/xmldom.idl
+++ b/include/xmldom.idl
@@ -19,8 +19,6 @@
 #include <xmldomdid.h>
 #include <idispids.h>
 
-import "ocidl.idl";
-
 interface IXMLDOMImplementation;
 interface IXMLDOMNode;
 interface IXMLDOMDocumentFragment;
@@ -39,8 +37,9 @@ interface IXMLDOMNotation;
 interface IXMLDOMEntity;
 interface IXMLDOMEntityReference;
 interface IXMLDOMParseError;
-interface IXTLRuntime;
 
+cpp_quote("#ifndef __MSXML_DOMNODETYPE_DEFINED")
+cpp_quote("#define __MSXML_DOMNODETYPE_DEFINED")
 typedef enum tagDOMNodeType {
     NODE_INVALID,
     NODE_ELEMENT,
@@ -56,6 +55,7 @@ typedef enum tagDOMNodeType {
     NODE_DOCUMENT_FRAGMENT,
     NODE_NOTATION
 } DOMNodeType;
+cpp_quote("#endif")
 
 [
 local,
diff --git a/include/xmldso.idl b/include/xmldso.idl
index 14f66a1..c203422 100644
--- a/include/xmldso.idl
+++ b/include/xmldso.idl
@@ -16,9 +16,6 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-import "wtypes.idl";
-import "ocidl.idl";
-
 #include <idispids.h>
 #include <xmldsodid.h>
 
diff --git a/tools/make_makefiles b/tools/make_makefiles
index 29cb8d6..4c00814 100755
--- a/tools/make_makefiles
+++ b/tools/make_makefiles
@@ -156,6 +156,8 @@ my %private_idl_headers = (
     "rstloc.idl" => 1,
     "sesprp.idl" => 1,
     "vmrender.idl" => 1,
+    "xmldom.idl" => 1,
+    "xmldso.idl" => 1,
     "wine/wined3d.idl" => 1,
     "wine/winedxgi.idl" => 1,
 );




More information about the wine-cvs mailing list