include: Make msxml6.idl a copy of msxml2.idl instead of importing it.
[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     uuid(88d96a05-f192-11d4-a65f-0040963251e5)
1449 ]
1450 coclass DOMDocument60
1451 {
1452     [default] interface IXMLDOMDocument3;
1453     [default, source] dispinterface XMLDOMDocumentEvents;
1454 }
1455
1456 [
1457     uuid(F6D90F12-9C73-11D3-B32E-00C04F990BB4)
1458 ]
1459 coclass FreeThreadedDOMDocument
1460 {
1461     [default] interface IXMLDOMDocument2;
1462     [default, source] dispinterface XMLDOMDocumentEvents;
1463 }
1464
1465 [
1466     uuid(f5078f1c-c551-11d3-89b9-0000f81fe221)
1467 ]
1468 coclass FreeThreadedDOMDocument26
1469 {
1470     [default] interface IXMLDOMDocument2;
1471     [default, source] dispinterface XMLDOMDocumentEvents;
1472 }
1473
1474 [
1475     uuid(f5078f33-c551-11d3-89b9-0000f81fe221)
1476 ]
1477 coclass FreeThreadedDOMDocument30
1478 {
1479     [default] interface IXMLDOMDocument2;
1480     [default, source] dispinterface XMLDOMDocumentEvents;
1481 }
1482
1483 [
1484     uuid(88d969c1-f192-11d4-a65f-0040963251e5)
1485 ]
1486 coclass FreeThreadedDOMDocument40
1487 {
1488     [default] interface IXMLDOMDocument2;
1489     [default, source] dispinterface XMLDOMDocumentEvents;
1490 }
1491
1492 [
1493     uuid(88d96a06-f192-11d4-a65f-0040963251e5),
1494 ]
1495 coclass FreeThreadedDOMDocument60
1496 {
1497     [default] interface IXMLDOMDocument3;
1498     [default, source] dispinterface XMLDOMDocumentEvents;
1499 }
1500
1501 [
1502     uuid(f6d90f16-9c73-11d3-b32e-00c04f990bb4)
1503 ]
1504 coclass XMLHTTP
1505 {
1506     [default] interface IXMLHTTPRequest;
1507 }
1508
1509 [
1510     uuid(f5078f1e-c551-11d3-89b9-0000f81fe221)
1511 ]
1512 coclass XMLHTTP26
1513 {
1514     [default] interface IXMLHTTPRequest;
1515 }
1516
1517 [
1518     uuid(f5078f35-c551-11d3-89b9-0000f81fe221)
1519 ]
1520 coclass XMLHTTP30
1521 {
1522     [default] interface IXMLHTTPRequest;
1523 }
1524
1525 [
1526     uuid(88d969c5-f192-11d4-a65f-0040963251e5)
1527 ]
1528 coclass XMLHTTP40
1529 {
1530     [default] interface IXMLHTTPRequest;
1531 }
1532
1533 [
1534     uuid(88d96a0a-f192-11d4-a65f-0040963251e5)
1535 ]
1536 coclass XMLHTTP60
1537 {
1538     [default] interface IXMLHTTPRequest;
1539 }
1540
1541 [
1542     uuid(afba6b42-5692-48ea-8141-dc517dcf0ef1)
1543 ]
1544 coclass ServerXMLHTTP
1545 {
1546     [default] interface IServerXMLHTTPRequest;
1547 }
1548
1549 [
1550     uuid(afb40ffd-b609-40a3-9828-f88bbe11e4e3)
1551 ]
1552 coclass ServerXMLHTTP30
1553 {
1554     [default] interface IServerXMLHTTPRequest;
1555 }
1556
1557 [
1558     uuid(88d969c6-f192-11d4-a65f-0040963251e5)
1559 ]
1560 coclass ServerXMLHTTP40
1561 {
1562     [default] interface IServerXMLHTTPRequest2;
1563 }
1564
1565 [
1566     uuid(88d96a0b-f192-11d4-a65f-0040963251e5)
1567 ]
1568 coclass ServerXMLHTTP60
1569 {
1570     [default] interface IServerXMLHTTPRequest2;
1571 }
1572
1573 [
1574     uuid(373984c9-b845-449b-91e7-45ac83036ade)
1575 ]
1576 coclass XMLSchemaCache
1577 {
1578     [default] interface IXMLDOMSchemaCollection;
1579 }
1580
1581 [
1582     uuid(f5078f1d-c551-11d3-89b9-0000f81fe221)
1583 ]
1584 coclass XMLSchemaCache26
1585 {
1586     [default] interface IXMLDOMSchemaCollection;
1587 }
1588
1589 [
1590     uuid(f5078f34-c551-11d3-89b9-0000f81fe221)
1591 ]
1592 coclass XMLSchemaCache30
1593 {
1594     [default] interface IXMLDOMSchemaCollection;
1595 }
1596
1597 [
1598     uuid(88d969c2-f192-11d4-a65f-0040963251e5)
1599 ]
1600 coclass XMLSchemaCache40
1601 {
1602     [default] interface IXMLDOMSchemaCollection2;
1603 }
1604
1605 [
1606     uuid(88d96a07-f192-11d4-a65f-0040963251e5)
1607 ]
1608 coclass XMLSchemaCache60
1609 {
1610     [default] interface IXMLDOMSchemaCollection2;
1611 }
1612
1613 [
1614     uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
1615 ]
1616 coclass XSLTemplate
1617 {
1618     [default] interface IXSLTemplate;
1619 }
1620
1621 [
1622     uuid(f5078f21-c551-11d3-89b9-0000f81fe221)
1623 ]
1624 coclass XSLTemplate26
1625 {
1626     [default] interface IXSLTemplate;
1627 }
1628
1629 [
1630     uuid(f5078f36-c551-11d3-89b9-0000f81fe221)
1631 ]
1632 coclass XSLTemplate30
1633 {
1634     [default] interface IXSLTemplate;
1635 }
1636
1637 [
1638     uuid(88d969c3-f192-11d4-a65f-0040963251e5)
1639 ]
1640 coclass XSLTemplate40
1641 {
1642     [default] interface IXSLTemplate;
1643 }
1644
1645 [
1646     uuid(88d96a08-f192-11d4-a65f-0040963251e5)
1647 ]
1648 coclass XSLTemplate60
1649 {
1650     [default] interface IXSLTemplate;
1651 }
1652
1653 /*
1654  * Sax Interfaces
1655  */
1656 [
1657     object,
1658     local,
1659     uuid(f078abe1-45d2-4832-91ea-4466ce2f25c9)
1660 ]
1661 interface ISAXAttributes : IUnknown
1662 {
1663     HRESULT getLength(
1664         [out, retval] int *length);
1665
1666     HRESULT getURI(
1667         [in] int nIndex,
1668         [out] const WCHAR **pUrl,
1669         [out] int *pUriSize);
1670
1671     HRESULT getLocalName(
1672         [in] int nIndex,
1673         [out] const WCHAR **pLocalName,
1674         [out] int *pLocalNameLength);
1675
1676     HRESULT getQName(
1677         [in] int nIndex,
1678         [out] const WCHAR **pQName,
1679         [out] int *pQNameLength);
1680
1681     HRESULT getName(
1682         [in] int nIndex,
1683         [out] const WCHAR **pUri,
1684         [out] int * pUriLength,
1685         [out] const WCHAR ** pLocalName,
1686         [out] int * pLocalNameSize,
1687         [out] const WCHAR ** pQName,
1688         [out] int * pQNameLength);
1689
1690     HRESULT getIndexFromName(
1691         [in] const WCHAR * pUri,
1692         [in] int cUriLength,
1693         [in] const WCHAR * pLocalName,
1694         [in] int cocalNameLength,
1695         [out, retval] int * index);
1696
1697     HRESULT getIndexFromQName(
1698         [in] const WCHAR * pQName,
1699         [in] int nQNameLength,
1700         [out, retval] int * index);
1701
1702     HRESULT getType(
1703         [in] int nIndex,
1704         [out] const WCHAR ** pType,
1705         [out] int * pTypeLength);
1706
1707     HRESULT getTypeFromName(
1708         [in] const WCHAR * pUri,
1709         [in] int nUri,
1710         [in] const WCHAR * pLocalName,
1711         [in] int nLocalName,
1712         [out] const WCHAR ** pType,
1713         [out] int * nType);
1714
1715     HRESULT getTypeFromQName(
1716         [in] const WCHAR * pQName,
1717         [in] int nQName,
1718         [out] const WCHAR ** pType,
1719         [out] int * nType);
1720
1721     HRESULT getValue(
1722         [in] int nIndex,
1723         [out] const WCHAR ** pValue,
1724         [out] int * nValue);
1725
1726     HRESULT getValueFromName(
1727         [in] const WCHAR * pUri,
1728         [in] int nUri,
1729         [in] const WCHAR * pLocalName,
1730         [in] int nLocalName,
1731         [out] const WCHAR ** pValue,
1732         [out] int * nValue);
1733
1734     HRESULT getValueFromQName(
1735         [in] const WCHAR * pQName,
1736         [in] int nQName,
1737         [out] const WCHAR ** pValue,
1738         [out] int * nValue);
1739 };
1740
1741 [
1742     object,
1743     local,
1744     uuid(1545cdfa-9e4e-4497-a8a4-2bf7d0112c44)
1745 ]
1746 interface ISAXContentHandler : IUnknown
1747 {
1748     HRESULT putDocumentLocator(
1749         [in] ISAXLocator * pLocator);
1750
1751     HRESULT startDocument();
1752
1753     HRESULT endDocument();
1754
1755     HRESULT startPrefixMapping(
1756         [in] const WCHAR * pPrefix,
1757         [in] int nPrefix,
1758         [in] const WCHAR * pUri,
1759         [in] int nUri);
1760
1761     HRESULT endPrefixMapping(
1762         [in] const WCHAR * pPrefix,
1763         [in] int nPrefix);
1764
1765     HRESULT startElement(
1766         [in] const WCHAR * pNamespaceUri,
1767         [in] int nNamespaceUri,
1768         [in] const WCHAR * pLocalName,
1769         [in] int nLocalName,
1770         [in] const WCHAR * pQName,
1771         [in] int nQName,
1772         [in] ISAXAttributes * pAttr);
1773
1774     HRESULT endElement(
1775         [in] const WCHAR * pNamespaceUri,
1776         [in] int nNamespaceUri,
1777         [in] const WCHAR * pLocalName,
1778         [in] int nLocalName,
1779         [in] const WCHAR * pQName,
1780         [in] int nQName);
1781
1782     HRESULT characters(
1783         [in] const WCHAR * pChars,
1784         [in] int nChars);
1785
1786     HRESULT ignorableWhitespace(
1787         [in] const WCHAR * pChars,
1788         [in] int nChars);
1789
1790     HRESULT processingInstruction(
1791         [in] const WCHAR * pTarget,
1792         [in] int nTarget,
1793         [in] const WCHAR * pData,
1794         [in] int nData);
1795
1796     HRESULT skippedEntity(
1797         [in] const WCHAR * pName,
1798         [in] int nName);
1799 };
1800
1801 [
1802     object,
1803     local,
1804     uuid(862629ac-771a-47b2-8337-4e6843c1be90)
1805 ]
1806 interface ISAXDeclHandler : IUnknown
1807 {
1808     HRESULT elementDecl(
1809         [in] const WCHAR * pName,
1810         [in] int nName,
1811         [in] const WCHAR * pModel,
1812         [in] int nModel);
1813
1814     HRESULT attributeDecl(
1815         [in] const WCHAR * pElementName,
1816         [in] int nElementName,
1817         [in] const WCHAR * pAttributeName,
1818         [in] int nAttributeName,
1819         [in] const WCHAR * pType,
1820         [in] int nType,
1821         [in] const WCHAR * pValueDefault,
1822         [in] int nValueDefault,
1823         [in] const WCHAR * pValue,
1824         [in] int nValue);
1825
1826     HRESULT internalEntityDecl(
1827         [in] const WCHAR * pName,
1828         [in] int nName,
1829         [in] const WCHAR * pValue,
1830         [in] int nValue);
1831
1832     HRESULT externalEntityDecl(
1833         [in] const WCHAR * pName,
1834         [in] int nName,
1835         [in] const WCHAR * pPublicId,
1836         [in] int nPublicId,
1837         [in] const WCHAR * pSystemId,
1838         [in] int nSystemId);
1839 };
1840
1841 [
1842     object,
1843     local,
1844     uuid(e15c1baf-afb3-4d60-8c36-19a8c45defed)
1845 ]
1846 interface ISAXDTDHandler : IUnknown
1847 {
1848     HRESULT notationDecl(
1849         [in] const WCHAR * pName,
1850         [in] int nName,
1851         [in] const WCHAR * pPublicId,
1852         [in] int nPublicId,
1853         [in] const WCHAR * pSystemId,
1854         [in] int nSystemId);
1855
1856     HRESULT unparsedEntityDecl(
1857         [in] const WCHAR * pName,
1858         [in] int nName,
1859         [in] const WCHAR * pPublicId,
1860         [in] int nPublicId,
1861         [in] const WCHAR * pSystemId,
1862         [in] int nSystemId,
1863         [in] const WCHAR * pNotationName,
1864         [in] int nNotationName);
1865 };
1866
1867 [
1868     object,
1869     local,
1870     uuid(99bca7bd-e8c4-4d5f-a0cf-6d907901ff07),
1871 ]
1872 interface ISAXEntityResolver : IUnknown
1873 {
1874     HRESULT resolveEntity(
1875         [in] const WCHAR * pPublicId,
1876         [in] const WCHAR * pSystemId,
1877         [out, retval] VARIANT * ret);
1878 };
1879
1880 [
1881     object,
1882     local,
1883     uuid(a60511c4-ccf5-479e-98a3-dc8dc545b7d0)
1884 ]
1885 interface ISAXErrorHandler : IUnknown
1886 {
1887     HRESULT error(
1888         [in] ISAXLocator * pLocator,
1889         [in] const WCHAR * pErrorMessage,
1890         [in] HRESULT hrErrorCode);
1891
1892     HRESULT fatalError(
1893         [in] ISAXLocator * pLocator,
1894         [in] const WCHAR * pErrorMessage,
1895         [in] HRESULT hrErrorCode);
1896
1897     HRESULT ignorableWarning(
1898         [in] ISAXLocator * pLocator,
1899         [in] const WCHAR * pErrorMessage,
1900         [in] HRESULT hrErrorCode);
1901 };
1902
1903 [
1904     object,
1905     local,
1906     uuid(7f85d5f5-47a8-4497-bda5-84ba04819ea6)
1907 ]
1908 interface ISAXLexicalHandler : IUnknown
1909 {
1910     HRESULT startDTD(
1911         [in] const WCHAR * pName,
1912         [in] int nName,
1913         [in] const WCHAR * pPublicId,
1914         [in] int nPublicId,
1915         [in] const WCHAR * pSystemId,
1916         [in] int nSystemId);
1917
1918     HRESULT endDTD();
1919
1920     HRESULT startEntity(
1921         [in] const WCHAR * pName,
1922         [in] int nName);
1923
1924     HRESULT endEntity(
1925         [in] const WCHAR * pName,
1926         [in] int nName);
1927
1928     HRESULT startCDATA();
1929
1930     HRESULT endCDATA();
1931
1932     HRESULT comment(
1933         [in] const WCHAR * pChars,
1934         [in] int nChars);
1935 };
1936
1937 [
1938     object,
1939     local,
1940     uuid(9b7e472a-0de4-4640-bff3-84d38a051c31)
1941 ]
1942 interface ISAXLocator : IUnknown
1943 {
1944     HRESULT getColumnNumber(
1945         [out, retval] int * nColumn);
1946
1947     HRESULT getLineNumber(
1948         [out, retval] int * nLine);
1949
1950     HRESULT getPublicId(
1951         [out, retval] const WCHAR ** publicId);
1952
1953     HRESULT getSystemId(
1954         [out, retval] const WCHAR ** systemId);
1955 };
1956
1957 [
1958     local,
1959     object,
1960     uuid(70409222-ca09-4475-acb8-40312fe8d145)
1961 ]
1962 interface ISAXXMLFilter : ISAXXMLReader
1963 {
1964     HRESULT getParent(
1965         [out, retval] ISAXXMLReader ** pReader);
1966     HRESULT putParent(
1967         [in] ISAXXMLReader * reader);
1968 };
1969
1970 [
1971 local,
1972 object,
1973 uuid (a4f96ed0-f829-476e-81c0-cdc7bd2a0802)
1974 ]
1975 interface ISAXXMLReader : IUnknown
1976 {
1977     HRESULT getFeature(
1978         [in] const WCHAR * pFeature,
1979         [out, retval] VARIANT_BOOL * pValue);
1980     HRESULT putFeature(
1981         [in] const WCHAR * pFeature,
1982         [in] VARIANT_BOOL vfValue);
1983
1984     HRESULT getProperty(
1985         [in] const WCHAR * pProp,
1986         [out, retval] VARIANT * pValue);
1987     HRESULT putProperty(
1988         [in] const WCHAR * pProp,
1989         [in] VARIANT value);
1990
1991     HRESULT getEntityResolver(
1992         [out, retval] ISAXEntityResolver ** ppEntityResolver);
1993     HRESULT putEntityResolver(
1994         [in] ISAXEntityResolver * pEntityResolver);
1995
1996     HRESULT getContentHandler(
1997         [out, retval] ISAXContentHandler ** pContentHandler);
1998     HRESULT putContentHandler(
1999         [in] ISAXContentHandler * contentHandler);
2000
2001     HRESULT getDTDHandler(
2002         [out, retval] ISAXDTDHandler ** pDTDHandler);
2003     HRESULT putDTDHandler(
2004         [in] ISAXDTDHandler * pDTDHandler);
2005
2006     HRESULT getErrorHandler(
2007         [out, retval] ISAXErrorHandler ** pErrorHandler);
2008     HRESULT putErrorHandler(
2009         [in] ISAXErrorHandler * errorHandler);
2010
2011     HRESULT getBaseURL(
2012         [out, retval] const WCHAR ** pBaseUrl);
2013     HRESULT putBaseURL(
2014         [in] const WCHAR * pBaseUrl);
2015
2016     HRESULT getSecureBaseURL(
2017         [out, retval] const WCHAR ** pSecureBaseUrl);
2018     HRESULT putSecureBaseURL(
2019         [in] const WCHAR * secureBaseUrl);
2020
2021     HRESULT parse(
2022         [in] VARIANT varInput);
2023     HRESULT parseURL(
2024         [in] const WCHAR * url);
2025 }
2026
2027 [
2028     object,
2029     dual,
2030     oleautomation,
2031     uuid(10dc0586-132b-4cac-8bb3-db00ac8b7ee0)
2032 ]
2033 interface IVBSAXAttributes : IDispatch
2034 {
2035     [propget, id(DISPID_SAX_ATTRIBUTES_LENGTH)]
2036     HRESULT length( [out, retval] int * nLength);
2037
2038     [id(DISPID_SAX_ATTRIBUTES_GETURI)]
2039     HRESULT getURI( [in] int nIndex, [out, retval] BSTR * uri);
2040
2041     [id(DISPID_SAX_ATTRIBUTES_GETLOCALNAME)]
2042     HRESULT getLocalName( [in] int nIndex, [out, retval] BSTR * localName);
2043
2044     [id(DISPID_SAX_ATTRIBUTES_GETQNAME)]
2045     HRESULT getQName( [in] int nIndex, [out, retval] BSTR * QName);
2046
2047     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMNAME)]
2048     HRESULT getIndexFromName( [in] BSTR uri,
2049                               [in] BSTR localName, [out, retval] int * nIndex);
2050
2051     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMQNAME)]
2052     HRESULT getIndexFromQName( [in] BSTR QName, [out, retval] int * nIndex);
2053
2054     [id(DISPID_SAX_ATTRIBUTES_GETTYPE)]
2055     HRESULT getType( [in] int nIndex, [out, retval] BSTR * type);
2056
2057     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMNAME)]
2058     HRESULT getTypeFromName( [in] BSTR uri, [in] BSTR localName,
2059                              [out, retval] BSTR * type);
2060
2061     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMQNAME)]
2062     HRESULT getTypeFromQName( [in] BSTR QName, [out, retval] BSTR * type);
2063
2064     [id(DISPID_SAX_ATTRIBUTES_GETVALUE)]
2065     HRESULT getValue( [in] int nIndex, [out, retval] BSTR * value);
2066
2067     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMNAME)]
2068     HRESULT getValueFromName( [in] BSTR uri,
2069                               [in] BSTR localName,
2070                               [out, retval] BSTR * value);
2071
2072     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMQNAME)]
2073     HRESULT getValueFromQName( [in] BSTR QName, [out, retval] BSTR * value);
2074 };
2075
2076 [
2077     object,
2078     dual,
2079     oleautomation,
2080     uuid(2ed7290a-4dd5-4b46-bb26-4e4155e77faa)
2081 ]
2082 interface IVBSAXContentHandler : IDispatch
2083 {
2084     [propputref, id(DISPID_SAX_CONTENTHANDLER_DOCUMENTLOCATOR)]
2085     HRESULT documentLocator( [in] IVBSAXLocator * oLocator);
2086
2087     [id(DISPID_SAX_CONTENTHANDLER_STARTDOCUMENT)]
2088     HRESULT startDocument();
2089
2090     [id(DISPID_SAX_CONTENTHANDLER_ENDDOCUMENT)]
2091     HRESULT endDocument();
2092
2093     [id(DISPID_SAX_CONTENTHANDLER_STARTPREFIXMAPPING)]
2094     HRESULT startPrefixMapping( [in, out] BSTR * prefix, [in, out] BSTR * uri);
2095
2096     [id(DISPID_SAX_CONTENTHANDLER_ENDPREFIXMAPPING)]
2097     HRESULT endPrefixMapping( [in, out] BSTR * prefix);
2098
2099     [id(DISPID_SAX_CONTENTHANDLER_STARTELEMENT)]
2100     HRESULT startElement( [in, out] BSTR * namespaceURI,
2101                           [in, out] BSTR * localName,
2102                           [in, out] BSTR * QName,
2103                           [in] IVBSAXAttributes * oAttributes);
2104
2105     [id(DISPID_SAX_CONTENTHANDLER_ENDELEMENT)]
2106     HRESULT endElement( [in, out] BSTR * namespaceURI,
2107                         [in, out] BSTR * localName, [in, out] BSTR * strQName);
2108
2109     [id(DISPID_SAX_CONTENTHANDLER_CHARACTERS)]
2110     HRESULT characters( [in, out] BSTR * chars);
2111
2112     [id(DISPID_SAX_CONTENTHANDLER_IGNORABLEWHITESPACE)]
2113     HRESULT ignorableWhitespace( [in, out] BSTR * chars);
2114
2115     [id(DISPID_SAX_CONTENTHANDLER_PROCESSINGINSTRUCTION)]
2116     HRESULT processingInstruction( [in, out] BSTR * target,
2117                                    [in, out] BSTR * data);
2118
2119     [id(DISPID_SAX_CONTENTHANDLER_SKIPPEDENTITY)]
2120     HRESULT skippedEntity( [in, out] BSTR * name);
2121 };
2122
2123 [
2124     object,
2125     dual,
2126     oleautomation,
2127     uuid(e8917260-7579-4be1-b5dd-7afbfa6f077b)
2128 ]
2129 interface IVBSAXDeclHandler : IDispatch
2130 {
2131     [id(DISPID_SAX_DECLHANDLER_ELEMENTDECL)]
2132     HRESULT elementDecl(
2133         [in, out] BSTR * name,
2134         [in, out] BSTR * model);
2135
2136     [id(DISPID_SAX_DECLHANDLER_ATTRIBUTEDECL)]
2137     HRESULT attributeDecl(
2138         [in, out] BSTR * elementName,
2139         [in, out] BSTR * attributeName,
2140         [in, out] BSTR * type,
2141         [in, out] BSTR * valueDefault,
2142         [in, out] BSTR * value);
2143
2144     [id(DISPID_SAX_DECLHANDLER_INTERNALENTITYDECL)]
2145     HRESULT internalEntityDecl(
2146         [in, out] BSTR * name,
2147         [in, out] BSTR * value);
2148
2149     [id(DISPID_SAX_DECLHANDLER_EXTERNALENTITYDECL)]
2150     HRESULT externalEntityDecl(
2151         [in, out] BSTR * name,
2152         [in, out] BSTR * publicId,
2153         [in, out] BSTR * systemId);
2154 };
2155
2156 [
2157     object,
2158     dual,
2159     oleautomation,
2160     uuid(24fb3297-302d-4620-ba39-3a732d850558)
2161 ]
2162 interface IVBSAXDTDHandler : IDispatch
2163 {
2164     [id(DISPID_SAX_DTDHANDLER_NOTATIONDECL)]
2165     HRESULT notationDecl(
2166         [in, out] BSTR * name,
2167         [in, out] BSTR * publicId,
2168         [in, out] BSTR * systemId);
2169
2170     [id(DISPID_SAX_DTDHANDLER_UNPARSEDENTITYDECL)]
2171     HRESULT unparsedEntityDecl(
2172         [in, out] BSTR * name,
2173         [in, out] BSTR * publicId,
2174         [in, out] BSTR * systemId,
2175         [in, out] BSTR * notationName);
2176 };
2177
2178 [
2179     object,
2180     dual,
2181     oleautomation,
2182     uuid(0c05d096-f45b-4aca-ad1a-aa0bc25518dc)
2183 ]
2184 interface IVBSAXEntityResolver : IDispatch
2185 {
2186     [id(DISPID_SAX_ENTITYRESOLVER_RESOLVEENTITY)]
2187     HRESULT resolveEntity(
2188         [in, out] BSTR * publicId,
2189         [in, out] BSTR * systemId,
2190         [out, retval] VARIANT * ret);
2191 };
2192
2193 [
2194     object,
2195     dual,
2196     oleautomation,
2197     uuid(d963d3fe-173c-4862-9095-b92f66995f52)
2198 ]
2199 interface IVBSAXErrorHandler : IDispatch
2200 {
2201     [id(DISPID_SAX_ERRORHANDLER_ERROR)]
2202     HRESULT error(
2203             [in] IVBSAXLocator * locator,
2204             [in, out] BSTR * errorMessage,
2205             [in] LONG errorCode);
2206
2207     [id(DISPID_SAX_ERRORHANDLER_FATALERROR)]
2208     HRESULT fatalError(
2209             [in] IVBSAXLocator * locator,
2210             [in, out] BSTR * errorMessage,
2211             [in] LONG errorCode);
2212
2213     [id(DISPID_SAX_ERRORHANDLER_IGNORABLEWARNING)]
2214     HRESULT ignorableWarning(
2215             [in] IVBSAXLocator * locator,
2216             [in, out] BSTR * errorMessage,
2217             [in] LONG errorCode);
2218 };
2219
2220 [
2221     object,
2222     dual,
2223     oleautomation,
2224     uuid(032aac35-8c0e-4d9d-979f-e3b702935576)
2225 ]
2226 interface IVBSAXLexicalHandler : IDispatch
2227 {
2228     [id(DISPID_SAX_LEXICALHANDLER_STARTDTD)]
2229     HRESULT startDTD(
2230         [in, out] BSTR * name,
2231         [in, out] BSTR * publicId,
2232         [in, out] BSTR * systemId);
2233     [id(DISPID_SAX_LEXICALHANDLER_ENDDTD)]
2234     HRESULT endDTD();
2235
2236     [id(DISPID_SAX_LEXICALHANDLER_STARTENTITY)]
2237     HRESULT startEntity([in, out] BSTR * name);
2238     [id(DISPID_SAX_LEXICALHANDLER_ENDENTITY)]
2239     HRESULT endEntity([in, out] BSTR * name);
2240
2241     [id(DISPID_SAX_LEXICALHANDLER_STARTCDATA)]
2242     HRESULT startCDATA();
2243     [id(DISPID_SAX_LEXICALHANDLER_ENDCDATA)]
2244     HRESULT endCDATA();
2245
2246     [id(DISPID_SAX_LEXICALHANDLER_COMMENT)]
2247     HRESULT comment( [in, out] BSTR * chars);
2248 };
2249
2250 [
2251     object,
2252     dual,
2253     oleautomation,
2254     uuid(796e7ac5-5aa2-4eff-acad-3faaf01a3288)
2255 ]
2256 interface IVBSAXLocator : IDispatch
2257 {
2258     [propget, id(DISPID_SAX_LOCATOR_COLUMNNUMBER)]
2259     HRESULT columnNumber( [out, retval] int * column);
2260
2261     [propget, id(DISPID_SAX_LOCATOR_LINENUMBER)]
2262     HRESULT lineNumber( [out, retval] int * line);
2263
2264     [propget, id(DISPID_SAX_LOCATOR_PUBLICID)]
2265     HRESULT publicId( [out, retval] BSTR * publicId);
2266
2267     [propget, id(DISPID_SAX_LOCATOR_SYSTEMID)]
2268     HRESULT systemId( [out, retval] BSTR * systemId);
2269 };
2270
2271 [
2272     object,
2273     dual,
2274     oleautomation,
2275     uuid(1299eb1b-5b88-433e-82de-82ca75ad4e04)
2276 ]
2277 interface IVBSAXXMLFilter : IDispatch
2278 {
2279     [propget, id(DISPID_SAX_XMLFILTER_PARENT)]
2280     HRESULT parent( [out, retval] IVBSAXXMLReader ** reader);
2281     [propputref, id(DISPID_SAX_XMLFILTER_PARENT)]
2282     HRESULT parent( [in] IVBSAXXMLReader * reader);
2283
2284 };
2285
2286 [
2287     dual,
2288     oleautomation,
2289     object,
2290     uuid (8c033caa-6cd6-4f73-b728-4531af74945f)
2291 ]
2292 interface IVBSAXXMLReader : IDispatch
2293 {
2294     [id(DISPID_SAX_XMLREADER_GETFEATURE)]
2295     HRESULT getFeature( [in] const WCHAR * pFeature,
2296                         [out, retval] VARIANT_BOOL * pValue);
2297     [id(DISPID_SAX_XMLREADER_PUTFEATURE)]
2298     HRESULT putFeature( [in] const WCHAR * pFeature,
2299                         [in] VARIANT_BOOL vfValue);
2300
2301     [id(DISPID_SAX_XMLREADER_GETPROPERTY)]
2302     HRESULT getProperty( [in] const WCHAR * pProp,
2303                          [out, retval] VARIANT * pValue);
2304     [id(DISPID_SAX_XMLREADER_PUTPROPERTY)]
2305     HRESULT putProperty( [in] const WCHAR * pProp, [in] VARIANT value);
2306
2307     [propget, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
2308     HRESULT entityResolver(
2309                     [out, retval] IVBSAXEntityResolver ** ppEntityResolver);
2310     [propputref, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
2311     HRESULT entityResolver( [in] IVBSAXEntityResolver * pEntityResolver);
2312
2313     [propget, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
2314     HRESULT contentHandler(
2315                         [out, retval] IVBSAXContentHandler ** pContentHandler);
2316     [propputref, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
2317     HRESULT contentHandler([in] IVBSAXContentHandler * contentHandler);
2318
2319     [propget, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
2320     HRESULT dtdHandler([out, retval] IVBSAXDTDHandler ** pDTDHandler);
2321     [propputref, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
2322     HRESULT dtdHandler([in] IVBSAXDTDHandler * pDTDHandler);
2323
2324     [propget, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
2325     HRESULT errorHandler([out, retval] IVBSAXErrorHandler ** pErrorHandler);
2326     [propputref, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
2327     HRESULT errorHandler([in] IVBSAXErrorHandler * errorHandler);
2328
2329     [propget, id(DISPID_SAX_XMLREADER_BASEURL)]
2330     HRESULT baseURL([out, retval] const WCHAR ** pBaseUrl);
2331     [propput, id(DISPID_SAX_XMLREADER_BASEURL)]
2332     HRESULT baseURL([in] const WCHAR * pBaseUrl);
2333
2334     [propget, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
2335     HRESULT secureBaseURL([out, retval] const WCHAR ** pSecureBaseUrl);
2336     [propput, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
2337     HRESULT secureBaseURL([in] const WCHAR * secureBaseUrl);
2338
2339     [id(DISPID_SAX_XMLREADER_PARSE)]
2340     HRESULT parse( [in] VARIANT varInput);
2341     [id(DISPID_SAX_XMLREADER_PARSEURL)]
2342     HRESULT parseURL([in] const WCHAR * url);
2343 }
2344
2345 [
2346     object,
2347     dual,
2348     oleautomation,
2349     uuid(f10d27cc-3ec0-415c-8ed8-77ab1c5e7262)
2350 ]
2351 interface IMXAttributes : IDispatch
2352 {
2353     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTE)]
2354     HRESULT addAttribute(
2355         [in] BSTR uri,
2356         [in] BSTR localName,
2357         [in] BSTR QName,
2358         [in] BSTR type,
2359         [in] BSTR value);
2360
2361     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTEFROMINDEX)]
2362     HRESULT addAttributeFromIndex( [in] VARIANT atts,
2363                                    [in] int index);
2364
2365     [id(DISPID_MX_ATTRIBUTES_CLEAR)]
2366     HRESULT clear();
2367
2368     [id(DISPID_MX_ATTRIBUTES_REMOVEATTRIBUTE)]
2369     HRESULT removeAttribute( [in] int index);
2370
2371     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTE)]
2372     HRESULT setAttribute(
2373         [in] int index,
2374         [in] BSTR uri,
2375         [in] BSTR localName,
2376         [in] BSTR QName,
2377         [in] BSTR type,
2378         [in] BSTR value);
2379
2380     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTES)]
2381     HRESULT setAttributes( [in] VARIANT atts);
2382
2383     [id(DISPID_MX_ATTRIBUTES_SETLOCALNAME)]
2384     HRESULT setLocalName( [in] int index,
2385         [in] BSTR localName);
2386
2387     [id(DISPID_MX_ATTRIBUTES_SETQNAME)]
2388     HRESULT setQName(
2389         [in] int index,
2390         [in] BSTR QName);
2391
2392     [id(DISPID_MX_ATTRIBUTES_SETTYPE)]
2393     HRESULT setType( [in] int index, [in] BSTR type);
2394
2395     [id(DISPID_MX_ATTRIBUTES_SETURI)]
2396     HRESULT setURI( [in] int index,  [in] BSTR uri);
2397
2398     [id(DISPID_MX_ATTRIBUTES_SETVALUE)]
2399     HRESULT setValue([in] int index, [in] BSTR value);
2400 };
2401
2402 [
2403     local,
2404     object,
2405     dual,
2406     oleautomation,
2407     uuid(fa4bb38c-faf9-4cca-9302-d1dd0fe520db)
2408 ]
2409 interface IMXSchemaDeclHandler : IDispatch
2410 {
2411     [id(DISPID_MX_SCHEMADECLHANDLER_SCHEMAELEMENTDECL)]
2412     HRESULT schemaElementDecl( [in] ISchemaElement *oSchemaElement );
2413 }
2414
2415 [
2416     object,
2417     dual,
2418     oleautomation,
2419     uuid(808f4e35-8d5a-4fbe-8466-33a41279ed30)
2420 ]
2421 interface IMXReaderControl : IDispatch
2422 {
2423     [id(DISPID_MX_READER_CONTROL_ABORT)]
2424     HRESULT abort();
2425
2426     [id(DISPID_MX_READER_CONTROL_RESUME)]
2427     HRESULT resume();
2428
2429     [id(DISPID_MX_READER_CONTROL_SUSPEND)]
2430     HRESULT suspend();
2431 };
2432
2433 [
2434     object,
2435     dual,
2436     oleautomation,
2437     uuid(4d7ff4ba-1565-4ea8-94e1-6e724a46f98d)
2438 ]
2439 interface IMXWriter :  IDispatch
2440 {
2441     [propput, id(DISPID_MX_WRITER_OUTPUT)]
2442     HRESULT output ( [in] VARIANT Destination);
2443     [propget, id(DISPID_MX_WRITER_OUTPUT)]
2444     HRESULT output ( [out, retval] VARIANT * Destination);
2445
2446     [propput, id(DISPID_MX_WRITER_ENCODING)]
2447     HRESULT encoding ([in] BSTR encoding);
2448     [propget, id(DISPID_MX_WRITER_ENCODING)]
2449     HRESULT encoding ([out, retval] BSTR * encoding);
2450
2451     [propput, id(DISPID_MX_WRITER_BYTEORDERMARK)]
2452     HRESULT byteOrderMark ([in] VARIANT_BOOL writeByteOrderMark);
2453     [propget, id(DISPID_MX_WRITER_BYTEORDERMARK)]
2454     HRESULT byteOrderMark ([out, retval] VARIANT_BOOL * writeByteOrderMark);
2455
2456     [propput, id(DISPID_MX_WRITER_INDENT)]
2457     HRESULT indent ([in] VARIANT_BOOL indentMode);
2458     [propget, id(DISPID_MX_WRITER_INDENT)]
2459     HRESULT indent ([out, retval] VARIANT_BOOL * indentMode);
2460
2461     [propput, id(DISPID_MX_WRITER_STANDALONE)]
2462     HRESULT standalone ([in] VARIANT_BOOL value);
2463     [propget, id(DISPID_MX_WRITER_STANDALONE)]
2464     HRESULT standalone ([out, retval] VARIANT_BOOL * value);
2465
2466     [propput, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
2467     HRESULT omitXMLDeclaration ([in] VARIANT_BOOL value);
2468     [propget, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
2469     HRESULT omitXMLDeclaration ([out, retval] VARIANT_BOOL * value);
2470
2471     [propput, id(DISPID_MX_WRITER_VERSION)]
2472     HRESULT version ([in] BSTR version);
2473     [propget, id(DISPID_MX_WRITER_VERSION)]
2474     HRESULT version ([out, retval] BSTR * version);
2475
2476     [propput, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
2477     HRESULT disableOutputEscaping([in] VARIANT_BOOL value);
2478     [propget, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
2479     HRESULT disableOutputEscaping([out, retval] VARIANT_BOOL * value);
2480
2481     [id(DISPID_MX_WRITER_FLUSH)]
2482     HRESULT flush();
2483 };
2484
2485 [
2486     local,
2487     object,
2488     dual,
2489     oleautomation,
2490     uuid(c90352f4-643c-4fbc-bb23-e996eb2d51fd)
2491 ]
2492 interface IMXNamespacePrefixes : IDispatch
2493 {
2494     [propget, id(DISPID_VALUE)]
2495     HRESULT item(
2496         [in] long index,
2497         [out, retval] BSTR *prefix);
2498
2499     [propget, id(DISPID_MX_NSMGR_LENGTH)]
2500     HRESULT length( [out,retval] long *length );
2501
2502     [propget, restricted, hidden, id(DISPID_NEWENUM)]
2503     HRESULT _newEnum( [out, retval] IUnknown **ppUnk );
2504 }
2505
2506 [
2507     local,
2508     object,
2509     hidden,
2510     uuid(c90352f6-643c-4fbc-bb23-e996eb2d51fd)
2511 ]
2512 interface IMXNamespaceManager : IUnknown
2513 {
2514     HRESULT putAllowOverride([in] VARIANT_BOOL fOverride);
2515
2516     HRESULT getAllowOverride([out, retval] VARIANT_BOOL *fOverride);
2517
2518     HRESULT reset();
2519
2520     HRESULT pushContext();
2521
2522     HRESULT pushNodeContext(
2523         [in] IXMLDOMNode *contextNode,
2524         [in] VARIANT_BOOL fDeep);
2525
2526     HRESULT popContext();
2527
2528     HRESULT declarePrefix(
2529         [in] const WCHAR *prefix,
2530         [in] const WCHAR *namespaceURI);
2531
2532     HRESULT getDeclaredPrefix(
2533         [in] long nIndex,
2534         [in, out] WCHAR *pwchPrefix,
2535         [in, out] int *pcchPrefix);
2536
2537     HRESULT getPrefix(
2538         [in] const WCHAR *pwszNamespaceURI,
2539         [in] long nIndex,
2540         [in, out] WCHAR *pwchPrefix,
2541         [in, out] int *pcchPrefix);
2542
2543     HRESULT getURI(
2544         [in] const WCHAR *pwchPrefix,
2545         [in] IXMLDOMNode* pContextNode,
2546         [in, out] WCHAR *pwchUri,
2547         [in, out] int *pcchUri);
2548 }
2549
2550 [
2551     local,
2552     object,
2553     dual,
2554     oleautomation,
2555     uuid(c90352f5-643c-4fbc-bb23-e996eb2d51fd)
2556 ]
2557 interface IVBMXNamespaceManager : IDispatch
2558 {
2559     [propput, id(DISPID_MX_NSMGR_ALLOWOVERRIDE)]
2560     HRESULT allowOverride([in] VARIANT_BOOL fOverride);
2561
2562     [propget, id(DISPID_MX_NSMGR_ALLOWOVERRIDE)]
2563     HRESULT allowOverride([out,retval] VARIANT_BOOL* fOverride);
2564
2565     [id(DISPID_MX_NSMGR_RESET)]
2566     HRESULT reset();
2567
2568     [id(DISPID_MX_NSMGR_PUSHCONTEXT)]
2569     HRESULT pushContext();
2570
2571     [id(DISPID_MX_NSMGR_PUSHNODECONTEXT)]
2572     HRESULT pushNodeContext(
2573         [in] IXMLDOMNode* contextNode,
2574         [in, defaultvalue(-1)] VARIANT_BOOL fDeep);
2575
2576     [id(DISPID_MX_NSMGR_POPCONTEXT)]
2577     HRESULT popContext();
2578
2579     [id(DISPID_MX_NSMGR_DECLAREPREFIX)]
2580     HRESULT declarePrefix(
2581         [in] BSTR prefix,
2582         [in] BSTR namespaceURI);
2583
2584     [id(DISPID_MX_NSMGR_GETDECLAREDPREFIXES)]
2585     HRESULT getDeclaredPrefixes([out, retval] IMXNamespacePrefixes** prefixes);
2586
2587     [id(DISPID_MX_NSMGR_GETPREFIXES)]
2588     HRESULT getPrefixes(
2589         [in] BSTR namespaceURI,
2590         [out, retval] IMXNamespacePrefixes** prefixes);
2591
2592     [id(DISPID_MX_NSMGR_GETURI)]
2593     HRESULT getURI(
2594         [in] BSTR prefix,
2595         [out, retval] VARIANT* uri);
2596
2597     [id(DISPID_MX_NSMGR_GETURIFROMNODE)]
2598     HRESULT getURIFromNode(
2599         [in] BSTR strPrefix,
2600         [in] IXMLDOMNode* contextNode,
2601         [out, retval] VARIANT* uri);
2602 }
2603
2604 [
2605     local,
2606     object,
2607     dual,
2608     oleautomation,
2609     uuid(c90352f7-643c-4fbc-bb23-e996eb2d51fd)
2610 ]
2611 interface IMXXMLFilter : IDispatch
2612 {
2613     [id(DISPID_MXXML_FILTER_GETFEATURE)]
2614     HRESULT getFeature(
2615         [in] BSTR strName,
2616         [out, retval] VARIANT_BOOL * fValue);
2617
2618     [id(DISPID_MXXML_FILTER_PUTFEATURE)]
2619     HRESULT putFeature(
2620         [in] BSTR strName,
2621         [in] VARIANT_BOOL fValue);
2622
2623     [id(DISPID_MXXML_FILTER_GETPROPERTY)]
2624     HRESULT getProperty(
2625         [in] BSTR strName,
2626         [out, retval] VARIANT * varValue);
2627
2628     [id(DISPID_MXXML_FILTER_PUTPROPERTY)]
2629     HRESULT putProperty(
2630         [in] BSTR strName,
2631         [in] VARIANT varValue);
2632
2633     [id(DISPID_MXXML_FILTER_ENTITYRESOLVER), propget]
2634     HRESULT entityResolver( [out, retval] IUnknown **oResolver );
2635
2636     [id(DISPID_MXXML_FILTER_ENTITYRESOLVER), propputref]
2637     HRESULT entityResolver( [in] IUnknown *oResolver );
2638
2639     [id(DISPID_MXXML_FILTER_CONTENTHANDLER), propget]
2640     HRESULT contentHandler( [out, retval] IUnknown **oHandler );
2641
2642     [id(DISPID_MXXML_FILTER_CONTENTHANDLER), propputref]
2643     HRESULT contentHandler( [in] IUnknown *oHandler );
2644
2645     [id(DISPID_MXXML_FILTER_DTDHANDLER), propget]
2646     HRESULT dtdHandler( [out, retval] IUnknown **oHandler );
2647
2648     [id(DISPID_MXXML_FILTER_DTDHANDLER), propputref]
2649     HRESULT dtdHandler( [in] IUnknown *oHandler );
2650
2651     [id(DISPID_MXXML_FILTER_ERRORHANDLER), propget]
2652     HRESULT errorHandler( [out, retval] IUnknown **oHandler );
2653
2654     [id(DISPID_MXXML_FILTER_ERRORHANDLER), propputref]
2655     HRESULT errorHandler( [in] IUnknown *oHandler );
2656 }
2657
2658 [
2659     local,
2660     object,
2661     uuid(50ea08b1-dd1b-4664-9a50-c2f40f4bd79a),
2662     oleautomation,
2663     dual
2664 ]
2665 interface ISchemaStringCollection : IDispatch
2666 {
2667     [id(DISPID_VALUE), propget]
2668     HRESULT item(
2669         [in] long index,
2670         [out,retval] BSTR* bstr);
2671
2672     [id(DISPID_SOM_LENGTH), propget]
2673     HRESULT length(
2674         [out,retval] long* length);
2675
2676     [id(DISPID_NEWENUM), hidden, restricted, propget]
2677     HRESULT _newEnum(
2678         [out,retval] IUnknown** ppunk);
2679 };
2680
2681 [
2682     local,
2683     object,
2684     uuid(50ea08b2-dd1b-4664-9a50-c2f40f4bd79a),
2685     oleautomation,
2686     dual
2687 ]
2688 interface ISchemaItemCollection : IDispatch
2689 {
2690     [id(DISPID_VALUE), propget]
2691     HRESULT item(
2692         [in] long index,
2693         [out,retval]ISchemaItem** item);
2694
2695     [id(DISPID_SOM_ITEMBYNAME)]
2696     HRESULT itemByName(
2697         [in] BSTR name,
2698         [out,retval] ISchemaItem** item);
2699
2700     [id(DISPID_SOM_ITEMBYQNAME)]
2701     HRESULT itemByQName(
2702         [in] BSTR name,
2703         [in] BSTR namespaceURI,
2704         [out,retval] ISchemaItem** item);
2705
2706     [id(DISPID_SOM_LENGTH), propget]
2707     HRESULT length(
2708         [out,retval]long* length);
2709
2710     [id(DISPID_NEWENUM), hidden, restricted, propget]
2711     HRESULT _newEnum(
2712         [out,retval]IUnknown** ppunk);
2713 };
2714
2715 [
2716     local,
2717     object,
2718     uuid(50ea08b3-dd1b-4664-9a50-c2f40f4bd79a),
2719     oleautomation,
2720     dual
2721 ]
2722 interface ISchemaItem : IDispatch
2723 {
2724     [id(DISPID_SOM_NAME), propget]
2725     HRESULT name(
2726         [out,retval] BSTR* name);
2727
2728     [id(DISPID_SOM_NAMESPACEURI), propget]
2729     HRESULT namespaceURI(
2730         [out,retval] BSTR* namespaceURI);
2731
2732     [id(DISPID_SOM_SCHEMA), propget]
2733     HRESULT schema(
2734         [out,retval] ISchema** schema);
2735
2736     [id(DISPID_SOM_ID), propget]
2737     HRESULT id(
2738         [out,retval] BSTR* id);
2739
2740     [id(DISPID_SOM_ITEMTYPE), propget]
2741     HRESULT itemType(
2742         [out,retval] SOMITEMTYPE* itemType);
2743
2744     [id(DISPID_SOM_UNHANDLEDATTRS), propget]
2745     HRESULT unhandledAttributes(
2746         [out,retval] IVBSAXAttributes** attributes);
2747
2748     [id(DISPID_SOM_WRITEANNOTATION)]
2749     HRESULT writeAnnotation(
2750         [in] IUnknown* annotationSink,
2751         [out,retval] VARIANT_BOOL* isWritten);
2752 };
2753
2754 [
2755     local,
2756     object,
2757     uuid(50ea08b4-dd1b-4664-9a50-c2f40f4bd79a),
2758     oleautomation,
2759     dual
2760 ]
2761 interface ISchema : ISchemaItem
2762 {
2763     [id(DISPID_SOM_TARGETNAMESPACE), propget]
2764     HRESULT targetNamespace(
2765         [out,retval] BSTR* targetNamespace);
2766
2767     [id(DISPID_SOM_VERSION), propget]
2768     HRESULT version(
2769         [out,retval] BSTR* version);
2770
2771     [id(DISPID_SOM_TYPES), propget]
2772     HRESULT types(
2773         [out,retval] ISchemaItemCollection** types);
2774
2775     [id(DISPID_SOM_ELEMENTS), propget]
2776     HRESULT elements(
2777         [out,retval] ISchemaItemCollection** elements);
2778
2779     [id(DISPID_SOM_ATTRIBUTES), propget]
2780     HRESULT attributes(
2781         [out,retval] ISchemaItemCollection** attributes);
2782
2783     [id(DISPID_SOM_ATTRIBUTEGROUPS), propget]
2784     HRESULT attributeGroups(
2785         [out,retval] ISchemaItemCollection** attributeGroups);
2786
2787     [id(DISPID_SOM_MODELGROUPS), propget]
2788     HRESULT modelGroups(
2789         [out,retval] ISchemaItemCollection** modelGroups);
2790
2791     [id(DISPID_SOM_NOTATIONS), propget]
2792     HRESULT notations(
2793         [out,retval] ISchemaItemCollection** notations);
2794
2795     [id(DISPID_SOM_SCHEMALOCATIONS), propget]
2796     HRESULT schemaLocations(
2797         [out,retval] ISchemaStringCollection** schemaLocations);
2798 };
2799
2800 [
2801     local,
2802     object,
2803     uuid(50ea08b5-dd1b-4664-9a50-c2f40f4bd79a),
2804     oleautomation,
2805     dual
2806 ]
2807 interface ISchemaParticle : ISchemaItem
2808 {
2809     [id(DISPID_SOM_MINOCCURS), propget]
2810     HRESULT minOccurs(
2811         [out,retval] VARIANT* minOccurs);
2812
2813     [id(DISPID_SOM_MAXOCCURS), propget]
2814     HRESULT maxOccurs(
2815         [out,retval] VARIANT* maxOccurs);
2816 };
2817
2818 [
2819     object,
2820     uuid(50ea08b6-dd1b-4664-9a50-c2f40f4bd79a),
2821     oleautomation,
2822     dual,
2823 ]
2824 interface ISchemaAttribute : ISchemaItem
2825 {
2826     [id(DISPID_SOM_TYPE), propget]
2827     HRESULT type(
2828         [out,retval] ISchemaType** type);
2829
2830     [id(DISPID_SOM_SCOPE), propget]
2831     HRESULT scope(
2832         [out,retval] ISchemaComplexType** scope);
2833
2834     [id(DISPID_SOM_DEFAULTVALUE), propget]
2835     HRESULT defaultValue(
2836         [out,retval]BSTR* defaultValue);
2837
2838     [id(DISPID_SOM_FIXEDVALUE), propget]
2839     HRESULT fixedValue(
2840         [out,retval] BSTR* fixedValue);
2841
2842     [id(DISPID_SOM_USE), propget]
2843     HRESULT use(
2844         [out,retval] SCHEMAUSE* use);
2845
2846     [id(DISPID_SOM_ISREFERENCE), propget]
2847     HRESULT isReference(
2848         [out,retval] VARIANT_BOOL* reference);
2849 };
2850
2851 [
2852     local,
2853     object,
2854     uuid(50ea08b7-dd1b-4664-9a50-c2f40f4bd79a),
2855     oleautomation,
2856     dual
2857 ]
2858 interface ISchemaElement : ISchemaParticle
2859 {
2860     [id(DISPID_SOM_TYPE), propget]
2861     HRESULT type(
2862         [out,retval] ISchemaType** type);
2863
2864     [id(DISPID_SOM_SCOPE), propget]
2865     HRESULT scope(
2866         [out,retval] ISchemaComplexType** scope);
2867
2868     [id(DISPID_SOM_DEFAULTVALUE), propget]
2869     HRESULT defaultValue(
2870         [out,retval] BSTR* defaultValue);
2871
2872     [id(DISPID_SOM_FIXEDVALUE), propget]
2873     HRESULT fixedValue(
2874         [out,retval] BSTR* fixedValue);
2875
2876     [id(DISPID_SOM_ISNILLABLE), propget]
2877     HRESULT isNillable(
2878         [out,retval] VARIANT_BOOL* nillable);
2879
2880     [id(DISPID_SOM_IDCONSTRAINTS), propget]
2881     HRESULT identityConstraints(
2882         [out,retval] ISchemaItemCollection** constraints);
2883
2884     [id(DISPID_SOM_SUBSTITUTIONGROUP), propget]
2885     HRESULT substitutionGroup(
2886         [out,retval] ISchemaElement** element);
2887
2888     [id(DISPID_SOM_EXCLUSIONS), propget]
2889     HRESULT substitutionGroupExclusions(
2890         [out,retval] SCHEMADERIVATIONMETHOD* exclusions);
2891
2892     [id(DISPID_SOM_DISALLOWED), propget]
2893     HRESULT disallowedSubstitutions(
2894         [out,retval] SCHEMADERIVATIONMETHOD* disallowed);
2895
2896     [id(DISPID_SOM_ISABSTRACT), propget]
2897     HRESULT isAbstract(
2898         [out,retval] VARIANT_BOOL* abstract);
2899
2900     [id(DISPID_SOM_ISREFERENCE), propget]
2901     HRESULT isReference(
2902         [out,retval] VARIANT_BOOL* reference);
2903 };
2904
2905 [
2906     local,
2907     object,
2908     uuid(50ea08b8-dd1b-4664-9a50-c2f40f4bd79a),
2909     oleautomation,
2910     dual
2911 ]
2912 interface ISchemaType : ISchemaItem
2913 {
2914     [id(DISPID_SOM_BASETYPES), propget]
2915     HRESULT baseTypes(
2916         [out,retval] ISchemaItemCollection** baseTypes);
2917
2918     [id(DISPID_SOM_FINAL), propget]
2919     HRESULT final(
2920         [out,retval] SCHEMADERIVATIONMETHOD* final);
2921
2922     [id(DISPID_SOM_VARIETY), propget]
2923     HRESULT variety(
2924         [out,retval] SCHEMATYPEVARIETY* variety);
2925
2926     [id(DISPID_SOM_DERIVEDBY), propget]
2927     HRESULT derivedBy(
2928         [out,retval] SCHEMADERIVATIONMETHOD* derivedBy);
2929
2930     [id(DISPID_SOM_ISVALID)]
2931     HRESULT isValid(
2932         [in] BSTR data,
2933         [out,retval] VARIANT_BOOL* valid);
2934
2935     [id(DISPID_SOM_MINEXCLUSIVE), propget]
2936     HRESULT minExclusive(
2937         [out,retval]BSTR* minExclusive);
2938
2939     [id(DISPID_SOM_MININCLUSIVE), propget]
2940     HRESULT minInclusive(
2941         [out,retval] BSTR* minInclusive);
2942
2943     [id(DISPID_SOM_MAXEXCLUSIVE), propget]
2944     HRESULT maxExclusive(
2945         [out,retval] BSTR* maxExclusive);
2946
2947     [id(DISPID_SOM_MAXINCLUSIVE), propget]
2948     HRESULT maxInclusive(
2949         [out,retval] BSTR* maxInclusive);
2950
2951     [id(DISPID_SOM_TOTALDIGITS), propget]
2952     HRESULT totalDigits(
2953         [out,retval] VARIANT* totalDigits);
2954
2955     [id(DISPID_SOM_FRACTIONDIGITS), propget]
2956     HRESULT fractionDigits(
2957         [out,retval] VARIANT* fractionDigits);
2958
2959     [id(DISPID_SOM_LENGTH), propget]
2960     HRESULT length(
2961         [out,retval] VARIANT* length);
2962
2963     [id(DISPID_SOM_MINLENGTH), propget]
2964     HRESULT minLength(
2965         [out,retval]VARIANT* minLength);
2966
2967     [id(DISPID_SOM_MAXLENGTH), propget]
2968     HRESULT maxLength(
2969         [out,retval]VARIANT* maxLength);
2970
2971     [id(DISPID_SOM_ENUMERATION), propget]
2972     HRESULT enumeration(
2973         [out,retval] ISchemaStringCollection** enumeration);
2974
2975     [id(DISPID_SOM_WHITESPACE), propget]
2976     HRESULT whitespace(
2977         [out,retval]SCHEMAWHITESPACE* whitespace);
2978
2979     [id(DISPID_SOM_PATTERNS), propget]
2980     HRESULT patterns(
2981         [out,retval] ISchemaStringCollection** patterns);
2982 };
2983
2984 [
2985     local,
2986     object,
2987     uuid(50ea08b9-dd1b-4664-9a50-c2f40f4bd79a),
2988     oleautomation,
2989     dual,
2990 ]
2991 interface ISchemaComplexType : ISchemaType
2992 {
2993     [id(DISPID_SOM_ISABSTRACT), propget]
2994     HRESULT isAbstract(
2995         [out,retval] VARIANT_BOOL* abstract);
2996
2997     [id(DISPID_SOM_ANYATTRIBUTE), propget]
2998     HRESULT anyAttribute(
2999         [out,retval] ISchemaAny** anyAttribute);
3000
3001     [id(DISPID_SOM_ATTRIBUTES), propget]
3002     HRESULT attributes(
3003         [out,retval] ISchemaItemCollection** attributes);
3004
3005     [id(DISPID_SOM_CONTENTTYPE), propget]
3006     HRESULT contentType(
3007         [out,retval] SCHEMACONTENTTYPE* contentType);
3008
3009     [id(DISPID_SOM_CONTENTMODEL), propget]
3010     HRESULT contentModel(
3011         [out,retval] ISchemaModelGroup** contentModel);
3012
3013     [id(DISPID_SOM_PROHIBITED), propget]
3014     HRESULT prohibitedSubstitutions(
3015         [out,retval] SCHEMADERIVATIONMETHOD* prohibited);
3016 };
3017
3018 [
3019     local,
3020     object,
3021     uuid(50ea08ba-dd1b-4664-9a50-c2f40f4bd79a),
3022     oleautomation,
3023     dual,
3024 ]
3025 interface ISchemaAttributeGroup : ISchemaItem
3026 {
3027     [id(DISPID_SOM_ANYATTRIBUTE), propget]
3028     HRESULT anyAttribute(
3029         [out,retval] ISchemaAny** anyAttribute);
3030
3031     [id(DISPID_SOM_ATTRIBUTES), propget]
3032         HRESULT attributes(
3033             [out,retval] ISchemaItemCollection** attributes);
3034 };
3035
3036 [
3037     local,
3038     object,
3039     uuid(50ea08bb-dd1b-4664-9a50-c2f40f4bd79a),
3040     oleautomation,
3041     dual,
3042 ]
3043 interface ISchemaModelGroup : ISchemaParticle
3044 {
3045     [id(DISPID_SOM_PARTICLES), propget]
3046     HRESULT particles(
3047         [out,retval] ISchemaItemCollection** particles);
3048 };
3049
3050 [
3051     local,
3052     object,
3053     uuid(50ea08bc-dd1b-4664-9a50-c2f40f4bd79a),
3054     oleautomation,
3055     dual
3056 ]
3057 interface ISchemaAny : ISchemaParticle
3058 {
3059     [id(DISPID_SOM_NAMESPACES), propget]
3060     HRESULT namespaces(
3061         [out,retval] ISchemaStringCollection** namespaces);
3062
3063     [id(DISPID_SOM_PROCESSCONTENTS), propget]
3064     HRESULT processContents(
3065         [out,retval] SCHEMAPROCESSCONTENTS* processContents);
3066 };
3067
3068 [
3069     local,
3070     object,
3071     uuid(50ea08bd-dd1b-4664-9a50-c2f40f4bd79a),
3072     oleautomation,
3073     dual
3074 ]
3075 interface ISchemaIdentityConstraint : ISchemaItem
3076 {
3077     [id(DISPID_SOM_SELECTOR), propget]
3078     HRESULT selector(
3079         [out,retval] BSTR* selector);
3080
3081     [id(DISPID_SOM_FIELDS), propget]
3082         HRESULT fields(
3083             [out,retval] ISchemaStringCollection** fields);
3084
3085     [id(DISPID_SOM_REFERENCEDKEY), propget]
3086     HRESULT referencedKey(
3087         [out,retval] ISchemaIdentityConstraint** key);
3088 };
3089
3090 [
3091     local,
3092     object,
3093     uuid(50ea08be-dd1b-4664-9a50-c2f40f4bd79a),
3094     oleautomation,
3095     dual
3096 ]
3097 interface ISchemaNotation : ISchemaItem
3098 {
3099     [id(DISPID_SOM_SYSTEMIDENTIFIER), propget]
3100     HRESULT systemIdentifier(
3101         [out,retval] BSTR* uri);
3102
3103     [id(DISPID_SOM_PUBLICIDENTIFIER), propget]
3104     HRESULT publicIdentifier(
3105         [out,retval] BSTR* uri);
3106 };
3107
3108
3109 [
3110     uuid(079aa557-4a18-424a-8eee-e39f0a8d41b9)
3111 ]
3112 coclass SAXXMLReader
3113 {
3114     [default] interface IVBSAXXMLReader;
3115     interface ISAXXMLReader;
3116     interface IMXReaderControl;
3117 };
3118
3119 [
3120     uuid(3124c396-fb13-4836-a6ad-1317f1713688)
3121 ]
3122 coclass SAXXMLReader30
3123 {
3124     [default] interface IVBSAXXMLReader;
3125     interface ISAXXMLReader;
3126     interface IMXReaderControl;
3127 };
3128
3129 [
3130     uuid(7c6e29bc-8b8b-4c3d-859e-af6cd158be0f)
3131 ]
3132 coclass SAXXMLReader40
3133 {
3134     [default] interface IVBSAXXMLReader;
3135     interface ISAXXMLReader;
3136 }
3137
3138 [
3139     uuid(88d96a0c-f192-11d4-a65f-0040963251e5)
3140 ]
3141 coclass SAXXMLReader60
3142 {
3143     [default] interface IVBSAXXMLReader;
3144     interface ISAXXMLReader;
3145 }
3146
3147 [
3148     uuid(a4c23ec3-6b70-4466-9127-550077239978)
3149 ]
3150 coclass MXHTMLWriter
3151 {
3152     [default] interface IMXWriter;
3153
3154     interface ISAXContentHandler;
3155     interface ISAXErrorHandler;
3156     interface ISAXDTDHandler;
3157     interface ISAXLexicalHandler;
3158     interface ISAXDeclHandler;
3159
3160     interface IVBSAXContentHandler;
3161     interface IVBSAXDeclHandler;
3162     interface IVBSAXDTDHandler;
3163     interface IVBSAXErrorHandler;
3164     interface IVBSAXLexicalHandler;
3165 }
3166
3167 [
3168     uuid(853d1540-c1a7-4aa9-a226-4d3bd301146d)
3169 ]
3170 coclass MXHTMLWriter30
3171 {
3172     [default] interface IMXWriter;
3173
3174     interface ISAXContentHandler;
3175     interface ISAXDeclHandler;
3176     interface ISAXDTDHandler;
3177     interface ISAXErrorHandler;
3178     interface ISAXLexicalHandler;
3179
3180     interface IVBSAXContentHandler;
3181     interface IVBSAXDeclHandler;
3182     interface IVBSAXDTDHandler;
3183     interface IVBSAXErrorHandler;
3184     interface IVBSAXLexicalHandler;
3185 }
3186
3187 [
3188     uuid(88d969c9-f192-11d4-a65f-0040963251e5)
3189 ]
3190 coclass MXHTMLWriter40
3191 {
3192     [default] interface IMXWriter;
3193
3194     interface ISAXContentHandler;
3195     interface ISAXDeclHandler;
3196     interface ISAXDTDHandler;
3197     interface ISAXErrorHandler;
3198     interface ISAXLexicalHandler;
3199
3200     interface IVBSAXContentHandler;
3201     interface IVBSAXDeclHandler;
3202     interface IVBSAXDTDHandler;
3203     interface IVBSAXErrorHandler;
3204     interface IVBSAXLexicalHandler;
3205 }
3206
3207 [
3208     uuid(88d96a10-f192-11d4-a65f-0040963251e5)
3209 ]
3210 coclass MXHTMLWriter60
3211 {
3212     [default] interface IMXWriter;
3213
3214     interface ISAXContentHandler;
3215     interface ISAXDeclHandler;
3216     interface ISAXDTDHandler;
3217     interface ISAXErrorHandler;
3218     interface ISAXLexicalHandler;
3219
3220     interface IVBSAXContentHandler;
3221     interface IVBSAXDeclHandler;
3222     interface IVBSAXDTDHandler;
3223     interface IVBSAXErrorHandler;
3224     interface IVBSAXLexicalHandler;
3225 }
3226
3227 [
3228     uuid(fc220ad8-a72a-4ee8-926e-0b7ad152a020)
3229 ]
3230 coclass MXXMLWriter
3231 {
3232     [default] interface IMXWriter;
3233
3234     interface ISAXContentHandler;
3235     interface ISAXErrorHandler;
3236     interface ISAXDTDHandler;
3237     interface ISAXLexicalHandler;
3238     interface ISAXDeclHandler;
3239
3240     interface IVBSAXContentHandler;
3241     interface IVBSAXDeclHandler;
3242     interface IVBSAXDTDHandler;
3243     interface IVBSAXErrorHandler;
3244     interface IVBSAXLexicalHandler;
3245 };
3246
3247 [
3248     uuid(3d813dfe-6c91-4a4e-8f41-04346a841d9c)
3249 ]
3250 coclass MXXMLWriter30
3251 {
3252     [default] interface IMXWriter;
3253
3254     interface ISAXContentHandler;
3255     interface ISAXDeclHandler;
3256     interface ISAXDTDHandler;
3257     interface ISAXErrorHandler;
3258     interface ISAXLexicalHandler;
3259
3260     interface IVBSAXContentHandler;
3261     interface IVBSAXDeclHandler;
3262     interface IVBSAXDTDHandler;
3263     interface IVBSAXErrorHandler;
3264     interface IVBSAXLexicalHandler;
3265 };
3266
3267 [
3268     uuid(88d969c8-f192-11d4-a65f-0040963251e5),
3269 ]
3270 coclass MXXMLWriter40
3271 {
3272     [default] interface IMXWriter;
3273
3274     interface ISAXContentHandler;
3275     interface ISAXDeclHandler;
3276     interface ISAXDTDHandler;
3277     interface ISAXErrorHandler;
3278     interface ISAXLexicalHandler;
3279
3280     interface IVBSAXContentHandler;
3281     interface IVBSAXDeclHandler;
3282     interface IVBSAXDTDHandler;
3283     interface IVBSAXErrorHandler;
3284     interface IVBSAXLexicalHandler;
3285 }
3286
3287 [
3288     uuid(88d96a0f-f192-11d4-a65f-0040963251e5)
3289 ]
3290 coclass MXXMLWriter60
3291 {
3292     [default] interface IMXWriter;
3293
3294     interface ISAXContentHandler;
3295     interface ISAXDeclHandler;
3296     interface ISAXDTDHandler;
3297     interface ISAXErrorHandler;
3298     interface ISAXLexicalHandler;
3299
3300     interface IVBSAXContentHandler;
3301     interface IVBSAXDeclHandler;
3302     interface IVBSAXDTDHandler;
3303     interface IVBSAXErrorHandler;
3304     interface IVBSAXLexicalHandler;
3305 }
3306
3307 [
3308     uuid(88d969d5-f192-11d4-a65f-0040963251e5)
3309 ]
3310 coclass MXNamespaceManager
3311 {
3312     [default] interface IVBMXNamespaceManager;
3313     interface IMXNamespaceManager;
3314 }
3315
3316 [
3317     uuid(88d969d6-f192-11d4-a65f-0040963251e5)
3318 ]
3319 coclass MXNamespaceManager40
3320 {
3321     [default] interface IVBMXNamespaceManager;
3322     interface IMXNamespaceManager;
3323 }
3324
3325 [
3326     uuid(88d96a11-f192-11d4-a65f-0040963251e5)
3327 ]
3328 coclass MXNamespaceManager60
3329 {
3330     [default] interface IVBMXNamespaceManager;
3331     interface IMXNamespaceManager;
3332 }
3333
3334 [
3335     uuid(4dd441ad-526d-4a77-9f1b-9841ed802fb0)
3336 ]
3337 coclass SAXAttributes
3338 {
3339     [default] interface IMXAttributes;
3340     interface IVBSAXAttributes;
3341     interface ISAXAttributes;
3342 }
3343
3344 [
3345     uuid(3e784a01-f3ae-4dc0-9354-9526b9370eba)
3346 ]
3347 coclass SAXAttributes30
3348 {
3349     [default] interface IMXAttributes;
3350     interface IVBSAXAttributes;
3351     interface ISAXAttributes;
3352 }
3353
3354 [
3355     uuid(88d969ca-f192-11d4-a65f-0040963251e5),
3356 ]
3357 coclass SAXAttributes40
3358 {
3359     [default] interface IMXAttributes;
3360     interface IVBSAXAttributes;
3361     interface ISAXAttributes;
3362 }
3363
3364 [
3365     uuid(88d96a0e-f192-11d4-a65f-0040963251e5)
3366 ]
3367 coclass SAXAttributes60
3368 {
3369     [default] interface IMXAttributes;
3370     interface IVBSAXAttributes;
3371     interface ISAXAttributes;
3372 }
3373
3374 /*
3375  * Error Codes
3376  */
3377 cpp_quote("#define E_XML_NOTWF              0xC00CE223")
3378 cpp_quote("#define E_XML_NODTD              0xC00CE224")
3379 cpp_quote("#define E_XML_INVALID            0xC00CE225")
3380 cpp_quote("#define E_XML_BUFFERTOOSMALL     0xC00CE226")
3381
3382 } /* Library MSXML */