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