jscript: Store bytecode_t in exec_ctx_t.
[wine] / dlls / msxml2 / msxml2_tlb.idl
1 /*
2  * Copyright (C) 2005 Vijay Kiran Kamuju
3  * Copyright (C) 2008 Alistair Leslie-Hughes
4  * Copyright (C) 2010 Nikolay Sivov for CodeWeavers
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20
21 #include <msxml2did.h>
22 #include <idispids.h>
23
24 import "unknwn.idl";
25 import "objidl.idl";
26 import "oaidl.idl";
27
28 [
29     uuid(f5078f18-c551-11d3-89b9-0000f81fe221),
30     version(2.6),
31     helpstring("Microsoft XML, v2.6")
32 ]
33 library MSXML2
34 {
35
36 importlib("stdole2.tlb");
37
38 interface IXMLDOMImplementation;
39 interface IXMLDOMNode;
40 interface IXMLDOMDocumentFragment;
41 interface IXMLDOMDocument;
42 interface IXMLDOMSchemaCollection;
43 interface IXMLDOMDocument2;
44 interface IXMLDOMNodeList;
45 interface IXMLDOMNamedNodeMap;
46 interface IXMLDOMCharacterData;
47 interface IXMLDOMAttribute;
48 interface IXMLDOMElement;
49 interface IXMLDOMText;
50 interface IXMLDOMComment;
51 interface IXMLDOMProcessingInstruction;
52 interface IXMLDOMCDATASection;
53 interface IXMLDOMDocumentType;
54 interface IXMLDOMNotation;
55 interface IXMLDOMEntity;
56 interface IXMLDOMEntityReference;
57 interface IXMLDOMParseError;
58 interface IXTLRuntime;
59 interface IXSLTemplate;
60 interface IXSLProcessor;
61
62 typedef enum tagDOMNodeType
63 {
64     NODE_INVALID                = 0,
65     NODE_ELEMENT                = 1,
66     NODE_ATTRIBUTE              = 2,
67     NODE_TEXT                   = 3,
68     NODE_CDATA_SECTION          = 4,
69     NODE_ENTITY_REFERENCE       = 5,
70     NODE_ENTITY                 = 6,
71     NODE_PROCESSING_INSTRUCTION = 7,
72     NODE_COMMENT                = 8,
73     NODE_DOCUMENT               = 9,
74     NODE_DOCUMENT_TYPE          = 10,
75     NODE_DOCUMENT_FRAGMENT      = 11,
76     NODE_NOTATION               = 12
77 } DOMNodeType;
78
79 [
80 local,
81 object,
82 dual,
83 oleautomation,
84 uuid (2933BF80-7B36-11d2-B20E-00C04F983E60)
85 ]
86 interface IXMLDOMNode : IDispatch
87 {
88     [propget, id(DISPID_DOM_NODE_NODENAME)]
89     HRESULT nodeName([retval, out] BSTR *p);
90
91     [propget, id(DISPID_DOM_NODE_NODEVALUE)]
92     HRESULT nodeValue([retval, out] VARIANT *var1);
93
94     [propput, id(DISPID_DOM_NODE_NODEVALUE)]
95     HRESULT nodeValue([in] VARIANT var1);
96
97     [propget, id(DISPID_DOM_NODE_NODETYPE)]
98     HRESULT nodeType([retval, out] DOMNodeType *domNodeType);
99
100     [propget, id(DISPID_DOM_NODE_PARENTNODE)]
101     HRESULT parentNode([retval, out] IXMLDOMNode **parent);
102
103     [propget, id(DISPID_DOM_NODE_CHILDNODES)]
104     HRESULT childNodes([retval, out] IXMLDOMNodeList **outList);
105
106     [propget, id(DISPID_DOM_NODE_FIRSTCHILD)]
107     HRESULT firstChild([retval, out] IXMLDOMNode **domNode);
108
109     [propget, id(DISPID_DOM_NODE_LASTCHILD)]
110     HRESULT lastChild([retval, out] IXMLDOMNode **domNode);
111
112     [propget, id(DISPID_DOM_NODE_PREVIOUSSIBLING)]
113     HRESULT previousSibling([retval, out] IXMLDOMNode **domNode);
114
115     [propget, id(DISPID_DOM_NODE_NEXTSIBLING)]
116     HRESULT nextSibling([retval, out] IXMLDOMNode **domNode);
117
118     [propget, id(DISPID_DOM_NODE_ATTRIBUTES)]
119     HRESULT attributes([retval, out] IXMLDOMNamedNodeMap **attributeMap);
120
121     [id(DISPID_DOM_NODE_INSERTBEFORE)]
122     HRESULT insertBefore(
123         [in] IXMLDOMNode *newNode,
124         [in] VARIANT var1,
125         [retval, out] IXMLDOMNode **outOldNode);
126
127     [id(DISPID_DOM_NODE_REPLACECHILD)]
128     HRESULT replaceChild(
129         [in] IXMLDOMNode *newNode,
130         [in] IXMLDOMNode *oldNode,
131         [retval, out] IXMLDOMNode **outOldNode);
132
133     [id(DISPID_DOM_NODE_REMOVECHILD)]
134     HRESULT removeChild(
135         [in] IXMLDOMNode *domNode,
136         [retval, out] IXMLDOMNode **oldNode);
137
138     [id(DISPID_DOM_NODE_APPENDCHILD)]
139     HRESULT appendChild(
140         [in] IXMLDOMNode *newNode,
141         [retval, out] IXMLDOMNode **outNewNode);
142
143     [id(DISPID_DOM_NODE_HASCHILDNODES)]
144     HRESULT hasChildNodes(
145         [retval, out] VARIANT_BOOL *pbool);
146
147     [propget, id(DISPID_DOM_NODE_OWNERDOC)]
148     HRESULT ownerDocument([retval, out] IXMLDOMDocument **domDocument);
149
150     [id(DISPID_DOM_NODE_CLONENODE)]
151     HRESULT cloneNode(
152         [in] VARIANT_BOOL pbool,
153         [retval, out] IXMLDOMNode **outNode);
154
155     [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE)]
156     HRESULT nodeTypeString([retval, out] BSTR *p);
157
158     [propget, id(DISPID_XMLDOM_NODE_TEXT)]
159     HRESULT text([retval, out] BSTR *p);
160
161     [propput, id(DISPID_XMLDOM_NODE_TEXT)]
162     HRESULT text([in] BSTR p);
163
164     [propget, id(DISPID_XMLDOM_NODE_SPECIFIED)]
165     HRESULT specified([retval, out] VARIANT_BOOL *pbool);
166
167     [propget, id(DISPID_XMLDOM_NODE_DEFINITION)]
168     HRESULT definition([retval,out] IXMLDOMNode **domNode);
169
170     [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
171     HRESULT nodeTypedValue([retval, out] VARIANT *var1);
172
173     [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
174     HRESULT nodeTypedValue([in] VARIANT var1);
175
176     [propget, id(DISPID_XMLDOM_NODE_DATATYPE)]
177     HRESULT dataType([retval, out] VARIANT *var1);
178
179     [propput, id(DISPID_XMLDOM_NODE_DATATYPE)]
180     HRESULT dataType([in] BSTR p);
181
182     [propget, id(DISPID_XMLDOM_NODE_XML)]
183     HRESULT xml([retval, out] BSTR *p);
184
185     [id(DISPID_XMLDOM_NODE_TRANSFORMNODE)]
186     HRESULT transformNode(
187         [in] IXMLDOMNode *domNode,
188         [retval, out] BSTR *p);
189
190     [id(DISPID_XMLDOM_NODE_SELECTNODES)]
191     HRESULT selectNodes(
192         [in] BSTR p,
193         [retval, out] IXMLDOMNodeList **outList);
194
195     [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE)]
196     HRESULT selectSingleNode(
197         [in] BSTR p,
198         [retval, out] IXMLDOMNode **outNode);
199
200     [propget,id(DISPID_XMLDOM_NODE_PARSED)]
201     HRESULT parsed([retval, out] VARIANT_BOOL *pbool);
202
203     [propget, id(DISPID_XMLDOM_NODE_NAMESPACE)]
204     HRESULT namespaceURI([retval, out] BSTR *p);
205
206     [propget, id(DISPID_XMLDOM_NODE_PREFIX)]
207     HRESULT prefix([retval, out] BSTR *p);
208
209     [propget, id(DISPID_XMLDOM_NODE_BASENAME)]
210     HRESULT baseName([retval, out] BSTR *p);
211
212     [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT)]
213     HRESULT transformNodeToObject(
214         [in] IXMLDOMNode *domNode,
215         [in] VARIANT var1);
216 }
217
218 [
219 local,
220 object,
221 dual,
222 oleautomation,
223 uuid (2933BF81-7B36-11d2-B20E-00C04F983E60)
224 ]
225 interface IXMLDOMDocument : IXMLDOMNode
226 {
227     [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)]
228     HRESULT doctype([retval, out] IXMLDOMDocumentType **docType);
229
230     [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION)]
231     HRESULT implementation([retval, out] IXMLDOMImplementation **impl);
232
233     [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
234     HRESULT documentElement([retval, out] IXMLDOMElement **domElement);
235
236     [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
237     HRESULT documentElement([in] IXMLDOMElement *domElement);
238
239     [id(DISPID_DOM_DOCUMENT_CREATEELEMENT)]
240     HRESULT createElement(
241         [in] BSTR p,
242         [retval, out] IXMLDOMElement **domElement);
243
244     [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT)]
245     HRESULT createDocumentFragment(
246         [retval, out] IXMLDOMDocumentFragment **docFrag);
247
248     [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE)]
249     HRESULT createTextNode(
250         [in] BSTR p,
251         [retval, out] IXMLDOMText **text);
252
253     [id(DISPID_DOM_DOCUMENT_CREATECOMMENT)]
254     HRESULT createComment(
255         [in] BSTR p,
256         [retval, out] IXMLDOMComment **comment);
257
258     [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION)]
259     HRESULT createCDATASection(
260         [in] BSTR p,
261         [retval, out] IXMLDOMCDATASection **cdata);
262
263     [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION)]
264     HRESULT createProcessingInstruction(
265         [in] BSTR target,
266         [in] BSTR data,
267         [retval, out] IXMLDOMProcessingInstruction **pi);
268
269     [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE)]
270     HRESULT createAttribute(
271         [in] BSTR p,
272         [retval, out] IXMLDOMAttribute **attribute);
273
274     [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE)]
275     HRESULT createEntityReference(
276         [in] BSTR p,
277         [retval, out] IXMLDOMEntityReference **entityRef);
278
279     [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME)]
280     HRESULT getElementsByTagName(
281         [in] BSTR p,
282         [retval, out] IXMLDOMNodeList **resultList);
283
284     [id(DISPID_XMLDOM_DOCUMENT_CREATENODE)]
285     HRESULT createNode(
286         [in] VARIANT var,
287         [in] BSTR name,
288         [in] BSTR uri,
289         [retval, out] IXMLDOMNode **node);
290
291     [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID)]
292     HRESULT nodeFromID(
293         [in] BSTR id,
294         [retval, out] IXMLDOMNode **node);
295
296     [id(DISPID_XMLDOM_DOCUMENT_LOAD)]
297     HRESULT load(
298         [in] VARIANT var1,
299         [retval, out] VARIANT_BOOL *pbool);
300
301     [propget, id(DISPID_READYSTATE)]
302     HRESULT readyState([retval, out] LONG *value);
303
304     [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR)]
305     HRESULT parseError([retval, out] IXMLDOMParseError **err);
306
307     [propget, id(DISPID_XMLDOM_DOCUMENT_URL)]
308     HRESULT url([retval, out] BSTR *p);
309
310     [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
311     HRESULT async([retval, out] VARIANT_BOOL *pbool);
312
313     [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
314     HRESULT async([in] VARIANT_BOOL pbool);
315
316     [id(DISPID_XMLDOM_DOCUMENT_ABORT)]
317     HRESULT abort();
318
319     [id(DISPID_XMLDOM_DOCUMENT_LOADXML)]
320     HRESULT loadXML(
321         [in] BSTR p,
322         [out, retval] VARIANT_BOOL *pbool);
323
324     [id(DISPID_XMLDOM_DOCUMENT_SAVE)]
325     HRESULT save(
326         [in] VARIANT var1);
327
328     [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
329     HRESULT validateOnParse([retval, out] VARIANT_BOOL *pbool);
330
331     [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
332     HRESULT validateOnParse([in] VARIANT_BOOL pbool);
333
334     [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
335     HRESULT resolveExternals([retval,out] VARIANT_BOOL *pbool);
336
337     [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
338     HRESULT resolveExternals([in] VARIANT_BOOL pbool);
339
340     [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
341     HRESULT preserveWhiteSpace([retval,out] VARIANT_BOOL *pbool);
342
343     [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
344     HRESULT preserveWhiteSpace([in] VARIANT_BOOL pbool);
345
346     [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE)]
347     HRESULT onreadystatechange([in] VARIANT var1);
348
349     [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE)]
350     HRESULT ondataavailable([in] VARIANT var1);
351
352     [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE)]
353     HRESULT ontransformnode([in] VARIANT var1);
354 }
355
356 [
357 local,
358 object,
359 dual,
360 oleautomation,
361 uuid (373984c8-b845-449b-91e7-45ac83036ade)
362 ]
363 interface IXMLDOMSchemaCollection : IDispatch
364 {
365     [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADD)]
366     HRESULT add(
367         [in] BSTR uri,
368         [in] VARIANT var);
369
370     [id(DISPID_XMLDOM_SCHEMACOLLECTION_GET)]
371     HRESULT get(
372         [in] BSTR uri,
373         [retval, out] IXMLDOMNode **node);
374
375     [id(DISPID_XMLDOM_SCHEMACOLLECTION_REMOVE)]
376     HRESULT remove(
377         [in] BSTR uri);
378
379     [propget, id(DISPID_XMLDOM_SCHEMACOLLECTION_LENGTH)]
380     HRESULT length(
381         [retval, out] LONG *length);
382
383     [propget, id(DISPID_VALUE)]
384     HRESULT namespaceURI([in] LONG index, [out, retval] BSTR *len);
385
386     [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADDCOLLECTION)]
387     HRESULT addCollection(
388         [in] IXMLDOMSchemaCollection *otherCollection);
389
390     [propget, id(DISPID_NEWENUM)]
391     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
392 }
393
394 [
395 local,
396 object,
397 dual,
398 oleautomation,
399 uuid (2933BF95-7B36-11d2-B20E-00C04F983E60)
400 ]
401 interface IXMLDOMDocument2 : IXMLDOMDocument
402 {
403     [propget, id(DISPID_XMLDOM_DOCUMENT2_NAMESPACES)]
404     HRESULT namespaces([retval, out] IXMLDOMSchemaCollection **schemaCollection);
405
406     [propget, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
407     HRESULT schemas([retval, out] VARIANT *var1);
408
409     [propputref, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
410     HRESULT schemas([in] VARIANT var1);
411
412     [id(DISPID_XMLDOM_DOCUMENT2_VALIDATE)]
413     HRESULT validate(
414         [retval, out] IXMLDOMParseError **err);
415
416     [id(DISPID_XMLDOM_DOCUMENT2_SETPROPERTY)]
417     HRESULT setProperty(
418         [in] BSTR p,
419         [in] VARIANT var);
420
421     [id(DISPID_XMLDOM_DOCUMENT2_GETPROPERTY)]
422     HRESULT getProperty(
423         [in] BSTR p,
424         [retval, out] VARIANT *var);
425 }
426
427 [
428 local,
429 object,
430 dual,
431 oleautomation,
432 uuid (2933BF82-7B36-11d2-B20E-00C04F983E60)
433 ]
434 interface IXMLDOMNodeList : IDispatch
435 {
436     [propget, id(DISPID_VALUE)]
437     HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
438
439     [propget, id(DISPID_DOM_NODELIST_LENGTH)]
440     HRESULT length([retval, out] LONG *lLength);
441
442     [id(DISPID_XMLDOM_NODELIST_NEXTNODE)]
443     HRESULT nextNode(
444         [retval, out] IXMLDOMNode **outNode);
445
446     [id(DISPID_XMLDOM_NODELIST_RESET)]
447     HRESULT reset();
448
449     [propget, id(DISPID_NEWENUM)]
450     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
451 }
452
453 [
454 local,
455 object,
456 dual,
457 oleautomation,
458 uuid (AA634FC7-5888-44a7-A257-3A47150D3A0E)
459 ]
460 interface IXMLDOMSelection : IXMLDOMNodeList
461 {
462     [propget, id(DISPID_XMLDOM_SELECTION_EXPR)]
463     HRESULT expr([retval, out] BSTR *p);
464
465     [propput, id(DISPID_XMLDOM_SELECTION_EXPR)]
466     HRESULT expr([in] BSTR p);
467
468     [propget, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
469     HRESULT context([retval, out] IXMLDOMNode **ppNode);
470
471     [propputref, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
472     HRESULT context([in] IXMLDOMNode * pNode);
473
474     [id(DISPID_XMLDOM_SELECTION_PEEKNODE)]
475     HRESULT peekNode(
476         [retval, out] IXMLDOMNode **ppNode);
477
478     [id(DISPID_XMLDOM_SELECTION_MATCHES)]
479     HRESULT matches(
480         [in] IXMLDOMNode *pNode,
481         [retval, out] IXMLDOMNode **ppNode);
482
483     [id(DISPID_XMLDOM_SELECTION_REMOVENEXT)]
484     HRESULT removeNext(
485         [retval, out] IXMLDOMNode **ppNode);
486
487     [id(DISPID_XMLDOM_SELECTION_REMOVEALL)]
488     HRESULT removeAll();
489
490     [id(DISPID_XMLDOM_SELECTION_CLONE)]
491     HRESULT clone(
492         [retval, out] IXMLDOMSelection **ppNode);
493
494     [id(DISPID_XMLDOM_SELECTION_GETPROPERTY)]
495     HRESULT getProperty(
496         [in] BSTR p,
497         [retval, out] VARIANT * var);
498
499     [id(DISPID_XMLDOM_SELECTION_SETPROPERTY)]
500     HRESULT setProperty(
501         [in] BSTR p,
502         [in] VARIANT var);
503 }
504
505 [
506 local,
507 object,
508 dual,
509 oleautomation,
510 uuid (2933BF83-7B36-11d2-B20E-00C04F983E60)
511 ]
512 interface IXMLDOMNamedNodeMap : IDispatch
513 {
514     [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)]
515     HRESULT getNamedItem(
516         [in] BSTR p,
517         [retval, out] IXMLDOMNode **outNode);
518
519     [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)]
520     HRESULT setNamedItem(
521         [in] IXMLDOMNode *newNode,
522         [retval, out] IXMLDOMNode **outNode);
523
524     [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)]
525     HRESULT removeNamedItem(
526         [in] BSTR p,
527         [retval, out] IXMLDOMNode **outNode);
528
529     [propget, id(DISPID_VALUE)]
530     HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
531
532     [propget, id(DISPID_DOM_NODELIST_LENGTH)]
533     HRESULT length([retval, out] LONG *lLength);
534
535     [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)]
536     HRESULT getQualifiedItem(
537         [in] BSTR name,
538         [in] BSTR uri,
539         [retval, out] IXMLDOMNode **outNode);
540
541     [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)]
542     HRESULT removeQualifiedItem(
543         [in] BSTR name,
544         [in] BSTR uri,
545         [retval, out] IXMLDOMNode **outNode);
546
547     [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)]
548     HRESULT nextNode(
549         [retval, out] IXMLDOMNode **outNode);
550
551     [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)]
552     HRESULT reset();
553
554     [propget, id(DISPID_NEWENUM)]
555     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
556 }
557
558 [
559 local,
560 object,
561 dual,
562 oleautomation,
563 uuid (3efaa413-272f-11d2-836f-0000f87a7782)
564 ]
565 interface IXMLDOMDocumentFragment : IXMLDOMNode
566 {
567 }
568
569 [
570 local,
571 object,
572 dual,
573 oleautomation,
574 uuid (2933BF84-7B36-11d2-B20E-00C04F983E60)
575 ]
576 interface IXMLDOMCharacterData : IXMLDOMNode
577 {
578     [propget, id(DISPID_DOM_DATA_DATA)]
579     HRESULT data([retval, out] BSTR *p);
580
581     [propput, id(DISPID_DOM_DATA_DATA)]
582     HRESULT data([in] BSTR data);
583
584     [propget, id(DISPID_DOM_DATA_LENGTH)]
585     HRESULT length([retval, out] LONG *len);
586
587     [id(DISPID_DOM_DATA_SUBSTRING)]
588     HRESULT substringData(
589         [in] LONG offset,
590         [in] LONG count,
591         [retval, out] BSTR *p);
592
593     [id(DISPID_DOM_DATA_APPEND)]
594     HRESULT appendData(
595         [in] BSTR p);
596
597     [id(DISPID_DOM_DATA_INSERT)]
598     HRESULT insertData(
599         [in] LONG offset,
600         [in] BSTR p);
601
602     [id(DISPID_DOM_DATA_DELETE)]
603     HRESULT deleteData(
604         [in] LONG offset,
605         [in] LONG count);
606
607     [id(DISPID_DOM_DATA_REPLACE)]
608     HRESULT replaceData(
609         [in] LONG offset,
610         [in] LONG count,
611         [in] BSTR p);
612 }
613
614 [
615 local,
616 object,
617 dual,
618 oleautomation,
619 uuid (2933BF85-7B36-11d2-B20E-00C04F983E60)
620 ]
621 interface IXMLDOMAttribute : IXMLDOMNode
622 {
623     [propget, id(DISPID_DOM_ATTRIBUTE_GETNAME)]
624     HRESULT name([retval, out] BSTR *p);
625
626     [propget, id(DISPID_DOM_ATTRIBUTE_VALUE)]
627     HRESULT value([retval, out] VARIANT *var1);
628
629     [propput, id(DISPID_DOM_ATTRIBUTE_VALUE)]
630     HRESULT value([in] VARIANT var1);
631 }
632
633 [
634 local,
635 object,
636 dual,
637 oleautomation,
638 uuid (2933BF86-7B36-11d2-B20E-00C04F983E60)
639 ]
640 interface IXMLDOMElement : IXMLDOMNode
641 {
642     [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)]
643     HRESULT tagName([retval, out] BSTR *p);
644
645     [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)]
646     HRESULT getAttribute(
647         [in] BSTR p,
648         [retval, out] VARIANT *var);
649
650     [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)]
651     HRESULT setAttribute(
652         [in] BSTR p,
653         [in] VARIANT var);
654
655     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)]
656     HRESULT removeAttribute(
657         [in] BSTR p);
658
659     [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)]
660     HRESULT getAttributeNode(
661         [in] BSTR p,
662         [retval, out] IXMLDOMAttribute **attributeNode);
663
664     [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)]
665     HRESULT setAttributeNode(
666         [in] IXMLDOMAttribute *domAttribute,
667         [retval, out] IXMLDOMAttribute **attributeNode);
668
669     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)]
670     HRESULT removeAttributeNode(
671         [in] IXMLDOMAttribute *domAttribute,
672         [retval, out] IXMLDOMAttribute **attributeNode);
673
674     [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)]
675     HRESULT getElementsByTagName(
676         [in] BSTR p,
677         [retval, out] IXMLDOMNodeList **resultList);
678
679     [id(DISPID_DOM_ELEMENT_NORMALIZE)]
680     HRESULT normalize();
681 }
682
683 [
684 local,
685 object,
686 dual,
687 oleautomation,
688 uuid (2933BF87-7B36-11d2-B20E-00C04F983E60)
689 ]
690 interface IXMLDOMText : IXMLDOMCharacterData
691 {
692     [id(DISPID_DOM_TEXT_SPLITTEXT)]
693     HRESULT splitText(
694         [in] LONG offset,
695         [retval, out] IXMLDOMText **txtNode);
696 }
697
698 [
699 local,
700 object,
701 dual,
702 oleautomation,
703 uuid (2933BF88-7B36-11d2-B20E-00C04F983E60)
704 ]
705 interface IXMLDOMComment : IXMLDOMCharacterData
706 {
707 }
708
709 [
710 local,
711 object,
712 dual,
713 oleautomation,
714 uuid (2933BF89-7B36-11d2-B20E-00C04F983E60)
715 ]
716 interface IXMLDOMProcessingInstruction : IXMLDOMNode
717 {
718     [propget, id(DISPID_DOM_PI_TARGET)]
719     HRESULT target([retval, out] BSTR *p);
720
721     [propget, id(DISPID_DOM_PI_DATA)]
722     HRESULT data([retval, out] BSTR *p);
723
724     [propput, id(DISPID_DOM_PI_DATA)]
725     HRESULT data([in] BSTR p);
726 }
727
728 [
729 local,
730 object,
731 dual,
732 oleautomation,
733 uuid (2933BF8A-7B36-11d2-B20E-00C04F983E60)
734 ]
735 interface IXMLDOMCDATASection : IXMLDOMText
736 {
737 }
738
739 [
740 local,
741 object,
742 dual,
743 oleautomation,
744 uuid (2933BF8B-7B36-11d2-B20E-00C04F983E60)
745 ]
746 interface IXMLDOMDocumentType : IXMLDOMNode
747 {
748     [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)]
749     HRESULT name([retval, out] BSTR *p);
750
751     [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)]
752     HRESULT entities([retval, out] IXMLDOMNamedNodeMap **entityMap);
753
754     [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)]
755     HRESULT notations([retval, out] IXMLDOMNamedNodeMap **notationMap);
756 }
757
758 [
759 local,
760 object,
761 dual,
762 oleautomation,
763 uuid (2933BF8C-7B36-11d2-B20E-00C04F983E60)
764 ]
765 interface IXMLDOMNotation : IXMLDOMNode
766 {
767     [propget, id(DISPID_DOM_NOTATION_PUBLICID)]
768     HRESULT publicId([retval, out] VARIANT *id);
769
770     [propget, id(DISPID_DOM_NOTATION_SYSTEMID)]
771     HRESULT systemId([retval, out] VARIANT *id);
772 }
773
774 [
775 local,
776 object,
777 dual,
778 oleautomation,
779 uuid (2933BF8D-7B36-11d2-B20E-00C04F983E60)
780 ]
781 interface IXMLDOMEntity : IXMLDOMNode
782 {
783     [propget, id(DISPID_DOM_ENTITY_PUBLICID)]
784     HRESULT publicId([retval, out] VARIANT *id1);
785
786     [propget, id(DISPID_DOM_ENTITY_SYSTEMID)]
787     HRESULT systemId([retval, out] VARIANT *id1);
788
789     [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)]
790     HRESULT notationName([retval, out] BSTR *p);
791 }
792
793 [
794 local,
795 object,
796 dual,
797 oleautomation,
798 uuid (2933BF8E-7B36-11d2-B20E-00C04F983E60)
799 ]
800 interface IXMLDOMEntityReference : IXMLDOMNode
801 {
802 }
803
804 [
805 local,
806 object,
807 dual,
808 oleautomation,
809 uuid (2933BF8F-7B36-11d2-B20E-00C04F983E60)
810 ]
811 interface IXMLDOMImplementation : IDispatch
812 {
813     [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)]
814     HRESULT hasFeature(
815         [in] BSTR feature,
816         [in] BSTR version,
817         [retval, out] VARIANT_BOOL *pbool);
818 }
819
820 [
821 local,
822 object,
823 dual,
824 oleautomation,
825 uuid (3efaa425-272f-11d2-836f-0000f87a7782)
826 ]
827 interface IXTLRuntime : IXMLDOMNode
828 {
829     [id(DISPID_XTLRUNTIME_UNIQUEID)]
830     HRESULT uniqueID(
831         [in]IXMLDOMNode *pNode,
832         [retval, out]LONG *pID);
833
834     [id(DISPID_XTLRUNTIME_DEPTH)]
835     HRESULT depth(
836         [in] IXMLDOMNode *pNode,
837         [retval, out]LONG * pDepth);
838
839     [id(DISPID_XTLRUNTIME_CHILDNUMBER)]
840     HRESULT childNumber(
841         [in]IXMLDOMNode *pNode,
842         [retval, out] LONG *pNumber);
843
844     [id(DISPID_XTLRUNTIME_ANCESTORCHILDNUMBER)]
845     HRESULT ancestorChildNumber(
846         [in]BSTR bstr,
847         [in]IXMLDOMNode *pNode,
848         [retval, out]LONG *pNumber);
849
850     [id(DISPID_XTLRUNTIME_ABSOLUTECHILDNUMBER)]
851     HRESULT absoluteChildNumber(
852         [in]IXMLDOMNode *pNode,
853         [retval, out]LONG *pNumber);
854
855     [id(DISPID_XTLRUNTIME_FORMATINDEX)]
856     HRESULT formatIndex(
857         [in] LONG lIndex,
858         [in] BSTR bstr,
859         [retval, out]BSTR *pbstr);
860
861     [id(DISPID_XTLRUNTIME_FORMATNUMBER)]
862     HRESULT formatNumber(
863         [in] double dblNumber,
864         [in] BSTR bstr,
865         [retval, out]BSTR *pbstr);
866
867     [id(DISPID_XTLRUNTIME_FORMATDATE)]
868     HRESULT formatDate(
869         [in] VARIANT var1,
870         [in] BSTR bstr,
871         [optional, in] VARIANT var2,
872         [retval, out]BSTR *pbstr);
873
874     [id(DISPID_XTLRUNTIME_FORMATTIME)]
875     HRESULT formatTime(
876         [in] VARIANT var1,
877         [in] BSTR bstr,
878         [optional, in] VARIANT var2,
879         [retval, out]BSTR *pbstr);
880
881 }
882
883 [
884     uuid(3efaa427-272f-11d2-836f-0000f87a7782)
885 ]
886 dispinterface XMLDOMDocumentEvents
887 {
888     properties:
889     methods:
890     [id (DISPID_XMLDOMEVENT_ONDATAAVAILABLE)]
891     HRESULT ondataavailable();
892
893     [id (DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)]
894     HRESULT onreadystatechange();
895 }
896
897 [
898 local,
899 object,
900 dual,
901 oleautomation,
902 uuid (2933BF92-7B36-11d2-B20E-00C04F983E60)
903 ]
904 interface IXSLProcessor : IDispatch
905 {
906     [propput, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
907     HRESULT input([in] VARIANT var);
908
909     [propget, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
910     HRESULT input([retval, out] VARIANT *var);
911
912     [propget, id(DISPID_XMLDOM_PROCESSOR_XSLTEMPLATE)]
913     HRESULT ownerTemplate([retval, out] IXSLTemplate **ppTemplate);
914
915     [id(DISPID_XMLDOM_PROCESSOR_SETSTARTMODE)]
916     HRESULT setStartMode(
917         [in] BSTR p,
918         [in, defaultvalue("")] BSTR uri);
919
920     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODE)]
921     HRESULT startMode([retval, out] BSTR *p);
922
923     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODEURI)]
924     HRESULT startModeURI([retval, out] BSTR *uri);
925
926     [propput, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
927     HRESULT output([in] VARIANT var);
928
929     [propget, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
930     HRESULT output([retval, out] VARIANT *var);
931
932     [id(DISPID_XMLDOM_PROCESSOR_TRANSFORM)]
933     HRESULT transform(
934         [retval, out] VARIANT_BOOL *pbool);
935
936     [id(DISPID_XMLDOM_PROCESSOR_RESET)]
937     HRESULT reset();
938
939     [propget, id(DISPID_XMLDOM_PROCESSOR_READYSTATE)]
940     HRESULT readyState([retval, out] LONG *pstate);
941
942     [id(DISPID_XMLDOM_PROCESSOR_ADDPARAMETER)]
943     HRESULT addParameter(
944         [in] BSTR p,
945         [in] VARIANT var,
946         [in, defaultvalue("")] BSTR uri);
947
948     [id(DISPID_XMLDOM_PROCESSOR_ADDOBJECT)]
949     HRESULT addObject(
950         [in] IDispatch* obj,
951         [in] BSTR uri);
952
953     [propget, id(DISPID_XMLDOM_PROCESSOR_STYLESHEET)]
954     HRESULT stylesheet([retval, out] IXMLDOMNode **node);
955 }
956
957 [
958 local,
959 object,
960 dual,
961 oleautomation,
962 uuid (2933BF93-7B36-11d2-B20E-00C04F983E60)
963 ]
964 interface IXSLTemplate : IDispatch
965 {
966     [propputref, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
967     HRESULT stylesheet([in] IXMLDOMNode *node);
968
969     [propget, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
970     HRESULT stylesheet([retval, out] IXMLDOMNode **node);
971
972     [id(DISPID_XMLDOM_TEMPLATE_CREATEPROCESSOR)]
973     HRESULT createProcessor(
974         [retval, out] IXSLProcessor **ppProcessor);
975 }
976
977 [
978     object,
979     uuid(ED8C108D-4349-11D2-91A4-00C04F7969E8),
980     odl,
981     dual,
982     oleautomation,
983     pointer_default(unique)
984 ]
985 interface IXMLHTTPRequest : IDispatch
986 {
987     [id(1)]
988     HRESULT open([in] BSTR bstrMethod, [in] BSTR bstrUrl, [in, optional] VARIANT varAsync,
989                  [in,optional] VARIANT username, [in,optional] VARIANT password);
990
991     [id(2)]
992     HRESULT setRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue);
993
994     [id(3)]
995     HRESULT getResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR * value);
996
997     [id(4)]
998     HRESULT getAllResponseHeaders([out, retval] BSTR * pbstrHeaders);
999
1000     [id(5)]
1001     HRESULT send([in, optional] VARIANT body);
1002
1003     [id(6)]
1004     HRESULT abort();
1005
1006     [propget, id(7)]
1007     HRESULT status([out, retval] LONG *pStatus);
1008
1009     [propget, id(8)]
1010     HRESULT statusText([out, retval] BSTR *pStatus);
1011
1012     [propget, id(9)]
1013     HRESULT responseXML([out, retval] IDispatch **pBody);
1014
1015     [propget, id(10)]
1016     HRESULT responseText([out, retval] BSTR *pBody);
1017
1018     [propget, id(11)]
1019     HRESULT responseBody([out, retval] VARIANT *pBody);
1020
1021     [propget, id(12)]
1022     HRESULT responseStream([out, retval] VARIANT *pBody);
1023
1024     [propget, id(13)]
1025     HRESULT readyState([out, retval] LONG *pState);
1026
1027     [propput, id(14)]
1028     HRESULT onreadystatechange([in] IDispatch *pReadyStateSink);
1029 }
1030
1031 [
1032 local,
1033 object,
1034 dual,
1035 oleautomation,
1036 uuid (3efaa426-272f-11d2-836f-0000f87a7782)
1037 ]
1038 interface IXMLDOMParseError : IDispatch
1039 {
1040     [propget, id(DISPID_VALUE)]
1041     HRESULT errorCode([retval, out] LONG *errCode);
1042
1043     [propget, id(DISPID_DOM_ERROR_URL)]
1044     HRESULT url([retval, out] BSTR *p);
1045
1046     [propget, id(DISPID_DOM_ERROR_REASON)]
1047     HRESULT reason([retval, out] BSTR *p);
1048
1049     [propget, id(DISPID_DOM_ERROR_SRCTEXT)]
1050     HRESULT srcText([retval, out] BSTR *p);
1051
1052     [propget, id(DISPID_DOM_ERROR_LINE)]
1053     HRESULT line([retval, out] LONG *lineNo);
1054
1055     [propget, id(DISPID_DOM_ERROR_LINEPOS)]
1056     HRESULT linepos([retval, out] LONG * linePos);
1057
1058     [propget, id(DISPID_DOM_ERROR_FILEPOS)]
1059     HRESULT filepos([retval, out] LONG * filePos);
1060 }
1061
1062 [
1063     uuid(F6D90F11-9C73-11D3-B32E-00C04F990BB4)
1064 ]
1065 coclass DOMDocument
1066 {
1067     [default] interface IXMLDOMDocument2;
1068     [default, source] dispinterface XMLDOMDocumentEvents;
1069 }
1070
1071 [
1072     helpstring("XML DOM Document 2.6"),
1073     progid("Msxml2.DOMDocument.2.6"),
1074     vi_progid("Msxml2.DOMDocument"),
1075     threading(both),
1076     uuid(f5078f1b-c551-11d3-89b9-0000f81fe221)
1077 ]
1078 coclass DOMDocument26
1079 {
1080     [default] interface IXMLDOMDocument2;
1081     [default, source] dispinterface XMLDOMDocumentEvents;
1082 }
1083
1084 [
1085     uuid(F6D90F12-9C73-11D3-B32E-00C04F990BB4)
1086 ]
1087 coclass FreeThreadedDOMDocument
1088 {
1089     [default] interface IXMLDOMDocument2;
1090     [default, source] dispinterface XMLDOMDocumentEvents;
1091 }
1092
1093 [
1094     helpstring("Free Threaded XML DOM Document 2.6"),
1095     progid("Msxml2.FreeThreadedDOMDocument.2.6"),
1096     vi_progid("Msxml2.FreeThreadedDOMDocument"),
1097     threading(both),
1098     uuid(f5078f1c-c551-11d3-89b9-0000f81fe221)
1099 ]
1100 coclass FreeThreadedDOMDocument26
1101 {
1102     [default] interface IXMLDOMDocument2;
1103     [default, source] dispinterface XMLDOMDocumentEvents;
1104 }
1105
1106 [
1107     uuid(f6d90f16-9c73-11d3-b32e-00c04f990bb4)
1108 ]
1109 coclass XMLHTTP
1110 {
1111     [default] interface IXMLHTTPRequest;
1112 }
1113
1114 [
1115     helpstring("XML HTTP 2.6"),
1116     progid("Msxml2.XMLHTTP.2.6"),
1117     vi_progid("Msxml2.XMLHTTP"),
1118     threading(apartment),
1119     uuid(f5078f1e-c551-11d3-89b9-0000f81fe221)
1120 ]
1121 coclass XMLHTTP26
1122 {
1123     [default] interface IXMLHTTPRequest;
1124 }
1125
1126 [
1127     uuid(373984c9-b845-449b-91e7-45ac83036ade)
1128 ]
1129 coclass XMLSchemaCache
1130 {
1131     [default] interface IXMLDOMSchemaCollection;
1132 }
1133
1134 [
1135     helpstring("XML Schema Cache 2.6"),
1136     progid("Msxml2.XMLSchemaCache.2.6"),
1137     vi_progid("Msxml2.XMLSchemaCache"),
1138     threading(both),
1139     uuid(f5078f1d-c551-11d3-89b9-0000f81fe221)
1140 ]
1141 coclass XMLSchemaCache26
1142 {
1143     [default] interface IXMLDOMSchemaCollection;
1144 }
1145
1146 [
1147     uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
1148 ]
1149 coclass XSLTemplate
1150 {
1151     [default] interface IXSLTemplate;
1152 }
1153
1154 [
1155     helpstring("XSL Template 2.6"),
1156     progid("Msxml2.XSLTemplate.2.6"),
1157     vi_progid("Msxml2.XSLTemplate"),
1158     threading(both),
1159     uuid(f5078f21-c551-11d3-89b9-0000f81fe221)
1160 ]
1161 coclass XSLTemplate26
1162 {
1163     [default] interface IXSLTemplate;
1164 }
1165
1166 } /* Library MSXML */