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