kernel32: Make sure we reference stack data still in scope (Coverity).
[wine] / include / msxml6.idl
1 /*
2  * Copyright (C) 2005 Vijay Kiran Kamuju
3  * Copyright (C) 2008 Alistair Leslie-Hughes
4  * Copyright (C) 2010 Nikolay Sivov for CodeWeavers
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20
21 #include <msxml6did.h>
22 #include <idispids.h>
23
24 import "unknwn.idl";
25 import "objidl.idl";
26 import "oaidl.idl";
27
28 #ifndef __WIDL__
29 #define threading(model)
30 #define progid(str)
31 #define vi_progid(str)
32 #endif
33
34 [
35     uuid(f5078f18-c551-11d3-89b9-0000f81fe221),
36     version(6.0),
37     helpstring("Microsoft XML, v6.0")
38 ]
39 library MSXML2
40 {
41
42 importlib("stdole2.tlb");
43
44 interface IXMLDOMImplementation;
45 interface IXMLDOMNode;
46 interface IXMLDOMDocumentFragment;
47 interface IXMLDOMDocument;
48 interface IXMLDOMSchemaCollection;
49 interface IXMLDOMDocument2;
50 interface IXMLDOMNodeList;
51 interface IXMLDOMNamedNodeMap;
52 interface IXMLDOMCharacterData;
53 interface IXMLDOMAttribute;
54 interface IXMLDOMElement;
55 interface IXMLDOMText;
56 interface IXMLDOMComment;
57 interface IXMLDOMProcessingInstruction;
58 interface IXMLDOMCDATASection;
59 interface IXMLDOMDocumentType;
60 interface IXMLDOMNotation;
61 interface IXMLDOMEntity;
62 interface IXMLDOMEntityReference;
63 interface IXMLDOMParseError;
64 interface IXMLDOMParseErrorCollection;
65 interface IXTLRuntime;
66 interface IXSLTemplate;
67 interface IXSLProcessor;
68
69 /* SAX Interfaces */
70 interface ISAXAttributes;
71 interface ISAXContentHandler;
72 interface ISAXDeclHandler;
73 interface ISAXDTDHandler;
74 interface ISAXEntityResolver;
75 interface ISAXErrorHandler;
76 interface ISAXLexicalHandler;
77 interface ISAXLocator;
78 interface ISAXXMLFilter;
79 interface ISAXXMLReader;
80
81 interface IVBSAXAttributes;
82 interface IVBSAXContentHandler;
83 interface IVBSAXDeclHandler;
84 interface IVBSAXDTDHandler;
85 interface IVBSAXEntityResolver;
86 interface IVBSAXErrorHandler;
87 interface IVBSAXLexicalHandler;
88 interface IVBSAXLocator;
89 interface IVBSAXXMLFilter;
90 interface IVBSAXXMLReader;
91
92 interface IMXAttributes;
93 interface IMXReaderControl;
94 interface IMXWriter;
95
96 interface IXMLDOMSchemaCollection2;
97 interface ISchemaStringCollection;
98 interface ISchemaItemCollection;
99 interface ISchemaItem;
100 interface ISchema;
101 interface ISchemaParticle;
102 interface ISchemaAttribute;
103 interface ISchemaElement;
104 interface ISchemaType;
105 interface ISchemaComplexType;
106 interface ISchemaAttributeGroup;
107 interface ISchemaModelGroup;
108 interface ISchemaAny;
109 interface ISchemaIdentityConstraint;
110 interface ISchemaNotation;
111
112
113 cpp_quote("#define DOMDocument DOMDocument2")
114 cpp_quote("#define CLSID_DOMDocument CLSID_DOMDocument2")
115
116 cpp_quote("#ifndef __MSXML_DOMNODETYPE_DEFINED")
117 cpp_quote("#define __MSXML_DOMNODETYPE_DEFINED")
118 typedef enum tagDOMNodeType
119 {
120     NODE_INVALID                = 0,
121     NODE_ELEMENT                = 1,
122     NODE_ATTRIBUTE              = 2,
123     NODE_TEXT                   = 3,
124     NODE_CDATA_SECTION          = 4,
125     NODE_ENTITY_REFERENCE       = 5,
126     NODE_ENTITY                 = 6,
127     NODE_PROCESSING_INSTRUCTION = 7,
128     NODE_COMMENT                = 8,
129     NODE_DOCUMENT               = 9,
130     NODE_DOCUMENT_TYPE          = 10,
131     NODE_DOCUMENT_FRAGMENT      = 11,
132     NODE_NOTATION               = 12
133 } DOMNodeType;
134 cpp_quote("#endif")
135
136 typedef enum _SOMITEMTYPE
137 {
138     SOMITEM_SCHEMA                      = 0x1000,
139     SOMITEM_ATTRIBUTE                   = 0x1001,
140     SOMITEM_ATTRIBUTEGROUP              = 0x1002,
141     SOMITEM_NOTATION                    = 0x1003,
142     SOMITEM_IDENTITYCONSTRAINT          = 0x1100,
143     SOMITEM_KEY                         = 0x1101,
144     SOMITEM_KEYREF                      = 0x1102,
145     SOMITEM_UNIQUE                      = 0x1103,
146     SOMITEM_ANYTYPE                     = 0x2000,
147     SOMITEM_DATATYPE                    = 0x2100,
148     SOMITEM_DATATYPE_ANYTYPE            = 0x2101,
149     SOMITEM_DATATYPE_ANYURI             = 0x2102,
150     SOMITEM_DATATYPE_BASE64BINARY       = 0x2103,
151     SOMITEM_DATATYPE_BOOLEAN            = 0x2104,
152     SOMITEM_DATATYPE_BYTE               = 0x2105,
153     SOMITEM_DATATYPE_DATE               = 0x2106,
154     SOMITEM_DATATYPE_DATETIME           = 0x2107,
155     SOMITEM_DATATYPE_DAY                = 0x2108,
156     SOMITEM_DATATYPE_DECIMAL            = 0x2109,
157     SOMITEM_DATATYPE_DOUBLE             = 0x210A,
158     SOMITEM_DATATYPE_DURATION           = 0x210B,
159     SOMITEM_DATATYPE_ENTITIES           = 0x210C,
160     SOMITEM_DATATYPE_ENTITY             = 0x210D,
161     SOMITEM_DATATYPE_FLOAT              = 0x210E,
162     SOMITEM_DATATYPE_HEXBINARY          = 0x210F,
163     SOMITEM_DATATYPE_ID                 = 0x2110,
164     SOMITEM_DATATYPE_IDREF              = 0x2111,
165     SOMITEM_DATATYPE_IDREFS             = 0x2112,
166     SOMITEM_DATATYPE_INT                = 0x2113,
167     SOMITEM_DATATYPE_INTEGER            = 0x2114,
168     SOMITEM_DATATYPE_LANGUAGE           = 0x2115,
169     SOMITEM_DATATYPE_LONG               = 0x2116,
170     SOMITEM_DATATYPE_MONTH              = 0x2117,
171     SOMITEM_DATATYPE_MONTHDAY           = 0x2118,
172     SOMITEM_DATATYPE_NAME               = 0x2119,
173     SOMITEM_DATATYPE_NCNAME             = 0x211A,
174     SOMITEM_DATATYPE_NEGATIVEINTEGER    = 0x211B,
175     SOMITEM_DATATYPE_NMTOKEN            = 0x211C,
176     SOMITEM_DATATYPE_NMTOKENS           = 0x211D,
177     SOMITEM_DATATYPE_NONNEGATIVEINTEGER = 0x211E,
178     SOMITEM_DATATYPE_NONPOSITIVEINTEGER = 0x211F,
179     SOMITEM_DATATYPE_NORMALIZEDSTRING   = 0x2120,
180     SOMITEM_DATATYPE_NOTATION           = 0x2121,
181     SOMITEM_DATATYPE_POSITIVEINTEGER    = 0x2122,
182     SOMITEM_DATATYPE_QNAME              = 0x2123,
183     SOMITEM_DATATYPE_SHORT              = 0x2124,
184     SOMITEM_DATATYPE_STRING             = 0x2125,
185     SOMITEM_DATATYPE_TIME               = 0x2126,
186     SOMITEM_DATATYPE_TOKEN              = 0x2127,
187     SOMITEM_DATATYPE_UNSIGNEDBYTE       = 0x2128,
188     SOMITEM_DATATYPE_UNSIGNEDINT        = 0x2129,
189     SOMITEM_DATATYPE_UNSIGNEDLONG       = 0x212A,
190     SOMITEM_DATATYPE_UNSIGNEDSHORT      = 0x212B,
191     SOMITEM_DATATYPE_YEAR               = 0x212C,
192     SOMITEM_DATATYPE_YEARMONTH          = 0x212D,
193     SOMITEM_DATATYPE_ANYSIMPLETYPE      = 0x21FF,
194     SOMITEM_SIMPLETYPE                  = 0x2200,
195     SOMITEM_COMPLEXTYPE                 = 0x2400,
196     SOMITEM_PARTICLE                    = 0x4000,
197     SOMITEM_ANY                         = 0x4001,
198     SOMITEM_ANYATTRIBUTE                = 0x4002,
199     SOMITEM_ELEMENT                     = 0x4003,
200     SOMITEM_GROUP                       = 0x4100,
201     SOMITEM_ALL                         = 0x4101,
202     SOMITEM_CHOICE                      = 0x4102,
203     SOMITEM_SEQUENCE                    = 0x4103,
204     SOMITEM_EMPTYPARTICLE               = 0x4104,
205     SOMITEM_NULL                        = 0x0800,
206     SOMITEM_NULL_TYPE                   = 0x2800,
207     SOMITEM_NULL_ANY                    = 0x4801,
208     SOMITEM_NULL_ANYATTRIBUTE           = 0x4802,
209     SOMITEM_NULL_ELEMENT                = 0x4803,
210 } SOMITEMTYPE;
211
212 typedef enum _SCHEMAUSE
213 {
214     SCHEMAUSE_OPTIONAL,
215     SCHEMAUSE_PROHIBITED,
216     SCHEMAUSE_REQUIRED,
217 } SCHEMAUSE;
218
219 typedef enum _SCHEMADERIVATIONMETHOD
220 {
221     SCHEMADERIVATIONMETHOD_EMPTY        = 0x0000,
222     SCHEMADERIVATIONMETHOD_SUBSTITUTION = 0x0001,
223     SCHEMADERIVATIONMETHOD_EXTENSION    = 0x0002,
224     SCHEMADERIVATIONMETHOD_RESTRICTION  = 0x0004,
225     SCHEMADERIVATIONMETHOD_LIST         = 0x0008,
226     SCHEMADERIVATIONMETHOD_UNION        = 0x0010,
227     SCHEMADERIVATIONMETHOD_ALL          = 0x00FF,
228     SCHEMADERIVATIONMETHOD_NONE         = 0x0100,
229 } SCHEMADERIVATIONMETHOD;
230
231 typedef enum _SCHEMACONTENTTYPE
232 {
233     SCHEMACONTENTTYPE_EMPTY,
234     SCHEMACONTENTTYPE_TEXTONLY,
235     SCHEMACONTENTTYPE_ELEMENTONLY,
236     SCHEMACONTENTTYPE_MIXED,
237 } SCHEMACONTENTTYPE;
238
239 typedef enum _SCHEMAPROCESSCONTENTS
240 {
241     SCHEMAPROCESSCONTENTS_NONE,
242     SCHEMAPROCESSCONTENTS_SKIP,
243     SCHEMAPROCESSCONTENTS_LAX,
244     SCHEMAPROCESSCONTENTS_STRICT,
245 } SCHEMAPROCESSCONTENTS;
246
247 typedef enum _SCHEMAWHITESPACE
248 {
249     SCHEMAWHITESPACE_NONE       = -1,
250     SCHEMAWHITESPACE_PRESERVE   =  0,
251     SCHEMAWHITESPACE_REPLACE    =  1,
252     SCHEMAWHITESPACE_COLLAPSE   =  2,
253 } SCHEMAWHITESPACE;
254
255
256 typedef enum _SCHEMATYPEVARIETY
257 {
258     SCHEMATYPEVARIETY_NONE      = -1,
259     SCHEMATYPEVARIETY_ATOMIC    =  0,
260     SCHEMATYPEVARIETY_LIST      =  1,
261     SCHEMATYPEVARIETY_UNION     =  2,
262 } SCHEMATYPEVARIETY;
263
264 [
265 local,
266 object,
267 dual,
268 oleautomation,
269 uuid (2933BF80-7B36-11d2-B20E-00C04F983E60)
270 ]
271 interface IXMLDOMNode : IDispatch
272 {
273     [propget, id(DISPID_DOM_NODE_NODENAME)]
274     HRESULT nodeName([retval, out] BSTR *p);
275
276     [propget, id(DISPID_DOM_NODE_NODEVALUE)]
277     HRESULT nodeValue([retval, out] VARIANT *var1);
278
279     [propput, id(DISPID_DOM_NODE_NODEVALUE)]
280     HRESULT nodeValue([in] VARIANT var1);
281
282     [propget, id(DISPID_DOM_NODE_NODETYPE)]
283     HRESULT nodeType([retval, out] DOMNodeType *domNodeType);
284
285     [propget, id(DISPID_DOM_NODE_PARENTNODE)]
286     HRESULT parentNode([retval, out] IXMLDOMNode **parent);
287
288     [propget, id(DISPID_DOM_NODE_CHILDNODES)]
289     HRESULT childNodes([retval, out] IXMLDOMNodeList **outList);
290
291     [propget, id(DISPID_DOM_NODE_FIRSTCHILD)]
292     HRESULT firstChild([retval, out] IXMLDOMNode **domNode);
293
294     [propget, id(DISPID_DOM_NODE_LASTCHILD)]
295     HRESULT lastChild([retval, out] IXMLDOMNode **domNode);
296
297     [propget, id(DISPID_DOM_NODE_PREVIOUSSIBLING)]
298     HRESULT previousSibling([retval, out] IXMLDOMNode **domNode);
299
300     [propget, id(DISPID_DOM_NODE_NEXTSIBLING)]
301     HRESULT nextSibling([retval, out] IXMLDOMNode **domNode);
302
303     [propget, id(DISPID_DOM_NODE_ATTRIBUTES)]
304     HRESULT attributes([retval, out] IXMLDOMNamedNodeMap **attributeMap);
305
306     [id(DISPID_DOM_NODE_INSERTBEFORE)]
307     HRESULT insertBefore(
308         [in] IXMLDOMNode *newNode,
309         [in] VARIANT var1,
310         [retval, out] IXMLDOMNode **outOldNode);
311
312     [id(DISPID_DOM_NODE_REPLACECHILD)]
313     HRESULT replaceChild(
314         [in] IXMLDOMNode *newNode,
315         [in] IXMLDOMNode *oldNode,
316         [retval, out] IXMLDOMNode **outOldNode);
317
318     [id(DISPID_DOM_NODE_REMOVECHILD)]
319     HRESULT removeChild(
320         [in] IXMLDOMNode *domNode,
321         [retval, out] IXMLDOMNode **oldNode);
322
323     [id(DISPID_DOM_NODE_APPENDCHILD)]
324     HRESULT appendChild(
325         [in] IXMLDOMNode *newNode,
326         [retval, out] IXMLDOMNode **outNewNode);
327
328     [id(DISPID_DOM_NODE_HASCHILDNODES)]
329     HRESULT hasChildNodes(
330         [retval, out] VARIANT_BOOL *pbool);
331
332     [propget, id(DISPID_DOM_NODE_OWNERDOC)]
333     HRESULT ownerDocument([retval, out] IXMLDOMDocument **domDocument);
334
335     [id(DISPID_DOM_NODE_CLONENODE)]
336     HRESULT cloneNode(
337         [in] VARIANT_BOOL pbool,
338         [retval, out] IXMLDOMNode **outNode);
339
340     [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE)]
341     HRESULT nodeTypeString([retval, out] BSTR *p);
342
343     [propget, id(DISPID_XMLDOM_NODE_TEXT)]
344     HRESULT text([retval, out] BSTR *p);
345
346     [propput, id(DISPID_XMLDOM_NODE_TEXT)]
347     HRESULT text([in] BSTR p);
348
349     [propget, id(DISPID_XMLDOM_NODE_SPECIFIED)]
350     HRESULT specified([retval, out] VARIANT_BOOL *pbool);
351
352     [propget, id(DISPID_XMLDOM_NODE_DEFINITION)]
353     HRESULT definition([retval,out] IXMLDOMNode **domNode);
354
355     [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
356     HRESULT nodeTypedValue([retval, out] VARIANT *var1);
357
358     [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
359     HRESULT nodeTypedValue([in] VARIANT var1);
360
361     [propget, id(DISPID_XMLDOM_NODE_DATATYPE)]
362     HRESULT dataType([retval, out] VARIANT *var1);
363
364     [propput, id(DISPID_XMLDOM_NODE_DATATYPE)]
365     HRESULT dataType([in] BSTR p);
366
367     [propget, id(DISPID_XMLDOM_NODE_XML)]
368     HRESULT xml([retval, out] BSTR *p);
369
370     [id(DISPID_XMLDOM_NODE_TRANSFORMNODE)]
371     HRESULT transformNode(
372         [in] IXMLDOMNode *domNode,
373         [retval, out] BSTR *p);
374
375     [id(DISPID_XMLDOM_NODE_SELECTNODES)]
376     HRESULT selectNodes(
377         [in] BSTR p,
378         [retval, out] IXMLDOMNodeList **outList);
379
380     [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE)]
381     HRESULT selectSingleNode(
382         [in] BSTR p,
383         [retval, out] IXMLDOMNode **outNode);
384
385     [propget,id(DISPID_XMLDOM_NODE_PARSED)]
386     HRESULT parsed([retval, out] VARIANT_BOOL *pbool);
387
388     [propget, id(DISPID_XMLDOM_NODE_NAMESPACE)]
389     HRESULT namespaceURI([retval, out] BSTR *p);
390
391     [propget, id(DISPID_XMLDOM_NODE_PREFIX)]
392     HRESULT prefix([retval, out] BSTR *p);
393
394     [propget, id(DISPID_XMLDOM_NODE_BASENAME)]
395     HRESULT baseName([retval, out] BSTR *p);
396
397     [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT)]
398     HRESULT transformNodeToObject(
399         [in] IXMLDOMNode *domNode,
400         [in] VARIANT var1);
401 }
402
403 [
404 local,
405 object,
406 dual,
407 oleautomation,
408 uuid (2933BF81-7B36-11d2-B20E-00C04F983E60)
409 ]
410 interface IXMLDOMDocument : IXMLDOMNode
411 {
412     [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)]
413     HRESULT doctype([retval, out] IXMLDOMDocumentType **docType);
414
415     [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION)]
416     HRESULT implementation([retval, out] IXMLDOMImplementation **impl);
417
418     [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
419     HRESULT documentElement([retval, out] IXMLDOMElement **domElement);
420
421     [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
422     HRESULT documentElement([in] IXMLDOMElement *domElement);
423
424     [id(DISPID_DOM_DOCUMENT_CREATEELEMENT)]
425     HRESULT createElement(
426         [in] BSTR p,
427         [retval, out] IXMLDOMElement **domElement);
428
429     [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT)]
430     HRESULT createDocumentFragment(
431         [retval, out] IXMLDOMDocumentFragment **docFrag);
432
433     [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE)]
434     HRESULT createTextNode(
435         [in] BSTR p,
436         [retval, out] IXMLDOMText **text);
437
438     [id(DISPID_DOM_DOCUMENT_CREATECOMMENT)]
439     HRESULT createComment(
440         [in] BSTR p,
441         [retval, out] IXMLDOMComment **comment);
442
443     [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION)]
444     HRESULT createCDATASection(
445         [in] BSTR p,
446         [retval, out] IXMLDOMCDATASection **cdata);
447
448     [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION)]
449     HRESULT createProcessingInstruction(
450         [in] BSTR target,
451         [in] BSTR data,
452         [retval, out] IXMLDOMProcessingInstruction **pi);
453
454     [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE)]
455     HRESULT createAttribute(
456         [in] BSTR p,
457         [retval, out] IXMLDOMAttribute **attribute);
458
459     [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE)]
460     HRESULT createEntityReference(
461         [in] BSTR p,
462         [retval, out] IXMLDOMEntityReference **entityRef);
463
464     [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME)]
465     HRESULT getElementsByTagName(
466         [in] BSTR p,
467         [retval, out] IXMLDOMNodeList **resultList);
468
469     [id(DISPID_XMLDOM_DOCUMENT_CREATENODE)]
470     HRESULT createNode(
471         [in] VARIANT var,
472         [in] BSTR name,
473         [in] BSTR uri,
474         [retval, out] IXMLDOMNode **node);
475
476     [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID)]
477     HRESULT nodeFromID(
478         [in] BSTR id,
479         [retval, out] IXMLDOMNode **node);
480
481     [id(DISPID_XMLDOM_DOCUMENT_LOAD)]
482     HRESULT load(
483         [in] VARIANT var1,
484         [retval, out] VARIANT_BOOL *pbool);
485
486     [propget, id(DISPID_READYSTATE)]
487     HRESULT readyState([retval, out] LONG *value);
488
489     [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR)]
490     HRESULT parseError([retval, out] IXMLDOMParseError **err);
491
492     [propget, id(DISPID_XMLDOM_DOCUMENT_URL)]
493     HRESULT url([retval, out] BSTR *p);
494
495     [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
496     HRESULT async([retval, out] VARIANT_BOOL *pbool);
497
498     [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
499     HRESULT async([in] VARIANT_BOOL pbool);
500
501     [id(DISPID_XMLDOM_DOCUMENT_ABORT)]
502     HRESULT abort();
503
504     [id(DISPID_XMLDOM_DOCUMENT_LOADXML)]
505     HRESULT loadXML(
506         [in] BSTR p,
507         [out, retval] VARIANT_BOOL *pbool);
508
509     [id(DISPID_XMLDOM_DOCUMENT_SAVE)]
510     HRESULT save(
511         [in] VARIANT var1);
512
513     [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
514     HRESULT validateOnParse([retval, out] VARIANT_BOOL *pbool);
515
516     [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
517     HRESULT validateOnParse([in] VARIANT_BOOL pbool);
518
519     [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
520     HRESULT resolveExternals([retval,out] VARIANT_BOOL *pbool);
521
522     [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
523     HRESULT resolveExternals([in] VARIANT_BOOL pbool);
524
525     [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
526     HRESULT preserveWhiteSpace([retval,out] VARIANT_BOOL *pbool);
527
528     [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
529     HRESULT preserveWhiteSpace([in] VARIANT_BOOL pbool);
530
531     [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE)]
532     HRESULT onreadystatechange([in] VARIANT var1);
533
534     [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE)]
535     HRESULT ondataavailable([in] VARIANT var1);
536
537     [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE)]
538     HRESULT ontransformnode([in] VARIANT var1);
539 }
540
541 [
542 local,
543 object,
544 dual,
545 oleautomation,
546 uuid (373984c8-b845-449b-91e7-45ac83036ade)
547 ]
548 interface IXMLDOMSchemaCollection : IDispatch
549 {
550     [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADD)]
551     HRESULT add(
552         [in] BSTR uri,
553         [in] VARIANT var);
554
555     [id(DISPID_XMLDOM_SCHEMACOLLECTION_GET)]
556     HRESULT get(
557         [in] BSTR uri,
558         [retval, out] IXMLDOMNode **node);
559
560     [id(DISPID_XMLDOM_SCHEMACOLLECTION_REMOVE)]
561     HRESULT remove(
562         [in] BSTR uri);
563
564     [propget, id(DISPID_XMLDOM_SCHEMACOLLECTION_LENGTH)]
565     HRESULT length(
566         [retval, out] LONG *length);
567
568     [propget, id(DISPID_VALUE)]
569     HRESULT namespaceURI([in] LONG index, [out, retval] BSTR *len);
570
571     [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADDCOLLECTION)]
572     HRESULT addCollection(
573         [in] IXMLDOMSchemaCollection *otherCollection);
574
575     [propget, id(DISPID_NEWENUM)]
576     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
577 }
578
579 [
580     local,
581     object,
582     dual,
583     oleautomation,
584     uuid(50ea08b0-dd1b-4664-9a50-c2f40f4bd79a),
585 ]
586 interface IXMLDOMSchemaCollection2 : IXMLDOMSchemaCollection
587 {
588     [id(DISPID_SOM_VALIDATE)]
589     HRESULT validate();
590
591     [propput, id(DISPID_SOM_VALIDATEONLOAD)]
592     HRESULT validateOnLoad(
593         [in] VARIANT_BOOL validateOnLoad);
594
595     [propget, id(DISPID_SOM_VALIDATEONLOAD)]
596     HRESULT validateOnLoad(
597         [out,retval] VARIANT_BOOL* validateOnLoad);
598
599     [id(DISPID_SOM_GETSCHEMA)]
600     HRESULT getSchema(
601         [in] BSTR namespaceURI,
602         [out,retval] ISchema** schema);
603
604     [id(DISPID_SOM_GETDECLARATION)]
605     HRESULT getDeclaration(
606         [in] IXMLDOMNode* node,
607         [out,retval]ISchemaItem** item);
608 };
609
610 [
611 local,
612 object,
613 dual,
614 oleautomation,
615 uuid (2933BF95-7B36-11d2-B20E-00C04F983E60)
616 ]
617 interface IXMLDOMDocument2 : IXMLDOMDocument
618 {
619     [propget, id(DISPID_XMLDOM_DOCUMENT2_NAMESPACES)]
620     HRESULT namespaces([retval, out] IXMLDOMSchemaCollection **schemaCollection);
621
622     [propget, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
623     HRESULT schemas([retval, out] VARIANT *var1);
624
625     [propputref, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
626     HRESULT schemas([in] VARIANT var1);
627
628     [id(DISPID_XMLDOM_DOCUMENT2_VALIDATE)]
629     HRESULT validate(
630         [retval, out] IXMLDOMParseError **err);
631
632     [id(DISPID_XMLDOM_DOCUMENT2_SETPROPERTY)]
633     HRESULT setProperty(
634         [in] BSTR p,
635         [in] VARIANT var);
636
637     [id(DISPID_XMLDOM_DOCUMENT2_GETPROPERTY)]
638     HRESULT getProperty(
639         [in] BSTR p,
640         [retval, out] VARIANT *var);
641 }
642
643 [
644     local,
645     object,
646     dual,
647     uuid(2933bf96-7b36-11d2-b20e-00c04f983e60),
648     oleautomation,
649 ]
650 interface IXMLDOMDocument3 : IXMLDOMDocument2
651 {
652     [id(DISPID_XMLDOM_DOCUMENT3_VALIDATENODE)]
653     HRESULT validateNode(
654         [in] IXMLDOMNode *node,
655         [out, retval] IXMLDOMParseError **error);
656
657     [id(DISPID_XMLDOM_DOCUMENT3_IMPORTNODE)]
658     HRESULT importNode(
659         [in] IXMLDOMNode *node,
660         [in] VARIANT_BOOL deep,
661         [out, retval] IXMLDOMNode **clone);
662 }
663
664 [
665 local,
666 object,
667 dual,
668 oleautomation,
669 uuid (2933BF82-7B36-11d2-B20E-00C04F983E60)
670 ]
671 interface IXMLDOMNodeList : IDispatch
672 {
673     [propget, id(DISPID_VALUE)]
674     HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
675
676     [propget, id(DISPID_DOM_NODELIST_LENGTH)]
677     HRESULT length([retval, out] LONG *lLength);
678
679     [id(DISPID_XMLDOM_NODELIST_NEXTNODE)]
680     HRESULT nextNode(
681         [retval, out] IXMLDOMNode **outNode);
682
683     [id(DISPID_XMLDOM_NODELIST_RESET)]
684     HRESULT reset();
685
686     [propget, id(DISPID_NEWENUM)]
687     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
688 }
689
690 [
691 local,
692 object,
693 dual,
694 oleautomation,
695 uuid (AA634FC7-5888-44a7-A257-3A47150D3A0E)
696 ]
697 interface IXMLDOMSelection : IXMLDOMNodeList
698 {
699     [propget, id(DISPID_XMLDOM_SELECTION_EXPR)]
700     HRESULT expr([retval, out] BSTR *p);
701
702     [propput, id(DISPID_XMLDOM_SELECTION_EXPR)]
703     HRESULT expr([in] BSTR p);
704
705     [propget, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
706     HRESULT context([retval, out] IXMLDOMNode **ppNode);
707
708     [propputref, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
709     HRESULT context([in] IXMLDOMNode * pNode);
710
711     [id(DISPID_XMLDOM_SELECTION_PEEKNODE)]
712     HRESULT peekNode(
713         [retval, out] IXMLDOMNode **ppNode);
714
715     [id(DISPID_XMLDOM_SELECTION_MATCHES)]
716     HRESULT matches(
717         [in] IXMLDOMNode *pNode,
718         [retval, out] IXMLDOMNode **ppNode);
719
720     [id(DISPID_XMLDOM_SELECTION_REMOVENEXT)]
721     HRESULT removeNext(
722         [retval, out] IXMLDOMNode **ppNode);
723
724     [id(DISPID_XMLDOM_SELECTION_REMOVEALL)]
725     HRESULT removeAll();
726
727     [id(DISPID_XMLDOM_SELECTION_CLONE)]
728     HRESULT clone(
729         [retval, out] IXMLDOMSelection **ppNode);
730
731     [id(DISPID_XMLDOM_SELECTION_GETPROPERTY)]
732     HRESULT getProperty(
733         [in] BSTR p,
734         [retval, out] VARIANT * var);
735
736     [id(DISPID_XMLDOM_SELECTION_SETPROPERTY)]
737     HRESULT setProperty(
738         [in] BSTR p,
739         [in] VARIANT var);
740 }
741
742 [
743 local,
744 object,
745 dual,
746 oleautomation,
747 uuid (2933BF83-7B36-11d2-B20E-00C04F983E60)
748 ]
749 interface IXMLDOMNamedNodeMap : IDispatch
750 {
751     [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)]
752     HRESULT getNamedItem(
753         [in] BSTR p,
754         [retval, out] IXMLDOMNode **outNode);
755
756     [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)]
757     HRESULT setNamedItem(
758         [in] IXMLDOMNode *newNode,
759         [retval, out] IXMLDOMNode **outNode);
760
761     [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)]
762     HRESULT removeNamedItem(
763         [in] BSTR p,
764         [retval, out] IXMLDOMNode **outNode);
765
766     [propget, id(DISPID_VALUE)]
767     HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
768
769     [propget, id(DISPID_DOM_NODELIST_LENGTH)]
770     HRESULT length([retval, out] LONG *lLength);
771
772     [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)]
773     HRESULT getQualifiedItem(
774         [in] BSTR name,
775         [in] BSTR uri,
776         [retval, out] IXMLDOMNode **outNode);
777
778     [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)]
779     HRESULT removeQualifiedItem(
780         [in] BSTR name,
781         [in] BSTR uri,
782         [retval, out] IXMLDOMNode **outNode);
783
784     [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)]
785     HRESULT nextNode(
786         [retval, out] IXMLDOMNode **outNode);
787
788     [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)]
789     HRESULT reset();
790
791     [propget, id(DISPID_NEWENUM)]
792     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
793 }
794
795 [
796 local,
797 object,
798 dual,
799 oleautomation,
800 uuid (3efaa413-272f-11d2-836f-0000f87a7782)
801 ]
802 interface IXMLDOMDocumentFragment : IXMLDOMNode
803 {
804 }
805
806 [
807 local,
808 object,
809 dual,
810 oleautomation,
811 uuid (2933BF84-7B36-11d2-B20E-00C04F983E60)
812 ]
813 interface IXMLDOMCharacterData : IXMLDOMNode
814 {
815     [propget, id(DISPID_DOM_DATA_DATA)]
816     HRESULT data([retval, out] BSTR *p);
817
818     [propput, id(DISPID_DOM_DATA_DATA)]
819     HRESULT data([in] BSTR data);
820
821     [propget, id(DISPID_DOM_DATA_LENGTH)]
822     HRESULT length([retval, out] LONG *len);
823
824     [id(DISPID_DOM_DATA_SUBSTRING)]
825     HRESULT substringData(
826         [in] LONG offset,
827         [in] LONG count,
828         [retval, out] BSTR *p);
829
830     [id(DISPID_DOM_DATA_APPEND)]
831     HRESULT appendData(
832         [in] BSTR p);
833
834     [id(DISPID_DOM_DATA_INSERT)]
835     HRESULT insertData(
836         [in] LONG offset,
837         [in] BSTR p);
838
839     [id(DISPID_DOM_DATA_DELETE)]
840     HRESULT deleteData(
841         [in] LONG offset,
842         [in] LONG count);
843
844     [id(DISPID_DOM_DATA_REPLACE)]
845     HRESULT replaceData(
846         [in] LONG offset,
847         [in] LONG count,
848         [in] BSTR p);
849 }
850
851 [
852 local,
853 object,
854 dual,
855 oleautomation,
856 uuid (2933BF85-7B36-11d2-B20E-00C04F983E60)
857 ]
858 interface IXMLDOMAttribute : IXMLDOMNode
859 {
860     [propget, id(DISPID_DOM_ATTRIBUTE_GETNAME)]
861     HRESULT name([retval, out] BSTR *p);
862
863     [propget, id(DISPID_DOM_ATTRIBUTE_VALUE)]
864     HRESULT value([retval, out] VARIANT *var1);
865
866     [propput, id(DISPID_DOM_ATTRIBUTE_VALUE)]
867     HRESULT value([in] VARIANT var1);
868 }
869
870 [
871 local,
872 object,
873 dual,
874 oleautomation,
875 uuid (2933BF86-7B36-11d2-B20E-00C04F983E60)
876 ]
877 interface IXMLDOMElement : IXMLDOMNode
878 {
879     [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)]
880     HRESULT tagName([retval, out] BSTR *p);
881
882     [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)]
883     HRESULT getAttribute(
884         [in] BSTR p,
885         [retval, out] VARIANT *var);
886
887     [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)]
888     HRESULT setAttribute(
889         [in] BSTR p,
890         [in] VARIANT var);
891
892     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)]
893     HRESULT removeAttribute(
894         [in] BSTR p);
895
896     [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)]
897     HRESULT getAttributeNode(
898         [in] BSTR p,
899         [retval, out] IXMLDOMAttribute **attributeNode);
900
901     [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)]
902     HRESULT setAttributeNode(
903         [in] IXMLDOMAttribute *domAttribute,
904         [retval, out] IXMLDOMAttribute **attributeNode);
905
906     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)]
907     HRESULT removeAttributeNode(
908         [in] IXMLDOMAttribute *domAttribute,
909         [retval, out] IXMLDOMAttribute **attributeNode);
910
911     [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)]
912     HRESULT getElementsByTagName(
913         [in] BSTR p,
914         [retval, out] IXMLDOMNodeList **resultList);
915
916     [id(DISPID_DOM_ELEMENT_NORMALIZE)]
917     HRESULT normalize();
918 }
919
920 [
921 local,
922 object,
923 dual,
924 oleautomation,
925 uuid (2933BF87-7B36-11d2-B20E-00C04F983E60)
926 ]
927 interface IXMLDOMText : IXMLDOMCharacterData
928 {
929     [id(DISPID_DOM_TEXT_SPLITTEXT)]
930     HRESULT splitText(
931         [in] LONG offset,
932         [retval, out] IXMLDOMText **txtNode);
933 }
934
935 [
936 local,
937 object,
938 dual,
939 oleautomation,
940 uuid (2933BF88-7B36-11d2-B20E-00C04F983E60)
941 ]
942 interface IXMLDOMComment : IXMLDOMCharacterData
943 {
944 }
945
946 [
947 local,
948 object,
949 dual,
950 oleautomation,
951 uuid (2933BF89-7B36-11d2-B20E-00C04F983E60)
952 ]
953 interface IXMLDOMProcessingInstruction : IXMLDOMNode
954 {
955     [propget, id(DISPID_DOM_PI_TARGET)]
956     HRESULT target([retval, out] BSTR *p);
957
958     [propget, id(DISPID_DOM_PI_DATA)]
959     HRESULT data([retval, out] BSTR *p);
960
961     [propput, id(DISPID_DOM_PI_DATA)]
962     HRESULT data([in] BSTR p);
963 }
964
965 [
966 local,
967 object,
968 dual,
969 oleautomation,
970 uuid (2933BF8A-7B36-11d2-B20E-00C04F983E60)
971 ]
972 interface IXMLDOMCDATASection : IXMLDOMText
973 {
974 }
975
976 [
977 local,
978 object,
979 dual,
980 oleautomation,
981 uuid (2933BF8B-7B36-11d2-B20E-00C04F983E60)
982 ]
983 interface IXMLDOMDocumentType : IXMLDOMNode
984 {
985     [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)]
986     HRESULT name([retval, out] BSTR *p);
987
988     [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)]
989     HRESULT entities([retval, out] IXMLDOMNamedNodeMap **entityMap);
990
991     [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)]
992     HRESULT notations([retval, out] IXMLDOMNamedNodeMap **notationMap);
993 }
994
995 [
996 local,
997 object,
998 dual,
999 oleautomation,
1000 uuid (2933BF8C-7B36-11d2-B20E-00C04F983E60)
1001 ]
1002 interface IXMLDOMNotation : IXMLDOMNode
1003 {
1004     [propget, id(DISPID_DOM_NOTATION_PUBLICID)]
1005     HRESULT publicId([retval, out] VARIANT *id);
1006
1007     [propget, id(DISPID_DOM_NOTATION_SYSTEMID)]
1008     HRESULT systemId([retval, out] VARIANT *id);
1009 }
1010
1011 [
1012 local,
1013 object,
1014 dual,
1015 oleautomation,
1016 uuid (2933BF8D-7B36-11d2-B20E-00C04F983E60)
1017 ]
1018 interface IXMLDOMEntity : IXMLDOMNode
1019 {
1020     [propget, id(DISPID_DOM_ENTITY_PUBLICID)]
1021     HRESULT publicId([retval, out] VARIANT *id1);
1022
1023     [propget, id(DISPID_DOM_ENTITY_SYSTEMID)]
1024     HRESULT systemId([retval, out] VARIANT *id1);
1025
1026     [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)]
1027     HRESULT notationName([retval, out] BSTR *p);
1028 }
1029
1030 [
1031 local,
1032 object,
1033 dual,
1034 oleautomation,
1035 uuid (2933BF8E-7B36-11d2-B20E-00C04F983E60)
1036 ]
1037 interface IXMLDOMEntityReference : IXMLDOMNode
1038 {
1039 }
1040
1041 [
1042 local,
1043 object,
1044 dual,
1045 oleautomation,
1046 uuid (2933BF8F-7B36-11d2-B20E-00C04F983E60)
1047 ]
1048 interface IXMLDOMImplementation : IDispatch
1049 {
1050     [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)]
1051     HRESULT hasFeature(
1052         [in] BSTR feature,
1053         [in] BSTR version,
1054         [retval, out] VARIANT_BOOL *pbool);
1055 }
1056
1057 [
1058 local,
1059 object,
1060 dual,
1061 oleautomation,
1062 uuid (3efaa425-272f-11d2-836f-0000f87a7782)
1063 ]
1064 interface IXTLRuntime : IXMLDOMNode
1065 {
1066     [id(DISPID_XTLRUNTIME_UNIQUEID)]
1067     HRESULT uniqueID(
1068         [in]IXMLDOMNode *pNode,
1069         [retval, out]LONG *pID);
1070
1071     [id(DISPID_XTLRUNTIME_DEPTH)]
1072     HRESULT depth(
1073         [in] IXMLDOMNode *pNode,
1074         [retval, out]LONG * pDepth);
1075
1076     [id(DISPID_XTLRUNTIME_CHILDNUMBER)]
1077     HRESULT childNumber(
1078         [in]IXMLDOMNode *pNode,
1079         [retval, out] LONG *pNumber);
1080
1081     [id(DISPID_XTLRUNTIME_ANCESTORCHILDNUMBER)]
1082     HRESULT ancestorChildNumber(
1083         [in]BSTR bstr,
1084         [in]IXMLDOMNode *pNode,
1085         [retval, out]LONG *pNumber);
1086
1087     [id(DISPID_XTLRUNTIME_ABSOLUTECHILDNUMBER)]
1088     HRESULT absoluteChildNumber(
1089         [in]IXMLDOMNode *pNode,
1090         [retval, out]LONG *pNumber);
1091
1092     [id(DISPID_XTLRUNTIME_FORMATINDEX)]
1093     HRESULT formatIndex(
1094         [in] LONG lIndex,
1095         [in] BSTR bstr,
1096         [retval, out]BSTR *pbstr);
1097
1098     [id(DISPID_XTLRUNTIME_FORMATNUMBER)]
1099     HRESULT formatNumber(
1100         [in] double dblNumber,
1101         [in] BSTR bstr,
1102         [retval, out]BSTR *pbstr);
1103
1104     [id(DISPID_XTLRUNTIME_FORMATDATE)]
1105     HRESULT formatDate(
1106         [in] VARIANT var1,
1107         [in] BSTR bstr,
1108         [optional, in] VARIANT var2,
1109         [retval, out]BSTR *pbstr);
1110
1111     [id(DISPID_XTLRUNTIME_FORMATTIME)]
1112     HRESULT formatTime(
1113         [in] VARIANT var1,
1114         [in] BSTR bstr,
1115         [optional, in] VARIANT var2,
1116         [retval, out]BSTR *pbstr);
1117
1118 }
1119
1120 [
1121     uuid(3efaa427-272f-11d2-836f-0000f87a7782)
1122 ]
1123 dispinterface XMLDOMDocumentEvents
1124 {
1125     properties:
1126     methods:
1127     [id (DISPID_XMLDOMEVENT_ONDATAAVAILABLE)]
1128     HRESULT ondataavailable();
1129
1130     [id (DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)]
1131     HRESULT onreadystatechange();
1132 }
1133
1134 [
1135 local,
1136 object,
1137 dual,
1138 oleautomation,
1139 uuid (2933BF92-7B36-11d2-B20E-00C04F983E60)
1140 ]
1141 interface IXSLProcessor : IDispatch
1142 {
1143     [propput, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
1144     HRESULT input([in] VARIANT var);
1145
1146     [propget, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
1147     HRESULT input([retval, out] VARIANT *var);
1148
1149     [propget, id(DISPID_XMLDOM_PROCESSOR_XSLTEMPLATE)]
1150     HRESULT ownerTemplate([retval, out] IXSLTemplate **ppTemplate);
1151
1152     [id(DISPID_XMLDOM_PROCESSOR_SETSTARTMODE)]
1153     HRESULT setStartMode(
1154         [in] BSTR p,
1155         [in, defaultvalue("")] BSTR uri);
1156
1157     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODE)]
1158     HRESULT startMode([retval, out] BSTR *p);
1159
1160     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODEURI)]
1161     HRESULT startModeURI([retval, out] BSTR *uri);
1162
1163     [propput, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
1164     HRESULT output([in] VARIANT var);
1165
1166     [propget, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
1167     HRESULT output([retval, out] VARIANT *var);
1168
1169     [id(DISPID_XMLDOM_PROCESSOR_TRANSFORM)]
1170     HRESULT transform(
1171         [retval, out] VARIANT_BOOL *pbool);
1172
1173     [id(DISPID_XMLDOM_PROCESSOR_RESET)]
1174     HRESULT reset();
1175
1176     [propget, id(DISPID_XMLDOM_PROCESSOR_READYSTATE)]
1177     HRESULT readyState([retval, out] LONG *pstate);
1178
1179     [id(DISPID_XMLDOM_PROCESSOR_ADDPARAMETER)]
1180     HRESULT addParameter(
1181         [in] BSTR p,
1182         [in] VARIANT var,
1183         [in, defaultvalue("")] BSTR uri);
1184
1185     [id(DISPID_XMLDOM_PROCESSOR_ADDOBJECT)]
1186     HRESULT addObject(
1187         [in] IDispatch* obj,
1188         [in] BSTR uri);
1189
1190     [propget, id(DISPID_XMLDOM_PROCESSOR_STYLESHEET)]
1191     HRESULT stylesheet([retval, out] IXMLDOMNode **node);
1192 }
1193
1194 [
1195 local,
1196 object,
1197 dual,
1198 oleautomation,
1199 uuid (2933BF93-7B36-11d2-B20E-00C04F983E60)
1200 ]
1201 interface IXSLTemplate : IDispatch
1202 {
1203     [propputref, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
1204     HRESULT stylesheet([in] IXMLDOMNode *node);
1205
1206     [propget, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
1207     HRESULT stylesheet([retval, out] IXMLDOMNode **node);
1208
1209     [id(DISPID_XMLDOM_TEMPLATE_CREATEPROCESSOR)]
1210     HRESULT createProcessor(
1211         [retval, out] IXSLProcessor **ppProcessor);
1212 }
1213
1214 [
1215     object,
1216     uuid(ED8C108D-4349-11D2-91A4-00C04F7969E8),
1217     odl,
1218     dual,
1219     oleautomation,
1220     pointer_default(unique)
1221 ]
1222 interface IXMLHTTPRequest : IDispatch
1223 {
1224     [id(1)]
1225     HRESULT open([in] BSTR bstrMethod, [in] BSTR bstrUrl, [in, optional] VARIANT varAsync,
1226                  [in,optional] VARIANT username, [in,optional] VARIANT password);
1227
1228     [id(2)]
1229     HRESULT setRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue);
1230
1231     [id(3)]
1232     HRESULT getResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR * value);
1233
1234     [id(4)]
1235     HRESULT getAllResponseHeaders([out, retval] BSTR * pbstrHeaders);
1236
1237     [id(5)]
1238     HRESULT send([in, optional] VARIANT body);
1239
1240     [id(6)]
1241     HRESULT abort();
1242
1243     [propget, id(7)]
1244     HRESULT status([out, retval] LONG *pStatus);
1245
1246     [propget, id(8)]
1247     HRESULT statusText([out, retval] BSTR *pStatus);
1248
1249     [propget, id(9)]
1250     HRESULT responseXML([out, retval] IDispatch **pBody);
1251
1252     [propget, id(10)]
1253     HRESULT responseText([out, retval] BSTR *pBody);
1254
1255     [propget, id(11)]
1256     HRESULT responseBody([out, retval] VARIANT *pBody);
1257
1258     [propget, id(12)]
1259     HRESULT responseStream([out, retval] VARIANT *pBody);
1260
1261     [propget, id(13)]
1262     HRESULT readyState([out, retval] LONG *pState);
1263
1264     [propput, id(14)]
1265     HRESULT onreadystatechange([in] IDispatch *pReadyStateSink);
1266 };
1267
1268 [
1269 object,
1270 dual,
1271 oleautomation,
1272 uuid(2e9196bf-13ba-4dd4-91ca-6c571f281495)
1273 ]
1274 interface IServerXMLHTTPRequest : IXMLHTTPRequest
1275 {
1276     typedef enum _SERVERXMLHTTP_OPTION
1277     {
1278         SXH_OPTION_URL = -1,
1279         SXH_OPTION_URL_CODEPAGE,
1280         SXH_OPTION_ESCAPE_PERCENT_IN_URL,
1281         SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS,
1282         SXH_OPTION_SELECT_CLIENT_SSL_CERT
1283     } SERVERXMLHTTP_OPTION;
1284
1285     [id(15)]
1286     HRESULT setTimeouts(
1287         [in] long resolveTimeout,
1288         [in] long connectTimeout,
1289         [in] long sendTimeout,
1290         [in] long receiveTimeout);
1291
1292     [id(16)]
1293     HRESULT waitForResponse(
1294         [in, optional] VARIANT timeoutInSeconds,
1295         [out, retval] VARIANT_BOOL * isSuccessful);
1296
1297     [id(17)]
1298     HRESULT getOption(
1299         [in] SERVERXMLHTTP_OPTION option,
1300         [out, retval] VARIANT * value);
1301
1302     [id(18)]
1303     HRESULT setOption(
1304         [in] SERVERXMLHTTP_OPTION option,
1305         [in] VARIANT value);
1306 }
1307
1308 [
1309 object,
1310 dual,
1311 oleautomation,
1312 uuid(2e01311b-c322-4b0a-bd77-b90cfdc8dce7)
1313 ]
1314 interface IServerXMLHTTPRequest2 : IServerXMLHTTPRequest
1315 {
1316     typedef enum _SXH_PROXY_SETTING
1317     {
1318         SXH_PROXY_SET_DEFAULT = 0,
1319         SXH_PROXY_SET_PRECONFIG = 0,
1320         SXH_PROXY_SET_DIRECT,
1321         SXH_PROXY_SET_PROXY
1322     } SXH_PROXY_SETTING;
1323
1324     [id(19)]
1325     HRESULT setProxy(
1326         [in] SXH_PROXY_SETTING proxySetting,
1327         [in, optional] VARIANT varProxyServer,
1328         [in, optional] VARIANT varBypassList);
1329
1330     [id(20)]
1331     HRESULT setProxyCredentials(
1332         [in] BSTR bstrUserName,
1333         [in] BSTR bstrPassword);
1334 }
1335
1336 [
1337 local,
1338 object,
1339 dual,
1340 oleautomation,
1341 uuid (3efaa426-272f-11d2-836f-0000f87a7782)
1342 ]
1343 interface IXMLDOMParseError : IDispatch
1344 {
1345     [propget, id(DISPID_VALUE)]
1346     HRESULT errorCode([retval, out] LONG *errCode);
1347
1348     [propget, id(DISPID_DOM_ERROR_URL)]
1349     HRESULT url([retval, out] BSTR *p);
1350
1351     [propget, id(DISPID_DOM_ERROR_REASON)]
1352     HRESULT reason([retval, out] BSTR *p);
1353
1354     [propget, id(DISPID_DOM_ERROR_SRCTEXT)]
1355     HRESULT srcText([retval, out] BSTR *p);
1356
1357     [propget, id(DISPID_DOM_ERROR_LINE)]
1358     HRESULT line([retval, out] LONG *lineNo);
1359
1360     [propget, id(DISPID_DOM_ERROR_LINEPOS)]
1361     HRESULT linepos([retval, out] LONG * linePos);
1362
1363     [propget, id(DISPID_DOM_ERROR_FILEPOS)]
1364     HRESULT filepos([retval, out] LONG * filePos);
1365 }
1366
1367 [
1368 local,
1369 object,
1370 dual,
1371 oleautomation,
1372 uuid (3efaa428-272f-11d2-836f-0000f87a7782)
1373 ]
1374 interface IXMLDOMParseError2 : IXMLDOMParseError
1375 {
1376     [propget, id(DISPID_DOM_ERROR2_ERRORXPATH)]
1377     HRESULT errorXPath([retval, out] BSTR *xpathexpr);
1378
1379     [propget, id(DISPID_DOM_ERROR2_ALLERRORS)]
1380     HRESULT allErrors([retval, out] IXMLDOMParseErrorCollection **allErrors);
1381
1382     [id(DISPID_DOM_ERROR2_ERRORPARAMETERS)]
1383     HRESULT errorParameters(
1384         [in] long index,
1385         [retval, out] BSTR *param);
1386
1387     [propget, id(DISPID_DOM_ERROR2_ERRORPARAMETERSCOUNT)]
1388     HRESULT errorParametersCount([retval, out] long *count);
1389 }
1390
1391 [
1392 local,
1393 object,
1394 dual,
1395 oleautomation,
1396 uuid (3efaa429-272f-11d2-836f-0000f87a7782)
1397 ]
1398 interface IXMLDOMParseErrorCollection : IDispatch
1399 {
1400     [propget, id(DISPID_VALUE)]
1401     HRESULT item(
1402         [in] long index,
1403         [retval, out] IXMLDOMParseError2 **error);
1404
1405     [propget, id(DISPID_DOM_ERRORCOLLECTION_LENGTH)]
1406     HRESULT length( [retval, out] long *length);
1407
1408     [propget, id(DISPID_DOM_ERRORCOLLECTION_NEXT)]
1409     HRESULT next( [retval, out] IXMLDOMParseError2 **error);
1410
1411     [id(DISPID_DOM_ERRORCOLLECTION_RESET)]
1412     HRESULT reset();
1413
1414     [propget, hidden, restricted, id(DISPID_NEWENUM)]
1415     HRESULT _newEnum( [retval, out] IUnknown **ppunk);
1416 }
1417
1418 [
1419     uuid(F6D90F11-9C73-11D3-B32E-00C04F990BB4)
1420 ]
1421 coclass DOMDocument
1422 {
1423     [default] interface IXMLDOMDocument2;
1424     [default, source] dispinterface XMLDOMDocumentEvents;
1425 }
1426
1427 [
1428     uuid(f5078f1b-c551-11d3-89b9-0000f81fe221)
1429 ]
1430 coclass DOMDocument26
1431 {
1432     [default] interface IXMLDOMDocument2;
1433     [default, source] dispinterface XMLDOMDocumentEvents;
1434 }
1435
1436 [
1437     uuid(f5078f32-c551-11d3-89b9-0000f81fe221)
1438 ]
1439 coclass DOMDocument30
1440 {
1441     [default] interface IXMLDOMDocument2;
1442     [default, source] dispinterface XMLDOMDocumentEvents;
1443 }
1444
1445 [
1446     uuid(88d969c0-f192-11d4-a65f-0040963251e5)
1447 ]
1448 coclass DOMDocument40
1449 {
1450     [default] interface IXMLDOMDocument2;
1451     [default, source] dispinterface XMLDOMDocumentEvents;
1452 }
1453
1454 [
1455     helpstring("XML DOM Document 6.0"),
1456     progid("Msxml2.DOMDocument.6.0"),
1457     threading(both),
1458     uuid(88d96a05-f192-11d4-a65f-0040963251e5)
1459 ]
1460 coclass DOMDocument60
1461 {
1462     [default] interface IXMLDOMDocument3;
1463     [default, source] dispinterface XMLDOMDocumentEvents;
1464 }
1465
1466 [
1467     uuid(F6D90F12-9C73-11D3-B32E-00C04F990BB4)
1468 ]
1469 coclass FreeThreadedDOMDocument
1470 {
1471     [default] interface IXMLDOMDocument2;
1472     [default, source] dispinterface XMLDOMDocumentEvents;
1473 }
1474
1475 [
1476     uuid(f5078f1c-c551-11d3-89b9-0000f81fe221)
1477 ]
1478 coclass FreeThreadedDOMDocument26
1479 {
1480     [default] interface IXMLDOMDocument2;
1481     [default, source] dispinterface XMLDOMDocumentEvents;
1482 }
1483
1484 [
1485     uuid(f5078f33-c551-11d3-89b9-0000f81fe221)
1486 ]
1487 coclass FreeThreadedDOMDocument30
1488 {
1489     [default] interface IXMLDOMDocument2;
1490     [default, source] dispinterface XMLDOMDocumentEvents;
1491 }
1492
1493 [
1494     uuid(88d969c1-f192-11d4-a65f-0040963251e5)
1495 ]
1496 coclass FreeThreadedDOMDocument40
1497 {
1498     [default] interface IXMLDOMDocument2;
1499     [default, source] dispinterface XMLDOMDocumentEvents;
1500 }
1501
1502 [
1503     helpstring("Free threaded XML DOM Document 6.0"),
1504     progid("Msxml2.FreeThreadedDOMDocument.6.0"),
1505     threading(both),
1506     uuid(88d96a06-f192-11d4-a65f-0040963251e5),
1507 ]
1508 coclass FreeThreadedDOMDocument60
1509 {
1510     [default] interface IXMLDOMDocument3;
1511     [default, source] dispinterface XMLDOMDocumentEvents;
1512 }
1513
1514 [
1515     uuid(f6d90f16-9c73-11d3-b32e-00c04f990bb4)
1516 ]
1517 coclass XMLHTTP
1518 {
1519     [default] interface IXMLHTTPRequest;
1520 }
1521
1522 [
1523     uuid(f5078f1e-c551-11d3-89b9-0000f81fe221)
1524 ]
1525 coclass XMLHTTP26
1526 {
1527     [default] interface IXMLHTTPRequest;
1528 }
1529
1530 [
1531     uuid(f5078f35-c551-11d3-89b9-0000f81fe221)
1532 ]
1533 coclass XMLHTTP30
1534 {
1535     [default] interface IXMLHTTPRequest;
1536 }
1537
1538 [
1539     uuid(88d969c5-f192-11d4-a65f-0040963251e5)
1540 ]
1541 coclass XMLHTTP40
1542 {
1543     [default] interface IXMLHTTPRequest;
1544 }
1545
1546 [
1547     helpstring("XML HTTP 6.0"),
1548     progid("Msxml2.XMLHTTP.6.0"),
1549     threading(apartment),
1550     uuid(88d96a0a-f192-11d4-a65f-0040963251e5)
1551 ]
1552 coclass XMLHTTP60
1553 {
1554     [default] interface IXMLHTTPRequest;
1555 }
1556
1557 [
1558     uuid(afba6b42-5692-48ea-8141-dc517dcf0ef1)
1559 ]
1560 coclass ServerXMLHTTP
1561 {
1562     [default] interface IServerXMLHTTPRequest;
1563 }
1564
1565 [
1566     uuid(afb40ffd-b609-40a3-9828-f88bbe11e4e3)
1567 ]
1568 coclass ServerXMLHTTP30
1569 {
1570     [default] interface IServerXMLHTTPRequest;
1571 }
1572
1573 [
1574     uuid(88d969c6-f192-11d4-a65f-0040963251e5)
1575 ]
1576 coclass ServerXMLHTTP40
1577 {
1578     [default] interface IServerXMLHTTPRequest2;
1579 }
1580
1581 [
1582     helpstring("Server XML HTTP 6.0"),
1583     progid("Msxml2.ServerXMLHTTP.6.0"),
1584     threading(apartment),
1585     uuid(88d96a0b-f192-11d4-a65f-0040963251e5)
1586 ]
1587 coclass ServerXMLHTTP60
1588 {
1589     [default] interface IServerXMLHTTPRequest2;
1590 }
1591
1592 [
1593     uuid(373984c9-b845-449b-91e7-45ac83036ade)
1594 ]
1595 coclass XMLSchemaCache
1596 {
1597     [default] interface IXMLDOMSchemaCollection;
1598 }
1599
1600 [
1601     uuid(f5078f1d-c551-11d3-89b9-0000f81fe221)
1602 ]
1603 coclass XMLSchemaCache26
1604 {
1605     [default] interface IXMLDOMSchemaCollection;
1606 }
1607
1608 [
1609     uuid(f5078f34-c551-11d3-89b9-0000f81fe221)
1610 ]
1611 coclass XMLSchemaCache30
1612 {
1613     [default] interface IXMLDOMSchemaCollection;
1614 }
1615
1616 [
1617     uuid(88d969c2-f192-11d4-a65f-0040963251e5)
1618 ]
1619 coclass XMLSchemaCache40
1620 {
1621     [default] interface IXMLDOMSchemaCollection2;
1622 }
1623
1624 [
1625     helpstring("XML Schema Cache 6.0"),
1626     progid("Msxml2.XMLSchemaCache.6.0"),
1627     threading(both),
1628     uuid(88d96a07-f192-11d4-a65f-0040963251e5)
1629 ]
1630 coclass XMLSchemaCache60
1631 {
1632     [default] interface IXMLDOMSchemaCollection2;
1633 }
1634
1635 [
1636     uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
1637 ]
1638 coclass XSLTemplate
1639 {
1640     [default] interface IXSLTemplate;
1641 }
1642
1643 [
1644     uuid(f5078f21-c551-11d3-89b9-0000f81fe221)
1645 ]
1646 coclass XSLTemplate26
1647 {
1648     [default] interface IXSLTemplate;
1649 }
1650
1651 [
1652     uuid(f5078f36-c551-11d3-89b9-0000f81fe221)
1653 ]
1654 coclass XSLTemplate30
1655 {
1656     [default] interface IXSLTemplate;
1657 }
1658
1659 [
1660     uuid(88d969c3-f192-11d4-a65f-0040963251e5)
1661 ]
1662 coclass XSLTemplate40
1663 {
1664     [default] interface IXSLTemplate;
1665 }
1666
1667 [
1668     helpstring("XSL Template 6.0"),
1669     progid("Msxml2.XSLTemplate.6.0"),
1670     threading(both),
1671     uuid(88d96a08-f192-11d4-a65f-0040963251e5)
1672 ]
1673 coclass XSLTemplate60
1674 {
1675     [default] interface IXSLTemplate;
1676 }
1677
1678 /*
1679  * Sax Interfaces
1680  */
1681 [
1682     object,
1683     local,
1684     uuid(f078abe1-45d2-4832-91ea-4466ce2f25c9)
1685 ]
1686 interface ISAXAttributes : IUnknown
1687 {
1688     HRESULT getLength(
1689         [out, retval] int *length);
1690
1691     HRESULT getURI(
1692         [in] int nIndex,
1693         [out] const WCHAR **pUrl,
1694         [out] int *pUriSize);
1695
1696     HRESULT getLocalName(
1697         [in] int nIndex,
1698         [out] const WCHAR **pLocalName,
1699         [out] int *pLocalNameLength);
1700
1701     HRESULT getQName(
1702         [in] int nIndex,
1703         [out] const WCHAR **pQName,
1704         [out] int *pQNameLength);
1705
1706     HRESULT getName(
1707         [in] int nIndex,
1708         [out] const WCHAR **pUri,
1709         [out] int * pUriLength,
1710         [out] const WCHAR ** pLocalName,
1711         [out] int * pLocalNameSize,
1712         [out] const WCHAR ** pQName,
1713         [out] int * pQNameLength);
1714
1715     HRESULT getIndexFromName(
1716         [in] const WCHAR * pUri,
1717         [in] int cUriLength,
1718         [in] const WCHAR * pLocalName,
1719         [in] int cocalNameLength,
1720         [out, retval] int * index);
1721
1722     HRESULT getIndexFromQName(
1723         [in] const WCHAR * pQName,
1724         [in] int nQNameLength,
1725         [out, retval] int * index);
1726
1727     HRESULT getType(
1728         [in] int nIndex,
1729         [out] const WCHAR ** pType,
1730         [out] int * pTypeLength);
1731
1732     HRESULT getTypeFromName(
1733         [in] const WCHAR * pUri,
1734         [in] int nUri,
1735         [in] const WCHAR * pLocalName,
1736         [in] int nLocalName,
1737         [out] const WCHAR ** pType,
1738         [out] int * nType);
1739
1740     HRESULT getTypeFromQName(
1741         [in] const WCHAR * pQName,
1742         [in] int nQName,
1743         [out] const WCHAR ** pType,
1744         [out] int * nType);
1745
1746     HRESULT getValue(
1747         [in] int nIndex,
1748         [out] const WCHAR ** pValue,
1749         [out] int * nValue);
1750
1751     HRESULT getValueFromName(
1752         [in] const WCHAR * pUri,
1753         [in] int nUri,
1754         [in] const WCHAR * pLocalName,
1755         [in] int nLocalName,
1756         [out] const WCHAR ** pValue,
1757         [out] int * nValue);
1758
1759     HRESULT getValueFromQName(
1760         [in] const WCHAR * pQName,
1761         [in] int nQName,
1762         [out] const WCHAR ** pValue,
1763         [out] int * nValue);
1764 };
1765
1766 [
1767     object,
1768     local,
1769     uuid(1545cdfa-9e4e-4497-a8a4-2bf7d0112c44)
1770 ]
1771 interface ISAXContentHandler : IUnknown
1772 {
1773     HRESULT putDocumentLocator(
1774         [in] ISAXLocator * pLocator);
1775
1776     HRESULT startDocument();
1777
1778     HRESULT endDocument();
1779
1780     HRESULT startPrefixMapping(
1781         [in] const WCHAR * pPrefix,
1782         [in] int nPrefix,
1783         [in] const WCHAR * pUri,
1784         [in] int nUri);
1785
1786     HRESULT endPrefixMapping(
1787         [in] const WCHAR * pPrefix,
1788         [in] int nPrefix);
1789
1790     HRESULT startElement(
1791         [in] const WCHAR * pNamespaceUri,
1792         [in] int nNamespaceUri,
1793         [in] const WCHAR * pLocalName,
1794         [in] int nLocalName,
1795         [in] const WCHAR * pQName,
1796         [in] int nQName,
1797         [in] ISAXAttributes * pAttr);
1798
1799     HRESULT endElement(
1800         [in] const WCHAR * pNamespaceUri,
1801         [in] int nNamespaceUri,
1802         [in] const WCHAR * pLocalName,
1803         [in] int nLocalName,
1804         [in] const WCHAR * pQName,
1805         [in] int nQName);
1806
1807     HRESULT characters(
1808         [in] const WCHAR * pChars,
1809         [in] int nChars);
1810
1811     HRESULT ignorableWhitespace(
1812         [in] const WCHAR * pChars,
1813         [in] int nChars);
1814
1815     HRESULT processingInstruction(
1816         [in] const WCHAR * pTarget,
1817         [in] int nTarget,
1818         [in] const WCHAR * pData,
1819         [in] int nData);
1820
1821     HRESULT skippedEntity(
1822         [in] const WCHAR * pName,
1823         [in] int nName);
1824 };
1825
1826 [
1827     object,
1828     local,
1829     uuid(862629ac-771a-47b2-8337-4e6843c1be90)
1830 ]
1831 interface ISAXDeclHandler : IUnknown
1832 {
1833     HRESULT elementDecl(
1834         [in] const WCHAR * pName,
1835         [in] int nName,
1836         [in] const WCHAR * pModel,
1837         [in] int nModel);
1838
1839     HRESULT attributeDecl(
1840         [in] const WCHAR * pElementName,
1841         [in] int nElementName,
1842         [in] const WCHAR * pAttributeName,
1843         [in] int nAttributeName,
1844         [in] const WCHAR * pType,
1845         [in] int nType,
1846         [in] const WCHAR * pValueDefault,
1847         [in] int nValueDefault,
1848         [in] const WCHAR * pValue,
1849         [in] int nValue);
1850
1851     HRESULT internalEntityDecl(
1852         [in] const WCHAR * pName,
1853         [in] int nName,
1854         [in] const WCHAR * pValue,
1855         [in] int nValue);
1856
1857     HRESULT externalEntityDecl(
1858         [in] const WCHAR * pName,
1859         [in] int nName,
1860         [in] const WCHAR * pPublicId,
1861         [in] int nPublicId,
1862         [in] const WCHAR * pSystemId,
1863         [in] int nSystemId);
1864 };
1865
1866 [
1867     object,
1868     local,
1869     uuid(e15c1baf-afb3-4d60-8c36-19a8c45defed)
1870 ]
1871 interface ISAXDTDHandler : IUnknown
1872 {
1873     HRESULT notationDecl(
1874         [in] const WCHAR * pName,
1875         [in] int nName,
1876         [in] const WCHAR * pPublicId,
1877         [in] int nPublicId,
1878         [in] const WCHAR * pSystemId,
1879         [in] int nSystemId);
1880
1881     HRESULT unparsedEntityDecl(
1882         [in] const WCHAR * pName,
1883         [in] int nName,
1884         [in] const WCHAR * pPublicId,
1885         [in] int nPublicId,
1886         [in] const WCHAR * pSystemId,
1887         [in] int nSystemId,
1888         [in] const WCHAR * pNotationName,
1889         [in] int nNotationName);
1890 };
1891
1892 [
1893     object,
1894     local,
1895     uuid(99bca7bd-e8c4-4d5f-a0cf-6d907901ff07),
1896 ]
1897 interface ISAXEntityResolver : IUnknown
1898 {
1899     HRESULT resolveEntity(
1900         [in] const WCHAR * pPublicId,
1901         [in] const WCHAR * pSystemId,
1902         [out, retval] VARIANT * ret);
1903 };
1904
1905 [
1906     object,
1907     local,
1908     uuid(a60511c4-ccf5-479e-98a3-dc8dc545b7d0)
1909 ]
1910 interface ISAXErrorHandler : IUnknown
1911 {
1912     HRESULT error(
1913         [in] ISAXLocator * pLocator,
1914         [in] const WCHAR * pErrorMessage,
1915         [in] HRESULT hrErrorCode);
1916
1917     HRESULT fatalError(
1918         [in] ISAXLocator * pLocator,
1919         [in] const WCHAR * pErrorMessage,
1920         [in] HRESULT hrErrorCode);
1921
1922     HRESULT ignorableWarning(
1923         [in] ISAXLocator * pLocator,
1924         [in] const WCHAR * pErrorMessage,
1925         [in] HRESULT hrErrorCode);
1926 };
1927
1928 [
1929     object,
1930     local,
1931     uuid(7f85d5f5-47a8-4497-bda5-84ba04819ea6)
1932 ]
1933 interface ISAXLexicalHandler : IUnknown
1934 {
1935     HRESULT startDTD(
1936         [in] const WCHAR * pName,
1937         [in] int nName,
1938         [in] const WCHAR * pPublicId,
1939         [in] int nPublicId,
1940         [in] const WCHAR * pSystemId,
1941         [in] int nSystemId);
1942
1943     HRESULT endDTD();
1944
1945     HRESULT startEntity(
1946         [in] const WCHAR * pName,
1947         [in] int nName);
1948
1949     HRESULT endEntity(
1950         [in] const WCHAR * pName,
1951         [in] int nName);
1952
1953     HRESULT startCDATA();
1954
1955     HRESULT endCDATA();
1956
1957     HRESULT comment(
1958         [in] const WCHAR * pChars,
1959         [in] int nChars);
1960 };
1961
1962 [
1963     object,
1964     local,
1965     uuid(9b7e472a-0de4-4640-bff3-84d38a051c31)
1966 ]
1967 interface ISAXLocator : IUnknown
1968 {
1969     HRESULT getColumnNumber(
1970         [out, retval] int * nColumn);
1971
1972     HRESULT getLineNumber(
1973         [out, retval] int * nLine);
1974
1975     HRESULT getPublicId(
1976         [out, retval] const WCHAR ** publicId);
1977
1978     HRESULT getSystemId(
1979         [out, retval] const WCHAR ** systemId);
1980 };
1981
1982 [
1983     local,
1984     object,
1985     uuid(70409222-ca09-4475-acb8-40312fe8d145)
1986 ]
1987 interface ISAXXMLFilter : ISAXXMLReader
1988 {
1989     HRESULT getParent(
1990         [out, retval] ISAXXMLReader ** pReader);
1991     HRESULT putParent(
1992         [in] ISAXXMLReader * reader);
1993 };
1994
1995 [
1996 local,
1997 object,
1998 uuid (a4f96ed0-f829-476e-81c0-cdc7bd2a0802)
1999 ]
2000 interface ISAXXMLReader : IUnknown
2001 {
2002     HRESULT getFeature(
2003         [in] const WCHAR * pFeature,
2004         [out, retval] VARIANT_BOOL * pValue);
2005     HRESULT putFeature(
2006         [in] const WCHAR * pFeature,
2007         [in] VARIANT_BOOL vfValue);
2008
2009     HRESULT getProperty(
2010         [in] const WCHAR * pProp,
2011         [out, retval] VARIANT * pValue);
2012     HRESULT putProperty(
2013         [in] const WCHAR * pProp,
2014         [in] VARIANT value);
2015
2016     HRESULT getEntityResolver(
2017         [out, retval] ISAXEntityResolver ** ppEntityResolver);
2018     HRESULT putEntityResolver(
2019         [in] ISAXEntityResolver * pEntityResolver);
2020
2021     HRESULT getContentHandler(
2022         [out, retval] ISAXContentHandler ** pContentHandler);
2023     HRESULT putContentHandler(
2024         [in] ISAXContentHandler * contentHandler);
2025
2026     HRESULT getDTDHandler(
2027         [out, retval] ISAXDTDHandler ** pDTDHandler);
2028     HRESULT putDTDHandler(
2029         [in] ISAXDTDHandler * pDTDHandler);
2030
2031     HRESULT getErrorHandler(
2032         [out, retval] ISAXErrorHandler ** pErrorHandler);
2033     HRESULT putErrorHandler(
2034         [in] ISAXErrorHandler * errorHandler);
2035
2036     HRESULT getBaseURL(
2037         [out, retval] const WCHAR ** pBaseUrl);
2038     HRESULT putBaseURL(
2039         [in] const WCHAR * pBaseUrl);
2040
2041     HRESULT getSecureBaseURL(
2042         [out, retval] const WCHAR ** pSecureBaseUrl);
2043     HRESULT putSecureBaseURL(
2044         [in] const WCHAR * secureBaseUrl);
2045
2046     HRESULT parse(
2047         [in] VARIANT varInput);
2048     HRESULT parseURL(
2049         [in] const WCHAR * url);
2050 }
2051
2052 [
2053     object,
2054     dual,
2055     oleautomation,
2056     uuid(10dc0586-132b-4cac-8bb3-db00ac8b7ee0)
2057 ]
2058 interface IVBSAXAttributes : IDispatch
2059 {
2060     [propget, id(DISPID_SAX_ATTRIBUTES_LENGTH)]
2061     HRESULT length( [out, retval] int * nLength);
2062
2063     [id(DISPID_SAX_ATTRIBUTES_GETURI)]
2064     HRESULT getURI( [in] int nIndex, [out, retval] BSTR * uri);
2065
2066     [id(DISPID_SAX_ATTRIBUTES_GETLOCALNAME)]
2067     HRESULT getLocalName( [in] int nIndex, [out, retval] BSTR * localName);
2068
2069     [id(DISPID_SAX_ATTRIBUTES_GETQNAME)]
2070     HRESULT getQName( [in] int nIndex, [out, retval] BSTR * QName);
2071
2072     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMNAME)]
2073     HRESULT getIndexFromName( [in] BSTR uri,
2074                               [in] BSTR localName, [out, retval] int * nIndex);
2075
2076     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMQNAME)]
2077     HRESULT getIndexFromQName( [in] BSTR QName, [out, retval] int * nIndex);
2078
2079     [id(DISPID_SAX_ATTRIBUTES_GETTYPE)]
2080     HRESULT getType( [in] int nIndex, [out, retval] BSTR * type);
2081
2082     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMNAME)]
2083     HRESULT getTypeFromName( [in] BSTR uri, [in] BSTR localName,
2084                              [out, retval] BSTR * type);
2085
2086     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMQNAME)]
2087     HRESULT getTypeFromQName( [in] BSTR QName, [out, retval] BSTR * type);
2088
2089     [id(DISPID_SAX_ATTRIBUTES_GETVALUE)]
2090     HRESULT getValue( [in] int nIndex, [out, retval] BSTR * value);
2091
2092     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMNAME)]
2093     HRESULT getValueFromName( [in] BSTR uri,
2094                               [in] BSTR localName,
2095                               [out, retval] BSTR * value);
2096
2097     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMQNAME)]
2098     HRESULT getValueFromQName( [in] BSTR QName, [out, retval] BSTR * value);
2099 };
2100
2101 [
2102     object,
2103     dual,
2104     oleautomation,
2105     uuid(2ed7290a-4dd5-4b46-bb26-4e4155e77faa)
2106 ]
2107 interface IVBSAXContentHandler : IDispatch
2108 {
2109     [propputref, id(DISPID_SAX_CONTENTHANDLER_DOCUMENTLOCATOR)]
2110     HRESULT documentLocator( [in] IVBSAXLocator * oLocator);
2111
2112     [id(DISPID_SAX_CONTENTHANDLER_STARTDOCUMENT)]
2113     HRESULT startDocument();
2114
2115     [id(DISPID_SAX_CONTENTHANDLER_ENDDOCUMENT)]
2116     HRESULT endDocument();
2117
2118     [id(DISPID_SAX_CONTENTHANDLER_STARTPREFIXMAPPING)]
2119     HRESULT startPrefixMapping( [in, out] BSTR * prefix, [in, out] BSTR * uri);
2120
2121     [id(DISPID_SAX_CONTENTHANDLER_ENDPREFIXMAPPING)]
2122     HRESULT endPrefixMapping( [in, out] BSTR * prefix);
2123
2124     [id(DISPID_SAX_CONTENTHANDLER_STARTELEMENT)]
2125     HRESULT startElement( [in, out] BSTR * namespaceURI,
2126                           [in, out] BSTR * localName,
2127                           [in, out] BSTR * QName,
2128                           [in] IVBSAXAttributes * oAttributes);
2129
2130     [id(DISPID_SAX_CONTENTHANDLER_ENDELEMENT)]
2131     HRESULT endElement( [in, out] BSTR * namespaceURI,
2132                         [in, out] BSTR * localName, [in, out] BSTR * strQName);
2133
2134     [id(DISPID_SAX_CONTENTHANDLER_CHARACTERS)]
2135     HRESULT characters( [in, out] BSTR * chars);
2136
2137     [id(DISPID_SAX_CONTENTHANDLER_IGNORABLEWHITESPACE)]
2138     HRESULT ignorableWhitespace( [in, out] BSTR * chars);
2139
2140     [id(DISPID_SAX_CONTENTHANDLER_PROCESSINGINSTRUCTION)]
2141     HRESULT processingInstruction( [in, out] BSTR * target,
2142                                    [in, out] BSTR * data);
2143
2144     [id(DISPID_SAX_CONTENTHANDLER_SKIPPEDENTITY)]
2145     HRESULT skippedEntity( [in, out] BSTR * name);
2146 };
2147
2148 [
2149     object,
2150     dual,
2151     oleautomation,
2152     uuid(e8917260-7579-4be1-b5dd-7afbfa6f077b)
2153 ]
2154 interface IVBSAXDeclHandler : IDispatch
2155 {
2156     [id(DISPID_SAX_DECLHANDLER_ELEMENTDECL)]
2157     HRESULT elementDecl(
2158         [in, out] BSTR * name,
2159         [in, out] BSTR * model);
2160
2161     [id(DISPID_SAX_DECLHANDLER_ATTRIBUTEDECL)]
2162     HRESULT attributeDecl(
2163         [in, out] BSTR * elementName,
2164         [in, out] BSTR * attributeName,
2165         [in, out] BSTR * type,
2166         [in, out] BSTR * valueDefault,
2167         [in, out] BSTR * value);
2168
2169     [id(DISPID_SAX_DECLHANDLER_INTERNALENTITYDECL)]
2170     HRESULT internalEntityDecl(
2171         [in, out] BSTR * name,
2172         [in, out] BSTR * value);
2173
2174     [id(DISPID_SAX_DECLHANDLER_EXTERNALENTITYDECL)]
2175     HRESULT externalEntityDecl(
2176         [in, out] BSTR * name,
2177         [in, out] BSTR * publicId,
2178         [in, out] BSTR * systemId);
2179 };
2180
2181 [
2182     object,
2183     dual,
2184     oleautomation,
2185     uuid(24fb3297-302d-4620-ba39-3a732d850558)
2186 ]
2187 interface IVBSAXDTDHandler : IDispatch
2188 {
2189     [id(DISPID_SAX_DTDHANDLER_NOTATIONDECL)]
2190     HRESULT notationDecl(
2191         [in, out] BSTR * name,
2192         [in, out] BSTR * publicId,
2193         [in, out] BSTR * systemId);
2194
2195     [id(DISPID_SAX_DTDHANDLER_UNPARSEDENTITYDECL)]
2196     HRESULT unparsedEntityDecl(
2197         [in, out] BSTR * name,
2198         [in, out] BSTR * publicId,
2199         [in, out] BSTR * systemId,
2200         [in, out] BSTR * notationName);
2201 };
2202
2203 [
2204     object,
2205     dual,
2206     oleautomation,
2207     uuid(0c05d096-f45b-4aca-ad1a-aa0bc25518dc)
2208 ]
2209 interface IVBSAXEntityResolver : IDispatch
2210 {
2211     [id(DISPID_SAX_ENTITYRESOLVER_RESOLVEENTITY)]
2212     HRESULT resolveEntity(
2213         [in, out] BSTR * publicId,
2214         [in, out] BSTR * systemId,
2215         [out, retval] VARIANT * ret);
2216 };
2217
2218 [
2219     object,
2220     dual,
2221     oleautomation,
2222     uuid(d963d3fe-173c-4862-9095-b92f66995f52)
2223 ]
2224 interface IVBSAXErrorHandler : IDispatch
2225 {
2226     [id(DISPID_SAX_ERRORHANDLER_ERROR)]
2227     HRESULT error(
2228             [in] IVBSAXLocator * locator,
2229             [in, out] BSTR * errorMessage,
2230             [in] LONG errorCode);
2231
2232     [id(DISPID_SAX_ERRORHANDLER_FATALERROR)]
2233     HRESULT fatalError(
2234             [in] IVBSAXLocator * locator,
2235             [in, out] BSTR * errorMessage,
2236             [in] LONG errorCode);
2237
2238     [id(DISPID_SAX_ERRORHANDLER_IGNORABLEWARNING)]
2239     HRESULT ignorableWarning(
2240             [in] IVBSAXLocator * locator,
2241             [in, out] BSTR * errorMessage,
2242             [in] LONG errorCode);
2243 };
2244
2245 [
2246     object,
2247     dual,
2248     oleautomation,
2249     uuid(032aac35-8c0e-4d9d-979f-e3b702935576)
2250 ]
2251 interface IVBSAXLexicalHandler : IDispatch
2252 {
2253     [id(DISPID_SAX_LEXICALHANDLER_STARTDTD)]
2254     HRESULT startDTD(
2255         [in, out] BSTR * name,
2256         [in, out] BSTR * publicId,
2257         [in, out] BSTR * systemId);
2258     [id(DISPID_SAX_LEXICALHANDLER_ENDDTD)]
2259     HRESULT endDTD();
2260
2261     [id(DISPID_SAX_LEXICALHANDLER_STARTENTITY)]
2262     HRESULT startEntity([in, out] BSTR * name);
2263     [id(DISPID_SAX_LEXICALHANDLER_ENDENTITY)]
2264     HRESULT endEntity([in, out] BSTR * name);
2265
2266     [id(DISPID_SAX_LEXICALHANDLER_STARTCDATA)]
2267     HRESULT startCDATA();
2268     [id(DISPID_SAX_LEXICALHANDLER_ENDCDATA)]
2269     HRESULT endCDATA();
2270
2271     [id(DISPID_SAX_LEXICALHANDLER_COMMENT)]
2272     HRESULT comment( [in, out] BSTR * chars);
2273 };
2274
2275 [
2276     object,
2277     dual,
2278     oleautomation,
2279     uuid(796e7ac5-5aa2-4eff-acad-3faaf01a3288)
2280 ]
2281 interface IVBSAXLocator : IDispatch
2282 {
2283     [propget, id(DISPID_SAX_LOCATOR_COLUMNNUMBER)]
2284     HRESULT columnNumber( [out, retval] int * column);
2285
2286     [propget, id(DISPID_SAX_LOCATOR_LINENUMBER)]
2287     HRESULT lineNumber( [out, retval] int * line);
2288
2289     [propget, id(DISPID_SAX_LOCATOR_PUBLICID)]
2290     HRESULT publicId( [out, retval] BSTR * publicId);
2291
2292     [propget, id(DISPID_SAX_LOCATOR_SYSTEMID)]
2293     HRESULT systemId( [out, retval] BSTR * systemId);
2294 };
2295
2296 [
2297     object,
2298     dual,
2299     oleautomation,
2300     uuid(1299eb1b-5b88-433e-82de-82ca75ad4e04)
2301 ]
2302 interface IVBSAXXMLFilter : IDispatch
2303 {
2304     [propget, id(DISPID_SAX_XMLFILTER_PARENT)]
2305     HRESULT parent( [out, retval] IVBSAXXMLReader ** reader);
2306     [propputref, id(DISPID_SAX_XMLFILTER_PARENT)]
2307     HRESULT parent( [in] IVBSAXXMLReader * reader);
2308
2309 };
2310
2311 [
2312     dual,
2313     oleautomation,
2314     object,
2315     uuid (8c033caa-6cd6-4f73-b728-4531af74945f)
2316 ]
2317 interface IVBSAXXMLReader : IDispatch
2318 {
2319     [id(DISPID_SAX_XMLREADER_GETFEATURE)]
2320     HRESULT getFeature( [in] const WCHAR * pFeature,
2321                         [out, retval] VARIANT_BOOL * pValue);
2322     [id(DISPID_SAX_XMLREADER_PUTFEATURE)]
2323     HRESULT putFeature( [in] const WCHAR * pFeature,
2324                         [in] VARIANT_BOOL vfValue);
2325
2326     [id(DISPID_SAX_XMLREADER_GETPROPERTY)]
2327     HRESULT getProperty( [in] const WCHAR * pProp,
2328                          [out, retval] VARIANT * pValue);
2329     [id(DISPID_SAX_XMLREADER_PUTPROPERTY)]
2330     HRESULT putProperty( [in] const WCHAR * pProp, [in] VARIANT value);
2331
2332     [propget, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
2333     HRESULT entityResolver(
2334                     [out, retval] IVBSAXEntityResolver ** ppEntityResolver);
2335     [propputref, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
2336     HRESULT entityResolver( [in] IVBSAXEntityResolver * pEntityResolver);
2337
2338     [propget, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
2339     HRESULT contentHandler(
2340                         [out, retval] IVBSAXContentHandler ** pContentHandler);
2341     [propputref, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
2342     HRESULT contentHandler([in] IVBSAXContentHandler * contentHandler);
2343
2344     [propget, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
2345     HRESULT dtdHandler([out, retval] IVBSAXDTDHandler ** pDTDHandler);
2346     [propputref, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
2347     HRESULT dtdHandler([in] IVBSAXDTDHandler * pDTDHandler);
2348
2349     [propget, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
2350     HRESULT errorHandler([out, retval] IVBSAXErrorHandler ** pErrorHandler);
2351     [propputref, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
2352     HRESULT errorHandler([in] IVBSAXErrorHandler * errorHandler);
2353
2354     [propget, id(DISPID_SAX_XMLREADER_BASEURL)]
2355     HRESULT baseURL([out, retval] const WCHAR ** pBaseUrl);
2356     [propput, id(DISPID_SAX_XMLREADER_BASEURL)]
2357     HRESULT baseURL([in] const WCHAR * pBaseUrl);
2358
2359     [propget, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
2360     HRESULT secureBaseURL([out, retval] const WCHAR ** pSecureBaseUrl);
2361     [propput, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
2362     HRESULT secureBaseURL([in] const WCHAR * secureBaseUrl);
2363
2364     [id(DISPID_SAX_XMLREADER_PARSE)]
2365     HRESULT parse( [in] VARIANT varInput);
2366     [id(DISPID_SAX_XMLREADER_PARSEURL)]
2367     HRESULT parseURL([in] const WCHAR * url);
2368 }
2369
2370 [
2371     object,
2372     dual,
2373     oleautomation,
2374     uuid(f10d27cc-3ec0-415c-8ed8-77ab1c5e7262)
2375 ]
2376 interface IMXAttributes : IDispatch
2377 {
2378     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTE)]
2379     HRESULT addAttribute(
2380         [in] BSTR uri,
2381         [in] BSTR localName,
2382         [in] BSTR QName,
2383         [in] BSTR type,
2384         [in] BSTR value);
2385
2386     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTEFROMINDEX)]
2387     HRESULT addAttributeFromIndex( [in] VARIANT atts,
2388                                    [in] int index);
2389
2390     [id(DISPID_MX_ATTRIBUTES_CLEAR)]
2391     HRESULT clear();
2392
2393     [id(DISPID_MX_ATTRIBUTES_REMOVEATTRIBUTE)]
2394     HRESULT removeAttribute( [in] int index);
2395
2396     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTE)]
2397     HRESULT setAttribute(
2398         [in] int index,
2399         [in] BSTR uri,
2400         [in] BSTR localName,
2401         [in] BSTR QName,
2402         [in] BSTR type,
2403         [in] BSTR value);
2404
2405     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTES)]
2406     HRESULT setAttributes( [in] VARIANT atts);
2407
2408     [id(DISPID_MX_ATTRIBUTES_SETLOCALNAME)]
2409     HRESULT setLocalName( [in] int index,
2410         [in] BSTR localName);
2411
2412     [id(DISPID_MX_ATTRIBUTES_SETQNAME)]
2413     HRESULT setQName(
2414         [in] int index,
2415         [in] BSTR QName);
2416
2417     [id(DISPID_MX_ATTRIBUTES_SETTYPE)]
2418     HRESULT setType( [in] int index, [in] BSTR type);
2419
2420     [id(DISPID_MX_ATTRIBUTES_SETURI)]
2421     HRESULT setURI( [in] int index,  [in] BSTR uri);
2422
2423     [id(DISPID_MX_ATTRIBUTES_SETVALUE)]
2424     HRESULT setValue([in] int index, [in] BSTR value);
2425 };
2426
2427 [
2428     local,
2429     object,
2430     dual,
2431     oleautomation,
2432     uuid(fa4bb38c-faf9-4cca-9302-d1dd0fe520db)
2433 ]
2434 interface IMXSchemaDeclHandler : IDispatch
2435 {
2436     [id(DISPID_MX_SCHEMADECLHANDLER_SCHEMAELEMENTDECL)]
2437     HRESULT schemaElementDecl( [in] ISchemaElement *oSchemaElement );
2438 }
2439
2440 [
2441     object,
2442     dual,
2443     oleautomation,
2444     uuid(808f4e35-8d5a-4fbe-8466-33a41279ed30)
2445 ]
2446 interface IMXReaderControl : IDispatch
2447 {
2448     [id(DISPID_MX_READER_CONTROL_ABORT)]
2449     HRESULT abort();
2450
2451     [id(DISPID_MX_READER_CONTROL_RESUME)]
2452     HRESULT resume();
2453
2454     [id(DISPID_MX_READER_CONTROL_SUSPEND)]
2455     HRESULT suspend();
2456 };
2457
2458 [
2459     object,
2460     dual,
2461     oleautomation,
2462     uuid(4d7ff4ba-1565-4ea8-94e1-6e724a46f98d)
2463 ]
2464 interface IMXWriter :  IDispatch
2465 {
2466     [propput, id(DISPID_MX_WRITER_OUTPUT)]
2467     HRESULT output ( [in] VARIANT Destination);
2468     [propget, id(DISPID_MX_WRITER_OUTPUT)]
2469     HRESULT output ( [out, retval] VARIANT * Destination);
2470
2471     [propput, id(DISPID_MX_WRITER_ENCODING)]
2472     HRESULT encoding ([in] BSTR encoding);
2473     [propget, id(DISPID_MX_WRITER_ENCODING)]
2474     HRESULT encoding ([out, retval] BSTR * encoding);
2475
2476     [propput, id(DISPID_MX_WRITER_BYTEORDERMARK)]
2477     HRESULT byteOrderMark ([in] VARIANT_BOOL writeByteOrderMark);
2478     [propget, id(DISPID_MX_WRITER_BYTEORDERMARK)]
2479     HRESULT byteOrderMark ([out, retval] VARIANT_BOOL * writeByteOrderMark);
2480
2481     [propput, id(DISPID_MX_WRITER_INDENT)]
2482     HRESULT indent ([in] VARIANT_BOOL indentMode);
2483     [propget, id(DISPID_MX_WRITER_INDENT)]
2484     HRESULT indent ([out, retval] VARIANT_BOOL * indentMode);
2485
2486     [propput, id(DISPID_MX_WRITER_STANDALONE)]
2487     HRESULT standalone ([in] VARIANT_BOOL value);
2488     [propget, id(DISPID_MX_WRITER_STANDALONE)]
2489     HRESULT standalone ([out, retval] VARIANT_BOOL * value);
2490
2491     [propput, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
2492     HRESULT omitXMLDeclaration ([in] VARIANT_BOOL value);
2493     [propget, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
2494     HRESULT omitXMLDeclaration ([out, retval] VARIANT_BOOL * value);
2495
2496     [propput, id(DISPID_MX_WRITER_VERSION)]
2497     HRESULT version ([in] BSTR version);
2498     [propget, id(DISPID_MX_WRITER_VERSION)]
2499     HRESULT version ([out, retval] BSTR * version);
2500
2501     [propput, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
2502     HRESULT disableOutputEscaping([in] VARIANT_BOOL value);
2503     [propget, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
2504     HRESULT disableOutputEscaping([out, retval] VARIANT_BOOL * value);
2505
2506     [id(DISPID_MX_WRITER_FLUSH)]
2507     HRESULT flush();
2508 };
2509
2510 [
2511     local,
2512     object,
2513     dual,
2514     oleautomation,
2515     uuid(c90352f4-643c-4fbc-bb23-e996eb2d51fd)
2516 ]
2517 interface IMXNamespacePrefixes : IDispatch
2518 {
2519     [propget, id(DISPID_VALUE)]
2520     HRESULT item(
2521         [in] long index,
2522         [out, retval] BSTR *prefix);
2523
2524     [propget, id(DISPID_MX_NSMGR_LENGTH)]
2525     HRESULT length( [out,retval] long *length );
2526
2527     [propget, restricted, hidden, id(DISPID_NEWENUM)]
2528     HRESULT _newEnum( [out, retval] IUnknown **ppUnk );
2529 }
2530
2531 [
2532     local,
2533     object,
2534     hidden,
2535     uuid(c90352f6-643c-4fbc-bb23-e996eb2d51fd)
2536 ]
2537 interface IMXNamespaceManager : IUnknown
2538 {
2539     HRESULT putAllowOverride([in] VARIANT_BOOL fOverride);
2540
2541     HRESULT getAllowOverride([out, retval] VARIANT_BOOL *fOverride);
2542
2543     HRESULT reset();
2544
2545     HRESULT pushContext();
2546
2547     HRESULT pushNodeContext(
2548         [in] IXMLDOMNode *contextNode,
2549         [in] VARIANT_BOOL fDeep);
2550
2551     HRESULT popContext();
2552
2553     HRESULT declarePrefix(
2554         [in] const WCHAR *prefix,
2555         [in] const WCHAR *namespaceURI);
2556
2557     HRESULT getDeclaredPrefix(
2558         [in] long nIndex,
2559         [in, out] WCHAR *pwchPrefix,
2560         [in, out] int *pcchPrefix);
2561
2562     HRESULT getPrefix(
2563         [in] const WCHAR *pwszNamespaceURI,
2564         [in] long nIndex,
2565         [in, out] WCHAR *pwchPrefix,
2566         [in, out] int *pcchPrefix);
2567
2568     HRESULT getURI(
2569         [in] const WCHAR *pwchPrefix,
2570         [in] IXMLDOMNode* pContextNode,
2571         [in, out] WCHAR *pwchUri,
2572         [in, out] int *pcchUri);
2573 }
2574
2575 [
2576     local,
2577     object,
2578     dual,
2579     oleautomation,
2580     uuid(c90352f5-643c-4fbc-bb23-e996eb2d51fd)
2581 ]
2582 interface IVBMXNamespaceManager : IDispatch
2583 {
2584     [propput, id(DISPID_MX_NSMGR_ALLOWOVERRIDE)]
2585     HRESULT allowOverride([in] VARIANT_BOOL fOverride);
2586
2587     [propget, id(DISPID_MX_NSMGR_ALLOWOVERRIDE)]
2588     HRESULT allowOverride([out,retval] VARIANT_BOOL* fOverride);
2589
2590     [id(DISPID_MX_NSMGR_RESET)]
2591     HRESULT reset();
2592
2593     [id(DISPID_MX_NSMGR_PUSHCONTEXT)]
2594     HRESULT pushContext();
2595
2596     [id(DISPID_MX_NSMGR_PUSHNODECONTEXT)]
2597     HRESULT pushNodeContext(
2598         [in] IXMLDOMNode* contextNode,
2599         [in, defaultvalue(-1)] VARIANT_BOOL fDeep);
2600
2601     [id(DISPID_MX_NSMGR_POPCONTEXT)]
2602     HRESULT popContext();
2603
2604     [id(DISPID_MX_NSMGR_DECLAREPREFIX)]
2605     HRESULT declarePrefix(
2606         [in] BSTR prefix,
2607         [in] BSTR namespaceURI);
2608
2609     [id(DISPID_MX_NSMGR_GETDECLAREDPREFIXES)]
2610     HRESULT getDeclaredPrefixes([out, retval] IMXNamespacePrefixes** prefixes);
2611
2612     [id(DISPID_MX_NSMGR_GETPREFIXES)]
2613     HRESULT getPrefixes(
2614         [in] BSTR namespaceURI,
2615         [out, retval] IMXNamespacePrefixes** prefixes);
2616
2617     [id(DISPID_MX_NSMGR_GETURI)]
2618     HRESULT getURI(
2619         [in] BSTR prefix,
2620         [out, retval] VARIANT* uri);
2621
2622     [id(DISPID_MX_NSMGR_GETURIFROMNODE)]
2623     HRESULT getURIFromNode(
2624         [in] BSTR strPrefix,
2625         [in] IXMLDOMNode* contextNode,
2626         [out, retval] VARIANT* uri);
2627 }
2628
2629 [
2630     local,
2631     object,
2632     dual,
2633     oleautomation,
2634     uuid(c90352f7-643c-4fbc-bb23-e996eb2d51fd)
2635 ]
2636 interface IMXXMLFilter : IDispatch
2637 {
2638     [id(DISPID_MXXML_FILTER_GETFEATURE)]
2639     HRESULT getFeature(
2640         [in] BSTR strName,
2641         [out, retval] VARIANT_BOOL * fValue);
2642
2643     [id(DISPID_MXXML_FILTER_PUTFEATURE)]
2644     HRESULT putFeature(
2645         [in] BSTR strName,
2646         [in] VARIANT_BOOL fValue);
2647
2648     [id(DISPID_MXXML_FILTER_GETPROPERTY)]
2649     HRESULT getProperty(
2650         [in] BSTR strName,
2651         [out, retval] VARIANT * varValue);
2652
2653     [id(DISPID_MXXML_FILTER_PUTPROPERTY)]
2654     HRESULT putProperty(
2655         [in] BSTR strName,
2656         [in] VARIANT varValue);
2657
2658     [id(DISPID_MXXML_FILTER_ENTITYRESOLVER), propget]
2659     HRESULT entityResolver( [out, retval] IUnknown **oResolver );
2660
2661     [id(DISPID_MXXML_FILTER_ENTITYRESOLVER), propputref]
2662     HRESULT entityResolver( [in] IUnknown *oResolver );
2663
2664     [id(DISPID_MXXML_FILTER_CONTENTHANDLER), propget]
2665     HRESULT contentHandler( [out, retval] IUnknown **oHandler );
2666
2667     [id(DISPID_MXXML_FILTER_CONTENTHANDLER), propputref]
2668     HRESULT contentHandler( [in] IUnknown *oHandler );
2669
2670     [id(DISPID_MXXML_FILTER_DTDHANDLER), propget]
2671     HRESULT dtdHandler( [out, retval] IUnknown **oHandler );
2672
2673     [id(DISPID_MXXML_FILTER_DTDHANDLER), propputref]
2674     HRESULT dtdHandler( [in] IUnknown *oHandler );
2675
2676     [id(DISPID_MXXML_FILTER_ERRORHANDLER), propget]
2677     HRESULT errorHandler( [out, retval] IUnknown **oHandler );
2678
2679     [id(DISPID_MXXML_FILTER_ERRORHANDLER), propputref]
2680     HRESULT errorHandler( [in] IUnknown *oHandler );
2681 }
2682
2683 [
2684     local,
2685     object,
2686     uuid(50ea08b1-dd1b-4664-9a50-c2f40f4bd79a),
2687     oleautomation,
2688     dual
2689 ]
2690 interface ISchemaStringCollection : IDispatch
2691 {
2692     [id(DISPID_VALUE), propget]
2693     HRESULT item(
2694         [in] long index,
2695         [out,retval] BSTR* bstr);
2696
2697     [id(DISPID_SOM_LENGTH), propget]
2698     HRESULT length(
2699         [out,retval] long* length);
2700
2701     [id(DISPID_NEWENUM), hidden, restricted, propget]
2702     HRESULT _newEnum(
2703         [out,retval] IUnknown** ppunk);
2704 };
2705
2706 [
2707     local,
2708     object,
2709     uuid(50ea08b2-dd1b-4664-9a50-c2f40f4bd79a),
2710     oleautomation,
2711     dual
2712 ]
2713 interface ISchemaItemCollection : IDispatch
2714 {
2715     [id(DISPID_VALUE), propget]
2716     HRESULT item(
2717         [in] long index,
2718         [out,retval]ISchemaItem** item);
2719
2720     [id(DISPID_SOM_ITEMBYNAME)]
2721     HRESULT itemByName(
2722         [in] BSTR name,
2723         [out,retval] ISchemaItem** item);
2724
2725     [id(DISPID_SOM_ITEMBYQNAME)]
2726     HRESULT itemByQName(
2727         [in] BSTR name,
2728         [in] BSTR namespaceURI,
2729         [out,retval] ISchemaItem** item);
2730
2731     [id(DISPID_SOM_LENGTH), propget]
2732     HRESULT length(
2733         [out,retval]long* length);
2734
2735     [id(DISPID_NEWENUM), hidden, restricted, propget]
2736     HRESULT _newEnum(
2737         [out,retval]IUnknown** ppunk);
2738 };
2739
2740 [
2741     local,
2742     object,
2743     uuid(50ea08b3-dd1b-4664-9a50-c2f40f4bd79a),
2744     oleautomation,
2745     dual
2746 ]
2747 interface ISchemaItem : IDispatch
2748 {
2749     [id(DISPID_SOM_NAME), propget]
2750     HRESULT name(
2751         [out,retval] BSTR* name);
2752
2753     [id(DISPID_SOM_NAMESPACEURI), propget]
2754     HRESULT namespaceURI(
2755         [out,retval] BSTR* namespaceURI);
2756
2757     [id(DISPID_SOM_SCHEMA), propget]
2758     HRESULT schema(
2759         [out,retval] ISchema** schema);
2760
2761     [id(DISPID_SOM_ID), propget]
2762     HRESULT id(
2763         [out,retval] BSTR* id);
2764
2765     [id(DISPID_SOM_ITEMTYPE), propget]
2766     HRESULT itemType(
2767         [out,retval] SOMITEMTYPE* itemType);
2768
2769     [id(DISPID_SOM_UNHANDLEDATTRS), propget]
2770     HRESULT unhandledAttributes(
2771         [out,retval] IVBSAXAttributes** attributes);
2772
2773     [id(DISPID_SOM_WRITEANNOTATION)]
2774     HRESULT writeAnnotation(
2775         [in] IUnknown* annotationSink,
2776         [out,retval] VARIANT_BOOL* isWritten);
2777 };
2778
2779 [
2780     local,
2781     object,
2782     uuid(50ea08b4-dd1b-4664-9a50-c2f40f4bd79a),
2783     oleautomation,
2784     dual
2785 ]
2786 interface ISchema : ISchemaItem
2787 {
2788     [id(DISPID_SOM_TARGETNAMESPACE), propget]
2789     HRESULT targetNamespace(
2790         [out,retval] BSTR* targetNamespace);
2791
2792     [id(DISPID_SOM_VERSION), propget]
2793     HRESULT version(
2794         [out,retval] BSTR* version);
2795
2796     [id(DISPID_SOM_TYPES), propget]
2797     HRESULT types(
2798         [out,retval] ISchemaItemCollection** types);
2799
2800     [id(DISPID_SOM_ELEMENTS), propget]
2801     HRESULT elements(
2802         [out,retval] ISchemaItemCollection** elements);
2803
2804     [id(DISPID_SOM_ATTRIBUTES), propget]
2805     HRESULT attributes(
2806         [out,retval] ISchemaItemCollection** attributes);
2807
2808     [id(DISPID_SOM_ATTRIBUTEGROUPS), propget]
2809     HRESULT attributeGroups(
2810         [out,retval] ISchemaItemCollection** attributeGroups);
2811
2812     [id(DISPID_SOM_MODELGROUPS), propget]
2813     HRESULT modelGroups(
2814         [out,retval] ISchemaItemCollection** modelGroups);
2815
2816     [id(DISPID_SOM_NOTATIONS), propget]
2817     HRESULT notations(
2818         [out,retval] ISchemaItemCollection** notations);
2819
2820     [id(DISPID_SOM_SCHEMALOCATIONS), propget]
2821     HRESULT schemaLocations(
2822         [out,retval] ISchemaStringCollection** schemaLocations);
2823 };
2824
2825 [
2826     local,
2827     object,
2828     uuid(50ea08b5-dd1b-4664-9a50-c2f40f4bd79a),
2829     oleautomation,
2830     dual
2831 ]
2832 interface ISchemaParticle : ISchemaItem
2833 {
2834     [id(DISPID_SOM_MINOCCURS), propget]
2835     HRESULT minOccurs(
2836         [out,retval] VARIANT* minOccurs);
2837
2838     [id(DISPID_SOM_MAXOCCURS), propget]
2839     HRESULT maxOccurs(
2840         [out,retval] VARIANT* maxOccurs);
2841 };
2842
2843 [
2844     object,
2845     uuid(50ea08b6-dd1b-4664-9a50-c2f40f4bd79a),
2846     oleautomation,
2847     dual,
2848 ]
2849 interface ISchemaAttribute : ISchemaItem
2850 {
2851     [id(DISPID_SOM_TYPE), propget]
2852     HRESULT type(
2853         [out,retval] ISchemaType** type);
2854
2855     [id(DISPID_SOM_SCOPE), propget]
2856     HRESULT scope(
2857         [out,retval] ISchemaComplexType** scope);
2858
2859     [id(DISPID_SOM_DEFAULTVALUE), propget]
2860     HRESULT defaultValue(
2861         [out,retval]BSTR* defaultValue);
2862
2863     [id(DISPID_SOM_FIXEDVALUE), propget]
2864     HRESULT fixedValue(
2865         [out,retval] BSTR* fixedValue);
2866
2867     [id(DISPID_SOM_USE), propget]
2868     HRESULT use(
2869         [out,retval] SCHEMAUSE* use);
2870
2871     [id(DISPID_SOM_ISREFERENCE), propget]
2872     HRESULT isReference(
2873         [out,retval] VARIANT_BOOL* reference);
2874 };
2875
2876 [
2877     local,
2878     object,
2879     uuid(50ea08b7-dd1b-4664-9a50-c2f40f4bd79a),
2880     oleautomation,
2881     dual
2882 ]
2883 interface ISchemaElement : ISchemaParticle
2884 {
2885     [id(DISPID_SOM_TYPE), propget]
2886     HRESULT type(
2887         [out,retval] ISchemaType** type);
2888
2889     [id(DISPID_SOM_SCOPE), propget]
2890     HRESULT scope(
2891         [out,retval] ISchemaComplexType** scope);
2892
2893     [id(DISPID_SOM_DEFAULTVALUE), propget]
2894     HRESULT defaultValue(
2895         [out,retval] BSTR* defaultValue);
2896
2897     [id(DISPID_SOM_FIXEDVALUE), propget]
2898     HRESULT fixedValue(
2899         [out,retval] BSTR* fixedValue);
2900
2901     [id(DISPID_SOM_ISNILLABLE), propget]
2902     HRESULT isNillable(
2903         [out,retval] VARIANT_BOOL* nillable);
2904
2905     [id(DISPID_SOM_IDCONSTRAINTS), propget]
2906     HRESULT identityConstraints(
2907         [out,retval] ISchemaItemCollection** constraints);
2908
2909     [id(DISPID_SOM_SUBSTITUTIONGROUP), propget]
2910     HRESULT substitutionGroup(
2911         [out,retval] ISchemaElement** element);
2912
2913     [id(DISPID_SOM_EXCLUSIONS), propget]
2914     HRESULT substitutionGroupExclusions(
2915         [out,retval] SCHEMADERIVATIONMETHOD* exclusions);
2916
2917     [id(DISPID_SOM_DISALLOWED), propget]
2918     HRESULT disallowedSubstitutions(
2919         [out,retval] SCHEMADERIVATIONMETHOD* disallowed);
2920
2921     [id(DISPID_SOM_ISABSTRACT), propget]
2922     HRESULT isAbstract(
2923         [out,retval] VARIANT_BOOL* abstract);
2924
2925     [id(DISPID_SOM_ISREFERENCE), propget]
2926     HRESULT isReference(
2927         [out,retval] VARIANT_BOOL* reference);
2928 };
2929
2930 [
2931     local,
2932     object,
2933     uuid(50ea08b8-dd1b-4664-9a50-c2f40f4bd79a),
2934     oleautomation,
2935     dual
2936 ]
2937 interface ISchemaType : ISchemaItem
2938 {
2939     [id(DISPID_SOM_BASETYPES), propget]
2940     HRESULT baseTypes(
2941         [out,retval] ISchemaItemCollection** baseTypes);
2942
2943     [id(DISPID_SOM_FINAL), propget]
2944     HRESULT final(
2945         [out,retval] SCHEMADERIVATIONMETHOD* final);
2946
2947     [id(DISPID_SOM_VARIETY), propget]
2948     HRESULT variety(
2949         [out,retval] SCHEMATYPEVARIETY* variety);
2950
2951     [id(DISPID_SOM_DERIVEDBY), propget]
2952     HRESULT derivedBy(
2953         [out,retval] SCHEMADERIVATIONMETHOD* derivedBy);
2954
2955     [id(DISPID_SOM_ISVALID)]
2956     HRESULT isValid(
2957         [in] BSTR data,
2958         [out,retval] VARIANT_BOOL* valid);
2959
2960     [id(DISPID_SOM_MINEXCLUSIVE), propget]
2961     HRESULT minExclusive(
2962         [out,retval]BSTR* minExclusive);
2963
2964     [id(DISPID_SOM_MININCLUSIVE), propget]
2965     HRESULT minInclusive(
2966         [out,retval] BSTR* minInclusive);
2967
2968     [id(DISPID_SOM_MAXEXCLUSIVE), propget]
2969     HRESULT maxExclusive(
2970         [out,retval] BSTR* maxExclusive);
2971
2972     [id(DISPID_SOM_MAXINCLUSIVE), propget]
2973     HRESULT maxInclusive(
2974         [out,retval] BSTR* maxInclusive);
2975
2976     [id(DISPID_SOM_TOTALDIGITS), propget]
2977     HRESULT totalDigits(
2978         [out,retval] VARIANT* totalDigits);
2979
2980     [id(DISPID_SOM_FRACTIONDIGITS), propget]
2981     HRESULT fractionDigits(
2982         [out,retval] VARIANT* fractionDigits);
2983
2984     [id(DISPID_SOM_LENGTH), propget]
2985     HRESULT length(
2986         [out,retval] VARIANT* length);
2987
2988     [id(DISPID_SOM_MINLENGTH), propget]
2989     HRESULT minLength(
2990         [out,retval]VARIANT* minLength);
2991
2992     [id(DISPID_SOM_MAXLENGTH), propget]
2993     HRESULT maxLength(
2994         [out,retval]VARIANT* maxLength);
2995
2996     [id(DISPID_SOM_ENUMERATION), propget]
2997     HRESULT enumeration(
2998         [out,retval] ISchemaStringCollection** enumeration);
2999
3000     [id(DISPID_SOM_WHITESPACE), propget]
3001     HRESULT whitespace(
3002         [out,retval]SCHEMAWHITESPACE* whitespace);
3003
3004     [id(DISPID_SOM_PATTERNS), propget]
3005     HRESULT patterns(
3006         [out,retval] ISchemaStringCollection** patterns);
3007 };
3008
3009 [
3010     local,
3011     object,
3012     uuid(50ea08b9-dd1b-4664-9a50-c2f40f4bd79a),
3013     oleautomation,
3014     dual,
3015 ]
3016 interface ISchemaComplexType : ISchemaType
3017 {
3018     [id(DISPID_SOM_ISABSTRACT), propget]
3019     HRESULT isAbstract(
3020         [out,retval] VARIANT_BOOL* abstract);
3021
3022     [id(DISPID_SOM_ANYATTRIBUTE), propget]
3023     HRESULT anyAttribute(
3024         [out,retval] ISchemaAny** anyAttribute);
3025
3026     [id(DISPID_SOM_ATTRIBUTES), propget]
3027     HRESULT attributes(
3028         [out,retval] ISchemaItemCollection** attributes);
3029
3030     [id(DISPID_SOM_CONTENTTYPE), propget]
3031     HRESULT contentType(
3032         [out,retval] SCHEMACONTENTTYPE* contentType);
3033
3034     [id(DISPID_SOM_CONTENTMODEL), propget]
3035     HRESULT contentModel(
3036         [out,retval] ISchemaModelGroup** contentModel);
3037
3038     [id(DISPID_SOM_PROHIBITED), propget]
3039     HRESULT prohibitedSubstitutions(
3040         [out,retval] SCHEMADERIVATIONMETHOD* prohibited);
3041 };
3042
3043 [
3044     local,
3045     object,
3046     uuid(50ea08ba-dd1b-4664-9a50-c2f40f4bd79a),
3047     oleautomation,
3048     dual,
3049 ]
3050 interface ISchemaAttributeGroup : ISchemaItem
3051 {
3052     [id(DISPID_SOM_ANYATTRIBUTE), propget]
3053     HRESULT anyAttribute(
3054         [out,retval] ISchemaAny** anyAttribute);
3055
3056     [id(DISPID_SOM_ATTRIBUTES), propget]
3057         HRESULT attributes(
3058             [out,retval] ISchemaItemCollection** attributes);
3059 };
3060
3061 [
3062     local,
3063     object,
3064     uuid(50ea08bb-dd1b-4664-9a50-c2f40f4bd79a),
3065     oleautomation,
3066     dual,
3067 ]
3068 interface ISchemaModelGroup : ISchemaParticle
3069 {
3070     [id(DISPID_SOM_PARTICLES), propget]
3071     HRESULT particles(
3072         [out,retval] ISchemaItemCollection** particles);
3073 };
3074
3075 [
3076     local,
3077     object,
3078     uuid(50ea08bc-dd1b-4664-9a50-c2f40f4bd79a),
3079     oleautomation,
3080     dual
3081 ]
3082 interface ISchemaAny : ISchemaParticle
3083 {
3084     [id(DISPID_SOM_NAMESPACES), propget]
3085     HRESULT namespaces(
3086         [out,retval] ISchemaStringCollection** namespaces);
3087
3088     [id(DISPID_SOM_PROCESSCONTENTS), propget]
3089     HRESULT processContents(
3090         [out,retval] SCHEMAPROCESSCONTENTS* processContents);
3091 };
3092
3093 [
3094     local,
3095     object,
3096     uuid(50ea08bd-dd1b-4664-9a50-c2f40f4bd79a),
3097     oleautomation,
3098     dual
3099 ]
3100 interface ISchemaIdentityConstraint : ISchemaItem
3101 {
3102     [id(DISPID_SOM_SELECTOR), propget]
3103     HRESULT selector(
3104         [out,retval] BSTR* selector);
3105
3106     [id(DISPID_SOM_FIELDS), propget]
3107         HRESULT fields(
3108             [out,retval] ISchemaStringCollection** fields);
3109
3110     [id(DISPID_SOM_REFERENCEDKEY), propget]
3111     HRESULT referencedKey(
3112         [out,retval] ISchemaIdentityConstraint** key);
3113 };
3114
3115 [
3116     local,
3117     object,
3118     uuid(50ea08be-dd1b-4664-9a50-c2f40f4bd79a),
3119     oleautomation,
3120     dual
3121 ]
3122 interface ISchemaNotation : ISchemaItem
3123 {
3124     [id(DISPID_SOM_SYSTEMIDENTIFIER), propget]
3125     HRESULT systemIdentifier(
3126         [out,retval] BSTR* uri);
3127
3128     [id(DISPID_SOM_PUBLICIDENTIFIER), propget]
3129     HRESULT publicIdentifier(
3130         [out,retval] BSTR* uri);
3131 };
3132
3133
3134 [
3135     uuid(079aa557-4a18-424a-8eee-e39f0a8d41b9)
3136 ]
3137 coclass SAXXMLReader
3138 {
3139     [default] interface IVBSAXXMLReader;
3140     interface ISAXXMLReader;
3141     interface IMXReaderControl;
3142 };
3143
3144 [
3145     uuid(3124c396-fb13-4836-a6ad-1317f1713688)
3146 ]
3147 coclass SAXXMLReader30
3148 {
3149     [default] interface IVBSAXXMLReader;
3150     interface ISAXXMLReader;
3151     interface IMXReaderControl;
3152 };
3153
3154 [
3155     uuid(7c6e29bc-8b8b-4c3d-859e-af6cd158be0f)
3156 ]
3157 coclass SAXXMLReader40
3158 {
3159     [default] interface IVBSAXXMLReader;
3160     interface ISAXXMLReader;
3161 }
3162
3163 [
3164     helpstring("SAX XML Reader 6.0"),
3165     progid("Msxml2.SAXXMLReader.6.0"),
3166     threading(both),
3167     uuid(88d96a0c-f192-11d4-a65f-0040963251e5)
3168 ]
3169 coclass SAXXMLReader60
3170 {
3171     [default] interface IVBSAXXMLReader;
3172     interface ISAXXMLReader;
3173 }
3174
3175 [
3176     uuid(a4c23ec3-6b70-4466-9127-550077239978)
3177 ]
3178 coclass MXHTMLWriter
3179 {
3180     [default] interface IMXWriter;
3181
3182     interface ISAXContentHandler;
3183     interface ISAXErrorHandler;
3184     interface ISAXDTDHandler;
3185     interface ISAXLexicalHandler;
3186     interface ISAXDeclHandler;
3187
3188     interface IVBSAXContentHandler;
3189     interface IVBSAXDeclHandler;
3190     interface IVBSAXDTDHandler;
3191     interface IVBSAXErrorHandler;
3192     interface IVBSAXLexicalHandler;
3193 }
3194
3195 [
3196     uuid(853d1540-c1a7-4aa9-a226-4d3bd301146d)
3197 ]
3198 coclass MXHTMLWriter30
3199 {
3200     [default] interface IMXWriter;
3201
3202     interface ISAXContentHandler;
3203     interface ISAXDeclHandler;
3204     interface ISAXDTDHandler;
3205     interface ISAXErrorHandler;
3206     interface ISAXLexicalHandler;
3207
3208     interface IVBSAXContentHandler;
3209     interface IVBSAXDeclHandler;
3210     interface IVBSAXDTDHandler;
3211     interface IVBSAXErrorHandler;
3212     interface IVBSAXLexicalHandler;
3213 }
3214
3215 [
3216     uuid(88d969c9-f192-11d4-a65f-0040963251e5)
3217 ]
3218 coclass MXHTMLWriter40
3219 {
3220     [default] interface IMXWriter;
3221
3222     interface ISAXContentHandler;
3223     interface ISAXDeclHandler;
3224     interface ISAXDTDHandler;
3225     interface ISAXErrorHandler;
3226     interface ISAXLexicalHandler;
3227
3228     interface IVBSAXContentHandler;
3229     interface IVBSAXDeclHandler;
3230     interface IVBSAXDTDHandler;
3231     interface IVBSAXErrorHandler;
3232     interface IVBSAXLexicalHandler;
3233 }
3234
3235 [
3236     helpstring("MXHTMLWriter 6.0"),
3237     progid("Msxml2.MXHTMLWriter.6.0"),
3238     threading(both),
3239     uuid(88d96a10-f192-11d4-a65f-0040963251e5)
3240 ]
3241 coclass MXHTMLWriter60
3242 {
3243     [default] interface IMXWriter;
3244
3245     interface ISAXContentHandler;
3246     interface ISAXDeclHandler;
3247     interface ISAXDTDHandler;
3248     interface ISAXErrorHandler;
3249     interface ISAXLexicalHandler;
3250
3251     interface IVBSAXContentHandler;
3252     interface IVBSAXDeclHandler;
3253     interface IVBSAXDTDHandler;
3254     interface IVBSAXErrorHandler;
3255     interface IVBSAXLexicalHandler;
3256 }
3257
3258 [
3259     uuid(fc220ad8-a72a-4ee8-926e-0b7ad152a020)
3260 ]
3261 coclass MXXMLWriter
3262 {
3263     [default] interface IMXWriter;
3264
3265     interface ISAXContentHandler;
3266     interface ISAXErrorHandler;
3267     interface ISAXDTDHandler;
3268     interface ISAXLexicalHandler;
3269     interface ISAXDeclHandler;
3270
3271     interface IVBSAXContentHandler;
3272     interface IVBSAXDeclHandler;
3273     interface IVBSAXDTDHandler;
3274     interface IVBSAXErrorHandler;
3275     interface IVBSAXLexicalHandler;
3276 };
3277
3278 [
3279     uuid(3d813dfe-6c91-4a4e-8f41-04346a841d9c)
3280 ]
3281 coclass MXXMLWriter30
3282 {
3283     [default] interface IMXWriter;
3284
3285     interface ISAXContentHandler;
3286     interface ISAXDeclHandler;
3287     interface ISAXDTDHandler;
3288     interface ISAXErrorHandler;
3289     interface ISAXLexicalHandler;
3290
3291     interface IVBSAXContentHandler;
3292     interface IVBSAXDeclHandler;
3293     interface IVBSAXDTDHandler;
3294     interface IVBSAXErrorHandler;
3295     interface IVBSAXLexicalHandler;
3296 };
3297
3298 [
3299     uuid(88d969c8-f192-11d4-a65f-0040963251e5),
3300 ]
3301 coclass MXXMLWriter40
3302 {
3303     [default] interface IMXWriter;
3304
3305     interface ISAXContentHandler;
3306     interface ISAXDeclHandler;
3307     interface ISAXDTDHandler;
3308     interface ISAXErrorHandler;
3309     interface ISAXLexicalHandler;
3310
3311     interface IVBSAXContentHandler;
3312     interface IVBSAXDeclHandler;
3313     interface IVBSAXDTDHandler;
3314     interface IVBSAXErrorHandler;
3315     interface IVBSAXLexicalHandler;
3316 }
3317
3318 [
3319     helpstring("MXXMLWriter 6.0"),
3320     progid("Msxml2.MXXMLWriter.6.0"),
3321     threading(both),
3322     uuid(88d96a0f-f192-11d4-a65f-0040963251e5)
3323 ]
3324 coclass MXXMLWriter60
3325 {
3326     [default] interface IMXWriter;
3327
3328     interface ISAXContentHandler;
3329     interface ISAXDeclHandler;
3330     interface ISAXDTDHandler;
3331     interface ISAXErrorHandler;
3332     interface ISAXLexicalHandler;
3333
3334     interface IVBSAXContentHandler;
3335     interface IVBSAXDeclHandler;
3336     interface IVBSAXDTDHandler;
3337     interface IVBSAXErrorHandler;
3338     interface IVBSAXLexicalHandler;
3339 }
3340
3341 [
3342     uuid(88d969d5-f192-11d4-a65f-0040963251e5)
3343 ]
3344 coclass MXNamespaceManager
3345 {
3346     [default] interface IVBMXNamespaceManager;
3347     interface IMXNamespaceManager;
3348 }
3349
3350 [
3351     uuid(88d969d6-f192-11d4-a65f-0040963251e5)
3352 ]
3353 coclass MXNamespaceManager40
3354 {
3355     [default] interface IVBMXNamespaceManager;
3356     interface IMXNamespaceManager;
3357 }
3358
3359 [
3360     helpstring("MXNamespaceManager 6.0"),
3361     progid("Msxml2.MXNamespaceManager.6.0"),
3362     threading(both),
3363     uuid(88d96a11-f192-11d4-a65f-0040963251e5)
3364 ]
3365 coclass MXNamespaceManager60
3366 {
3367     [default] interface IVBMXNamespaceManager;
3368     interface IMXNamespaceManager;
3369 }
3370
3371 [
3372     uuid(4dd441ad-526d-4a77-9f1b-9841ed802fb0)
3373 ]
3374 coclass SAXAttributes
3375 {
3376     [default] interface IMXAttributes;
3377     interface IVBSAXAttributes;
3378     interface ISAXAttributes;
3379 }
3380
3381 [
3382     uuid(3e784a01-f3ae-4dc0-9354-9526b9370eba)
3383 ]
3384 coclass SAXAttributes30
3385 {
3386     [default] interface IMXAttributes;
3387     interface IVBSAXAttributes;
3388     interface ISAXAttributes;
3389 }
3390
3391 [
3392     uuid(88d969ca-f192-11d4-a65f-0040963251e5),
3393 ]
3394 coclass SAXAttributes40
3395 {
3396     [default] interface IMXAttributes;
3397     interface IVBSAXAttributes;
3398     interface ISAXAttributes;
3399 }
3400
3401 [
3402     helpstring("SAXAttributes 6.0"),
3403     progid("Msxml2.SAXAttributes.6.0"),
3404     threading(both),
3405     uuid(88d96a0e-f192-11d4-a65f-0040963251e5)
3406 ]
3407 coclass SAXAttributes60
3408 {
3409     [default] interface IMXAttributes;
3410     interface IVBSAXAttributes;
3411     interface ISAXAttributes;
3412 }
3413
3414 /*
3415  * Error Codes
3416  */
3417 cpp_quote("#define E_XML_NOTWF              0xC00CE223")
3418 cpp_quote("#define E_XML_NODTD              0xC00CE224")
3419 cpp_quote("#define E_XML_INVALID            0xC00CE225")
3420 cpp_quote("#define E_XML_BUFFERTOOSMALL     0xC00CE226")
3421
3422 } /* Library MSXML */