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