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