xref: /reactos/sdk/include/psdk/xmldom.idl (revision c2c66aff)
1*c2c66affSColin Finck/*
2*c2c66affSColin Finck * Copyright (C) 2005 Mike McCormack
3*c2c66affSColin Finck *
4*c2c66affSColin Finck * This library is free software; you can redistribute it and/or
5*c2c66affSColin Finck * modify it under the terms of the GNU Lesser General Public
6*c2c66affSColin Finck * License as published by the Free Software Foundation; either
7*c2c66affSColin Finck * version 2.1 of the License, or (at your option) any later version.
8*c2c66affSColin Finck *
9*c2c66affSColin Finck * This library is distributed in the hope that it will be useful,
10*c2c66affSColin Finck * but WITHOUT ANY WARRANTY; without even the implied warranty of
11*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12*c2c66affSColin Finck * Lesser General Public License for more details.
13*c2c66affSColin Finck *
14*c2c66affSColin Finck * You should have received a copy of the GNU Lesser General Public
15*c2c66affSColin Finck * License along with this library; if not, write to the Free Software
16*c2c66affSColin Finck * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17*c2c66affSColin Finck */
18*c2c66affSColin Finck
19*c2c66affSColin Finck#include <xmldomdid.h>
20*c2c66affSColin Finck#include <idispids.h>
21*c2c66affSColin Finck
22*c2c66affSColin Finck#if !defined(progid) && !defined(__WIDL__)
23*c2c66affSColin Finck#define threading(model)
24*c2c66affSColin Finck#define progid(str)
25*c2c66affSColin Finck#define vi_progid(str)
26*c2c66affSColin Finck#endif
27*c2c66affSColin Finck
28*c2c66affSColin Finckimport "oaidl.idl";
29*c2c66affSColin Finck
30*c2c66affSColin Finckinterface IXMLDOMImplementation;
31*c2c66affSColin Finckinterface IXMLDOMNode;
32*c2c66affSColin Finckinterface IXMLDOMDocumentFragment;
33*c2c66affSColin Finckinterface IXMLDOMDocument;
34*c2c66affSColin Finckinterface IXMLDOMNodeList;
35*c2c66affSColin Finckinterface IXMLDOMNamedNodeMap;
36*c2c66affSColin Finckinterface IXMLDOMCharacterData;
37*c2c66affSColin Finckinterface IXMLDOMAttribute;
38*c2c66affSColin Finckinterface IXMLDOMElement;
39*c2c66affSColin Finckinterface IXMLDOMText;
40*c2c66affSColin Finckinterface IXMLDOMComment;
41*c2c66affSColin Finckinterface IXMLDOMProcessingInstruction;
42*c2c66affSColin Finckinterface IXMLDOMCDATASection;
43*c2c66affSColin Finckinterface IXMLDOMDocumentType;
44*c2c66affSColin Finckinterface IXMLDOMNotation;
45*c2c66affSColin Finckinterface IXMLDOMEntity;
46*c2c66affSColin Finckinterface IXMLDOMEntityReference;
47*c2c66affSColin Finckinterface IXMLDOMParseError;
48*c2c66affSColin Finck
49*c2c66affSColin Finckcpp_quote("#ifndef __MSXML_DOMNODETYPE_DEFINED")
50*c2c66affSColin Finckcpp_quote("#define __MSXML_DOMNODETYPE_DEFINED")
51*c2c66affSColin Fincktypedef enum tagDOMNodeType {
52*c2c66affSColin Finck    NODE_INVALID,
53*c2c66affSColin Finck    NODE_ELEMENT,
54*c2c66affSColin Finck    NODE_ATTRIBUTE,
55*c2c66affSColin Finck    NODE_TEXT,
56*c2c66affSColin Finck    NODE_CDATA_SECTION,
57*c2c66affSColin Finck    NODE_ENTITY_REFERENCE,
58*c2c66affSColin Finck    NODE_ENTITY,
59*c2c66affSColin Finck    NODE_PROCESSING_INSTRUCTION,
60*c2c66affSColin Finck    NODE_COMMENT,
61*c2c66affSColin Finck    NODE_DOCUMENT,
62*c2c66affSColin Finck    NODE_DOCUMENT_TYPE,
63*c2c66affSColin Finck    NODE_DOCUMENT_FRAGMENT,
64*c2c66affSColin Finck    NODE_NOTATION
65*c2c66affSColin Finck} DOMNodeType;
66*c2c66affSColin Finckcpp_quote("#endif")
67*c2c66affSColin Finck
68*c2c66affSColin Finck[
69*c2c66affSColin Fincklocal,
70*c2c66affSColin Finckobject,
71*c2c66affSColin Finckodl,
72*c2c66affSColin Finckdual,
73*c2c66affSColin Finckoleautomation,
74*c2c66affSColin Finck/*nonextensible,*/
75*c2c66affSColin Finckuuid(2933bf80-7b36-11d2-b20e-00c04f983e60),
76*c2c66affSColin Finckpointer_default(unique)
77*c2c66affSColin Finck]
78*c2c66affSColin Finckinterface IXMLDOMNode : IDispatch
79*c2c66affSColin Finck{
80*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODE_NODENAME)]
81*c2c66affSColin Finck    HRESULT nodeName( [out,retval] BSTR *name );
82*c2c66affSColin Finck
83*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODE_NODEVALUE)]
84*c2c66affSColin Finck    HRESULT nodeValue( [out,retval] VARIANT *value );
85*c2c66affSColin Finck
86*c2c66affSColin Finck    [propput, id(DISPID_DOM_NODE_NODEVALUE)]
87*c2c66affSColin Finck    HRESULT nodeValue( [in] VARIANT value );
88*c2c66affSColin Finck
89*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODE_NODETYPE)]
90*c2c66affSColin Finck    HRESULT nodeType( [out,retval] DOMNodeType *type );
91*c2c66affSColin Finck
92*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODE_PARENTNODE)]
93*c2c66affSColin Finck    HRESULT parentNode( [out,retval] IXMLDOMNode **parent );
94*c2c66affSColin Finck
95*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODE_CHILDNODES)]
96*c2c66affSColin Finck    HRESULT childNodes( [out,retval] IXMLDOMNodeList **childList );
97*c2c66affSColin Finck
98*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODE_FIRSTCHILD)]
99*c2c66affSColin Finck    HRESULT firstChild( [out,retval] IXMLDOMNode **firstChild );
100*c2c66affSColin Finck
101*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODE_LASTCHILD)]
102*c2c66affSColin Finck    HRESULT lastChild( [out,retval] IXMLDOMNode **lastChild );
103*c2c66affSColin Finck
104*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODE_PREVIOUSSIBLING)]
105*c2c66affSColin Finck    HRESULT previousSibling( [out,retval] IXMLDOMNode **previousSibling );
106*c2c66affSColin Finck
107*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODE_NEXTSIBLING)]
108*c2c66affSColin Finck    HRESULT nextSibling( [out,retval] IXMLDOMNode **nextSibling );
109*c2c66affSColin Finck
110*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODE_ATTRIBUTES)]
111*c2c66affSColin Finck    HRESULT attributes( [out,retval] IXMLDOMNamedNodeMap **attributeMap );
112*c2c66affSColin Finck
113*c2c66affSColin Finck    [id(DISPID_DOM_NODE_INSERTBEFORE)]
114*c2c66affSColin Finck    HRESULT insertBefore( [in] IXMLDOMNode * newChild,
115*c2c66affSColin Finck                          [in] VARIANT refChild,
116*c2c66affSColin Finck                          [out,retval] IXMLDOMNode **outNewChild );
117*c2c66affSColin Finck
118*c2c66affSColin Finck    [id(DISPID_DOM_NODE_REPLACECHILD)]
119*c2c66affSColin Finck    HRESULT replaceChild( [in] IXMLDOMNode *newChild,
120*c2c66affSColin Finck                          [in] IXMLDOMNode *oldChild,
121*c2c66affSColin Finck                          [out,retval] IXMLDOMNode **outOldChild );
122*c2c66affSColin Finck
123*c2c66affSColin Finck    [id(DISPID_DOM_NODE_REMOVECHILD)]
124*c2c66affSColin Finck    HRESULT removeChild( [in] IXMLDOMNode *childNode,
125*c2c66affSColin Finck                         [out,retval] IXMLDOMNode **oldChild );
126*c2c66affSColin Finck
127*c2c66affSColin Finck    [id(DISPID_DOM_NODE_APPENDCHILD)]
128*c2c66affSColin Finck    HRESULT appendChild( [in] IXMLDOMNode *newChild,
129*c2c66affSColin Finck                         [out,retval] IXMLDOMNode **outNewChild );
130*c2c66affSColin Finck
131*c2c66affSColin Finck    [id(DISPID_DOM_NODE_HASCHILDNODES)]
132*c2c66affSColin Finck    HRESULT hasChildNodes( [out,retval] VARIANT_BOOL *hasChild );
133*c2c66affSColin Finck
134*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODE_OWNERDOC)]
135*c2c66affSColin Finck    HRESULT ownerDocument( [out,retval] IXMLDOMDocument **DOMDocument );
136*c2c66affSColin Finck
137*c2c66affSColin Finck    [id(DISPID_DOM_NODE_CLONENODE)]
138*c2c66affSColin Finck    HRESULT cloneNode( [in] VARIANT_BOOL deep,
139*c2c66affSColin Finck                       [out,retval] IXMLDOMNode **cloneRoot );
140*c2c66affSColin Finck
141*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE)]
142*c2c66affSColin Finck    HRESULT nodeTypeString( [out,retval] BSTR *nodeType );
143*c2c66affSColin Finck
144*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_NODE_TEXT)]
145*c2c66affSColin Finck    HRESULT text( [out,retval] BSTR *text );
146*c2c66affSColin Finck
147*c2c66affSColin Finck    [propput, id(DISPID_XMLDOM_NODE_TEXT)]
148*c2c66affSColin Finck    HRESULT text( [in] BSTR text );
149*c2c66affSColin Finck
150*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_NODE_SPECIFIED)]
151*c2c66affSColin Finck    HRESULT specified( [out,retval] VARIANT_BOOL *isSpecified );
152*c2c66affSColin Finck
153*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_NODE_DEFINITION)]
154*c2c66affSColin Finck    HRESULT definition( [out,retval] IXMLDOMNode **definitionNode );
155*c2c66affSColin Finck
156*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
157*c2c66affSColin Finck    HRESULT nodeTypedValue( [out,retval] VARIANT *typedValue );
158*c2c66affSColin Finck
159*c2c66affSColin Finck    [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
160*c2c66affSColin Finck    HRESULT nodeTypedValue( [in] VARIANT typedValue );
161*c2c66affSColin Finck
162*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_NODE_DATATYPE)]
163*c2c66affSColin Finck    HRESULT dataType( [out,retval] VARIANT *dataTypeName );
164*c2c66affSColin Finck
165*c2c66affSColin Finck    [propput, id(DISPID_XMLDOM_NODE_DATATYPE)]
166*c2c66affSColin Finck    HRESULT dataType( [in] BSTR dataTypeName );
167*c2c66affSColin Finck
168*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_NODE_XML)]
169*c2c66affSColin Finck    HRESULT xml( [out,retval] BSTR *xmlString );
170*c2c66affSColin Finck
171*c2c66affSColin Finck    [id(DISPID_XMLDOM_NODE_TRANSFORMNODE)]
172*c2c66affSColin Finck    HRESULT transformNode( [in] IXMLDOMNode *styleSheet,
173*c2c66affSColin Finck                           [out,retval] BSTR *xmlString );
174*c2c66affSColin Finck
175*c2c66affSColin Finck    [id(DISPID_XMLDOM_NODE_SELECTNODES)]
176*c2c66affSColin Finck    HRESULT selectNodes( [in] BSTR queryString,
177*c2c66affSColin Finck                         [out,retval] IXMLDOMNodeList **resultList );
178*c2c66affSColin Finck
179*c2c66affSColin Finck    [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE)]
180*c2c66affSColin Finck    HRESULT selectSingleNode( [in] BSTR queryString,
181*c2c66affSColin Finck                              [out,retval] IXMLDOMNode **resultNode );
182*c2c66affSColin Finck
183*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_NODE_PARSED)]
184*c2c66affSColin Finck    HRESULT parsed( [out,retval] VARIANT_BOOL *isParsed );
185*c2c66affSColin Finck
186*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_NODE_NAMESPACE)]
187*c2c66affSColin Finck    HRESULT namespaceURI( [out,retval] BSTR *namespaceURI );
188*c2c66affSColin Finck
189*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_NODE_PREFIX)]
190*c2c66affSColin Finck    HRESULT prefix( [out,retval] BSTR *prefixString );
191*c2c66affSColin Finck
192*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_NODE_BASENAME)]
193*c2c66affSColin Finck    HRESULT baseName( [out,retval] BSTR *nameString );
194*c2c66affSColin Finck
195*c2c66affSColin Finck    [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT)]
196*c2c66affSColin Finck    HRESULT transformNodeToObject( [in] IXMLDOMNode *stylesheet,
197*c2c66affSColin Finck                                   [in] VARIANT outputObject );
198*c2c66affSColin Finck}
199*c2c66affSColin Finck
200*c2c66affSColin Finck[
201*c2c66affSColin Fincklocal,
202*c2c66affSColin Finckobject,
203*c2c66affSColin Finckodl,
204*c2c66affSColin Finckdual,
205*c2c66affSColin Finck/*nonextensible,*/
206*c2c66affSColin Finckoleautomation,
207*c2c66affSColin Finckuuid(2933bf81-7b36-11d2-b20e-00c04f983e60),
208*c2c66affSColin Finckpointer_default(unique)
209*c2c66affSColin Finck]
210*c2c66affSColin Finckinterface IXMLDOMDocument : IXMLDOMNode
211*c2c66affSColin Finck{
212*c2c66affSColin Finck    [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)]
213*c2c66affSColin Finck    HRESULT doctype( [out,retval] IXMLDOMDocumentType **documentType );
214*c2c66affSColin Finck
215*c2c66affSColin Finck    [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION)]
216*c2c66affSColin Finck    HRESULT implementation( [out,retval] IXMLDOMImplementation **impl );
217*c2c66affSColin Finck
218*c2c66affSColin Finck    [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
219*c2c66affSColin Finck    HRESULT documentElement( [out,retval] IXMLDOMElement **DOMElement );
220*c2c66affSColin Finck
221*c2c66affSColin Finck    [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
222*c2c66affSColin Finck    HRESULT documentElement( [in] IXMLDOMElement *DOMElement );
223*c2c66affSColin Finck
224*c2c66affSColin Finck    [id(DISPID_DOM_DOCUMENT_CREATEELEMENT)]
225*c2c66affSColin Finck    HRESULT createElement( [in] BSTR tagname,
226*c2c66affSColin Finck                           [out,retval] IXMLDOMElement **element );
227*c2c66affSColin Finck
228*c2c66affSColin Finck    [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT)]
229*c2c66affSColin Finck    HRESULT createDocumentFragment( [out,retval] IXMLDOMDocumentFragment **docFrag );
230*c2c66affSColin Finck
231*c2c66affSColin Finck    [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE)]
232*c2c66affSColin Finck    HRESULT createTextNode( [in] BSTR data,
233*c2c66affSColin Finck                            [out,retval] IXMLDOMText **text );
234*c2c66affSColin Finck
235*c2c66affSColin Finck    [id(DISPID_DOM_DOCUMENT_CREATECOMMENT)]
236*c2c66affSColin Finck    HRESULT createComment( [in] BSTR data,
237*c2c66affSColin Finck                           [out,retval] IXMLDOMComment **comment );
238*c2c66affSColin Finck
239*c2c66affSColin Finck    [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION)]
240*c2c66affSColin Finck    HRESULT createCDATASection( [in] BSTR data,
241*c2c66affSColin Finck                                [out,retval] IXMLDOMCDATASection **cdata );
242*c2c66affSColin Finck
243*c2c66affSColin Finck    [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION)]
244*c2c66affSColin Finck    HRESULT createProcessingInstruction( [in] BSTR target,
245*c2c66affSColin Finck                                         [in] BSTR data,
246*c2c66affSColin Finck                                         [out,retval] IXMLDOMProcessingInstruction **pi );
247*c2c66affSColin Finck
248*c2c66affSColin Finck    [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE)]
249*c2c66affSColin Finck    HRESULT createAttribute( [in] BSTR name,
250*c2c66affSColin Finck                             [out,retval] IXMLDOMAttribute **attribute );
251*c2c66affSColin Finck
252*c2c66affSColin Finck    [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE)]
253*c2c66affSColin Finck    HRESULT createEntityReference( [in] BSTR name,
254*c2c66affSColin Finck                                   [out,retval] IXMLDOMEntityReference **entityRef );
255*c2c66affSColin Finck
256*c2c66affSColin Finck    [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME)]
257*c2c66affSColin Finck    HRESULT getElementsByTagName( [in] BSTR tagName,
258*c2c66affSColin Finck                                  [out,retval] IXMLDOMNodeList **resultList );
259*c2c66affSColin Finck
260*c2c66affSColin Finck    [id(DISPID_XMLDOM_DOCUMENT_CREATENODE)]
261*c2c66affSColin Finck    HRESULT createNode( [in] VARIANT Type,
262*c2c66affSColin Finck                        [in] BSTR name,
263*c2c66affSColin Finck                        [in] BSTR namespaceURI,
264*c2c66affSColin Finck                        [out,retval] IXMLDOMNode **node );
265*c2c66affSColin Finck
266*c2c66affSColin Finck    [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID)]
267*c2c66affSColin Finck    HRESULT nodeFromID( [in] BSTR idString,
268*c2c66affSColin Finck                        [out,retval] IXMLDOMNode **node );
269*c2c66affSColin Finck
270*c2c66affSColin Finck    [id(DISPID_XMLDOM_DOCUMENT_LOAD)]
271*c2c66affSColin Finck    HRESULT load( [in] VARIANT xmlSource,
272*c2c66affSColin Finck                  [out,retval] VARIANT_BOOL *isSuccessful );
273*c2c66affSColin Finck
274*c2c66affSColin Finck    [propget, id(DISPID_READYSTATE)]
275*c2c66affSColin Finck    HRESULT readyState( [out,retval] LONG *value );
276*c2c66affSColin Finck
277*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR)]
278*c2c66affSColin Finck    HRESULT parseError( [out,retval] IXMLDOMParseError **errorObj );
279*c2c66affSColin Finck
280*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_DOCUMENT_URL)]
281*c2c66affSColin Finck    HRESULT url( [out,retval] BSTR *urlString );
282*c2c66affSColin Finck
283*c2c66affSColin Finck    /* FIXME: these is meant to be async, but widl parses that as a keyword */
284*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
285*c2c66affSColin Finck    HRESULT async( [out,retval] VARIANT_BOOL *isAsync );
286*c2c66affSColin Finck
287*c2c66affSColin Finck    [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
288*c2c66affSColin Finck    HRESULT async( [in] VARIANT_BOOL isAsync );
289*c2c66affSColin Finck
290*c2c66affSColin Finck    [id(DISPID_XMLDOM_DOCUMENT_ABORT)]
291*c2c66affSColin Finck    HRESULT abort();
292*c2c66affSColin Finck
293*c2c66affSColin Finck    [id(DISPID_XMLDOM_DOCUMENT_LOADXML)]
294*c2c66affSColin Finck    HRESULT loadXML( [in] BSTR bstrXML,
295*c2c66affSColin Finck                     [out,retval] VARIANT_BOOL *isSuccessful );
296*c2c66affSColin Finck
297*c2c66affSColin Finck    [id(DISPID_XMLDOM_DOCUMENT_SAVE)]
298*c2c66affSColin Finck    HRESULT save( [in] VARIANT destination );
299*c2c66affSColin Finck
300*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
301*c2c66affSColin Finck    HRESULT validateOnParse( [out,retval] VARIANT_BOOL *isValidating );
302*c2c66affSColin Finck
303*c2c66affSColin Finck    [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
304*c2c66affSColin Finck    HRESULT validateOnParse( [in] VARIANT_BOOL isValidating );
305*c2c66affSColin Finck
306*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
307*c2c66affSColin Finck    HRESULT resolveExternals( [out,retval] VARIANT_BOOL *isResolving );
308*c2c66affSColin Finck
309*c2c66affSColin Finck    [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
310*c2c66affSColin Finck    HRESULT resolveExternals( [in] VARIANT_BOOL isValidating );
311*c2c66affSColin Finck
312*c2c66affSColin Finck    [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
313*c2c66affSColin Finck    HRESULT preserveWhiteSpace( [out,retval] VARIANT_BOOL *isPreserving );
314*c2c66affSColin Finck
315*c2c66affSColin Finck    [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
316*c2c66affSColin Finck    HRESULT preserveWhiteSpace( [in] VARIANT_BOOL isPreserving );
317*c2c66affSColin Finck
318*c2c66affSColin Finck    [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE)]
319*c2c66affSColin Finck    HRESULT onreadystatechange( [in] VARIANT readystatechangeSink );
320*c2c66affSColin Finck
321*c2c66affSColin Finck    [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE)]
322*c2c66affSColin Finck    HRESULT ondataavailable( [in] VARIANT ondataavailableSink );
323*c2c66affSColin Finck
324*c2c66affSColin Finck    [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE)]
325*c2c66affSColin Finck    HRESULT ontransformnode( [in] VARIANT ontransformnodeSink );
326*c2c66affSColin Finck}
327*c2c66affSColin Finck
328*c2c66affSColin Finck[
329*c2c66affSColin Fincklocal,
330*c2c66affSColin Finckobject,
331*c2c66affSColin Finckodl,
332*c2c66affSColin Finckdual,
333*c2c66affSColin Finck/*nonextensible,*/
334*c2c66affSColin Finckoleautomation,
335*c2c66affSColin Finckuuid(2933bf82-7b36-11d2-b20e-00c04f983e60),
336*c2c66affSColin Finckpointer_default(unique)
337*c2c66affSColin Finck]
338*c2c66affSColin Finckinterface IXMLDOMNodeList : IDispatch
339*c2c66affSColin Finck{
340*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
341*c2c66affSColin Finck    HRESULT item( [in] LONG index,
342*c2c66affSColin Finck                  [out,retval] IXMLDOMNode **listItem );
343*c2c66affSColin Finck
344*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODELIST_LENGTH)]
345*c2c66affSColin Finck    HRESULT length( [out,retval] LONG *listLength );
346*c2c66affSColin Finck
347*c2c66affSColin Finck    [id(DISPID_XMLDOM_NODELIST_NEXTNODE)]
348*c2c66affSColin Finck    HRESULT nextNode( [out,retval] IXMLDOMNode **nextItem );
349*c2c66affSColin Finck
350*c2c66affSColin Finck    [id(DISPID_XMLDOM_NODELIST_RESET)]
351*c2c66affSColin Finck    HRESULT reset();
352*c2c66affSColin Finck
353*c2c66affSColin Finck    [id(DISPID_NEWENUM)]
354*c2c66affSColin Finck    HRESULT _newEnum( [out,retval] IUnknown **ppUnk );
355*c2c66affSColin Finck}
356*c2c66affSColin Finck
357*c2c66affSColin Finck[
358*c2c66affSColin Fincklocal,
359*c2c66affSColin Finckobject,
360*c2c66affSColin Finckodl,
361*c2c66affSColin Finckdual,
362*c2c66affSColin Finck/*nonextensible,*/
363*c2c66affSColin Finckoleautomation,
364*c2c66affSColin Finckuuid(2933bf83-7b36-11d2-b20e-00c04f983e60),
365*c2c66affSColin Finckpointer_default(unique)
366*c2c66affSColin Finck]
367*c2c66affSColin Finckinterface IXMLDOMNamedNodeMap : IDispatch
368*c2c66affSColin Finck{
369*c2c66affSColin Finck    [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)]
370*c2c66affSColin Finck    HRESULT getNamedItem( [in] BSTR name,
371*c2c66affSColin Finck                          [out,retval] IXMLDOMNode **namedItem );
372*c2c66affSColin Finck
373*c2c66affSColin Finck    [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)]
374*c2c66affSColin Finck    HRESULT setNamedItem( [in] IXMLDOMNode *newItem,
375*c2c66affSColin Finck                          [out,retval] IXMLDOMNode **namedItem );
376*c2c66affSColin Finck
377*c2c66affSColin Finck    [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)]
378*c2c66affSColin Finck    HRESULT removeNamedItem( [in] BSTR name,
379*c2c66affSColin Finck                             [out,retval] IXMLDOMNode **namedItem );
380*c2c66affSColin Finck
381*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
382*c2c66affSColin Finck    HRESULT item( [in] LONG index,
383*c2c66affSColin Finck                  [out,retval] IXMLDOMNode **listItem );
384*c2c66affSColin Finck
385*c2c66affSColin Finck    [propget, id(DISPID_DOM_NODELIST_LENGTH)]
386*c2c66affSColin Finck    HRESULT length( [out,retval] LONG *listLength );
387*c2c66affSColin Finck
388*c2c66affSColin Finck    [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)]
389*c2c66affSColin Finck    HRESULT getQualifiedItem( [in] BSTR baseName,
390*c2c66affSColin Finck                              [in] BSTR namespaceURI,
391*c2c66affSColin Finck                              [out,retval] IXMLDOMNode **qualifiedItem );
392*c2c66affSColin Finck
393*c2c66affSColin Finck    [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)]
394*c2c66affSColin Finck    HRESULT removeQualifiedItem( [in] BSTR baseName,
395*c2c66affSColin Finck                                 [in] BSTR namespaceURI,
396*c2c66affSColin Finck                                 [out,retval] IXMLDOMNode **qualifiedItem );
397*c2c66affSColin Finck
398*c2c66affSColin Finck    [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)]
399*c2c66affSColin Finck    HRESULT nextNode( [out,retval] IXMLDOMNode **nextItem );
400*c2c66affSColin Finck
401*c2c66affSColin Finck    [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)]
402*c2c66affSColin Finck    HRESULT reset();
403*c2c66affSColin Finck
404*c2c66affSColin Finck    [id(DISPID_NEWENUM)]
405*c2c66affSColin Finck    HRESULT _newEnum( [out,retval] IUnknown **ppUnk );
406*c2c66affSColin Finck}
407*c2c66affSColin Finck
408*c2c66affSColin Finck[
409*c2c66affSColin Fincklocal,
410*c2c66affSColin Finckobject,
411*c2c66affSColin Finckodl,
412*c2c66affSColin Finckdual,
413*c2c66affSColin Finck/*nonextensible,*/
414*c2c66affSColin Finckoleautomation,
415*c2c66affSColin Finckuuid(3efaa413-272f-11d2-836f-0000f87a7782),
416*c2c66affSColin Finckpointer_default(unique)
417*c2c66affSColin Finck]
418*c2c66affSColin Finckinterface IXMLDOMDocumentFragment : IXMLDOMNode
419*c2c66affSColin Finck{
420*c2c66affSColin Finck    /* empty */
421*c2c66affSColin Finck}
422*c2c66affSColin Finck
423*c2c66affSColin Finck[
424*c2c66affSColin Fincklocal,
425*c2c66affSColin Finckobject,
426*c2c66affSColin Finckodl,
427*c2c66affSColin Finckdual,
428*c2c66affSColin Finck/*nonextensible,*/
429*c2c66affSColin Finckoleautomation,
430*c2c66affSColin Finckuuid(2933bf84-7b36-11d2-b20e-00c04f983e60),
431*c2c66affSColin Finckpointer_default(unique)
432*c2c66affSColin Finck]
433*c2c66affSColin Finckinterface IXMLDOMCharacterData : IXMLDOMNode
434*c2c66affSColin Finck{
435*c2c66affSColin Finck    [propget, id(DISPID_DOM_DATA_DATA)]
436*c2c66affSColin Finck    HRESULT data( [out,retval] BSTR *data );
437*c2c66affSColin Finck
438*c2c66affSColin Finck    [propput, id(DISPID_DOM_DATA_DATA)]
439*c2c66affSColin Finck    HRESULT data( [in] BSTR data );
440*c2c66affSColin Finck
441*c2c66affSColin Finck    [propget, id(DISPID_DOM_DATA_LENGTH)]
442*c2c66affSColin Finck    HRESULT length( [out,retval] LONG *dataLength );
443*c2c66affSColin Finck
444*c2c66affSColin Finck    [id(DISPID_DOM_DATA_SUBSTRING)]
445*c2c66affSColin Finck    HRESULT substringData( [in] LONG offset,
446*c2c66affSColin Finck                           [in] LONG count,
447*c2c66affSColin Finck                           [out,retval] BSTR *data );
448*c2c66affSColin Finck
449*c2c66affSColin Finck    [id(DISPID_DOM_DATA_APPEND)]
450*c2c66affSColin Finck    HRESULT appendData( [in] BSTR data );
451*c2c66affSColin Finck
452*c2c66affSColin Finck    [id(DISPID_DOM_DATA_INSERT)]
453*c2c66affSColin Finck    HRESULT insertData( [in] LONG offset,
454*c2c66affSColin Finck                        [in] BSTR data );
455*c2c66affSColin Finck
456*c2c66affSColin Finck    [id(DISPID_DOM_DATA_DELETE)]
457*c2c66affSColin Finck    HRESULT deleteData( [in] LONG offset,
458*c2c66affSColin Finck                        [in] LONG count );
459*c2c66affSColin Finck
460*c2c66affSColin Finck    [id(DISPID_DOM_DATA_REPLACE)]
461*c2c66affSColin Finck    HRESULT replaceData( [in] LONG offset,
462*c2c66affSColin Finck                         [in] LONG count,
463*c2c66affSColin Finck                         [in] BSTR data );
464*c2c66affSColin Finck}
465*c2c66affSColin Finck
466*c2c66affSColin Finck[
467*c2c66affSColin Fincklocal,
468*c2c66affSColin Finckobject,
469*c2c66affSColin Finckodl,
470*c2c66affSColin Finckdual,
471*c2c66affSColin Finck/*nonextensible,*/
472*c2c66affSColin Finckoleautomation,
473*c2c66affSColin Finckuuid(2933bf85-7b36-11d2-b20e-00c04f983e60),
474*c2c66affSColin Finckpointer_default(unique)
475*c2c66affSColin Finck]
476*c2c66affSColin Finckinterface IXMLDOMAttribute : IXMLDOMNode
477*c2c66affSColin Finck{
478*c2c66affSColin Finck    [propget,id(DISPID_DOM_ATTRIBUTE_GETNAME)]
479*c2c66affSColin Finck    HRESULT name( [out,retval] BSTR *attributeName );
480*c2c66affSColin Finck
481*c2c66affSColin Finck    [propget,id(DISPID_DOM_ATTRIBUTE_VALUE)]
482*c2c66affSColin Finck    HRESULT value( [out,retval] VARIANT *attributeValue );
483*c2c66affSColin Finck
484*c2c66affSColin Finck    [propput,id(DISPID_DOM_ATTRIBUTE_VALUE)]
485*c2c66affSColin Finck    HRESULT value( [in] VARIANT attributeValue );
486*c2c66affSColin Finck}
487*c2c66affSColin Finck
488*c2c66affSColin Finck[
489*c2c66affSColin Fincklocal,
490*c2c66affSColin Finckobject,
491*c2c66affSColin Finckodl,
492*c2c66affSColin Finckdual,
493*c2c66affSColin Finck/*nonextensible,*/
494*c2c66affSColin Finckoleautomation,
495*c2c66affSColin Finckuuid(2933bf86-7b36-11d2-b20e-00c04f983e60),
496*c2c66affSColin Finckpointer_default(unique)
497*c2c66affSColin Finck]
498*c2c66affSColin Finckinterface IXMLDOMElement : IXMLDOMNode
499*c2c66affSColin Finck{
500*c2c66affSColin Finck    [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)]
501*c2c66affSColin Finck    HRESULT tagName( [out,retval] BSTR *tagName );
502*c2c66affSColin Finck
503*c2c66affSColin Finck    [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)]
504*c2c66affSColin Finck    HRESULT getAttribute( [in] BSTR name,
505*c2c66affSColin Finck                          [out,retval] VARIANT * value );
506*c2c66affSColin Finck
507*c2c66affSColin Finck    [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)]
508*c2c66affSColin Finck    HRESULT setAttribute( [in] BSTR name,
509*c2c66affSColin Finck                          [in] VARIANT value );
510*c2c66affSColin Finck
511*c2c66affSColin Finck    [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)]
512*c2c66affSColin Finck    HRESULT removeAttribute( [in] BSTR name );
513*c2c66affSColin Finck
514*c2c66affSColin Finck    [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)]
515*c2c66affSColin Finck    HRESULT getAttributeNode( [in] BSTR name,
516*c2c66affSColin Finck                              [out, retval] IXMLDOMAttribute ** attributeNode );
517*c2c66affSColin Finck
518*c2c66affSColin Finck    [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)]
519*c2c66affSColin Finck    HRESULT setAttributeNode( [in] IXMLDOMAttribute *DOMAttribute,
520*c2c66affSColin Finck                              [out, retval] IXMLDOMAttribute ** attributeNode );
521*c2c66affSColin Finck
522*c2c66affSColin Finck    [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)]
523*c2c66affSColin Finck    HRESULT removeAttributeNode( [in] IXMLDOMAttribute *DOMAttribute,
524*c2c66affSColin Finck                              [out, retval] IXMLDOMAttribute ** attributeNode );
525*c2c66affSColin Finck
526*c2c66affSColin Finck    [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)]
527*c2c66affSColin Finck    HRESULT getElementsByTagName( [in] BSTR tagName,
528*c2c66affSColin Finck                              [out, retval] IXMLDOMNodeList ** resultList );
529*c2c66affSColin Finck
530*c2c66affSColin Finck    [id(DISPID_DOM_ELEMENT_NORMALIZE)]
531*c2c66affSColin Finck    HRESULT normalize();
532*c2c66affSColin Finck}
533*c2c66affSColin Finck
534*c2c66affSColin Finck[
535*c2c66affSColin Fincklocal,
536*c2c66affSColin Finckobject,
537*c2c66affSColin Finckodl,
538*c2c66affSColin Finckdual,
539*c2c66affSColin Finck/*nonextensible,*/
540*c2c66affSColin Finckoleautomation,
541*c2c66affSColin Finckuuid(2933bf87-7b36-11d2-b20e-00c04f983e60),
542*c2c66affSColin Finckpointer_default(unique)
543*c2c66affSColin Finck]
544*c2c66affSColin Finckinterface IXMLDOMText : IXMLDOMCharacterData
545*c2c66affSColin Finck{
546*c2c66affSColin Finck    [id(DISPID_DOM_TEXT_SPLITTEXT)]
547*c2c66affSColin Finck    HRESULT splitText( [in] LONG offset,
548*c2c66affSColin Finck                       [out,retval] IXMLDOMText **rightHandTextNode );
549*c2c66affSColin Finck}
550*c2c66affSColin Finck
551*c2c66affSColin Finck[
552*c2c66affSColin Fincklocal,
553*c2c66affSColin Finckobject,
554*c2c66affSColin Finckodl,
555*c2c66affSColin Finckdual,
556*c2c66affSColin Finck/*nonextensible,*/
557*c2c66affSColin Finckoleautomation,
558*c2c66affSColin Finckuuid(2933bf88-7b36-11d2-b20e-00c04f983e60),
559*c2c66affSColin Finckpointer_default(unique)
560*c2c66affSColin Finck]
561*c2c66affSColin Finckinterface IXMLDOMComment : IXMLDOMCharacterData
562*c2c66affSColin Finck{
563*c2c66affSColin Finck    /* empty */
564*c2c66affSColin Finck}
565*c2c66affSColin Finck
566*c2c66affSColin Finck[
567*c2c66affSColin Fincklocal,
568*c2c66affSColin Finckobject,
569*c2c66affSColin Finckodl,
570*c2c66affSColin Finckdual,
571*c2c66affSColin Finck/*nonextensible,*/
572*c2c66affSColin Finckoleautomation,
573*c2c66affSColin Finckuuid(2933bf89-7b36-11d2-b20e-00c04f983e60),
574*c2c66affSColin Finckpointer_default(unique)
575*c2c66affSColin Finck]
576*c2c66affSColin Finckinterface IXMLDOMProcessingInstruction : IXMLDOMNode
577*c2c66affSColin Finck{
578*c2c66affSColin Finck    [propget, id(DISPID_DOM_PI_TARGET)]
579*c2c66affSColin Finck    HRESULT target( [out, retval] BSTR *name );
580*c2c66affSColin Finck
581*c2c66affSColin Finck    [propget, id(DISPID_DOM_PI_DATA)]
582*c2c66affSColin Finck    HRESULT data( [out, retval] BSTR *value );
583*c2c66affSColin Finck
584*c2c66affSColin Finck    [propput, id(DISPID_DOM_PI_DATA)]
585*c2c66affSColin Finck    HRESULT data( [in] BSTR value );
586*c2c66affSColin Finck}
587*c2c66affSColin Finck
588*c2c66affSColin Finck[
589*c2c66affSColin Fincklocal,
590*c2c66affSColin Finckobject,
591*c2c66affSColin Finckodl,
592*c2c66affSColin Finckdual,
593*c2c66affSColin Finck/*nonextensible,*/
594*c2c66affSColin Finckoleautomation,
595*c2c66affSColin Finckuuid(2933bf8a-7b36-11d2-b20e-00c04f983e60),
596*c2c66affSColin Finckpointer_default(unique)
597*c2c66affSColin Finck]
598*c2c66affSColin Finckinterface IXMLDOMCDATASection : IXMLDOMText
599*c2c66affSColin Finck{
600*c2c66affSColin Finck    /* empty */
601*c2c66affSColin Finck}
602*c2c66affSColin Finck
603*c2c66affSColin Finck[
604*c2c66affSColin Fincklocal,
605*c2c66affSColin Finckobject,
606*c2c66affSColin Finckodl,
607*c2c66affSColin Finckdual,
608*c2c66affSColin Finck/*nonextensible,*/
609*c2c66affSColin Finckoleautomation,
610*c2c66affSColin Finckuuid(2933bf8b-7b36-11d2-b20e-00c04f983e60),
611*c2c66affSColin Finckpointer_default(unique)
612*c2c66affSColin Finck]
613*c2c66affSColin Finckinterface IXMLDOMDocumentType : IXMLDOMNode
614*c2c66affSColin Finck{
615*c2c66affSColin Finck    [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)]
616*c2c66affSColin Finck    HRESULT name( [out,retval] BSTR *rootName );
617*c2c66affSColin Finck
618*c2c66affSColin Finck    [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)]
619*c2c66affSColin Finck    HRESULT entities( [out,retval] IXMLDOMNamedNodeMap **entityMap );
620*c2c66affSColin Finck
621*c2c66affSColin Finck    [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)]
622*c2c66affSColin Finck    HRESULT notations( [out,retval] IXMLDOMNamedNodeMap **notationMap );
623*c2c66affSColin Finck}
624*c2c66affSColin Finck
625*c2c66affSColin Finck[
626*c2c66affSColin Fincklocal,
627*c2c66affSColin Finckobject,
628*c2c66affSColin Finckodl,
629*c2c66affSColin Finckdual,
630*c2c66affSColin Fincknonextensible,
631*c2c66affSColin Finckoleautomation,
632*c2c66affSColin Finckuuid(2933bf8c-7b36-11d2-b20e-00c04f983e60),
633*c2c66affSColin Finckpointer_default(unique)
634*c2c66affSColin Finck]
635*c2c66affSColin Finckinterface IXMLDOMNotation : IXMLDOMNode
636*c2c66affSColin Finck{
637*c2c66affSColin Finck    [propget, id(DISPID_DOM_NOTATION_PUBLICID)]
638*c2c66affSColin Finck    HRESULT publicId([out, retval] VARIANT *publicId);
639*c2c66affSColin Finck
640*c2c66affSColin Finck    [propget, id(DISPID_DOM_NOTATION_SYSTEMID)]
641*c2c66affSColin Finck    HRESULT systemId([out, retval] VARIANT *systemId);
642*c2c66affSColin Finck}
643*c2c66affSColin Finck
644*c2c66affSColin Finck[
645*c2c66affSColin Fincklocal,
646*c2c66affSColin Finckobject,
647*c2c66affSColin Finckodl,
648*c2c66affSColin Finckdual,
649*c2c66affSColin Fincknonextensible,
650*c2c66affSColin Finckoleautomation,
651*c2c66affSColin Finckuuid(2933bf8d-7b36-11d2-b20e-00c04f983e60),
652*c2c66affSColin Finckpointer_default(unique)
653*c2c66affSColin Finck]
654*c2c66affSColin Finckinterface IXMLDOMEntity : IXMLDOMNode
655*c2c66affSColin Finck{
656*c2c66affSColin Finck    [propget, id(DISPID_DOM_ENTITY_PUBLICID)]
657*c2c66affSColin Finck    HRESULT publicId([out, retval] VARIANT *publicId);
658*c2c66affSColin Finck
659*c2c66affSColin Finck    [propget, id(DISPID_DOM_ENTITY_SYSTEMID)]
660*c2c66affSColin Finck    HRESULT systemId([out, retval] VARIANT *systemId);
661*c2c66affSColin Finck
662*c2c66affSColin Finck    [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)]
663*c2c66affSColin Finck    HRESULT notationName([out, retval] BSTR *name);
664*c2c66affSColin Finck}
665*c2c66affSColin Finck
666*c2c66affSColin Finck[
667*c2c66affSColin Fincklocal,
668*c2c66affSColin Finckobject,
669*c2c66affSColin Finckodl,
670*c2c66affSColin Finckdual,
671*c2c66affSColin Fincknonextensible,
672*c2c66affSColin Finckoleautomation,
673*c2c66affSColin Finckuuid(2933bf8e-7b36-11d2-b20e-00c04f983e60),
674*c2c66affSColin Finckpointer_default(unique)
675*c2c66affSColin Finck]
676*c2c66affSColin Finckinterface IXMLDOMEntityReference : IXMLDOMNode
677*c2c66affSColin Finck{
678*c2c66affSColin Finck}
679*c2c66affSColin Finck
680*c2c66affSColin Finck[
681*c2c66affSColin Fincklocal,
682*c2c66affSColin Finckobject,
683*c2c66affSColin Finckodl,
684*c2c66affSColin Finckdual,
685*c2c66affSColin Fincknonextensible,
686*c2c66affSColin Finckoleautomation,
687*c2c66affSColin Finckuuid(2933bf8f-7b36-11d2-b20e-00c04f983e60),
688*c2c66affSColin Finckpointer_default(unique)
689*c2c66affSColin Finck]
690*c2c66affSColin Finckinterface IXMLDOMImplementation : IDispatch
691*c2c66affSColin Finck{
692*c2c66affSColin Finck    [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)]
693*c2c66affSColin Finck    HRESULT hasFeature([in] BSTR feature, [in] BSTR version, [out, retval] VARIANT_BOOL *pbool);
694*c2c66affSColin Finck}
695*c2c66affSColin Finck
696*c2c66affSColin Finck[
697*c2c66affSColin Fincklocal,
698*c2c66affSColin Finckobject,
699*c2c66affSColin Finckodl,
700*c2c66affSColin Finckdual,
701*c2c66affSColin Finckoleautomation,
702*c2c66affSColin Finck/*nonextensible,*/
703*c2c66affSColin Finckhelpstring("structure for reporting parse errors"),
704*c2c66affSColin Finckpointer_default(unique),
705*c2c66affSColin Finckuuid (3efaa426-272f-11d2-836f-0000f87a7782)
706*c2c66affSColin Finck]
707*c2c66affSColin Finckinterface IXMLDOMParseError : IDispatch
708*c2c66affSColin Finck{
709*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
710*c2c66affSColin Finck    HRESULT errorCode([retval, out] LONG *errCode);
711*c2c66affSColin Finck
712*c2c66affSColin Finck    [propget, id(DISPID_DOM_ERROR_URL)]
713*c2c66affSColin Finck    HRESULT url([retval, out] BSTR *p);
714*c2c66affSColin Finck
715*c2c66affSColin Finck    [propget, id(DISPID_DOM_ERROR_REASON)]
716*c2c66affSColin Finck    HRESULT reason([retval, out] BSTR *p);
717*c2c66affSColin Finck
718*c2c66affSColin Finck    [propget, id(DISPID_DOM_ERROR_SRCTEXT)]
719*c2c66affSColin Finck    HRESULT srcText([retval, out] BSTR *p);
720*c2c66affSColin Finck
721*c2c66affSColin Finck    [propget, id(DISPID_DOM_ERROR_LINE)]
722*c2c66affSColin Finck    HRESULT line([retval, out] LONG *lineNo);
723*c2c66affSColin Finck
724*c2c66affSColin Finck    [propget, id(DISPID_DOM_ERROR_LINEPOS)]
725*c2c66affSColin Finck    HRESULT linepos([retval, out] LONG * linePos);
726*c2c66affSColin Finck
727*c2c66affSColin Finck    [propget, id(DISPID_DOM_ERROR_FILEPOS)]
728*c2c66affSColin Finck    HRESULT filepos([retval, out] LONG * filePos);
729*c2c66affSColin Finck}
730*c2c66affSColin Finck
731*c2c66affSColin Finck[
732*c2c66affSColin Finck    hidden,
733*c2c66affSColin Finck    uuid(3efaa427-272f-11d2-836f-0000f87a7782)
734*c2c66affSColin Finck]
735*c2c66affSColin Finckdispinterface XMLDOMDocumentEvents
736*c2c66affSColin Finck{
737*c2c66affSColin Finck    properties:
738*c2c66affSColin Finck    methods:
739*c2c66affSColin Finck    [id(DISPID_XMLDOMEVENT_ONDATAAVAILABLE)]
740*c2c66affSColin Finck    HRESULT ondataavailable();
741*c2c66affSColin Finck
742*c2c66affSColin Finck    [id(DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)]
743*c2c66affSColin Finck    HRESULT onreadystatechange();
744*c2c66affSColin Finck}
745*c2c66affSColin Finck
746*c2c66affSColin Finck[
747*c2c66affSColin Finck    helpstring("XML DOM Document"),
748*c2c66affSColin Finck    progid("Microsoft.XMLDOM.1.0"),
749*c2c66affSColin Finck    vi_progid("Microsoft.XMLDOM"),
750*c2c66affSColin Finck    threading(both),
751*c2c66affSColin Finck    version(1.0),
752*c2c66affSColin Finck    uuid(2933bf90-7b36-11d2-b20e-00c04f983e60)
753*c2c66affSColin Finck]
754*c2c66affSColin Finckcoclass DOMDocument
755*c2c66affSColin Finck{
756*c2c66affSColin Finck    [default] interface IXMLDOMDocument;
757*c2c66affSColin Finck    [default, source] dispinterface XMLDOMDocumentEvents;
758*c2c66affSColin Finck}
759*c2c66affSColin Finck
760*c2c66affSColin Finck[
761*c2c66affSColin Finck    helpstring("Free Threaded XML DOM Document"),
762*c2c66affSColin Finck    progid("Microsoft.FreeThreadedXMLDOM.1.0"),
763*c2c66affSColin Finck    vi_progid("Microsoft.FreeThreadedXMLDOM"),
764*c2c66affSColin Finck    threading(both),
765*c2c66affSColin Finck    version(1.0),
766*c2c66affSColin Finck    uuid(2933bf91-7b36-11d2-b20e-00c04f983e60)
767*c2c66affSColin Finck]
768*c2c66affSColin Finckcoclass DOMFreeThreadedDocument
769*c2c66affSColin Finck{
770*c2c66affSColin Finck    [default] interface IXMLDOMDocument;
771*c2c66affSColin Finck    [default, source] dispinterface XMLDOMDocumentEvents;
772*c2c66affSColin Finck}
773*c2c66affSColin Finck
774*c2c66affSColin Finck[
775*c2c66affSColin Finckobject,
776*c2c66affSColin Finckuuid(ed8c108d-4349-11d2-91a4-00c04f7969e8),
777*c2c66affSColin Finckodl,
778*c2c66affSColin Finckdual,
779*c2c66affSColin Finckoleautomation,
780*c2c66affSColin Finckpointer_default(unique)
781*c2c66affSColin Finck]
782*c2c66affSColin Finckinterface IXMLHttpRequest : IDispatch
783*c2c66affSColin Finck{
784*c2c66affSColin Finck    [id(1)]
785*c2c66affSColin Finck    HRESULT open([in] BSTR bstrMethod, [in] BSTR bstrUrl,
786*c2c66affSColin Finck                 [in, optional] VARIANT varAsync,
787*c2c66affSColin Finck                 [in, optional] VARIANT varUser,
788*c2c66affSColin Finck                 [in, optional] VARIANT varPassword);
789*c2c66affSColin Finck    [id(2)]
790*c2c66affSColin Finck    HRESULT setRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue);
791*c2c66affSColin Finck
792*c2c66affSColin Finck    [id(3)]
793*c2c66affSColin Finck    HRESULT getResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR *pbstrValue);
794*c2c66affSColin Finck
795*c2c66affSColin Finck    [id(4)]
796*c2c66affSColin Finck    HRESULT getAllResponseHeaders([out, retval] BSTR *pbstrHeaders);
797*c2c66affSColin Finck
798*c2c66affSColin Finck    [id(5)]
799*c2c66affSColin Finck    HRESULT send([in, optional] VARIANT varBody);
800*c2c66affSColin Finck
801*c2c66affSColin Finck    [id(6)]
802*c2c66affSColin Finck    HRESULT abort();
803*c2c66affSColin Finck
804*c2c66affSColin Finck    [propget, id(7)]
805*c2c66affSColin Finck    HRESULT status([out, retval] LONG *plStatus);
806*c2c66affSColin Finck
807*c2c66affSColin Finck    [propget, id(8)]
808*c2c66affSColin Finck    HRESULT statusText([out, retval] BSTR *bstrStatus);
809*c2c66affSColin Finck
810*c2c66affSColin Finck    [propget, id(9)]
811*c2c66affSColin Finck    HRESULT responseXML([out, retval] IDispatch **ppBody);
812*c2c66affSColin Finck
813*c2c66affSColin Finck    [propget, id(10)]
814*c2c66affSColin Finck    HRESULT responseText([out, retval] BSTR *pbstrBody);
815*c2c66affSColin Finck
816*c2c66affSColin Finck    [propget, id(11)]
817*c2c66affSColin Finck    HRESULT responseBody([out, retval] VARIANT *pvarBody);
818*c2c66affSColin Finck
819*c2c66affSColin Finck    [propget, id(12)]
820*c2c66affSColin Finck    HRESULT responseStream([out, retval] VARIANT *pvarBody);
821*c2c66affSColin Finck
822*c2c66affSColin Finck    [propget, id(13)]
823*c2c66affSColin Finck    HRESULT readyState([out, retval] LONG *plState);
824*c2c66affSColin Finck
825*c2c66affSColin Finck    [propput, id(14)]
826*c2c66affSColin Finck    HRESULT onreadystatechange([in] IDispatch *pReadyStateSink);
827*c2c66affSColin Finck}
828*c2c66affSColin Finck
829*c2c66affSColin Finck[
830*c2c66affSColin Finck    helpstring("XML HTTP Request"),
831*c2c66affSColin Finck    progid("Microsoft.XMLHTTP.1.0"),
832*c2c66affSColin Finck    vi_progid("Microsoft.XMLHTTP"),
833*c2c66affSColin Finck    threading(apartment),
834*c2c66affSColin Finck    version(1.0),
835*c2c66affSColin Finck    uuid(ed8c108e-4349-11d2-91a4-00c04f7969e8)
836*c2c66affSColin Finck]
837*c2c66affSColin Finckcoclass XMLHTTPRequest
838*c2c66affSColin Finck{
839*c2c66affSColin Finck    [default] interface IXMLHttpRequest;
840*c2c66affSColin Finck}
841