xref: /reactos/dll/win32/msxml2/msxml2_tlb.idl (revision c2c66aff)
1/*
2 * Copyright (C) 2005 Vijay Kiran Kamuju
3 * Copyright (C) 2008 Alistair Leslie-Hughes
4 * Copyright (C) 2010 Nikolay Sivov for CodeWeavers
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#pragma makedep regtypelib
22
23#include <msxml2did.h>
24#include <idispids.h>
25
26import "unknwn.idl";
27import "objidl.idl";
28import "oaidl.idl";
29
30[
31    uuid(f5078f18-c551-11d3-89b9-0000f81fe221),
32    version(2.6),
33    helpstring("Microsoft XML, v2.6")
34]
35library MSXML2
36{
37
38importlib("stdole2.tlb");
39
40interface IXMLDOMImplementation;
41interface IXMLDOMNode;
42interface IXMLDOMDocumentFragment;
43interface IXMLDOMDocument;
44interface IXMLDOMSchemaCollection;
45interface IXMLDOMDocument2;
46interface IXMLDOMNodeList;
47interface IXMLDOMNamedNodeMap;
48interface IXMLDOMCharacterData;
49interface IXMLDOMAttribute;
50interface IXMLDOMElement;
51interface IXMLDOMText;
52interface IXMLDOMComment;
53interface IXMLDOMProcessingInstruction;
54interface IXMLDOMCDATASection;
55interface IXMLDOMDocumentType;
56interface IXMLDOMNotation;
57interface IXMLDOMEntity;
58interface IXMLDOMEntityReference;
59interface IXMLDOMParseError;
60interface IXTLRuntime;
61interface IXSLTemplate;
62interface IXSLProcessor;
63
64typedef enum tagDOMNodeType
65{
66    NODE_INVALID  		= 0,
67    NODE_ELEMENT  		= 1,
68    NODE_ATTRIBUTE		= 2,
69    NODE_TEXT			= 3,
70    NODE_CDATA_SECTION		= 4,
71    NODE_ENTITY_REFERENCE 	= 5,
72    NODE_ENTITY 		= 6,
73    NODE_PROCESSING_INSTRUCTION = 7,
74    NODE_COMMENT		= 8,
75    NODE_DOCUMENT		= 9,
76    NODE_DOCUMENT_TYPE		= 10,
77    NODE_DOCUMENT_FRAGMENT 	= 11,
78    NODE_NOTATION 		= 12
79} DOMNodeType;
80
81[
82local,
83object,
84dual,
85oleautomation,
86uuid (2933BF80-7B36-11d2-B20E-00C04F983E60)
87]
88interface IXMLDOMNode : IDispatch
89{
90    [propget, id(DISPID_DOM_NODE_NODENAME)]
91    HRESULT nodeName([retval, out] BSTR *p);
92
93    [propget, id(DISPID_DOM_NODE_NODEVALUE)]
94    HRESULT nodeValue([retval, out] VARIANT *var1);
95
96    [propput, id(DISPID_DOM_NODE_NODEVALUE)]
97    HRESULT nodeValue([in] VARIANT var1);
98
99    [propget, id(DISPID_DOM_NODE_NODETYPE)]
100    HRESULT nodeType([retval, out] DOMNodeType *domNodeType);
101
102    [propget, id(DISPID_DOM_NODE_PARENTNODE)]
103    HRESULT parentNode([retval, out] IXMLDOMNode **parent);
104
105    [propget, id(DISPID_DOM_NODE_CHILDNODES)]
106    HRESULT childNodes([retval, out] IXMLDOMNodeList **outList);
107
108    [propget, id(DISPID_DOM_NODE_FIRSTCHILD)]
109    HRESULT firstChild([retval, out] IXMLDOMNode **domNode);
110
111    [propget, id(DISPID_DOM_NODE_LASTCHILD)]
112    HRESULT lastChild([retval, out] IXMLDOMNode **domNode);
113
114    [propget, id(DISPID_DOM_NODE_PREVIOUSSIBLING)]
115    HRESULT previousSibling([retval, out] IXMLDOMNode **domNode);
116
117    [propget, id(DISPID_DOM_NODE_NEXTSIBLING)]
118    HRESULT nextSibling([retval, out] IXMLDOMNode **domNode);
119
120    [propget, id(DISPID_DOM_NODE_ATTRIBUTES)]
121    HRESULT attributes([retval, out] IXMLDOMNamedNodeMap **attributeMap);
122
123    [id(DISPID_DOM_NODE_INSERTBEFORE)]
124    HRESULT insertBefore(
125        [in] IXMLDOMNode *newNode,
126        [in] VARIANT var1,
127        [retval, out] IXMLDOMNode **outOldNode);
128
129    [id(DISPID_DOM_NODE_REPLACECHILD)]
130    HRESULT replaceChild(
131        [in] IXMLDOMNode *newNode,
132        [in] IXMLDOMNode *oldNode,
133        [retval, out] IXMLDOMNode **outOldNode);
134
135    [id(DISPID_DOM_NODE_REMOVECHILD)]
136    HRESULT removeChild(
137        [in] IXMLDOMNode *domNode,
138        [retval, out] IXMLDOMNode **oldNode);
139
140    [id(DISPID_DOM_NODE_APPENDCHILD)]
141    HRESULT appendChild(
142        [in] IXMLDOMNode *newNode,
143        [retval, out] IXMLDOMNode **outNewNode);
144
145    [id(DISPID_DOM_NODE_HASCHILDNODES)]
146    HRESULT hasChildNodes(
147        [retval, out] VARIANT_BOOL *pbool);
148
149    [propget, id(DISPID_DOM_NODE_OWNERDOC)]
150    HRESULT ownerDocument([retval, out] IXMLDOMDocument **domDocument);
151
152    [id(DISPID_DOM_NODE_CLONENODE)]
153    HRESULT cloneNode(
154        [in] VARIANT_BOOL pbool,
155        [retval, out] IXMLDOMNode **outNode);
156
157    [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE)]
158    HRESULT nodeTypeString([retval, out] BSTR *p);
159
160    [propget, id(DISPID_XMLDOM_NODE_TEXT)]
161    HRESULT text([retval, out] BSTR *p);
162
163    [propput, id(DISPID_XMLDOM_NODE_TEXT)]
164    HRESULT text([in] BSTR p);
165
166    [propget, id(DISPID_XMLDOM_NODE_SPECIFIED)]
167    HRESULT specified([retval, out] VARIANT_BOOL *pbool);
168
169    [propget, id(DISPID_XMLDOM_NODE_DEFINITION)]
170    HRESULT definition([retval,out] IXMLDOMNode **domNode);
171
172    [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
173    HRESULT nodeTypedValue([retval, out] VARIANT *var1);
174
175    [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
176    HRESULT nodeTypedValue([in] VARIANT var1);
177
178    [propget, id(DISPID_XMLDOM_NODE_DATATYPE)]
179    HRESULT dataType([retval, out] VARIANT *var1);
180
181    [propput, id(DISPID_XMLDOM_NODE_DATATYPE)]
182    HRESULT dataType([in] BSTR p);
183
184    [propget, id(DISPID_XMLDOM_NODE_XML)]
185    HRESULT xml([retval, out] BSTR *p);
186
187    [id(DISPID_XMLDOM_NODE_TRANSFORMNODE)]
188    HRESULT transformNode(
189        [in] IXMLDOMNode *domNode,
190        [retval, out] BSTR *p);
191
192    [id(DISPID_XMLDOM_NODE_SELECTNODES)]
193    HRESULT selectNodes(
194        [in] BSTR p,
195        [retval, out] IXMLDOMNodeList **outList);
196
197    [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE)]
198    HRESULT selectSingleNode(
199        [in] BSTR p,
200        [retval, out] IXMLDOMNode **outNode);
201
202    [propget,id(DISPID_XMLDOM_NODE_PARSED)]
203    HRESULT parsed([retval, out] VARIANT_BOOL *pbool);
204
205    [propget, id(DISPID_XMLDOM_NODE_NAMESPACE)]
206    HRESULT namespaceURI([retval, out] BSTR *p);
207
208    [propget, id(DISPID_XMLDOM_NODE_PREFIX)]
209    HRESULT prefix([retval, out] BSTR *p);
210
211    [propget, id(DISPID_XMLDOM_NODE_BASENAME)]
212    HRESULT baseName([retval, out] BSTR *p);
213
214    [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT)]
215    HRESULT transformNodeToObject(
216        [in] IXMLDOMNode *domNode,
217        [in] VARIANT var1);
218}
219
220[
221local,
222object,
223dual,
224oleautomation,
225uuid (2933BF81-7B36-11d2-B20E-00C04F983E60)
226]
227interface IXMLDOMDocument : IXMLDOMNode
228{
229    [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)]
230    HRESULT doctype([retval, out] IXMLDOMDocumentType **docType);
231
232    [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION)]
233    HRESULT implementation([retval, out] IXMLDOMImplementation **impl);
234
235    [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
236    HRESULT documentElement([retval, out] IXMLDOMElement **domElement);
237
238    [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
239    HRESULT documentElement([in] IXMLDOMElement *domElement);
240
241    [id(DISPID_DOM_DOCUMENT_CREATEELEMENT)]
242    HRESULT createElement(
243        [in] BSTR p,
244        [retval, out] IXMLDOMElement **domElement);
245
246    [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT)]
247    HRESULT createDocumentFragment(
248        [retval, out] IXMLDOMDocumentFragment **docFrag);
249
250    [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE)]
251    HRESULT createTextNode(
252        [in] BSTR p,
253        [retval, out] IXMLDOMText **text);
254
255    [id(DISPID_DOM_DOCUMENT_CREATECOMMENT)]
256    HRESULT createComment(
257        [in] BSTR p,
258        [retval, out] IXMLDOMComment **comment);
259
260    [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION)]
261    HRESULT createCDATASection(
262        [in] BSTR p,
263        [retval, out] IXMLDOMCDATASection **cdata);
264
265    [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION)]
266    HRESULT createProcessingInstruction(
267        [in] BSTR target,
268        [in] BSTR data,
269        [retval, out] IXMLDOMProcessingInstruction **pi);
270
271    [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE)]
272    HRESULT createAttribute(
273        [in] BSTR p,
274        [retval, out] IXMLDOMAttribute **attribute);
275
276    [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE)]
277    HRESULT createEntityReference(
278        [in] BSTR p,
279        [retval, out] IXMLDOMEntityReference **entityRef);
280
281    [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME)]
282    HRESULT getElementsByTagName(
283        [in] BSTR p,
284        [retval, out] IXMLDOMNodeList **resultList);
285
286    [id(DISPID_XMLDOM_DOCUMENT_CREATENODE)]
287    HRESULT createNode(
288        [in] VARIANT var,
289        [in] BSTR name,
290        [in] BSTR uri,
291        [retval, out] IXMLDOMNode **node);
292
293    [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID)]
294    HRESULT nodeFromID(
295        [in] BSTR id,
296        [retval, out] IXMLDOMNode **node);
297
298    [id(DISPID_XMLDOM_DOCUMENT_LOAD)]
299    HRESULT load(
300        [in] VARIANT var1,
301        [retval, out] VARIANT_BOOL *pbool);
302
303    [propget, id(DISPID_READYSTATE)]
304    HRESULT readyState([retval, out] LONG *value);
305
306    [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR)]
307    HRESULT parseError([retval, out] IXMLDOMParseError **err);
308
309    [propget, id(DISPID_XMLDOM_DOCUMENT_URL)]
310    HRESULT url([retval, out] BSTR *p);
311
312    [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
313    HRESULT async([retval, out] VARIANT_BOOL *pbool);
314
315    [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
316    HRESULT async([in] VARIANT_BOOL pbool);
317
318    [id(DISPID_XMLDOM_DOCUMENT_ABORT)]
319    HRESULT abort();
320
321    [id(DISPID_XMLDOM_DOCUMENT_LOADXML)]
322    HRESULT loadXML(
323        [in] BSTR p,
324        [out, retval] VARIANT_BOOL *pbool);
325
326    [id(DISPID_XMLDOM_DOCUMENT_SAVE)]
327    HRESULT save(
328        [in] VARIANT var1);
329
330    [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
331    HRESULT validateOnParse([retval, out] VARIANT_BOOL *pbool);
332
333    [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
334    HRESULT validateOnParse([in] VARIANT_BOOL pbool);
335
336    [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
337    HRESULT resolveExternals([retval,out] VARIANT_BOOL *pbool);
338
339    [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
340    HRESULT resolveExternals([in] VARIANT_BOOL pbool);
341
342    [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
343    HRESULT preserveWhiteSpace([retval,out] VARIANT_BOOL *pbool);
344
345    [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
346    HRESULT preserveWhiteSpace([in] VARIANT_BOOL pbool);
347
348    [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE)]
349    HRESULT onreadystatechange([in] VARIANT var1);
350
351    [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE)]
352    HRESULT ondataavailable([in] VARIANT var1);
353
354    [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE)]
355    HRESULT ontransformnode([in] VARIANT var1);
356}
357
358[
359local,
360object,
361dual,
362oleautomation,
363uuid (373984c8-b845-449b-91e7-45ac83036ade)
364]
365interface IXMLDOMSchemaCollection : IDispatch
366{
367    [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADD)]
368    HRESULT add(
369        [in] BSTR uri,
370        [in] VARIANT var);
371
372    [id(DISPID_XMLDOM_SCHEMACOLLECTION_GET)]
373    HRESULT get(
374        [in] BSTR uri,
375        [retval, out] IXMLDOMNode **node);
376
377    [id(DISPID_XMLDOM_SCHEMACOLLECTION_REMOVE)]
378    HRESULT remove(
379        [in] BSTR uri);
380
381    [propget, id(DISPID_XMLDOM_SCHEMACOLLECTION_LENGTH)]
382    HRESULT length(
383        [retval, out] LONG *length);
384
385    [propget, id(DISPID_VALUE)]
386    HRESULT namespaceURI([in] LONG index, [out, retval] BSTR *len);
387
388    [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADDCOLLECTION)]
389    HRESULT addCollection(
390        [in] IXMLDOMSchemaCollection *otherCollection);
391
392    [propget, id(DISPID_NEWENUM)]
393    HRESULT _newEnum([retval, out] IUnknown **ppUnk);
394}
395
396[
397local,
398object,
399dual,
400oleautomation,
401uuid (2933BF95-7B36-11d2-B20E-00C04F983E60)
402]
403interface IXMLDOMDocument2 : IXMLDOMDocument
404{
405    [propget, id(DISPID_XMLDOM_DOCUMENT2_NAMESPACES)]
406    HRESULT namespaces([retval, out] IXMLDOMSchemaCollection **schemaCollection);
407
408    [propget, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
409    HRESULT schemas([retval, out] VARIANT *var1);
410
411    [propputref, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
412    HRESULT schemas([in] VARIANT var1);
413
414    [id(DISPID_XMLDOM_DOCUMENT2_VALIDATE)]
415    HRESULT validate(
416        [retval, out] IXMLDOMParseError **err);
417
418    [id(DISPID_XMLDOM_DOCUMENT2_SETPROPERTY)]
419    HRESULT setProperty(
420        [in] BSTR p,
421        [in] VARIANT var);
422
423    [id(DISPID_XMLDOM_DOCUMENT2_GETPROPERTY)]
424    HRESULT getProperty(
425        [in] BSTR p,
426        [retval, out] VARIANT *var);
427}
428
429[
430local,
431object,
432dual,
433oleautomation,
434uuid (2933BF82-7B36-11d2-B20E-00C04F983E60)
435]
436interface IXMLDOMNodeList : IDispatch
437{
438    [propget, id(DISPID_VALUE)]
439    HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
440
441    [propget, id(DISPID_DOM_NODELIST_LENGTH)]
442    HRESULT length([retval, out] LONG *lLength);
443
444    [id(DISPID_XMLDOM_NODELIST_NEXTNODE)]
445    HRESULT nextNode(
446        [retval, out] IXMLDOMNode **outNode);
447
448    [id(DISPID_XMLDOM_NODELIST_RESET)]
449    HRESULT reset();
450
451    [propget, id(DISPID_NEWENUM)]
452    HRESULT _newEnum([retval, out] IUnknown **ppUnk);
453}
454
455[
456local,
457object,
458dual,
459oleautomation,
460uuid (AA634FC7-5888-44a7-A257-3A47150D3A0E)
461]
462interface IXMLDOMSelection : IXMLDOMNodeList
463{
464    [propget, id(DISPID_XMLDOM_SELECTION_EXPR)]
465    HRESULT expr([retval, out] BSTR *p);
466
467    [propput, id(DISPID_XMLDOM_SELECTION_EXPR)]
468    HRESULT expr([in] BSTR p);
469
470    [propget, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
471    HRESULT context([retval, out] IXMLDOMNode **ppNode);
472
473    [propputref, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
474    HRESULT context([in] IXMLDOMNode * pNode);
475
476    [id(DISPID_XMLDOM_SELECTION_PEEKNODE)]
477    HRESULT peekNode(
478        [retval, out] IXMLDOMNode **ppNode);
479
480    [id(DISPID_XMLDOM_SELECTION_MATCHES)]
481    HRESULT matches(
482        [in] IXMLDOMNode *pNode,
483        [retval, out] IXMLDOMNode **ppNode);
484
485    [id(DISPID_XMLDOM_SELECTION_REMOVENEXT)]
486    HRESULT removeNext(
487        [retval, out] IXMLDOMNode **ppNode);
488
489    [id(DISPID_XMLDOM_SELECTION_REMOVEALL)]
490    HRESULT removeAll();
491
492    [id(DISPID_XMLDOM_SELECTION_CLONE)]
493    HRESULT clone(
494        [retval, out] IXMLDOMSelection **ppNode);
495
496    [id(DISPID_XMLDOM_SELECTION_GETPROPERTY)]
497    HRESULT getProperty(
498        [in] BSTR p,
499        [retval, out] VARIANT * var);
500
501    [id(DISPID_XMLDOM_SELECTION_SETPROPERTY)]
502    HRESULT setProperty(
503        [in] BSTR p,
504        [in] VARIANT var);
505}
506
507[
508local,
509object,
510dual,
511oleautomation,
512uuid (2933BF83-7B36-11d2-B20E-00C04F983E60)
513]
514interface IXMLDOMNamedNodeMap : IDispatch
515{
516    [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)]
517    HRESULT getNamedItem(
518        [in] BSTR p,
519        [retval, out] IXMLDOMNode **outNode);
520
521    [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)]
522    HRESULT setNamedItem(
523        [in] IXMLDOMNode *newNode,
524        [retval, out] IXMLDOMNode **outNode);
525
526    [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)]
527    HRESULT removeNamedItem(
528        [in] BSTR p,
529        [retval, out] IXMLDOMNode **outNode);
530
531    [propget, id(DISPID_VALUE)]
532    HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
533
534    [propget, id(DISPID_DOM_NODELIST_LENGTH)]
535    HRESULT length([retval, out] LONG *lLength);
536
537    [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)]
538    HRESULT getQualifiedItem(
539        [in] BSTR name,
540        [in] BSTR uri,
541        [retval, out] IXMLDOMNode **outNode);
542
543    [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)]
544    HRESULT removeQualifiedItem(
545        [in] BSTR name,
546        [in] BSTR uri,
547        [retval, out] IXMLDOMNode **outNode);
548
549    [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)]
550    HRESULT nextNode(
551        [retval, out] IXMLDOMNode **outNode);
552
553    [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)]
554    HRESULT reset();
555
556    [propget, id(DISPID_NEWENUM)]
557    HRESULT _newEnum([retval, out] IUnknown **ppUnk);
558}
559
560[
561local,
562object,
563dual,
564oleautomation,
565uuid (3efaa413-272f-11d2-836f-0000f87a7782)
566]
567interface IXMLDOMDocumentFragment : IXMLDOMNode
568{
569}
570
571[
572local,
573object,
574dual,
575oleautomation,
576uuid (2933BF84-7B36-11d2-B20E-00C04F983E60)
577]
578interface IXMLDOMCharacterData : IXMLDOMNode
579{
580    [propget, id(DISPID_DOM_DATA_DATA)]
581    HRESULT data([retval, out] BSTR *p);
582
583    [propput, id(DISPID_DOM_DATA_DATA)]
584    HRESULT data([in] BSTR data);
585
586    [propget, id(DISPID_DOM_DATA_LENGTH)]
587    HRESULT length([retval, out] LONG *len);
588
589    [id(DISPID_DOM_DATA_SUBSTRING)]
590    HRESULT substringData(
591        [in] LONG offset,
592        [in] LONG count,
593        [retval, out] BSTR *p);
594
595    [id(DISPID_DOM_DATA_APPEND)]
596    HRESULT appendData(
597        [in] BSTR p);
598
599    [id(DISPID_DOM_DATA_INSERT)]
600    HRESULT insertData(
601        [in] LONG offset,
602        [in] BSTR p);
603
604    [id(DISPID_DOM_DATA_DELETE)]
605    HRESULT deleteData(
606        [in] LONG offset,
607        [in] LONG count);
608
609    [id(DISPID_DOM_DATA_REPLACE)]
610    HRESULT replaceData(
611        [in] LONG offset,
612        [in] LONG count,
613        [in] BSTR p);
614}
615
616[
617local,
618object,
619dual,
620oleautomation,
621uuid (2933BF85-7B36-11d2-B20E-00C04F983E60)
622]
623interface IXMLDOMAttribute : IXMLDOMNode
624{
625    [propget, id(DISPID_DOM_ATTRIBUTE_GETNAME)]
626    HRESULT name([retval, out] BSTR *p);
627
628    [propget, id(DISPID_DOM_ATTRIBUTE_VALUE)]
629    HRESULT value([retval, out] VARIANT *var1);
630
631    [propput, id(DISPID_DOM_ATTRIBUTE_VALUE)]
632    HRESULT value([in] VARIANT var1);
633}
634
635[
636local,
637object,
638dual,
639oleautomation,
640uuid (2933BF86-7B36-11d2-B20E-00C04F983E60)
641]
642interface IXMLDOMElement : IXMLDOMNode
643{
644    [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)]
645    HRESULT tagName([retval, out] BSTR *p);
646
647    [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)]
648    HRESULT getAttribute(
649        [in] BSTR p,
650        [retval, out] VARIANT *var);
651
652    [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)]
653    HRESULT setAttribute(
654        [in] BSTR p,
655        [in] VARIANT var);
656
657    [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)]
658    HRESULT removeAttribute(
659        [in] BSTR p);
660
661    [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)]
662    HRESULT getAttributeNode(
663        [in] BSTR p,
664        [retval, out] IXMLDOMAttribute **attributeNode);
665
666    [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)]
667    HRESULT setAttributeNode(
668        [in] IXMLDOMAttribute *domAttribute,
669        [retval, out] IXMLDOMAttribute **attributeNode);
670
671    [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)]
672    HRESULT removeAttributeNode(
673        [in] IXMLDOMAttribute *domAttribute,
674        [retval, out] IXMLDOMAttribute **attributeNode);
675
676    [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)]
677    HRESULT getElementsByTagName(
678        [in] BSTR p,
679        [retval, out] IXMLDOMNodeList **resultList);
680
681    [id(DISPID_DOM_ELEMENT_NORMALIZE)]
682    HRESULT normalize();
683}
684
685[
686local,
687object,
688dual,
689oleautomation,
690uuid (2933BF87-7B36-11d2-B20E-00C04F983E60)
691]
692interface IXMLDOMText : IXMLDOMCharacterData
693{
694    [id(DISPID_DOM_TEXT_SPLITTEXT)]
695    HRESULT splitText(
696        [in] LONG offset,
697        [retval, out] IXMLDOMText **txtNode);
698}
699
700[
701local,
702object,
703dual,
704oleautomation,
705uuid (2933BF88-7B36-11d2-B20E-00C04F983E60)
706]
707interface IXMLDOMComment : IXMLDOMCharacterData
708{
709}
710
711[
712local,
713object,
714dual,
715oleautomation,
716uuid (2933BF89-7B36-11d2-B20E-00C04F983E60)
717]
718interface IXMLDOMProcessingInstruction : IXMLDOMNode
719{
720    [propget, id(DISPID_DOM_PI_TARGET)]
721    HRESULT target([retval, out] BSTR *p);
722
723    [propget, id(DISPID_DOM_PI_DATA)]
724    HRESULT data([retval, out] BSTR *p);
725
726    [propput, id(DISPID_DOM_PI_DATA)]
727    HRESULT data([in] BSTR p);
728}
729
730[
731local,
732object,
733dual,
734oleautomation,
735uuid (2933BF8A-7B36-11d2-B20E-00C04F983E60)
736]
737interface IXMLDOMCDATASection : IXMLDOMText
738{
739}
740
741[
742local,
743object,
744dual,
745oleautomation,
746uuid (2933BF8B-7B36-11d2-B20E-00C04F983E60)
747]
748interface IXMLDOMDocumentType : IXMLDOMNode
749{
750    [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)]
751    HRESULT name([retval, out] BSTR *p);
752
753    [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)]
754    HRESULT entities([retval, out] IXMLDOMNamedNodeMap **entityMap);
755
756    [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)]
757    HRESULT notations([retval, out] IXMLDOMNamedNodeMap **notationMap);
758}
759
760[
761local,
762object,
763dual,
764oleautomation,
765uuid (2933BF8C-7B36-11d2-B20E-00C04F983E60)
766]
767interface IXMLDOMNotation : IXMLDOMNode
768{
769    [propget, id(DISPID_DOM_NOTATION_PUBLICID)]
770    HRESULT publicId([retval, out] VARIANT *id);
771
772    [propget, id(DISPID_DOM_NOTATION_SYSTEMID)]
773    HRESULT systemId([retval, out] VARIANT *id);
774}
775
776[
777local,
778object,
779dual,
780oleautomation,
781uuid (2933BF8D-7B36-11d2-B20E-00C04F983E60)
782]
783interface IXMLDOMEntity : IXMLDOMNode
784{
785    [propget, id(DISPID_DOM_ENTITY_PUBLICID)]
786    HRESULT publicId([retval, out] VARIANT *id1);
787
788    [propget, id(DISPID_DOM_ENTITY_SYSTEMID)]
789    HRESULT systemId([retval, out] VARIANT *id1);
790
791    [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)]
792    HRESULT notationName([retval, out] BSTR *p);
793}
794
795[
796local,
797object,
798dual,
799oleautomation,
800uuid (2933BF8E-7B36-11d2-B20E-00C04F983E60)
801]
802interface IXMLDOMEntityReference : IXMLDOMNode
803{
804}
805
806[
807local,
808object,
809dual,
810oleautomation,
811uuid (2933BF8F-7B36-11d2-B20E-00C04F983E60)
812]
813interface IXMLDOMImplementation : IDispatch
814{
815    [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)]
816    HRESULT hasFeature(
817        [in] BSTR feature,
818        [in] BSTR version,
819        [retval, out] VARIANT_BOOL *pbool);
820}
821
822[
823local,
824object,
825dual,
826oleautomation,
827uuid (3efaa425-272f-11d2-836f-0000f87a7782)
828]
829interface IXTLRuntime : IXMLDOMNode
830{
831    [id(DISPID_XTLRUNTIME_UNIQUEID)]
832    HRESULT uniqueID(
833        [in]IXMLDOMNode *pNode,
834        [retval, out]LONG *pID);
835
836    [id(DISPID_XTLRUNTIME_DEPTH)]
837    HRESULT depth(
838        [in] IXMLDOMNode *pNode,
839        [retval, out]LONG * pDepth);
840
841    [id(DISPID_XTLRUNTIME_CHILDNUMBER)]
842    HRESULT childNumber(
843        [in]IXMLDOMNode *pNode,
844        [retval, out] LONG *pNumber);
845
846    [id(DISPID_XTLRUNTIME_ANCESTORCHILDNUMBER)]
847    HRESULT ancestorChildNumber(
848        [in]BSTR bstr,
849        [in]IXMLDOMNode *pNode,
850        [retval, out]LONG *pNumber);
851
852    [id(DISPID_XTLRUNTIME_ABSOLUTECHILDNUMBER)]
853    HRESULT absoluteChildNumber(
854        [in]IXMLDOMNode *pNode,
855        [retval, out]LONG *pNumber);
856
857    [id(DISPID_XTLRUNTIME_FORMATINDEX)]
858    HRESULT formatIndex(
859        [in] LONG lIndex,
860        [in] BSTR bstr,
861        [retval, out]BSTR *pbstr);
862
863    [id(DISPID_XTLRUNTIME_FORMATNUMBER)]
864    HRESULT formatNumber(
865        [in] double dblNumber,
866        [in] BSTR bstr,
867        [retval, out]BSTR *pbstr);
868
869    [id(DISPID_XTLRUNTIME_FORMATDATE)]
870    HRESULT formatDate(
871        [in] VARIANT var1,
872        [in] BSTR bstr,
873        [optional, in] VARIANT var2,
874        [retval, out]BSTR *pbstr);
875
876    [id(DISPID_XTLRUNTIME_FORMATTIME)]
877    HRESULT formatTime(
878        [in] VARIANT var1,
879        [in] BSTR bstr,
880        [optional, in] VARIANT var2,
881        [retval, out]BSTR *pbstr);
882
883}
884
885[
886    uuid(3efaa427-272f-11d2-836f-0000f87a7782)
887]
888dispinterface XMLDOMDocumentEvents
889{
890    properties:
891    methods:
892    [id (DISPID_XMLDOMEVENT_ONDATAAVAILABLE)]
893    HRESULT ondataavailable();
894
895    [id (DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)]
896    HRESULT onreadystatechange();
897}
898
899[
900local,
901object,
902dual,
903oleautomation,
904uuid (2933BF92-7B36-11d2-B20E-00C04F983E60)
905]
906interface IXSLProcessor : IDispatch
907{
908    [propput, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
909    HRESULT input([in] VARIANT var);
910
911    [propget, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
912    HRESULT input([retval, out] VARIANT *var);
913
914    [propget, id(DISPID_XMLDOM_PROCESSOR_XSLTEMPLATE)]
915    HRESULT ownerTemplate([retval, out] IXSLTemplate **ppTemplate);
916
917    [id(DISPID_XMLDOM_PROCESSOR_SETSTARTMODE)]
918    HRESULT setStartMode(
919        [in] BSTR p,
920        [in, defaultvalue("")] BSTR uri);
921
922    [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODE)]
923    HRESULT startMode([retval, out] BSTR *p);
924
925    [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODEURI)]
926    HRESULT startModeURI([retval, out] BSTR *uri);
927
928    [propput, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
929    HRESULT output([in] VARIANT var);
930
931    [propget, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
932    HRESULT output([retval, out] VARIANT *var);
933
934    [id(DISPID_XMLDOM_PROCESSOR_TRANSFORM)]
935    HRESULT transform(
936        [retval, out] VARIANT_BOOL *pbool);
937
938    [id(DISPID_XMLDOM_PROCESSOR_RESET)]
939    HRESULT reset();
940
941    [propget, id(DISPID_XMLDOM_PROCESSOR_READYSTATE)]
942    HRESULT readyState([retval, out] LONG *pstate);
943
944    [id(DISPID_XMLDOM_PROCESSOR_ADDPARAMETER)]
945    HRESULT addParameter(
946        [in] BSTR p,
947        [in] VARIANT var,
948        [in, defaultvalue("")] BSTR uri);
949
950    [id(DISPID_XMLDOM_PROCESSOR_ADDOBJECT)]
951    HRESULT addObject(
952        [in] IDispatch* obj,
953        [in] BSTR uri);
954
955    [propget, id(DISPID_XMLDOM_PROCESSOR_STYLESHEET)]
956    HRESULT stylesheet([retval, out] IXMLDOMNode **node);
957}
958
959[
960local,
961object,
962dual,
963oleautomation,
964uuid (2933BF93-7B36-11d2-B20E-00C04F983E60)
965]
966interface IXSLTemplate : IDispatch
967{
968    [propputref, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
969    HRESULT stylesheet([in] IXMLDOMNode *node);
970
971    [propget, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
972    HRESULT stylesheet([retval, out] IXMLDOMNode **node);
973
974    [id(DISPID_XMLDOM_TEMPLATE_CREATEPROCESSOR)]
975    HRESULT createProcessor(
976        [retval, out] IXSLProcessor **ppProcessor);
977}
978
979[
980    object,
981    uuid(ED8C108D-4349-11D2-91A4-00C04F7969E8),
982    odl,
983    dual,
984    oleautomation,
985    pointer_default(unique)
986]
987interface IXMLHTTPRequest : IDispatch
988{
989    [id(1)]
990    HRESULT open([in] BSTR bstrMethod, [in] BSTR bstrUrl, [in, optional] VARIANT varAsync,
991                 [in,optional] VARIANT username, [in,optional] VARIANT password);
992
993    [id(2)]
994    HRESULT setRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue);
995
996    [id(3)]
997    HRESULT getResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR * value);
998
999    [id(4)]
1000    HRESULT getAllResponseHeaders([out, retval] BSTR * pbstrHeaders);
1001
1002    [id(5)]
1003    HRESULT send([in, optional] VARIANT body);
1004
1005    [id(6)]
1006    HRESULT abort();
1007
1008    [propget, id(7)]
1009    HRESULT status([out, retval] LONG *pStatus);
1010
1011    [propget, id(8)]
1012    HRESULT statusText([out, retval] BSTR *pStatus);
1013
1014    [propget, id(9)]
1015    HRESULT responseXML([out, retval] IDispatch **pBody);
1016
1017    [propget, id(10)]
1018    HRESULT responseText([out, retval] BSTR *pBody);
1019
1020    [propget, id(11)]
1021    HRESULT responseBody([out, retval] VARIANT *pBody);
1022
1023    [propget, id(12)]
1024    HRESULT responseStream([out, retval] VARIANT *pBody);
1025
1026    [propget, id(13)]
1027    HRESULT readyState([out, retval] LONG *pState);
1028
1029    [propput, id(14)]
1030    HRESULT onreadystatechange([in] IDispatch *pReadyStateSink);
1031}
1032
1033[
1034local,
1035object,
1036dual,
1037oleautomation,
1038uuid (3efaa426-272f-11d2-836f-0000f87a7782)
1039]
1040interface IXMLDOMParseError : IDispatch
1041{
1042    [propget, id(DISPID_VALUE)]
1043    HRESULT errorCode([retval, out] LONG *errCode);
1044
1045    [propget, id(DISPID_DOM_ERROR_URL)]
1046    HRESULT url([retval, out] BSTR *p);
1047
1048    [propget, id(DISPID_DOM_ERROR_REASON)]
1049    HRESULT reason([retval, out] BSTR *p);
1050
1051    [propget, id(DISPID_DOM_ERROR_SRCTEXT)]
1052    HRESULT srcText([retval, out] BSTR *p);
1053
1054    [propget, id(DISPID_DOM_ERROR_LINE)]
1055    HRESULT line([retval, out] LONG *lineNo);
1056
1057    [propget, id(DISPID_DOM_ERROR_LINEPOS)]
1058    HRESULT linepos([retval, out] LONG * linePos);
1059
1060    [propget, id(DISPID_DOM_ERROR_FILEPOS)]
1061    HRESULT filepos([retval, out] LONG * filePos);
1062}
1063
1064[
1065    uuid(F6D90F11-9C73-11D3-B32E-00C04F990BB4)
1066]
1067coclass DOMDocument
1068{
1069    [default] interface IXMLDOMDocument2;
1070    [default, source] dispinterface XMLDOMDocumentEvents;
1071}
1072
1073[
1074    helpstring("XML DOM Document 2.6"),
1075    progid("Msxml2.DOMDocument.2.6"),
1076    vi_progid("Msxml2.DOMDocument"),
1077    threading(both),
1078    uuid(f5078f1b-c551-11d3-89b9-0000f81fe221)
1079]
1080coclass DOMDocument26
1081{
1082    [default] interface IXMLDOMDocument2;
1083    [default, source] dispinterface XMLDOMDocumentEvents;
1084}
1085
1086[
1087    uuid(F6D90F12-9C73-11D3-B32E-00C04F990BB4)
1088]
1089coclass FreeThreadedDOMDocument
1090{
1091    [default] interface IXMLDOMDocument2;
1092    [default, source] dispinterface XMLDOMDocumentEvents;
1093}
1094
1095[
1096    helpstring("Free Threaded XML DOM Document 2.6"),
1097    progid("Msxml2.FreeThreadedDOMDocument.2.6"),
1098    vi_progid("Msxml2.FreeThreadedDOMDocument"),
1099    threading(both),
1100    uuid(f5078f1c-c551-11d3-89b9-0000f81fe221)
1101]
1102coclass FreeThreadedDOMDocument26
1103{
1104    [default] interface IXMLDOMDocument2;
1105    [default, source] dispinterface XMLDOMDocumentEvents;
1106}
1107
1108[
1109    uuid(f6d90f16-9c73-11d3-b32e-00c04f990bb4)
1110]
1111coclass XMLHTTP
1112{
1113    [default] interface IXMLHTTPRequest;
1114}
1115
1116[
1117    helpstring("XML HTTP 2.6"),
1118    progid("Msxml2.XMLHTTP.2.6"),
1119    vi_progid("Msxml2.XMLHTTP"),
1120    threading(apartment),
1121    uuid(f5078f1e-c551-11d3-89b9-0000f81fe221)
1122]
1123coclass XMLHTTP26
1124{
1125    [default] interface IXMLHTTPRequest;
1126}
1127
1128[
1129    uuid(373984c9-b845-449b-91e7-45ac83036ade)
1130]
1131coclass XMLSchemaCache
1132{
1133    [default] interface IXMLDOMSchemaCollection;
1134}
1135
1136[
1137    helpstring("XML Schema Cache 2.6"),
1138    progid("Msxml2.XMLSchemaCache.2.6"),
1139    vi_progid("Msxml2.XMLSchemaCache"),
1140    threading(both),
1141    uuid(f5078f1d-c551-11d3-89b9-0000f81fe221)
1142]
1143coclass XMLSchemaCache26
1144{
1145    [default] interface IXMLDOMSchemaCollection;
1146}
1147
1148[
1149    uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
1150]
1151coclass XSLTemplate
1152{
1153    [default] interface IXSLTemplate;
1154}
1155
1156[
1157    helpstring("XSL Template 2.6"),
1158    progid("Msxml2.XSLTemplate.2.6"),
1159    vi_progid("Msxml2.XSLTemplate"),
1160    threading(both),
1161    uuid(f5078f21-c551-11d3-89b9-0000f81fe221)
1162]
1163coclass XSLTemplate26
1164{
1165    [default] interface IXSLTemplate;
1166}
1167
1168} /* Library MSXML */
1169