oleaut32/tests: Remove incorrect test.
[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
89 cpp_quote("#define DOMDocument DOMDocument2")
90 cpp_quote("#define CLSID_DOMDocument CLSID_DOMDocument2")
91
92 cpp_quote("#ifndef __WIDL_XMLDOM_H")
93 typedef enum tagDOMNodeType 
94 {  
95     NODE_INVALID                = 0,
96     NODE_ELEMENT                = 1,
97     NODE_ATTRIBUTE              = 2,
98     NODE_TEXT                   = 3,
99     NODE_CDATA_SECTION          = 4,
100     NODE_ENTITY_REFERENCE       = 5,
101     NODE_ENTITY                 = 6,
102     NODE_PROCESSING_INSTRUCTION = 7,
103     NODE_COMMENT                = 8,
104     NODE_DOCUMENT               = 9,
105     NODE_DOCUMENT_TYPE          = 10,
106     NODE_DOCUMENT_FRAGMENT      = 11,
107     NODE_NOTATION               = 12
108 } DOMNodeType;
109 cpp_quote("#endif   /* __WIDL_XMLDOM_H */")
110
111 [
112 local,
113 object,
114 uuid (2933BF80-7B36-11d2-B20E-00C04F983E60)
115 ]
116 interface IXMLDOMNode : IDispatch
117 {
118     [propget, id(DISPID_DOM_NODE_NODENAME)]
119     HRESULT nodeName([retval, out] BSTR *p);
120
121     [propget, id(DISPID_DOM_NODE_NODEVALUE)]
122     HRESULT nodeValue([retval, out] VARIANT *var1);
123
124     [propput, id(DISPID_DOM_NODE_NODEVALUE)]
125     HRESULT nodeValue([in] VARIANT var1);
126
127     [propget, id(DISPID_DOM_NODE_NODETYPE)]
128     HRESULT nodeType([retval, out] DOMNodeType *domNodeType);
129
130     [propget, id(DISPID_DOM_NODE_PARENTNODE)]
131     HRESULT parentNode([retval, out] IXMLDOMNode **parent);
132
133     [propget, id(DISPID_DOM_NODE_CHILDNODES)]
134     HRESULT childNodes([retval, out] IXMLDOMNodeList **outList);
135
136     [propget, id(DISPID_DOM_NODE_FIRSTCHILD)]
137     HRESULT firstChild([retval, out] IXMLDOMNode **domNode);
138
139     [propget, id(DISPID_DOM_NODE_LASTCHILD)]
140     HRESULT lastChild([retval, out] IXMLDOMNode **domNode);
141
142     [propget, id(DISPID_DOM_NODE_PREVIOUSSIBLING)]
143     HRESULT previousSibling([retval, out] IXMLDOMNode **domNode);
144
145     [propget, id(DISPID_DOM_NODE_NEXTSIBLING)]
146     HRESULT nextSibling([retval, out] IXMLDOMNode **domNode);
147
148     [propget, id(DISPID_DOM_NODE_ATTRIBUTES)]
149     HRESULT attributes([retval, out] IXMLDOMNamedNodeMap **attributeMap);
150
151     [id(DISPID_DOM_NODE_INSERTBEFORE)]
152     HRESULT insertBefore(
153         [in] IXMLDOMNode *newNode,
154         [in] VARIANT var1,
155         [retval, out] IXMLDOMNode **outOldNode);
156
157     [id(DISPID_DOM_NODE_REPLACECHILD)]
158     HRESULT replaceChild(
159         [in] IXMLDOMNode *newNode,
160         [in] IXMLDOMNode *oldNode,
161         [retval, out] IXMLDOMNode **outOldNode);
162
163     [id(DISPID_DOM_NODE_REMOVECHILD)]
164     HRESULT removeChild(
165         [in] IXMLDOMNode *domNode,
166         [retval, out] IXMLDOMNode **oldNode);
167
168     [id(DISPID_DOM_NODE_APPENDCHILD)]
169     HRESULT appendChild(
170         [in] IXMLDOMNode *newNode,
171         [retval, out] IXMLDOMNode **outNewNode);
172
173     [id(DISPID_DOM_NODE_HASCHILDNODES)]
174     HRESULT hasChildNodes(
175         [retval, out] VARIANT_BOOL *pbool);
176
177     [propget, id(DISPID_DOM_NODE_OWNERDOC)]
178     HRESULT ownerDocument([retval, out] IXMLDOMDocument **domDocument);
179
180     [id(DISPID_DOM_NODE_CLONENODE)]
181     HRESULT cloneNode(
182         [in] VARIANT_BOOL pbool,
183         [retval, out] IXMLDOMNode **outNode);
184
185     [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE)]
186     HRESULT nodeTypeString([retval, out] BSTR *p);
187
188     [propget, id(DISPID_XMLDOM_NODE_TEXT)]
189     HRESULT text([retval, out] BSTR *p);
190
191     [propput, id(DISPID_XMLDOM_NODE_TEXT)]
192     HRESULT text([in] BSTR p);
193
194     [propget, id(DISPID_XMLDOM_NODE_SPECIFIED)]
195     HRESULT specified([retval, out] VARIANT_BOOL *pbool);
196
197     [propget, id(DISPID_XMLDOM_NODE_DEFINITION)]
198     HRESULT definition([retval,out] IXMLDOMNode **domNode);
199
200     [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
201     HRESULT nodeTypedValue([retval, out] VARIANT *var1);
202
203     [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
204     HRESULT nodeTypedValue([in] VARIANT var1);
205
206     [propget, id(DISPID_XMLDOM_NODE_DATATYPE)]
207     HRESULT dataType([retval, out] VARIANT *var1);
208
209     [propput, id(DISPID_XMLDOM_NODE_DATATYPE)]
210     HRESULT dataType([in] BSTR p);
211
212     [propget, id(DISPID_XMLDOM_NODE_XML)]
213     HRESULT xml([retval, out] BSTR *p);
214
215     [id(DISPID_XMLDOM_NODE_TRANSFORMNODE)]
216     HRESULT transformNode(
217         [in] IXMLDOMNode *domNode,
218         [retval, out] BSTR *p);
219
220     [id(DISPID_XMLDOM_NODE_SELECTNODES)]
221     HRESULT selectNodes(
222         [in] BSTR p,
223         [retval, out] IXMLDOMNodeList **outList);
224
225     [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE)]
226     HRESULT selectSingleNode(
227         [in] BSTR p,
228         [retval, out] IXMLDOMNode **outNode);
229
230     [propget,id(DISPID_XMLDOM_NODE_PARSED)]
231     HRESULT parsed([retval, out] VARIANT_BOOL *pbool);
232
233     [propget, id(DISPID_XMLDOM_NODE_NAMESPACE)]
234     HRESULT namespaceURI([retval, out] BSTR *p);
235
236     [propget, id(DISPID_XMLDOM_NODE_PREFIX)]
237     HRESULT prefix([retval, out] BSTR *p);
238
239     [propget, id(DISPID_XMLDOM_NODE_BASENAME)]
240     HRESULT baseName([retval, out] BSTR *p);
241
242     [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT)]
243     HRESULT transformNodeToObject(
244         [in] IXMLDOMNode *domNode,
245         [in] VARIANT var1);
246 }
247
248 [
249 local,
250 object,
251 uuid (2933BF81-7B36-11d2-B20E-00C04F983E60)
252 ]
253 interface IXMLDOMDocument : IXMLDOMNode
254 {
255     [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)]
256     HRESULT doctype([retval, out] IXMLDOMDocumentType **docType);
257
258     [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION)]
259     HRESULT implementation([retval, out] IXMLDOMImplementation **impl);
260
261     [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
262     HRESULT documentElement([retval, out] IXMLDOMElement **domElement);
263
264     [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
265     HRESULT documentElement([in] IXMLDOMElement *domElement);
266
267     [id(DISPID_DOM_DOCUMENT_CREATEELEMENT)]
268     HRESULT createElement(
269         [in] BSTR p,
270         [retval, out] IXMLDOMElement **domElement);
271
272     [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT)]
273     HRESULT createDocumentFragment(
274         [retval, out] IXMLDOMDocumentFragment **docFrag);
275
276     [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE)]
277     HRESULT createTextNode(
278         [in] BSTR p,
279         [retval, out] IXMLDOMText **text);
280
281     [id(DISPID_DOM_DOCUMENT_CREATECOMMENT)]
282     HRESULT createComment(
283         [in] BSTR p,
284         [retval, out] IXMLDOMComment **comment);
285
286     [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION)]
287     HRESULT createCDATASection(
288         [in] BSTR p,
289         [retval, out] IXMLDOMCDATASection **cdata);
290
291     [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION)]
292     HRESULT createProcessingInstruction(
293         [in] BSTR target,
294         [in] BSTR data,
295         [retval, out] IXMLDOMProcessingInstruction **pi);
296
297     [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE)]
298     HRESULT createAttribute(
299         [in] BSTR p,
300         [retval, out] IXMLDOMAttribute **attribute);
301
302     [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE)]
303     HRESULT createEntityReference(
304         [in] BSTR p,
305         [retval, out] IXMLDOMEntityReference **entityRef);
306
307     [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME)]
308     HRESULT getElementsByTagName(
309         [in] BSTR p,
310         [retval, out] IXMLDOMNodeList **resultList);
311
312     [id(DISPID_XMLDOM_DOCUMENT_CREATENODE)]
313     HRESULT createNode(
314         [in] VARIANT var, 
315         [in] BSTR name, 
316         [in] BSTR uri,
317         [retval, out] IXMLDOMNode **node);
318
319     [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID)]
320     HRESULT nodeFromID( 
321         [in] BSTR id,
322         [retval, out] IXMLDOMNode **node);
323
324     [id(DISPID_XMLDOM_DOCUMENT_LOAD)]
325     HRESULT load(
326         [in] VARIANT var1,
327         [retval, out] VARIANT_BOOL *pbool);
328
329     [propget, id(DISPID_READYSTATE)]
330     HRESULT readyState([retval, out] LONG *value);
331
332     [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR)]
333     HRESULT parseError([retval, out] IXMLDOMParseError **err);
334
335     [propget, id(DISPID_XMLDOM_DOCUMENT_URL)]
336     HRESULT url([retval, out] BSTR *p);
337
338     [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
339     HRESULT async([retval, out] VARIANT_BOOL *pbool);
340
341     [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
342     HRESULT async([in] VARIANT_BOOL pbool);
343
344     [id(DISPID_XMLDOM_DOCUMENT_ABORT)]
345     HRESULT abort();
346
347     [id(DISPID_XMLDOM_DOCUMENT_LOADXML)]
348     HRESULT loadXML( 
349         [in] BSTR p,
350         [out, retval] VARIANT_BOOL *pbool);
351
352     [id(DISPID_XMLDOM_DOCUMENT_SAVE)]
353     HRESULT save( 
354         [in] VARIANT var1);
355
356     [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
357     HRESULT validateOnParse([retval, out] VARIANT_BOOL *pbool);
358
359     [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
360     HRESULT validateOnParse([in] VARIANT_BOOL pbool);
361
362     [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
363     HRESULT resolveExternals([retval,out] VARIANT_BOOL *pbool);
364
365     [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
366     HRESULT resolveExternals([in] VARIANT_BOOL pbool);
367
368     [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
369     HRESULT preserveWhiteSpace([retval,out] VARIANT_BOOL *pbool);
370
371     [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
372     HRESULT preserveWhiteSpace([in] VARIANT_BOOL pbool);
373
374     [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE)]
375     HRESULT onreadystatechange([in] VARIANT var1);
376
377     [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE)]
378     HRESULT ondataavailable([in] VARIANT var1);
379
380     [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE)]
381     HRESULT ontransformnode([in] VARIANT var1);
382 }
383
384 [
385 local,
386 object,
387 uuid (373984c8-b845-449b-91e7-45ac83036ade)
388 ]
389 interface IXMLDOMSchemaCollection : IDispatch
390 {
391     [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADD)]
392     HRESULT add(
393         [in] BSTR uri,
394         [in] VARIANT var);
395
396     [id(DISPID_XMLDOM_SCHEMACOLLECTION_GET)]
397     HRESULT get(
398         [in] BSTR uri,
399         [retval, out] IXMLDOMNode **node);
400
401     [id(DISPID_XMLDOM_SCHEMACOLLECTION_REMOVE)]
402     HRESULT remove(
403         [in] BSTR uri);
404
405     [propget, id(DISPID_XMLDOM_SCHEMACOLLECTION_LENGTH)]
406     HRESULT length(
407         [retval, out] LONG *length);
408
409     [propget, id(DISPID_VALUE)]
410     HRESULT namespaceURI([in] LONG index, [out, retval] BSTR *len);
411
412     [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADDCOLLECTION)]
413     HRESULT addCollection(
414         [in] IXMLDOMSchemaCollection *otherCollection);
415
416     [propget, id(DISPID_NEWENUM)]
417     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
418 }
419
420 [
421 local,
422 object,
423 uuid (2933BF95-7B36-11d2-B20E-00C04F983E60)
424 ]
425 interface IXMLDOMDocument2 : IXMLDOMDocument
426 {
427     [propget, id(DISPID_XMLDOM_DOCUMENT2_NAMESPACES)]
428     HRESULT namespaces([retval, out] IXMLDOMSchemaCollection **schemaCollection);
429
430     [propget, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
431     HRESULT schemas([retval, out] VARIANT *var1);
432
433     [propputref, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
434     HRESULT schemas([in] VARIANT var1);
435
436     [id(DISPID_XMLDOM_DOCUMENT2_VALIDATE)]
437     HRESULT validate(
438         [retval, out] IXMLDOMParseError **err);
439
440     [id(DISPID_XMLDOM_DOCUMENT2_SETPROPERTY)]
441     HRESULT setProperty(
442         [in] BSTR p,
443         [in] VARIANT var);
444
445     [id(DISPID_XMLDOM_DOCUMENT2_GETPROPERTY)]
446     HRESULT getProperty(
447         [in] BSTR p,
448         [retval, out] VARIANT *var);
449 }
450
451 [
452 local,
453 object,
454 uuid (2933BF82-7B36-11d2-B20E-00C04F983E60)
455 ]
456 interface IXMLDOMNodeList : IDispatch
457 {
458     [propget, id(DISPID_VALUE)]
459     HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
460
461     [propget, id(DISPID_DOM_NODELIST_LENGTH)]
462     HRESULT length([retval, out] LONG *lLength);
463
464     [id(DISPID_XMLDOM_NODELIST_NEXTNODE)]
465     HRESULT nextNode(
466         [retval, out] IXMLDOMNode **outNode);
467
468     [id(DISPID_XMLDOM_NODELIST_RESET)]
469     HRESULT reset();
470
471     [propget, id(DISPID_NEWENUM)]
472     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
473 }
474
475 [
476 local,
477 object,
478 uuid (AA634FC7-5888-44a7-A257-3A47150D3A0E)
479 ]
480 interface IXMLDOMSelection : IXMLDOMNodeList
481 {
482     [propget, id(DISPID_XMLDOM_SELECTION_EXPR)]
483     HRESULT expr([retval, out] BSTR *p);
484
485     [propput, id(DISPID_XMLDOM_SELECTION_EXPR)]
486     HRESULT expr([in] BSTR p);
487
488     [propget, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
489     HRESULT context([retval, out] IXMLDOMNode **ppNode);
490
491     [propputref, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
492     HRESULT context([in] IXMLDOMNode * pNode);
493
494     [id(DISPID_XMLDOM_SELECTION_PEEKNODE)]
495     HRESULT peekNode(
496         [retval, out] IXMLDOMNode **ppNode);
497
498     [id(DISPID_XMLDOM_SELECTION_MATCHES)]
499     HRESULT matches(
500         [in] IXMLDOMNode *pNode,
501         [retval, out] IXMLDOMNode **ppNode);
502
503     [id(DISPID_XMLDOM_SELECTION_REMOVENEXT)] 
504     HRESULT removeNext(
505         [retval, out] IXMLDOMNode **ppNode);
506
507     [id(DISPID_XMLDOM_SELECTION_REMOVEALL)]
508     HRESULT removeAll();
509
510     [id(DISPID_XMLDOM_SELECTION_CLONE)]
511     HRESULT clone(
512         [retval, out] IXMLDOMSelection **ppNode);
513
514     [id(DISPID_XMLDOM_SELECTION_GETPROPERTY)]
515     HRESULT getProperty(
516         [in] BSTR p,
517         [retval, out] VARIANT * var);
518
519     [id(DISPID_XMLDOM_SELECTION_SETPROPERTY)]
520     HRESULT setProperty(
521         [in] BSTR p,
522         [in] VARIANT var);
523 }
524
525 [
526 local,
527 object,
528 uuid (2933BF83-7B36-11d2-B20E-00C04F983E60)
529 ]
530 interface IXMLDOMNamedNodeMap : IDispatch
531 {
532     [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)]
533     HRESULT getNamedItem(
534         [in] BSTR p,
535         [retval, out] IXMLDOMNode **outNode);
536
537     [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)]
538     HRESULT setNamedItem(
539         [in] IXMLDOMNode *newNode,
540         [retval, out] IXMLDOMNode **outNode);
541
542     [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)]
543     HRESULT removeNamedItem(
544         [in] BSTR p,
545         [retval, out] IXMLDOMNode **outNode);
546
547     [propget, id(DISPID_VALUE)]
548     HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
549
550     [propget, id(DISPID_DOM_NODELIST_LENGTH)]
551     HRESULT length([retval, out] LONG *lLength);
552
553     [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)]
554     HRESULT getQualifiedItem(
555         [in] BSTR name,
556         [in] BSTR uri,
557         [retval, out] IXMLDOMNode **outNode);
558
559     [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)]
560     HRESULT removeQualifiedItem(
561         [in] BSTR name,
562         [in] BSTR uri,
563         [retval, out] IXMLDOMNode **outNode);
564
565     [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)]
566     HRESULT nextNode(
567         [retval, out] IXMLDOMNode **outNode);
568
569     [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)]
570     HRESULT reset();
571
572     [propget, id(DISPID_NEWENUM)]
573     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
574 }
575  
576 [
577 local,
578 object,
579 uuid (3efaa413-272f-11d2-836f-0000f87a7782)
580 ]
581 interface IXMLDOMDocumentFragment : IXMLDOMNode 
582 {
583 }
584
585 [
586 local,
587 object,
588 uuid (2933BF84-7B36-11d2-B20E-00C04F983E60)
589 ]
590 interface IXMLDOMCharacterData : IXMLDOMNode 
591 {
592     [propget, id(DISPID_DOM_DATA_DATA)]
593     HRESULT data([retval, out] BSTR *p);
594
595     [propput, id(DISPID_DOM_DATA_DATA)]
596     HRESULT data([in] BSTR data);
597
598     [propget, id(DISPID_DOM_DATA_LENGTH)]
599     HRESULT length([retval, out] LONG *len);
600
601     [id(DISPID_DOM_DATA_SUBSTRING)]
602     HRESULT substringData(
603         [in] LONG offset,
604         [in] LONG count,
605         [retval, out] BSTR *p);
606
607     [id(DISPID_DOM_DATA_APPEND)]
608     HRESULT appendData(
609         [in] BSTR p);
610
611     [id(DISPID_DOM_DATA_INSERT)]
612     HRESULT insertData(
613         [in] LONG offset,
614         [in] BSTR p);
615
616     [id(DISPID_DOM_DATA_DELETE)]
617     HRESULT deleteData(
618         [in] LONG offset,
619         [in] LONG count);
620
621     [id(DISPID_DOM_DATA_REPLACE)]
622     HRESULT replaceData(
623         [in] LONG offset,
624         [in] LONG count,
625         [in] BSTR p);
626 }
627
628 [
629 local,
630 object,
631 uuid (2933BF85-7B36-11d2-B20E-00C04F983E60)
632 ]
633 interface IXMLDOMAttribute : IXMLDOMNode 
634 {
635     [propget, id(DISPID_DOM_ATTRIBUTE_GETNAME)]
636     HRESULT name([retval, out] BSTR *p);
637
638     [propget, id(DISPID_DOM_ATTRIBUTE_VALUE)]
639     HRESULT value([retval, out] VARIANT *var1);
640
641     [propput, id(DISPID_DOM_ATTRIBUTE_VALUE)]
642     HRESULT value([in] VARIANT var1);
643 }
644
645 [
646 local,
647 object,
648 uuid (2933BF86-7B36-11d2-B20E-00C04F983E60)
649 ]
650 interface IXMLDOMElement : IXMLDOMNode 
651 {
652     [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)]
653     HRESULT tagName([retval, out] BSTR *p);
654
655     [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)]
656     HRESULT getAttribute(
657         [in] BSTR p,
658         [retval, out] VARIANT *var);
659
660     [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)]
661     HRESULT setAttribute(
662         [in] BSTR p,
663         [in] VARIANT var);
664
665     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)]
666     HRESULT removeAttribute(
667         [in] BSTR p);
668
669     [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)]
670     HRESULT getAttributeNode(
671         [in] BSTR p,
672         [retval, out] IXMLDOMAttribute **attributeNode);
673
674     [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)]
675     HRESULT setAttributeNode(
676         [in] IXMLDOMAttribute *domAttribute,
677         [retval, out] IXMLDOMAttribute **attributeNode);
678
679     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)]
680     HRESULT removeAttributeNode(
681         [in] IXMLDOMAttribute *domAttribute,
682         [retval, out] IXMLDOMAttribute **attributeNode);
683
684     [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)]
685     HRESULT getElementsByTagName(
686         [in] BSTR p,
687         [retval, out] IXMLDOMNodeList **resultList);
688
689     [id(DISPID_DOM_ELEMENT_NORMALIZE)]
690     HRESULT normalize();
691 }
692
693 [
694 local,
695 object,
696 uuid (2933BF87-7B36-11d2-B20E-00C04F983E60)
697 ]
698 interface IXMLDOMText : IXMLDOMCharacterData 
699 {
700     [id(DISPID_DOM_TEXT_SPLITTEXT)]
701     HRESULT splitText(
702         [in] LONG offset,
703         [retval, out] IXMLDOMText **txtNode);
704 }
705
706 [
707 local,
708 object,
709 uuid (2933BF88-7B36-11d2-B20E-00C04F983E60)
710 ]
711 interface IXMLDOMComment : IXMLDOMCharacterData 
712 {
713 }
714
715 [
716 local,
717 object,
718 uuid (2933BF89-7B36-11d2-B20E-00C04F983E60)
719 ]
720 interface IXMLDOMProcessingInstruction : IXMLDOMNode 
721 {
722     [propget, id(DISPID_DOM_PI_TARGET)]
723     HRESULT target([retval, out] BSTR *p);
724
725     [propget, id(DISPID_DOM_PI_DATA)]
726     HRESULT data([retval, out] BSTR *p);
727
728     [propput, id(DISPID_DOM_PI_DATA)]
729     HRESULT data([in] BSTR p);
730 }
731
732 [
733 local,
734 object,
735 uuid (2933BF8A-7B36-11d2-B20E-00C04F983E60)
736 ]
737 interface IXMLDOMCDATASection : IXMLDOMText 
738 {
739 }
740
741 [
742 local,
743 object,
744 uuid (2933BF8B-7B36-11d2-B20E-00C04F983E60)
745 ]
746 interface IXMLDOMDocumentType : IXMLDOMNode 
747 {
748     [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)]
749     HRESULT name([retval, out] BSTR *p);
750
751     [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)]
752     HRESULT entities([retval, out] IXMLDOMNamedNodeMap **entityMap);
753
754     [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)]
755     HRESULT notations([retval, out] IXMLDOMNamedNodeMap **notationMap);
756 }
757
758 [
759 local,
760 object,
761 uuid (2933BF8C-7B36-11d2-B20E-00C04F983E60)
762 ]
763 interface IXMLDOMNotation : IXMLDOMNode 
764 {
765     [propget, id(DISPID_DOM_NOTATION_PUBLICID)]
766     HRESULT publicId([retval, out] VARIANT *id);
767
768     [propget, id(DISPID_DOM_NOTATION_SYSTEMID)]
769     HRESULT systemId([retval, out] VARIANT *id);
770 }
771
772 [
773 local,
774 object,
775 uuid (2933BF8D-7B36-11d2-B20E-00C04F983E60)
776 ]
777 interface IXMLDOMEntity : IXMLDOMNode 
778 {
779     [propget, id(DISPID_DOM_ENTITY_PUBLICID)]
780     HRESULT publicId([retval, out] VARIANT *id1);
781
782     [propget, id(DISPID_DOM_ENTITY_SYSTEMID)]
783     HRESULT systemId([retval, out] VARIANT *id1);
784
785     [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)]
786     HRESULT notationName([retval, out] BSTR *p);
787 }
788
789 [
790 local,
791 object,
792 uuid (2933BF8E-7B36-11d2-B20E-00C04F983E60)
793 ]
794 interface IXMLDOMEntityReference : IXMLDOMNode 
795 {
796 }
797
798 [
799 local,
800 object,
801 uuid (2933BF8F-7B36-11d2-B20E-00C04F983E60)
802 ]
803 interface IXMLDOMImplementation : IDispatch
804 {
805     [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)]
806     HRESULT hasFeature(
807         [in] BSTR feature,
808         [in] BSTR version,
809         [retval, out] VARIANT_BOOL *pbool);
810 }
811
812 [
813 local,
814 object,
815 uuid (3efaa425-272f-11d2-836f-0000f87a7782)
816 ]
817 interface IXTLRuntime : IXMLDOMNode
818 {
819     [id(DISPID_XTLRUNTIME_UNIQUEID)] 
820     HRESULT uniqueID(
821         [in]IXMLDOMNode *pNode, 
822         [retval, out]LONG *pID);
823
824     [id(DISPID_XTLRUNTIME_DEPTH)]
825     HRESULT depth(
826         [in] IXMLDOMNode *pNode, 
827         [retval, out]LONG * pDepth);
828
829     [id(DISPID_XTLRUNTIME_CHILDNUMBER)] 
830     HRESULT childNumber(
831         [in]IXMLDOMNode *pNode, 
832         [retval, out] LONG *pNumber);
833
834     [id(DISPID_XTLRUNTIME_ANCESTORCHILDNUMBER)]
835     HRESULT ancestorChildNumber(
836         [in]BSTR bstr, 
837         [in]IXMLDOMNode *pNode, 
838         [retval, out]LONG *pNumber);
839
840     [id(DISPID_XTLRUNTIME_ABSOLUTECHILDNUMBER)]
841     HRESULT absoluteChildNumber(
842         [in]IXMLDOMNode *pNode, 
843         [retval, out]LONG *pNumber);
844
845     [id(DISPID_XTLRUNTIME_FORMATINDEX)]
846     HRESULT formatIndex(
847         [in] LONG lIndex,
848         [in] BSTR bstr, 
849         [retval, out]BSTR *pbstr);
850
851     [id(DISPID_XTLRUNTIME_FORMATNUMBER)]
852     HRESULT formatNumber(
853         [in] double dblNumber, 
854         [in] BSTR bstr, 
855         [retval, out]BSTR *pbstr);
856
857     [id(DISPID_XTLRUNTIME_FORMATDATE)]
858     HRESULT formatDate(
859         [in] VARIANT var1, 
860         [in] BSTR bstr, 
861         [optional, in] VARIANT var2,
862         [retval, out]BSTR *pbstr);
863
864     [id(DISPID_XTLRUNTIME_FORMATTIME)]
865     HRESULT formatTime(
866         [in] VARIANT var1, 
867         [in] BSTR bstr, 
868         [optional, in] VARIANT var2,
869         [retval, out]BSTR *pbstr);
870
871 }
872
873 [
874     uuid(3efaa427-272f-11d2-836f-0000f87a7782)
875 ]
876 dispinterface XMLDOMDocumentEvents 
877 {
878     properties:
879     methods:
880     [id (DISPID_XMLDOMEVENT_ONDATAAVAILABLE)]  
881     HRESULT ondataavailable();
882  
883     [id (DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)] 
884     HRESULT onreadystatechange();
885 }
886
887 [
888 local,
889 object,
890 uuid (2933BF92-7B36-11d2-B20E-00C04F983E60)
891 ]
892 interface IXSLProcessor : IDispatch
893 {
894     [propput, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
895     HRESULT input([in] VARIANT var);
896
897     [propget, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
898     HRESULT input([retval, out] VARIANT *var);
899
900     [propget, id(DISPID_XMLDOM_PROCESSOR_XSLTEMPLATE)]
901     HRESULT ownerTemplate([retval, out] IXSLTemplate **ppTemplate);
902
903     [id(DISPID_XMLDOM_PROCESSOR_SETSTARTMODE)]
904     HRESULT setStartMode(
905         [in] BSTR p, 
906         [in, defaultvalue("")] BSTR uri);
907
908     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODE)]
909     HRESULT startMode([retval, out] BSTR *p);
910
911     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODEURI)]
912     HRESULT startModeURI([retval, out] BSTR *uri);
913
914     [propput, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
915     HRESULT output([in] VARIANT var);
916
917     [propget, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
918     HRESULT output([retval, out] VARIANT *var);
919
920     [id(DISPID_XMLDOM_PROCESSOR_TRANSFORM)]
921     HRESULT transform(
922         [retval, out] VARIANT_BOOL *pbool);
923
924     [id(DISPID_XMLDOM_PROCESSOR_RESET)]
925     HRESULT reset();
926
927     [propget, id(DISPID_XMLDOM_PROCESSOR_READYSTATE)]
928     HRESULT readyState([retval, out] LONG *pstate);
929
930     [id(DISPID_XMLDOM_PROCESSOR_ADDPARAMETER)]
931     HRESULT addParameter(
932         [in] BSTR p, 
933         [in] VARIANT var, 
934         [in, defaultvalue("")] BSTR uri);
935
936     [id(DISPID_XMLDOM_PROCESSOR_ADDOBJECT)]
937     HRESULT addObject(
938         [in] IDispatch* obj, 
939         [in] BSTR uri);
940
941     [propget, id(DISPID_XMLDOM_PROCESSOR_STYLESHEET)]
942     HRESULT stylesheet([retval, out] IXMLDOMNode **node);
943
944
945 [
946 local,
947 object,
948 uuid (2933BF93-7B36-11d2-B20E-00C04F983E60)
949 ]
950 interface IXSLTemplate : IDispatch
951 {
952     [propputref, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
953     HRESULT stylesheet([in] IXMLDOMNode *node);
954
955     [propget, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
956     HRESULT stylesheet([retval, out] IXMLDOMNode **node);
957
958     [id(DISPID_XMLDOM_TEMPLATE_CREATEPROCESSOR)]
959     HRESULT createProcessor(
960         [retval, out] IXSLProcessor **ppProcessor);
961
962
963 [
964     object,
965     uuid(ED8C108D-4349-11D2-91A4-00C04F7969E8),
966     odl,
967     dual,
968     oleautomation,
969     pointer_default(unique)
970 ]
971 interface IXMLHTTPRequest : IDispatch
972 {
973     [id(1)]
974     HRESULT open([in] BSTR bstrMethod, [in] BSTR bstrUrl, [in, optional] VARIANT varAsync,
975                  [in,optional] VARIANT username, [in,optional] VARIANT password);
976
977     [id(2)]
978     HRESULT setRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue);
979
980     [id(3)]
981     HRESULT getResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR * value);
982
983     [id(4)]
984     HRESULT getAllResponseHeaders([out, retval] BSTR * pbstrHeaders);
985
986     [id(5)]
987     HRESULT send([in, optional] VARIANT body);
988
989     [id(6)]
990     HRESULT abort();
991
992     [propget, id(7)]
993     HRESULT status([out, retval] LONG *pStatus);
994
995     [propget, id(8)]
996     HRESULT statusText([out, retval] BSTR *pStatus);
997
998     [propget, id(9)]
999     HRESULT responseXML([out, retval] IDispatch **pBody);
1000
1001     [propget, id(10)]
1002     HRESULT responseText([out, retval] BSTR *pBody);
1003
1004     [propget, id(11)]
1005     HRESULT responseBody([out, retval] VARIANT *pBody);
1006
1007     [propget, id(12)]
1008     HRESULT responseStream([out, retval] VARIANT *pBody);
1009
1010     [propget, id(13)]
1011     HRESULT readyState([out, retval] LONG *pState);
1012
1013     [propput, id(14)]
1014     HRESULT onreadystatechange([in] IDispatch *pReadyStateSink);
1015 };
1016
1017 [
1018 local,
1019 object,
1020 uuid (3efaa426-272f-11d2-836f-0000f87a7782)
1021 ]
1022 interface IXMLDOMParseError : IDispatch
1023 {
1024     [propget, id(DISPID_VALUE)]
1025     HRESULT errorCode([retval, out] LONG *errCode);
1026
1027     [propget, id(DISPID_DOM_ERROR_URL)]
1028     HRESULT url([retval, out] BSTR *p);
1029
1030     [propget, id(DISPID_DOM_ERROR_REASON)]
1031     HRESULT reason([retval, out] BSTR *p);
1032
1033     [propget, id(DISPID_DOM_ERROR_SRCTEXT)]
1034     HRESULT srcText([retval, out] BSTR *p);
1035
1036     [propget, id(DISPID_DOM_ERROR_LINE)]
1037     HRESULT line([retval, out] LONG *lineNo);
1038
1039     [propget, id(DISPID_DOM_ERROR_LINEPOS)]
1040     HRESULT linepos([retval, out] LONG * linePos);
1041
1042     [propget, id(DISPID_DOM_ERROR_FILEPOS)]
1043     HRESULT filepos([retval, out] LONG * filePos);
1044 }
1045
1046 [
1047     uuid(F6D90F11-9C73-11D3-B32E-00C04F990BB4)
1048 ]
1049 coclass DOMDocument
1050 {
1051     [default] interface IXMLDOMDocument2;
1052     [default, source] dispinterface XMLDOMDocumentEvents;
1053 }
1054
1055 [
1056     uuid(f5078f1b-c551-11d3-89b9-0000f81fe221)
1057 ]
1058 coclass DOMDocument26
1059 {
1060     [default] interface IXMLDOMDocument2;
1061     [default, source] dispinterface XMLDOMDocumentEvents;
1062 }
1063
1064 [
1065     uuid(f5078f32-c551-11d3-89b9-0000f81fe221)
1066 ]
1067 coclass DOMDocument30
1068 {
1069     [default] interface IXMLDOMDocument2;
1070     [default, source] dispinterface XMLDOMDocumentEvents;
1071 }
1072
1073 [
1074     uuid(88d969c0-f192-11d4-a65f-0040963251e5)
1075 ]
1076 coclass DOMDocument40
1077 {
1078     [default] interface IXMLDOMDocument2;
1079     [default, source] dispinterface XMLDOMDocumentEvents;
1080 }
1081
1082 [
1083     uuid(F6D90F12-9C73-11D3-B32E-00C04F990BB4)
1084 ]
1085 coclass FreeThreadedDOMDocument
1086 {
1087     [default] interface IXMLDOMDocument2;
1088     [default, source] dispinterface XMLDOMDocumentEvents;
1089 }
1090
1091 [
1092     uuid(f5078f1c-c551-11d3-89b9-0000f81fe221)
1093 ]
1094 coclass FreeThreadedDOMDocument26
1095 {
1096     [default] interface IXMLDOMDocument2;
1097     [default, source] dispinterface XMLDOMDocumentEvents;
1098 }
1099
1100 [
1101     uuid(f5078f33-c551-11d3-89b9-0000f81fe221)
1102 ]
1103 coclass FreeThreadedDOMDocument30
1104 {
1105     [default] interface IXMLDOMDocument2;
1106     [default, source] dispinterface XMLDOMDocumentEvents;
1107 }
1108
1109 [
1110     uuid(373984c9-b845-449b-91e7-45ac83036ade)
1111 ]
1112 coclass XMLSchemaCache
1113 {
1114     [default] interface IXMLDOMSchemaCollection;
1115 }
1116
1117 [
1118     uuid(f5078f1d-c551-11d3-89b9-0000f81fe221)
1119 ]
1120 coclass XMLSchemaCache26
1121 {
1122     [default] interface IXMLDOMSchemaCollection;
1123 }
1124
1125 [
1126     uuid(f5078f34-c551-11d3-89b9-0000f81fe221)
1127 ]
1128 coclass XMLSchemaCache30
1129 {
1130     [default] interface IXMLDOMSchemaCollection;
1131 }
1132
1133 [
1134     uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
1135 ]
1136 coclass XSLTemplate
1137 {
1138     [default] interface IXSLTemplate;
1139 }
1140
1141 [
1142     uuid(f5078f21-c551-11d3-89b9-0000f81fe221)
1143 ]
1144 coclass XSLTemplate26
1145 {
1146     [default] interface IXSLTemplate;
1147 }
1148
1149 [
1150     uuid(f5078f36-c551-11d3-89b9-0000f81fe221)
1151 ]
1152 coclass XSLTemplate30
1153 {
1154     [default] interface IXSLTemplate;
1155 }
1156
1157 /*
1158  * Sax Interfaces
1159  */
1160 [
1161     object,
1162     local,
1163     uuid(f078abe1-45d2-4832-91ea-4466ce2f25c9)
1164 ]
1165 interface ISAXAttributes : IUnknown
1166 {
1167     HRESULT getLength(
1168         [out, retval] int *length);
1169
1170     HRESULT getURI(
1171         [in] int nIndex,
1172         [out] const WCHAR **pUrl,
1173         [out] int *pUriSize);
1174
1175     HRESULT getLocalName(
1176         [in] int nIndex,
1177         [out] const WCHAR **pLocalName,
1178         [out] int *pLocalNameLength);
1179
1180     HRESULT getQName(
1181         [in] int nIndex,
1182         [out] const WCHAR **pQName,
1183         [out] int *pQNameLength);
1184
1185     HRESULT getName(
1186         [in] int nIndex,
1187         [out] const WCHAR **pUri,
1188         [out] int * pUriLength,
1189         [out] const WCHAR ** pLocalName,
1190         [out] int * pLocalNameSize,
1191         [out] const WCHAR ** pQName,
1192         [out] int * pQNameLength);
1193
1194     HRESULT getIndexFromName(
1195         [in] const WCHAR * pUri,
1196         [in] int cUriLength,
1197         [in] const WCHAR * pLocalName,
1198         [in] int cocalNameLength,
1199         [out, retval] int * index);
1200
1201     HRESULT getIndexFromQName(
1202         [in] const WCHAR * pQName,
1203         [in] int nQNameLength,
1204         [out, retval] int * index);
1205
1206     HRESULT getType(
1207         [in] int nIndex,
1208         [out] const WCHAR ** pType,
1209         [out] int * pTypeLength);
1210
1211     HRESULT getTypeFromName(
1212         [in] const WCHAR * pUri,
1213         [in] int nUri,
1214         [in] const WCHAR * pLocalName,
1215         [in] int nLocalName,
1216         [out] const WCHAR ** pType,
1217         [out] int * nType);
1218
1219     HRESULT getTypeFromQName(
1220         [in] const WCHAR * pQName,
1221         [in] int nQName,
1222         [out] const WCHAR ** pType,
1223         [out] int * nType);
1224
1225     HRESULT getValue(
1226         [in] int nIndex,
1227         [out] const WCHAR ** pValue,
1228         [out] int * nValue);
1229
1230     HRESULT getValueFromName(
1231         [in] const WCHAR * pUri,
1232         [in] int nUri,
1233         [in] const WCHAR * pLocalName,
1234         [in] int nLocalName,
1235         [out] const WCHAR ** pValue,
1236         [out] int * nValue);
1237
1238     HRESULT getValueFromQName(
1239         [in] const WCHAR * pQName,
1240         [in] int nQName,
1241         [out] const WCHAR ** pValue,
1242         [out] int * nValue);
1243 };
1244
1245 [
1246     object,
1247     local,
1248     uuid(1545cdfa-9e4e-4497-a8a4-2bf7d0112c44)
1249 ]
1250 interface ISAXContentHandler : IUnknown
1251 {
1252     HRESULT putDocumentLocator(
1253         [in] ISAXLocator * pLocator);
1254
1255     HRESULT startDocument();
1256
1257     HRESULT endDocument();
1258
1259     HRESULT startPrefixMapping(
1260         [in] const WCHAR * pPrefix,
1261         [in] int nPrefix,
1262         [in] const WCHAR * pUri,
1263         [in] int nUri);
1264
1265     HRESULT endPrefixMapping(
1266         [in] const WCHAR * pPrefix,
1267         [in] int nPrefix);
1268
1269     HRESULT startElement(
1270         [in] const WCHAR * pNamespaceUri,
1271         [in] int nNamespaceUri,
1272         [in] const WCHAR * pLocalName,
1273         [in] int nLocalName,
1274         [in] const WCHAR * pQName,
1275         [in] int nQName,
1276         [in] ISAXAttributes * pAttr);
1277
1278     HRESULT endElement(
1279         [in] const WCHAR * pNamespaceUri,
1280         [in] int nNamespaceUri,
1281         [in] const WCHAR * pLocalName,
1282         [in] int nLocalName,
1283         [in] const WCHAR * pQName,
1284         [in] int nQName);
1285
1286     HRESULT characters(
1287         [in] const WCHAR * pChars,
1288         [in] int nChars);
1289
1290     HRESULT ignorableWhitespace(
1291         [in] const WCHAR * pChars,
1292         [in] int nChars);
1293
1294     HRESULT processingInstruction(
1295         [in] const WCHAR * pTarget,
1296         [in] int nTarget,
1297         [in] const WCHAR * pData,
1298         [in] int nData);
1299
1300     HRESULT skippedEntity(
1301         [in] const WCHAR * pName,
1302         [in] int nName);
1303 };
1304
1305 [
1306     object,
1307     local,
1308     uuid(862629ac-771a-47b2-8337-4e6843c1be90)
1309 ]
1310 interface ISAXDeclHandler : IUnknown
1311 {
1312     HRESULT elementDecl(
1313         [in] const WCHAR * pName,
1314         [in] int nName,
1315         [in] const WCHAR * pModel,
1316         [in] int nModel);
1317
1318     HRESULT attributeDecl(
1319         [in] const WCHAR * pElementName,
1320         [in] int nElementName,
1321         [in] const WCHAR * pAttributeName,
1322         [in] int nAttributeName,
1323         [in] const WCHAR * pType,
1324         [in] int nType,
1325         [in] const WCHAR * pValueDefault,
1326         [in] int nValueDefault,
1327         [in] const WCHAR * pValue,
1328         [in] int nValue);
1329
1330     HRESULT internalEntityDecl(
1331         [in] const WCHAR * pName,
1332         [in] int nName,
1333         [in] const WCHAR * pValue,
1334         [in] int nValue);
1335
1336     HRESULT externalEntityDecl(
1337         [in] const WCHAR * pName,
1338         [in] int nName,
1339         [in] const WCHAR * pPublicId,
1340         [in] int nPublicId,
1341         [in] const WCHAR * pSystemId,
1342         [in] int nSystemId);
1343 };
1344
1345 [
1346     object,
1347     local,
1348     uuid(e15c1baf-afb3-4d60-8c36-19a8c45defed)
1349 ]
1350 interface ISAXDTDHandler : IUnknown
1351 {
1352     HRESULT notationDecl(
1353         [in] const WCHAR * pName,
1354         [in] int nName,
1355         [in] const WCHAR * pPublicId,
1356         [in] int nPublicId,
1357         [in] const WCHAR * pSystemId,
1358         [in] int nSystemId);
1359
1360     HRESULT unparsedEntityDecl(
1361         [in] const WCHAR * pName,
1362         [in] int nName,
1363         [in] const WCHAR * pPublicId,
1364         [in] int nPublicId,
1365         [in] const WCHAR * pSystemId,
1366         [in] int nSystemId,
1367         [in] const WCHAR * pNotationName,
1368         [in] int nNotationName);
1369 };
1370
1371 [
1372     object,
1373     local,
1374     uuid(99bca7bd-e8c4-4d5f-a0cf-6d907901ff07),
1375 ]
1376 interface ISAXEntityResolver : IUnknown
1377 {
1378     HRESULT resolveEntity(
1379         [in] const WCHAR * pPublicId,
1380         [in] const WCHAR * pSystemId,
1381         [out, retval] VARIANT * ret);
1382 };
1383
1384 [
1385     object,
1386     local,
1387     uuid(a60511c4-ccf5-479e-98a3-dc8dc545b7d0)
1388 ]
1389 interface ISAXErrorHandler : IUnknown
1390 {
1391     HRESULT error(
1392         [in] ISAXLocator * pLocator,
1393         [in] const WCHAR * pErrorMessage,
1394         [in] HRESULT hrErrorCode);
1395
1396     HRESULT fatalError(
1397         [in] ISAXLocator * pLocator,
1398         [in] const WCHAR * pErrorMessage,
1399         [in] HRESULT hrErrorCode);
1400
1401     HRESULT ignorableWarning(
1402         [in] ISAXLocator * pLocator,
1403         [in] const WCHAR * pErrorMessage,
1404         [in] HRESULT hrErrorCode);
1405 };
1406
1407 [
1408     object,
1409     local,
1410     uuid(7f85d5f5-47a8-4497-bda5-84ba04819ea6)
1411 ]
1412 interface ISAXLexicalHandler : IUnknown
1413 {
1414     HRESULT startDTD(
1415         [in] const WCHAR * pName,
1416         [in] int nName,
1417         [in] const WCHAR * pPublicId,
1418         [in] int nPublicId,
1419         [in] const WCHAR * pSystemId,
1420         [in] int nSystemId);
1421
1422     HRESULT endDTD();
1423
1424     HRESULT startEntity(
1425         [in] const WCHAR * pName,
1426         [in] int nName);
1427
1428     HRESULT endEntity(
1429         [in] const WCHAR * pName,
1430         [in] int nName);
1431
1432     HRESULT startCDATA();
1433
1434     HRESULT endCDATA();
1435
1436     HRESULT comment(
1437         [in] const WCHAR * pChars,
1438         [in] int nChars);
1439 };
1440
1441 [
1442     object,
1443     local,
1444     uuid(9b7e472a-0de4-4640-bff3-84d38a051c31)
1445 ]
1446 interface ISAXLocator : IUnknown
1447 {
1448     HRESULT getColumnNumber(
1449         [out, retval] int * nColumn);
1450
1451     HRESULT getLineNumber(
1452         [out, retval] int * nLine);
1453
1454     HRESULT getPublicId(
1455         [out, retval] const WCHAR ** publicId);
1456
1457     HRESULT getSystemId(
1458         [out, retval] const WCHAR ** systemId);
1459 };
1460
1461 [
1462     local,
1463     object,
1464     uuid(70409222-ca09-4475-acb8-40312fe8d145)
1465 ]
1466 interface ISAXXMLFilter : ISAXXMLReader
1467 {
1468     HRESULT getParent(
1469         [out, retval] ISAXXMLReader ** pReader);
1470     HRESULT putParent(
1471         [in] ISAXXMLReader * reader);
1472 };
1473
1474 [
1475 local,
1476 object,
1477 uuid (a4f96ed0-f829-476e-81c0-cdc7bd2a0802)
1478 ]
1479 interface ISAXXMLReader : IUnknown
1480 {
1481     HRESULT getFeature(
1482         [in] const WCHAR * pFeature,
1483         [out, retval] VARIANT_BOOL * pValue);
1484     HRESULT putFeature(
1485         [in] const WCHAR * pFeature,
1486         [in] VARIANT_BOOL vfValue);
1487
1488     HRESULT getProperty(
1489         [in] const WCHAR * pProp,
1490         [out, retval] VARIANT * pValue);
1491     HRESULT putProperty(
1492         [in] const WCHAR * pProp,
1493         [in] VARIANT value);
1494
1495     HRESULT getEntityResolver(
1496         [out, retval] ISAXEntityResolver ** ppEntityResolver);
1497     HRESULT putEntityResolver(
1498         [in] ISAXEntityResolver * pEntityResolver);
1499
1500     HRESULT getContentHandler(
1501         [out, retval] ISAXContentHandler ** pContentHandler);
1502     HRESULT putContentHandler(
1503         [in] ISAXContentHandler * contentHandler);
1504
1505     HRESULT getDTDHandler(
1506         [out, retval] ISAXDTDHandler ** pDTDHandler);
1507     HRESULT putDTDHandler(
1508         [in] ISAXDTDHandler * pDTDHandler);
1509
1510     HRESULT getErrorHandler(
1511         [out, retval] ISAXErrorHandler ** pErrorHandler);
1512     HRESULT putErrorHandler(
1513         [in] ISAXErrorHandler * errorHandler);
1514
1515     HRESULT getBaseURL(
1516         [out, retval] const WCHAR ** pBaseUrl);
1517     HRESULT putBaseURL(
1518         [in] const WCHAR * pBaseUrl);
1519
1520     HRESULT getSecureBaseURL(
1521         [out, retval] const WCHAR ** pSecureBaseUrl);
1522     HRESULT putSecureBaseURL(
1523         [in] const WCHAR * secureBaseUrl);
1524
1525     HRESULT parse(
1526         [in] VARIANT varInput);
1527     HRESULT parseURL(
1528         [in] const WCHAR * url);
1529 }
1530
1531 [
1532     object,
1533     dual,
1534     uuid(10dc0586-132b-4cac-8bb3-db00ac8b7ee0)
1535 ]
1536 interface IVBSAXAttributes : IDispatch
1537 {
1538     [propget, id(DISPID_SAX_ATTRIBUTES_LENGTH)]
1539     HRESULT length( [out, retval] int * nLength);
1540
1541     [id(DISPID_SAX_ATTRIBUTES_GETURI)]
1542     HRESULT getURI( [in] int nIndex, [out, retval] BSTR * uri);
1543
1544     [id(DISPID_SAX_ATTRIBUTES_GETLOCALNAME)]
1545     HRESULT getLocalName( [in] int nIndex, [out, retval] BSTR * localName);
1546
1547     [id(DISPID_SAX_ATTRIBUTES_GETQNAME)]
1548     HRESULT getQName( [in] int nIndex, [out, retval] BSTR * QName);
1549
1550     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMNAME)]
1551     HRESULT getIndexFromName( [in] BSTR uri,
1552                               [in] BSTR localName, [out, retval] int * nIndex);
1553
1554     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMQNAME)]
1555     HRESULT getIndexFromQName( [in] BSTR QName, [out, retval] int * nIndex);
1556
1557     [id(DISPID_SAX_ATTRIBUTES_GETTYPE)]
1558     HRESULT getType( [in] int nIndex, [out, retval] BSTR * type);
1559
1560     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMNAME)]
1561     HRESULT getTypeFromName( [in] BSTR uri, [in] BSTR localName,
1562                              [out, retval] BSTR * type);
1563
1564     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMQNAME)]
1565     HRESULT getTypeFromQName( [in] BSTR QName, [out, retval] BSTR * type);
1566
1567     [id(DISPID_SAX_ATTRIBUTES_GETVALUE)]
1568     HRESULT getValue( [in] int nIndex, [out, retval] BSTR * value);
1569
1570     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMNAME)]
1571     HRESULT getValueFromName( [in] BSTR uri,
1572                               [in] BSTR localName,
1573                               [out, retval] BSTR * value);
1574
1575     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMQNAME)]
1576     HRESULT getValueFromQName( [in] BSTR QName, [out, retval] BSTR * value);
1577 };
1578
1579 [
1580     object,
1581     dual,
1582     uuid(2ed7290a-4dd5-4b46-bb26-4e4155e77faa)
1583 ]
1584 interface IVBSAXContentHandler : IDispatch
1585 {
1586     [propputref, id(DISPID_SAX_CONTENTHANDLER_DOCUMENTLOCATOR)]
1587     HRESULT documentLocator( [in] IVBSAXLocator * oLocator);
1588
1589     [id(DISPID_SAX_CONTENTHANDLER_STARTDOCUMENT)]
1590     HRESULT startDocument();
1591
1592     [id(DISPID_SAX_CONTENTHANDLER_ENDDOCUMENT)]
1593     HRESULT endDocument();
1594
1595     [id(DISPID_SAX_CONTENTHANDLER_STARTPREFIXMAPPING)]
1596     HRESULT startPrefixMapping( [in, out] BSTR * prefix, [in, out] BSTR * uri);
1597
1598     [id(DISPID_SAX_CONTENTHANDLER_ENDPREFIXMAPPING)]
1599     HRESULT endPrefixMapping( [in, out] BSTR * prefix);
1600
1601     [id(DISPID_SAX_CONTENTHANDLER_STARTELEMENT)]
1602     HRESULT startElement( [in, out] BSTR * namespaceURI,
1603                           [in, out] BSTR * localName,
1604                           [in, out] BSTR * QName,
1605                           [in] IVBSAXAttributes * oAttributes);
1606
1607     [id(DISPID_SAX_CONTENTHANDLER_ENDELEMENT)]
1608     HRESULT endElement( [in, out] BSTR * namespaceURI,
1609                         [in, out] BSTR * localName, [in, out] BSTR * strQName);
1610
1611     [id(DISPID_SAX_CONTENTHANDLER_CHARACTERS)]
1612     HRESULT characters( [in, out] BSTR * chars);
1613
1614     [id(DISPID_SAX_CONTENTHANDLER_IGNORABLEWHITESPACE)]
1615     HRESULT ignorableWhitespace( [in, out] BSTR * chars);
1616
1617     [id(DISPID_SAX_CONTENTHANDLER_PROCESSINGINSTRUCTION)]
1618     HRESULT processingInstruction( [in, out] BSTR * target,
1619                                    [in, out] BSTR * data);
1620
1621     [id(DISPID_SAX_CONTENTHANDLER_SKIPPEDENTITY)]
1622     HRESULT skippedEntity( [in, out] BSTR * name);
1623 };
1624
1625 [
1626     object,
1627     dual,
1628     uuid(e8917260-7579-4be1-b5dd-7afbfa6f077b)
1629 ]
1630 interface IVBSAXDeclHandler : IDispatch
1631 {
1632     [id(DISPID_SAX_DECLHANDLER_ELEMENTDECL)]
1633     HRESULT elementDecl(
1634         [in, out] BSTR * name,
1635         [in, out] BSTR * model);
1636
1637     [id(DISPID_SAX_DECLHANDLER_ATTRIBUTEDECL)]
1638     HRESULT attributeDecl(
1639         [in, out] BSTR * elementName,
1640         [in, out] BSTR * attributeName,
1641         [in, out] BSTR * type,
1642         [in, out] BSTR * valueDefault,
1643         [in, out] BSTR * value);
1644
1645     [id(DISPID_SAX_DECLHANDLER_INTERNALENTITYDECL)]
1646     HRESULT internalEntityDecl(
1647         [in, out] BSTR * name,
1648         [in, out] BSTR * value);
1649
1650     [id(DISPID_SAX_DECLHANDLER_EXTERNALENTITYDECL)]
1651     HRESULT externalEntityDecl(
1652         [in, out] BSTR * name,
1653         [in, out] BSTR * publicId,
1654         [in, out] BSTR * systemId);
1655 };
1656
1657 [
1658     object,
1659     dual,
1660     uuid(24fb3297-302d-4620-ba39-3a732d850558)
1661 ]
1662 interface IVBSAXDTDHandler : IDispatch
1663 {
1664     [id(DISPID_SAX_DTDHANDLER_NOTATIONDECL)]
1665     HRESULT notationDecl(
1666         [in, out] BSTR * name,
1667         [in, out] BSTR * publicId,
1668         [in, out] BSTR * systemId);
1669
1670     [id(DISPID_SAX_DTDHANDLER_UNPARSEDENTITYDECL)]
1671     HRESULT unparsedEntityDecl(
1672         [in, out] BSTR * name,
1673         [in, out] BSTR * publicId,
1674         [in, out] BSTR * systemId,
1675         [in, out] BSTR * notationName);
1676 };
1677
1678 [
1679     object,
1680     dual,
1681     uuid(0c05d096-f45b-4aca-ad1a-aa0bc25518dc)
1682 ]
1683 interface IVBSAXEntityResolver : IDispatch
1684 {
1685     [id(DISPID_SAX_ENTITYRESOLVER_RESOLVEENTITY)]
1686     HRESULT resolveEntity(
1687         [in, out] BSTR * publicId,
1688         [in, out] BSTR * systemId,
1689         [out, retval] VARIANT * ret);
1690 };
1691
1692 [
1693     object,
1694     dual,
1695     uuid(d963d3fe-173c-4862-9095-b92f66995f52)
1696 ]
1697 interface IVBSAXErrorHandler : IDispatch
1698 {
1699     [id(DISPID_SAX_ERRORHANDLER_ERROR)]
1700     HRESULT error(
1701             [in] IVBSAXLocator * locator,
1702             [in, out] BSTR * errorMessage,
1703             [in] LONG errorCode);
1704
1705     [id(DISPID_SAX_ERRORHANDLER_FATALERROR)]
1706     HRESULT fatalError(
1707             [in] IVBSAXLocator * locator,
1708             [in, out] BSTR * errorMessage,
1709             [in] LONG errorCode);
1710
1711     [id(DISPID_SAX_ERRORHANDLER_IGNORABLEWARNING)]
1712     HRESULT ignorableWarning(
1713             [in] IVBSAXLocator * locator,
1714             [in, out] BSTR * errorMessage,
1715             [in] LONG errorCode);
1716 };
1717
1718 [
1719     object,
1720     dual,
1721     uuid(032aac35-8c0e-4d9d-979f-e3b702935576)
1722 ]
1723 interface IVBSAXLexicalHandler : IDispatch
1724 {
1725     [id(DISPID_SAX_LEXICALHANDLER_STARTDTD)]
1726     HRESULT startDTD(
1727         [in, out] BSTR * name,
1728         [in, out] BSTR * publicId,
1729         [in, out] BSTR * systemId);
1730     [id(DISPID_SAX_LEXICALHANDLER_ENDDTD)]
1731     HRESULT endDTD();
1732
1733     [id(DISPID_SAX_LEXICALHANDLER_STARTENTITY)]
1734     HRESULT startEntity([in, out] BSTR * name);
1735     [id(DISPID_SAX_LEXICALHANDLER_ENDENTITY)]
1736     HRESULT endEntity([in, out] BSTR * name);
1737
1738     [id(DISPID_SAX_LEXICALHANDLER_STARTCDATA)]
1739     HRESULT startCDATA();
1740     [id(DISPID_SAX_LEXICALHANDLER_ENDCDATA)]
1741     HRESULT endCDATA();
1742
1743     [id(DISPID_SAX_LEXICALHANDLER_COMMENT)]
1744     HRESULT comment( [in, out] BSTR * chars);
1745 };
1746
1747 [
1748     object,
1749     uuid(796e7ac5-5aa2-4eff-acad-3faaf01a3288)
1750 ]
1751 interface IVBSAXLocator : IDispatch
1752 {
1753     [propget, id(DISPID_SAX_LOCATOR_COLUMNNUMBER)]
1754     HRESULT columnNumber( [out, retval] int * column);
1755
1756     [propget, id(DISPID_SAX_LOCATOR_LINENUMBER)]
1757     HRESULT lineNumber( [out, retval] int * line);
1758
1759     [propget, id(DISPID_SAX_LOCATOR_PUBLICID)]
1760     HRESULT publicId( [out, retval] BSTR * publicId);
1761
1762     [propget, id(DISPID_SAX_LOCATOR_SYSTEMID)]
1763     HRESULT systemId( [out, retval] BSTR * systemId);
1764 };
1765
1766 [
1767     object,
1768     dual,
1769     uuid(1299eb1b-5b88-433e-82de-82ca75ad4e04)
1770 ]
1771 interface IVBSAXXMLFilter : IDispatch
1772 {
1773     [propget, id(DISPID_SAX_XMLFILTER_PARENT)]
1774     HRESULT parent( [out, retval] IVBSAXXMLReader ** reader);
1775     [propputref, id(DISPID_SAX_XMLFILTER_PARENT)]
1776     HRESULT parent( [in] IVBSAXXMLReader * reader);
1777
1778 };
1779
1780 [
1781     dual,
1782     object,
1783     uuid (8c033caa-6cd6-4f73-b728-4531af74945f)
1784 ]
1785 interface IVBSAXXMLReader : IDispatch
1786 {
1787     [id(DISPID_SAX_XMLREADER_GETFEATURE)]
1788     HRESULT getFeature( [in] const WCHAR * pFeature,
1789                         [out, retval] VARIANT_BOOL * pValue);
1790     [id(DISPID_SAX_XMLREADER_PUTFEATURE)]
1791     HRESULT putFeature( [in] const WCHAR * pFeature,
1792                         [in] VARIANT_BOOL vfValue);
1793
1794     [id(DISPID_SAX_XMLREADER_GETPROPERTY)]
1795     HRESULT getProperty( [in] const WCHAR * pProp,
1796                          [out, retval] VARIANT * pValue);
1797     [id(DISPID_SAX_XMLREADER_PUTPROPERTY)]
1798     HRESULT putProperty( [in] const WCHAR * pProp, [in] VARIANT value);
1799
1800     [propget, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
1801     HRESULT entityResolver(
1802                     [out, retval] IVBSAXEntityResolver ** ppEntityResolver);
1803     [propputref, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
1804     HRESULT entityResolver( [in] IVBSAXEntityResolver * pEntityResolver);
1805
1806     [propget, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
1807     HRESULT contentHandler(
1808                         [out, retval] IVBSAXContentHandler ** pContentHandler);
1809     [propputref, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
1810     HRESULT contentHandler([in] IVBSAXContentHandler * contentHandler);
1811
1812     [propget, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
1813     HRESULT dtdHandler([out, retval] IVBSAXDTDHandler ** pDTDHandler);
1814     [propputref, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
1815     HRESULT dtdHandler([in] IVBSAXDTDHandler * pDTDHandler);
1816
1817     [propget, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
1818     HRESULT errorHandler([out, retval] IVBSAXErrorHandler ** pErrorHandler);
1819     [propputref, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
1820     HRESULT errorHandler([in] IVBSAXErrorHandler * errorHandler);
1821
1822     [propget, id(DISPID_SAX_XMLREADER_BASEURL)]
1823     HRESULT baseURL([out, retval] const WCHAR ** pBaseUrl);
1824     [propput, id(DISPID_SAX_XMLREADER_BASEURL)]
1825     HRESULT baseURL([in] const WCHAR * pBaseUrl);
1826
1827     [propget, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
1828     HRESULT secureBaseURL([out, retval] const WCHAR ** pSecureBaseUrl);
1829     [propput, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
1830     HRESULT secureBaseURL([in] const WCHAR * secureBaseUrl);
1831
1832     [id(DISPID_SAX_XMLREADER_PARSE)]
1833     HRESULT parse( [in] VARIANT varInput);
1834     [id(DISPID_SAX_XMLREADER_PARSEURL)]
1835     HRESULT parseURL([in] const WCHAR * url);
1836 }
1837
1838 [
1839     object,
1840     dual,
1841     uuid(f10d27cc-3ec0-415c-8ed8-77ab1c5e7262)
1842 ]
1843 interface IMXAttributes : IDispatch
1844 {
1845     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTE)]
1846     HRESULT addAttribute(
1847         [in] BSTR uri,
1848         [in] BSTR localName,
1849         [in] BSTR QName,
1850         [in] BSTR type,
1851         [in] BSTR value);
1852
1853     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTEFROMINDEX)]
1854     HRESULT addAttributeFromIndex( [in] VARIANT atts,
1855                                    [in] int index);
1856
1857     [id(DISPID_MX_ATTRIBUTES_CLEAR)]
1858     HRESULT clear();
1859
1860     [id(DISPID_MX_ATTRIBUTES_REMOVEATTRIBUTE)]
1861     HRESULT removeAttribute( [in] int index);
1862
1863     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTE)]
1864     HRESULT setAttribute(
1865         [in] int index,
1866         [in] BSTR uri,
1867         [in] BSTR localName,
1868         [in] BSTR QName,
1869         [in] BSTR type,
1870         [in] BSTR value);
1871
1872     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTES)]
1873     HRESULT setAttributes( [in] VARIANT atts);
1874
1875     [id(DISPID_MX_ATTRIBUTES_SETLOCALNAME)]
1876     HRESULT setLocalName( [in] int index,
1877         [in] BSTR localName);
1878
1879     [id(DISPID_MX_ATTRIBUTES_SETQNAME)]
1880     HRESULT setQName(
1881         [in] int index,
1882         [in] BSTR QName);
1883
1884     [id(DISPID_MX_ATTRIBUTES_SETTYPE)]
1885     HRESULT setType( [in] int index, [in] BSTR type);
1886
1887     [id(DISPID_MX_ATTRIBUTES_SETURI)]
1888     HRESULT setURI( [in] int index,  [in] BSTR uri);
1889
1890     [id(DISPID_MX_ATTRIBUTES_SETVALUE)]
1891     HRESULT setValue([in] int index, [in] BSTR value);
1892 };
1893
1894 [
1895     object,
1896     dual,
1897     uuid(808f4e35-8d5a-4fbe-8466-33a41279ed30)
1898 ]
1899 interface IMXReaderControl : IDispatch
1900 {
1901     [id(DISPID_MX_READER_CONTROL_ABORT)]
1902     HRESULT abort();
1903
1904     [id(DISPID_MX_READER_CONTROL_RESUME)]
1905     HRESULT resume();
1906
1907     [id(DISPID_MX_READER_CONTROL_SUSPEND)]
1908     HRESULT suspend();
1909 };
1910
1911 [
1912     object,
1913     dual,
1914     uuid(4d7ff4ba-1565-4ea8-94e1-6e724a46f98d)
1915 ]
1916 interface IMXWriter :  IDispatch
1917 {
1918     [propput, id(DISPID_MX_WRITER_OUTPUT)]
1919     HRESULT output ( [in] VARIANT Destination);
1920     [propget, id(DISPID_MX_WRITER_OUTPUT)]
1921     HRESULT output ( [out, retval] VARIANT * Destination);
1922
1923     [propput, id(DISPID_MX_WRITER_ENCODING)]
1924     HRESULT encoding ([in] BSTR encoding);
1925     [propget, id(DISPID_MX_WRITER_ENCODING)]
1926     HRESULT encoding ([out, retval] BSTR * encoding);
1927
1928     [propput, id(DISPID_MX_WRITER_BYTEORDERMARK)]
1929     HRESULT byteOrderMark ([in] VARIANT_BOOL writeByteOrderMark);
1930     [propget, id(DISPID_MX_WRITER_BYTEORDERMARK)]
1931     HRESULT byteOrderMark ([out, retval] VARIANT_BOOL * writeByteOrderMark);
1932
1933     [propput, id(DISPID_MX_WRITER_INDENT)]
1934     HRESULT indent ([in] VARIANT_BOOL indentMode);
1935     [propget, id(DISPID_MX_WRITER_INDENT)]
1936     HRESULT indent ([out, retval] VARIANT_BOOL * indentMode);
1937
1938     [propput, id(DISPID_MX_WRITER_STANDALONE)]
1939     HRESULT standalone ([in] VARIANT_BOOL value);
1940     [propget, id(DISPID_MX_WRITER_STANDALONE)]
1941     HRESULT standalone ([out, retval] VARIANT_BOOL * value);
1942
1943     [propput, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
1944     HRESULT omitXMLDeclaration ([in] VARIANT_BOOL value);
1945     [propget, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
1946     HRESULT omitXMLDeclaration ([out, retval] VARIANT_BOOL * value);
1947
1948     [propput, id(DISPID_MX_WRITER_VERSION)]
1949     HRESULT version ([in] BSTR version);
1950     [propget, id(DISPID_MX_WRITER_VERSION)]
1951     HRESULT version ([out, retval] BSTR * version);
1952
1953     [propput, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
1954     HRESULT disableOutputEscaping([in] VARIANT_BOOL value);
1955     [propget, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
1956     HRESULT disableOutputEscaping([out, retval] VARIANT_BOOL * value);
1957
1958     [id(DISPID_MX_WRITER_FLUSH)]
1959     HRESULT flush();
1960 };
1961
1962 [
1963     uuid(079aa557-4a18-424a-8eee-e39f0a8d41b9)
1964 ]
1965 coclass SAXXMLReader
1966 {
1967     [default] interface IVBSAXXMLReader;
1968     interface ISAXXMLReader;
1969     interface IMXReaderControl;
1970 };
1971
1972 [
1973     uuid(3124c396-fb13-4836-a6ad-1317f1713688)
1974 ]
1975 coclass SAXXMLReader30
1976 {
1977     [default] interface IVBSAXXMLReader;
1978     interface ISAXXMLReader;
1979     interface IMXReaderControl;
1980 };
1981
1982 [
1983     uuid(7c6e29bc-8b8b-4c3d-859e-af6cd158be0f)
1984 ]
1985 coclass SAXXMLReader40
1986 {
1987     [default] interface IVBSAXXMLReader;
1988     interface ISAXXMLReader;
1989 };
1990
1991 [
1992     uuid(fc220ad8-a72a-4ee8-926e-0b7ad152a020)
1993 ]
1994 coclass MXXMLWriter
1995 {
1996     [default] interface IMXWriter;
1997
1998     interface ISAXContentHandler;
1999     interface ISAXErrorHandler;
2000     interface ISAXDTDHandler;
2001     interface ISAXLexicalHandler;
2002     interface ISAXDeclHandler;
2003
2004     interface IVBSAXContentHandler;
2005     interface IVBSAXDeclHandler;
2006     interface IVBSAXDTDHandler;
2007     interface IVBSAXErrorHandler;
2008     interface IVBSAXLexicalHandler;
2009 };
2010
2011 [
2012     uuid(3d813dfe-6c91-4a4e-8f41-04346a841d9c)
2013 ]
2014 coclass MXXMLWriter30
2015 {
2016     [default] interface IMXWriter;
2017
2018     interface ISAXContentHandler;
2019     interface ISAXDeclHandler;
2020     interface ISAXDTDHandler;
2021     interface ISAXErrorHandler;
2022     interface ISAXLexicalHandler;
2023
2024     interface IVBSAXContentHandler;
2025     interface IVBSAXDeclHandler;
2026     interface IVBSAXDTDHandler;
2027     interface IVBSAXErrorHandler;
2028     interface IVBSAXLexicalHandler;
2029 };
2030
2031 [
2032     uuid(4dd441ad-526d-4a77-9f1b-9841ed802fb0)
2033 ]
2034 coclass SAXAttributes
2035 {
2036     [default] interface IMXAttributes;
2037     interface IVBSAXAttributes;
2038     interface ISAXAttributes;
2039 };
2040
2041 [
2042     uuid(3e784a01-f3ae-4dc0-9354-9526b9370eba)
2043 ]
2044 coclass SAXAttributes30
2045 {
2046     [default] interface IMXAttributes;
2047     interface IVBSAXAttributes;
2048     interface ISAXAttributes;
2049 };
2050
2051
2052 } /* Library MSXML */