blob: d5d51ff2588ac25c6c2c271bb98cc8ec0db326ab [file] [log] [blame]
Mike McCormack8b705be2005-05-26 12:22:51 +00001/*
2 * Copyright (C) 2005 Mike McCormack
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
Jonathan Ernst360a3f92006-05-18 14:49:52 +020016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Mike McCormack8b705be2005-05-26 12:22:51 +000017 */
18
Vincent BĂ©ron56da0c32005-08-10 09:51:40 +000019#include <xmldomdid.h>
20#include <idispids.h>
Mike McCormack8b705be2005-05-26 12:22:51 +000021
22import "ocidl.idl";
23
24interface IXMLDOMImplementation;
25interface IXMLDOMNode;
26interface IXMLDOMDocumentFragment;
27interface IXMLDOMDocument;
28interface IXMLDOMNodeList;
29interface IXMLDOMNamedNodeMap;
30interface IXMLDOMCharacterData;
31interface IXMLDOMAttribute;
32interface IXMLDOMElement;
33interface IXMLDOMText;
34interface IXMLDOMComment;
35interface IXMLDOMProcessingInstruction;
36interface IXMLDOMCDATASection;
37interface IXMLDOMDocumentType;
38interface IXMLDOMNotation;
39interface IXMLDOMEntity;
40interface IXMLDOMEntityReference;
41interface IXMLDOMParseError;
42interface IXTLRuntime;
43
44typedef enum tagDOMNodeType {
45 NODE_INVALID,
46 NODE_ELEMENT,
47 NODE_ATTRIBUTE,
48 NODE_TEXT,
49 NODE_CDATA_SECTION,
50 NODE_ENTITY_REFERENCE,
51 NODE_ENTITY,
52 NODE_PROCESSING_INSTRUCTION,
53 NODE_COMMENT,
54 NODE_DOCUMENT,
55 NODE_DOCUMENT_TYPE,
56 NODE_DOCUMENT_FRAGMENT,
57 NODE_NOTATION
58} DOMNodeType;
59
60[
61local,
62object,
63odl,
64dual,
65oleautomation,
66/*nonextensible,*/
67uuid(2933bf80-7b36-11d2-b20e-00c04f983e60),
68pointer_default(unique)
69]
70interface IXMLDOMNode : IDispatch
71{
72 [propget, id(DISPID_DOM_NODE_NODENAME)]
73 HRESULT nodeName( [out,retval] BSTR *name );
74
75 [propget, id(DISPID_DOM_NODE_NODEVALUE)]
76 HRESULT nodeValue( [out,retval] VARIANT *value );
77
78 [propput, id(DISPID_DOM_NODE_NODEVALUE)]
Mike McCormack88e36692005-07-28 10:48:03 +000079 HRESULT nodeValue( [in] VARIANT value );
Mike McCormack8b705be2005-05-26 12:22:51 +000080
81 [propget, id(DISPID_DOM_NODE_NODETYPE)]
82 HRESULT nodeType( [out,retval] DOMNodeType *type );
83
84 [propget, id(DISPID_DOM_NODE_PARENTNODE)]
Mike McCormackd877c5c2005-07-28 18:32:45 +000085 HRESULT parentNode( [out,retval] IXMLDOMNode **parent );
Mike McCormack8b705be2005-05-26 12:22:51 +000086
87 [propget, id(DISPID_DOM_NODE_CHILDNODES)]
Mike McCormackd877c5c2005-07-28 18:32:45 +000088 HRESULT childNodes( [out,retval] IXMLDOMNodeList **childList );
Mike McCormack8b705be2005-05-26 12:22:51 +000089
90 [propget, id(DISPID_DOM_NODE_FIRSTCHILD)]
91 HRESULT firstChild( [out,retval] IXMLDOMNode **firstChild );
92
93 [propget, id(DISPID_DOM_NODE_LASTCHILD)]
94 HRESULT lastChild( [out,retval] IXMLDOMNode **lastChild );
95
96 [propget, id(DISPID_DOM_NODE_PREVIOUSSIBLING)]
97 HRESULT previousSibling( [out,retval] IXMLDOMNode **previousSibling );
98
99 [propget, id(DISPID_DOM_NODE_NEXTSIBLING)]
100 HRESULT nextSibling( [out,retval] IXMLDOMNode **nextSibling );
101
102 [propget, id(DISPID_DOM_NODE_ATTRIBUTES)]
103 HRESULT attributes( [out,retval] IXMLDOMNamedNodeMap **attributeMap );
104
105 [id(DISPID_DOM_NODE_INSERTBEFORE)]
106 HRESULT insertBefore( [in] IXMLDOMNode * newChild,
107 [in] VARIANT refChild,
108 [out,retval] IXMLDOMNode **outNewChild );
109
110 [id(DISPID_DOM_NODE_REPLACECHILD)]
111 HRESULT replaceChild( [in] IXMLDOMNode *newChild,
112 [in] IXMLDOMNode *oldChild,
113 [out,retval] IXMLDOMNode **outOldChild );
114
115 [id(DISPID_DOM_NODE_REMOVECHILD)]
116 HRESULT removeChild( [in] IXMLDOMNode *childNode,
117 [out,retval] IXMLDOMNode **oldChild );
118
119 [id(DISPID_DOM_NODE_APPENDCHILD)]
120 HRESULT appendChild( [in] IXMLDOMNode *newChild,
121 [out,retval] IXMLDOMNode **outNewChild );
122
123 [id(DISPID_DOM_NODE_HASCHILDNODES)]
124 HRESULT hasChildNodes( [out,retval] VARIANT_BOOL *hasChild );
125
Mike McCormackd877c5c2005-07-28 18:32:45 +0000126 [propget, id(DISPID_DOM_NODE_OWNERDOC)]
Mike McCormack8b705be2005-05-26 12:22:51 +0000127 HRESULT ownerDocument( [out,retval] IXMLDOMDocument **DOMDocument );
128
129 [id(DISPID_DOM_NODE_CLONENODE)]
130 HRESULT cloneNode( [in] VARIANT_BOOL deep,
131 [out,retval] IXMLDOMNode **cloneRoot );
132
133 [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE)]
134 HRESULT nodeTypeString( [out,retval] BSTR *nodeType );
135
136 [propget, id(DISPID_XMLDOM_NODE_TEXT)]
137 HRESULT text( [out,retval] BSTR *text );
138
139 [propput, id(DISPID_XMLDOM_NODE_TEXT)]
140 HRESULT text( [in] BSTR text );
141
142 [propget, id(DISPID_XMLDOM_NODE_SPECIFIED)]
143 HRESULT specified( [out,retval] VARIANT_BOOL *isSpecified );
144
145 [propget, id(DISPID_XMLDOM_NODE_DEFINITION)]
146 HRESULT definition( [out,retval] IXMLDOMNode **definitionNode );
147
148 [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
149 HRESULT nodeTypedValue( [out,retval] VARIANT *typedValue );
150
151 [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
152 HRESULT nodeTypedValue( [in] VARIANT typedValue );
153
154 [propget, id(DISPID_XMLDOM_NODE_DATATYPE)]
155 HRESULT dataType( [out,retval] VARIANT *dataTypeName );
156
157 [propput, id(DISPID_XMLDOM_NODE_DATATYPE)]
158 HRESULT dataType( [in] BSTR dataTypeName );
159
160 [propget, id(DISPID_XMLDOM_NODE_XML)]
161 HRESULT xml( [out,retval] BSTR *xmlString );
162
163 [id(DISPID_XMLDOM_NODE_TRANSFORMNODE)]
164 HRESULT transformNode( [in] IXMLDOMNode *styleSheet,
165 [out,retval] BSTR *xmlString );
166
167 [id(DISPID_XMLDOM_NODE_SELECTNODES)]
168 HRESULT selectNodes( [in] BSTR queryString,
169 [out,retval] IXMLDOMNodeList **resultList );
170
171 [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE)]
172 HRESULT selectSingleNode( [in] BSTR queryString,
173 [out,retval] IXMLDOMNode **resultNode );
174
175 [propget, id(DISPID_XMLDOM_NODE_PARSED)]
176 HRESULT parsed( [out,retval] VARIANT_BOOL *isParsed );
177
178 [propget, id(DISPID_XMLDOM_NODE_NAMESPACE)]
179 HRESULT namespaceURI( [out,retval] BSTR *namespaceURI );
180
181 [propget, id(DISPID_XMLDOM_NODE_PREFIX)]
182 HRESULT prefix( [out,retval] BSTR *prefixString );
183
184 [propget, id(DISPID_XMLDOM_NODE_BASENAME)]
185 HRESULT baseName( [out,retval] BSTR *nameString );
186
187 [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT)]
188 HRESULT transformNodeToObject( [in] IXMLDOMNode *stylesheet,
189 [in] VARIANT outputObject );
Mike McCormack57f8bd02006-07-20 18:22:08 +0900190}
Mike McCormack8b705be2005-05-26 12:22:51 +0000191
192[
193local,
194object,
195odl,
196dual,
197/*nonextensible,*/
198oleautomation,
199uuid(2933bf81-7b36-11d2-b20e-00c04f983e60),
200pointer_default(unique)
201]
202interface IXMLDOMDocument : IXMLDOMNode
203{
204 [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)]
Alexandre Julliard27624862005-11-08 20:00:58 +0000205 HRESULT doctype( [out,retval] IXMLDOMDocumentType **documentType );
Mike McCormack8b705be2005-05-26 12:22:51 +0000206
207 [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION)]
208 HRESULT implementation( [out,retval] IXMLDOMImplementation **impl );
209
210 [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
211 HRESULT documentElement( [out,retval] IXMLDOMElement **DOMElement );
212
213 [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
214 HRESULT documentElement( [in] IXMLDOMElement *DOMElement );
215
216 [id(DISPID_DOM_DOCUMENT_CREATEELEMENT)]
217 HRESULT createElement( [in] BSTR tagname,
218 [out,retval] IXMLDOMElement **element );
219
220 [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT)]
221 HRESULT createDocumentFragment( [out,retval] IXMLDOMDocumentFragment **docFrag );
222
223 [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE)]
224 HRESULT createTextNode( [in] BSTR data,
225 [out,retval] IXMLDOMText **text );
226
227 [id(DISPID_DOM_DOCUMENT_CREATECOMMENT)]
228 HRESULT createComment( [in] BSTR data,
229 [out,retval] IXMLDOMComment **comment );
230
231 [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION)]
232 HRESULT createCDATASection( [in] BSTR data,
233 [out,retval] IXMLDOMCDATASection **cdata );
234
235 [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION)]
236 HRESULT createProcessingInstruction( [in] BSTR target,
237 [in] BSTR data,
238 [out,retval] IXMLDOMProcessingInstruction **pi );
239
240 [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE)]
241 HRESULT createAttribute( [in] BSTR name,
242 [out,retval] IXMLDOMAttribute **attribute );
243
244 [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE)]
245 HRESULT createEntityReference( [in] BSTR name,
246 [out,retval] IXMLDOMEntityReference **entityRef );
247
248 [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME)]
249 HRESULT getElementsByTagName( [in] BSTR tagName,
250 [out,retval] IXMLDOMNodeList **resultList );
251
252 [id(DISPID_XMLDOM_DOCUMENT_CREATENODE)]
253 HRESULT createNode( [in] VARIANT Type,
254 [in] BSTR name,
255 [in] BSTR namespaceURI,
256 [out,retval] IXMLDOMNode **node );
257
258 [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID)]
259 HRESULT nodeFromID( [in] BSTR idString,
260 [out,retval] IXMLDOMNode **node );
261
262 [id(DISPID_XMLDOM_DOCUMENT_LOAD)]
263 HRESULT load( [in] VARIANT xmlSource,
264 [out,retval] VARIANT_BOOL *isSuccessful );
265
266 [propget, id(DISPID_READYSTATE)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100267 HRESULT readyState( [out,retval] LONG *value );
Mike McCormack8b705be2005-05-26 12:22:51 +0000268
269 [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR)]
270 HRESULT parseError( [out,retval] IXMLDOMParseError **errorObj );
271
272 [propget, id(DISPID_XMLDOM_DOCUMENT_URL)]
273 HRESULT url( [out,retval] BSTR *urlString );
274
275 /* FIXME: these is meant to be async, but widl parses that as a keyword */
276 [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
277 HRESULT async( [out,retval] VARIANT_BOOL *isAsync );
278
279 [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
280 HRESULT async( [in] VARIANT_BOOL isAsync );
281
282 [id(DISPID_XMLDOM_DOCUMENT_ABORT)]
283 HRESULT abort();
284
285 [id(DISPID_XMLDOM_DOCUMENT_LOADXML)]
286 HRESULT loadXML( [in] BSTR bstrXML,
287 [out,retval] VARIANT_BOOL *isSuccessful );
288
289 [id(DISPID_XMLDOM_DOCUMENT_SAVE)]
290 HRESULT save( [in] VARIANT destination );
291
292 [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
293 HRESULT validateOnParse( [out,retval] VARIANT_BOOL *isValidating );
294
295 [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
296 HRESULT validateOnParse( [in] VARIANT_BOOL isValidating );
297
298 [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
299 HRESULT resolveExternals( [out,retval] VARIANT_BOOL *isResolving );
300
301 [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
302 HRESULT resolveExternals( [in] VARIANT_BOOL isValidating );
303
304 [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
305 HRESULT preserveWhiteSpace( [out,retval] VARIANT_BOOL *isPreserving );
306
307 [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
308 HRESULT preserveWhiteSpace( [in] VARIANT_BOOL isPreserving );
309
310 [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE)]
311 HRESULT onreadystatechange( [in] VARIANT readystatechangeSink );
312
313 [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE)]
314 HRESULT ondataavailable( [in] VARIANT ondataavailableSink );
315
316 [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE)]
317 HRESULT ontransformnode( [in] VARIANT ontransformnodeSink );
Mike McCormack57f8bd02006-07-20 18:22:08 +0900318}
Mike McCormack8b705be2005-05-26 12:22:51 +0000319
320[
321local,
322object,
323odl,
324dual,
325/*nonextensible,*/
326oleautomation,
327uuid(2933bf82-7b36-11d2-b20e-00c04f983e60),
328pointer_default(unique)
329]
330interface IXMLDOMNodeList : IDispatch
331{
332 [propget, id(DISPID_VALUE)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100333 HRESULT item( [in] LONG index,
Mike McCormack8b705be2005-05-26 12:22:51 +0000334 [out,retval] IXMLDOMNode **listItem );
335
336 [propget, id(DISPID_DOM_NODELIST_LENGTH)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100337 HRESULT length( [out,retval] LONG *listLength );
Mike McCormack8b705be2005-05-26 12:22:51 +0000338
339 [id(DISPID_XMLDOM_NODELIST_NEXTNODE)]
340 HRESULT nextNode( [out,retval] IXMLDOMNode **nextItem );
341
342 [id(DISPID_XMLDOM_NODELIST_RESET)]
343 HRESULT reset();
344
345 [id(DISPID_NEWENUM)]
346 HRESULT _newEnum( [out,retval] IUnknown **ppUnk );
Mike McCormack57f8bd02006-07-20 18:22:08 +0900347}
Mike McCormack8b705be2005-05-26 12:22:51 +0000348
349[
350local,
351object,
352odl,
353dual,
354/*nonextensible,*/
355oleautomation,
356uuid(2933bf83-7b36-11d2-b20e-00c04f983e60),
357pointer_default(unique)
358]
359interface IXMLDOMNamedNodeMap : IDispatch
360{
361 [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)]
362 HRESULT getNamedItem( [in] BSTR name,
363 [out,retval] IXMLDOMNode **namedItem );
364
365 [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)]
366 HRESULT setNamedItem( [in] IXMLDOMNode *newItem,
367 [out,retval] IXMLDOMNode **namedItem );
368
369 [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)]
370 HRESULT removeNamedItem( [in] BSTR name,
371 [out,retval] IXMLDOMNode **namedItem );
372
373 [propget, id(DISPID_VALUE)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100374 HRESULT item( [in] LONG index,
Mike McCormack8b705be2005-05-26 12:22:51 +0000375 [out,retval] IXMLDOMNode **listItem );
376
377 [propget, id(DISPID_DOM_NODELIST_LENGTH)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100378 HRESULT length( [out,retval] LONG *listLength );
Mike McCormack8b705be2005-05-26 12:22:51 +0000379
380 [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)]
381 HRESULT getQualifiedItem( [in] BSTR baseName,
382 [in] BSTR namespaceURI,
383 [out,retval] IXMLDOMNode **qualifiedItem );
384
385 [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)]
386 HRESULT removeQualifiedItem( [in] BSTR baseName,
387 [in] BSTR namespaceURI,
388 [out,retval] IXMLDOMNode **qualifiedItem );
389
390 [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)]
391 HRESULT nextNode( [out,retval] IXMLDOMNode **nextItem );
392
393 [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)]
394 HRESULT reset();
395
396 [id(DISPID_NEWENUM)]
397 HRESULT _newEnum( [out,retval] IUnknown **ppUnk );
Mike McCormack57f8bd02006-07-20 18:22:08 +0900398}
Mike McCormack8b705be2005-05-26 12:22:51 +0000399
400[
401local,
402object,
403odl,
404dual,
405/*nonextensible,*/
406oleautomation,
407uuid(3efaa413-272f-11d2-836f-0000f87a7782),
408pointer_default(unique)
409]
410interface IXMLDOMDocumentFragment : IXMLDOMNode
411{
412 /* empty */
Mike McCormack57f8bd02006-07-20 18:22:08 +0900413}
Mike McCormack8b705be2005-05-26 12:22:51 +0000414
415[
416local,
417object,
418odl,
419dual,
420/*nonextensible,*/
421oleautomation,
422uuid(2933bf84-7b36-11d2-b20e-00c04f983e60),
423pointer_default(unique)
424]
425interface IXMLDOMCharacterData : IXMLDOMNode
426{
427 [propget, id(DISPID_DOM_DATA_DATA)]
428 HRESULT data( [out,retval] BSTR *data );
429
430 [propput, id(DISPID_DOM_DATA_DATA)]
431 HRESULT data( [in] BSTR data );
432
433 [propget, id(DISPID_DOM_DATA_LENGTH)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100434 HRESULT length( [out,retval] LONG *dataLength );
Mike McCormack8b705be2005-05-26 12:22:51 +0000435
436 [id(DISPID_DOM_DATA_SUBSTRING)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100437 HRESULT substringData( [in] LONG offset,
438 [in] LONG count,
Mike McCormack8b705be2005-05-26 12:22:51 +0000439 [out,retval] BSTR *data );
440
441 [id(DISPID_DOM_DATA_APPEND)]
442 HRESULT appendData( [in] BSTR data );
443
444 [id(DISPID_DOM_DATA_INSERT)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100445 HRESULT insertData( [in] LONG offset,
Mike McCormack8b705be2005-05-26 12:22:51 +0000446 [in] BSTR data );
447
448 [id(DISPID_DOM_DATA_DELETE)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100449 HRESULT deleteData( [in] LONG offset,
450 [in] LONG count );
Mike McCormack8b705be2005-05-26 12:22:51 +0000451
452 [id(DISPID_DOM_DATA_REPLACE)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100453 HRESULT replaceData( [in] LONG offset,
454 [in] LONG count,
Mike McCormack8b705be2005-05-26 12:22:51 +0000455 [in] BSTR data );
Mike McCormack57f8bd02006-07-20 18:22:08 +0900456}
Mike McCormack8b705be2005-05-26 12:22:51 +0000457
458[
459local,
460object,
461odl,
462dual,
463/*nonextensible,*/
464oleautomation,
465uuid(2933bf85-7b36-11d2-b20e-00c04f983e60),
466pointer_default(unique)
467]
468interface IXMLDOMAttribute : IXMLDOMNode
469{
470 [propget,id(DISPID_DOM_ATTRIBUTE_GETNAME)]
471 HRESULT name( [out,retval] BSTR *attributeName );
472
473 [propget,id(DISPID_DOM_ATTRIBUTE_VALUE)]
474 HRESULT value( [out,retval] VARIANT *attributeValue );
475
476 [propput,id(DISPID_DOM_ATTRIBUTE_VALUE)]
477 HRESULT value( [in] VARIANT attributeValue );
Mike McCormack57f8bd02006-07-20 18:22:08 +0900478}
Mike McCormack8b705be2005-05-26 12:22:51 +0000479
Mike McCormack88e36692005-07-28 10:48:03 +0000480[
481local,
482object,
483odl,
484dual,
485/*nonextensible,*/
486oleautomation,
487uuid(2933bf86-7b36-11d2-b20e-00c04f983e60),
488pointer_default(unique)
489]
490interface IXMLDOMElement : IXMLDOMNode
491{
492 [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)]
493 HRESULT tagName( [out,retval] BSTR *tagName );
494
495 [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)]
496 HRESULT getAttribute( [in] BSTR name,
497 [out,retval] VARIANT * value );
498
499 [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)]
500 HRESULT setAttribute( [in] BSTR name,
501 [in] VARIANT value );
502
503 [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)]
504 HRESULT removeAttribute( [in] BSTR name );
505
506 [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)]
507 HRESULT getAttributeNode( [in] BSTR name,
508 [out, retval] IXMLDOMAttribute ** attributeNode );
509
510 [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)]
511 HRESULT setAttributeNode( [in] IXMLDOMAttribute *DOMAttribute,
512 [out, retval] IXMLDOMAttribute ** attributeNode );
513
514 [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)]
515 HRESULT removeAttributeNode( [in] IXMLDOMAttribute *DOMAttribute,
516 [out, retval] IXMLDOMAttribute ** attributeNode );
517
518 [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)]
519 HRESULT getElementsByTagName( [in] BSTR tagName,
520 [out, retval] IXMLDOMNodeList ** resultList );
521
522 [id(DISPID_DOM_ELEMENT_NORMALIZE)]
523 HRESULT normalize();
Mike McCormack57f8bd02006-07-20 18:22:08 +0900524}
Mike McCormack8b705be2005-05-26 12:22:51 +0000525
526[
527local,
528object,
529odl,
530dual,
531/*nonextensible,*/
532oleautomation,
533uuid(2933bf87-7b36-11d2-b20e-00c04f983e60),
534pointer_default(unique)
535]
536interface IXMLDOMText : IXMLDOMCharacterData
537{
538 [id(DISPID_DOM_TEXT_SPLITTEXT)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100539 HRESULT splitText( [in] LONG offset,
Mike McCormack8b705be2005-05-26 12:22:51 +0000540 [out,retval] IXMLDOMText **rightHandTextNode );
Mike McCormack57f8bd02006-07-20 18:22:08 +0900541}
Mike McCormack8b705be2005-05-26 12:22:51 +0000542
543[
544local,
545object,
546odl,
547dual,
548/*nonextensible,*/
549oleautomation,
550uuid(2933bf88-7b36-11d2-b20e-00c04f983e60),
551pointer_default(unique)
552]
Alexandre Julliard72cbaa82008-02-25 13:40:49 +0100553interface IXMLDOMComment : IXMLDOMCharacterData
Mike McCormack8b705be2005-05-26 12:22:51 +0000554{
555 /* empty */
Mike McCormack57f8bd02006-07-20 18:22:08 +0900556}
Mike McCormack8b705be2005-05-26 12:22:51 +0000557
558[
559local,
560object,
561odl,
562dual,
563/*nonextensible,*/
564oleautomation,
565uuid(2933bf89-7b36-11d2-b20e-00c04f983e60),
566pointer_default(unique)
567]
568interface IXMLDOMProcessingInstruction : IXMLDOMNode
569{
570 [propget, id(DISPID_DOM_PI_TARGET)]
571 HRESULT target( [out, retval] BSTR *name );
572
573 [propget, id(DISPID_DOM_PI_DATA)]
574 HRESULT data( [out, retval] BSTR *value );
575
576 [propput, id(DISPID_DOM_PI_DATA)]
577 HRESULT data( [in] BSTR value );
Mike McCormack57f8bd02006-07-20 18:22:08 +0900578}
Mike McCormack8b705be2005-05-26 12:22:51 +0000579
580[
581local,
582object,
583odl,
584dual,
585/*nonextensible,*/
586oleautomation,
587uuid(2933bf8a-7b36-11d2-b20e-00c04f983e60),
588pointer_default(unique)
589]
590interface IXMLDOMCDATASection : IXMLDOMText
591{
592 /* empty */
Mike McCormack57f8bd02006-07-20 18:22:08 +0900593}
Rob Shearman8d0699e2008-06-25 18:28:59 +0100594
Mike McCormack8b705be2005-05-26 12:22:51 +0000595[
596local,
597object,
598odl,
599dual,
600/*nonextensible,*/
601oleautomation,
602uuid(2933bf8b-7b36-11d2-b20e-00c04f983e60),
603pointer_default(unique)
604]
605interface IXMLDOMDocumentType : IXMLDOMNode
606{
607 [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)]
608 HRESULT name( [out,retval] BSTR *rootName );
609
610 [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)]
611 HRESULT entities( [out,retval] IXMLDOMNamedNodeMap **entityMap );
612
613 [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)]
614 HRESULT notations( [out,retval] IXMLDOMNamedNodeMap **notationMap );
Mike McCormack57f8bd02006-07-20 18:22:08 +0900615}
Mike McCormack8b705be2005-05-26 12:22:51 +0000616
Huw Davies3f162982005-11-07 20:11:43 +0000617[
618local,
619object,
620odl,
621dual,
Rob Shearman8d0699e2008-06-25 18:28:59 +0100622nonextensible,
623oleautomation,
624uuid(2933bf8c-7b36-11d2-b20e-00c04f983e60),
625pointer_default(unique)
626]
627interface IXMLDOMNotation : IXMLDOMNode
628{
629 [propget, id(DISPID_DOM_NOTATION_PUBLICID)]
630 HRESULT publicId([out, retval] VARIANT *publicId);
631
632 [propget, id(DISPID_DOM_NOTATION_SYSTEMID)]
633 HRESULT systemId([out, retval] VARIANT *systemId);
634}
635
636[
637local,
638object,
639odl,
640dual,
641nonextensible,
642oleautomation,
643uuid(2933bf8d-7b36-11d2-b20e-00c04f983e60),
644pointer_default(unique)
645]
646interface IXMLDOMEntity : IXMLDOMNode
647{
648 [propget, id(DISPID_DOM_ENTITY_PUBLICID)]
649 HRESULT publicId([out, retval] VARIANT *publicId);
650
651 [propget, id(DISPID_DOM_ENTITY_SYSTEMID)]
652 HRESULT systemId([out, retval] VARIANT *systemId);
653
654 [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)]
655 HRESULT notationName([out, retval] BSTR *name);
656}
657
658[
659local,
660object,
661odl,
662dual,
663nonextensible,
664oleautomation,
665uuid(2933bf8e-7b36-11d2-b20e-00c04f983e60),
666pointer_default(unique)
667]
668interface IXMLDOMEntityReference : IXMLDOMNode
669{
670}
671
672[
673local,
674object,
675odl,
676dual,
677nonextensible,
678oleautomation,
679uuid(2933bf8f-7b36-11d2-b20e-00c04f983e60),
680pointer_default(unique)
681]
682interface IXMLDOMImplementation : IDispatch
683{
684 [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)]
685 HRESULT hasFeature([in] BSTR feature, [in] BSTR version, [out, retval] VARIANT_BOOL *pbool);
686}
687
688[
689local,
690object,
691odl,
692dual,
Huw Davies3f162982005-11-07 20:11:43 +0000693oleautomation,
694/*nonextensible,*/
695helpstring("structure for reporting parse errors"),
696pointer_default(unique),
697uuid (3efaa426-272f-11d2-836f-0000f87a7782)
698]
699interface IXMLDOMParseError : IDispatch
700{
701 [propget, id(DISPID_VALUE)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100702 HRESULT errorCode([retval, out] LONG *errCode);
Huw Davies3f162982005-11-07 20:11:43 +0000703
704 [propget, id(DISPID_DOM_ERROR_URL)]
705 HRESULT url([retval, out] BSTR *p);
706
707 [propget, id(DISPID_DOM_ERROR_REASON)]
708 HRESULT reason([retval, out] BSTR *p);
709
710 [propget, id(DISPID_DOM_ERROR_SRCTEXT)]
711 HRESULT srcText([retval, out] BSTR *p);
712
713 [propget, id(DISPID_DOM_ERROR_LINE)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100714 HRESULT line([retval, out] LONG *lineNo);
Huw Davies3f162982005-11-07 20:11:43 +0000715
716 [propget, id(DISPID_DOM_ERROR_LINEPOS)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100717 HRESULT linepos([retval, out] LONG * linePos);
Huw Davies3f162982005-11-07 20:11:43 +0000718
719 [propget, id(DISPID_DOM_ERROR_FILEPOS)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100720 HRESULT filepos([retval, out] LONG * filePos);
Mike McCormack57f8bd02006-07-20 18:22:08 +0900721}
Huw Davies3f162982005-11-07 20:11:43 +0000722
Rob Shearmanfa441c92008-09-08 23:20:47 +0100723[
724 hidden,
725 uuid(3efaa427-272f-11d2-836f-0000f87a7782)
726]
727dispinterface XMLDOMDocumentEvents
728{
729 properties:
730 methods:
731 [id(DISPID_XMLDOMEVENT_ONDATAAVAILABLE)]
732 HRESULT ondataavailable();
733
734 [id(DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)]
735 HRESULT onreadystatechange();
736}
Mike McCormack8b705be2005-05-26 12:22:51 +0000737
738[
739uuid(2933bf90-7b36-11d2-b20e-00c04f983e60)
740]
741coclass DOMDocument
742{
743 [default] interface IXMLDOMDocument;
744 [default, source] dispinterface XMLDOMDocumentEvents;
Mike McCormack57f8bd02006-07-20 18:22:08 +0900745}
Mike McCormack8b705be2005-05-26 12:22:51 +0000746
747[
748uuid(2933bf91-7b36-11d2-b20e-00c04f983e60)
749]
750coclass DOMFreeThreadedDocument
751{
752 [default] interface IXMLDOMDocument;
753 [default, source] dispinterface XMLDOMDocumentEvents;
754}
Robert Shearmanf7014352006-06-12 01:34:40 +0100755
756[
757object,
758uuid(ed8c108d-4349-11d2-91a4-00c04f7969e8),
759odl,
760dual,
761oleautomation,
762pointer_default(unique)
763]
764interface IXMLHttpRequest : IDispatch
765{
766 [id(1)]
767 HRESULT open([in] BSTR bstrMethod, [in] BSTR bstrUrl,
768 [in, optional] VARIANT varAsync,
769 [in, optional] VARIANT varUser,
770 [in, optional] VARIANT varPassword);
771 [id(2)]
772 HRESULT setRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue);
773
774 [id(3)]
775 HRESULT getResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR *pbstrValue);
776
777 [id(4)]
778 HRESULT getAllResponseHeaders([out, retval] BSTR *pbstrHeaders);
779
780 [id(5)]
781 HRESULT send([in, optional] VARIANT varBody);
782
783 [id(6)]
784 HRESULT abort();
785
786 [propget, id(7)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100787 HRESULT status([out, retval] LONG *plStatus);
Robert Shearmanf7014352006-06-12 01:34:40 +0100788
789 [propget, id(8)]
790 HRESULT statusText([out, retval] BSTR *bstrStatus);
791
792 [propget, id(9)]
793 HRESULT responseXML([out, retval] IDispatch **ppBody);
794
795 [propget, id(10)]
796 HRESULT responseText([out, retval] BSTR *pbstrBody);
797
798 [propget, id(11)]
799 HRESULT responseBody([out, retval] VARIANT *pvarBody);
800
801 [propget, id(12)]
802 HRESULT responseStream([out, retval] VARIANT *pvarBody);
803
804 [propget, id(13)]
Michael Stefaniucbd87b492009-03-09 23:28:16 +0100805 HRESULT readyState([out, retval] LONG *plState);
Robert Shearmanf7014352006-06-12 01:34:40 +0100806
807 [propput, id(14)]
808 HRESULT onreadystatechange([in] IDispatch *pReadyStateSink);
Mike McCormack57f8bd02006-07-20 18:22:08 +0900809}
Robert Shearmanf7014352006-06-12 01:34:40 +0100810
811[
812uuid(ed8c108e-4349-11d2-91a4-00c04f7969e8)
813]
814coclass XMLHTTPRequest
815{
816 [default] interface IXMLHttpRequest;
Mike McCormack57f8bd02006-07-20 18:22:08 +0900817}