richedit: WM_SETTEXT - Clear modify step flag before any notifications can be sent.
[wine] / include / msxml2.idl
1 /*
2  * Copyright (C) 2005 Vijay Kiran Kamuju
3  * Copyright (C) 2008 Alistair Leslie-Hughes
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18  */
19
20 #include <msxml2did.h>
21 #include <olectl.h>
22
23 import "unknwn.idl";
24 import "objidl.idl";
25 import "oaidl.idl";
26
27 [
28     uuid(f5078f18-c551-11d3-89b9-0000f81fe221),
29     version(3.0),
30     helpstring("Microsoft XML, v3.0")
31 ]
32 library MSXML2
33 {
34
35 importlib("stdole2.tlb");
36
37 interface IXMLDOMImplementation;
38 interface IXMLDOMNode;
39 interface IXMLDOMDocumentFragment;
40 interface IXMLDOMDocument;
41 interface IXMLDOMSchemaCollection;
42 interface IXMLDOMDocument2;
43 interface IXMLDOMNodeList;
44 interface IXMLDOMNamedNodeMap;
45 interface IXMLDOMCharacterData;
46 interface IXMLDOMAttribute;
47 interface IXMLDOMElement;
48 interface IXMLDOMText;
49 interface IXMLDOMComment;
50 interface IXMLDOMProcessingInstruction;
51 interface IXMLDOMCDATASection;
52 interface IXMLDOMDocumentType;
53 interface IXMLDOMNotation;
54 interface IXMLDOMEntity;
55 interface IXMLDOMEntityReference;
56 interface IXMLDOMParseError;
57 interface IXTLRuntime;
58 interface IXSLTemplate;
59 interface IXSLProcessor;
60
61 /* SAX Interfaces */
62 interface ISAXAttributes;
63 interface ISAXContentHandler;
64 interface ISAXDeclHandler;
65 interface ISAXDTDHandler;
66 interface ISAXEntityResolver;
67 interface ISAXErrorHandler;
68 interface ISAXLexicalHandler;
69 interface ISAXLocator;
70 interface ISAXXMLFilter;
71 interface ISAXXMLReader;
72
73 interface IVBSAXAttributes;
74 interface IVBSAXContentHandler;
75 interface IVBSAXDeclHandler;
76 interface IVBSAXDTDHandler;
77 interface IVBSAXEntityResolver;
78 interface IVBSAXErrorHandler;
79 interface IVBSAXLexicalHandler;
80 interface IVBSAXLocator;
81 interface IVBSAXXMLFilter;
82 interface IVBSAXXMLReader;
83
84 interface IMXAttributes;
85 interface IMXReaderControl;
86 interface IMXWriter;
87
88
89 cpp_quote("#define DOMDocument DOMDocument2")
90 cpp_quote("#define CLSID_DOMDocument CLSID_DOMDocument2")
91
92 cpp_quote("#ifndef __WIDL_XMLDOM_H")
93 typedef enum tagDOMNodeType 
94 {  
95     NODE_INVALID                = 0,
96     NODE_ELEMENT                = 1,
97     NODE_ATTRIBUTE              = 2,
98     NODE_TEXT                   = 3,
99     NODE_CDATA_SECTION          = 4,
100     NODE_ENTITY_REFERENCE       = 5,
101     NODE_ENTITY                 = 6,
102     NODE_PROCESSING_INSTRUCTION = 7,
103     NODE_COMMENT                = 8,
104     NODE_DOCUMENT               = 9,
105     NODE_DOCUMENT_TYPE          = 10,
106     NODE_DOCUMENT_FRAGMENT      = 11,
107     NODE_NOTATION               = 12
108 } DOMNodeType;
109 cpp_quote("#endif   /* __WIDL_XMLDOM_H */")
110
111 [
112 local,
113 object,
114 uuid (2933BF80-7B36-11d2-B20E-00C04F983E60)
115 ]
116 interface IXMLDOMNode : IDispatch
117 {
118     [propget, id(DISPID_DOM_NODE_NODENAME)]
119     HRESULT nodeName([retval, out] BSTR *p);
120
121     [propget, id(DISPID_DOM_NODE_NODEVALUE)]
122     HRESULT nodeValue([retval, out] VARIANT *var1);
123
124     [propput, id(DISPID_DOM_NODE_NODEVALUE)]
125     HRESULT nodeValue([in] VARIANT var1);
126
127     [propget, id(DISPID_DOM_NODE_NODETYPE)]
128     HRESULT nodeType([retval, out] DOMNodeType *domNodeType);
129
130     [propget, id(DISPID_DOM_NODE_PARENTNODE)]
131     HRESULT parentNode([retval, out] IXMLDOMNode **parent);
132
133     [propget, id(DISPID_DOM_NODE_CHILDNODES)]
134     HRESULT childNodes([retval, out] IXMLDOMNodeList **outList);
135
136     [propget, id(DISPID_DOM_NODE_FIRSTCHILD)]
137     HRESULT firstChild([retval, out] IXMLDOMNode **domNode);
138
139     [propget, id(DISPID_DOM_NODE_LASTCHILD)]
140     HRESULT lastChild([retval, out] IXMLDOMNode **domNode);
141
142     [propget, id(DISPID_DOM_NODE_PREVIOUSSIBLING)]
143     HRESULT previousSibling([retval, out] IXMLDOMNode **domNode);
144
145     [propget, id(DISPID_DOM_NODE_NEXTSIBLING)]
146     HRESULT nextSibling([retval, out] IXMLDOMNode **domNode);
147
148     [propget, id(DISPID_DOM_NODE_ATTRIBUTES)]
149     HRESULT attributes([retval, out] IXMLDOMNamedNodeMap **attributeMap);
150
151     [id(DISPID_DOM_NODE_INSERTBEFORE)]
152     HRESULT insertBefore(
153         [in] IXMLDOMNode *newNode,
154         [in] VARIANT var1,
155         [retval, out] IXMLDOMNode **outOldNode);
156
157     [id(DISPID_DOM_NODE_REPLACECHILD)]
158     HRESULT replaceChild(
159         [in] IXMLDOMNode *newNode,
160         [in] IXMLDOMNode *oldNode,
161         [retval, out] IXMLDOMNode **outOldNode);
162
163     [id(DISPID_DOM_NODE_REMOVECHILD)]
164     HRESULT removeChild(
165         [in] IXMLDOMNode *domNode,
166         [retval, out] IXMLDOMNode **oldNode);
167
168     [id(DISPID_DOM_NODE_APPENDCHILD)]
169     HRESULT appendChild(
170         [in] IXMLDOMNode *newNode,
171         [retval, out] IXMLDOMNode **outNewNode);
172
173     [id(DISPID_DOM_NODE_HASCHILDNODES)]
174     HRESULT hasChildNodes(
175         [retval, out] VARIANT_BOOL *pbool);
176
177     [propget, id(DISPID_DOM_NODE_OWNERDOC)]
178     HRESULT ownerDocument([retval, out] IXMLDOMDocument **domDocument);
179
180     [id(DISPID_DOM_NODE_CLONENODE)]
181     HRESULT cloneNode(
182         [in] VARIANT_BOOL pbool,
183         [retval, out] IXMLDOMNode **outNode);
184
185     [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE)]
186     HRESULT nodeTypeString([retval, out] BSTR *p);
187
188     [propget, id(DISPID_XMLDOM_NODE_TEXT)]
189     HRESULT text([retval, out] BSTR *p);
190
191     [propput, id(DISPID_XMLDOM_NODE_TEXT)]
192     HRESULT text([in] BSTR p);
193
194     [propget, id(DISPID_XMLDOM_NODE_SPECIFIED)]
195     HRESULT specified([retval, out] VARIANT_BOOL *pbool);
196
197     [propget, id(DISPID_XMLDOM_NODE_DEFINITION)]
198     HRESULT definition([retval,out] IXMLDOMNode **domNode);
199
200     [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
201     HRESULT nodeTypedValue([retval, out] VARIANT *var1);
202
203     [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
204     HRESULT nodeTypedValue([in] VARIANT var1);
205
206     [propget, id(DISPID_XMLDOM_NODE_DATATYPE)]
207     HRESULT dataType([retval, out] VARIANT *var1);
208
209     [propput, id(DISPID_XMLDOM_NODE_DATATYPE)]
210     HRESULT dataType([in] BSTR p);
211
212     [propget, id(DISPID_XMLDOM_NODE_XML)]
213     HRESULT xml([retval, out] BSTR *p);
214
215     [id(DISPID_XMLDOM_NODE_TRANSFORMNODE)]
216     HRESULT transformNode(
217         [in] IXMLDOMNode *domNode,
218         [retval, out] BSTR *p);
219
220     [id(DISPID_XMLDOM_NODE_SELECTNODES)]
221     HRESULT selectNodes(
222         [in] BSTR p,
223         [retval, out] IXMLDOMNodeList **outList);
224
225     [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE)]
226     HRESULT selectSingleNode(
227         [in] BSTR p,
228         [retval, out] IXMLDOMNode **outNode);
229
230     [propget,id(DISPID_XMLDOM_NODE_PARSED)]
231     HRESULT parsed([retval, out] VARIANT_BOOL *pbool);
232
233     [propget, id(DISPID_XMLDOM_NODE_NAMESPACE)]
234     HRESULT namespaceURI([retval, out] BSTR *p);
235
236     [propget, id(DISPID_XMLDOM_NODE_PREFIX)]
237     HRESULT prefix([retval, out] BSTR *p);
238
239     [propget, id(DISPID_XMLDOM_NODE_BASENAME)]
240     HRESULT baseName([retval, out] BSTR *p);
241
242     [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT)]
243     HRESULT transformNodeToObject(
244         [in] IXMLDOMNode *domNode,
245         [in] VARIANT var1);
246 }
247
248 [
249 local,
250 object,
251 uuid (2933BF81-7B36-11d2-B20E-00C04F983E60)
252 ]
253 interface IXMLDOMDocument : IXMLDOMNode
254 {
255     [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)]
256     HRESULT doctype([retval, out] IXMLDOMDocumentType **docType);
257
258     [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION)]
259     HRESULT implementation([retval, out] IXMLDOMImplementation **impl);
260
261     [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
262     HRESULT documentElement([retval, out] IXMLDOMElement **domElement);
263
264     [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
265     HRESULT documentElement([in] IXMLDOMElement *domElement);
266
267     [id(DISPID_DOM_DOCUMENT_CREATEELEMENT)]
268     HRESULT createElement(
269         [in] BSTR p,
270         [retval, out] IXMLDOMElement **domElement);
271
272     [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT)]
273     HRESULT createDocumentFragment(
274         [retval, out] IXMLDOMDocumentFragment **docFrag);
275
276     [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE)]
277     HRESULT createTextNode(
278         [in] BSTR p,
279         [retval, out] IXMLDOMText **text);
280
281     [id(DISPID_DOM_DOCUMENT_CREATECOMMENT)]
282     HRESULT createComment(
283         [in] BSTR p,
284         [retval, out] IXMLDOMComment **comment);
285
286     [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION)]
287     HRESULT createCDATASection(
288         [in] BSTR p,
289         [retval, out] IXMLDOMCDATASection **cdata);
290
291     [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION)]
292     HRESULT createProcessingInstruction(
293         [in] BSTR target,
294         [in] BSTR data,
295         [retval, out] IXMLDOMProcessingInstruction **pi);
296
297     [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE)]
298     HRESULT createAttribute(
299         [in] BSTR p,
300         [retval, out] IXMLDOMAttribute **attribute);
301
302     [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE)]
303     HRESULT createEntityReference(
304         [in] BSTR p,
305         [retval, out] IXMLDOMEntityReference **entityRef);
306
307     [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME)]
308     HRESULT getElementsByTagName(
309         [in] BSTR p,
310         [retval, out] IXMLDOMNodeList **resultList);
311
312     [id(DISPID_XMLDOM_DOCUMENT_CREATENODE)]
313     HRESULT createNode(
314         [in] VARIANT var, 
315         [in] BSTR name, 
316         [in] BSTR uri,
317         [retval, out] IXMLDOMNode **node);
318
319     [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID)]
320     HRESULT nodeFromID( 
321         [in] BSTR id,
322         [retval, out] IXMLDOMNode **node);
323
324     [id(DISPID_XMLDOM_DOCUMENT_LOAD)]
325     HRESULT load(
326         [in] VARIANT var1,
327         [retval, out] VARIANT_BOOL *pbool);
328
329     [propget, id(DISPID_READYSTATE)]
330     HRESULT readyState([retval, out] long *value);
331
332     [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR)]
333     HRESULT parseError([retval, out] IXMLDOMParseError **err);
334
335     [propget, id(DISPID_XMLDOM_DOCUMENT_URL)]
336     HRESULT url([retval, out] BSTR *p);
337
338     [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
339     HRESULT async([retval, out] VARIANT_BOOL *pbool);
340
341     [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
342     HRESULT async([in] VARIANT_BOOL pbool);
343
344     [id(DISPID_XMLDOM_DOCUMENT_ABORT)]
345     HRESULT abort();
346
347     [id(DISPID_XMLDOM_DOCUMENT_LOADXML)]
348     HRESULT loadXML( 
349         [in] BSTR p,
350         [out, retval] VARIANT_BOOL *pbool);
351
352     [id(DISPID_XMLDOM_DOCUMENT_SAVE)]
353     HRESULT save( 
354         [in] VARIANT var1);
355
356     [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
357     HRESULT validateOnParse([retval, out] VARIANT_BOOL *pbool);
358
359     [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
360     HRESULT validateOnParse([in] VARIANT_BOOL pbool);
361
362     [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
363     HRESULT resolveExternals([retval,out] VARIANT_BOOL *pbool);
364
365     [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
366     HRESULT resolveExternals([in] VARIANT_BOOL pbool);
367
368     [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
369     HRESULT preserveWhiteSpace([retval,out] VARIANT_BOOL *pbool);
370
371     [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
372     HRESULT preserveWhiteSpace([in] VARIANT_BOOL pbool);
373
374     [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE)]
375     HRESULT onreadystatechange([in] VARIANT var1);
376
377     [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE)]
378     HRESULT ondataavailable([in] VARIANT var1);
379
380     [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE)]
381     HRESULT ontransformnode([in] VARIANT var1);
382 }
383
384 [
385 local,
386 object,
387 uuid (373984c8-b845-449b-91e7-45ac83036ade)
388 ]
389 interface IXMLDOMSchemaCollection : IDispatch
390 {
391     [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADD)]
392     HRESULT add(
393         [in] BSTR uri,
394         [in] VARIANT var);
395
396     [id(DISPID_XMLDOM_SCHEMACOLLECTION_GET)]
397     HRESULT get(
398         [in] BSTR uri,
399         [retval, out] IXMLDOMNode **node);
400
401     [id(DISPID_XMLDOM_SCHEMACOLLECTION_REMOVE)]
402     HRESULT remove(
403         [in] BSTR uri);
404
405     [propget, id(DISPID_XMLDOM_SCHEMACOLLECTION_LENGTH)]
406     HRESULT length(
407         [retval, out] long *length);
408
409     [propget, id(DISPID_VALUE)]
410     HRESULT namespaceURI([in] long index, [out, retval] BSTR *len);
411
412     [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADDCOLLECTION)]
413     HRESULT addCollection(
414         [in] IXMLDOMSchemaCollection *otherCollection);
415
416     [propget, id(DISPID_NEWENUM)]
417     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
418 }
419
420 [
421 local,
422 object,
423 uuid (2933BF95-7B36-11d2-B20E-00C04F983E60)
424 ]
425 interface IXMLDOMDocument2 : IXMLDOMDocument
426 {
427     [propget, id(DISPID_XMLDOM_DOCUMENT2_NAMESPACES)]
428     HRESULT namespaces([retval, out] IXMLDOMSchemaCollection **schemaCollection);
429
430     [propget, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
431     HRESULT schemas([retval, out] VARIANT *var1);
432
433     [propputref, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
434     HRESULT schemas([in] VARIANT var1);
435
436     [id(DISPID_XMLDOM_DOCUMENT2_VALIDATE)]
437     HRESULT validate(
438         [retval, out] IXMLDOMParseError **err);
439
440     [id(DISPID_XMLDOM_DOCUMENT2_SETPROPERTY)]
441     HRESULT setProperty(
442         [in] BSTR p,
443         [in] VARIANT var);
444
445     [id(DISPID_XMLDOM_DOCUMENT2_GETPROPERTY)]
446     HRESULT getProperty(
447         [in] BSTR p,
448         [retval, out] VARIANT *var);
449 }
450
451 [
452 local,
453 object,
454 uuid (2933BF82-7B36-11d2-B20E-00C04F983E60)
455 ]
456 interface IXMLDOMNodeList : IDispatch
457 {
458     [propget, id(DISPID_VALUE)]
459     HRESULT item([in] long lIndex, [retval, out] IXMLDOMNode **outNode);
460
461     [propget, id(DISPID_DOM_NODELIST_LENGTH)]
462     HRESULT length([retval, out] long *lLength);
463
464     [id(DISPID_XMLDOM_NODELIST_NEXTNODE)]
465     HRESULT nextNode(
466         [retval, out] IXMLDOMNode **outNode);
467
468     [id(DISPID_XMLDOM_NODELIST_RESET)]
469     HRESULT reset();
470
471     [propget, id(DISPID_NEWENUM)]
472     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
473 }
474
475 [
476 local,
477 object,
478 uuid (AA634FC7-5888-44a7-A257-3A47150D3A0E)
479 ]
480 interface IXMLDOMSelection : IXMLDOMNodeList
481 {
482     [propget, id(DISPID_XMLDOM_SELECTION_EXPR)]
483     HRESULT expr([retval, out] BSTR *p);
484
485     [propput, id(DISPID_XMLDOM_SELECTION_EXPR)]
486     HRESULT expr([in] BSTR p);
487
488     [propget, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
489     HRESULT context([retval, out] IXMLDOMNode **ppNode);
490
491     [propputref, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
492     HRESULT context([in] IXMLDOMNode * pNode);
493
494     [id(DISPID_XMLDOM_SELECTION_PEEKNODE)]
495     HRESULT peekNode(
496         [retval, out] IXMLDOMNode **ppNode);
497
498     [id(DISPID_XMLDOM_SELECTION_MATCHES)]
499     HRESULT matches(
500         [in] IXMLDOMNode *pNode,
501         [retval, out] IXMLDOMNode **ppNode);
502
503     [id(DISPID_XMLDOM_SELECTION_REMOVENEXT)] 
504     HRESULT removeNext(
505         [retval, out] IXMLDOMNode **ppNode);
506
507     [id(DISPID_XMLDOM_SELECTION_REMOVEALL)]
508     HRESULT removeAll();
509
510     [id(DISPID_XMLDOM_SELECTION_CLONE)]
511     HRESULT clone(
512         [retval, out] IXMLDOMSelection **ppNode);
513
514     [id(DISPID_XMLDOM_SELECTION_GETPROPERTY)]
515     HRESULT getProperty(
516         [in] BSTR p,
517         [retval, out] VARIANT * var);
518
519     [id(DISPID_XMLDOM_SELECTION_SETPROPERTY)]
520     HRESULT setProperty(
521         [in] BSTR p,
522         [in] VARIANT var);
523 }
524
525 [
526 local,
527 object,
528 uuid (2933BF83-7B36-11d2-B20E-00C04F983E60)
529 ]
530 interface IXMLDOMNamedNodeMap : IDispatch
531 {
532     [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)]
533     HRESULT getNamedItem(
534         [in] BSTR p,
535         [retval, out] IXMLDOMNode **outNode);
536
537     [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)]
538     HRESULT setNamedItem(
539         [in] IXMLDOMNode *newNode,
540         [retval, out] IXMLDOMNode **outNode);
541
542     [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)]
543     HRESULT removeNamedItem(
544         [in] BSTR p,
545         [retval, out] IXMLDOMNode **outNode);
546
547     [propget, id(DISPID_VALUE)]
548     HRESULT item([in] long lIndex, [retval, out] IXMLDOMNode **outNode);
549
550     [propget, id(DISPID_DOM_NODELIST_LENGTH)]
551     HRESULT length([retval, out] long *lLength);
552
553     [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)]
554     HRESULT getQualifiedItem(
555         [in] BSTR name,
556         [in] BSTR uri,
557         [retval, out] IXMLDOMNode **outNode);
558
559     [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)]
560     HRESULT removeQualifiedItem(
561         [in] BSTR name,
562         [in] BSTR uri,
563         [retval, out] IXMLDOMNode **outNode);
564
565     [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)]
566     HRESULT nextNode(
567         [retval, out] IXMLDOMNode **outNode);
568
569     [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)]
570     HRESULT reset();
571
572     [propget, id(DISPID_NEWENUM)]
573     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
574 }
575  
576 [
577 local,
578 object,
579 uuid (3efaa413-272f-11d2-836f-0000f87a7782)
580 ]
581 interface IXMLDOMDocumentFragment : IXMLDOMNode 
582 {
583 }
584
585 [
586 local,
587 object,
588 uuid (2933BF84-7B36-11d2-B20E-00C04F983E60)
589 ]
590 interface IXMLDOMCharacterData : IXMLDOMNode 
591 {
592     [propget, id(DISPID_DOM_DATA_DATA)]
593     HRESULT data([retval, out] BSTR *p);
594
595     [propput, id(DISPID_DOM_DATA_DATA)]
596     HRESULT data([in] BSTR data);
597
598     [propget, id(DISPID_DOM_DATA_LENGTH)]
599     HRESULT length([retval, out] long *len);
600
601     [id(DISPID_DOM_DATA_SUBSTRING)]
602     HRESULT substringData(
603         [in] long offset,
604         [in] long count,
605         [retval, out] BSTR *p);
606
607     [id(DISPID_DOM_DATA_APPEND)]
608     HRESULT appendData(
609         [in] BSTR p);
610
611     [id(DISPID_DOM_DATA_INSERT)]
612     HRESULT insertData(
613         [in] long offset,
614         [in] BSTR p);
615
616     [id(DISPID_DOM_DATA_DELETE)]
617     HRESULT deleteData(
618         [in] long offset,
619         [in] long count);
620
621     [id(DISPID_DOM_DATA_REPLACE)]
622     HRESULT replaceData(
623         [in] long offset,
624         [in] long count,
625         [in] BSTR p);
626 }
627
628 [
629 local,
630 object,
631 uuid (2933BF85-7B36-11d2-B20E-00C04F983E60)
632 ]
633 interface IXMLDOMAttribute : IXMLDOMNode 
634 {
635     [propget, id(DISPID_DOM_ATTRIBUTE_GETNAME)]
636     HRESULT name([retval, out] BSTR *p);
637
638     [propget, id(DISPID_DOM_ATTRIBUTE_VALUE)]
639     HRESULT value([retval, out] VARIANT *var1);
640
641     [propput, id(DISPID_DOM_ATTRIBUTE_VALUE)]
642     HRESULT value([in] VARIANT var1);
643 }
644
645 [
646 local,
647 object,
648 uuid (2933BF86-7B36-11d2-B20E-00C04F983E60)
649 ]
650 interface IXMLDOMElement : IXMLDOMNode 
651 {
652     [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)]
653     HRESULT tagName([retval, out] BSTR *p);
654
655     [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)]
656     HRESULT getAttribute(
657         [in] BSTR p,
658         [retval, out] VARIANT *var);
659
660     [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)]
661     HRESULT setAttribute(
662         [in] BSTR p,
663         [in] VARIANT var);
664
665     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)]
666     HRESULT removeAttribute(
667         [in] BSTR p);
668
669     [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)]
670     HRESULT getAttributeNode(
671         [in] BSTR p,
672         [retval, out] IXMLDOMAttribute **attributeNode);
673
674     [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)]
675     HRESULT setAttributeNode(
676         [in] IXMLDOMAttribute *domAttribute,
677         [retval, out] IXMLDOMAttribute **attributeNode);
678
679     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)]
680     HRESULT removeAttributeNode(
681         [in] IXMLDOMAttribute *domAttribute,
682         [retval, out] IXMLDOMAttribute **attributeNode);
683
684     [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)]
685     HRESULT getElementsByTagName(
686         [in] BSTR p,
687         [retval, out] IXMLDOMNodeList **resultList);
688
689     [id(DISPID_DOM_ELEMENT_NORMALIZE)]
690     HRESULT normalize();
691 }
692
693 [
694 local,
695 object,
696 uuid (2933BF87-7B36-11d2-B20E-00C04F983E60)
697 ]
698 interface IXMLDOMText : IXMLDOMCharacterData 
699 {
700     [id(DISPID_DOM_TEXT_SPLITTEXT)]
701     HRESULT splitText(
702         [in] long offset,
703         [retval, out] IXMLDOMText **txtNode);
704 }
705
706 [
707 local,
708 object,
709 uuid (2933BF88-7B36-11d2-B20E-00C04F983E60)
710 ]
711 interface IXMLDOMComment : IXMLDOMCharacterData 
712 {
713 }
714
715 [
716 local,
717 object,
718 uuid (2933BF89-7B36-11d2-B20E-00C04F983E60)
719 ]
720 interface IXMLDOMProcessingInstruction : IXMLDOMNode 
721 {
722     [propget, id(DISPID_DOM_PI_TARGET)]
723     HRESULT target([retval, out] BSTR *p);
724
725     [propget, id(DISPID_DOM_PI_DATA)]
726     HRESULT data([retval, out] BSTR *p);
727
728     [propput, id(DISPID_DOM_PI_DATA)]
729     HRESULT data([in] BSTR p);
730 }
731
732 [
733 local,
734 object,
735 uuid (2933BF8A-7B36-11d2-B20E-00C04F983E60)
736 ]
737 interface IXMLDOMCDATASection : IXMLDOMText 
738 {
739 }
740
741 [
742 local,
743 object,
744 uuid (2933BF8B-7B36-11d2-B20E-00C04F983E60)
745 ]
746 interface IXMLDOMDocumentType : IXMLDOMNode 
747 {
748     [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)]
749     HRESULT name([retval, out] BSTR *p);
750
751     [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)]
752     HRESULT entities([retval, out] IXMLDOMNamedNodeMap **entityMap);
753
754     [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)]
755     HRESULT notations([retval, out] IXMLDOMNamedNodeMap **notationMap);
756 }
757
758 [
759 local,
760 object,
761 uuid (2933BF8C-7B36-11d2-B20E-00C04F983E60)
762 ]
763 interface IXMLDOMNotation : IXMLDOMNode 
764 {
765     [propget, id(DISPID_DOM_NOTATION_PUBLICID)]
766     HRESULT publicId([retval, out] VARIANT *id);
767
768     [propget, id(DISPID_DOM_NOTATION_SYSTEMID)]
769     HRESULT systemId([retval, out] VARIANT *id);
770 }
771
772 [
773 local,
774 object,
775 uuid (2933BF8D-7B36-11d2-B20E-00C04F983E60)
776 ]
777 interface IXMLDOMEntity : IXMLDOMNode 
778 {
779     [propget, id(DISPID_DOM_ENTITY_PUBLICID)]
780     HRESULT publicId([retval, out] VARIANT *id1);
781
782     [propget, id(DISPID_DOM_ENTITY_SYSTEMID)]
783     HRESULT systemId([retval, out] VARIANT *id1);
784
785     [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)]
786     HRESULT notationName([retval, out] BSTR *p);
787 }
788
789 [
790 local,
791 object,
792 uuid (2933BF8E-7B36-11d2-B20E-00C04F983E60)
793 ]
794 interface IXMLDOMEntityReference : IXMLDOMNode 
795 {
796 }
797
798 [
799 local,
800 object,
801 uuid (2933BF8F-7B36-11d2-B20E-00C04F983E60)
802 ]
803 interface IXMLDOMImplementation : IDispatch
804 {
805     [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)]
806     HRESULT hasFeature(
807         [in] BSTR feature,
808         [in] BSTR version,
809         [retval, out] VARIANT_BOOL *pbool);
810 }
811
812 [
813 local,
814 object,
815 uuid (3efaa425-272f-11d2-836f-0000f87a7782)
816 ]
817 interface IXTLRuntime : IXMLDOMNode
818 {
819     [id(DISPID_XTLRUNTIME_UNIQUEID)] 
820     HRESULT uniqueID(
821         [in]IXMLDOMNode *pNode, 
822         [retval, out]long *pID);
823
824     [id(DISPID_XTLRUNTIME_DEPTH)]
825     HRESULT depth(
826         [in] IXMLDOMNode *pNode, 
827         [retval, out]long * pDepth);
828
829     [id(DISPID_XTLRUNTIME_CHILDNUMBER)] 
830     HRESULT childNumber(
831         [in]IXMLDOMNode *pNode, 
832         [retval, out] long *pNumber);
833
834     [id(DISPID_XTLRUNTIME_ANCESTORCHILDNUMBER)]
835     HRESULT ancestorChildNumber(
836         [in]BSTR bstr, 
837         [in]IXMLDOMNode *pNode, 
838         [retval, out]long *pNumber);
839
840     [id(DISPID_XTLRUNTIME_ABSOLUTECHILDNUMBER)]
841     HRESULT absoluteChildNumber(
842         [in]IXMLDOMNode *pNode, 
843         [retval, out]long *pNumber);
844
845     [id(DISPID_XTLRUNTIME_FORMATINDEX)]
846     HRESULT formatIndex(
847         [in] long lIndex, 
848         [in] BSTR bstr, 
849         [retval, out]BSTR *pbstr);
850
851     [id(DISPID_XTLRUNTIME_FORMATNUMBER)]
852     HRESULT formatNumber(
853         [in] double dblNumber, 
854         [in] BSTR bstr, 
855         [retval, out]BSTR *pbstr);
856
857     [id(DISPID_XTLRUNTIME_FORMATDATE)]
858     HRESULT formatDate(
859         [in] VARIANT var1, 
860         [in] BSTR bstr, 
861         [optional, in] VARIANT var2,
862         [retval, out]BSTR *pbstr);
863
864     [id(DISPID_XTLRUNTIME_FORMATTIME)]
865     HRESULT formatTime(
866         [in] VARIANT var1, 
867         [in] BSTR bstr, 
868         [optional, in] VARIANT var2,
869         [retval, out]BSTR *pbstr);
870
871 }
872
873 [
874     uuid(3efaa427-272f-11d2-836f-0000f87a7782)
875 ]
876 dispinterface XMLDOMDocumentEvents 
877 {
878     properties:
879     methods:
880     [id (DISPID_XMLDOMEVENT_ONDATAAVAILABLE)]  
881     HRESULT ondataavailable();
882  
883     [id (DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)] 
884     HRESULT onreadystatechange();
885 }
886
887 [
888 local,
889 object,
890 uuid (2933BF92-7B36-11d2-B20E-00C04F983E60)
891 ]
892 interface IXSLProcessor : IDispatch
893 {
894     [propput, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
895     HRESULT input([in] VARIANT var);
896
897     [propget, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
898     HRESULT input([retval, out] VARIANT *var);
899
900     [propget, id(DISPID_XMLDOM_PROCESSOR_XSLTEMPLATE)]
901     HRESULT ownerTemplate([retval, out] IXSLTemplate **ppTemplate);
902
903     [id(DISPID_XMLDOM_PROCESSOR_SETSTARTMODE)]
904     HRESULT setStartMode(
905         [in] BSTR p, 
906         [in, defaultvalue("")] BSTR uri);
907
908     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODE)]
909     HRESULT startMode([retval, out] BSTR *p);
910
911     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODEURI)]
912     HRESULT startModeURI([retval, out] BSTR *uri);
913
914     [propput, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
915     HRESULT output([in] VARIANT var);
916
917     [propget, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
918     HRESULT output([retval, out] VARIANT *var);
919
920     [id(DISPID_XMLDOM_PROCESSOR_TRANSFORM)]
921     HRESULT transform(
922         [retval, out] VARIANT_BOOL *pbool);
923
924     [id(DISPID_XMLDOM_PROCESSOR_RESET)]
925     HRESULT reset();
926
927     [propget, id(DISPID_XMLDOM_PROCESSOR_READYSTATE)]
928     HRESULT readyState([retval, out] long *pstate);
929
930     [id(DISPID_XMLDOM_PROCESSOR_ADDPARAMETER)]
931     HRESULT addParameter(
932         [in] BSTR p, 
933         [in] VARIANT var, 
934         [in, defaultvalue("")] BSTR uri);
935
936     [id(DISPID_XMLDOM_PROCESSOR_ADDOBJECT)]
937     HRESULT addObject(
938         [in] IDispatch* obj, 
939         [in] BSTR uri);
940
941     [propget, id(DISPID_XMLDOM_PROCESSOR_STYLESHEET)]
942     HRESULT stylesheet([retval, out] IXMLDOMNode **node);
943
944
945 [
946 local,
947 object,
948 uuid (2933BF93-7B36-11d2-B20E-00C04F983E60)
949 ]
950 interface IXSLTemplate : IDispatch
951 {
952     [propputref, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
953     HRESULT stylesheet([in] IXMLDOMNode *node);
954
955     [propget, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
956     HRESULT stylesheet([retval, out] IXMLDOMNode **node);
957
958     [id(DISPID_XMLDOM_TEMPLATE_CREATEPROCESSOR)]
959     HRESULT createProcessor(
960         [retval, out] IXSLProcessor **ppProcessor);
961
962
963 [
964 local,
965 object,
966 uuid (3efaa426-272f-11d2-836f-0000f87a7782)
967 ]
968 interface IXMLDOMParseError : IDispatch
969 {
970     [propget, id(DISPID_VALUE)]
971     HRESULT errorCode([retval, out] long *errCode);
972
973     [propget, id(DISPID_DOM_ERROR_URL)]
974     HRESULT url([retval, out] BSTR *p);
975
976     [propget, id(DISPID_DOM_ERROR_REASON)]
977     HRESULT reason([retval, out] BSTR *p);
978
979     [propget, id(DISPID_DOM_ERROR_SRCTEXT)]
980     HRESULT srcText([retval, out] BSTR *p);
981
982     [propget, id(DISPID_DOM_ERROR_LINE)]
983     HRESULT line([retval, out] long *lineNo);
984
985     [propget, id(DISPID_DOM_ERROR_LINEPOS)]
986     HRESULT linepos([retval, out] long * linePos);
987
988     [propget, id(DISPID_DOM_ERROR_FILEPOS)]
989     HRESULT filepos([retval, out] long * filePos);
990 }
991
992 [
993     uuid(F6D90F11-9C73-11D3-B32E-00C04F990BB4)
994 ]
995 coclass DOMDocument
996 {
997     [default] interface IXMLDOMDocument2;
998     [default, source] dispinterface XMLDOMDocumentEvents;
999 }
1000
1001 [
1002     uuid(f5078f1b-c551-11d3-89b9-0000f81fe221)
1003 ]
1004 coclass DOMDocument26
1005 {
1006     [default] interface IXMLDOMDocument2;
1007     [default, source] dispinterface XMLDOMDocumentEvents;
1008 }
1009
1010 [
1011     uuid(f5078f32-c551-11d3-89b9-0000f81fe221)
1012 ]
1013 coclass DOMDocument30
1014 {
1015     [default] interface IXMLDOMDocument2;
1016     [default, source] dispinterface XMLDOMDocumentEvents;
1017 }
1018
1019
1020 [
1021     uuid(F6D90F12-9C73-11D3-B32E-00C04F990BB4)
1022 ]
1023 coclass FreeThreadedDOMDocument
1024 {
1025     [default] interface IXMLDOMDocument2;
1026     [default, source] dispinterface XMLDOMDocumentEvents;
1027 }
1028
1029 [
1030     uuid(f5078f1c-c551-11d3-89b9-0000f81fe221)
1031 ]
1032 coclass FreeThreadedDOMDocument26
1033 {
1034     [default] interface IXMLDOMDocument2;
1035     [default, source] dispinterface XMLDOMDocumentEvents;
1036 }
1037
1038 [
1039     uuid(f5078f33-c551-11d3-89b9-0000f81fe221)
1040 ]
1041 coclass FreeThreadedDOMDocument30
1042 {
1043     [default] interface IXMLDOMDocument2;
1044     [default, source] dispinterface XMLDOMDocumentEvents;
1045 }
1046
1047 [
1048     uuid(373984c9-b845-449b-91e7-45ac83036ade)
1049 ]
1050 coclass XMLSchemaCache
1051 {
1052     [default] interface IXMLDOMSchemaCollection;
1053 }
1054
1055 [
1056     uuid(f5078f1d-c551-11d3-89b9-0000f81fe221)
1057 ]
1058 coclass XMLSchemaCache26
1059 {
1060     [default] interface IXMLDOMSchemaCollection;
1061 }
1062
1063 [
1064     uuid(f5078f34-c551-11d3-89b9-0000f81fe221)
1065 ]
1066 coclass XMLSchemaCache30
1067 {
1068     [default] interface IXMLDOMSchemaCollection;
1069 }
1070
1071 [
1072     uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
1073 ]
1074 coclass XSLTemplate
1075 {
1076     [default] interface IXSLTemplate;
1077 }
1078
1079 [
1080     uuid(f5078f21-c551-11d3-89b9-0000f81fe221)
1081 ]
1082 coclass XSLTemplate26
1083 {
1084     [default] interface IXSLTemplate;
1085 }
1086
1087 [
1088     uuid(f5078f36-c551-11d3-89b9-0000f81fe221)
1089 ]
1090 coclass XSLTemplate30
1091 {
1092     [default] interface IXSLTemplate;
1093 }
1094
1095 /*
1096  * Sax Interfaces
1097  */
1098 [
1099     object,
1100     local,
1101     uuid(f078abe1-45d2-4832-91ea-4466ce2f25c9)
1102 ]
1103 interface ISAXAttributes : IUnknown
1104 {
1105     HRESULT getLength(
1106         [out, retval] int *length);
1107
1108     HRESULT getURI(
1109         [in] int nIndex,
1110         [out] const WCHAR **pUrl,
1111         [out] int *pUriSize);
1112
1113     HRESULT getLocalName(
1114         [in] int nIndex,
1115         [out] const WCHAR **pLocalName,
1116         [out] int *pLocalNameLength);
1117
1118     HRESULT getQName(
1119         [in] int nIndex,
1120         [out] const WCHAR **pQName,
1121         [out] int *pQNameLength);
1122
1123     HRESULT getName(
1124         [in] int nIndex,
1125         [out] const WCHAR **pUri,
1126         [out] int * pUriLength,
1127         [out] const WCHAR ** pLocalName,
1128         [out] int * pLocalNameSize,
1129         [out] const WCHAR ** pQName,
1130         [out] int * pQNameLength);
1131
1132     HRESULT getIndexFromName(
1133         [in] const WCHAR * pUri,
1134         [in] int cUriLength,
1135         [in] const WCHAR * pLocalName,
1136         [in] int cocalNameLength,
1137         [out, retval] int * index);
1138
1139     HRESULT getIndexFromQName(
1140         [in] const WCHAR * pQName,
1141         [in] int nQNameLength,
1142         [out, retval] int * index);
1143
1144     HRESULT getType(
1145         [in] int nIndex,
1146         [out] const WCHAR ** pType,
1147         [out] int * pTypeLength);
1148
1149     HRESULT getTypeFromName(
1150         [in] const WCHAR * pUri,
1151         [in] int nUri,
1152         [in] const WCHAR * pLocalName,
1153         [in] int nLocalName,
1154         [out] const WCHAR ** pType,
1155         [out] int * nType);
1156
1157     HRESULT getTypeFromQName(
1158         [in] const WCHAR * pQName,
1159         [in] int nQName,
1160         [out] const WCHAR ** pType,
1161         [out] int * nType);
1162
1163     HRESULT getValue(
1164         [in] int nIndex,
1165         [out] const WCHAR ** pValue,
1166         [out] int * nValue);
1167
1168     HRESULT getValueFromName(
1169         [in] const WCHAR * pUri,
1170         [in] int nUri,
1171         [in] const WCHAR * pLocalName,
1172         [in] int nLocalName,
1173         [out] const WCHAR ** pValue,
1174         [out] int * nValue);
1175
1176     HRESULT getValueFromQName(
1177         [in] const WCHAR * pQName,
1178         [in] int nQName,
1179         [out] const WCHAR ** pValue,
1180         [out] int * nValue);
1181 };
1182
1183 [
1184     object,
1185     local,
1186     uuid(1545cdfa-9e4e-4497-a8a4-2bf7d0112c44)
1187 ]
1188 interface ISAXContentHandler : IUnknown
1189 {
1190     HRESULT putDocumentLocator(
1191         [in] ISAXLocator * pLocator);
1192
1193     HRESULT startDocument();
1194
1195     HRESULT endDocument();
1196
1197     HRESULT startPrefixMapping(
1198         [in] const WCHAR * pPrefix,
1199         [in] int nPrefix,
1200         [in] const WCHAR * pUri,
1201         [in] int nUri);
1202
1203     HRESULT endPrefixMapping(
1204         [in] const WCHAR * pPrefix,
1205         [in] int nPrefix);
1206
1207     HRESULT startElement(
1208         [in] const WCHAR * pNamespaceUri,
1209         [in] int nNamespaceUri,
1210         [in] const WCHAR * pLocalName,
1211         [in] int nLocalName,
1212         [in] const WCHAR * pQName,
1213         [in] int nQName,
1214         [in] ISAXAttributes * pAttr);
1215
1216     HRESULT endElement(
1217         [in] const WCHAR * pNamespaceUri,
1218         [in] int nNamespaceUri,
1219         [in] const WCHAR * pLocalName,
1220         [in] int nLocalName,
1221         [in] const WCHAR * pQName,
1222         [in] int nQName);
1223
1224     HRESULT characters(
1225         [in] const WCHAR * pChars,
1226         [in] int nChars);
1227
1228     HRESULT ignorableWhitespace(
1229         [in] const WCHAR * pChars,
1230         [in] int nChars);
1231
1232     HRESULT processingInstruction(
1233         [in] const WCHAR * pTarget,
1234         [in] int nTarget,
1235         [in] const WCHAR * pData,
1236         [in] int nData);
1237
1238     HRESULT skippedEntity(
1239         [in] const WCHAR * pName,
1240         [in] int nName);
1241 };
1242
1243 [
1244     object,
1245     local,
1246     uuid(862629ac-771a-47b2-8337-4e6843c1be90)
1247 ]
1248 interface ISAXDeclHandler : IUnknown
1249 {
1250     HRESULT elementDecl(
1251         [in] const WCHAR * pName,
1252         [in] int nName,
1253         [in] const WCHAR * pModel,
1254         [in] int nModel);
1255
1256     HRESULT attributeDecl(
1257         [in] const WCHAR * pElementName,
1258         [in] int nElementName,
1259         [in] const WCHAR * pAttributeName,
1260         [in] int nAttributeName,
1261         [in] const WCHAR * pType,
1262         [in] int nType,
1263         [in] const WCHAR * pValueDefault,
1264         [in] int nValueDefault,
1265         [in] const WCHAR * pValue,
1266         [in] int nValue);
1267
1268     HRESULT internalEntityDecl(
1269         [in] const WCHAR * pName,
1270         [in] int nName,
1271         [in] const WCHAR * pValue,
1272         [in] int nValue);
1273
1274     HRESULT externalEntityDecl(
1275         [in] const WCHAR * pName,
1276         [in] int nName,
1277         [in] const WCHAR * pPublicId,
1278         [in] int nPublicId,
1279         [in] const WCHAR * pSystemId,
1280         [in] int nSystemId);
1281 };
1282
1283 [
1284     object,
1285     local,
1286     uuid(e15c1baf-afb3-4d60-8c36-19a8c45defed)
1287 ]
1288 interface ISAXDTDHandler : IUnknown
1289 {
1290     HRESULT notationDecl(
1291         [in] const WCHAR * pName,
1292         [in] int nName,
1293         [in] const WCHAR * pPublicId,
1294         [in] int nPublicId,
1295         [in] const WCHAR * pSystemId,
1296         [in] int nSystemId);
1297
1298     HRESULT unparsedEntityDecl(
1299         [in] const WCHAR * pName,
1300         [in] int nName,
1301         [in] const WCHAR * pPublicId,
1302         [in] int nPublicId,
1303         [in] const WCHAR * pSystemId,
1304         [in] int nSystemId,
1305         [in] const WCHAR * pNotationName,
1306         [in] int nNotationName);
1307 };
1308
1309 [
1310     object,
1311     local,
1312     uuid(99bca7bd-e8c4-4d5f-a0cf-6d907901ff07),
1313 ]
1314 interface ISAXEntityResolver : IUnknown
1315 {
1316     HRESULT resolveEntity(
1317         [in] const WCHAR * pPublicId,
1318         [in] const WCHAR * pSystemId,
1319         [out, retval] VARIANT * ret);
1320 };
1321
1322 [
1323     object,
1324     local,
1325     uuid(a60511c4-ccf5-479e-98a3-dc8dc545b7d0)
1326 ]
1327 interface ISAXErrorHandler : IUnknown
1328 {
1329     HRESULT error(
1330         [in] ISAXLocator * pLocator,
1331         [in] const WCHAR * pErrorMessage,
1332         [in] HRESULT hrErrorCode);
1333
1334     HRESULT fatalError(
1335         [in] ISAXLocator * pLocator,
1336         [in] const WCHAR * pErrorMessage,
1337         [in] HRESULT hrErrorCode);
1338
1339     HRESULT ignorableWarning(
1340         [in] ISAXLocator * pLocator,
1341         [in] const WCHAR * pErrorMessage,
1342         [in] HRESULT hrErrorCode);
1343 };
1344
1345 [
1346     object,
1347     local,
1348     uuid(7f85d5f5-47a8-4497-bda5-84ba04819ea6)
1349 ]
1350 interface ISAXLexicalHandler : IUnknown
1351 {
1352     HRESULT startDTD(
1353         [in] const WCHAR * pName,
1354         [in] int nName,
1355         [in] const WCHAR * pPublicId,
1356         [in] int nPublicId,
1357         [in] const WCHAR * pSystemId,
1358         [in] int nSystemId);
1359
1360     HRESULT endDTD();
1361
1362     HRESULT startEntity(
1363         [in] const WCHAR * pName,
1364         [in] int nName);
1365
1366     HRESULT endEntity(
1367         [in] const WCHAR * pName,
1368         [in] int nName);
1369
1370     HRESULT startCDATA();
1371
1372     HRESULT endCDATA();
1373
1374     HRESULT comment(
1375         [in] const WCHAR * pChars,
1376         [in] int nChars);
1377 };
1378
1379 [
1380     object,
1381     local,
1382     uuid(9b7e472a-0de4-4640-bff3-84d38a051c31)
1383 ]
1384 interface ISAXLocator : IUnknown
1385 {
1386     HRESULT getColumnNumber(
1387         [out, retval] int * nColumn);
1388
1389     HRESULT getLineNumber(
1390         [out, retval] int * nLine);
1391
1392     HRESULT getPublicId(
1393         [out, retval] const WCHAR ** publicId);
1394
1395     HRESULT getSystemId(
1396         [out, retval] const WCHAR ** systemId);
1397 };
1398
1399 [
1400     local,
1401     object,
1402     uuid(70409222-ca09-4475-acb8-40312fe8d145)
1403 ]
1404 interface ISAXXMLFilter : ISAXXMLReader
1405 {
1406     HRESULT getParent(
1407         [out, retval] ISAXXMLReader ** pReader);
1408     HRESULT putParent(
1409         [in] ISAXXMLReader * reader);
1410 };
1411
1412 [
1413 local,
1414 object,
1415 uuid (a4f96ed0-f829-476e-81c0-cdc7bd2a0802)
1416 ]
1417 interface ISAXXMLReader : IUnknown
1418 {
1419     HRESULT getFeature(
1420         [in] const WCHAR * pFeature,
1421         [out, retval] VARIANT_BOOL * pValue);
1422     HRESULT putFeature(
1423         [in] const WCHAR * pFeature,
1424         [in] VARIANT_BOOL vfValue);
1425
1426     HRESULT getProperty(
1427         [in] const WCHAR * pProp,
1428         [out, retval] VARIANT * pValue);
1429     HRESULT putProperty(
1430         [in] const WCHAR * pProp,
1431         [in] VARIANT value);
1432
1433     HRESULT getEntityResolver(
1434         [out, retval] ISAXEntityResolver ** ppEntityResolver);
1435     HRESULT putEntityResolver(
1436         [in] ISAXEntityResolver * pEntityResolver);
1437
1438     HRESULT getContentHandler(
1439         [out, retval] ISAXContentHandler ** pContentHandler);
1440     HRESULT putContentHandler(
1441         [in] ISAXContentHandler * contentHandler);
1442
1443     HRESULT getDTDHandler(
1444         [out, retval] ISAXDTDHandler ** pDTDHandler);
1445     HRESULT putDTDHandler(
1446         [in] ISAXDTDHandler * pDTDHandler);
1447
1448     HRESULT getErrorHandler(
1449         [out, retval] ISAXErrorHandler ** pErrorHandler);
1450     HRESULT putErrorHandler(
1451         [in] ISAXErrorHandler * errorHandler);
1452
1453     HRESULT getBaseURL(
1454         [out, retval] const WCHAR ** pBaseUrl);
1455     HRESULT putBaseURL(
1456         [in] const WCHAR * pBaseUrl);
1457
1458     HRESULT getSecureBaseURL(
1459         [out, retval] const WCHAR ** pSecureBaseUrl);
1460     HRESULT putSecureBaseURL(
1461         [in] const WCHAR * secureBaseUrl);
1462
1463     HRESULT parse(
1464         [in] VARIANT varInput);
1465     HRESULT parseURL(
1466         [in] const WCHAR * url);
1467 }
1468
1469 [
1470     object,
1471     dual,
1472     uuid(10dc0586-132b-4cac-8bb3-db00ac8b7ee0)
1473 ]
1474 interface IVBSAXAttributes : IDispatch
1475 {
1476     [propget, id(DISPID_SAX_ATTRIBUTES_LENGTH)]
1477     HRESULT length( [out, retval] int * nLength);
1478
1479     [id(DISPID_SAX_ATTRIBUTES_GETURI)]
1480     HRESULT getURI( [in] int nIndex, [out, retval] BSTR * uri);
1481
1482     [id(DISPID_SAX_ATTRIBUTES_GETLOCALNAME)]
1483     HRESULT getLocalName( [in] int nIndex, [out, retval] BSTR * localName);
1484
1485     [id(DISPID_SAX_ATTRIBUTES_GETQNAME)]
1486     HRESULT getQName( [in] int nIndex, [out, retval] BSTR * QName);
1487
1488     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMNAME)]
1489     HRESULT getIndexFromName( [in] BSTR uri,
1490                               [in] BSTR localName, [out, retval] int * nIndex);
1491
1492     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMQNAME)]
1493     HRESULT getIndexFromQName( [in] BSTR QName, [out, retval] int * nIndex);
1494
1495     [id(DISPID_SAX_ATTRIBUTES_GETTYPE)]
1496     HRESULT getType( [in] int nIndex, [out, retval] BSTR * type);
1497
1498     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMNAME)]
1499     HRESULT getTypeFromName( [in] BSTR uri, [in] BSTR localName,
1500                              [out, retval] BSTR * type);
1501
1502     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMQNAME)]
1503     HRESULT getTypeFromQName( [in] BSTR QName, [out, retval] BSTR * type);
1504
1505     [id(DISPID_SAX_ATTRIBUTES_GETVALUE)]
1506     HRESULT getValue( [in] int nIndex, [out, retval] BSTR * value);
1507
1508     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMNAME)]
1509     HRESULT getValueFromName( [in] BSTR uri,
1510                               [in] BSTR localName,
1511                               [out, retval] BSTR * value);
1512
1513     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMQNAME)]
1514     HRESULT getValueFromQName( [in] BSTR QName, [out, retval] BSTR * value);
1515 };
1516
1517 [
1518     object,
1519     dual,
1520     uuid(2ed7290a-4dd5-4b46-bb26-4e4155e77faa)
1521 ]
1522 interface IVBSAXContentHandler : IDispatch
1523 {
1524     [propputref, id(DISPID_SAX_CONTENTHANDLER_DOCUMENTLOCATOR)]
1525     HRESULT documentLocator( [in] IVBSAXLocator * oLocator);
1526
1527     [id(DISPID_SAX_CONTENTHANDLER_STARTDOCUMENT)]
1528     HRESULT startDocument();
1529
1530     [id(DISPID_SAX_CONTENTHANDLER_ENDDOCUMENT)]
1531     HRESULT endDocument();
1532
1533     [id(DISPID_SAX_CONTENTHANDLER_STARTPREFIXMAPPING)]
1534     HRESULT startPrefixMapping( [in, out] BSTR * prefix, [in, out] BSTR * uri);
1535
1536     [id(DISPID_SAX_CONTENTHANDLER_ENDPREFIXMAPPING)]
1537     HRESULT endPrefixMapping( [in, out] BSTR * prefix);
1538
1539     [id(DISPID_SAX_CONTENTHANDLER_STARTELEMENT)]
1540     HRESULT startElement( [in, out] BSTR * namespaceURI,
1541                           [in, out] BSTR * localName,
1542                           [in, out] BSTR * QName,
1543                           [in] IVBSAXAttributes * oAttributes);
1544
1545     [id(DISPID_SAX_CONTENTHANDLER_ENDELEMENT)]
1546     HRESULT endElement( [in, out] BSTR * namespaceURI,
1547                         [in, out] BSTR * localName, [in, out] BSTR * strQName);
1548
1549     [id(DISPID_SAX_CONTENTHANDLER_CHARACTERS)]
1550     HRESULT characters( [in, out] BSTR * chars);
1551
1552     [id(DISPID_SAX_CONTENTHANDLER_IGNORABLEWHITESPACE)]
1553     HRESULT ignorableWhitespace( [in, out] BSTR * chars);
1554
1555     [id(DISPID_SAX_CONTENTHANDLER_PROCESSINGINSTRUCTION)]
1556     HRESULT processingInstruction( [in, out] BSTR * target,
1557                                    [in, out] BSTR * data);
1558
1559     [id(DISPID_SAX_CONTENTHANDLER_SKIPPEDENTITY)]
1560     HRESULT skippedEntity( [in, out] BSTR * name);
1561 };
1562
1563 [
1564     object,
1565     dual,
1566     uuid(e8917260-7579-4be1-b5dd-7afbfa6f077b)
1567 ]
1568 interface IVBSAXDeclHandler : IDispatch
1569 {
1570     [id(DISPID_SAX_DECLHANDLER_ELEMENTDECL)]
1571     HRESULT elementDecl(
1572         [in, out] BSTR * name,
1573         [in, out] BSTR * model);
1574
1575     [id(DISPID_SAX_DECLHANDLER_ATTRIBUTEDECL)]
1576     HRESULT attributeDecl(
1577         [in, out] BSTR * elementName,
1578         [in, out] BSTR * attributeName,
1579         [in, out] BSTR * type,
1580         [in, out] BSTR * valueDefault,
1581         [in, out] BSTR * value);
1582
1583     [id(DISPID_SAX_DECLHANDLER_INTERNALENTITYDECL)]
1584     HRESULT internalEntityDecl(
1585         [in, out] BSTR * name,
1586         [in, out] BSTR * value);
1587
1588     [id(DISPID_SAX_DECLHANDLER_EXTERNALENTITYDECL)]
1589     HRESULT externalEntityDecl(
1590         [in, out] BSTR * name,
1591         [in, out] BSTR * publicId,
1592         [in, out] BSTR * systemId);
1593 };
1594
1595 [
1596     object,
1597     dual,
1598     uuid(24fb3297-302d-4620-ba39-3a732d850558)
1599 ]
1600 interface IVBSAXDTDHandler : IDispatch
1601 {
1602     [id(DISPID_SAX_DTDHANDLER_NOTATIONDECL)]
1603     HRESULT notationDecl(
1604         [in, out] BSTR * name,
1605         [in, out] BSTR * publicId,
1606         [in, out] BSTR * systemId);
1607
1608     [id(DISPID_SAX_DTDHANDLER_UNPARSEDENTITYDECL)]
1609     HRESULT unparsedEntityDecl(
1610         [in, out] BSTR * name,
1611         [in, out] BSTR * publicId,
1612         [in, out] BSTR * systemId,
1613         [in, out] BSTR * notationName);
1614 };
1615
1616 [
1617     object,
1618     dual,
1619     uuid(0c05d096-f45b-4aca-ad1a-aa0bc25518dc)
1620 ]
1621 interface IVBSAXEntityResolver : IDispatch
1622 {
1623     [id(DISPID_SAX_ENTITYRESOLVER_RESOLVEENTITY)]
1624     HRESULT resolveEntity(
1625         [in, out] BSTR * publicId,
1626         [in, out] BSTR * systemId,
1627         [out, retval] VARIANT * ret);
1628 };
1629
1630 [
1631     object,
1632     dual,
1633     uuid(d963d3fe-173c-4862-9095-b92f66995f52)
1634 ]
1635 interface IVBSAXErrorHandler : IDispatch
1636 {
1637     [id(DISPID_SAX_ERRORHANDLER_ERROR)]
1638     HRESULT error(
1639         [in] IVBSAXLocator * locator,
1640             [in, out] BSTR * errorMessage,
1641             [in] long errorCode);
1642
1643     [id(DISPID_SAX_ERRORHANDLER_FATALERROR)]
1644     HRESULT fatalError(
1645             [in] IVBSAXLocator * locator,
1646             [in, out] BSTR * errorMessage,
1647             [in] long errorCode);
1648
1649     [id(DISPID_SAX_ERRORHANDLER_IGNORABLEWARNING)]
1650     HRESULT ignorableWarning(
1651             [in] IVBSAXLocator * locator,
1652             [in, out] BSTR * errorMessage,
1653             [in] long errorCode);
1654 };
1655
1656 [
1657     object,
1658     dual,
1659     uuid(032aac35-8c0e-4d9d-979f-e3b702935576)
1660 ]
1661 interface IVBSAXLexicalHandler : IDispatch
1662 {
1663     [id(DISPID_SAX_LEXICALHANDLER_STARTDTD)]
1664     HRESULT startDTD(
1665         [in, out] BSTR * name,
1666         [in, out] BSTR * publicId,
1667         [in, out] BSTR * systemId);
1668     [id(DISPID_SAX_LEXICALHANDLER_ENDDTD)]
1669     HRESULT endDTD();
1670
1671     [id(DISPID_SAX_LEXICALHANDLER_STARTENTITY)]
1672     HRESULT startEntity([in, out] BSTR * name);
1673     [id(DISPID_SAX_LEXICALHANDLER_ENDENTITY)]
1674     HRESULT endEntity([in, out] BSTR * name);
1675
1676     [id(DISPID_SAX_LEXICALHANDLER_STARTCDATA)]
1677     HRESULT startCDATA();
1678     [id(DISPID_SAX_LEXICALHANDLER_ENDCDATA)]
1679     HRESULT endCDATA();
1680
1681     [id(DISPID_SAX_LEXICALHANDLER_COMMENT)]
1682     HRESULT comment( [in, out] BSTR * chars);
1683 };
1684
1685 [
1686     object,
1687     uuid(796e7ac5-5aa2-4eff-acad-3faaf01a3288)
1688 ]
1689 interface IVBSAXLocator : IDispatch
1690 {
1691     [propget, id(DISPID_SAX_LOCATOR_COLUMNNUMBER)]
1692     HRESULT columnNumber( [out, retval] int * column);
1693
1694     [propget, id(DISPID_SAX_LOCATOR_LINENUMBER)]
1695     HRESULT lineNumber( [out, retval] int * line);
1696
1697     [propget, id(DISPID_SAX_LOCATOR_PUBLICID)]
1698     HRESULT publicId( [out, retval] BSTR * publicId);
1699
1700     [propget, id(DISPID_SAX_LOCATOR_SYSTEMID)]
1701     HRESULT systemId( [out, retval] BSTR * systemId);
1702 };
1703
1704 [
1705     object,
1706     dual,
1707     uuid(1299eb1b-5b88-433e-82de-82ca75ad4e04)
1708 ]
1709 interface IVBSAXXMLFilter : IDispatch
1710 {
1711     [propget, id(DISPID_SAX_XMLFILTER_PARENT)]
1712     HRESULT parent( [out, retval] IVBSAXXMLReader ** reader);
1713     [propputref, id(DISPID_SAX_XMLFILTER_PARENT)]
1714     HRESULT parent( [in] IVBSAXXMLReader * reader);
1715
1716 };
1717
1718 [
1719     dual,
1720     object,
1721     uuid (8c033caa-6cd6-4f73-b728-4531af74945f)
1722 ]
1723 interface IVBSAXXMLReader : IDispatch
1724 {
1725     [id(DISPID_SAX_XMLREADER_GETFEATURE)]
1726     HRESULT getFeature( [in] const WCHAR * pFeature,
1727                         [out, retval] VARIANT_BOOL * pValue);
1728     [id(DISPID_SAX_XMLREADER_PUTFEATURE)]
1729     HRESULT putFeature( [in] const WCHAR * pFeature,
1730                         [in] VARIANT_BOOL vfValue);
1731
1732     [id(DISPID_SAX_XMLREADER_GETPROPERTY)]
1733     HRESULT getProperty( [in] const WCHAR * pProp,
1734                          [out, retval] VARIANT * pValue);
1735     [id(DISPID_SAX_XMLREADER_PUTPROPERTY)]
1736     HRESULT putProperty( [in] const WCHAR * pProp, [in] VARIANT value);
1737
1738     [propget, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
1739     HRESULT getEntityResolver(
1740                     [out, retval] IVBSAXEntityResolver ** ppEntityResolver);
1741     [propputref, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
1742     HRESULT putEntityResolver( [in] IVBSAXEntityResolver * pEntityResolver);
1743
1744     [propget, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
1745     HRESULT getContentHandler(
1746                         [out, retval] IVBSAXContentHandler ** pContentHandler);
1747     [propputref, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
1748     HRESULT putContentHandler([in] IVBSAXContentHandler * contentHandler);
1749
1750     [propget, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
1751     HRESULT getDTDHandler([out, retval] IVBSAXDTDHandler ** pDTDHandler);
1752     [propputref, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
1753     HRESULT putDTDHandler([in] IVBSAXDTDHandler * pDTDHandler);
1754
1755     [propget, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
1756     HRESULT getErrorHandler([out, retval] IVBSAXErrorHandler ** pErrorHandler);
1757     [propputref, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
1758     HRESULT putErrorHandler([in] IVBSAXErrorHandler * errorHandler);
1759
1760     [propget, id(DISPID_SAX_XMLREADER_BASEURL)]
1761     HRESULT getBaseURL([out, retval] const WCHAR ** pBaseUrl);
1762     [propput, id(DISPID_SAX_XMLREADER_BASEURL)]
1763     HRESULT putBaseURL([in] const WCHAR * pBaseUrl);
1764
1765     [propget, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
1766     HRESULT getSecureBaseURL([out, retval] const WCHAR ** pSecureBaseUrl);
1767     [propput, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
1768     HRESULT putSecureBaseURL([in] const WCHAR * secureBaseUrl);
1769
1770     [propget, id(DISPID_SAX_XMLREADER_PARSE)]
1771     HRESULT parse( [in] VARIANT varInput);
1772     [propput, id(DISPID_SAX_XMLREADER_PARSE)]
1773     HRESULT parseURL([in] const WCHAR * url);
1774 }
1775
1776 [
1777     object,
1778     dual,
1779     uuid(f10d27cc-3ec0-415c-8ed8-77ab1c5e7262)
1780 ]
1781 interface IMXAttributes : IDispatch
1782 {
1783     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTE)]
1784     HRESULT addAttribute(
1785         [in] BSTR uri,
1786         [in] BSTR localName,
1787         [in] BSTR QName,
1788         [in] BSTR type,
1789         [in] BSTR value);
1790
1791     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTEFROMINDEX)]
1792     HRESULT addAttributeFromIndex( [in] VARIANT atts,
1793                                    [in] int index);
1794
1795     [id(DISPID_MX_ATTRIBUTES_CLEAR)]
1796     HRESULT clear();
1797
1798     [id(DISPID_MX_ATTRIBUTES_REMOVEATTRIBUTE)]
1799     HRESULT removeAttribute( [in] int index);
1800
1801     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTE)]
1802     HRESULT setAttribute(
1803         [in] int index,
1804         [in] BSTR uri,
1805         [in] BSTR localName,
1806         [in] BSTR QName,
1807         [in] BSTR type,
1808         [in] BSTR value);
1809
1810     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTES)]
1811     HRESULT setAttributes( [in] VARIANT atts);
1812
1813     [id(DISPID_MX_ATTRIBUTES_SETLOCALNAME)]
1814     HRESULT setLocalName( [in] int index,
1815         [in] BSTR localName);
1816
1817     [id(DISPID_MX_ATTRIBUTES_SETQNAME)]
1818     HRESULT setQName(
1819         [in] int index,
1820         [in] BSTR QName);
1821
1822     [id(DISPID_MX_ATTRIBUTES_SETTYPE)]
1823     HRESULT setType( [in] int index, [in] BSTR type);
1824
1825     [id(DISPID_MX_ATTRIBUTES_SETURI)]
1826     HRESULT setURI( [in] int index,  [in] BSTR uri);
1827
1828     [id(DISPID_MX_ATTRIBUTES_SETVALUE)]
1829     HRESULT setValue([in] int index, [in] BSTR value);
1830 };
1831
1832 [
1833     object,
1834     dual,
1835     uuid(808f4e35-8d5a-4fbe-8466-33a41279ed30)
1836 ]
1837 interface IMXReaderControl : IDispatch
1838 {
1839     [id(DISPID_MX_READER_CONTROL_ABORT)]
1840     HRESULT abort();
1841
1842     [id(DISPID_MX_READER_CONTROL_RESUME)]
1843     HRESULT resume();
1844
1845     [id(DISPID_MX_READER_CONTROL_SUSPEND)]
1846     HRESULT suspend();
1847 };
1848
1849 [
1850     object,
1851     dual,
1852     uuid(4d7ff4ba-1565-4ea8-94e1-6e724a46f98d)
1853 ]
1854 interface IMXWriter :  IDispatch
1855 {
1856     [propput, id(DISPID_MX_WRITER_OUTPUT)]
1857     HRESULT output ( [in] VARIANT Destination);
1858     [propget, id(DISPID_MX_WRITER_OUTPUT)]
1859     HRESULT output ( [out, retval] VARIANT * Destination);
1860
1861     [propput, id(DISPID_MX_WRITER_ENCODING)]
1862     HRESULT encoding ([in] BSTR encoding);
1863     [propget, id(DISPID_MX_WRITER_ENCODING)]
1864     HRESULT encoding ([out, retval] BSTR * encoding);
1865
1866     [propput, id(DISPID_MX_WRITER_BYTEORDERMARK)]
1867     HRESULT byteOrderMark ([in] VARIANT_BOOL writeByteOrderMark);
1868     [propget, id(DISPID_MX_WRITER_BYTEORDERMARK)]
1869     HRESULT byteOrderMark ([out, retval] VARIANT_BOOL * writeByteOrderMark);
1870
1871     [propput, id(DISPID_MX_WRITER_INDENT)]
1872     HRESULT indent ([in] VARIANT_BOOL indentMode);
1873     [propget, id(DISPID_MX_WRITER_INDENT)]
1874     HRESULT indent ([out, retval] VARIANT_BOOL * indentMode);
1875
1876     [propput, id(DISPID_MX_WRITER_STANDALONE)]
1877     HRESULT standalone ([in] VARIANT_BOOL value);
1878     [propget, id(DISPID_MX_WRITER_STANDALONE)]
1879     HRESULT standalone ([out, retval] VARIANT_BOOL * value);
1880
1881     [propput, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
1882     HRESULT omitXMLDeclaration ([in] VARIANT_BOOL value);
1883     [propget, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
1884     HRESULT omitXMLDeclaration ([out, retval] VARIANT_BOOL * value);
1885
1886     [propput, id(DISPID_MX_WRITER_VERSION)]
1887     HRESULT version ([in] BSTR version);
1888     [propget, id(DISPID_MX_WRITER_VERSION)]
1889     HRESULT version ([out, retval] BSTR * version);
1890
1891     [propput, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
1892     HRESULT disableOutputEscaping([in] VARIANT_BOOL value);
1893     [propget, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
1894     HRESULT disableOutputEscaping([out, retval] VARIANT_BOOL * value);
1895
1896     [id(DISPID_MX_WRITER_FLUSH)]
1897     HRESULT flush();
1898 };
1899
1900 [
1901     uuid(079aa557-4a18-424a-8eee-e39f0a8d41b9)
1902 ]
1903 coclass SAXXMLReader
1904 {
1905     [default] interface IVBSAXXMLReader;
1906     interface ISAXXMLReader;
1907     interface IMXReaderControl;
1908 };
1909
1910 [
1911     uuid(3124c396-fb13-4836-a6ad-1317f1713688)
1912 ]
1913 coclass SAXXMLReader30
1914 {
1915     [default] interface IVBSAXXMLReader;
1916     interface ISAXXMLReader;
1917     interface IMXReaderControl;
1918 };
1919
1920 [
1921     uuid(fc220ad8-a72a-4ee8-926e-0b7ad152a020)
1922 ]
1923 coclass MXXMLWriter
1924 {
1925     [default] interface IMXWriter;
1926
1927     interface ISAXContentHandler;
1928     interface ISAXErrorHandler;
1929     interface ISAXDTDHandler;
1930     interface ISAXLexicalHandler;
1931     interface ISAXDeclHandler;
1932
1933     interface IVBSAXContentHandler;
1934     interface IVBSAXDeclHandler;
1935     interface IVBSAXDTDHandler;
1936     interface IVBSAXErrorHandler;
1937     interface IVBSAXLexicalHandler;
1938 };
1939
1940 [
1941     uuid(3d813dfe-6c91-4a4e-8f41-04346a841d9c)
1942 ]
1943 coclass MXXMLWriter30
1944 {
1945     [default] interface IMXWriter;
1946
1947     interface ISAXContentHandler;
1948     interface ISAXDeclHandler;
1949     interface ISAXDTDHandler;
1950     interface ISAXErrorHandler;
1951     interface ISAXLexicalHandler;
1952
1953     interface IVBSAXContentHandler;
1954     interface IVBSAXDeclHandler;
1955     interface IVBSAXDTDHandler;
1956     interface IVBSAXErrorHandler;
1957     interface IVBSAXLexicalHandler;
1958 };
1959
1960 [
1961     uuid(4dd441ad-526d-4a77-9f1b-9841ed802fb0)
1962 ]
1963 coclass SAXAttributes
1964 {
1965     [default] interface IMXAttributes;
1966     interface IVBSAXAttributes;
1967     interface ISAXAttributes;
1968 };
1969
1970 [
1971     uuid(3e784a01-f3ae-4dc0-9354-9526b9370eba)
1972 ]
1973 coclass SAXAttributes30
1974 {
1975     [default] interface IMXAttributes;
1976     interface IVBSAXAttributes;
1977     interface ISAXAttributes;
1978 };
1979
1980
1981 } /* Library MSXML */