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