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