commdlg: Implemented notifications are only sent with OFN_EXPLORER flag set.
[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 [
1075     uuid(F6D90F12-9C73-11D3-B32E-00C04F990BB4)
1076 ]
1077 coclass FreeThreadedDOMDocument
1078 {
1079     [default] interface IXMLDOMDocument2;
1080     [default, source] dispinterface XMLDOMDocumentEvents;
1081 }
1082
1083 [
1084     uuid(f5078f1c-c551-11d3-89b9-0000f81fe221)
1085 ]
1086 coclass FreeThreadedDOMDocument26
1087 {
1088     [default] interface IXMLDOMDocument2;
1089     [default, source] dispinterface XMLDOMDocumentEvents;
1090 }
1091
1092 [
1093     uuid(f5078f33-c551-11d3-89b9-0000f81fe221)
1094 ]
1095 coclass FreeThreadedDOMDocument30
1096 {
1097     [default] interface IXMLDOMDocument2;
1098     [default, source] dispinterface XMLDOMDocumentEvents;
1099 }
1100
1101 [
1102     uuid(373984c9-b845-449b-91e7-45ac83036ade)
1103 ]
1104 coclass XMLSchemaCache
1105 {
1106     [default] interface IXMLDOMSchemaCollection;
1107 }
1108
1109 [
1110     uuid(f5078f1d-c551-11d3-89b9-0000f81fe221)
1111 ]
1112 coclass XMLSchemaCache26
1113 {
1114     [default] interface IXMLDOMSchemaCollection;
1115 }
1116
1117 [
1118     uuid(f5078f34-c551-11d3-89b9-0000f81fe221)
1119 ]
1120 coclass XMLSchemaCache30
1121 {
1122     [default] interface IXMLDOMSchemaCollection;
1123 }
1124
1125 [
1126     uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
1127 ]
1128 coclass XSLTemplate
1129 {
1130     [default] interface IXSLTemplate;
1131 }
1132
1133 [
1134     uuid(f5078f21-c551-11d3-89b9-0000f81fe221)
1135 ]
1136 coclass XSLTemplate26
1137 {
1138     [default] interface IXSLTemplate;
1139 }
1140
1141 [
1142     uuid(f5078f36-c551-11d3-89b9-0000f81fe221)
1143 ]
1144 coclass XSLTemplate30
1145 {
1146     [default] interface IXSLTemplate;
1147 }
1148
1149 /*
1150  * Sax Interfaces
1151  */
1152 [
1153     object,
1154     local,
1155     uuid(f078abe1-45d2-4832-91ea-4466ce2f25c9)
1156 ]
1157 interface ISAXAttributes : IUnknown
1158 {
1159     HRESULT getLength(
1160         [out, retval] int *length);
1161
1162     HRESULT getURI(
1163         [in] int nIndex,
1164         [out] const WCHAR **pUrl,
1165         [out] int *pUriSize);
1166
1167     HRESULT getLocalName(
1168         [in] int nIndex,
1169         [out] const WCHAR **pLocalName,
1170         [out] int *pLocalNameLength);
1171
1172     HRESULT getQName(
1173         [in] int nIndex,
1174         [out] const WCHAR **pQName,
1175         [out] int *pQNameLength);
1176
1177     HRESULT getName(
1178         [in] int nIndex,
1179         [out] const WCHAR **pUri,
1180         [out] int * pUriLength,
1181         [out] const WCHAR ** pLocalName,
1182         [out] int * pLocalNameSize,
1183         [out] const WCHAR ** pQName,
1184         [out] int * pQNameLength);
1185
1186     HRESULT getIndexFromName(
1187         [in] const WCHAR * pUri,
1188         [in] int cUriLength,
1189         [in] const WCHAR * pLocalName,
1190         [in] int cocalNameLength,
1191         [out, retval] int * index);
1192
1193     HRESULT getIndexFromQName(
1194         [in] const WCHAR * pQName,
1195         [in] int nQNameLength,
1196         [out, retval] int * index);
1197
1198     HRESULT getType(
1199         [in] int nIndex,
1200         [out] const WCHAR ** pType,
1201         [out] int * pTypeLength);
1202
1203     HRESULT getTypeFromName(
1204         [in] const WCHAR * pUri,
1205         [in] int nUri,
1206         [in] const WCHAR * pLocalName,
1207         [in] int nLocalName,
1208         [out] const WCHAR ** pType,
1209         [out] int * nType);
1210
1211     HRESULT getTypeFromQName(
1212         [in] const WCHAR * pQName,
1213         [in] int nQName,
1214         [out] const WCHAR ** pType,
1215         [out] int * nType);
1216
1217     HRESULT getValue(
1218         [in] int nIndex,
1219         [out] const WCHAR ** pValue,
1220         [out] int * nValue);
1221
1222     HRESULT getValueFromName(
1223         [in] const WCHAR * pUri,
1224         [in] int nUri,
1225         [in] const WCHAR * pLocalName,
1226         [in] int nLocalName,
1227         [out] const WCHAR ** pValue,
1228         [out] int * nValue);
1229
1230     HRESULT getValueFromQName(
1231         [in] const WCHAR * pQName,
1232         [in] int nQName,
1233         [out] const WCHAR ** pValue,
1234         [out] int * nValue);
1235 };
1236
1237 [
1238     object,
1239     local,
1240     uuid(1545cdfa-9e4e-4497-a8a4-2bf7d0112c44)
1241 ]
1242 interface ISAXContentHandler : IUnknown
1243 {
1244     HRESULT putDocumentLocator(
1245         [in] ISAXLocator * pLocator);
1246
1247     HRESULT startDocument();
1248
1249     HRESULT endDocument();
1250
1251     HRESULT startPrefixMapping(
1252         [in] const WCHAR * pPrefix,
1253         [in] int nPrefix,
1254         [in] const WCHAR * pUri,
1255         [in] int nUri);
1256
1257     HRESULT endPrefixMapping(
1258         [in] const WCHAR * pPrefix,
1259         [in] int nPrefix);
1260
1261     HRESULT startElement(
1262         [in] const WCHAR * pNamespaceUri,
1263         [in] int nNamespaceUri,
1264         [in] const WCHAR * pLocalName,
1265         [in] int nLocalName,
1266         [in] const WCHAR * pQName,
1267         [in] int nQName,
1268         [in] ISAXAttributes * pAttr);
1269
1270     HRESULT endElement(
1271         [in] const WCHAR * pNamespaceUri,
1272         [in] int nNamespaceUri,
1273         [in] const WCHAR * pLocalName,
1274         [in] int nLocalName,
1275         [in] const WCHAR * pQName,
1276         [in] int nQName);
1277
1278     HRESULT characters(
1279         [in] const WCHAR * pChars,
1280         [in] int nChars);
1281
1282     HRESULT ignorableWhitespace(
1283         [in] const WCHAR * pChars,
1284         [in] int nChars);
1285
1286     HRESULT processingInstruction(
1287         [in] const WCHAR * pTarget,
1288         [in] int nTarget,
1289         [in] const WCHAR * pData,
1290         [in] int nData);
1291
1292     HRESULT skippedEntity(
1293         [in] const WCHAR * pName,
1294         [in] int nName);
1295 };
1296
1297 [
1298     object,
1299     local,
1300     uuid(862629ac-771a-47b2-8337-4e6843c1be90)
1301 ]
1302 interface ISAXDeclHandler : IUnknown
1303 {
1304     HRESULT elementDecl(
1305         [in] const WCHAR * pName,
1306         [in] int nName,
1307         [in] const WCHAR * pModel,
1308         [in] int nModel);
1309
1310     HRESULT attributeDecl(
1311         [in] const WCHAR * pElementName,
1312         [in] int nElementName,
1313         [in] const WCHAR * pAttributeName,
1314         [in] int nAttributeName,
1315         [in] const WCHAR * pType,
1316         [in] int nType,
1317         [in] const WCHAR * pValueDefault,
1318         [in] int nValueDefault,
1319         [in] const WCHAR * pValue,
1320         [in] int nValue);
1321
1322     HRESULT internalEntityDecl(
1323         [in] const WCHAR * pName,
1324         [in] int nName,
1325         [in] const WCHAR * pValue,
1326         [in] int nValue);
1327
1328     HRESULT externalEntityDecl(
1329         [in] const WCHAR * pName,
1330         [in] int nName,
1331         [in] const WCHAR * pPublicId,
1332         [in] int nPublicId,
1333         [in] const WCHAR * pSystemId,
1334         [in] int nSystemId);
1335 };
1336
1337 [
1338     object,
1339     local,
1340     uuid(e15c1baf-afb3-4d60-8c36-19a8c45defed)
1341 ]
1342 interface ISAXDTDHandler : IUnknown
1343 {
1344     HRESULT notationDecl(
1345         [in] const WCHAR * pName,
1346         [in] int nName,
1347         [in] const WCHAR * pPublicId,
1348         [in] int nPublicId,
1349         [in] const WCHAR * pSystemId,
1350         [in] int nSystemId);
1351
1352     HRESULT unparsedEntityDecl(
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         [in] const WCHAR * pNotationName,
1360         [in] int nNotationName);
1361 };
1362
1363 [
1364     object,
1365     local,
1366     uuid(99bca7bd-e8c4-4d5f-a0cf-6d907901ff07),
1367 ]
1368 interface ISAXEntityResolver : IUnknown
1369 {
1370     HRESULT resolveEntity(
1371         [in] const WCHAR * pPublicId,
1372         [in] const WCHAR * pSystemId,
1373         [out, retval] VARIANT * ret);
1374 };
1375
1376 [
1377     object,
1378     local,
1379     uuid(a60511c4-ccf5-479e-98a3-dc8dc545b7d0)
1380 ]
1381 interface ISAXErrorHandler : IUnknown
1382 {
1383     HRESULT error(
1384         [in] ISAXLocator * pLocator,
1385         [in] const WCHAR * pErrorMessage,
1386         [in] HRESULT hrErrorCode);
1387
1388     HRESULT fatalError(
1389         [in] ISAXLocator * pLocator,
1390         [in] const WCHAR * pErrorMessage,
1391         [in] HRESULT hrErrorCode);
1392
1393     HRESULT ignorableWarning(
1394         [in] ISAXLocator * pLocator,
1395         [in] const WCHAR * pErrorMessage,
1396         [in] HRESULT hrErrorCode);
1397 };
1398
1399 [
1400     object,
1401     local,
1402     uuid(7f85d5f5-47a8-4497-bda5-84ba04819ea6)
1403 ]
1404 interface ISAXLexicalHandler : IUnknown
1405 {
1406     HRESULT startDTD(
1407         [in] const WCHAR * pName,
1408         [in] int nName,
1409         [in] const WCHAR * pPublicId,
1410         [in] int nPublicId,
1411         [in] const WCHAR * pSystemId,
1412         [in] int nSystemId);
1413
1414     HRESULT endDTD();
1415
1416     HRESULT startEntity(
1417         [in] const WCHAR * pName,
1418         [in] int nName);
1419
1420     HRESULT endEntity(
1421         [in] const WCHAR * pName,
1422         [in] int nName);
1423
1424     HRESULT startCDATA();
1425
1426     HRESULT endCDATA();
1427
1428     HRESULT comment(
1429         [in] const WCHAR * pChars,
1430         [in] int nChars);
1431 };
1432
1433 [
1434     object,
1435     local,
1436     uuid(9b7e472a-0de4-4640-bff3-84d38a051c31)
1437 ]
1438 interface ISAXLocator : IUnknown
1439 {
1440     HRESULT getColumnNumber(
1441         [out, retval] int * nColumn);
1442
1443     HRESULT getLineNumber(
1444         [out, retval] int * nLine);
1445
1446     HRESULT getPublicId(
1447         [out, retval] const WCHAR ** publicId);
1448
1449     HRESULT getSystemId(
1450         [out, retval] const WCHAR ** systemId);
1451 };
1452
1453 [
1454     local,
1455     object,
1456     uuid(70409222-ca09-4475-acb8-40312fe8d145)
1457 ]
1458 interface ISAXXMLFilter : ISAXXMLReader
1459 {
1460     HRESULT getParent(
1461         [out, retval] ISAXXMLReader ** pReader);
1462     HRESULT putParent(
1463         [in] ISAXXMLReader * reader);
1464 };
1465
1466 [
1467 local,
1468 object,
1469 uuid (a4f96ed0-f829-476e-81c0-cdc7bd2a0802)
1470 ]
1471 interface ISAXXMLReader : IUnknown
1472 {
1473     HRESULT getFeature(
1474         [in] const WCHAR * pFeature,
1475         [out, retval] VARIANT_BOOL * pValue);
1476     HRESULT putFeature(
1477         [in] const WCHAR * pFeature,
1478         [in] VARIANT_BOOL vfValue);
1479
1480     HRESULT getProperty(
1481         [in] const WCHAR * pProp,
1482         [out, retval] VARIANT * pValue);
1483     HRESULT putProperty(
1484         [in] const WCHAR * pProp,
1485         [in] VARIANT value);
1486
1487     HRESULT getEntityResolver(
1488         [out, retval] ISAXEntityResolver ** ppEntityResolver);
1489     HRESULT putEntityResolver(
1490         [in] ISAXEntityResolver * pEntityResolver);
1491
1492     HRESULT getContentHandler(
1493         [out, retval] ISAXContentHandler ** pContentHandler);
1494     HRESULT putContentHandler(
1495         [in] ISAXContentHandler * contentHandler);
1496
1497     HRESULT getDTDHandler(
1498         [out, retval] ISAXDTDHandler ** pDTDHandler);
1499     HRESULT putDTDHandler(
1500         [in] ISAXDTDHandler * pDTDHandler);
1501
1502     HRESULT getErrorHandler(
1503         [out, retval] ISAXErrorHandler ** pErrorHandler);
1504     HRESULT putErrorHandler(
1505         [in] ISAXErrorHandler * errorHandler);
1506
1507     HRESULT getBaseURL(
1508         [out, retval] const WCHAR ** pBaseUrl);
1509     HRESULT putBaseURL(
1510         [in] const WCHAR * pBaseUrl);
1511
1512     HRESULT getSecureBaseURL(
1513         [out, retval] const WCHAR ** pSecureBaseUrl);
1514     HRESULT putSecureBaseURL(
1515         [in] const WCHAR * secureBaseUrl);
1516
1517     HRESULT parse(
1518         [in] VARIANT varInput);
1519     HRESULT parseURL(
1520         [in] const WCHAR * url);
1521 }
1522
1523 [
1524     object,
1525     dual,
1526     uuid(10dc0586-132b-4cac-8bb3-db00ac8b7ee0)
1527 ]
1528 interface IVBSAXAttributes : IDispatch
1529 {
1530     [propget, id(DISPID_SAX_ATTRIBUTES_LENGTH)]
1531     HRESULT length( [out, retval] int * nLength);
1532
1533     [id(DISPID_SAX_ATTRIBUTES_GETURI)]
1534     HRESULT getURI( [in] int nIndex, [out, retval] BSTR * uri);
1535
1536     [id(DISPID_SAX_ATTRIBUTES_GETLOCALNAME)]
1537     HRESULT getLocalName( [in] int nIndex, [out, retval] BSTR * localName);
1538
1539     [id(DISPID_SAX_ATTRIBUTES_GETQNAME)]
1540     HRESULT getQName( [in] int nIndex, [out, retval] BSTR * QName);
1541
1542     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMNAME)]
1543     HRESULT getIndexFromName( [in] BSTR uri,
1544                               [in] BSTR localName, [out, retval] int * nIndex);
1545
1546     [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMQNAME)]
1547     HRESULT getIndexFromQName( [in] BSTR QName, [out, retval] int * nIndex);
1548
1549     [id(DISPID_SAX_ATTRIBUTES_GETTYPE)]
1550     HRESULT getType( [in] int nIndex, [out, retval] BSTR * type);
1551
1552     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMNAME)]
1553     HRESULT getTypeFromName( [in] BSTR uri, [in] BSTR localName,
1554                              [out, retval] BSTR * type);
1555
1556     [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMQNAME)]
1557     HRESULT getTypeFromQName( [in] BSTR QName, [out, retval] BSTR * type);
1558
1559     [id(DISPID_SAX_ATTRIBUTES_GETVALUE)]
1560     HRESULT getValue( [in] int nIndex, [out, retval] BSTR * value);
1561
1562     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMNAME)]
1563     HRESULT getValueFromName( [in] BSTR uri,
1564                               [in] BSTR localName,
1565                               [out, retval] BSTR * value);
1566
1567     [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMQNAME)]
1568     HRESULT getValueFromQName( [in] BSTR QName, [out, retval] BSTR * value);
1569 };
1570
1571 [
1572     object,
1573     dual,
1574     uuid(2ed7290a-4dd5-4b46-bb26-4e4155e77faa)
1575 ]
1576 interface IVBSAXContentHandler : IDispatch
1577 {
1578     [propputref, id(DISPID_SAX_CONTENTHANDLER_DOCUMENTLOCATOR)]
1579     HRESULT documentLocator( [in] IVBSAXLocator * oLocator);
1580
1581     [id(DISPID_SAX_CONTENTHANDLER_STARTDOCUMENT)]
1582     HRESULT startDocument();
1583
1584     [id(DISPID_SAX_CONTENTHANDLER_ENDDOCUMENT)]
1585     HRESULT endDocument();
1586
1587     [id(DISPID_SAX_CONTENTHANDLER_STARTPREFIXMAPPING)]
1588     HRESULT startPrefixMapping( [in, out] BSTR * prefix, [in, out] BSTR * uri);
1589
1590     [id(DISPID_SAX_CONTENTHANDLER_ENDPREFIXMAPPING)]
1591     HRESULT endPrefixMapping( [in, out] BSTR * prefix);
1592
1593     [id(DISPID_SAX_CONTENTHANDLER_STARTELEMENT)]
1594     HRESULT startElement( [in, out] BSTR * namespaceURI,
1595                           [in, out] BSTR * localName,
1596                           [in, out] BSTR * QName,
1597                           [in] IVBSAXAttributes * oAttributes);
1598
1599     [id(DISPID_SAX_CONTENTHANDLER_ENDELEMENT)]
1600     HRESULT endElement( [in, out] BSTR * namespaceURI,
1601                         [in, out] BSTR * localName, [in, out] BSTR * strQName);
1602
1603     [id(DISPID_SAX_CONTENTHANDLER_CHARACTERS)]
1604     HRESULT characters( [in, out] BSTR * chars);
1605
1606     [id(DISPID_SAX_CONTENTHANDLER_IGNORABLEWHITESPACE)]
1607     HRESULT ignorableWhitespace( [in, out] BSTR * chars);
1608
1609     [id(DISPID_SAX_CONTENTHANDLER_PROCESSINGINSTRUCTION)]
1610     HRESULT processingInstruction( [in, out] BSTR * target,
1611                                    [in, out] BSTR * data);
1612
1613     [id(DISPID_SAX_CONTENTHANDLER_SKIPPEDENTITY)]
1614     HRESULT skippedEntity( [in, out] BSTR * name);
1615 };
1616
1617 [
1618     object,
1619     dual,
1620     uuid(e8917260-7579-4be1-b5dd-7afbfa6f077b)
1621 ]
1622 interface IVBSAXDeclHandler : IDispatch
1623 {
1624     [id(DISPID_SAX_DECLHANDLER_ELEMENTDECL)]
1625     HRESULT elementDecl(
1626         [in, out] BSTR * name,
1627         [in, out] BSTR * model);
1628
1629     [id(DISPID_SAX_DECLHANDLER_ATTRIBUTEDECL)]
1630     HRESULT attributeDecl(
1631         [in, out] BSTR * elementName,
1632         [in, out] BSTR * attributeName,
1633         [in, out] BSTR * type,
1634         [in, out] BSTR * valueDefault,
1635         [in, out] BSTR * value);
1636
1637     [id(DISPID_SAX_DECLHANDLER_INTERNALENTITYDECL)]
1638     HRESULT internalEntityDecl(
1639         [in, out] BSTR * name,
1640         [in, out] BSTR * value);
1641
1642     [id(DISPID_SAX_DECLHANDLER_EXTERNALENTITYDECL)]
1643     HRESULT externalEntityDecl(
1644         [in, out] BSTR * name,
1645         [in, out] BSTR * publicId,
1646         [in, out] BSTR * systemId);
1647 };
1648
1649 [
1650     object,
1651     dual,
1652     uuid(24fb3297-302d-4620-ba39-3a732d850558)
1653 ]
1654 interface IVBSAXDTDHandler : IDispatch
1655 {
1656     [id(DISPID_SAX_DTDHANDLER_NOTATIONDECL)]
1657     HRESULT notationDecl(
1658         [in, out] BSTR * name,
1659         [in, out] BSTR * publicId,
1660         [in, out] BSTR * systemId);
1661
1662     [id(DISPID_SAX_DTDHANDLER_UNPARSEDENTITYDECL)]
1663     HRESULT unparsedEntityDecl(
1664         [in, out] BSTR * name,
1665         [in, out] BSTR * publicId,
1666         [in, out] BSTR * systemId,
1667         [in, out] BSTR * notationName);
1668 };
1669
1670 [
1671     object,
1672     dual,
1673     uuid(0c05d096-f45b-4aca-ad1a-aa0bc25518dc)
1674 ]
1675 interface IVBSAXEntityResolver : IDispatch
1676 {
1677     [id(DISPID_SAX_ENTITYRESOLVER_RESOLVEENTITY)]
1678     HRESULT resolveEntity(
1679         [in, out] BSTR * publicId,
1680         [in, out] BSTR * systemId,
1681         [out, retval] VARIANT * ret);
1682 };
1683
1684 [
1685     object,
1686     dual,
1687     uuid(d963d3fe-173c-4862-9095-b92f66995f52)
1688 ]
1689 interface IVBSAXErrorHandler : IDispatch
1690 {
1691     [id(DISPID_SAX_ERRORHANDLER_ERROR)]
1692     HRESULT error(
1693             [in] IVBSAXLocator * locator,
1694             [in, out] BSTR * errorMessage,
1695             [in] LONG errorCode);
1696
1697     [id(DISPID_SAX_ERRORHANDLER_FATALERROR)]
1698     HRESULT fatalError(
1699             [in] IVBSAXLocator * locator,
1700             [in, out] BSTR * errorMessage,
1701             [in] LONG errorCode);
1702
1703     [id(DISPID_SAX_ERRORHANDLER_IGNORABLEWARNING)]
1704     HRESULT ignorableWarning(
1705             [in] IVBSAXLocator * locator,
1706             [in, out] BSTR * errorMessage,
1707             [in] LONG errorCode);
1708 };
1709
1710 [
1711     object,
1712     dual,
1713     uuid(032aac35-8c0e-4d9d-979f-e3b702935576)
1714 ]
1715 interface IVBSAXLexicalHandler : IDispatch
1716 {
1717     [id(DISPID_SAX_LEXICALHANDLER_STARTDTD)]
1718     HRESULT startDTD(
1719         [in, out] BSTR * name,
1720         [in, out] BSTR * publicId,
1721         [in, out] BSTR * systemId);
1722     [id(DISPID_SAX_LEXICALHANDLER_ENDDTD)]
1723     HRESULT endDTD();
1724
1725     [id(DISPID_SAX_LEXICALHANDLER_STARTENTITY)]
1726     HRESULT startEntity([in, out] BSTR * name);
1727     [id(DISPID_SAX_LEXICALHANDLER_ENDENTITY)]
1728     HRESULT endEntity([in, out] BSTR * name);
1729
1730     [id(DISPID_SAX_LEXICALHANDLER_STARTCDATA)]
1731     HRESULT startCDATA();
1732     [id(DISPID_SAX_LEXICALHANDLER_ENDCDATA)]
1733     HRESULT endCDATA();
1734
1735     [id(DISPID_SAX_LEXICALHANDLER_COMMENT)]
1736     HRESULT comment( [in, out] BSTR * chars);
1737 };
1738
1739 [
1740     object,
1741     uuid(796e7ac5-5aa2-4eff-acad-3faaf01a3288)
1742 ]
1743 interface IVBSAXLocator : IDispatch
1744 {
1745     [propget, id(DISPID_SAX_LOCATOR_COLUMNNUMBER)]
1746     HRESULT columnNumber( [out, retval] int * column);
1747
1748     [propget, id(DISPID_SAX_LOCATOR_LINENUMBER)]
1749     HRESULT lineNumber( [out, retval] int * line);
1750
1751     [propget, id(DISPID_SAX_LOCATOR_PUBLICID)]
1752     HRESULT publicId( [out, retval] BSTR * publicId);
1753
1754     [propget, id(DISPID_SAX_LOCATOR_SYSTEMID)]
1755     HRESULT systemId( [out, retval] BSTR * systemId);
1756 };
1757
1758 [
1759     object,
1760     dual,
1761     uuid(1299eb1b-5b88-433e-82de-82ca75ad4e04)
1762 ]
1763 interface IVBSAXXMLFilter : IDispatch
1764 {
1765     [propget, id(DISPID_SAX_XMLFILTER_PARENT)]
1766     HRESULT parent( [out, retval] IVBSAXXMLReader ** reader);
1767     [propputref, id(DISPID_SAX_XMLFILTER_PARENT)]
1768     HRESULT parent( [in] IVBSAXXMLReader * reader);
1769
1770 };
1771
1772 [
1773     dual,
1774     object,
1775     uuid (8c033caa-6cd6-4f73-b728-4531af74945f)
1776 ]
1777 interface IVBSAXXMLReader : IDispatch
1778 {
1779     [id(DISPID_SAX_XMLREADER_GETFEATURE)]
1780     HRESULT getFeature( [in] const WCHAR * pFeature,
1781                         [out, retval] VARIANT_BOOL * pValue);
1782     [id(DISPID_SAX_XMLREADER_PUTFEATURE)]
1783     HRESULT putFeature( [in] const WCHAR * pFeature,
1784                         [in] VARIANT_BOOL vfValue);
1785
1786     [id(DISPID_SAX_XMLREADER_GETPROPERTY)]
1787     HRESULT getProperty( [in] const WCHAR * pProp,
1788                          [out, retval] VARIANT * pValue);
1789     [id(DISPID_SAX_XMLREADER_PUTPROPERTY)]
1790     HRESULT putProperty( [in] const WCHAR * pProp, [in] VARIANT value);
1791
1792     [propget, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
1793     HRESULT entityResolver(
1794                     [out, retval] IVBSAXEntityResolver ** ppEntityResolver);
1795     [propputref, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
1796     HRESULT entityResolver( [in] IVBSAXEntityResolver * pEntityResolver);
1797
1798     [propget, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
1799     HRESULT contentHandler(
1800                         [out, retval] IVBSAXContentHandler ** pContentHandler);
1801     [propputref, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
1802     HRESULT contentHandler([in] IVBSAXContentHandler * contentHandler);
1803
1804     [propget, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
1805     HRESULT dtdHandler([out, retval] IVBSAXDTDHandler ** pDTDHandler);
1806     [propputref, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
1807     HRESULT dtdHandler([in] IVBSAXDTDHandler * pDTDHandler);
1808
1809     [propget, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
1810     HRESULT errorHandler([out, retval] IVBSAXErrorHandler ** pErrorHandler);
1811     [propputref, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
1812     HRESULT errorHandler([in] IVBSAXErrorHandler * errorHandler);
1813
1814     [propget, id(DISPID_SAX_XMLREADER_BASEURL)]
1815     HRESULT baseURL([out, retval] const WCHAR ** pBaseUrl);
1816     [propput, id(DISPID_SAX_XMLREADER_BASEURL)]
1817     HRESULT baseURL([in] const WCHAR * pBaseUrl);
1818
1819     [propget, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
1820     HRESULT secureBaseURL([out, retval] const WCHAR ** pSecureBaseUrl);
1821     [propput, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
1822     HRESULT secureBaseURL([in] const WCHAR * secureBaseUrl);
1823
1824     [id(DISPID_SAX_XMLREADER_PARSE)]
1825     HRESULT parse( [in] VARIANT varInput);
1826     [id(DISPID_SAX_XMLREADER_PARSEURL)]
1827     HRESULT parseURL([in] const WCHAR * url);
1828 }
1829
1830 [
1831     object,
1832     dual,
1833     uuid(f10d27cc-3ec0-415c-8ed8-77ab1c5e7262)
1834 ]
1835 interface IMXAttributes : IDispatch
1836 {
1837     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTE)]
1838     HRESULT addAttribute(
1839         [in] BSTR uri,
1840         [in] BSTR localName,
1841         [in] BSTR QName,
1842         [in] BSTR type,
1843         [in] BSTR value);
1844
1845     [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTEFROMINDEX)]
1846     HRESULT addAttributeFromIndex( [in] VARIANT atts,
1847                                    [in] int index);
1848
1849     [id(DISPID_MX_ATTRIBUTES_CLEAR)]
1850     HRESULT clear();
1851
1852     [id(DISPID_MX_ATTRIBUTES_REMOVEATTRIBUTE)]
1853     HRESULT removeAttribute( [in] int index);
1854
1855     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTE)]
1856     HRESULT setAttribute(
1857         [in] int index,
1858         [in] BSTR uri,
1859         [in] BSTR localName,
1860         [in] BSTR QName,
1861         [in] BSTR type,
1862         [in] BSTR value);
1863
1864     [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTES)]
1865     HRESULT setAttributes( [in] VARIANT atts);
1866
1867     [id(DISPID_MX_ATTRIBUTES_SETLOCALNAME)]
1868     HRESULT setLocalName( [in] int index,
1869         [in] BSTR localName);
1870
1871     [id(DISPID_MX_ATTRIBUTES_SETQNAME)]
1872     HRESULT setQName(
1873         [in] int index,
1874         [in] BSTR QName);
1875
1876     [id(DISPID_MX_ATTRIBUTES_SETTYPE)]
1877     HRESULT setType( [in] int index, [in] BSTR type);
1878
1879     [id(DISPID_MX_ATTRIBUTES_SETURI)]
1880     HRESULT setURI( [in] int index,  [in] BSTR uri);
1881
1882     [id(DISPID_MX_ATTRIBUTES_SETVALUE)]
1883     HRESULT setValue([in] int index, [in] BSTR value);
1884 };
1885
1886 [
1887     object,
1888     dual,
1889     uuid(808f4e35-8d5a-4fbe-8466-33a41279ed30)
1890 ]
1891 interface IMXReaderControl : IDispatch
1892 {
1893     [id(DISPID_MX_READER_CONTROL_ABORT)]
1894     HRESULT abort();
1895
1896     [id(DISPID_MX_READER_CONTROL_RESUME)]
1897     HRESULT resume();
1898
1899     [id(DISPID_MX_READER_CONTROL_SUSPEND)]
1900     HRESULT suspend();
1901 };
1902
1903 [
1904     object,
1905     dual,
1906     uuid(4d7ff4ba-1565-4ea8-94e1-6e724a46f98d)
1907 ]
1908 interface IMXWriter :  IDispatch
1909 {
1910     [propput, id(DISPID_MX_WRITER_OUTPUT)]
1911     HRESULT output ( [in] VARIANT Destination);
1912     [propget, id(DISPID_MX_WRITER_OUTPUT)]
1913     HRESULT output ( [out, retval] VARIANT * Destination);
1914
1915     [propput, id(DISPID_MX_WRITER_ENCODING)]
1916     HRESULT encoding ([in] BSTR encoding);
1917     [propget, id(DISPID_MX_WRITER_ENCODING)]
1918     HRESULT encoding ([out, retval] BSTR * encoding);
1919
1920     [propput, id(DISPID_MX_WRITER_BYTEORDERMARK)]
1921     HRESULT byteOrderMark ([in] VARIANT_BOOL writeByteOrderMark);
1922     [propget, id(DISPID_MX_WRITER_BYTEORDERMARK)]
1923     HRESULT byteOrderMark ([out, retval] VARIANT_BOOL * writeByteOrderMark);
1924
1925     [propput, id(DISPID_MX_WRITER_INDENT)]
1926     HRESULT indent ([in] VARIANT_BOOL indentMode);
1927     [propget, id(DISPID_MX_WRITER_INDENT)]
1928     HRESULT indent ([out, retval] VARIANT_BOOL * indentMode);
1929
1930     [propput, id(DISPID_MX_WRITER_STANDALONE)]
1931     HRESULT standalone ([in] VARIANT_BOOL value);
1932     [propget, id(DISPID_MX_WRITER_STANDALONE)]
1933     HRESULT standalone ([out, retval] VARIANT_BOOL * value);
1934
1935     [propput, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
1936     HRESULT omitXMLDeclaration ([in] VARIANT_BOOL value);
1937     [propget, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
1938     HRESULT omitXMLDeclaration ([out, retval] VARIANT_BOOL * value);
1939
1940     [propput, id(DISPID_MX_WRITER_VERSION)]
1941     HRESULT version ([in] BSTR version);
1942     [propget, id(DISPID_MX_WRITER_VERSION)]
1943     HRESULT version ([out, retval] BSTR * version);
1944
1945     [propput, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
1946     HRESULT disableOutputEscaping([in] VARIANT_BOOL value);
1947     [propget, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
1948     HRESULT disableOutputEscaping([out, retval] VARIANT_BOOL * value);
1949
1950     [id(DISPID_MX_WRITER_FLUSH)]
1951     HRESULT flush();
1952 };
1953
1954 [
1955     uuid(079aa557-4a18-424a-8eee-e39f0a8d41b9)
1956 ]
1957 coclass SAXXMLReader
1958 {
1959     [default] interface IVBSAXXMLReader;
1960     interface ISAXXMLReader;
1961     interface IMXReaderControl;
1962 };
1963
1964 [
1965     uuid(3124c396-fb13-4836-a6ad-1317f1713688)
1966 ]
1967 coclass SAXXMLReader30
1968 {
1969     [default] interface IVBSAXXMLReader;
1970     interface ISAXXMLReader;
1971     interface IMXReaderControl;
1972 };
1973
1974 [
1975     uuid(fc220ad8-a72a-4ee8-926e-0b7ad152a020)
1976 ]
1977 coclass MXXMLWriter
1978 {
1979     [default] interface IMXWriter;
1980
1981     interface ISAXContentHandler;
1982     interface ISAXErrorHandler;
1983     interface ISAXDTDHandler;
1984     interface ISAXLexicalHandler;
1985     interface ISAXDeclHandler;
1986
1987     interface IVBSAXContentHandler;
1988     interface IVBSAXDeclHandler;
1989     interface IVBSAXDTDHandler;
1990     interface IVBSAXErrorHandler;
1991     interface IVBSAXLexicalHandler;
1992 };
1993
1994 [
1995     uuid(3d813dfe-6c91-4a4e-8f41-04346a841d9c)
1996 ]
1997 coclass MXXMLWriter30
1998 {
1999     [default] interface IMXWriter;
2000
2001     interface ISAXContentHandler;
2002     interface ISAXDeclHandler;
2003     interface ISAXDTDHandler;
2004     interface ISAXErrorHandler;
2005     interface ISAXLexicalHandler;
2006
2007     interface IVBSAXContentHandler;
2008     interface IVBSAXDeclHandler;
2009     interface IVBSAXDTDHandler;
2010     interface IVBSAXErrorHandler;
2011     interface IVBSAXLexicalHandler;
2012 };
2013
2014 [
2015     uuid(4dd441ad-526d-4a77-9f1b-9841ed802fb0)
2016 ]
2017 coclass SAXAttributes
2018 {
2019     [default] interface IMXAttributes;
2020     interface IVBSAXAttributes;
2021     interface ISAXAttributes;
2022 };
2023
2024 [
2025     uuid(3e784a01-f3ae-4dc0-9354-9526b9370eba)
2026 ]
2027 coclass SAXAttributes30
2028 {
2029     [default] interface IMXAttributes;
2030     interface IVBSAXAttributes;
2031     interface ISAXAttributes;
2032 };
2033
2034
2035 } /* Library MSXML */