2 * Copyright (C) 2005 Mike McCormack
3 * Copyright (C) 2005 Vijay Kiran Kamuju
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
34 uuid(65725580-9b5d
-11d0
-9bfe
-00c04fc99c8e
)
36 interface IXMLElementCollection
: IDispatch
38 [propput, id(DISPID_XMLELEMENTCOLLECTION_LENGTH
)]
39 HRESULT length
( [in] long v
);
41 [propget, id(DISPID_XMLELEMENTCOLLECTION_LENGTH
)]
42 HRESULT length
( [retval, out] long *p
);
44 [propget, id(DISPID_XMLELEMENTCOLLECTION_NEWENUM
)]
45 HRESULT _newEnum
( [retval, out] IUnknown
** ppUnk
);
47 [id(DISPID_XMLELEMENTCOLLECTION_ITEM
)]
49 [optional, in] VARIANT var1
,
50 [optional, in] VARIANT var2
,
51 [retval, out] IDispatch
** ppDisp
);
57 uuid(3f7f31ac
-e15f
-11d0
-9c25
-00c04fc99c8e
)
59 interface IXMLElement
: IDispatch
61 [propget, id(DISPID_XMLELEMENT_TAGNAME
)]
62 HRESULT tagName
( [retval, out] BSTR *p
);
64 [propput, id(DISPID_XMLELEMENT_TAGNAME
)]
65 HRESULT tagName
( [in] BSTR p
);
67 [propget, id(DISPID_XMLELEMENT_PARENT
)]
68 HRESULT parent
( [retval, out] IXMLElement
**parent
);
70 [id(DISPID_XMLELEMENT_SETATTRIBUTE
)]
72 [in] BSTR strPropertyName
,
73 [in] VARIANT PropertyValue
);
75 [id(DISPID_XMLELEMENT_GETATTRIBUTE
)]
77 [in] BSTR strPropertyName
,
78 [retval, out] VARIANT *PropertyValue
);
80 [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE
)]
81 HRESULT removeAttribute
(
82 [in] BSTR strPropertyName
);
84 [propget, id(DISPID_XMLELEMENT_CHILDREN
)]
85 HRESULT children
( [retval, out] IXMLElementCollection
**p
);
87 [propget, id(DISPID_XMLELEMENT_TYPE
)]
88 HRESULT type
( [retval, out] long *p
);
90 [propget, id(DISPID_XMLELEMENT_TEXT
)]
91 HRESULT text
( [retval, out] BSTR *p
);
93 [propput, id(DISPID_XMLELEMENT_TEXT
)]
94 HRESULT text
( [in] BSTR p
);
96 [id(DISPID_XMLELEMENT_ADDCHILD
)]
98 [in] IXMLElement
*pChildElem
,
100 [in] long lreserved
);
102 [id(DISPID_XMLELEMENT_REMOVECHILD
)]
104 [in] IXMLElement
*pChildElem
);
110 uuid(f52e2b61
-18a1
-11d1
-b105
-00805f49916b
)
112 interface IXMLDocument
: IDispatch
114 [propget, id(DISPID_XMLDOCUMENT_ROOT
)]
115 HRESULT root
( [retval, out] IXMLElement
**p
);
117 [propget, id(DISPID_XMLDOCUMENT_FILESIZE
)]
118 HRESULT fileSize
( [retval, out] BSTR *p
);
120 [propget, id(DISPID_XMLDOCUMENT_FILEMODIFIEDDATE
)]
121 HRESULT fileModifiedDate
( [retval, out] BSTR *p
);
123 [propget, id(DISPID_XMLDOCUMENT_FILEUPDATEDDATE
)]
124 HRESULT fileUpdatedDate
( [retval, out] BSTR *p
);
126 [propget, id(DISPID_XMLDOCUMENT_URL
)]
127 HRESULT URL
( [retval, out] BSTR *p
);
129 [propput, id(DISPID_XMLDOCUMENT_URL
)]
130 HRESULT URL
( [in] BSTR p
);
132 [propget, id(DISPID_XMLDOCUMENT_MIMETYPE
)]
133 HRESULT mimeType
( [retval, out] BSTR *p
);
135 [propget, id(DISPID_XMLDOCUMENT_READYSTATE
)]
136 HRESULT readyState
( [retval, out] long *p
);
138 [propget, id(DISPID_XMLDOCUMENT_CHARSET
)]
139 HRESULT charset
( [retval, out] BSTR *p
);
141 [propput, id(DISPID_XMLDOCUMENT_CHARSET
)]
142 HRESULT charset
( [in] BSTR p
);
144 [propget, id(DISPID_XMLDOCUMENT_VERSION
)]
145 HRESULT version( [retval, out] BSTR *p
);
147 [propget, id(DISPID_XMLDOCUMENT_DOCTYPE
)]
148 HRESULT doctype
( [retval, out] BSTR *p
);
150 [propget, id(DISPID_XMLDOCUMENT_DTDURL
)]
151 HRESULT dtdURl
( [retval, out] BSTR *p
);
153 [id(DISPID_XMLDOCUMENT_CREATEELEMENT
)]
154 HRESULT createElement
(
156 [optional, in] VARIANT var1
,
157 [retval, out] IXMLElement
**ppElem
);
163 uuid(2B8DE2FF
-8D2D
-11d1
-B2FC
-00C04FD915A9
)
165 interface IXMLElement2
: IDispatch
167 [propget, id(DISPID_XMLELEMENT_TAGNAME
)]
168 HRESULT tagName
([retval, out] BSTR *p
);
170 [propput, id(DISPID_XMLELEMENT_TAGNAME
)]
171 HRESULT tagName
([in] BSTR p
);
173 [propget, id(DISPID_XMLELEMENT_PARENT
)]
174 HRESULT parent
([retval, out]IXMLElement2
**ppParent
);
176 [id(DISPID_XMLELEMENT_SETATTRIBUTE
)]
177 HRESULT setAttribute
(
178 [in] BSTR strPropertyName
,
179 [in] VARIANT PropertyValue
);
181 [id(DISPID_XMLELEMENT_GETATTRIBUTE
)]
182 HRESULT getAttribute
(
183 [in] BSTR strPropertyName
,
184 [retval, out] VARIANT *PropertyValue
);
186 [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE
)]
187 HRESULT removeAttribute
([in] BSTR strPropertyName
);
189 [propget, id(DISPID_XMLELEMENT_CHILDREN
)]
190 HRESULT children
([retval, out] IXMLElementCollection
**pp
);
192 [propget, id(DISPID_XMLELEMENT_TYPE
)]
193 HRESULT type
([retval, out] long *plType
);
195 [propget, id(DISPID_XMLELEMENT_TEXT
)]
196 HRESULT text
([retval, out] BSTR *p
);
198 [propput, id(DISPID_XMLELEMENT_TEXT
)]
199 HRESULT text
([in] BSTR p
);
201 [id(DISPID_XMLELEMENT_ADDCHILD
)]
203 [in] IXMLElement2
*pChildElem
,
205 [in] long lReserved
);
207 [id(DISPID_XMLELEMENT_REMOVECHILD
)]
208 HRESULT removeChild
([in]IXMLElement2
*pChildElem
);
210 [propget, id(DISPID_XMLELEMENT_ATTRIBUTES
)]
211 HRESULT attributes
([retval, out] IXMLElementCollection
**pp
);
217 uuid(2B8DE2FE
-8D2D
-11d1
-B2FC
-00C04FD915A9
)
219 interface IXMLDocument2
: IDispatch
221 [propget, id(DISPID_XMLDOCUMENT_ROOT
)]
222 HRESULT root
([retval, out] IXMLElement2
**p
);
224 [propget, id(DISPID_XMLDOCUMENT_FILESIZE
)]
225 HRESULT fileSize
([retval, out] BSTR *p
);
227 [propget, id(DISPID_XMLDOCUMENT_FILEMODIFIEDDATE
)]
228 HRESULT fileModifiedDate
([retval, out] BSTR *p
);
230 [propget, id(DISPID_XMLDOCUMENT_FILEUPDATEDDATE
)]
231 HRESULT fileUpdatedDate
([retval, out] BSTR *p
);
233 [propget, id(DISPID_XMLDOCUMENT_URL
)]
234 HRESULT URL
([retval, out] BSTR *p
);
236 [propput, id(DISPID_XMLDOCUMENT_URL
)]
237 HRESULT URL
([in] BSTR p
);
239 [propget, id(DISPID_XMLDOCUMENT_MIMETYPE
)]
240 HRESULT mimeType
([retval, out] BSTR *p
);
242 [propget, id(DISPID_XMLDOCUMENT_READYSTATE
)]
243 HRESULT readyState
([retval, out]long *pl
);
245 [propget, id(DISPID_XMLDOCUMENT_CHARSET
)]
246 HRESULT charset
([retval, out]BSTR *p
);
248 [propput, id(DISPID_XMLDOCUMENT_CHARSET
)]
249 HRESULT charset
([in]BSTR p
);
251 [propget, id(DISPID_XMLDOCUMENT_VERSION
)]
252 HRESULT version([retval, out]BSTR *p
);
254 [propget, id(DISPID_XMLDOCUMENT_DOCTYPE
)]
255 HRESULT doctype
([retval, out]BSTR *p
);
257 [propget, restricted, id(DISPID_XMLDOCUMENT_DTDURL
)]
258 HRESULT dtdURL
([retval, out]BSTR *p
);
260 [id(DISPID_XMLDOCUMENT_CREATEELEMENT
)]
261 HRESULT createElement
(
263 [optional, in] VARIANT var
,
264 [retval, out] IXMLElement2
**ppElem
);
266 [propget, id(DISPID_XMLDOCUMENT_ASYNC
)]
267 HRESULT async
([retval, out] VARIANT_BOOL *pf
);
269 [propput, id(DISPID_XMLDOCUMENT_ASYNC
)]
270 HRESULT async
([in] VARIANT_BOOL f
);
273 typedef enum tagXMLEMEM_TYPE
{
274 XMLELEMTYPE_ELEMENT
= 0,
275 XMLELEMTYPE_TEXT
= 1,
276 XMLELEMTYPE_COMMENT
= 2,
277 XMLELEMTYPE_DOCUMENT
= 3,
280 XMLELEMTYPE_OTHER
= 6
283 typedef struct _xml_error
{
297 uuid(d4d4a0fc
-3b73
-11d1
-b2b4
-00c04fb92596
)
299 interface IXMLAttribute
: IDispatch
301 [propget, id(DISPID_XMLATTRIBUTE_NAME
)]
302 HRESULT name
( [retval, out] BSTR *p
);
304 [propget, id(DISPID_XMLATTRIBUTE_VALUE
)]
305 HRESULT value
( [retval, out] BSTR *p
);
311 uuid(948c5ad3
-c58d
-11d0
-9c0b
-00c04fc99c8e
)
313 interface IXMLError
: IUnknown
315 HRESULT GetErrorInfo
([out]XML_ERROR
*pErrorReturn
);
321 uuid(D9F1E15A
-CCDB
-11d0
-9C0C
-00C04FC99C8E
)
323 interface IXMLElementNotificationSink
: IDispatch
325 [id(DISPID_XMLNOTIFSINK_CHILDADDED
)]
326 HRESULT ChildAdded
([in]IDispatch
*pChildElem
);
330 uuid(cfc399af
-d876
-11d0
-9c10
-00c04fc99c8e
)
334 [default] interface IXMLDocument
;