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