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