[DDK]
[reactos.git] / include / psdk / xmldom.idl
1 /*
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
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #include <xmldomdid.h>
20 #include <idispids.h>
21
22 import "ocidl.idl";
23
24 interface IXMLDOMImplementation;
25 interface IXMLDOMNode;
26 interface IXMLDOMDocumentFragment;
27 interface IXMLDOMDocument;
28 interface IXMLDOMNodeList;
29 interface IXMLDOMNamedNodeMap;
30 interface IXMLDOMCharacterData;
31 interface IXMLDOMAttribute;
32 interface IXMLDOMElement;
33 interface IXMLDOMText;
34 interface IXMLDOMComment;
35 interface IXMLDOMProcessingInstruction;
36 interface IXMLDOMCDATASection;
37 interface IXMLDOMDocumentType;
38 interface IXMLDOMNotation;
39 interface IXMLDOMEntity;
40 interface IXMLDOMEntityReference;
41 interface IXMLDOMParseError;
42 interface IXTLRuntime;
43
44 typedef 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 [
61 local,
62 object,
63 odl,
64 dual,
65 oleautomation,
66 /*nonextensible,*/
67 uuid(2933bf80-7b36-11d2-b20e-00c04f983e60),
68 pointer_default(unique)
69 ]
70 interface 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)]
79 HRESULT nodeValue( [in] VARIANT value );
80
81 [propget, id(DISPID_DOM_NODE_NODETYPE)]
82 HRESULT nodeType( [out,retval] DOMNodeType *type );
83
84 [propget, id(DISPID_DOM_NODE_PARENTNODE)]
85 HRESULT parentNode( [out,retval] IXMLDOMNode **parent );
86
87 [propget, id(DISPID_DOM_NODE_CHILDNODES)]
88 HRESULT childNodes( [out,retval] IXMLDOMNodeList **childList );
89
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
126 [propget, id(DISPID_DOM_NODE_OWNERDOC)]
127 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 );
190 }
191
192 [
193 local,
194 object,
195 odl,
196 dual,
197 /*nonextensible,*/
198 oleautomation,
199 uuid(2933bf81-7b36-11d2-b20e-00c04f983e60),
200 pointer_default(unique)
201 ]
202 interface IXMLDOMDocument : IXMLDOMNode
203 {
204 [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)]
205 HRESULT doctype( [out,retval] IXMLDOMDocumentType **documentType );
206
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)]
267 HRESULT readyState( [out,retval] LONG *value );
268
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 );
318 }
319
320 [
321 local,
322 object,
323 odl,
324 dual,
325 /*nonextensible,*/
326 oleautomation,
327 uuid(2933bf82-7b36-11d2-b20e-00c04f983e60),
328 pointer_default(unique)
329 ]
330 interface IXMLDOMNodeList : IDispatch
331 {
332 [propget, id(DISPID_VALUE)]
333 HRESULT item( [in] LONG index,
334 [out,retval] IXMLDOMNode **listItem );
335
336 [propget, id(DISPID_DOM_NODELIST_LENGTH)]
337 HRESULT length( [out,retval] LONG *listLength );
338
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 );
347 }
348
349 [
350 local,
351 object,
352 odl,
353 dual,
354 /*nonextensible,*/
355 oleautomation,
356 uuid(2933bf83-7b36-11d2-b20e-00c04f983e60),
357 pointer_default(unique)
358 ]
359 interface 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)]
374 HRESULT item( [in] LONG index,
375 [out,retval] IXMLDOMNode **listItem );
376
377 [propget, id(DISPID_DOM_NODELIST_LENGTH)]
378 HRESULT length( [out,retval] LONG *listLength );
379
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 );
398 }
399
400 [
401 local,
402 object,
403 odl,
404 dual,
405 /*nonextensible,*/
406 oleautomation,
407 uuid(3efaa413-272f-11d2-836f-0000f87a7782),
408 pointer_default(unique)
409 ]
410 interface IXMLDOMDocumentFragment : IXMLDOMNode
411 {
412 /* empty */
413 }
414
415 [
416 local,
417 object,
418 odl,
419 dual,
420 /*nonextensible,*/
421 oleautomation,
422 uuid(2933bf84-7b36-11d2-b20e-00c04f983e60),
423 pointer_default(unique)
424 ]
425 interface 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)]
434 HRESULT length( [out,retval] LONG *dataLength );
435
436 [id(DISPID_DOM_DATA_SUBSTRING)]
437 HRESULT substringData( [in] LONG offset,
438 [in] LONG count,
439 [out,retval] BSTR *data );
440
441 [id(DISPID_DOM_DATA_APPEND)]
442 HRESULT appendData( [in] BSTR data );
443
444 [id(DISPID_DOM_DATA_INSERT)]
445 HRESULT insertData( [in] LONG offset,
446 [in] BSTR data );
447
448 [id(DISPID_DOM_DATA_DELETE)]
449 HRESULT deleteData( [in] LONG offset,
450 [in] LONG count );
451
452 [id(DISPID_DOM_DATA_REPLACE)]
453 HRESULT replaceData( [in] LONG offset,
454 [in] LONG count,
455 [in] BSTR data );
456 }
457
458 [
459 local,
460 object,
461 odl,
462 dual,
463 /*nonextensible,*/
464 oleautomation,
465 uuid(2933bf85-7b36-11d2-b20e-00c04f983e60),
466 pointer_default(unique)
467 ]
468 interface 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 );
478 }
479
480 [
481 local,
482 object,
483 odl,
484 dual,
485 /*nonextensible,*/
486 oleautomation,
487 uuid(2933bf86-7b36-11d2-b20e-00c04f983e60),
488 pointer_default(unique)
489 ]
490 interface 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();
524 }
525
526 [
527 local,
528 object,
529 odl,
530 dual,
531 /*nonextensible,*/
532 oleautomation,
533 uuid(2933bf87-7b36-11d2-b20e-00c04f983e60),
534 pointer_default(unique)
535 ]
536 interface IXMLDOMText : IXMLDOMCharacterData
537 {
538 [id(DISPID_DOM_TEXT_SPLITTEXT)]
539 HRESULT splitText( [in] LONG offset,
540 [out,retval] IXMLDOMText **rightHandTextNode );
541 }
542
543 [
544 local,
545 object,
546 odl,
547 dual,
548 /*nonextensible,*/
549 oleautomation,
550 uuid(2933bf88-7b36-11d2-b20e-00c04f983e60),
551 pointer_default(unique)
552 ]
553 interface IXMLDOMComment : IXMLDOMCharacterData
554 {
555 /* empty */
556 }
557
558 [
559 local,
560 object,
561 odl,
562 dual,
563 /*nonextensible,*/
564 oleautomation,
565 uuid(2933bf89-7b36-11d2-b20e-00c04f983e60),
566 pointer_default(unique)
567 ]
568 interface 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 );
578 }
579
580 [
581 local,
582 object,
583 odl,
584 dual,
585 /*nonextensible,*/
586 oleautomation,
587 uuid(2933bf8a-7b36-11d2-b20e-00c04f983e60),
588 pointer_default(unique)
589 ]
590 interface IXMLDOMCDATASection : IXMLDOMText
591 {
592 /* empty */
593 }
594
595 [
596 local,
597 object,
598 odl,
599 dual,
600 /*nonextensible,*/
601 oleautomation,
602 uuid(2933bf8b-7b36-11d2-b20e-00c04f983e60),
603 pointer_default(unique)
604 ]
605 interface 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 );
615 }
616
617 [
618 local,
619 object,
620 odl,
621 dual,
622 nonextensible,
623 oleautomation,
624 uuid(2933bf8c-7b36-11d2-b20e-00c04f983e60),
625 pointer_default(unique)
626 ]
627 interface 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 [
637 local,
638 object,
639 odl,
640 dual,
641 nonextensible,
642 oleautomation,
643 uuid(2933bf8d-7b36-11d2-b20e-00c04f983e60),
644 pointer_default(unique)
645 ]
646 interface 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 [
659 local,
660 object,
661 odl,
662 dual,
663 nonextensible,
664 oleautomation,
665 uuid(2933bf8e-7b36-11d2-b20e-00c04f983e60),
666 pointer_default(unique)
667 ]
668 interface IXMLDOMEntityReference : IXMLDOMNode
669 {
670 }
671
672 [
673 local,
674 object,
675 odl,
676 dual,
677 nonextensible,
678 oleautomation,
679 uuid(2933bf8f-7b36-11d2-b20e-00c04f983e60),
680 pointer_default(unique)
681 ]
682 interface 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 [
689 local,
690 object,
691 odl,
692 dual,
693 oleautomation,
694 /*nonextensible,*/
695 helpstring("structure for reporting parse errors"),
696 pointer_default(unique),
697 uuid (3efaa426-272f-11d2-836f-0000f87a7782)
698 ]
699 interface IXMLDOMParseError : IDispatch
700 {
701 [propget, id(DISPID_VALUE)]
702 HRESULT errorCode([retval, out] LONG *errCode);
703
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)]
714 HRESULT line([retval, out] LONG *lineNo);
715
716 [propget, id(DISPID_DOM_ERROR_LINEPOS)]
717 HRESULT linepos([retval, out] LONG * linePos);
718
719 [propget, id(DISPID_DOM_ERROR_FILEPOS)]
720 HRESULT filepos([retval, out] LONG * filePos);
721 }
722
723 [
724 hidden,
725 uuid(3efaa427-272f-11d2-836f-0000f87a7782)
726 ]
727 dispinterface XMLDOMDocumentEvents
728 {
729 properties:
730 methods:
731 [id(DISPID_XMLDOMEVENT_ONDATAAVAILABLE)]
732 HRESULT ondataavailable();
733
734 [id(DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)]
735 HRESULT onreadystatechange();
736 }
737
738 [
739 uuid(2933bf90-7b36-11d2-b20e-00c04f983e60)
740 ]
741 coclass DOMDocument
742 {
743 [default] interface IXMLDOMDocument;
744 [default, source] dispinterface XMLDOMDocumentEvents;
745 }
746
747 [
748 uuid(2933bf91-7b36-11d2-b20e-00c04f983e60)
749 ]
750 coclass DOMFreeThreadedDocument
751 {
752 [default] interface IXMLDOMDocument;
753 [default, source] dispinterface XMLDOMDocumentEvents;
754 }
755
756 [
757 object,
758 uuid(ed8c108d-4349-11d2-91a4-00c04f7969e8),
759 odl,
760 dual,
761 oleautomation,
762 pointer_default(unique)
763 ]
764 interface 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)]
787 HRESULT status([out, retval] LONG *plStatus);
788
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)]
805 HRESULT readyState([out, retval] LONG *plState);
806
807 [propput, id(14)]
808 HRESULT onreadystatechange([in] IDispatch *pReadyStateSink);
809 }
810
811 [
812 uuid(ed8c108e-4349-11d2-91a4-00c04f7969e8)
813 ]
814 coclass XMLHTTPRequest
815 {
816 [default] interface IXMLHttpRequest;
817 }