From d1c07d11869764c85693b83b2a579e1147a30f60 Mon Sep 17 00:00:00 2001
From: Alexandre Julliard <julliard@winehq.org>
Date: Tue, 21 Dec 2010 12:17:31 +0100
Subject: [PATCH] include: Add a couple of missing interfaces in msxml2.idl.

---
 include/msxml2.idl  | 106 ++++++++++++++++++++++++++++++++++++++++++++
 include/msxml2did.h |  46 +++++++++++++++++++
 2 files changed, 152 insertions(+)

diff --git a/include/msxml2.idl b/include/msxml2.idl
index c5738d2c24b..9d49f469df9 100644
--- a/include/msxml2.idl
+++ b/include/msxml2.idl
@@ -255,6 +255,85 @@ typedef enum _SCHEMATYPEVARIETY
     SCHEMATYPEVARIETY_UNION     =  2,
 } SCHEMATYPEVARIETY;
 
+[
+local,
+object,
+odl,
+dual,
+oleautomation,
+uuid(65725580-9b5d-11d0-9bfe-00c04fc99c8e)
+]
+interface IXMLElementCollection : IDispatch
+{
+    [propput, id(DISPID_XMLELEMENTCOLLECTION_LENGTH)]
+    HRESULT length( [in] LONG v );
+
+    [propget, id(DISPID_XMLELEMENTCOLLECTION_LENGTH)]
+    HRESULT length( [retval, out] LONG *p );
+
+    [propget, id(DISPID_XMLELEMENTCOLLECTION_NEWENUM)]
+    HRESULT _newEnum( [retval, out] IUnknown ** ppUnk );
+
+    [id(DISPID_XMLELEMENTCOLLECTION_ITEM)]
+    HRESULT item(
+            [optional, in] VARIANT var1,
+            [optional, in] VARIANT var2,
+            [retval, out] IDispatch ** ppDisp );
+}
+
+[
+local,
+object,
+uuid(3f7f31ac-e15f-11d0-9c25-00c04fc99c8e)
+]
+interface IXMLElement : IDispatch
+{
+    [propget, id(DISPID_XMLELEMENT_TAGNAME)]
+    HRESULT tagName( [retval, out] BSTR *p);
+
+    [propput, id(DISPID_XMLELEMENT_TAGNAME)]
+    HRESULT tagName( [in] BSTR p );
+
+    [propget, id(DISPID_XMLELEMENT_PARENT)]
+    HRESULT parent( [retval, out] IXMLElement **parent );
+
+    [id(DISPID_XMLELEMENT_SETATTRIBUTE)]
+    HRESULT setAttribute(
+            [in] BSTR strPropertyName,
+            [in] VARIANT PropertyValue );
+
+    [id(DISPID_XMLELEMENT_GETATTRIBUTE)]
+    HRESULT getAttribute(
+            [in] BSTR strPropertyName,
+            [retval, out] VARIANT *PropertyValue );
+
+    [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE)]
+    HRESULT removeAttribute(
+            [in] BSTR strPropertyName );
+
+    [propget, id(DISPID_XMLELEMENT_CHILDREN)]
+    HRESULT children( [retval, out] IXMLElementCollection **p );
+
+    [propget, id(DISPID_XMLELEMENT_TYPE)]
+    HRESULT type( [retval, out] LONG *p );
+
+    [propget, id(DISPID_XMLELEMENT_TEXT)]
+    HRESULT text( [retval, out] BSTR *p );
+
+    [propput, id(DISPID_XMLELEMENT_TEXT)]
+    HRESULT text( [in] BSTR p );
+
+    [id(DISPID_XMLELEMENT_ADDCHILD)]
+    HRESULT addChild(
+            [in] IXMLElement *pChildElem,
+            [in] LONG lIndex,
+            [in] LONG lreserved );
+
+    [id(DISPID_XMLELEMENT_REMOVECHILD)]
+    HRESULT removeChild(
+            [in] IXMLElement *pChildElem );
+}
+
 [
 local,
 object,
@@ -1111,6 +1190,33 @@ interface IXTLRuntime : IXMLDOMNode
 
 }
 
