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