msxml3: Add error code defines.
[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 oleautomation,
639 uuid (2933BF82-7B36-11d2-B20E-00C04F983E60)
640 ]
641 interface IXMLDOMNodeList : IDispatch
642 {
643     [propget, id(DISPID_VALUE)]
644     HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
645
646     [propget, id(DISPID_DOM_NODELIST_LENGTH)]
647     HRESULT length([retval, out] LONG *lLength);
648
649     [id(DISPID_XMLDOM_NODELIST_NEXTNODE)]
650     HRESULT nextNode(
651         [retval, out] IXMLDOMNode **outNode);
652
653     [id(DISPID_XMLDOM_NODELIST_RESET)]
654     HRESULT reset();
655
656     [propget, id(DISPID_NEWENUM)]
657     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
658 }
659
660 [
661 local,
662 object,
663 dual,
664 oleautomation,
665 uuid (AA634FC7-5888-44a7-A257-3A47150D3A0E)
666 ]
667 interface IXMLDOMSelection : IXMLDOMNodeList
668 {
669     [propget, id(DISPID_XMLDOM_SELECTION_EXPR)]
670     HRESULT expr([retval, out] BSTR *p);
671
672     [propput, id(DISPID_XMLDOM_SELECTION_EXPR)]
673     HRESULT expr([in] BSTR p);
674
675     [propget, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
676     HRESULT context([retval, out] IXMLDOMNode **ppNode);
677
678     [propputref, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
679     HRESULT context([in] IXMLDOMNode * pNode);
680
681     [id(DISPID_XMLDOM_SELECTION_PEEKNODE)]
682     HRESULT peekNode(
683         [retval, out] IXMLDOMNode **ppNode);
684
685     [id(DISPID_XMLDOM_SELECTION_MATCHES)]
686     HRESULT matches(
687         [in] IXMLDOMNode *pNode,
688         [retval, out] IXMLDOMNode **ppNode);
689
690     [id(DISPID_XMLDOM_SELECTION_REMOVENEXT)] 
691     HRESULT removeNext(
692         [retval, out] IXMLDOMNode **ppNode);
693
694     [id(DISPID_XMLDOM_SELECTION_REMOVEALL)]
695     HRESULT removeAll();
696
697     [id(DISPID_XMLDOM_SELECTION_CLONE)]
698     HRESULT clone(
699         [retval, out] IXMLDOMSelection **ppNode);
700
701     [id(DISPID_XMLDOM_SELECTION_GETPROPERTY)]
702     HRESULT getProperty(
703         [in] BSTR p,
704         [retval, out] VARIANT * var);
705
706     [id(DISPID_XMLDOM_SELECTION_SETPROPERTY)]
707     HRESULT setProperty(
708         [in] BSTR p,
709         [in] VARIANT var);
710 }
711
712 [
713 local,
714 object,
715 dual,
716 oleautomation,
717 uuid (2933BF83-7B36-11d2-B20E-00C04F983E60)
718 ]
719 interface IXMLDOMNamedNodeMap : IDispatch
720 {
721     [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)]
722     HRESULT getNamedItem(
723         [in] BSTR p,
724         [retval, out] IXMLDOMNode **outNode);
725
726     [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)]
727     HRESULT setNamedItem(
728         [in] IXMLDOMNode *newNode,
729         [retval, out] IXMLDOMNode **outNode);
730
731     [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)]
732     HRESULT removeNamedItem(
733         [in] BSTR p,
734         [retval, out] IXMLDOMNode **outNode);
735
736     [propget, id(DISPID_VALUE)]
737     HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
738
739     [propget, id(DISPID_DOM_NODELIST_LENGTH)]
740     HRESULT length([retval, out] LONG *lLength);
741
742     [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)]
743     HRESULT getQualifiedItem(
744         [in] BSTR name,
745         [in] BSTR uri,
746         [retval, out] IXMLDOMNode **outNode);
747
748     [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)]
749     HRESULT removeQualifiedItem(
750         [in] BSTR name,
751         [in] BSTR uri,
752         [retval, out] IXMLDOMNode **outNode);
753
754     [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)]
755     HRESULT nextNode(
756         [retval, out] IXMLDOMNode **outNode);
757
758     [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)]
759     HRESULT reset();
760
761     [propget, id(DISPID_NEWENUM)]
762     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
763 }
764  
765 [
766 local,
767 object,
768 dual,
769 oleautomation,
770 uuid (3efaa413-272f-11d2-836f-0000f87a7782)
771 ]
772 interface IXMLDOMDocumentFragment : IXMLDOMNode 
773 {
774 }
775
776 [
777 local,
778 object,
779 dual,
780 oleautomation,
781 uuid (2933BF84-7B36-11d2-B20E-00C04F983E60)
782 ]
783 interface IXMLDOMCharacterData : IXMLDOMNode 
784 {
785     [propget, id(DISPID_DOM_DATA_DATA)]
786     HRESULT data([retval, out] BSTR *p);
787
788     [propput, id(DISPID_DOM_DATA_DATA)]
789     HRESULT data([in] BSTR data);
790
791     [propget, id(DISPID_DOM_DATA_LENGTH)]
792     HRESULT length([retval, out] LONG *len);
793
794     [id(DISPID_DOM_DATA_SUBSTRING)]
795     HRESULT substringData(
796         [in] LONG offset,
797         [in] LONG count,
798         [retval, out] BSTR *p);
799
800     [id(DISPID_DOM_DATA_APPEND)]
801     HRESULT appendData(
802         [in] BSTR p);
803
804     [id(DISPID_DOM_DATA_INSERT)]
805     HRESULT insertData(
806         [in] LONG offset,
807         [in] BSTR p);
808
809     [id(DISPID_DOM_DATA_DELETE)]
810     HRESULT deleteData(
811         [in] LONG offset,
812         [in] LONG count);
813
814     [id(DISPID_DOM_DATA_REPLACE)]
815     HRESULT replaceData(
816         [in] LONG offset,
817         [in] LONG count,
818         [in] BSTR p);
819 }
820
821 [
822 local,
823 object,
824 dual,
825 oleautomation,
826 uuid (2933BF85-7B36-11d2-B20E-00C04F983E60)
827 ]
828 interface IXMLDOMAttribute : IXMLDOMNode 
829 {
830     [propget, id(DISPID_DOM_ATTRIBUTE_GETNAME)]
831     HRESULT name([retval, out] BSTR *p);
832
833     [propget, id(DISPID_DOM_ATTRIBUTE_VALUE)]
834     HRESULT value([retval, out] VARIANT *var1);
835
836     [propput, id(DISPID_DOM_ATTRIBUTE_VALUE)]
837     HRESULT value([in] VARIANT var1);
838 }
839
840 [
841 local,
842 object,
843 dual,
844 oleautomation,
845 uuid (2933BF86-7B36-11d2-B20E-00C04F983E60)
846 ]
847 interface IXMLDOMElement : IXMLDOMNode 
848 {
849     [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)]
850     HRESULT tagName([retval, out] BSTR *p);
851
852     [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)]
853     HRESULT getAttribute(
854         [in] BSTR p,
855         [retval, out] VARIANT *var);
856
857     [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)]
858     HRESULT setAttribute(
859         [in] BSTR p,
860         [in] VARIANT var);
861
862     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)]
863     HRESULT removeAttribute(
864         [in] BSTR p);
865
866     [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)]
867     HRESULT getAttributeNode(
868         [in] BSTR p,
869         [retval, out] IXMLDOMAttribute **attributeNode);
870
871     [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)]
872     HRESULT setAttributeNode(
873         [in] IXMLDOMAttribute *domAttribute,
874         [retval, out] IXMLDOMAttribute **attributeNode);
875
876     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)]
877     HRESULT removeAttributeNode(
878         [in] IXMLDOMAttribute *domAttribute,
879         [retval, out] IXMLDOMAttribute **attributeNode);
880
881     [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)]
882     HRESULT getElementsByTagName(
883         [in] BSTR p,
884         [retval, out] IXMLDOMNodeList **resultList);
885
886     [id(DISPID_DOM_ELEMENT_NORMALIZE)]
887     HRESULT normalize();
888 }
889
890 [
891 local,
892 object,
893 dual,
894 oleautomation,
895 uuid (2933BF87-7B36-11d2-B20E-00C04F983E60)
896 ]
897 interface IXMLDOMText : IXMLDOMCharacterData 
898 {
899     [id(DISPID_DOM_TEXT_SPLITTEXT)]
900     HRESULT splitText(
901         [in] LONG offset,
902         [retval, out] IXMLDOMText **txtNode);
903 }
904
905 [
906 local,
907 object,
908 dual,
909 oleautomation,
910 uuid (2933BF88-7B36-11d2-B20E-00C04F983E60)
911 ]
912 interface IXMLDOMComment : IXMLDOMCharacterData 
913 {
914 }
915
916 [
917 local,
918 object,
919 dual,
920 oleautomation,
921 uuid (2933BF89-7B36-11d2-B20E-00C04F983E60)
922 ]
923 interface IXMLDOMProcessingInstruction : IXMLDOMNode 
924 {
925     [propget, id(DISPID_DOM_PI_TARGET)]
926     HRESULT target([retval, out] BSTR *p);
927
928     [propget, id(DISPID_DOM_PI_DATA)]
929     HRESULT data([retval, out] BSTR *p);
930
931     [propput, id(DISPID_DOM_PI_DATA)]
932     HRESULT data([in] BSTR p);
933 }
934
935 [
936 local,
937 object,
938 dual,
939 oleautomation,
940 uuid (2933BF8A-7B36-11d2-B20E-00C04F983E60)
941 ]
942 interface IXMLDOMCDATASection : IXMLDOMText 
943 {
944 }
945
946 [
947 local,
948 object,
949 dual,
950 oleautomation,
951 uuid (2933BF8B-7B36-11d2-B20E-00C04F983E60)
952 ]
953 interface IXMLDOMDocumentType : IXMLDOMNode 
954 {
955     [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)]
956     HRESULT name([retval, out] BSTR *p);
957
958     [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)]
959     HRESULT entities([retval, out] IXMLDOMNamedNodeMap **entityMap);
960
961     [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)]
962     HRESULT notations([retval, out] IXMLDOMNamedNodeMap **notationMap);
963 }
964
965 [
966 local,
967 object,
968 dual,
969 oleautomation,
970 uuid (2933BF8C-7B36-11d2-B20E-00C04F983E60)
971 ]
972 interface IXMLDOMNotation : IXMLDOMNode 
973 {
974     [propget, id(DISPID_DOM_NOTATION_PUBLICID)]
975     HRESULT publicId([retval, out] VARIANT *id);
976
977     [propget, id(DISPID_DOM_NOTATION_SYSTEMID)]
978     HRESULT systemId([retval, out] VARIANT *id);
979 }
980
981 [
982 local,
983 object,
984 dual,
985 oleautomation,
986 uuid (2933BF8D-7B36-11d2-B20E-00C04F983E60)
987 ]
988 interface IXMLDOMEntity : IXMLDOMNode 
989 {
990     [propget, id(DISPID_DOM_ENTITY_PUBLICID)]
991     HRESULT publicId([retval, out] VARIANT *id1);
992
993     [propget, id(DISPID_DOM_ENTITY_SYSTEMID)]
994     HRESULT systemId([retval, out] VARIANT *id1);
995
996     [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)]
997     HRESULT notationName([retval, out] BSTR *p);
998 }
999
1000 [
1001 local,
1002 object,
1003 dual,
1004 oleautomation,
1005 uuid (2933BF8E-7B36-11d2-B20E-00C04F983E60)
1006 ]
1007 interface IXMLDOMEntityReference : IXMLDOMNode 
1008 {
1009 }
1010
1011 [
1012 local,
1013 object,
1014 dual,
1015 oleautomation,
1016 uuid (2933BF8F-7B36-11d2-B20E-00C04F983E60)
1017 ]
1018 interface IXMLDOMImplementation : IDispatch
1019 {
1020     [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)]
1021     HRESULT hasFeature(
1022         [in] BSTR feature,
1023         [in] BSTR version,
1024         [retval, out] VARIANT_BOOL *pbool);
1025 }
1026
1027 [
1028 local,
1029 object,
1030 dual,
1031 oleautomation,
1032 uuid (3efaa425-272f-11d2-836f-0000f87a7782)
1033 ]
1034 interface IXTLRuntime : IXMLDOMNode
1035 {
1036     [id(DISPID_XTLRUNTIME_UNIQUEID)] 
1037     HRESULT uniqueID(
1038         [in]IXMLDOMNode *pNode, 
1039         [retval, out]LONG *pID);
1040
1041     [id(DISPID_XTLRUNTIME_DEPTH)]
1042     HRESULT depth(
1043         [in] IXMLDOMNode *pNode, 
1044         [retval, out]LONG * pDepth);
1045
1046     [id(DISPID_XTLRUNTIME_CHILDNUMBER)] 
1047     HRESULT childNumber(
1048         [in]IXMLDOMNode *pNode, 
1049         [retval, out] LONG *pNumber);
1050
1051     [id(DISPID_XTLRUNTIME_ANCESTORCHILDNUMBER)]
1052     HRESULT ancestorChildNumber(
1053         [in]BSTR bstr, 
1054         [in]IXMLDOMNode *pNode, 
1055         [retval, out]LONG *pNumber);
1056
1057     [id(DISPID_XTLRUNTIME_ABSOLUTECHILDNUMBER)]
1058     HRESULT absoluteChildNumber(
1059         [in]IXMLDOMNode *pNode, 
1060         [retval, out]LONG *pNumber);
1061
1062     [id(DISPID_XTLRUNTIME_FORMATINDEX)]
1063     HRESULT formatIndex(
1064         [in] LONG lIndex,
1065         [in] BSTR bstr, 
1066         [retval, out]BSTR *pbstr);
1067
1068     [id(DISPID_XTLRUNTIME_FORMATNUMBER)]
1069     HRESULT formatNumber(
1070         [in] double dblNumber, 
1071         [in] BSTR bstr, 
1072         [retval, out]BSTR *pbstr);
1073
1074     [id(DISPID_XTLRUNTIME_FORMATDATE)]
1075     HRESULT formatDate(
1076         [in] VARIANT var1, 
1077         [in] BSTR bstr, 
1078         [optional, in] VARIANT var2,
1079         [retval, out]BSTR *pbstr);
1080
1081     [id(DISPID_XTLRUNTIME_FORMATTIME)]
1082     HRESULT formatTime(
1083         [in] VARIANT var1, 
1084         [in] BSTR bstr, 
1085         [optional, in] VARIANT var2,
1086         [retval, out]BSTR *pbstr);
1087
1088 }
1089
1090 [
1091     uuid(3efaa427-272f-11d2-836f-0000f87a7782)
1092 ]
1093 dispinterface XMLDOMDocumentEvents 
1094 {
1095     properties:
1096     methods:
1097     [id (DISPID_XMLDOMEVENT_ONDATAAVAILABLE)]  
1098     HRESULT ondataavailable();
1099  
1100     [id (DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)] 
1101     HRESULT onreadystatechange();
1102 }
1103
1104 [
1105 local,
1106 object,
1107 dual,
1108 oleautomation,
1109 uuid (2933BF92-7B36-11d2-B20E-00C04F983E60)
1110 ]
1111 interface IXSLProcessor : IDispatch
1112 {
1113     [propput, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
1114     HRESULT input([in] VARIANT var);
1115
1116     [propget, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
1117     HRESULT input([retval, out] VARIANT *var);
1118
1119     [propget, id(DISPID_XMLDOM_PROCESSOR_XSLTEMPLATE)]
1120     HRESULT ownerTemplate([retval, out] IXSLTemplate **ppTemplate);
1121
1122     [id(DISPID_XMLDOM_PROCESSOR_SETSTARTMODE)]
1123     HRESULT setStartMode(
1124         [in] BSTR p, 
1125         [in, defaultvalue("")] BSTR uri);
1126
1127     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODE)]
1128     HRESULT startMode([retval, out] BSTR *p);
1129
1130     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODEURI)]
1131     HRESULT startModeURI([retval, out] BSTR *uri);
1132
1133     [propput, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
1134     HRESULT output([in] VARIANT var);
1135
1136     [propget, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
1137     HRESULT output([retval, out] VARIANT *var);
1138
1139     [id(DISPID_XMLDOM_PROCESSOR_TRANSFORM)]
1140     HRESULT transform(
1141         [retval, out] VARIANT_BOOL *pbool);
1142
1143     [id(DISPID_XMLDOM_PROCESSOR_RESET)]
1144     HRESULT reset();
1145
1146     [propget, id(DISPID_XMLDOM_PROCESSOR_READYSTATE)]
1147     HRESULT readyState([retval, out] LONG *pstate);
1148
1149     [id(DISPID_XMLDOM_PROCESSOR_ADDPARAMETER)]
1150     HRESULT addParameter(
1151         [in] BSTR p, 
1152         [in] VARIANT var, 
1153         [in, defaultvalue("")] BSTR uri);
1154
1155     [id(DISPID_XMLDOM_PROCESSOR_ADDOBJECT)]
1156     HRESULT addObject(
1157         [in] IDispatch* obj, 
1158         [in] BSTR uri);
1159
1160     [propget, id(DISPID_XMLDOM_PROCESSOR_STYLESHEET)]
1161     HRESULT stylesheet([retval, out] IXMLDOMNode **node);
1162
1163
1164 [
1165 local,
1166 object,
1167 dual,
1168 oleautomation,
1169 uuid (2933BF93-7B36-11d2-B20E-00C04F983E60)
1170 ]
1171 interface IXSLTemplate : IDispatch
1172 {
1173     [propputref, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
1174     HRESULT stylesheet([in] IXMLDOMNode *node);
1175
1176     [propget, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
1177     HRESULT stylesheet([retval, out] IXMLDOMNode **node);
1178
1179     [id(DISPID_XMLDOM_TEMPLATE_CREATEPROCESSOR)]
1180     HRESULT createProcessor(
1181         [retval, out] IXSLProcessor **ppProcessor);
1182
1183
1184 [
1185     object,
1186     uuid(ED8C108D-4349-11D2-91A4-00C04F7969E8),
1187     odl,
1188     dual,
1189     oleautomation,
1190     pointer_default(unique)
1191 ]
1192 interface IXMLHTTPRequest : IDispatch
1193 {
1194     [id(1)]
1195     HRESULT open([in] BSTR bstrMethod, [in] BSTR bstrUrl, [in, optional] VARIANT varAsync,
1196                  [in,optional] VARIANT username, [in,optional] VARIANT password);
1197
1198     [id(2)]
1199     HRESULT setRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue);
1200
1201     [id(3)]
1202     HRESULT getResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR * value);
1203
1204     [id(4)]
1205     HRESULT getAllResponseHeaders([out, retval] BSTR * pbstrHeaders);
1206
1207     [id(5)]
1208     HRESULT send([in, optional] VARIANT body);
1209
1210     [id(6)]
1211     HRESULT abort();
1212
1213     [propget, id(7)]
1214     HRESULT status([out, retval] LONG *pStatus);
1215
1216     [propget, id(8)]
1217     HRESULT statusText([out, retval] BSTR *pStatus);
1218
1219     [propget, id(9)]
1220     HRESULT responseXML([out, retval] IDispatch **pBody);
1221
1222     [propget, id(10)]
1223     HRESULT responseText([out, retval] BSTR *pBody);
1224
1225     [propget, id(11)]
1226     HRESULT responseBody([out, retval] VARIANT *pBody);
1227
1228     [propget, id(12)]
1229     HRESULT responseStream([out, retval] VARIANT *pBody);
1230
1231     [propget, id(13)]
1232     HRESULT readyState([out, retval] LONG *pState);
1233
1234     [propput, id(14)]
1235     HRESULT onreadystatechange([in] IDispatch *pReadyStateSink);
1236 };
1237
1238 [
1239 local,
1240 object,
1241 dual,
1242 oleautomation,
1243 uuid (3efaa426-272f-11d2-836f-0000f87a7782)
1244 ]
1245 interface IXMLDOMParseError : IDispatch
1246 {
1247     [propget, id(DISPID_VALUE)]
1248     HRESULT errorCode([retval, out] LONG *errCode);
1249
1250     [propget, id(DISPID_DOM_ERROR_URL)]
1251     HRESULT url([retval, out] BSTR *p);
1252
1253     [propget, id(DISPID_DOM_ERROR_REASON)]
1254     HRESULT reason([retval, out] BSTR *p);
1255
1256     [propget, id(DISPID_DOM_ERROR_SRCTEXT)]
1257     HRESULT srcText([retval, out] BSTR *p);
1258
1259     [propget, id(DISPID_DOM_ERROR_LINE)]
1260     HRESULT line([retval, out] LONG *lineNo);
1261
1262     [propget, id(DISPID_DOM_ERROR_LINEPOS)]
1263     HRESULT linepos([retval, out] LONG * linePos);
1264
1265     [propget, id(DISPID_DOM_ERROR_FILEPOS)]
1266     HRESULT filepos([retval, out] LONG * filePos);
1267 }
1268
1269 [
1270     uuid(F6D90F11-9C73-11D3-B32E-00C04F990BB4)
1271 ]
1272 coclass DOMDocument
1273 {
1274     [default] interface IXMLDOMDocument2;
1275     [default, source] dispinterface XMLDOMDocumentEvents;
1276 }
1277
1278 [
1279     uuid(f5078f1b-c551-11d3-89b9-0000f81fe221)
1280 ]
1281 coclass DOMDocument26
1282 {
1283     [default] interface IXMLDOMDocument2;
1284     [default, source] dispinterface XMLDOMDocumentEvents;
1285 }
1286
1287 [
1288     uuid(f5078f32-c551-11d3-89b9-0000f81fe221)
1289 ]
1290 coclass DOMDocument30
1291 {
1292     [default] interface IXMLDOMDocument2;
1293     [default, source] dispinterface XMLDOMDocumentEvents;
1294 }
1295
1296 [
1297     uuid(88d969c0-f192-11d4-a65f-0040963251e5)
1298 ]
1299 coclass DOMDocument40
1300 {
1301     [default] interface IXMLDOMDocument2;
1302     [default, source] dispinterface XMLDOMDocumentEvents;
1303 }
1304
1305 [
1306     uuid(F6D90F12-9C73-11D3-B32E-00C04F990BB4)
1307 ]
1308 coclass FreeThreadedDOMDocument
1309 {
1310     [default] interface IXMLDOMDocument2;
1311     [default, source] dispinterface XMLDOMDocumentEvents;
1312 }
1313
1314 [
1315     uuid(f5078f1c-c551-11d3-89b9-0000f81fe221)
1316 ]
1317 coclass FreeThreadedDOMDocument26
1318 {
1319     [default] interface IXMLDOMDocument2;
1320     [default, source] dispinterface XMLDOMDocumentEvents;
1321 }
1322
1323 [
1324     uuid(f5078f33-c551-11d3-89b9-0000f81fe221)
1325 ]
1326 coclass FreeThreadedDOMDocument30
1327 {
1328     [default] interface IXMLDOMDocument2;
1329     [default, source] dispinterface XMLDOMDocumentEvents;
1330 }
1331
1332 [
1333     uuid(88d969c1-f192-11d4-a65f-0040963251e5)
1334 ]
1335 coclass FreeThreadedDOMDocument40
1336 {
1337     [default] interface IXMLDOMDocument2;
1338     [default, source] dispinterface XMLDOMDocumentEvents;
1339 }
1340
1341 [
1342     uuid(f5078f1e-c551-11d3-89b9-0000f81fe221)
1343 ]
1344 coclass XMLHTTP26
1345 {
1346     [default] interface IXMLHTTPRequest;
1347 }
1348
1349 [
1350     uuid(f5078f35-c551-11d3-89b9-0000f81fe221)
1351 ]
1352 coclass XMLHTTP30
1353 {
1354     [default] interface IXMLHTTPRequest;
1355 }
1356
1357 [
1358     uuid(88d969c5-f192-11d4-a65f-0040963251e5)
1359 ]
1360 coclass XMLHTTP40
1361 {
1362     [default] interface IXMLHTTPRequest;
1363 }
1364
1365 [
1366     uuid(88d96a0a-f192-11d4-a65f-0040963251e5)
1367 ]
1368 coclass XMLHTTP60
1369 {
1370     [default] interface IXMLHTTPRequest;
1371 }
1372
1373 [
1374     uuid(373984c9-b845-449b-91e7-45ac83036ade)
1375 ]
1376 coclass XMLSchemaCache
1377 {
1378     [default] interface IXMLDOMSchemaCollection;
1379 }
1380
1381 [
1382     uuid(f5078f1d-c551-11d3-89b9-0000f81fe221)
1383 ]
1384 coclass XMLSchemaCache26
1385 {
1386     [default] interface IXMLDOMSchemaCollection;
1387 }
1388
1389 [
1390     uuid(f5078f34-c551-11d3-89b9-0000f81fe221)
1391 ]
1392 coclass XMLSchemaCache30
1393 {
1394     [default] interface IXMLDOMSchemaCollection;
1395 }
1396
1397 [
1398     uuid(88d969c2-f192-11d4-a65f-0040963251e5)
1399 ]
1400 coclass XMLSchemaCache40
1401 {
1402     [default] interface IXMLDOMSchemaCollection2;
1403 };
1404
1405 [
1406     uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
1407 ]
1408 coclass XSLTemplate
1409 {
1410     [default] interface IXSLTemplate;
1411 }
1412
1413 [
1414     uuid(f5078f21-c551-11d3-89b9-0000f81fe221)
1415 ]
1416 coclass XSLTemplate26
1417 {
1418     [default] interface IXSLTemplate;
1419 }
1420
1421 [
1422     uuid(f5078f36-c551-11d3-89b9-0000f81fe221)
1423 ]
1424 coclass XSLTemplate30
1425 {
1426     [default] interface IXSLTemplate;
1427 }
1428
1429 /*
1430  * Sax Interfaces
1431  */
1432 [
1433     object,
1434     local,
1435     uuid(f078abe1-45d2-4832-91ea-4466ce2f25c9)
1436 ]
1437 interface ISAXAttributes : IUnknown
1438 {
1439     HRESULT getLength(
1440         [out, retval] int *length);
1441
1442     HRESULT getURI(
1443         [in] int nIndex,
1444         [out] const WCHAR **pUrl,
1445         [out] int *pUriSize);
1446
1447     HRESULT getLocalName(
1448         [in] int nIndex,
1449         [out] const WCHAR **pLocalName,
1450         [out] int *pLocalNameLength);
1451
1452     HRESULT getQName(
1453         [in] int nIndex,
1454         [out] const WCHAR **pQName,
1455         [out] int *pQNameLength);
1456
1457     HRESULT getName(
1458         [in] int nIndex,
1459         [out] const WCHAR **pUri,
1460         [out] int * pUriLength,
1461         [out] const WCHAR ** pLocalName,
1462         [out] int * pLocalNameSize,
1463         [out] const WCHAR ** pQName,
1464         [out] int * pQNameLength);
1465
1466     HRESULT getIndexFromName(
1467         [in] const WCHAR * pUri,
1468         [in] int cUriLength,
1469         [in] const WCHAR * pLocalName,
1470         [in] int cocalNameLength,
1471         [out, retval] int * index);
1472
1473     HRESULT getIndexFromQName(
1474         [in] const WCHAR * pQName,
1475         [in] int nQNameLength,
1476         [out, retval] int * index);
1477
1478     HRESULT getType(
1479         [in] int nIndex,
1480         [out] const WCHAR ** pType,
1481         [out] int * pTypeLength);
1482
1483     HRESULT getTypeFromName(
1484         [in] const WCHAR * pUri,
1485         [in] int nUri,
1486         [in] const WCHAR * pLocalName,
1487         [in] int nLocalName,
1488         [out] const WCHAR ** pType,
1489         [out] int * nType);
1490
1491     HRESULT getTypeFromQName(
1492         [in] const WCHAR * pQName,
1493         [in] int nQName,
1494         [out] const WCHAR ** pType,
1495         [out] int * nType);
1496
1497     HRESULT getValue(
1498         [in] int nIndex,
1499         [out] const WCHAR ** pValue,
1500         [out] int * nValue);
1501
1502     HRESULT getValueFromName(
1503         [in] const WCHAR * pUri,
1504         [in] int nUri,
1505         [in] const WCHAR * pLocalName,
1506         [in] int nLocalName,
1507         [out] const WCHAR ** pValue,
1508         [out] int * nValue);
1509
1510     HRESULT getValueFromQName(
1511         [in] const WCHAR * pQName,
1512         [in] int nQName,
1513         [out] const WCHAR ** pValue,
1514         [out] int * nValue);
1515 };
1516
1517 [
1518     object,
1519     local,
1520     uuid(1545cdfa-9e4e-4497-a8a4-2bf7d0112c44)
1521 ]
1522 interface ISAXContentHandler : IUnknown
1523 {
1524     HRESULT putDocumentLocator(
1525         [in] ISAXLocator * pLocator);
1526
1527     HRESULT startDocument();
1528
1529     HRESULT endDocument();
1530
1531     HRESULT startPrefixMapping(
1532         [in] const WCHAR * pPrefix,
1533         [in] int nPrefix,
1534         [in] const WCHAR * pUri,
1535         [in] int nUri);
1536
1537     HRESULT endPrefixMapping(
1538         [in] const WCHAR * pPrefix,
1539         [in] int nPrefix);
1540
1541     HRESULT startElement(
1542         [in] const WCHAR * pNamespaceUri,
1543         [in] int nNamespaceUri,
1544         [in] const WCHAR * pLocalName,
1545         [in] int nLocalName,
1546         [in] const WCHAR * pQName,
1547         [in] int nQName,
1548         [in] ISAXAttributes * pAttr);
1549
1550     HRESULT endElement(
1551         [in] const WCHAR * pNamespaceUri,
1552         [in] int nNamespaceUri,
1553         [in] const WCHAR * pLocalName,
1554         [in] int nLocalName,
1555         [in] const WCHAR * pQName,
1556         [in] int nQName);
1557
1558     HRESULT characters(
1559         [in] const WCHAR * pChars,
1560         [in] int nChars);
1561
1562     HRESULT ignorableWhitespace(
1563         [in] const WCHAR * pChars,
1564         [in] int nChars);
1565
1566     HRESULT processingInstruction(
1567         [in] const WCHAR * pTarget,
1568         [in] int nTarget,
1569         [in] const WCHAR * pData,
1570         [in] int nData);
1571
1572     HRESULT skippedEntity(
1573         [in] const WCHAR * pName,
1574         [in] int nName);
1575 };
1576
1577 [
1578     object,
1579     local,
1580     uuid(862629ac-771a-47b2-8337-4e6843c1be90)
1581 ]
1582 interface ISAXDeclHandler : IUnknown
1583 {
1584     HRESULT elementDecl(
1585         [in] const WCHAR * pName,
1586         [in] int nName,
1587         [in] const WCHAR * pModel,
1588         [in] int nModel);
1589
1590     HRESULT attributeDecl(
1591         [in] const WCHAR * pElementName,
1592         [in] int nElementName,
1593         [in] const WCHAR * pAttributeName,
1594         [in] int nAttributeName,
1595         [in] const WCHAR * pType,
1596         [in] int nType,
1597         [in] const WCHAR * pValueDefault,
1598         [in] int nValueDefault,
1599         [in] const WCHAR * pValue,
1600         [in] int nValue);
1601
1602     HRESULT internalEntityDecl(
1603         [in] const WCHAR * pName,
1604         [in] int nName,
1605         [in] const WCHAR * pValue,
1606         [in] int nValue);
1607
1608     HRESULT externalEntityDecl(
1609         [in] const WCHAR * pName,
1610         [in] int nName,
1611         [in] const WCHAR * pPublicId,
1612         [in] int nPublicId,
1613         [in] const WCHAR * pSystemId,
1614         [in] int nSystemId);
1615 };
1616
1617 [
1618     object,
1619     local,
1620     uuid(e15c1baf-afb3-4d60-8c36-19a8c45defed)
1621 ]
1622 interface ISAXDTDHandler : IUnknown
1623 {
1624     HRESULT notationDecl(
1625         [in] const WCHAR * pName,
1626         [in] int nName,
1627         [in] const WCHAR * pPublicId,
1628         [in] int nPublicId,
1629         [in] const WCHAR * pSystemId,
1630         [in] int nSystemId);
1631
1632     HRESULT unparsedEntityDecl(
1633         [in] const WCHAR * pName,
1634         [in] int nName,
1635         [in] const WCHAR * pPublicId,
1636         [in] int nPublicId,
1637         [in] const WCHAR * pSystemId,
1638         [in] int nSystemId,
1639         [in] const WCHAR * pNotationName,
1640         [in] int nNotationName);
1641 };
1642
1643 [
1644     object,
1645     local,
1646     uuid(99bca7bd-e8c4-4d5f-a0cf-6d907901ff07),
1647 ]
1648 interface ISAXEntityResolver : IUnknown
1649 {
1650     HRESULT resolveEntity(
1651         [in] const WCHAR * pPublicId,
1652         [in] const WCHAR * pSystemId,
1653         [out, retval] VARIANT * ret);
1654 };
1655
1656 [
1657     object,
1658     local,
1659     uuid(a60511c4-ccf5-479e-98a3-dc8dc545b7d0)
1660 ]
1661 interface ISAXErrorHandler : IUnknown
1662 {
1663     HRESULT error(
1664         [in] ISAXLocator * pLocator,
1665         [in] const WCHAR * pErrorMessage,
1666         [in] HRESULT hrErrorCode);
1667
1668     HRESULT fatalError(
1669         [in] ISAXLocator * pLocator,
1670         [in] const WCHAR * pErrorMessage,
1671         [in] HRESULT hrErrorCode);
1672
1673     HRESULT ignorableWarning(
1674         [in] ISAXLocator * pLocator,
1675         [in] const WCHAR * pErrorMessage,
1676         [in] HRESULT hrErrorCode);
1677 };
1678
1679 [
1680     object,
1681     local,
1682     uuid(7f85d5f5-47a8-4497-bda5-84ba04819ea6)
1683 ]
1684 interface ISAXLexicalHandler : IUnknown
1685 {
1686     HRESULT startDTD(
1687         [in] const WCHAR * pName,
1688         [in] int nName,
1689         [in] const WCHAR * pPublicId,
1690         [in] int nPublicId,
1691         [in] const WCHAR * pSystemId,
1692         [in] int nSystemId);
1693
1694     HRESULT endDTD();
1695
1696     HRESULT startEntity(
1697         [in] const WCHAR * pName,
1698         [in] int nName);
1699
1700     HRESULT endEntity(
1701         [in] const WCHAR * pName,
1702         [in] int nName);
1703
1704     HRESULT startCDATA();
1705
1706     HRESULT endCDATA();
1707
1708     HRESULT comment(
1709         [in] const WCHAR * pChars,
1710         [in] int nChars);
1711 };
1712
1713 [
1714     object,
1715     local,
1716     uuid(9b7e472a-0de4-4640-bff3-84d38a051c31)
1717 ]
1718 interface ISAXLocator : IUnknown
1719 {
1720     HRESULT getColumnNumber(
1721         [out, retval] int * nColumn);
1722
1723     HRESULT getLineNumber(
1724         [out, retval] int * nLine);
1725
1726     HRESULT getPublicId(
1727         [out, retval] const WCHAR ** publicId);
1728
1729     HRESULT getSystemId(
1730         [out, retval] const WCHAR ** systemId);
1731 };
1732
1733 [
1734     local,
1735     object,
1736     uuid(70409222-ca09-4475-acb8-40312fe8d145)
1737 ]
1738 interface ISAXXMLFilter : ISAXXMLReader
1739 {
1740     HRESULT getParent(
1741         [out, retval] ISAXXMLReader ** pReader);
1742     HRESULT putParent(
1743         [in] ISAXXMLReader * reader);
1744 };
1745
1746 [
1747 local,
1748 object,
1749 uuid (a4f96ed0-f829-476e-81c0-cdc7bd2a0802)
1750 ]
1751 interface ISAXXMLReader : IUnknown
1752 {
1753     HRESULT getFeature(
1754         [in] const WCHAR * pFeature,
1755         [out, retval] VARIANT_BOOL * pValue);
1756     HRESULT putFeature(
1757         [in] const WCHAR * pFeature,
1758         [in] VARIANT_BOOL vfValue);
1759
1760     HRESULT getProperty(
1761         [in] const WCHAR * pProp,
1762         [out, retval] VARIANT * pValue);
1763     HRESULT putProperty(
1764         [in] const WCHAR * pProp,
1765         [in] VARIANT value);
1766
1767     HRESULT getEntityResolver(
1768         [out, retval] ISAXEntityResolver ** ppEntityResolver);
1769     HRESULT putEntityResolver(
1770         [in] ISAXEntityResolver * pEntityResolver);
1771
1772     HRESULT getContentHandler(
1773         [out, retval] ISAXContentHandler ** pContentHandler);
1774     HRESULT putContentHandler(
1775         [in] ISAXContentHandler * contentHandler);
1776
1777     HRESULT getDTDHandler(
1778         [out, retval] ISAXDTDHandler ** pDTDHandler);
1779     HRESULT putDTDHandler(
1780         [in] ISAXDTDHandler * pDTDHandler);
1781
1782     HRESULT getErrorHandler(
1783         [out, retval] ISAXErrorHandler ** pErrorHandler);
1784     HRESULT putErrorHandler(
1785         [in] ISAXErrorHandler * errorHandler);
1786
1787     HRESULT getBaseURL(
1788         [out, retval] const WCHAR ** pBaseUrl);
1789     HRESULT putBaseURL(
1790         [in] const WCHAR * pBaseUrl);
1791
1792     HRESULT getSecureBaseURL(
1793         [out, retval] const WCHAR ** pSecureBaseUrl);
1794     HRESULT putSecureBaseURL(
1795         [in] const WCHAR * secureBaseUrl);
1796
1797     HRESULT parse(
1798         [in] VARIANT varInput);
1799     HRESULT parseURL(
1800         [in] const WCHAR * url);
1801 }
1802
1803 [
1804     object,
1805     dual,
1806     oleautomation,
1807     uuid(10dc0586-132b-4cac-8bb3-db00ac8b7ee0)
1808 ]
1809 interface IVBSAXAttributes : IDispatch
1810 {
1811     [propget, id(DISPID_SAX_ATTRIBUTES_LENGTH)]
1812     HRESULT length( [out, retval] int * nLength);
1813
1814     [id(DISPID_SAX_ATTRIBUTES_GETURI)]
1815     HRESULT getURI( [in] int nIndex, [out, retval] BSTR * uri);
1816
1817     [id(DISPID_SAX_ATTRIBUTES_GETLOCALNAME)]
1818     HRESULT getLocalName( [in] int nIndex, [out, retval] BSTR * localName);
1819
1820     [id(DISPID_SAX_ATTRIBUTES_GETQNAME)]
1821     HRESULT getQName( [in] int nIndex, [out, retval] BSTR * QName);
1822
1823     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMNAME)]
1824     HRESULT getIndexFromName( [in] BSTR uri,
1825                               [in] BSTR localName, [out, retval] int * nIndex);
1826
1827     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMQNAME)]
1828     HRESULT getIndexFromQName( [in] BSTR QName, [out, retval] int * nIndex);
1829
1830     [id(DISPID_SAX_ATTRIBUTES_GETTYPE)]
1831     HRESULT getType( [in] int nIndex, [out, retval] BSTR * type);
1832
1833     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMNAME)]
1834     HRESULT getTypeFromName( [in] BSTR uri, [in] BSTR localName,
1835                              [out, retval] BSTR * type);
1836
1837     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMQNAME)]
1838     HRESULT getTypeFromQName( [in] BSTR QName, [out, retval] BSTR * type);
1839
1840     [id(DISPID_SAX_ATTRIBUTES_GETVALUE)]
1841     HRESULT getValue( [in] int nIndex, [out, retval] BSTR * value);
1842
1843     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMNAME)]
1844     HRESULT getValueFromName( [in] BSTR uri,
1845                               [in] BSTR localName,
1846                               [out, retval] BSTR * value);
1847
1848     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMQNAME)]
1849     HRESULT getValueFromQName( [in] BSTR QName, [out, retval] BSTR * value);
1850 };
1851
1852 [
1853     object,
1854     dual,
1855     oleautomation,
1856     uuid(2ed7290a-4dd5-4b46-bb26-4e4155e77faa)
1857 ]
1858 interface IVBSAXContentHandler : IDispatch
1859 {
1860     [propputref, id(DISPID_SAX_CONTENTHANDLER_DOCUMENTLOCATOR)]
1861     HRESULT documentLocator( [in] IVBSAXLocator * oLocator);
1862
1863     [id(DISPID_SAX_CONTENTHANDLER_STARTDOCUMENT)]
1864     HRESULT startDocument();
1865
1866     [id(DISPID_SAX_CONTENTHANDLER_ENDDOCUMENT)]
1867     HRESULT endDocument();
1868
1869     [id(DISPID_SAX_CONTENTHANDLER_STARTPREFIXMAPPING)]
1870     HRESULT startPrefixMapping( [in, out] BSTR * prefix, [in, out] BSTR * uri);
1871
1872     [id(DISPID_SAX_CONTENTHANDLER_ENDPREFIXMAPPING)]
1873     HRESULT endPrefixMapping( [in, out] BSTR * prefix);
1874
1875     [id(DISPID_SAX_CONTENTHANDLER_STARTELEMENT)]
1876     HRESULT startElement( [in, out] BSTR * namespaceURI,
1877                           [in, out] BSTR * localName,
1878                           [in, out] BSTR * QName,
1879                           [in] IVBSAXAttributes * oAttributes);
1880
1881     [id(DISPID_SAX_CONTENTHANDLER_ENDELEMENT)]
1882     HRESULT endElement( [in, out] BSTR * namespaceURI,
1883                         [in, out] BSTR * localName, [in, out] BSTR * strQName);
1884
1885     [id(DISPID_SAX_CONTENTHANDLER_CHARACTERS)]
1886     HRESULT characters( [in, out] BSTR * chars);
1887
1888     [id(DISPID_SAX_CONTENTHANDLER_IGNORABLEWHITESPACE)]
1889     HRESULT ignorableWhitespace( [in, out] BSTR * chars);
1890
1891     [id(DISPID_SAX_CONTENTHANDLER_PROCESSINGINSTRUCTION)]
1892     HRESULT processingInstruction( [in, out] BSTR * target,
1893                                    [in, out] BSTR * data);
1894
1895     [id(DISPID_SAX_CONTENTHANDLER_SKIPPEDENTITY)]
1896     HRESULT skippedEntity( [in, out] BSTR * name);
1897 };
1898
1899 [
1900     object,
1901     dual,
1902     oleautomation,
1903     uuid(e8917260-7579-4be1-b5dd-7afbfa6f077b)
1904 ]
1905 interface IVBSAXDeclHandler : IDispatch
1906 {
1907     [id(DISPID_SAX_DECLHANDLER_ELEMENTDECL)]
1908     HRESULT elementDecl(
1909         [in, out] BSTR * name,
1910         [in, out] BSTR * model);
1911
1912     [id(DISPID_SAX_DECLHANDLER_ATTRIBUTEDECL)]
1913     HRESULT attributeDecl(
1914         [in, out] BSTR * elementName,
1915         [in, out] BSTR * attributeName,
1916         [in, out] BSTR * type,
1917         [in, out] BSTR * valueDefault,
1918         [in, out] BSTR * value);
1919
1920     [id(DISPID_SAX_DECLHANDLER_INTERNALENTITYDECL)]
1921     HRESULT internalEntityDecl(
1922         [in, out] BSTR * name,
1923         [in, out] BSTR * value);
1924
1925     [id(DISPID_SAX_DECLHANDLER_EXTERNALENTITYDECL)]
1926     HRESULT externalEntityDecl(
1927         [in, out] BSTR * name,
1928         [in, out] BSTR * publicId,
1929         [in, out] BSTR * systemId);
1930 };
1931
1932 [
1933     object,
1934     dual,
1935     oleautomation,
1936     uuid(24fb3297-302d-4620-ba39-3a732d850558)
1937 ]
1938 interface IVBSAXDTDHandler : IDispatch
1939 {
1940     [id(DISPID_SAX_DTDHANDLER_NOTATIONDECL)]
1941     HRESULT notationDecl(
1942         [in, out] BSTR * name,
1943         [in, out] BSTR * publicId,
1944         [in, out] BSTR * systemId);
1945
1946     [id(DISPID_SAX_DTDHANDLER_UNPARSEDENTITYDECL)]
1947     HRESULT unparsedEntityDecl(
1948         [in, out] BSTR * name,
1949         [in, out] BSTR * publicId,
1950         [in, out] BSTR * systemId,
1951         [in, out] BSTR * notationName);
1952 };
1953
1954 [
1955     object,
1956     dual,
1957     oleautomation,
1958     uuid(0c05d096-f45b-4aca-ad1a-aa0bc25518dc)
1959 ]
1960 interface IVBSAXEntityResolver : IDispatch
1961 {
1962     [id(DISPID_SAX_ENTITYRESOLVER_RESOLVEENTITY)]
1963     HRESULT resolveEntity(
1964         [in, out] BSTR * publicId,
1965         [in, out] BSTR * systemId,
1966         [out, retval] VARIANT * ret);
1967 };
1968
1969 [
1970     object,
1971     dual,
1972     oleautomation,
1973     uuid(d963d3fe-173c-4862-9095-b92f66995f52)
1974 ]
1975 interface IVBSAXErrorHandler : IDispatch
1976 {
1977     [id(DISPID_SAX_ERRORHANDLER_ERROR)]
1978     HRESULT error(
1979             [in] IVBSAXLocator * locator,
1980             [in, out] BSTR * errorMessage,
1981             [in] LONG errorCode);
1982
1983     [id(DISPID_SAX_ERRORHANDLER_FATALERROR)]
1984     HRESULT fatalError(
1985             [in] IVBSAXLocator * locator,
1986             [in, out] BSTR * errorMessage,
1987             [in] LONG errorCode);
1988
1989     [id(DISPID_SAX_ERRORHANDLER_IGNORABLEWARNING)]
1990     HRESULT ignorableWarning(
1991             [in] IVBSAXLocator * locator,
1992             [in, out] BSTR * errorMessage,
1993             [in] LONG errorCode);
1994 };
1995
1996 [
1997     object,
1998     dual,
1999     oleautomation,
2000     uuid(032aac35-8c0e-4d9d-979f-e3b702935576)
2001 ]
2002 interface IVBSAXLexicalHandler : IDispatch
2003 {
2004     [id(DISPID_SAX_LEXICALHANDLER_STARTDTD)]
2005     HRESULT startDTD(
2006         [in, out] BSTR * name,
2007         [in, out] BSTR * publicId,
2008         [in, out] BSTR * systemId);
2009     [id(DISPID_SAX_LEXICALHANDLER_ENDDTD)]
2010     HRESULT endDTD();
2011
2012     [id(DISPID_SAX_LEXICALHANDLER_STARTENTITY)]
2013     HRESULT startEntity([in, out] BSTR * name);
2014     [id(DISPID_SAX_LEXICALHANDLER_ENDENTITY)]
2015     HRESULT endEntity([in, out] BSTR * name);
2016
2017     [id(DISPID_SAX_LEXICALHANDLER_STARTCDATA)]
2018     HRESULT startCDATA();
2019     [id(DISPID_SAX_LEXICALHANDLER_ENDCDATA)]
2020     HRESULT endCDATA();
2021
2022     [id(DISPID_SAX_LEXICALHANDLER_COMMENT)]
2023     HRESULT comment( [in, out] BSTR * chars);
2024 };
2025
2026 [
2027     object,
2028     dual,
2029     oleautomation,
2030     uuid(796e7ac5-5aa2-4eff-acad-3faaf01a3288)
2031 ]
2032 interface IVBSAXLocator : IDispatch
2033 {
2034     [propget, id(DISPID_SAX_LOCATOR_COLUMNNUMBER)]
2035     HRESULT columnNumber( [out, retval] int * column);
2036
2037     [propget, id(DISPID_SAX_LOCATOR_LINENUMBER)]
2038     HRESULT lineNumber( [out, retval] int * line);
2039
2040     [propget, id(DISPID_SAX_LOCATOR_PUBLICID)]
2041     HRESULT publicId( [out, retval] BSTR * publicId);
2042
2043     [propget, id(DISPID_SAX_LOCATOR_SYSTEMID)]
2044     HRESULT systemId( [out, retval] BSTR * systemId);
2045 };
2046
2047 [
2048     object,
2049     dual,
2050     oleautomation,
2051     uuid(1299eb1b-5b88-433e-82de-82ca75ad4e04)
2052 ]
2053 interface IVBSAXXMLFilter : IDispatch
2054 {
2055     [propget, id(DISPID_SAX_XMLFILTER_PARENT)]
2056     HRESULT parent( [out, retval] IVBSAXXMLReader ** reader);
2057     [propputref, id(DISPID_SAX_XMLFILTER_PARENT)]
2058     HRESULT parent( [in] IVBSAXXMLReader * reader);
2059
2060 };
2061
2062 [
2063     dual,
2064     oleautomation,
2065     object,
2066     uuid (8c033caa-6cd6-4f73-b728-4531af74945f)
2067 ]
2068 interface IVBSAXXMLReader : IDispatch
2069 {
2070     [id(DISPID_SAX_XMLREADER_GETFEATURE)]
2071     HRESULT getFeature( [in] const WCHAR * pFeature,
2072                         [out, retval] VARIANT_BOOL * pValue);
2073     [id(DISPID_SAX_XMLREADER_PUTFEATURE)]
2074     HRESULT putFeature( [in] const WCHAR * pFeature,
2075                         [in] VARIANT_BOOL vfValue);
2076
2077     [id(DISPID_SAX_XMLREADER_GETPROPERTY)]
2078     HRESULT getProperty( [in] const WCHAR * pProp,
2079                          [out, retval] VARIANT * pValue);
2080     [id(DISPID_SAX_XMLREADER_PUTPROPERTY)]
2081     HRESULT putProperty( [in] const WCHAR * pProp, [in] VARIANT value);
2082
2083     [propget, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
2084     HRESULT entityResolver(
2085                     [out, retval] IVBSAXEntityResolver ** ppEntityResolver);
2086     [propputref, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
2087     HRESULT entityResolver( [in] IVBSAXEntityResolver * pEntityResolver);
2088
2089     [propget, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
2090     HRESULT contentHandler(
2091                         [out, retval] IVBSAXContentHandler ** pContentHandler);
2092     [propputref, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
2093     HRESULT contentHandler([in] IVBSAXContentHandler * contentHandler);
2094
2095     [propget, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
2096     HRESULT dtdHandler([out, retval] IVBSAXDTDHandler ** pDTDHandler);
2097     [propputref, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
2098     HRESULT dtdHandler([in] IVBSAXDTDHandler * pDTDHandler);
2099
2100     [propget, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
2101     HRESULT errorHandler([out, retval] IVBSAXErrorHandler ** pErrorHandler);
2102     [propputref, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
2103     HRESULT errorHandler([in] IVBSAXErrorHandler * errorHandler);
2104
2105     [propget, id(DISPID_SAX_XMLREADER_BASEURL)]
2106     HRESULT baseURL([out, retval] const WCHAR ** pBaseUrl);
2107     [propput, id(DISPID_SAX_XMLREADER_BASEURL)]
2108     HRESULT baseURL([in] const WCHAR * pBaseUrl);
2109
2110     [propget, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
2111     HRESULT secureBaseURL([out, retval] const WCHAR ** pSecureBaseUrl);
2112     [propput, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
2113     HRESULT secureBaseURL([in] const WCHAR * secureBaseUrl);
2114
2115     [id(DISPID_SAX_XMLREADER_PARSE)]
2116     HRESULT parse( [in] VARIANT varInput);
2117     [id(DISPID_SAX_XMLREADER_PARSEURL)]
2118     HRESULT parseURL([in] const WCHAR * url);
2119 }
2120
2121 [
2122     object,
2123     dual,
2124     oleautomation,
2125     uuid(f10d27cc-3ec0-415c-8ed8-77ab1c5e7262)
2126 ]
2127 interface IMXAttributes : IDispatch
2128 {
2129     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTE)]
2130     HRESULT addAttribute(
2131         [in] BSTR uri,
2132         [in] BSTR localName,
2133         [in] BSTR QName,
2134         [in] BSTR type,
2135         [in] BSTR value);
2136
2137     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTEFROMINDEX)]
2138     HRESULT addAttributeFromIndex( [in] VARIANT atts,
2139                                    [in] int index);
2140
2141     [id(DISPID_MX_ATTRIBUTES_CLEAR)]
2142     HRESULT clear();
2143
2144     [id(DISPID_MX_ATTRIBUTES_REMOVEATTRIBUTE)]
2145     HRESULT removeAttribute( [in] int index);
2146
2147     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTE)]
2148     HRESULT setAttribute(
2149         [in] int index,
2150         [in] BSTR uri,
2151         [in] BSTR localName,
2152         [in] BSTR QName,
2153         [in] BSTR type,
2154         [in] BSTR value);
2155
2156     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTES)]
2157     HRESULT setAttributes( [in] VARIANT atts);
2158
2159     [id(DISPID_MX_ATTRIBUTES_SETLOCALNAME)]
2160     HRESULT setLocalName( [in] int index,
2161         [in] BSTR localName);
2162
2163     [id(DISPID_MX_ATTRIBUTES_SETQNAME)]
2164     HRESULT setQName(
2165         [in] int index,
2166         [in] BSTR QName);
2167
2168     [id(DISPID_MX_ATTRIBUTES_SETTYPE)]
2169     HRESULT setType( [in] int index, [in] BSTR type);
2170
2171     [id(DISPID_MX_ATTRIBUTES_SETURI)]
2172     HRESULT setURI( [in] int index,  [in] BSTR uri);
2173
2174     [id(DISPID_MX_ATTRIBUTES_SETVALUE)]
2175     HRESULT setValue([in] int index, [in] BSTR value);
2176 };
2177
2178 [
2179     object,
2180     dual,
2181     oleautomation,
2182     uuid(808f4e35-8d5a-4fbe-8466-33a41279ed30)
2183 ]
2184 interface IMXReaderControl : IDispatch
2185 {
2186     [id(DISPID_MX_READER_CONTROL_ABORT)]
2187     HRESULT abort();
2188
2189     [id(DISPID_MX_READER_CONTROL_RESUME)]
2190     HRESULT resume();
2191
2192     [id(DISPID_MX_READER_CONTROL_SUSPEND)]
2193     HRESULT suspend();
2194 };
2195
2196 [
2197     object,
2198     dual,
2199     oleautomation,
2200     uuid(4d7ff4ba-1565-4ea8-94e1-6e724a46f98d)
2201 ]
2202 interface IMXWriter :  IDispatch
2203 {
2204     [propput, id(DISPID_MX_WRITER_OUTPUT)]
2205     HRESULT output ( [in] VARIANT Destination);
2206     [propget, id(DISPID_MX_WRITER_OUTPUT)]
2207     HRESULT output ( [out, retval] VARIANT * Destination);
2208
2209     [propput, id(DISPID_MX_WRITER_ENCODING)]
2210     HRESULT encoding ([in] BSTR encoding);
2211     [propget, id(DISPID_MX_WRITER_ENCODING)]
2212     HRESULT encoding ([out, retval] BSTR * encoding);
2213
2214     [propput, id(DISPID_MX_WRITER_BYTEORDERMARK)]
2215     HRESULT byteOrderMark ([in] VARIANT_BOOL writeByteOrderMark);
2216     [propget, id(DISPID_MX_WRITER_BYTEORDERMARK)]
2217     HRESULT byteOrderMark ([out, retval] VARIANT_BOOL * writeByteOrderMark);
2218
2219     [propput, id(DISPID_MX_WRITER_INDENT)]
2220     HRESULT indent ([in] VARIANT_BOOL indentMode);
2221     [propget, id(DISPID_MX_WRITER_INDENT)]
2222     HRESULT indent ([out, retval] VARIANT_BOOL * indentMode);
2223
2224     [propput, id(DISPID_MX_WRITER_STANDALONE)]
2225     HRESULT standalone ([in] VARIANT_BOOL value);
2226     [propget, id(DISPID_MX_WRITER_STANDALONE)]
2227     HRESULT standalone ([out, retval] VARIANT_BOOL * value);
2228
2229     [propput, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
2230     HRESULT omitXMLDeclaration ([in] VARIANT_BOOL value);
2231     [propget, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
2232     HRESULT omitXMLDeclaration ([out, retval] VARIANT_BOOL * value);
2233
2234     [propput, id(DISPID_MX_WRITER_VERSION)]
2235     HRESULT version ([in] BSTR version);
2236     [propget, id(DISPID_MX_WRITER_VERSION)]
2237     HRESULT version ([out, retval] BSTR * version);
2238
2239     [propput, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
2240     HRESULT disableOutputEscaping([in] VARIANT_BOOL value);
2241     [propget, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
2242     HRESULT disableOutputEscaping([out, retval] VARIANT_BOOL * value);
2243
2244     [id(DISPID_MX_WRITER_FLUSH)]
2245     HRESULT flush();
2246 };
2247
2248 [
2249     local,
2250     object,
2251     uuid(50ea08b1-dd1b-4664-9a50-c2f40f4bd79a),
2252     oleautomation,
2253     dual
2254 ]
2255 interface ISchemaStringCollection : IDispatch
2256 {
2257     [id(DISPID_VALUE), propget]
2258     HRESULT item(
2259         [in] long index,
2260         [out,retval] BSTR* bstr);
2261
2262     [id(DISPID_SOM_LENGTH), propget]
2263     HRESULT length(
2264         [out,retval] long* length);
2265
2266     [id(DISPID_NEWENUM), hidden, restricted, propget]
2267     HRESULT _newEnum(
2268         [out,retval] IUnknown** ppunk);
2269 };
2270
2271 [
2272     local,
2273     object,
2274     uuid(50ea08b2-dd1b-4664-9a50-c2f40f4bd79a),
2275     oleautomation,
2276     dual
2277 ]
2278 interface ISchemaItemCollection : IDispatch
2279 {
2280     [id(DISPID_VALUE), propget]
2281     HRESULT item(
2282         [in] long index,
2283         [out,retval]ISchemaItem** item);
2284
2285     [id(DISPID_SOM_ITEMBYNAME)]
2286     HRESULT itemByName(
2287         [in] BSTR name,
2288         [out,retval] ISchemaItem** item);
2289
2290     [id(DISPID_SOM_ITEMBYQNAME)]
2291     HRESULT itemByQName(
2292         [in] BSTR name,
2293         [in] BSTR namespaceURI,
2294         [out,retval] ISchemaItem** item);
2295
2296     [id(DISPID_SOM_LENGTH), propget]
2297     HRESULT length(
2298         [out,retval]long* length);
2299
2300     [id(DISPID_NEWENUM), hidden, restricted, propget]
2301     HRESULT _newEnum(
2302         [out,retval]IUnknown** ppunk);
2303 };
2304
2305 [
2306     local,
2307     object,
2308     uuid(50ea08b3-dd1b-4664-9a50-c2f40f4bd79a),
2309     oleautomation,
2310     dual
2311 ]
2312 interface ISchemaItem : IDispatch
2313 {
2314     [id(DISPID_SOM_NAME), propget]
2315     HRESULT name(
2316         [out,retval] BSTR* name);
2317
2318     [id(DISPID_SOM_NAMESPACEURI), propget]
2319     HRESULT namespaceURI(
2320         [out,retval] BSTR* namespaceURI);
2321
2322     [id(DISPID_SOM_SCHEMA), propget]
2323     HRESULT schema(
2324         [out,retval] ISchema** schema);
2325
2326     [id(DISPID_SOM_ID), propget]
2327     HRESULT id(
2328         [out,retval] BSTR* id);
2329
2330     [id(DISPID_SOM_ITEMTYPE), propget]
2331     HRESULT itemType(
2332         [out,retval] SOMITEMTYPE* itemType);
2333
2334     [id(DISPID_SOM_UNHANDLEDATTRS), propget]
2335     HRESULT unhandledAttributes(
2336         [out,retval] IVBSAXAttributes** attributes);
2337
2338     [id(DISPID_SOM_WRITEANNOTATION)]
2339     HRESULT writeAnnotation(
2340         [in] IUnknown* annotationSink,
2341         [out,retval] VARIANT_BOOL* isWritten);
2342 };
2343
2344 [
2345     local,
2346     object,
2347     uuid(50ea08b4-dd1b-4664-9a50-c2f40f4bd79a),
2348     oleautomation,
2349     dual
2350 ]
2351 interface ISchema : ISchemaItem
2352 {
2353     [id(DISPID_SOM_TARGETNAMESPACE), propget]
2354     HRESULT targetNamespace(
2355         [out,retval] BSTR* targetNamespace);
2356
2357     [id(DISPID_SOM_VERSION), propget]
2358     HRESULT version(
2359         [out,retval] BSTR* version);
2360
2361     [id(DISPID_SOM_TYPES), propget]
2362     HRESULT types(
2363         [out,retval] ISchemaItemCollection** types);
2364
2365     [id(DISPID_SOM_ELEMENTS), propget]
2366     HRESULT elements(
2367         [out,retval] ISchemaItemCollection** elements);
2368
2369     [id(DISPID_SOM_ATTRIBUTES), propget]
2370     HRESULT attributes(
2371         [out,retval] ISchemaItemCollection** attributes);
2372
2373     [id(DISPID_SOM_ATTRIBUTEGROUPS), propget]
2374     HRESULT attributeGroups(
2375         [out,retval] ISchemaItemCollection** attributeGroups);
2376
2377     [id(DISPID_SOM_MODELGROUPS), propget]
2378     HRESULT modelGroups(
2379         [out,retval] ISchemaItemCollection** modelGroups);
2380
2381     [id(DISPID_SOM_NOTATIONS), propget]
2382     HRESULT notations(
2383         [out,retval] ISchemaItemCollection** notations);
2384
2385     [id(DISPID_SOM_SCHEMALOCATIONS), propget]
2386     HRESULT schemaLocations(
2387         [out,retval] ISchemaStringCollection** schemaLocations);
2388 };
2389
2390 [
2391     local,
2392     object,
2393     uuid(50ea08b5-dd1b-4664-9a50-c2f40f4bd79a),
2394     oleautomation,
2395     dual
2396 ]
2397 interface ISchemaParticle : ISchemaItem
2398 {
2399     [id(DISPID_SOM_MINOCCURS), propget]
2400     HRESULT minOccurs(
2401         [out,retval] VARIANT* minOccurs);
2402
2403     [id(DISPID_SOM_MAXOCCURS), propget]
2404     HRESULT maxOccurs(
2405         [out,retval] VARIANT* maxOccurs);
2406 };
2407
2408 [
2409     object,
2410     uuid(50ea08b6-dd1b-4664-9a50-c2f40f4bd79a),
2411     oleautomation,
2412     dual,
2413 ]
2414 interface ISchemaAttribute : ISchemaItem
2415 {
2416     [id(DISPID_SOM_TYPE), propget]
2417     HRESULT type(
2418         [out,retval] ISchemaType** type);
2419
2420     [id(DISPID_SOM_SCOPE), propget]
2421     HRESULT scope(
2422         [out,retval] ISchemaComplexType** scope);
2423
2424     [id(DISPID_SOM_DEFAULTVALUE), propget]
2425     HRESULT defaultValue(
2426         [out,retval]BSTR* defaultValue);
2427
2428     [id(DISPID_SOM_FIXEDVALUE), propget]
2429     HRESULT fixedValue(
2430         [out,retval] BSTR* fixedValue);
2431
2432     [id(DISPID_SOM_USE), propget]
2433     HRESULT use(
2434         [out,retval] SCHEMAUSE* use);
2435
2436     [id(DISPID_SOM_ISREFERENCE), propget]
2437     HRESULT isReference(
2438         [out,retval] VARIANT_BOOL* reference);
2439 };
2440
2441 [
2442     local,
2443     object,
2444     uuid(50ea08b7-dd1b-4664-9a50-c2f40f4bd79a),
2445     oleautomation,
2446     dual
2447 ]
2448 interface ISchemaElement : ISchemaParticle
2449 {
2450     [id(DISPID_SOM_TYPE), propget]
2451     HRESULT type(
2452         [out,retval] ISchemaType** type);
2453
2454     [id(DISPID_SOM_SCOPE), propget]
2455     HRESULT scope(
2456         [out,retval] ISchemaComplexType** scope);
2457
2458     [id(DISPID_SOM_DEFAULTVALUE), propget]
2459     HRESULT defaultValue(
2460         [out,retval] BSTR* defaultValue);
2461
2462     [id(DISPID_SOM_FIXEDVALUE), propget]
2463     HRESULT fixedValue(
2464         [out,retval] BSTR* fixedValue);
2465
2466     [id(DISPID_SOM_ISNILLABLE), propget]
2467     HRESULT isNillable(
2468         [out,retval] VARIANT_BOOL* nillable);
2469
2470     [id(DISPID_SOM_IDCONSTRAINTS), propget]
2471     HRESULT identityConstraints(
2472         [out,retval] ISchemaItemCollection** constraints);
2473
2474     [id(DISPID_SOM_SUBSTITUTIONGROUP), propget]
2475     HRESULT substitutionGroup(
2476         [out,retval] ISchemaElement** element);
2477
2478     [id(DISPID_SOM_EXCLUSIONS), propget]
2479     HRESULT substitutionGroupExclusions(
2480         [out,retval] SCHEMADERIVATIONMETHOD* exclusions);
2481
2482     [id(DISPID_SOM_DISALLOWED), propget]
2483     HRESULT disallowedSubstitutions(
2484         [out,retval] SCHEMADERIVATIONMETHOD* disallowed);
2485
2486     [id(DISPID_SOM_ISABSTRACT), propget]
2487     HRESULT isAbstract(
2488         [out,retval] VARIANT_BOOL* abstract);
2489
2490     [id(DISPID_SOM_ISREFERENCE), propget]
2491     HRESULT isReference(
2492         [out,retval] VARIANT_BOOL* reference);
2493 };
2494
2495 [
2496     local,
2497     object,
2498     uuid(50ea08b8-dd1b-4664-9a50-c2f40f4bd79a),
2499     oleautomation,
2500     dual
2501 ]
2502 interface ISchemaType : ISchemaItem
2503 {
2504     [id(DISPID_SOM_BASETYPES), propget]
2505     HRESULT baseTypes(
2506         [out,retval] ISchemaItemCollection** baseTypes);
2507
2508     [id(DISPID_SOM_FINAL), propget]
2509     HRESULT final(
2510         [out,retval] SCHEMADERIVATIONMETHOD* final);
2511
2512     [id(DISPID_SOM_VARIETY), propget]
2513     HRESULT variety(
2514         [out,retval] SCHEMATYPEVARIETY* variety);
2515
2516     [id(DISPID_SOM_DERIVEDBY), propget]
2517     HRESULT derivedBy(
2518         [out,retval] SCHEMADERIVATIONMETHOD* derivedBy);
2519
2520     [id(DISPID_SOM_ISVALID)]
2521     HRESULT isValid(
2522         [in] BSTR data,
2523         [out,retval] VARIANT_BOOL* valid);
2524
2525     [id(DISPID_SOM_MINEXCLUSIVE), propget]
2526     HRESULT minExclusive(
2527         [out,retval]BSTR* minExclusive);
2528
2529     [id(DISPID_SOM_MININCLUSIVE), propget]
2530     HRESULT minInclusive(
2531         [out,retval] BSTR* minInclusive);
2532
2533     [id(DISPID_SOM_MAXEXCLUSIVE), propget]
2534     HRESULT maxExclusive(
2535         [out,retval] BSTR* maxExclusive);
2536
2537     [id(DISPID_SOM_MAXINCLUSIVE), propget]
2538     HRESULT maxInclusive(
2539         [out,retval] BSTR* maxInclusive);
2540
2541     [id(DISPID_SOM_TOTALDIGITS), propget]
2542     HRESULT totalDigits(
2543         [out,retval] VARIANT* totalDigits);
2544
2545     [id(DISPID_SOM_FRACTIONDIGITS), propget]
2546     HRESULT fractionDigits(
2547         [out,retval] VARIANT* fractionDigits);
2548
2549     [id(DISPID_SOM_LENGTH), propget]
2550     HRESULT length(
2551         [out,retval] VARIANT* length);
2552
2553     [id(DISPID_SOM_MINLENGTH), propget]
2554     HRESULT minLength(
2555         [out,retval]VARIANT* minLength);
2556
2557     [id(DISPID_SOM_MAXLENGTH), propget]
2558     HRESULT maxLength(
2559         [out,retval]VARIANT* maxLength);
2560
2561     [id(DISPID_SOM_ENUMERATION), propget]
2562     HRESULT enumeration(
2563         [out,retval] ISchemaStringCollection** enumeration);
2564
2565     [id(DISPID_SOM_WHITESPACE), propget]
2566     HRESULT whitespace(
2567         [out,retval]SCHEMAWHITESPACE* whitespace);
2568
2569     [id(DISPID_SOM_PATTERNS), propget]
2570     HRESULT patterns(
2571         [out,retval] ISchemaStringCollection** patterns);
2572 };
2573
2574 [
2575     local,
2576     object,
2577     uuid(50ea08b9-dd1b-4664-9a50-c2f40f4bd79a),
2578     oleautomation,
2579     dual,
2580 ]
2581 interface ISchemaComplexType : ISchemaType
2582 {
2583     [id(DISPID_SOM_ISABSTRACT), propget]
2584     HRESULT isAbstract(
2585         [out,retval] VARIANT_BOOL* abstract);
2586
2587     [id(DISPID_SOM_ANYATTRIBUTE), propget]
2588     HRESULT anyAttribute(
2589         [out,retval] ISchemaAny** anyAttribute);
2590
2591     [id(DISPID_SOM_ATTRIBUTES), propget]
2592     HRESULT attributes(
2593         [out,retval] ISchemaItemCollection** attributes);
2594
2595     [id(DISPID_SOM_CONTENTTYPE), propget]
2596     HRESULT contentType(
2597         [out,retval] SCHEMACONTENTTYPE* contentType);
2598
2599     [id(DISPID_SOM_CONTENTMODEL), propget]
2600     HRESULT contentModel(
2601         [out,retval] ISchemaModelGroup** contentModel);
2602
2603     [id(DISPID_SOM_PROHIBITED), propget]
2604     HRESULT prohibitedSubstitutions(
2605         [out,retval] SCHEMADERIVATIONMETHOD* prohibited);
2606 };
2607
2608 [
2609     local,
2610     object,
2611     uuid(50ea08ba-dd1b-4664-9a50-c2f40f4bd79a),
2612     oleautomation,
2613     dual,
2614 ]
2615 interface ISchemaAttributeGroup : ISchemaItem
2616 {
2617     [id(DISPID_SOM_ANYATTRIBUTE), propget]
2618     HRESULT anyAttribute(
2619         [out,retval] ISchemaAny** anyAttribute);
2620
2621     [id(DISPID_SOM_ATTRIBUTES), propget]
2622         HRESULT attributes(
2623             [out,retval] ISchemaItemCollection** attributes);
2624 };
2625
2626 [
2627     local,
2628     object,
2629     uuid(50ea08bb-dd1b-4664-9a50-c2f40f4bd79a),
2630     oleautomation,
2631     dual,
2632 ]
2633 interface ISchemaModelGroup : ISchemaParticle
2634 {
2635     [id(DISPID_SOM_PARTICLES), propget]
2636     HRESULT particles(
2637         [out,retval] ISchemaItemCollection** particles);
2638 };
2639
2640 [
2641     local,
2642     object,
2643     uuid(50ea08bc-dd1b-4664-9a50-c2f40f4bd79a),
2644     oleautomation,
2645     dual
2646 ]
2647 interface ISchemaAny : ISchemaParticle
2648 {
2649     [id(DISPID_SOM_NAMESPACES), propget]
2650     HRESULT namespaces(
2651         [out,retval] ISchemaStringCollection** namespaces);
2652
2653     [id(DISPID_SOM_PROCESSCONTENTS), propget]
2654     HRESULT processContents(
2655         [out,retval] SCHEMAPROCESSCONTENTS* processContents);
2656 };
2657
2658 [
2659     local,
2660     object,
2661     uuid(50ea08bd-dd1b-4664-9a50-c2f40f4bd79a),
2662     oleautomation,
2663     dual
2664 ]
2665 interface ISchemaIdentityConstraint : ISchemaItem
2666 {
2667     [id(DISPID_SOM_SELECTOR), propget]
2668     HRESULT selector(
2669         [out,retval] BSTR* selector);
2670
2671     [id(DISPID_SOM_FIELDS), propget]
2672         HRESULT fields(
2673             [out,retval] ISchemaStringCollection** fields);
2674
2675     [id(DISPID_SOM_REFERENCEDKEY), propget]
2676     HRESULT referencedKey(
2677         [out,retval] ISchemaIdentityConstraint** key);
2678 };
2679
2680 [
2681     local,
2682     object,
2683     uuid(50ea08be-dd1b-4664-9a50-c2f40f4bd79a),
2684     oleautomation,
2685     dual
2686 ]
2687 interface ISchemaNotation : ISchemaItem
2688 {
2689     [id(DISPID_SOM_SYSTEMIDENTIFIER), propget]
2690     HRESULT systemIdentifier(
2691         [out,retval] BSTR* uri);
2692
2693     [id(DISPID_SOM_PUBLICIDENTIFIER), propget]
2694     HRESULT publicIdentifier(
2695         [out,retval] BSTR* uri);
2696 };
2697
2698
2699 [
2700     uuid(079aa557-4a18-424a-8eee-e39f0a8d41b9)
2701 ]
2702 coclass SAXXMLReader
2703 {
2704     [default] interface IVBSAXXMLReader;
2705     interface ISAXXMLReader;
2706     interface IMXReaderControl;
2707 };
2708
2709 [
2710     uuid(3124c396-fb13-4836-a6ad-1317f1713688)
2711 ]
2712 coclass SAXXMLReader30
2713 {
2714     [default] interface IVBSAXXMLReader;
2715     interface ISAXXMLReader;
2716     interface IMXReaderControl;
2717 };
2718
2719 [
2720     uuid(7c6e29bc-8b8b-4c3d-859e-af6cd158be0f)
2721 ]
2722 coclass SAXXMLReader40
2723 {
2724     [default] interface IVBSAXXMLReader;
2725     interface ISAXXMLReader;
2726 };
2727
2728 [
2729     uuid(fc220ad8-a72a-4ee8-926e-0b7ad152a020)
2730 ]
2731 coclass MXXMLWriter
2732 {
2733     [default] interface IMXWriter;
2734
2735     interface ISAXContentHandler;
2736     interface ISAXErrorHandler;
2737     interface ISAXDTDHandler;
2738     interface ISAXLexicalHandler;
2739     interface ISAXDeclHandler;
2740
2741     interface IVBSAXContentHandler;
2742     interface IVBSAXDeclHandler;
2743     interface IVBSAXDTDHandler;
2744     interface IVBSAXErrorHandler;
2745     interface IVBSAXLexicalHandler;
2746 };
2747
2748 [
2749     uuid(3d813dfe-6c91-4a4e-8f41-04346a841d9c)
2750 ]
2751 coclass MXXMLWriter30
2752 {
2753     [default] interface IMXWriter;
2754
2755     interface ISAXContentHandler;
2756     interface ISAXDeclHandler;
2757     interface ISAXDTDHandler;
2758     interface ISAXErrorHandler;
2759     interface ISAXLexicalHandler;
2760
2761     interface IVBSAXContentHandler;
2762     interface IVBSAXDeclHandler;
2763     interface IVBSAXDTDHandler;
2764     interface IVBSAXErrorHandler;
2765     interface IVBSAXLexicalHandler;
2766 };
2767
2768 [
2769     uuid(88d969c8-f192-11d4-a65f-0040963251e5),
2770 ]
2771 coclass MXXMLWriter40
2772 {
2773     [default] interface IMXWriter;
2774
2775     interface ISAXContentHandler;
2776     interface ISAXDeclHandler;
2777     interface ISAXDTDHandler;
2778     interface ISAXErrorHandler;
2779     interface ISAXLexicalHandler;
2780
2781     interface IVBSAXContentHandler;
2782     interface IVBSAXDeclHandler;
2783     interface IVBSAXDTDHandler;
2784     interface IVBSAXErrorHandler;
2785     interface IVBSAXLexicalHandler;
2786 };
2787
2788 [
2789     uuid(4dd441ad-526d-4a77-9f1b-9841ed802fb0)
2790 ]
2791 coclass SAXAttributes
2792 {
2793     [default] interface IMXAttributes;
2794     interface IVBSAXAttributes;
2795     interface ISAXAttributes;
2796 };
2797
2798 [
2799     uuid(3e784a01-f3ae-4dc0-9354-9526b9370eba)
2800 ]
2801 coclass SAXAttributes30
2802 {
2803     [default] interface IMXAttributes;
2804     interface IVBSAXAttributes;
2805     interface ISAXAttributes;
2806 };
2807
2808 [
2809     uuid(88d969ca-f192-11d4-a65f-0040963251e5),
2810 ]
2811 coclass SAXAttributes40
2812 {
2813     [default] interface IMXAttributes;
2814     interface IVBSAXAttributes;
2815     interface ISAXAttributes;
2816 };
2817
2818 /*
2819  * Error Codes
2820  */
2821 cpp_quote("#define E_XML_NOTWF              0xC00CE223")
2822 cpp_quote("#define E_XML_NODTD              0xC00CE224")
2823 cpp_quote("#define E_XML_INVALID            0xC00CE225")
2824 cpp_quote("#define E_XML_BUFFERTOOSMALL     0xC00CE226")
2825
2826 } /* Library MSXML */