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