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