+[
+local,
+object,
+odl,
+dual,
+oleautomation,
+uuid(310afa62-0575-11d2-9ca9-0060b0ec3d39),
+pointer_default(unique)
+]
+interface IDSOControl : IDispatch
+{
+	[propget,id(DISPID_XMLDSO_DOCUMENT)]
+        HRESULT XMLDocument([out, retval] IXMLDOMDocument** ppDoc);
+
+	[propput,id(DISPID_XMLDSO_DOCUMENT)]
+        HRESULT XMLDocument([in] IXMLDOMDocument* ppDoc);
+
+	[propget,id(DISPID_XMLDSO_JAVADSOCOMPATIBLE)]
+        HRESULT JavaDSOCompatible([out, retval] BOOL* fJavaDSOCompatible);
+
+	[propput,id(DISPID_XMLDSO_JAVADSOCOMPATIBLE)]
+        HRESULT JavaDSOCompatible([in]  BOOL fJavaDSOCompatible);
+
+	[propget, id(DISPID_READYSTATE)]
+        HRESULT readyState([out, retval] long *state);
+}
+
 [
     uuid(3efaa427-272f-11d2-836f-0000f87a7782)
 ]
diff --git a/include/msxml2did.h b/include/msxml2did.h
index 1aae2a7db1d..e9dbeb84e07 100644
--- a/include/msxml2did.h
+++ b/include/msxml2did.h
@@ -20,6 +20,52 @@
 #ifndef __MSXML2DID_H__
 #define __MSXML2DID_H__
 
+#define DISPID_XOBJ_MIN                     0x10000
+#define DISPID_XOBJ_MAX                     0x1FFFF
+#define DISPID_XOBJ_BASE                    0x10000
+
+#define DISPID_XMLELEMENTCOLLECTION         0x10000
+#define DISPID_XMLELEMENTCOLLECTION_LENGTH  0x10001
+#define DISPID_XMLELEMENTCOLLECTION_NEWENUM DISPID_NEWENUM
+#define DISPID_XMLELEMENTCOLLECTION_ITEM    0x10003
+
+#define DISPID_XMLDOCUMENT                  0x10064
+#define DISPID_XMLDOCUMENT_ROOT             0x10065
+#define DISPID_XMLDOCUMENT_FILESIZE         0x10066
+#define DISPID_XMLDOCUMENT_FILEMODIFIEDDATE 0x10067
+#define DISPID_XMLDOCUMENT_FILEUPDATEDDATE  0x10068
+#define DISPID_XMLDOCUMENT_URL              0x10069
+#define DISPID_XMLDOCUMENT_MIMETYPE         0x1006a
+#define DISPID_XMLDOCUMENT_READYSTATE       0x1006b
+#define DISPID_XMLDOCUMENT_CREATEELEMENT    0x1006c
+#define DISPID_XMLDOCUMENT_CHARSET          0x1006d
+#define DISPID_XMLDOCUMENT_VERSION          0x1006e
+#define DISPID_XMLDOCUMENT_DOCTYPE          0x1006f
+#define DISPID_XMLDOCUMENT_DTDURL           0x10070
+#define DISPID_XMLDOCUMENT_ASYNC            0x10071
+#define DISPID_XMLDOCUMENT_CASEINSENSITIVE  0x10072
+
+#define DISPID_XMLELEMENT                   0x100c8
+#define DISPID_XMLELEMENT_TAGNAME           0x100c9
+#define DISPID_XMLELEMENT_PARENT            0x100ca
+#define DISPID_XMLELEMENT_SETATTRIBUTE      0x100cb
+#define DISPID_XMLELEMENT_GETATTRIBUTE      0x100cc
+#define DISPID_XMLELEMENT_REMOVEATTRIBUTE   0x100cd
+#define DISPID_XMLELEMENT_CHILDREN          0x100ce
+#define DISPID_XMLELEMENT_TYPE              0x100cf
+#define DISPID_XMLELEMENT_TEXT              0x100d0
+#define DISPID_XMLELEMENT_ADDCHILD          0x100d1
+#define DISPID_XMLELEMENT_REMOVECHILD       0x100d2
+#define DISPID_XMLELEMENT_ATTRIBUTES        0x100d3
+
+#define DISPID_XMLNOTIFSINK                 0x1012c
+#define DISPID_XMLNOTIFSINK_CHILDADDED      0x1012d
+
+#define DISPID_XMLATTRIBUTE                 0x10190
+#define DISPID_XMLATTRIBUTE_NAME            0x10191
+#define DISPID_XMLATTRIBUTE_VALUE           0x10192
+
+
 #define DISPID_DOM_BASE                     0x00000001
 #define DISPID_DOM_COLLECTION_BASE          0x000f4240
 #define DISPID_DOM_COLLECTION_MAX           0x002dc6bf
-- 
GitLab