server: Make the fd passing code slightly more portable.
[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(373984c9-b845-449b-91e7-45ac83036ade)
1343 ]
1344 coclass XMLSchemaCache
1345 {
1346     [default] interface IXMLDOMSchemaCollection;
1347 }
1348
1349 [
1350     uuid(f5078f1d-c551-11d3-89b9-0000f81fe221)
1351 ]
1352 coclass XMLSchemaCache26
1353 {
1354     [default] interface IXMLDOMSchemaCollection;
1355 }
1356
1357 [
1358     uuid(f5078f34-c551-11d3-89b9-0000f81fe221)
1359 ]
1360 coclass XMLSchemaCache30
1361 {
1362     [default] interface IXMLDOMSchemaCollection;
1363 }
1364
1365 [
1366     uuid(88d969c2-f192-11d4-a65f-0040963251e5)
1367 ]
1368 coclass XMLSchemaCache40
1369 {
1370     [default] interface IXMLDOMSchemaCollection2;
1371 };
1372
1373 [
1374     uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
1375 ]
1376 coclass XSLTemplate
1377 {
1378     [default] interface IXSLTemplate;
1379 }
1380
1381 [
1382     uuid(f5078f21-c551-11d3-89b9-0000f81fe221)
1383 ]
1384 coclass XSLTemplate26
1385 {
1386     [default] interface IXSLTemplate;
1387 }
1388
1389 [
1390     uuid(f5078f36-c551-11d3-89b9-0000f81fe221)
1391 ]
1392 coclass XSLTemplate30
1393 {
1394     [default] interface IXSLTemplate;
1395 }
1396
1397 /*
1398  * Sax Interfaces
1399  */
1400 [
1401     object,
1402     local,
1403     uuid(f078abe1-45d2-4832-91ea-4466ce2f25c9)
1404 ]
1405 interface ISAXAttributes : IUnknown
1406 {
1407     HRESULT getLength(
1408         [out, retval] int *length);
1409
1410     HRESULT getURI(
1411         [in] int nIndex,
1412         [out] const WCHAR **pUrl,
1413         [out] int *pUriSize);
1414
1415     HRESULT getLocalName(
1416         [in] int nIndex,
1417         [out] const WCHAR **pLocalName,
1418         [out] int *pLocalNameLength);
1419
1420     HRESULT getQName(
1421         [in] int nIndex,
1422         [out] const WCHAR **pQName,
1423         [out] int *pQNameLength);
1424
1425     HRESULT getName(
1426         [in] int nIndex,
1427         [out] const WCHAR **pUri,
1428         [out] int * pUriLength,
1429         [out] const WCHAR ** pLocalName,
1430         [out] int * pLocalNameSize,
1431         [out] const WCHAR ** pQName,
1432         [out] int * pQNameLength);
1433
1434     HRESULT getIndexFromName(
1435         [in] const WCHAR * pUri,
1436         [in] int cUriLength,
1437         [in] const WCHAR * pLocalName,
1438         [in] int cocalNameLength,
1439         [out, retval] int * index);
1440
1441     HRESULT getIndexFromQName(
1442         [in] const WCHAR * pQName,
1443         [in] int nQNameLength,
1444         [out, retval] int * index);
1445
1446     HRESULT getType(
1447         [in] int nIndex,
1448         [out] const WCHAR ** pType,
1449         [out] int * pTypeLength);
1450
1451     HRESULT getTypeFromName(
1452         [in] const WCHAR * pUri,
1453         [in] int nUri,
1454         [in] const WCHAR * pLocalName,
1455         [in] int nLocalName,
1456         [out] const WCHAR ** pType,
1457         [out] int * nType);
1458
1459     HRESULT getTypeFromQName(
1460         [in] const WCHAR * pQName,
1461         [in] int nQName,
1462         [out] const WCHAR ** pType,
1463         [out] int * nType);
1464
1465     HRESULT getValue(
1466         [in] int nIndex,
1467         [out] const WCHAR ** pValue,
1468         [out] int * nValue);
1469
1470     HRESULT getValueFromName(
1471         [in] const WCHAR * pUri,
1472         [in] int nUri,
1473         [in] const WCHAR * pLocalName,
1474         [in] int nLocalName,
1475         [out] const WCHAR ** pValue,
1476         [out] int * nValue);
1477
1478     HRESULT getValueFromQName(
1479         [in] const WCHAR * pQName,
1480         [in] int nQName,
1481         [out] const WCHAR ** pValue,
1482         [out] int * nValue);
1483 };
1484
1485 [
1486     object,
1487     local,
1488     uuid(1545cdfa-9e4e-4497-a8a4-2bf7d0112c44)
1489 ]
1490 interface ISAXContentHandler : IUnknown
1491 {
1492     HRESULT putDocumentLocator(
1493         [in] ISAXLocator * pLocator);
1494
1495     HRESULT startDocument();
1496
1497     HRESULT endDocument();
1498
1499     HRESULT startPrefixMapping(
1500         [in] const WCHAR * pPrefix,
1501         [in] int nPrefix,
1502         [in] const WCHAR * pUri,
1503         [in] int nUri);
1504
1505     HRESULT endPrefixMapping(
1506         [in] const WCHAR * pPrefix,
1507         [in] int nPrefix);
1508
1509     HRESULT startElement(
1510         [in] const WCHAR * pNamespaceUri,
1511         [in] int nNamespaceUri,
1512         [in] const WCHAR * pLocalName,
1513         [in] int nLocalName,
1514         [in] const WCHAR * pQName,
1515         [in] int nQName,
1516         [in] ISAXAttributes * pAttr);
1517
1518     HRESULT endElement(
1519         [in] const WCHAR * pNamespaceUri,
1520         [in] int nNamespaceUri,
1521         [in] const WCHAR * pLocalName,
1522         [in] int nLocalName,
1523         [in] const WCHAR * pQName,
1524         [in] int nQName);
1525
1526     HRESULT characters(
1527         [in] const WCHAR * pChars,
1528         [in] int nChars);
1529
1530     HRESULT ignorableWhitespace(
1531         [in] const WCHAR * pChars,
1532         [in] int nChars);
1533
1534     HRESULT processingInstruction(
1535         [in] const WCHAR * pTarget,
1536         [in] int nTarget,
1537         [in] const WCHAR * pData,
1538         [in] int nData);
1539
1540     HRESULT skippedEntity(
1541         [in] const WCHAR * pName,
1542         [in] int nName);
1543 };
1544
1545 [
1546     object,
1547     local,
1548     uuid(862629ac-771a-47b2-8337-4e6843c1be90)
1549 ]
1550 interface ISAXDeclHandler : IUnknown
1551 {
1552     HRESULT elementDecl(
1553         [in] const WCHAR * pName,
1554         [in] int nName,
1555         [in] const WCHAR * pModel,
1556         [in] int nModel);
1557
1558     HRESULT attributeDecl(
1559         [in] const WCHAR * pElementName,
1560         [in] int nElementName,
1561         [in] const WCHAR * pAttributeName,
1562         [in] int nAttributeName,
1563         [in] const WCHAR * pType,
1564         [in] int nType,
1565         [in] const WCHAR * pValueDefault,
1566         [in] int nValueDefault,
1567         [in] const WCHAR * pValue,
1568         [in] int nValue);
1569
1570     HRESULT internalEntityDecl(
1571         [in] const WCHAR * pName,
1572         [in] int nName,
1573         [in] const WCHAR * pValue,
1574         [in] int nValue);
1575
1576     HRESULT externalEntityDecl(
1577         [in] const WCHAR * pName,
1578         [in] int nName,
1579         [in] const WCHAR * pPublicId,
1580         [in] int nPublicId,
1581         [in] const WCHAR * pSystemId,
1582         [in] int nSystemId);
1583 };
1584
1585 [
1586     object,
1587     local,
1588     uuid(e15c1baf-afb3-4d60-8c36-19a8c45defed)
1589 ]
1590 interface ISAXDTDHandler : IUnknown
1591 {
1592     HRESULT notationDecl(
1593         [in] const WCHAR * pName,
1594         [in] int nName,
1595         [in] const WCHAR * pPublicId,
1596         [in] int nPublicId,
1597         [in] const WCHAR * pSystemId,
1598         [in] int nSystemId);
1599
1600     HRESULT unparsedEntityDecl(
1601         [in] const WCHAR * pName,
1602         [in] int nName,
1603         [in] const WCHAR * pPublicId,
1604         [in] int nPublicId,
1605         [in] const WCHAR * pSystemId,
1606         [in] int nSystemId,
1607         [in] const WCHAR * pNotationName,
1608         [in] int nNotationName);
1609 };
1610
1611 [
1612     object,
1613     local,
1614     uuid(99bca7bd-e8c4-4d5f-a0cf-6d907901ff07),
1615 ]
1616 interface ISAXEntityResolver : IUnknown
1617 {
1618     HRESULT resolveEntity(
1619         [in] const WCHAR * pPublicId,
1620         [in] const WCHAR * pSystemId,
1621         [out, retval] VARIANT * ret);
1622 };
1623
1624 [
1625     object,
1626     local,
1627     uuid(a60511c4-ccf5-479e-98a3-dc8dc545b7d0)
1628 ]
1629 interface ISAXErrorHandler : IUnknown
1630 {
1631     HRESULT error(
1632         [in] ISAXLocator * pLocator,
1633         [in] const WCHAR * pErrorMessage,
1634         [in] HRESULT hrErrorCode);
1635
1636     HRESULT fatalError(
1637         [in] ISAXLocator * pLocator,
1638         [in] const WCHAR * pErrorMessage,
1639         [in] HRESULT hrErrorCode);
1640
1641     HRESULT ignorableWarning(
1642         [in] ISAXLocator * pLocator,
1643         [in] const WCHAR * pErrorMessage,
1644         [in] HRESULT hrErrorCode);
1645 };
1646
1647 [
1648     object,
1649     local,
1650     uuid(7f85d5f5-47a8-4497-bda5-84ba04819ea6)
1651 ]
1652 interface ISAXLexicalHandler : IUnknown
1653 {
1654     HRESULT startDTD(
1655         [in] const WCHAR * pName,
1656         [in] int nName,
1657         [in] const WCHAR * pPublicId,
1658         [in] int nPublicId,
1659         [in] const WCHAR * pSystemId,
1660         [in] int nSystemId);
1661
1662     HRESULT endDTD();
1663
1664     HRESULT startEntity(
1665         [in] const WCHAR * pName,
1666         [in] int nName);
1667
1668     HRESULT endEntity(
1669         [in] const WCHAR * pName,
1670         [in] int nName);
1671
1672     HRESULT startCDATA();
1673
1674     HRESULT endCDATA();
1675
1676     HRESULT comment(
1677         [in] const WCHAR * pChars,
1678         [in] int nChars);
1679 };
1680
1681 [
1682     object,
1683     local,
1684     uuid(9b7e472a-0de4-4640-bff3-84d38a051c31)
1685 ]
1686 interface ISAXLocator : IUnknown
1687 {
1688     HRESULT getColumnNumber(
1689         [out, retval] int * nColumn);
1690
1691     HRESULT getLineNumber(
1692         [out, retval] int * nLine);
1693
1694     HRESULT getPublicId(
1695         [out, retval] const WCHAR ** publicId);
1696
1697     HRESULT getSystemId(
1698         [out, retval] const WCHAR ** systemId);
1699 };
1700
1701 [
1702     local,
1703     object,
1704     uuid(70409222-ca09-4475-acb8-40312fe8d145)
1705 ]
1706 interface ISAXXMLFilter : ISAXXMLReader
1707 {
1708     HRESULT getParent(
1709         [out, retval] ISAXXMLReader ** pReader);
1710     HRESULT putParent(
1711         [in] ISAXXMLReader * reader);
1712 };
1713
1714 [
1715 local,
1716 object,
1717 uuid (a4f96ed0-f829-476e-81c0-cdc7bd2a0802)
1718 ]
1719 interface ISAXXMLReader : IUnknown
1720 {
1721     HRESULT getFeature(
1722         [in] const WCHAR * pFeature,
1723         [out, retval] VARIANT_BOOL * pValue);
1724     HRESULT putFeature(
1725         [in] const WCHAR * pFeature,
1726         [in] VARIANT_BOOL vfValue);
1727
1728     HRESULT getProperty(
1729         [in] const WCHAR * pProp,
1730         [out, retval] VARIANT * pValue);
1731     HRESULT putProperty(
1732         [in] const WCHAR * pProp,
1733         [in] VARIANT value);
1734
1735     HRESULT getEntityResolver(
1736         [out, retval] ISAXEntityResolver ** ppEntityResolver);
1737     HRESULT putEntityResolver(
1738         [in] ISAXEntityResolver * pEntityResolver);
1739
1740     HRESULT getContentHandler(
1741         [out, retval] ISAXContentHandler ** pContentHandler);
1742     HRESULT putContentHandler(
1743         [in] ISAXContentHandler * contentHandler);
1744
1745     HRESULT getDTDHandler(
1746         [out, retval] ISAXDTDHandler ** pDTDHandler);
1747     HRESULT putDTDHandler(
1748         [in] ISAXDTDHandler * pDTDHandler);
1749
1750     HRESULT getErrorHandler(
1751         [out, retval] ISAXErrorHandler ** pErrorHandler);
1752     HRESULT putErrorHandler(
1753         [in] ISAXErrorHandler * errorHandler);
1754
1755     HRESULT getBaseURL(
1756         [out, retval] const WCHAR ** pBaseUrl);
1757     HRESULT putBaseURL(
1758         [in] const WCHAR * pBaseUrl);
1759
1760     HRESULT getSecureBaseURL(
1761         [out, retval] const WCHAR ** pSecureBaseUrl);
1762     HRESULT putSecureBaseURL(
1763         [in] const WCHAR * secureBaseUrl);
1764
1765     HRESULT parse(
1766         [in] VARIANT varInput);
1767     HRESULT parseURL(
1768         [in] const WCHAR * url);
1769 }
1770
1771 [
1772     object,
1773     dual,
1774     oleautomation,
1775     uuid(10dc0586-132b-4cac-8bb3-db00ac8b7ee0)
1776 ]
1777 interface IVBSAXAttributes : IDispatch
1778 {
1779     [propget, id(DISPID_SAX_ATTRIBUTES_LENGTH)]
1780     HRESULT length( [out, retval] int * nLength);
1781
1782     [id(DISPID_SAX_ATTRIBUTES_GETURI)]
1783     HRESULT getURI( [in] int nIndex, [out, retval] BSTR * uri);
1784
1785     [id(DISPID_SAX_ATTRIBUTES_GETLOCALNAME)]
1786     HRESULT getLocalName( [in] int nIndex, [out, retval] BSTR * localName);
1787
1788     [id(DISPID_SAX_ATTRIBUTES_GETQNAME)]
1789     HRESULT getQName( [in] int nIndex, [out, retval] BSTR * QName);
1790
1791     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMNAME)]
1792     HRESULT getIndexFromName( [in] BSTR uri,
1793                               [in] BSTR localName, [out, retval] int * nIndex);
1794
1795     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMQNAME)]
1796     HRESULT getIndexFromQName( [in] BSTR QName, [out, retval] int * nIndex);
1797
1798     [id(DISPID_SAX_ATTRIBUTES_GETTYPE)]
1799     HRESULT getType( [in] int nIndex, [out, retval] BSTR * type);
1800
1801     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMNAME)]
1802     HRESULT getTypeFromName( [in] BSTR uri, [in] BSTR localName,
1803                              [out, retval] BSTR * type);
1804
1805     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMQNAME)]
1806     HRESULT getTypeFromQName( [in] BSTR QName, [out, retval] BSTR * type);
1807
1808     [id(DISPID_SAX_ATTRIBUTES_GETVALUE)]
1809     HRESULT getValue( [in] int nIndex, [out, retval] BSTR * value);
1810
1811     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMNAME)]
1812     HRESULT getValueFromName( [in] BSTR uri,
1813                               [in] BSTR localName,
1814                               [out, retval] BSTR * value);
1815
1816     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMQNAME)]
1817     HRESULT getValueFromQName( [in] BSTR QName, [out, retval] BSTR * value);
1818 };
1819
1820 [
1821     object,
1822     dual,
1823     oleautomation,
1824     uuid(2ed7290a-4dd5-4b46-bb26-4e4155e77faa)
1825 ]
1826 interface IVBSAXContentHandler : IDispatch
1827 {
1828     [propputref, id(DISPID_SAX_CONTENTHANDLER_DOCUMENTLOCATOR)]
1829     HRESULT documentLocator( [in] IVBSAXLocator * oLocator);
1830
1831     [id(DISPID_SAX_CONTENTHANDLER_STARTDOCUMENT)]
1832     HRESULT startDocument();
1833
1834     [id(DISPID_SAX_CONTENTHANDLER_ENDDOCUMENT)]
1835     HRESULT endDocument();
1836
1837     [id(DISPID_SAX_CONTENTHANDLER_STARTPREFIXMAPPING)]
1838     HRESULT startPrefixMapping( [in, out] BSTR * prefix, [in, out] BSTR * uri);
1839
1840     [id(DISPID_SAX_CONTENTHANDLER_ENDPREFIXMAPPING)]
1841     HRESULT endPrefixMapping( [in, out] BSTR * prefix);
1842
1843     [id(DISPID_SAX_CONTENTHANDLER_STARTELEMENT)]
1844     HRESULT startElement( [in, out] BSTR * namespaceURI,
1845                           [in, out] BSTR * localName,
1846                           [in, out] BSTR * QName,
1847                           [in] IVBSAXAttributes * oAttributes);
1848
1849     [id(DISPID_SAX_CONTENTHANDLER_ENDELEMENT)]
1850     HRESULT endElement( [in, out] BSTR * namespaceURI,
1851                         [in, out] BSTR * localName, [in, out] BSTR * strQName);
1852
1853     [id(DISPID_SAX_CONTENTHANDLER_CHARACTERS)]
1854     HRESULT characters( [in, out] BSTR * chars);
1855
1856     [id(DISPID_SAX_CONTENTHANDLER_IGNORABLEWHITESPACE)]
1857     HRESULT ignorableWhitespace( [in, out] BSTR * chars);
1858
1859     [id(DISPID_SAX_CONTENTHANDLER_PROCESSINGINSTRUCTION)]
1860     HRESULT processingInstruction( [in, out] BSTR * target,
1861                                    [in, out] BSTR * data);
1862
1863     [id(DISPID_SAX_CONTENTHANDLER_SKIPPEDENTITY)]
1864     HRESULT skippedEntity( [in, out] BSTR * name);
1865 };
1866
1867 [
1868     object,
1869     dual,
1870     oleautomation,
1871     uuid(e8917260-7579-4be1-b5dd-7afbfa6f077b)
1872 ]
1873 interface IVBSAXDeclHandler : IDispatch
1874 {
1875     [id(DISPID_SAX_DECLHANDLER_ELEMENTDECL)]
1876     HRESULT elementDecl(
1877         [in, out] BSTR * name,
1878         [in, out] BSTR * model);
1879
1880     [id(DISPID_SAX_DECLHANDLER_ATTRIBUTEDECL)]
1881     HRESULT attributeDecl(
1882         [in, out] BSTR * elementName,
1883         [in, out] BSTR * attributeName,
1884         [in, out] BSTR * type,
1885         [in, out] BSTR * valueDefault,
1886         [in, out] BSTR * value);
1887
1888     [id(DISPID_SAX_DECLHANDLER_INTERNALENTITYDECL)]
1889     HRESULT internalEntityDecl(
1890         [in, out] BSTR * name,
1891         [in, out] BSTR * value);
1892
1893     [id(DISPID_SAX_DECLHANDLER_EXTERNALENTITYDECL)]
1894     HRESULT externalEntityDecl(
1895         [in, out] BSTR * name,
1896         [in, out] BSTR * publicId,
1897         [in, out] BSTR * systemId);
1898 };
1899
1900 [
1901     object,
1902     dual,
1903     oleautomation,
1904     uuid(24fb3297-302d-4620-ba39-3a732d850558)
1905 ]
1906 interface IVBSAXDTDHandler : IDispatch
1907 {
1908     [id(DISPID_SAX_DTDHANDLER_NOTATIONDECL)]
1909     HRESULT notationDecl(
1910         [in, out] BSTR * name,
1911         [in, out] BSTR * publicId,
1912         [in, out] BSTR * systemId);
1913
1914     [id(DISPID_SAX_DTDHANDLER_UNPARSEDENTITYDECL)]
1915     HRESULT unparsedEntityDecl(
1916         [in, out] BSTR * name,
1917         [in, out] BSTR * publicId,
1918         [in, out] BSTR * systemId,
1919         [in, out] BSTR * notationName);
1920 };
1921
1922 [
1923     object,
1924     dual,
1925     oleautomation,
1926     uuid(0c05d096-f45b-4aca-ad1a-aa0bc25518dc)
1927 ]
1928 interface IVBSAXEntityResolver : IDispatch
1929 {
1930     [id(DISPID_SAX_ENTITYRESOLVER_RESOLVEENTITY)]
1931     HRESULT resolveEntity(
1932         [in, out] BSTR * publicId,
1933         [in, out] BSTR * systemId,
1934         [out, retval] VARIANT * ret);
1935 };
1936
1937 [
1938     object,
1939     dual,
1940     oleautomation,
1941     uuid(d963d3fe-173c-4862-9095-b92f66995f52)
1942 ]
1943 interface IVBSAXErrorHandler : IDispatch
1944 {
1945     [id(DISPID_SAX_ERRORHANDLER_ERROR)]
1946     HRESULT error(
1947             [in] IVBSAXLocator * locator,
1948             [in, out] BSTR * errorMessage,
1949             [in] LONG errorCode);
1950
1951     [id(DISPID_SAX_ERRORHANDLER_FATALERROR)]
1952     HRESULT fatalError(
1953             [in] IVBSAXLocator * locator,
1954             [in, out] BSTR * errorMessage,
1955             [in] LONG errorCode);
1956
1957     [id(DISPID_SAX_ERRORHANDLER_IGNORABLEWARNING)]
1958     HRESULT ignorableWarning(
1959             [in] IVBSAXLocator * locator,
1960             [in, out] BSTR * errorMessage,
1961             [in] LONG errorCode);
1962 };
1963
1964 [
1965     object,
1966     dual,
1967     oleautomation,
1968     uuid(032aac35-8c0e-4d9d-979f-e3b702935576)
1969 ]
1970 interface IVBSAXLexicalHandler : IDispatch
1971 {
1972     [id(DISPID_SAX_LEXICALHANDLER_STARTDTD)]
1973     HRESULT startDTD(
1974         [in, out] BSTR * name,
1975         [in, out] BSTR * publicId,
1976         [in, out] BSTR * systemId);
1977     [id(DISPID_SAX_LEXICALHANDLER_ENDDTD)]
1978     HRESULT endDTD();
1979
1980     [id(DISPID_SAX_LEXICALHANDLER_STARTENTITY)]
1981     HRESULT startEntity([in, out] BSTR * name);
1982     [id(DISPID_SAX_LEXICALHANDLER_ENDENTITY)]
1983     HRESULT endEntity([in, out] BSTR * name);
1984
1985     [id(DISPID_SAX_LEXICALHANDLER_STARTCDATA)]
1986     HRESULT startCDATA();
1987     [id(DISPID_SAX_LEXICALHANDLER_ENDCDATA)]
1988     HRESULT endCDATA();
1989
1990     [id(DISPID_SAX_LEXICALHANDLER_COMMENT)]
1991     HRESULT comment( [in, out] BSTR * chars);
1992 };
1993
1994 [
1995     object,
1996     dual,
1997     oleautomation,
1998     uuid(796e7ac5-5aa2-4eff-acad-3faaf01a3288)
1999 ]
2000 interface IVBSAXLocator : IDispatch
2001 {
2002     [propget, id(DISPID_SAX_LOCATOR_COLUMNNUMBER)]
2003     HRESULT columnNumber( [out, retval] int * column);
2004
2005     [propget, id(DISPID_SAX_LOCATOR_LINENUMBER)]
2006     HRESULT lineNumber( [out, retval] int * line);
2007
2008     [propget, id(DISPID_SAX_LOCATOR_PUBLICID)]
2009     HRESULT publicId( [out, retval] BSTR * publicId);
2010
2011     [propget, id(DISPID_SAX_LOCATOR_SYSTEMID)]
2012     HRESULT systemId( [out, retval] BSTR * systemId);
2013 };
2014
2015 [
2016     object,
2017     dual,
2018     oleautomation,
2019     uuid(1299eb1b-5b88-433e-82de-82ca75ad4e04)
2020 ]
2021 interface IVBSAXXMLFilter : IDispatch
2022 {
2023     [propget, id(DISPID_SAX_XMLFILTER_PARENT)]
2024     HRESULT parent( [out, retval] IVBSAXXMLReader ** reader);
2025     [propputref, id(DISPID_SAX_XMLFILTER_PARENT)]
2026     HRESULT parent( [in] IVBSAXXMLReader * reader);
2027
2028 };
2029
2030 [
2031     dual,
2032     oleautomation,
2033     object,
2034     uuid (8c033caa-6cd6-4f73-b728-4531af74945f)
2035 ]
2036 interface IVBSAXXMLReader : IDispatch
2037 {
2038     [id(DISPID_SAX_XMLREADER_GETFEATURE)]
2039     HRESULT getFeature( [in] const WCHAR * pFeature,
2040                         [out, retval] VARIANT_BOOL * pValue);
2041     [id(DISPID_SAX_XMLREADER_PUTFEATURE)]
2042     HRESULT putFeature( [in] const WCHAR * pFeature,
2043                         [in] VARIANT_BOOL vfValue);
2044
2045     [id(DISPID_SAX_XMLREADER_GETPROPERTY)]
2046     HRESULT getProperty( [in] const WCHAR * pProp,
2047                          [out, retval] VARIANT * pValue);
2048     [id(DISPID_SAX_XMLREADER_PUTPROPERTY)]
2049     HRESULT putProperty( [in] const WCHAR * pProp, [in] VARIANT value);
2050
2051     [propget, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
2052     HRESULT entityResolver(
2053                     [out, retval] IVBSAXEntityResolver ** ppEntityResolver);
2054     [propputref, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
2055     HRESULT entityResolver( [in] IVBSAXEntityResolver * pEntityResolver);
2056
2057     [propget, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
2058     HRESULT contentHandler(
2059                         [out, retval] IVBSAXContentHandler ** pContentHandler);
2060     [propputref, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
2061     HRESULT contentHandler([in] IVBSAXContentHandler * contentHandler);
2062
2063     [propget, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
2064     HRESULT dtdHandler([out, retval] IVBSAXDTDHandler ** pDTDHandler);
2065     [propputref, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
2066     HRESULT dtdHandler([in] IVBSAXDTDHandler * pDTDHandler);
2067
2068     [propget, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
2069     HRESULT errorHandler([out, retval] IVBSAXErrorHandler ** pErrorHandler);
2070     [propputref, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
2071     HRESULT errorHandler([in] IVBSAXErrorHandler * errorHandler);
2072
2073     [propget, id(DISPID_SAX_XMLREADER_BASEURL)]
2074     HRESULT baseURL([out, retval] const WCHAR ** pBaseUrl);
2075     [propput, id(DISPID_SAX_XMLREADER_BASEURL)]
2076     HRESULT baseURL([in] const WCHAR * pBaseUrl);
2077
2078     [propget, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
2079     HRESULT secureBaseURL([out, retval] const WCHAR ** pSecureBaseUrl);
2080     [propput, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
2081     HRESULT secureBaseURL([in] const WCHAR * secureBaseUrl);
2082
2083     [id(DISPID_SAX_XMLREADER_PARSE)]
2084     HRESULT parse( [in] VARIANT varInput);
2085     [id(DISPID_SAX_XMLREADER_PARSEURL)]
2086     HRESULT parseURL([in] const WCHAR * url);
2087 }
2088
2089 [
2090     object,
2091     dual,
2092     oleautomation,
2093     uuid(f10d27cc-3ec0-415c-8ed8-77ab1c5e7262)
2094 ]
2095 interface IMXAttributes : IDispatch
2096 {
2097     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTE)]
2098     HRESULT addAttribute(
2099         [in] BSTR uri,
2100         [in] BSTR localName,
2101         [in] BSTR QName,
2102         [in] BSTR type,
2103         [in] BSTR value);
2104
2105     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTEFROMINDEX)]
2106     HRESULT addAttributeFromIndex( [in] VARIANT atts,
2107                                    [in] int index);
2108
2109     [id(DISPID_MX_ATTRIBUTES_CLEAR)]
2110     HRESULT clear();
2111
2112     [id(DISPID_MX_ATTRIBUTES_REMOVEATTRIBUTE)]
2113     HRESULT removeAttribute( [in] int index);
2114
2115     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTE)]
2116     HRESULT setAttribute(
2117         [in] int index,
2118         [in] BSTR uri,
2119         [in] BSTR localName,
2120         [in] BSTR QName,
2121         [in] BSTR type,
2122         [in] BSTR value);
2123
2124     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTES)]
2125     HRESULT setAttributes( [in] VARIANT atts);
2126
2127     [id(DISPID_MX_ATTRIBUTES_SETLOCALNAME)]
2128     HRESULT setLocalName( [in] int index,
2129         [in] BSTR localName);
2130
2131     [id(DISPID_MX_ATTRIBUTES_SETQNAME)]
2132     HRESULT setQName(
2133         [in] int index,
2134         [in] BSTR QName);
2135
2136     [id(DISPID_MX_ATTRIBUTES_SETTYPE)]
2137     HRESULT setType( [in] int index, [in] BSTR type);
2138
2139     [id(DISPID_MX_ATTRIBUTES_SETURI)]
2140     HRESULT setURI( [in] int index,  [in] BSTR uri);
2141
2142     [id(DISPID_MX_ATTRIBUTES_SETVALUE)]
2143     HRESULT setValue([in] int index, [in] BSTR value);
2144 };
2145
2146 [
2147     object,
2148     dual,
2149     oleautomation,
2150     uuid(808f4e35-8d5a-4fbe-8466-33a41279ed30)
2151 ]
2152 interface IMXReaderControl : IDispatch
2153 {
2154     [id(DISPID_MX_READER_CONTROL_ABORT)]
2155     HRESULT abort();
2156
2157     [id(DISPID_MX_READER_CONTROL_RESUME)]
2158     HRESULT resume();
2159
2160     [id(DISPID_MX_READER_CONTROL_SUSPEND)]
2161     HRESULT suspend();
2162 };
2163
2164 [
2165     object,
2166     dual,
2167     oleautomation,
2168     uuid(4d7ff4ba-1565-4ea8-94e1-6e724a46f98d)
2169 ]
2170 interface IMXWriter :  IDispatch
2171 {
2172     [propput, id(DISPID_MX_WRITER_OUTPUT)]
2173     HRESULT output ( [in] VARIANT Destination);
2174     [propget, id(DISPID_MX_WRITER_OUTPUT)]
2175     HRESULT output ( [out, retval] VARIANT * Destination);
2176
2177     [propput, id(DISPID_MX_WRITER_ENCODING)]
2178     HRESULT encoding ([in] BSTR encoding);
2179     [propget, id(DISPID_MX_WRITER_ENCODING)]
2180     HRESULT encoding ([out, retval] BSTR * encoding);
2181
2182     [propput, id(DISPID_MX_WRITER_BYTEORDERMARK)]
2183     HRESULT byteOrderMark ([in] VARIANT_BOOL writeByteOrderMark);
2184     [propget, id(DISPID_MX_WRITER_BYTEORDERMARK)]
2185     HRESULT byteOrderMark ([out, retval] VARIANT_BOOL * writeByteOrderMark);
2186
2187     [propput, id(DISPID_MX_WRITER_INDENT)]
2188     HRESULT indent ([in] VARIANT_BOOL indentMode);
2189     [propget, id(DISPID_MX_WRITER_INDENT)]
2190     HRESULT indent ([out, retval] VARIANT_BOOL * indentMode);
2191
2192     [propput, id(DISPID_MX_WRITER_STANDALONE)]
2193     HRESULT standalone ([in] VARIANT_BOOL value);
2194     [propget, id(DISPID_MX_WRITER_STANDALONE)]
2195     HRESULT standalone ([out, retval] VARIANT_BOOL * value);
2196
2197     [propput, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
2198     HRESULT omitXMLDeclaration ([in] VARIANT_BOOL value);
2199     [propget, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
2200     HRESULT omitXMLDeclaration ([out, retval] VARIANT_BOOL * value);
2201
2202     [propput, id(DISPID_MX_WRITER_VERSION)]
2203     HRESULT version ([in] BSTR version);
2204     [propget, id(DISPID_MX_WRITER_VERSION)]
2205     HRESULT version ([out, retval] BSTR * version);
2206
2207     [propput, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
2208     HRESULT disableOutputEscaping([in] VARIANT_BOOL value);
2209     [propget, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
2210     HRESULT disableOutputEscaping([out, retval] VARIANT_BOOL * value);
2211
2212     [id(DISPID_MX_WRITER_FLUSH)]
2213     HRESULT flush();
2214 };
2215
2216 [
2217     local,
2218     object,
2219     uuid(50ea08b1-dd1b-4664-9a50-c2f40f4bd79a),
2220     oleautomation,
2221     dual
2222 ]
2223 interface ISchemaStringCollection : IDispatch
2224 {
2225     [id(DISPID_VALUE), propget]
2226     HRESULT item(
2227         [in] long index,
2228         [out,retval] BSTR* bstr);
2229
2230     [id(DISPID_SOM_LENGTH), propget]
2231     HRESULT length(
2232         [out,retval] long* length);
2233
2234     [id(DISPID_NEWENUM), hidden, restricted, propget]
2235     HRESULT _newEnum(
2236         [out,retval] IUnknown** ppunk);
2237 };
2238
2239 [
2240     local,
2241     object,
2242     uuid(50ea08b2-dd1b-4664-9a50-c2f40f4bd79a),
2243     oleautomation,
2244     dual
2245 ]
2246 interface ISchemaItemCollection : IDispatch
2247 {
2248     [id(DISPID_VALUE), propget]
2249     HRESULT item(
2250         [in] long index,
2251         [out,retval]ISchemaItem** item);
2252
2253     [id(DISPID_SOM_ITEMBYNAME)]
2254     HRESULT itemByName(
2255         [in] BSTR name,
2256         [out,retval] ISchemaItem** item);
2257
2258     [id(DISPID_SOM_ITEMBYQNAME)]
2259     HRESULT itemByQName(
2260         [in] BSTR name,
2261         [in] BSTR namespaceURI,
2262         [out,retval] ISchemaItem** item);
2263
2264     [id(DISPID_SOM_LENGTH), propget]
2265     HRESULT length(
2266         [out,retval]long* length);
2267
2268     [id(DISPID_NEWENUM), hidden, restricted, propget]
2269     HRESULT _newEnum(
2270         [out,retval]IUnknown** ppunk);
2271 };
2272
2273 [
2274     local,
2275     object,
2276     uuid(50ea08b3-dd1b-4664-9a50-c2f40f4bd79a),
2277     oleautomation,
2278     dual
2279 ]
2280 interface ISchemaItem : IDispatch
2281 {
2282     [id(DISPID_SOM_NAME), propget]
2283     HRESULT name(
2284         [out,retval] BSTR* name);
2285
2286     [id(DISPID_SOM_NAMESPACEURI), propget]
2287     HRESULT namespaceURI(
2288         [out,retval] BSTR* namespaceURI);
2289
2290     [id(DISPID_SOM_SCHEMA), propget]
2291     HRESULT schema(
2292         [out,retval] ISchema** schema);
2293
2294     [id(DISPID_SOM_ID), propget]
2295     HRESULT id(
2296         [out,retval] BSTR* id);
2297
2298     [id(DISPID_SOM_ITEMTYPE), propget]
2299     HRESULT itemType(
2300         [out,retval] SOMITEMTYPE* itemType);
2301
2302     [id(DISPID_SOM_UNHANDLEDATTRS), propget]
2303     HRESULT unhandledAttributes(
2304         [out,retval] IVBSAXAttributes** attributes);
2305
2306     [id(DISPID_SOM_WRITEANNOTATION)]
2307     HRESULT writeAnnotation(
2308         [in] IUnknown* annotationSink,
2309         [out,retval] VARIANT_BOOL* isWritten);
2310 };
2311
2312 [
2313     local,
2314     object,
2315     uuid(50ea08b4-dd1b-4664-9a50-c2f40f4bd79a),
2316     oleautomation,
2317     dual
2318 ]
2319 interface ISchema : ISchemaItem
2320 {
2321     [id(DISPID_SOM_TARGETNAMESPACE), propget]
2322     HRESULT targetNamespace(
2323         [out,retval] BSTR* targetNamespace);
2324
2325     [id(DISPID_SOM_VERSION), propget]
2326     HRESULT version(
2327         [out,retval] BSTR* version);
2328
2329     [id(DISPID_SOM_TYPES), propget]
2330     HRESULT types(
2331         [out,retval] ISchemaItemCollection** types);
2332
2333     [id(DISPID_SOM_ELEMENTS), propget]
2334     HRESULT elements(
2335         [out,retval] ISchemaItemCollection** elements);
2336
2337     [id(DISPID_SOM_ATTRIBUTES), propget]
2338     HRESULT attributes(
2339         [out,retval] ISchemaItemCollection** attributes);
2340
2341     [id(DISPID_SOM_ATTRIBUTEGROUPS), propget]
2342     HRESULT attributeGroups(
2343         [out,retval] ISchemaItemCollection** attributeGroups);
2344
2345     [id(DISPID_SOM_MODELGROUPS), propget]
2346     HRESULT modelGroups(
2347         [out,retval] ISchemaItemCollection** modelGroups);
2348
2349     [id(DISPID_SOM_NOTATIONS), propget]
2350     HRESULT notations(
2351         [out,retval] ISchemaItemCollection** notations);
2352
2353     [id(DISPID_SOM_SCHEMALOCATIONS), propget]
2354     HRESULT schemaLocations(
2355         [out,retval] ISchemaStringCollection** schemaLocations);
2356 };
2357
2358 [
2359     local,
2360     object,
2361     uuid(50ea08b5-dd1b-4664-9a50-c2f40f4bd79a),
2362     oleautomation,
2363     dual
2364 ]
2365 interface ISchemaParticle : ISchemaItem
2366 {
2367     [id(DISPID_SOM_MINOCCURS), propget]
2368     HRESULT minOccurs(
2369         [out,retval] VARIANT* minOccurs);
2370
2371     [id(DISPID_SOM_MAXOCCURS), propget]
2372     HRESULT maxOccurs(
2373         [out,retval] VARIANT* maxOccurs);
2374 };
2375
2376 [
2377     object,
2378     uuid(50ea08b6-dd1b-4664-9a50-c2f40f4bd79a),
2379     oleautomation,
2380     dual,
2381 ]
2382 interface ISchemaAttribute : ISchemaItem
2383 {
2384     [id(DISPID_SOM_TYPE), propget]
2385     HRESULT type(
2386         [out,retval] ISchemaType** type);
2387
2388     [id(DISPID_SOM_SCOPE), propget]
2389     HRESULT scope(
2390         [out,retval] ISchemaComplexType** scope);
2391
2392     [id(DISPID_SOM_DEFAULTVALUE), propget]
2393     HRESULT defaultValue(
2394         [out,retval]BSTR* defaultValue);
2395
2396     [id(DISPID_SOM_FIXEDVALUE), propget]
2397     HRESULT fixedValue(
2398         [out,retval] BSTR* fixedValue);
2399
2400     [id(DISPID_SOM_USE), propget]
2401     HRESULT use(
2402         [out,retval] SCHEMAUSE* use);
2403
2404     [id(DISPID_SOM_ISREFERENCE), propget]
2405     HRESULT isReference(
2406         [out,retval] VARIANT_BOOL* reference);
2407 };
2408
2409 [
2410     local,
2411     object,
2412     uuid(50ea08b7-dd1b-4664-9a50-c2f40f4bd79a),
2413     oleautomation,
2414     dual
2415 ]
2416 interface ISchemaElement : ISchemaParticle
2417 {
2418     [id(DISPID_SOM_TYPE), propget]
2419     HRESULT type(
2420         [out,retval] ISchemaType** type);
2421
2422     [id(DISPID_SOM_SCOPE), propget]
2423     HRESULT scope(
2424         [out,retval] ISchemaComplexType** scope);
2425
2426     [id(DISPID_SOM_DEFAULTVALUE), propget]
2427     HRESULT defaultValue(
2428         [out,retval] BSTR* defaultValue);
2429
2430     [id(DISPID_SOM_FIXEDVALUE), propget]
2431     HRESULT fixedValue(
2432         [out,retval] BSTR* fixedValue);
2433
2434     [id(DISPID_SOM_ISNILLABLE), propget]
2435     HRESULT isNillable(
2436         [out,retval] VARIANT_BOOL* nillable);
2437
2438     [id(DISPID_SOM_IDCONSTRAINTS), propget]
2439     HRESULT identityConstraints(
2440         [out,retval] ISchemaItemCollection** constraints);
2441
2442     [id(DISPID_SOM_SUBSTITUTIONGROUP), propget]
2443     HRESULT substitutionGroup(
2444         [out,retval] ISchemaElement** element);
2445
2446     [id(DISPID_SOM_EXCLUSIONS), propget]
2447     HRESULT substitutionGroupExclusions(
2448         [out,retval] SCHEMADERIVATIONMETHOD* exclusions);
2449
2450     [id(DISPID_SOM_DISALLOWED), propget]
2451     HRESULT disallowedSubstitutions(
2452         [out,retval] SCHEMADERIVATIONMETHOD* disallowed);
2453
2454     [id(DISPID_SOM_ISABSTRACT), propget]
2455     HRESULT isAbstract(
2456         [out,retval] VARIANT_BOOL* abstract);
2457
2458     [id(DISPID_SOM_ISREFERENCE), propget]
2459     HRESULT isReference(
2460         [out,retval] VARIANT_BOOL* reference);
2461 };
2462
2463 [
2464     local,
2465     object,
2466     uuid(50ea08b8-dd1b-4664-9a50-c2f40f4bd79a),
2467     oleautomation,
2468     dual
2469 ]
2470 interface ISchemaType : ISchemaItem
2471 {
2472     [id(DISPID_SOM_BASETYPES), propget]
2473     HRESULT baseTypes(
2474         [out,retval] ISchemaItemCollection** baseTypes);
2475
2476     [id(DISPID_SOM_FINAL), propget]
2477     HRESULT final(
2478         [out,retval] SCHEMADERIVATIONMETHOD* final);
2479
2480     [id(DISPID_SOM_VARIETY), propget]
2481     HRESULT variety(
2482         [out,retval] SCHEMATYPEVARIETY* variety);
2483
2484     [id(DISPID_SOM_DERIVEDBY), propget]
2485     HRESULT derivedBy(
2486         [out,retval] SCHEMADERIVATIONMETHOD* derivedBy);
2487
2488     [id(DISPID_SOM_ISVALID)]
2489     HRESULT isValid(
2490         [in] BSTR data,
2491         [out,retval] VARIANT_BOOL* valid);
2492
2493     [id(DISPID_SOM_MINEXCLUSIVE), propget]
2494     HRESULT minExclusive(
2495         [out,retval]BSTR* minExclusive);
2496
2497     [id(DISPID_SOM_MININCLUSIVE), propget]
2498     HRESULT minInclusive(
2499         [out,retval] BSTR* minInclusive);
2500
2501     [id(DISPID_SOM_MAXEXCLUSIVE), propget]
2502     HRESULT maxExclusive(
2503         [out,retval] BSTR* maxExclusive);
2504
2505     [id(DISPID_SOM_MAXINCLUSIVE), propget]
2506     HRESULT maxInclusive(
2507         [out,retval] BSTR* maxInclusive);
2508
2509     [id(DISPID_SOM_TOTALDIGITS), propget]
2510     HRESULT totalDigits(
2511         [out,retval] VARIANT* totalDigits);
2512
2513     [id(DISPID_SOM_FRACTIONDIGITS), propget]
2514     HRESULT fractionDigits(
2515         [out,retval] VARIANT* fractionDigits);
2516
2517     [id(DISPID_SOM_LENGTH), propget]
2518     HRESULT length(
2519         [out,retval] VARIANT* length);
2520
2521     [id(DISPID_SOM_MINLENGTH), propget]
2522     HRESULT minLength(
2523         [out,retval]VARIANT* minLength);
2524
2525     [id(DISPID_SOM_MAXLENGTH), propget]
2526     HRESULT maxLength(
2527         [out,retval]VARIANT* maxLength);
2528
2529     [id(DISPID_SOM_ENUMERATION), propget]
2530     HRESULT enumeration(
2531         [out,retval] ISchemaStringCollection** enumeration);
2532
2533     [id(DISPID_SOM_WHITESPACE), propget]
2534     HRESULT whitespace(
2535         [out,retval]SCHEMAWHITESPACE* whitespace);
2536
2537     [id(DISPID_SOM_PATTERNS), propget]
2538     HRESULT patterns(
2539         [out,retval] ISchemaStringCollection** patterns);
2540 };
2541
2542 [
2543     local,
2544     object,
2545     uuid(50ea08b9-dd1b-4664-9a50-c2f40f4bd79a),
2546     oleautomation,
2547     dual,
2548 ]
2549 interface ISchemaComplexType : ISchemaType
2550 {
2551     [id(DISPID_SOM_ISABSTRACT), propget]
2552     HRESULT isAbstract(
2553         [out,retval] VARIANT_BOOL* abstract);
2554
2555     [id(DISPID_SOM_ANYATTRIBUTE), propget]
2556     HRESULT anyAttribute(
2557         [out,retval] ISchemaAny** anyAttribute);
2558
2559     [id(DISPID_SOM_ATTRIBUTES), propget]
2560     HRESULT attributes(
2561         [out,retval] ISchemaItemCollection** attributes);
2562
2563     [id(DISPID_SOM_CONTENTTYPE), propget]
2564     HRESULT contentType(
2565         [out,retval] SCHEMACONTENTTYPE* contentType);
2566
2567     [id(DISPID_SOM_CONTENTMODEL), propget]
2568     HRESULT contentModel(
2569         [out,retval] ISchemaModelGroup** contentModel);
2570
2571     [id(DISPID_SOM_PROHIBITED), propget]
2572     HRESULT prohibitedSubstitutions(
2573         [out,retval] SCHEMADERIVATIONMETHOD* prohibited);
2574 };
2575
2576 [
2577     local,
2578     object,
2579     uuid(50ea08ba-dd1b-4664-9a50-c2f40f4bd79a),
2580     oleautomation,
2581     dual,
2582 ]
2583 interface ISchemaAttributeGroup : ISchemaItem
2584 {
2585     [id(DISPID_SOM_ANYATTRIBUTE), propget]
2586     HRESULT anyAttribute(
2587         [out,retval] ISchemaAny** anyAttribute);
2588
2589     [id(DISPID_SOM_ATTRIBUTES), propget]
2590         HRESULT attributes(
2591             [out,retval] ISchemaItemCollection** attributes);
2592 };
2593
2594 [
2595     local,
2596     object,
2597     uuid(50ea08bb-dd1b-4664-9a50-c2f40f4bd79a),
2598     oleautomation,
2599     dual,
2600 ]
2601 interface ISchemaModelGroup : ISchemaParticle
2602 {
2603     [id(DISPID_SOM_PARTICLES), propget]
2604     HRESULT particles(
2605         [out,retval] ISchemaItemCollection** particles);
2606 };
2607
2608 [
2609     local,
2610     object,
2611     uuid(50ea08bc-dd1b-4664-9a50-c2f40f4bd79a),
2612     oleautomation,
2613     dual
2614 ]
2615 interface ISchemaAny : ISchemaParticle
2616 {
2617     [id(DISPID_SOM_NAMESPACES), propget]
2618     HRESULT namespaces(
2619         [out,retval] ISchemaStringCollection** namespaces);
2620
2621     [id(DISPID_SOM_PROCESSCONTENTS), propget]
2622     HRESULT processContents(
2623         [out,retval] SCHEMAPROCESSCONTENTS* processContents);
2624 };
2625
2626 [
2627     local,
2628     object,
2629     uuid(50ea08bd-dd1b-4664-9a50-c2f40f4bd79a),
2630     oleautomation,
2631     dual
2632 ]
2633 interface ISchemaIdentityConstraint : ISchemaItem
2634 {
2635     [id(DISPID_SOM_SELECTOR), propget]
2636     HRESULT selector(
2637         [out,retval] BSTR* selector);
2638
2639     [id(DISPID_SOM_FIELDS), propget]
2640         HRESULT fields(
2641             [out,retval] ISchemaStringCollection** fields);
2642
2643     [id(DISPID_SOM_REFERENCEDKEY), propget]
2644     HRESULT referencedKey(
2645         [out,retval] ISchemaIdentityConstraint** key);
2646 };
2647
2648 [
2649     local,
2650     object,
2651     uuid(50ea08be-dd1b-4664-9a50-c2f40f4bd79a),
2652     oleautomation,
2653     dual
2654 ]
2655 interface ISchemaNotation : ISchemaItem
2656 {
2657     [id(DISPID_SOM_SYSTEMIDENTIFIER), propget]
2658     HRESULT systemIdentifier(
2659         [out,retval] BSTR* uri);
2660
2661     [id(DISPID_SOM_PUBLICIDENTIFIER), propget]
2662     HRESULT publicIdentifier(
2663         [out,retval] BSTR* uri);
2664 };
2665
2666
2667 [
2668     uuid(079aa557-4a18-424a-8eee-e39f0a8d41b9)
2669 ]
2670 coclass SAXXMLReader
2671 {
2672     [default] interface IVBSAXXMLReader;
2673     interface ISAXXMLReader;
2674     interface IMXReaderControl;
2675 };
2676
2677 [
2678     uuid(3124c396-fb13-4836-a6ad-1317f1713688)
2679 ]
2680 coclass SAXXMLReader30
2681 {
2682     [default] interface IVBSAXXMLReader;
2683     interface ISAXXMLReader;
2684     interface IMXReaderControl;
2685 };
2686
2687 [
2688     uuid(7c6e29bc-8b8b-4c3d-859e-af6cd158be0f)
2689 ]
2690 coclass SAXXMLReader40
2691 {
2692     [default] interface IVBSAXXMLReader;
2693     interface ISAXXMLReader;
2694 };
2695
2696 [
2697     uuid(fc220ad8-a72a-4ee8-926e-0b7ad152a020)
2698 ]
2699 coclass MXXMLWriter
2700 {
2701     [default] interface IMXWriter;
2702
2703     interface ISAXContentHandler;
2704     interface ISAXErrorHandler;
2705     interface ISAXDTDHandler;
2706     interface ISAXLexicalHandler;
2707     interface ISAXDeclHandler;
2708
2709     interface IVBSAXContentHandler;
2710     interface IVBSAXDeclHandler;
2711     interface IVBSAXDTDHandler;
2712     interface IVBSAXErrorHandler;
2713     interface IVBSAXLexicalHandler;
2714 };
2715
2716 [
2717     uuid(3d813dfe-6c91-4a4e-8f41-04346a841d9c)
2718 ]
2719 coclass MXXMLWriter30
2720 {
2721     [default] interface IMXWriter;
2722
2723     interface ISAXContentHandler;
2724     interface ISAXDeclHandler;
2725     interface ISAXDTDHandler;
2726     interface ISAXErrorHandler;
2727     interface ISAXLexicalHandler;
2728
2729     interface IVBSAXContentHandler;
2730     interface IVBSAXDeclHandler;
2731     interface IVBSAXDTDHandler;
2732     interface IVBSAXErrorHandler;
2733     interface IVBSAXLexicalHandler;
2734 };
2735
2736 [
2737     uuid(88d969c8-f192-11d4-a65f-0040963251e5),
2738 ]
2739 coclass MXXMLWriter40
2740 {
2741     [default] interface IMXWriter;
2742
2743     interface ISAXContentHandler;
2744     interface ISAXDeclHandler;
2745     interface ISAXDTDHandler;
2746     interface ISAXErrorHandler;
2747     interface ISAXLexicalHandler;
2748
2749     interface IVBSAXContentHandler;
2750     interface IVBSAXDeclHandler;
2751     interface IVBSAXDTDHandler;
2752     interface IVBSAXErrorHandler;
2753     interface IVBSAXLexicalHandler;
2754 };
2755
2756 [
2757     uuid(4dd441ad-526d-4a77-9f1b-9841ed802fb0)
2758 ]
2759 coclass SAXAttributes
2760 {
2761     [default] interface IMXAttributes;
2762     interface IVBSAXAttributes;
2763     interface ISAXAttributes;
2764 };
2765
2766 [
2767     uuid(3e784a01-f3ae-4dc0-9354-9526b9370eba)
2768 ]
2769 coclass SAXAttributes30
2770 {
2771     [default] interface IMXAttributes;
2772     interface IVBSAXAttributes;
2773     interface ISAXAttributes;
2774 };
2775
2776 [
2777     uuid(88d969ca-f192-11d4-a65f-0040963251e5),
2778 ]
2779 coclass SAXAttributes40
2780 {
2781     [default] interface IMXAttributes;
2782     interface IVBSAXAttributes;
2783     interface ISAXAttributes;
2784 };
2785
2786
2787 } /* Library MSXML */