From f6b6c7bade8fe07bb8d0065be55686093ea5bc23 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 21 Dec 2010 11:40:04 +0100 Subject: [PATCH] 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(-) create mode 100644 include/xmldom.h diff --git a/.gitignore b/.gitignore index 95b9fe96b65..31b5dcb7e0e 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 ea9307bcff0..096e48e7680 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 e63a1dbfcfb..1f2cfb03785 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 4e7d29e919e..8ad1abcbd7b 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 ca1cc12cb88..7097b41a04c 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 6c2bf253b6d..d821bacb1fc 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 9e8494a2c1b..2b20603891e 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 f38d515c4e7..e591494a1fa 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 a3c7965690e..4abbe5e4763 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 f8d19e24471..8df7334567c 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 ae0e842b75d..d31bd74aa4f 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 8c2496b2abe..62dbcfa7b67 100644 --- a/include/msxml.idl +++ b/include/msxml.idl @@ -18,6 +18,8 @@ */ #include +#include +#include #ifndef DO_NO_IMPORTS import "unknwn.idl"; @@ -26,6 +28,19 @@ import "objidl.idl"; import "oaidl.idl"; #endif +[ + uuid(d63e0ce2-a0a2-11d0-9c02-00c04fc99c8e), + version(2.0), + helpstring("Microsoft XML, v2.0") +] +library MSXML +{ + +importlib("stdole2.tlb"); + +#include +#include + [ local, object, @@ -334,3 +349,5 @@ coclass XMLDocument { [default] interface IXMLDocument; } + +} /* Library MSXML */ diff --git a/include/msxml2.idl b/include/msxml2.idl index d91ba4761a7..c5738d2c24b 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 45cef98825f..565f65ec1f0 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 00000000000..b774b307c2f --- /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 diff --git a/include/xmldom.idl b/include/xmldom.idl index d5d51ff2588..d47c06e1bfa 100644 --- a/include/xmldom.idl +++ b/include/xmldom.idl @@ -19,8 +19,6 @@ #include #include -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 14f66a1377e..c203422463c 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 #include diff --git a/tools/make_makefiles b/tools/make_makefiles index 29cb8d64720..4c0081438a6 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, );