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
21 #include
<msxml2did.h
>
32 uuid(d63e0ce2
-a0a2
-11d0
-9c02
-00c04fc99c8e
),
34 helpstring("Microsoft XML, v2.0")
39 importlib
("stdole2.tlb");
50 uuid(65725580-9b5d
-11d0
-9bfe
-00c04fc99c8e
)
52 interface IXMLElementCollection
: IDispatch
54 [propput, id(DISPID_XMLELEMENTCOLLECTION_LENGTH
)]
55 HRESULT length
( [in] LONG v
);
57 [propget, id(DISPID_XMLELEMENTCOLLECTION_LENGTH
)]
58 HRESULT length
( [retval, out] LONG *p
);
60 [propget, id(DISPID_XMLELEMENTCOLLECTION_NEWENUM
)]
61 HRESULT _newEnum
( [retval, out] IUnknown
** ppUnk
);
63 [id(DISPID_XMLELEMENTCOLLECTION_ITEM
)]
65 [optional, in] VARIANT var1
,
66 [optional, in] VARIANT var2
,
67 [retval, out] IDispatch
** ppDisp
);
73 uuid(3f7f31ac
-e15f
-11d0
-9c25
-00c04fc99c8e
)
75 interface IXMLElement
: IDispatch
77 [propget, id(DISPID_XMLELEMENT_TAGNAME
)]
78 HRESULT tagName
( [retval, out] BSTR *p
);
80 [propput, id(DISPID_XMLELEMENT_TAGNAME
)]
81 HRESULT tagName
( [in] BSTR p
);
83 [propget, id(DISPID_XMLELEMENT_PARENT
)]
84 HRESULT parent
( [retval, out] IXMLElement
**parent
);
86 [id(DISPID_XMLELEMENT_SETATTRIBUTE
)]
88 [in] BSTR strPropertyName
,
89 [in] VARIANT PropertyValue
);
91 [id(DISPID_XMLELEMENT_GETATTRIBUTE
)]
93 [in] BSTR strPropertyName
,
94 [retval, out] VARIANT *PropertyValue
);
96 [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE
)]
97 HRESULT removeAttribute
(
98 [in] BSTR strPropertyName
);
100 [propget, id(DISPID_XMLELEMENT_CHILDREN
)]
101 HRESULT children
( [retval, out] IXMLElementCollection
**p
);
103 [propget, id(DISPID_XMLELEMENT_TYPE
)]
104 HRESULT type
( [retval, out] LONG *p
);
106 [propget, id(DISPID_XMLELEMENT_TEXT
)]
107 HRESULT text
( [retval, out] BSTR *p
);
109 [propput, id(DISPID_XMLELEMENT_TEXT
)]
110 HRESULT text
( [in] BSTR p
);
112 [id(DISPID_XMLELEMENT_ADDCHILD
)]
114 [in] IXMLElement
*pChildElem
,
116 [in] LONG lreserved
);
118 [id(DISPID_XMLELEMENT_REMOVECHILD
)]
120 [in] IXMLElement
*pChildElem
);
126 uuid(f52e2b61
-18a1
-11d1
-b105
-00805f49916b
)
128 interface IXMLDocument
: IDispatch
130 [propget, id(DISPID_XMLDOCUMENT_ROOT
)]
131 HRESULT root
( [retval, out] IXMLElement
**p
);
133 [propget, id(DISPID_XMLDOCUMENT_FILESIZE
)]
134 HRESULT fileSize
( [retval, out] BSTR *p
);
136 [propget, id(DISPID_XMLDOCUMENT_FILEMODIFIEDDATE
)]
137 HRESULT fileModifiedDate
( [retval, out] BSTR *p
);
139 [propget, id(DISPID_XMLDOCUMENT_FILEUPDATEDDATE
)]
140 HRESULT fileUpdatedDate
( [retval, out] BSTR *p
);
142 [propget, id(DISPID_XMLDOCUMENT_URL
)]
143 HRESULT URL
( [retval, out] BSTR *p
);
145 [propput, id(DISPID_XMLDOCUMENT_URL
)]
146 HRESULT URL
( [in] BSTR p
);
148 [propget, id(DISPID_XMLDOCUMENT_MIMETYPE
)]
149 HRESULT mimeType
( [retval, out] BSTR *p
);
151 [propget, id(DISPID_XMLDOCUMENT_READYSTATE
)]
152 HRESULT readyState
( [retval, out] LONG *p
);
154 [propget, id(DISPID_XMLDOCUMENT_CHARSET
)]
155 HRESULT charset
( [retval, out] BSTR *p
);
157 [propput, id(DISPID_XMLDOCUMENT_CHARSET
)]
158 HRESULT charset
( [in] BSTR p
);
160 [propget, id(DISPID_XMLDOCUMENT_VERSION
)]
161 HRESULT version( [retval, out] BSTR *p
);
163 [propget, id(DISPID_XMLDOCUMENT_DOCTYPE
)]
164 HRESULT doctype
( [retval, out] BSTR *p
);
166 [propget, id(DISPID_XMLDOCUMENT_DTDURL
)]
167 HRESULT dtdURl
( [retval, out] BSTR *p
);
169 [id(DISPID_XMLDOCUMENT_CREATEELEMENT
)]
170 HRESULT createElement
(
172 [optional, in] VARIANT var1
,
173 [retval, out] IXMLElement
**ppElem
);
179 uuid(2B8DE2FF
-8D2D
-11d1
-B2FC
-00C04FD915A9
)
181 interface IXMLElement2
: IDispatch
183 [propget, id(DISPID_XMLELEMENT_TAGNAME
)]
184 HRESULT tagName
([retval, out] BSTR *p
);
186 [propput, id(DISPID_XMLELEMENT_TAGNAME
)]
187 HRESULT tagName
([in] BSTR p
);
189 [propget, id(DISPID_XMLELEMENT_PARENT
)]
190 HRESULT parent
([retval, out]IXMLElement2
**ppParent
);
192 [id(DISPID_XMLELEMENT_SETATTRIBUTE
)]
193 HRESULT setAttribute
(
194 [in] BSTR strPropertyName
,
195 [in] VARIANT PropertyValue
);
197 [id(DISPID_XMLELEMENT_GETATTRIBUTE
)]
198 HRESULT getAttribute
(
199 [in] BSTR strPropertyName
,
200 [retval, out] VARIANT *PropertyValue
);
202 [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE
)]
203 HRESULT removeAttribute
([in] BSTR strPropertyName
);
205 [propget, id(DISPID_XMLELEMENT_CHILDREN
)]
206 HRESULT children
([retval, out] IXMLElementCollection
**pp
);
208 [propget, id(DISPID_XMLELEMENT_TYPE
)]
209 HRESULT type
([retval, out] LONG *plType
);
211 [propget, id(DISPID_XMLELEMENT_TEXT
)]
212 HRESULT text
([retval, out] BSTR *p
);
214 [propput, id(DISPID_XMLELEMENT_TEXT
)]
215 HRESULT text
([in] BSTR p
);
217 [id(DISPID_XMLELEMENT_ADDCHILD
)]
219 [in] IXMLElement2
*pChildElem
,
221 [in] LONG lReserved
);
223 [id(DISPID_XMLELEMENT_REMOVECHILD
)]
224 HRESULT removeChild
([in]IXMLElement2
*pChildElem
);
226 [propget, id(DISPID_XMLELEMENT_ATTRIBUTES
)]
227 HRESULT attributes
([retval, out] IXMLElementCollection
**pp
);
233 uuid(2B8DE2FE
-8D2D
-11d1
-B2FC
-00C04FD915A9
)
235 interface IXMLDocument2
: IDispatch
237 [propget, id(DISPID_XMLDOCUMENT_ROOT
)]
238 HRESULT root
([retval, out] IXMLElement2
**p
);
240 [propget, id(DISPID_XMLDOCUMENT_FILESIZE
)]
241 HRESULT fileSize
([retval, out] BSTR *p
);
243 [propget, id(DISPID_XMLDOCUMENT_FILEMODIFIEDDATE
)]
244 HRESULT fileModifiedDate
([retval, out] BSTR *p
);
246 [propget, id(DISPID_XMLDOCUMENT_FILEUPDATEDDATE
)]
247 HRESULT fileUpdatedDate
([retval, out] BSTR *p
);
249 [propget, id(DISPID_XMLDOCUMENT_URL
)]
250 HRESULT URL
([retval, out] BSTR *p
);
252 [propput, id(DISPID_XMLDOCUMENT_URL
)]
253 HRESULT URL
([in] BSTR p
);
255 [propget, id(DISPID_XMLDOCUMENT_MIMETYPE
)]
256 HRESULT mimeType
([retval, out] BSTR *p
);
258 [propget, id(DISPID_XMLDOCUMENT_READYSTATE
)]
259 HRESULT readyState
([retval, out]LONG *pl
);
261 [propget, id(DISPID_XMLDOCUMENT_CHARSET
)]
262 HRESULT charset
([retval, out]BSTR *p
);
264 [propput, id(DISPID_XMLDOCUMENT_CHARSET
)]
265 HRESULT charset
([in]BSTR p
);
267 [propget, id(DISPID_XMLDOCUMENT_VERSION
)]
268 HRESULT version([retval, out]BSTR *p
);
270 [propget, id(DISPID_XMLDOCUMENT_DOCTYPE
)]
271 HRESULT doctype
([retval, out]BSTR *p
);
273 [propget, restricted, id(DISPID_XMLDOCUMENT_DTDURL
)]
274 HRESULT dtdURL
([retval, out]BSTR *p
);
276 [id(DISPID_XMLDOCUMENT_CREATEELEMENT
)]
277 HRESULT createElement
(
279 [optional, in] VARIANT var
,
280 [retval, out] IXMLElement2
**ppElem
);
282 [propget, id(DISPID_XMLDOCUMENT_ASYNC
)]
283 HRESULT async
([retval, out] VARIANT_BOOL *pf
);
285 [propput, id(DISPID_XMLDOCUMENT_ASYNC
)]
286 HRESULT async
([in] VARIANT_BOOL f
);
289 typedef enum tagXMLEMEM_TYPE
{
290 XMLELEMTYPE_ELEMENT
= 0,
291 XMLELEMTYPE_TEXT
= 1,
292 XMLELEMTYPE_COMMENT
= 2,
293 XMLELEMTYPE_DOCUMENT
= 3,
296 XMLELEMTYPE_OTHER
= 6
299 typedef struct _xml_error
{
313 uuid(d4d4a0fc
-3b73
-11d1
-b2b4
-00c04fb92596
)
315 interface IXMLAttribute
: IDispatch
317 [propget, id(DISPID_XMLATTRIBUTE_NAME
)]
318 HRESULT name
( [retval, out] BSTR *p
);
320 [propget, id(DISPID_XMLATTRIBUTE_VALUE
)]
321 HRESULT value
( [retval, out] BSTR *p
);
327 uuid(948c5ad3
-c58d
-11d0
-9c0b
-00c04fc99c8e
)
329 interface IXMLError
: IUnknown
331 HRESULT GetErrorInfo
([out]XML_ERROR
*pErrorReturn
);
337 uuid(D9F1E15A
-CCDB
-11d0
-9C0C
-00C04FC99C8E
)
339 interface IXMLElementNotificationSink
: IDispatch
341 [id(DISPID_XMLNOTIFSINK_CHILDADDED
)]
342 HRESULT ChildAdded
([in]IDispatch
*pChildElem
);
350 uuid(cfc399af
-d876
-11d0
-9c10
-00c04fc99c8e
)
354 [default] interface IXMLDocument
;
357 } /* Library MSXML */