blob: 68d6bdc8d16ab83559d5613f9f174ad677f14619 [file] [log] [blame]
Mike McCormack6e69a362005-05-16 08:46:55 +00001/*
2 * Copyright (C) 2005 Mike McCormack
Vijay Kiran Kamujua52310a2005-07-02 10:48:16 +00003 * Copyright (C) 2005 Vijay Kiran Kamuju
Mike McCormack6e69a362005-05-16 08:46:55 +00004 *
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.
9 *
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.
14 *
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
Vincent BĂ©ron56da0c32005-08-10 09:51:40 +000020#include <msxmldid.h>
Mike McCormack6e69a362005-05-16 08:46:55 +000021
22import "unknwn.idl";
23import "wtypes.idl";
24import "objidl.idl";
25import "oaidl.idl";
26
Vijay Kiran Kamujua52310a2005-07-02 10:48:16 +000027
Mike McCormack6e69a362005-05-16 08:46:55 +000028[
29local,
30object,
31odl,
32dual,
33oleautomation,
34uuid(65725580-9b5d-11d0-9bfe-00c04fc99c8e)
35]
36interface IXMLElementCollection : IDispatch
37{
38 [propput, id(DISPID_XMLELEMENTCOLLECTION_LENGTH)]
39 HRESULT length( [in] long v );
40
41 [propget, id(DISPID_XMLELEMENTCOLLECTION_LENGTH)]
42 HRESULT length( [retval, out] long *p );
43
44 [propget, id(DISPID_XMLELEMENTCOLLECTION_NEWENUM)]
45 HRESULT _newEnum( [retval, out] IUnknown ** ppUnk );
46
47 [id(DISPID_XMLELEMENTCOLLECTION_ITEM)]
48 HRESULT item(
49 [optional, in] VARIANT var1,
50 [optional, in] VARIANT var2,
51 [retval, out] IDispatch ** ppDisp );
52};
53
54[
55local,
Vijay Kiran Kamuju95082862005-06-22 18:04:18 +000056object,
57uuid(3f7f31ac-e15f-11d0-9c25-00c04fc99c8e)
Mike McCormack6e69a362005-05-16 08:46:55 +000058]
59interface IXMLElement : IDispatch
60{
61 [propget, id(DISPID_XMLELEMENT_TAGNAME)]
62 HRESULT tagName( [retval, out] BSTR *p);
63
64 [propput, id(DISPID_XMLELEMENT_TAGNAME)]
65 HRESULT tagName( [in] BSTR p );
66
67 [propget, id(DISPID_XMLELEMENT_PARENT)]
68 HRESULT parent( [retval, out] IXMLElement **parent );
69
70 [id(DISPID_XMLELEMENT_SETATTRIBUTE)]
71 HRESULT setAttribute(
72 [in] BSTR strPropertyName,
73 [in] VARIANT PropertyValue );
74
75 [id(DISPID_XMLELEMENT_GETATTRIBUTE)]
76 HRESULT getAttribute(
77 [in] BSTR strPropertyName,
78 [retval, out] VARIANT *PropertyValue );
79
80 [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE)]
81 HRESULT removeAttribute(
82 [in] BSTR strPropertyName );
83
84 [propget, id(DISPID_XMLELEMENT_CHILDREN)]
85 HRESULT children( [retval, out] IXMLElementCollection **p );
86
87 [propget, id(DISPID_XMLELEMENT_TYPE)]
88 HRESULT type( [retval, out] long *p );
89
90 [propget, id(DISPID_XMLELEMENT_TEXT)]
91 HRESULT text( [retval, out] BSTR *p );
92
93 [propput, id(DISPID_XMLELEMENT_TEXT)]
94 HRESULT text( [in] BSTR p );
95
96 [id(DISPID_XMLELEMENT_ADDCHILD)]
97 HRESULT addChild(
98 [in] IXMLElement *pChildElem,
99 [in] long lIndex,
100 [in] long lreserved );
101
102 [id(DISPID_XMLELEMENT_REMOVECHILD)]
103 HRESULT removeChild(
104 [in] IXMLElement *pChildElem );
105};
106
107[
108local,
Vijay Kiran Kamuju95082862005-06-22 18:04:18 +0000109object,
110uuid(f52e2b61-18a1-11d1-b105-00805f49916b)
Mike McCormack6e69a362005-05-16 08:46:55 +0000111]
112interface IXMLDocument : IDispatch
113{
114 [propget, id(DISPID_XMLDOCUMENT_ROOT)]
115 HRESULT root( [retval, out] IXMLElement **p );
116
117 [propget, id(DISPID_XMLDOCUMENT_FILESIZE)]
118 HRESULT fileSize( [retval, out] BSTR *p );
119
120 [propget, id(DISPID_XMLDOCUMENT_FILEMODIFIEDDATE)]
121 HRESULT fileModifiedDate( [retval, out] BSTR *p );
122
123 [propget, id(DISPID_XMLDOCUMENT_FILEUPDATEDDATE)]
124 HRESULT fileUpdatedDate( [retval, out] BSTR *p );
125
126 [propget, id(DISPID_XMLDOCUMENT_URL)]
127 HRESULT URL( [retval, out] BSTR *p );
128
129 [propput, id(DISPID_XMLDOCUMENT_URL)]
130 HRESULT URL( [in] BSTR p );
131
132 [propget, id(DISPID_XMLDOCUMENT_MIMETYPE)]
133 HRESULT mimeType( [retval, out] BSTR *p );
134
135 [propget, id(DISPID_XMLDOCUMENT_READYSTATE)]
136 HRESULT readyState( [retval, out] long *p );
137
138 [propget, id(DISPID_XMLDOCUMENT_CHARSET)]
139 HRESULT charset( [retval, out] BSTR *p );
140
141 [propput, id(DISPID_XMLDOCUMENT_CHARSET)]
142 HRESULT charset( [in] BSTR p );
143
144 [propget, id(DISPID_XMLDOCUMENT_VERSION)]
145 HRESULT version( [retval, out] BSTR *p );
146
147 [propget, id(DISPID_XMLDOCUMENT_DOCTYPE)]
148 HRESULT doctype( [retval, out] BSTR *p );
149
150 [propget, id(DISPID_XMLDOCUMENT_DTDURL)]
151 HRESULT dtdURl( [retval, out] BSTR *p );
152
153 [id(DISPID_XMLDOCUMENT_CREATEELEMENT)]
154 HRESULT createElement(
155 [in] VARIANT vType,
156 [optional, in] VARIANT var1,
157 [retval, out] IXMLElement **ppElem );
158};
Vijay Kiran Kamuju95082862005-06-22 18:04:18 +0000159
Vijay Kiran Kamujua52310a2005-07-02 10:48:16 +0000160[
161local,
162object,
163uuid(2B8DE2FF-8D2D-11d1-B2FC-00C04FD915A9)
164]
165interface IXMLElement2 : IDispatch
166{
167 [propget, id(DISPID_XMLELEMENT_TAGNAME)]
168 HRESULT tagName([retval, out] BSTR *p);
169
170 [propput, id(DISPID_XMLELEMENT_TAGNAME)]
171 HRESULT tagName([in] BSTR p);
172
173 [propget, id(DISPID_XMLELEMENT_PARENT)]
174 HRESULT parent([retval, out]IXMLElement2 **ppParent);
175
176 [id(DISPID_XMLELEMENT_SETATTRIBUTE)]
177 HRESULT setAttribute(
178 [in] BSTR strPropertyName,
179 [in] VARIANT PropertyValue);
180
181 [id(DISPID_XMLELEMENT_GETATTRIBUTE)]
182 HRESULT getAttribute(
183 [in] BSTR strPropertyName,
184 [retval, out] VARIANT *PropertyValue);
185
186 [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE)]
187 HRESULT removeAttribute([in] BSTR strPropertyName);
188
189 [propget, id(DISPID_XMLELEMENT_CHILDREN)]
190 HRESULT children([retval, out] IXMLElementCollection **pp);
191
192 [propget, id(DISPID_XMLELEMENT_TYPE)]
193 HRESULT type([retval, out] long *plType);
194
195 [propget, id(DISPID_XMLELEMENT_TEXT)]
196 HRESULT text([retval, out] BSTR *p);
197
198 [propput, id(DISPID_XMLELEMENT_TEXT)]
199 HRESULT text([in] BSTR p);
200
201 [id(DISPID_XMLELEMENT_ADDCHILD)]
202 HRESULT addChild(
203 [in] IXMLElement2 *pChildElem,
Robert Shearman4bd0ec12005-08-26 08:47:54 +0000204 [in] long lIndex,
205 [in] long lReserved);
Vijay Kiran Kamujua52310a2005-07-02 10:48:16 +0000206
207 [id(DISPID_XMLELEMENT_REMOVECHILD)]
208 HRESULT removeChild([in]IXMLElement2 *pChildElem);
209
210 [propget, id(DISPID_XMLELEMENT_ATTRIBUTES)]
211 HRESULT attributes([retval, out] IXMLElementCollection **pp);
212};
213
214[
215local,
216object,
217uuid(2B8DE2FE-8D2D-11d1-B2FC-00C04FD915A9)
218]
219interface IXMLDocument2 : IDispatch
220{
221 [propget, id(DISPID_XMLDOCUMENT_ROOT)]
222 HRESULT root([retval, out] IXMLElement2 **p);
223
224 [propget, id(DISPID_XMLDOCUMENT_FILESIZE)]
225 HRESULT fileSize([retval, out] BSTR *p);
226
227 [propget, id(DISPID_XMLDOCUMENT_FILEMODIFIEDDATE)]
228 HRESULT fileModifiedDate([retval, out] BSTR *p);
229
230 [propget, id(DISPID_XMLDOCUMENT_FILEUPDATEDDATE)]
231 HRESULT fileUpdatedDate([retval, out] BSTR *p);
232
233 [propget, id(DISPID_XMLDOCUMENT_URL)]
234 HRESULT URL([retval, out] BSTR *p);
235
236 [propput, id(DISPID_XMLDOCUMENT_URL)]
237 HRESULT URL([in] BSTR p);
238
239 [propget, id(DISPID_XMLDOCUMENT_MIMETYPE)]
240 HRESULT mimeType([retval, out] BSTR *p);
241
242 [propget, id(DISPID_XMLDOCUMENT_READYSTATE)]
243 HRESULT readyState([retval, out]long *pl);
244
245 [propget, id(DISPID_XMLDOCUMENT_CHARSET)]
246 HRESULT charset([retval, out]BSTR *p);
247
248 [propput, id(DISPID_XMLDOCUMENT_CHARSET)]
249 HRESULT charset([in]BSTR p);
250
251 [propget, id(DISPID_XMLDOCUMENT_VERSION)]
252 HRESULT version([retval, out]BSTR *p);
253
254 [propget, id(DISPID_XMLDOCUMENT_DOCTYPE)]
255 HRESULT doctype([retval, out]BSTR *p);
256
257 [propget, restricted, id(DISPID_XMLDOCUMENT_DTDURL)]
258 HRESULT dtdURL([retval, out]BSTR *p);
259
260 [id(DISPID_XMLDOCUMENT_CREATEELEMENT)]
261 HRESULT createElement(
262 [in] VARIANT vType,
263 [optional, in] VARIANT var,
264 [retval, out] IXMLElement2 **ppElem);
265
266 [propget, id(DISPID_XMLDOCUMENT_ASYNC)]
267 HRESULT async([retval, out] VARIANT_BOOL *pf);
268
269 [propput, id(DISPID_XMLDOCUMENT_ASYNC)]
270 HRESULT async([in] VARIANT_BOOL f);
271};
272
Vijay Kiran Kamuju95082862005-06-22 18:04:18 +0000273typedef enum tagXMLEMEM_TYPE {
274 XMLELEMTYPE_ELEMENT = 0,
275 XMLELEMTYPE_TEXT = 1,
276 XMLELEMTYPE_COMMENT = 2,
277 XMLELEMTYPE_DOCUMENT = 3,
278 XMLELEMTYPE_DTD = 4,
279 XMLELEMTYPE_PI = 5,
280 XMLELEMTYPE_OTHER = 6
281} XMLELEM_TYPE;
282
283typedef struct _xml_error {
284 UINT _nLine;
285 BSTR _pchBuf;
286 BSTR _cchBuf;
287 UINT _ich;
288 BSTR _pszFound;
289 BSTR _pszExpected;
290 DWORD _reserved1;
291 DWORD _reserved2;
292} XML_ERROR;
293
294[
295local,
296object,
Vijay Kiran Kamuju9feda992005-06-22 18:29:35 +0000297uuid(d4d4a0fc-3b73-11d1-b2b4-00c04fb92596)
298]
299interface IXMLAttribute : IDispatch
300{
301 [propget, id(DISPID_XMLATTRIBUTE_NAME)]
302 HRESULT name( [retval, out] BSTR *p );
303
304 [propget, id(DISPID_XMLATTRIBUTE_VALUE)]
305 HRESULT value( [retval, out] BSTR *p );
Vijay Kiran Kamuju9399b192005-06-30 20:48:43 +0000306};
Vijay Kiran Kamuju9feda992005-06-22 18:29:35 +0000307
308[
309local,
310object,
Vijay Kiran Kamuju95082862005-06-22 18:04:18 +0000311uuid(948c5ad3-c58d-11d0-9c0b-00c04fc99c8e)
312]
313interface IXMLError : IUnknown
314{
315 HRESULT GetErrorInfo([out]XML_ERROR *pErrorReturn);
Vijay Kiran Kamuju9399b192005-06-30 20:48:43 +0000316};
Vijay Kiran Kamuju95082862005-06-22 18:04:18 +0000317
318[
Vijay Kiran Kamujud24938a2005-07-05 14:07:10 +0000319 object,
320 local,
321 uuid(D9F1E15A-CCDB-11d0-9C0C-00C04FC99C8E)
322]
323interface IXMLElementNotificationSink : IDispatch
324{
325 [id(DISPID_XMLNOTIFSINK_CHILDADDED)]
326 HRESULT ChildAdded([in]IDispatch *pChildElem);
327};
328
329[
Vijay Kiran Kamuju95082862005-06-22 18:04:18 +0000330uuid(cfc399af-d876-11d0-9c10-00c04fc99c8e)
331]
332coclass XMLDocument
333{
334 [default] interface IXMLDocument;
Vijay Kiran Kamuju9399b192005-06-30 20:48:43 +0000335};