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