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
35 uuid(65725580-9b5d
-11d0
-9bfe
-00c04fc99c8e
)
37 interface IXMLElementCollection
: IDispatch
39 [propput, id(DISPID_XMLELEMENTCOLLECTION_LENGTH
)]
40 HRESULT length
( [in] LONG v
);
42 [propget, id(DISPID_XMLELEMENTCOLLECTION_LENGTH
)]
43 HRESULT length
( [retval, out] LONG *p
);
45 [propget, id(DISPID_XMLELEMENTCOLLECTION_NEWENUM
)]
46 HRESULT _newEnum
( [retval, out] IUnknown
** ppUnk
);
48 [id(DISPID_XMLELEMENTCOLLECTION_ITEM
)]
50 [optional, in] VARIANT var1
,
51 [optional, in] VARIANT var2
,
52 [retval, out] IDispatch
** ppDisp
);
58 uuid(3f7f31ac
-e15f
-11d0
-9c25
-00c04fc99c8e
)
60 interface IXMLElement
: IDispatch
62 [propget, id(DISPID_XMLELEMENT_TAGNAME
)]
63 HRESULT tagName
( [retval, out] BSTR *p
);
65 [propput, id(DISPID_XMLELEMENT_TAGNAME
)]
66 HRESULT tagName
( [in] BSTR p
);
68 [propget, id(DISPID_XMLELEMENT_PARENT
)]
69 HRESULT parent
( [retval, out] IXMLElement
**parent
);
71 [id(DISPID_XMLELEMENT_SETATTRIBUTE
)]
73 [in] BSTR strPropertyName
,
74 [in] VARIANT PropertyValue
);
76 [id(DISPID_XMLELEMENT_GETATTRIBUTE
)]
78 [in] BSTR strPropertyName
,
79 [retval, out] VARIANT *PropertyValue
);
81 [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE
)]
82 HRESULT removeAttribute
(
83 [in] BSTR strPropertyName
);
85 [propget, id(DISPID_XMLELEMENT_CHILDREN
)]
86 HRESULT children
( [retval, out] IXMLElementCollection
**p
);
88 [propget, id(DISPID_XMLELEMENT_TYPE
)]
89 HRESULT type
( [retval, out] LONG *p
);
91 [propget, id(DISPID_XMLELEMENT_TEXT
)]
92 HRESULT text
( [retval, out] BSTR *p
);
94 [propput, id(DISPID_XMLELEMENT_TEXT
)]
95 HRESULT text
( [in] BSTR p
);
97 [id(DISPID_XMLELEMENT_ADDCHILD
)]
99 [in] IXMLElement
*pChildElem
,
101 [in] LONG lreserved
);
103 [id(DISPID_XMLELEMENT_REMOVECHILD
)]
105 [in] IXMLElement
*pChildElem
);
111 uuid(f52e2b61
-18a1
-11d1
-b105
-00805f49916b
)
113 interface IXMLDocument
: IDispatch
115 [propget, id(DISPID_XMLDOCUMENT_ROOT
)]
116 HRESULT root
( [retval, out] IXMLElement
**p
);
118 [propget, id(DISPID_XMLDOCUMENT_FILESIZE
)]
119 HRESULT fileSize
( [retval, out] BSTR *p
);
121 [propget, id(DISPID_XMLDOCUMENT_FILEMODIFIEDDATE
)]
122 HRESULT fileModifiedDate
( [retval, out] BSTR *p
);
124 [propget, id(DISPID_XMLDOCUMENT_FILEUPDATEDDATE
)]
125 HRESULT fileUpdatedDate
( [retval, out] BSTR *p
);
127 [propget, id(DISPID_XMLDOCUMENT_URL
)]
128 HRESULT URL
( [retval, out] BSTR *p
);
130 [propput, id(DISPID_XMLDOCUMENT_URL
)]
131 HRESULT URL
( [in] BSTR p
);
133 [propget, id(DISPID_XMLDOCUMENT_MIMETYPE
)]
134 HRESULT mimeType
( [retval, out] BSTR *p
);
136 [propget, id(DISPID_XMLDOCUMENT_READYSTATE
)]
137 HRESULT readyState
( [retval, out] LONG *p
);
139 [propget, id(DISPID_XMLDOCUMENT_CHARSET
)]
140 HRESULT charset
( [retval, out] BSTR *p
);
142 [propput, id(DISPID_XMLDOCUMENT_CHARSET
)]
143 HRESULT charset
( [in] BSTR p
);
145 [propget, id(DISPID_XMLDOCUMENT_VERSION
)]
146 HRESULT version( [retval, out] BSTR *p
);
148 [propget, id(DISPID_XMLDOCUMENT_DOCTYPE
)]
149 HRESULT doctype
( [retval, out] BSTR *p
);
151 [propget, id(DISPID_XMLDOCUMENT_DTDURL
)]
152 HRESULT dtdURl
( [retval, out] BSTR *p
);
154 [id(DISPID_XMLDOCUMENT_CREATEELEMENT
)]
155 HRESULT createElement
(
157 [optional, in] VARIANT var1
,
158 [retval, out] IXMLElement
**ppElem
);
164 uuid(2B8DE2FF
-8D2D
-11d1
-B2FC
-00C04FD915A9
)
166 interface IXMLElement2
: IDispatch
168 [propget, id(DISPID_XMLELEMENT_TAGNAME
)]
169 HRESULT tagName
([retval, out] BSTR *p
);
171 [propput, id(DISPID_XMLELEMENT_TAGNAME
)]
172 HRESULT tagName
([in] BSTR p
);
174 [propget, id(DISPID_XMLELEMENT_PARENT
)]
175 HRESULT parent
([retval, out]IXMLElement2
**ppParent
);
177 [id(DISPID_XMLELEMENT_SETATTRIBUTE
)]
178 HRESULT setAttribute
(
179 [in] BSTR strPropertyName
,
180 [in] VARIANT PropertyValue
);
182 [id(DISPID_XMLELEMENT_GETATTRIBUTE
)]
183 HRESULT getAttribute
(
184 [in] BSTR strPropertyName
,
185 [retval, out] VARIANT *PropertyValue
);
187 [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE
)]
188 HRESULT removeAttribute
([in] BSTR strPropertyName
);
190 [propget, id(DISPID_XMLELEMENT_CHILDREN
)]
191 HRESULT children
([retval, out] IXMLElementCollection
**pp
);
193 [propget, id(DISPID_XMLELEMENT_TYPE
)]
194 HRESULT type
([retval, out] LONG *plType
);
196 [propget, id(DISPID_XMLELEMENT_TEXT
)]
197 HRESULT text
([retval, out] BSTR *p
);
199 [propput, id(DISPID_XMLELEMENT_TEXT
)]
200 HRESULT text
([in] BSTR p
);
202 [id(DISPID_XMLELEMENT_ADDCHILD
)]
204 [in] IXMLElement2
*pChildElem
,
206 [in] LONG lReserved
);
208 [id(DISPID_XMLELEMENT_REMOVECHILD
)]
209 HRESULT removeChild
([in]IXMLElement2
*pChildElem
);
211 [propget, id(DISPID_XMLELEMENT_ATTRIBUTES
)]
212 HRESULT attributes
([retval, out] IXMLElementCollection
**pp
);
218 uuid(2B8DE2FE
-8D2D
-11d1
-B2FC
-00C04FD915A9
)
220 interface IXMLDocument2
: IDispatch
222 [propget, id(DISPID_XMLDOCUMENT_ROOT
)]
223 HRESULT root
([retval, out] IXMLElement2
**p
);
225 [propget, id(DISPID_XMLDOCUMENT_FILESIZE
)]
226 HRESULT fileSize
([retval, out] BSTR *p
);
228 [propget, id(DISPID_XMLDOCUMENT_FILEMODIFIEDDATE
)]
229 HRESULT fileModifiedDate
([retval, out] BSTR *p
);
231 [propget, id(DISPID_XMLDOCUMENT_FILEUPDATEDDATE
)]
232 HRESULT fileUpdatedDate
([retval, out] BSTR *p
);
234 [propget, id(DISPID_XMLDOCUMENT_URL
)]
235 HRESULT URL
([retval, out] BSTR *p
);
237 [propput, id(DISPID_XMLDOCUMENT_URL
)]
238 HRESULT URL
([in] BSTR p
);
240 [propget, id(DISPID_XMLDOCUMENT_MIMETYPE
)]
241 HRESULT mimeType
([retval, out] BSTR *p
);
243 [propget, id(DISPID_XMLDOCUMENT_READYSTATE
)]
244 HRESULT readyState
([retval, out]LONG *pl
);
246 [propget, id(DISPID_XMLDOCUMENT_CHARSET
)]
247 HRESULT charset
([retval, out]BSTR *p
);
249 [propput, id(DISPID_XMLDOCUMENT_CHARSET
)]
250 HRESULT charset
([in]BSTR p
);
252 [propget, id(DISPID_XMLDOCUMENT_VERSION
)]
253 HRESULT version([retval, out]BSTR *p
);
255 [propget, id(DISPID_XMLDOCUMENT_DOCTYPE
)]
256 HRESULT doctype
([retval, out]BSTR *p
);
258 [propget, restricted, id(DISPID_XMLDOCUMENT_DTDURL
)]
259 HRESULT dtdURL
([retval, out]BSTR *p
);
261 [id(DISPID_XMLDOCUMENT_CREATEELEMENT
)]
262 HRESULT createElement
(
264 [optional, in] VARIANT var
,
265 [retval, out] IXMLElement2
**ppElem
);
267 [propget, id(DISPID_XMLDOCUMENT_ASYNC
)]
268 HRESULT async
([retval, out] VARIANT_BOOL *pf
);
270 [propput, id(DISPID_XMLDOCUMENT_ASYNC
)]
271 HRESULT async
([in] VARIANT_BOOL f
);
274 typedef enum tagXMLEMEM_TYPE
{
275 XMLELEMTYPE_ELEMENT
= 0,
276 XMLELEMTYPE_TEXT
= 1,
277 XMLELEMTYPE_COMMENT
= 2,
278 XMLELEMTYPE_DOCUMENT
= 3,
281 XMLELEMTYPE_OTHER
= 6
284 typedef struct _xml_error
{
298 uuid(d4d4a0fc
-3b73
-11d1
-b2b4
-00c04fb92596
)
300 interface IXMLAttribute
: IDispatch
302 [propget, id(DISPID_XMLATTRIBUTE_NAME
)]
303 HRESULT name
( [retval, out] BSTR *p
);
305 [propget, id(DISPID_XMLATTRIBUTE_VALUE
)]
306 HRESULT value
( [retval, out] BSTR *p
);
312 uuid(948c5ad3
-c58d
-11d0
-9c0b
-00c04fc99c8e
)
314 interface IXMLError
: IUnknown
316 HRESULT GetErrorInfo
([out]XML_ERROR
*pErrorReturn
);
322 uuid(D9F1E15A
-CCDB
-11d0
-9C0C
-00C04FC99C8E
)
324 interface IXMLElementNotificationSink
: IDispatch
326 [id(DISPID_XMLNOTIFSINK_CHILDADDED
)]
327 HRESULT ChildAdded
([in]IDispatch
*pChildElem
);
331 uuid(cfc399af
-d876
-11d0
-9c10
-00c04fc99c8e
)
335 [default] interface IXMLDocument
;