xref: /reactos/dll/win32/msxml3/xmlparser.idl (revision c2c66aff)
1*c2c66affSColin Finck/*
2*c2c66affSColin Finck * Copyright (C) 2011 Alistair Leslie-Hughes
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#pragma makedep register
20*c2c66affSColin Finck
21*c2c66affSColin Finckimport "unknwn.idl";
22*c2c66affSColin Finckimport "objidl.idl";
23*c2c66affSColin Finckimport "oaidl.idl";
24*c2c66affSColin Finck
25*c2c66affSColin Finckinterface IXMLNodeSource;
26*c2c66affSColin Finckinterface IXMLParser;
27*c2c66affSColin Finckinterface IXMLNodeFactory;
28*c2c66affSColin Finckinterface IMoniker;
29*c2c66affSColin Finck
30*c2c66affSColin Fincktypedef enum
31*c2c66affSColin Finck{
32*c2c66affSColin Finck    XML_ELEMENT = 1,
33*c2c66affSColin Finck    XML_ATTRIBUTE,
34*c2c66affSColin Finck    XML_PI,
35*c2c66affSColin Finck    XML_XMLDECL,
36*c2c66affSColin Finck    XML_DOCTYPE,
37*c2c66affSColin Finck    XML_DTDATTRIBUTE,
38*c2c66affSColin Finck    XML_ENTITYDECL,
39*c2c66affSColin Finck    XML_ELEMENTDECL,
40*c2c66affSColin Finck    XML_ATTLISTDECL,
41*c2c66affSColin Finck    XML_NOTATION,
42*c2c66affSColin Finck    XML_GROUP,
43*c2c66affSColin Finck    XML_INCLUDESECT,
44*c2c66affSColin Finck    XML_PCDATA,
45*c2c66affSColin Finck    XML_CDATA,
46*c2c66affSColin Finck    XML_IGNORESECT,
47*c2c66affSColin Finck    XML_COMMENT,
48*c2c66affSColin Finck    XML_ENTITYREF,
49*c2c66affSColin Finck    XML_WHITESPACE,
50*c2c66affSColin Finck    XML_NAME,
51*c2c66affSColin Finck    XML_NMTOKEN,
52*c2c66affSColin Finck    XML_STRING,
53*c2c66affSColin Finck    XML_PEREF,
54*c2c66affSColin Finck    XML_MODEL,
55*c2c66affSColin Finck    XML_ATTDEF,
56*c2c66affSColin Finck    XML_ATTTYPE,
57*c2c66affSColin Finck    XML_ATTPRESENCE,
58*c2c66affSColin Finck    XML_DTDSUBSET,
59*c2c66affSColin Finck    XML_LASTNODETYPE
60*c2c66affSColin Finck} XML_NODE_TYPE;
61*c2c66affSColin Finck
62*c2c66affSColin Fincktypedef enum
63*c2c66affSColin Finck{
64*c2c66affSColin Finck    XML_VERSION = XML_LASTNODETYPE,
65*c2c66affSColin Finck    XML_ENCODING,
66*c2c66affSColin Finck    XML_STANDALONE,
67*c2c66affSColin Finck    XML_NS,
68*c2c66affSColin Finck    XML_XMLSPACE,
69*c2c66affSColin Finck    XML_XMLLANG,
70*c2c66affSColin Finck    XML_SYSTEM,
71*c2c66affSColin Finck    XML_PUBLIC,
72*c2c66affSColin Finck    XML_NDATA,
73*c2c66affSColin Finck    XML_AT_CDATA,
74*c2c66affSColin Finck    XML_AT_ID,
75*c2c66affSColin Finck    XML_AT_IDREF,
76*c2c66affSColin Finck    XML_AT_IDREFS,
77*c2c66affSColin Finck    XML_AT_ENTITY,
78*c2c66affSColin Finck    XML_AT_ENTITIES,
79*c2c66affSColin Finck    XML_AT_NMTOKEN,
80*c2c66affSColin Finck    XML_AT_NMTOKENS,
81*c2c66affSColin Finck    XML_AT_NOTATION,
82*c2c66affSColin Finck    XML_AT_REQUIRED,
83*c2c66affSColin Finck    XML_AT_IMPLIED,
84*c2c66affSColin Finck    XML_AT_FIXED,
85*c2c66affSColin Finck    XML_PENTITYDECL,
86*c2c66affSColin Finck    XML_EMPTY,
87*c2c66affSColin Finck    XML_ANY,
88*c2c66affSColin Finck    XML_MIXED,
89*c2c66affSColin Finck    XML_SEQUENCE,
90*c2c66affSColin Finck    XML_CHOICE,
91*c2c66affSColin Finck    XML_STAR,
92*c2c66affSColin Finck    XML_PLUS,
93*c2c66affSColin Finck    XML_QUESTIONMARK,
94*c2c66affSColin Finck    XML_LASTSUBNODETYPE
95*c2c66affSColin Finck}
96*c2c66affSColin FinckXML_NODE_SUBTYPE;
97*c2c66affSColin Finck
98*c2c66affSColin Fincktypedef enum
99*c2c66affSColin Finck{
100*c2c66affSColin Finck    XML_E_PARSEERRORBASE = 0xC00CE500L,
101*c2c66affSColin Finck
102*c2c66affSColin Finck    XML_E_ENDOFINPUT            = XML_E_PARSEERRORBASE,
103*c2c66affSColin Finck    XML_E_MISSINGEQUALS         = 0xC00CE501,
104*c2c66affSColin Finck    XML_E_MISSINGQUOTE          = 0xC00CE502,
105*c2c66affSColin Finck    XML_E_COMMENTSYNTAX         = 0xC00CE503,
106*c2c66affSColin Finck    XML_E_BADSTARTNAMECHAR      = 0xC00CE504,
107*c2c66affSColin Finck    XML_E_BADNAMECHAR           = 0xC00CE505,
108*c2c66affSColin Finck    XML_E_BADCHARINSTRING       = 0xC00CE506,
109*c2c66affSColin Finck    XML_E_XMLDECLSYNTAX         = 0xC00CE507,
110*c2c66affSColin Finck    XML_E_BADCHARDATA           = 0xC00CE508,
111*c2c66affSColin Finck    XML_E_MISSINGWHITESPACE     = 0xC00CE509,
112*c2c66affSColin Finck    XML_E_EXPECTINGTAGEND       = 0xC00CE50A,
113*c2c66affSColin Finck    XML_E_BADCHARINDTD          = 0xC00CE50B,
114*c2c66affSColin Finck    XML_E_BADCHARINDECL         = 0xC00CE50C,
115*c2c66affSColin Finck    XML_E_MISSINGSEMICOLON      = 0xC00CE50D,
116*c2c66affSColin Finck    XML_E_BADCHARINENTREF       = 0xC00CE50E,
117*c2c66affSColin Finck    XML_E_UNBALANCEDPAREN       = 0xC00CE50F,
118*c2c66affSColin Finck    XML_E_EXPECTINGOPENBRACKET  = 0xC00CE510,
119*c2c66affSColin Finck    XML_E_BADENDCONDSECT        = 0xC00CE511,
120*c2c66affSColin Finck    XML_E_INTERNALERROR         = 0xC00CE512,
121*c2c66affSColin Finck    XML_E_UNEXPECTED_WHITESPACE = 0xC00CE513,
122*c2c66affSColin Finck    XML_E_INCOMPLETE_ENCODING   = 0xC00CE514,
123*c2c66affSColin Finck    XML_E_BADCHARINMIXEDMODEL   = 0xC00CE515,
124*c2c66affSColin Finck    XML_E_MISSING_STAR          = 0xC00CE516,
125*c2c66affSColin Finck    XML_E_BADCHARINMODEL        = 0xC00CE517,
126*c2c66affSColin Finck    XML_E_MISSING_PAREN         = 0xC00CE518,
127*c2c66affSColin Finck    XML_E_BADCHARINENUMERATION  = 0xC00CE519,
128*c2c66affSColin Finck    XML_E_PIDECLSYNTAX          = 0xC00CE51A,
129*c2c66affSColin Finck    XML_E_EXPECTINGCLOSEQUOTE   = 0xC00CE51B,
130*c2c66affSColin Finck    XML_E_MULTIPLE_COLONS       = 0xC00CE51C,
131*c2c66affSColin Finck    XML_E_INVALID_DECIMAL       = 0xC00CE51D,
132*c2c66affSColin Finck    XML_E_INVALID_HEXIDECIMAL   = 0xC00CE51E,
133*c2c66affSColin Finck    XML_E_INVALID_UNICODE       = 0xC00CE51F,
134*c2c66affSColin Finck    XML_E_WHITESPACEORQUESTIONMARK  = 0xC00CE520,
135*c2c66affSColin Finck    XML_E_ENDOFPE               = 0xC00CE521,
136*c2c66affSColin Finck
137*c2c66affSColin Finck    XML_E_TOKEN_ERROR = XML_E_PARSEERRORBASE + 0x50,
138*c2c66affSColin Finck    XML_E_SUSPENDED                     =  0xC00CE550,
139*c2c66affSColin Finck    XML_E_STOPPED                       = 0xC00CE551,
140*c2c66affSColin Finck    XML_E_UNEXPECTEDENDTAG              = 0xC00CE552,
141*c2c66affSColin Finck    XML_E_UNCLOSEDTAG                   = 0xC00CE553,
142*c2c66affSColin Finck    XML_E_DUPLICATEATTRIBUTE            = 0xC00CE554,
143*c2c66affSColin Finck    XML_E_MULTIPLEROOTS                 = 0xC00CE555,
144*c2c66affSColin Finck    XML_E_INVALIDATROOTLEVEL            = 0xC00CE556,
145*c2c66affSColin Finck    XML_E_BADXMLDECL                    = 0xC00CE557,
146*c2c66affSColin Finck    XML_E_MISSINGROOT                   = 0xC00CE558,
147*c2c66affSColin Finck    XML_E_UNEXPECTEDEOF                 = 0xC00CE559,
148*c2c66affSColin Finck    XML_E_BADPEREFINSUBSET              = 0xC00CE55A,
149*c2c66affSColin Finck    XML_E_PE_NESTING                    = 0xC00CE55B,
150*c2c66affSColin Finck    XML_E_INVALID_CDATACLOSINGTAG       = 0xC00CE55C,
151*c2c66affSColin Finck    XML_E_UNCLOSEDPI                    = 0xC00CE55D,
152*c2c66affSColin Finck    XML_E_UNCLOSEDSTARTTAG              = 0xC00CE55E,
153*c2c66affSColin Finck    XML_E_UNCLOSEDENDTAG                = 0xC00CE55F,
154*c2c66affSColin Finck    XML_E_UNCLOSEDSTRING                = 0xC00CE560,
155*c2c66affSColin Finck    XML_E_UNCLOSEDCOMMENT               = 0xC00CE561,
156*c2c66affSColin Finck    XML_E_UNCLOSEDDECL                  = 0xC00CE562,
157*c2c66affSColin Finck    XML_E_UNCLOSEDMARKUPDECL            = 0xC00CE563,
158*c2c66affSColin Finck    XML_E_UNCLOSEDCDATA                 = 0xC00CE564,
159*c2c66affSColin Finck    XML_E_BADDECLNAME                   = 0xC00CE565,
160*c2c66affSColin Finck    XML_E_BADEXTERNALID                 = 0xC00CE566,
161*c2c66affSColin Finck    XML_E_BADELEMENTINDTD               = 0xC00CE567,
162*c2c66affSColin Finck    XML_E_RESERVEDNAMESPACE             = 0xC00CE568,
163*c2c66affSColin Finck    XML_E_EXPECTING_VERSION             = 0xC00CE569,
164*c2c66affSColin Finck    XML_E_EXPECTING_ENCODING            = 0xC00CE56A,
165*c2c66affSColin Finck    XML_E_EXPECTING_NAME                = 0xC00CE56B,
166*c2c66affSColin Finck    XML_E_UNEXPECTED_ATTRIBUTE          = 0xC00CE56C,
167*c2c66affSColin Finck    XML_E_ENDTAGMISMATCH                = 0xC00CE56D,
168*c2c66affSColin Finck    XML_E_INVALIDENCODING               = 0xC00CE56E,
169*c2c66affSColin Finck    XML_E_INVALIDSWITCH                 = 0xC00CE56F,
170*c2c66affSColin Finck    XML_E_EXPECTING_NDATA               = 0xC00CE570,
171*c2c66affSColin Finck    XML_E_INVALID_MODEL                 = 0xC00CE571,
172*c2c66affSColin Finck    XML_E_INVALID_TYPE                  = 0xC00CE572,
173*c2c66affSColin Finck    XML_E_INVALIDXMLSPACE               = 0xC00CE573,
174*c2c66affSColin Finck    XML_E_MULTI_ATTR_VALUE              = 0xC00CE574,
175*c2c66affSColin Finck    XML_E_INVALID_PRESENCE              = 0xC00CE575,
176*c2c66affSColin Finck    XML_E_BADXMLCASE                    = 0xC00CE576,
177*c2c66affSColin Finck    XML_E_CONDSECTINSUBSET              = 0xC00CE577,
178*c2c66affSColin Finck    XML_E_CDATAINVALID                  = 0xC00CE578,
179*c2c66affSColin Finck    XML_E_INVALID_STANDALONE            = 0xC00CE579,
180*c2c66affSColin Finck    XML_E_UNEXPECTED_STANDALONE         = 0xC00CE57A,
181*c2c66affSColin Finck    XML_E_DOCTYPE_IN_DTD                = 0xC00CE57B,
182*c2c66affSColin Finck    XML_E_MISSING_ENTITY                = 0xC00CE57C,
183*c2c66affSColin Finck    XML_E_ENTITYREF_INNAME              = 0xC00CE57D,
184*c2c66affSColin Finck    XML_E_DOCTYPE_OUTSIDE_PROLOG        = 0xC00CE57E,
185*c2c66affSColin Finck    XML_E_INVALID_VERSION               = 0xC00CE57F,
186*c2c66affSColin Finck    XML_E_DTDELEMENT_OUTSIDE_DTD        = 0xC00CE580,
187*c2c66affSColin Finck    XML_E_DUPLICATEDOCTYPE              = 0xC00CE581,
188*c2c66affSColin Finck    XML_E_RESOURCE                      = 0xC00CE582,
189*c2c66affSColin Finck    XML_E_MISSINGNAME                   = 0xC00CE583,
190*c2c66affSColin Finck    XML_E_LASTERROR                     = 0xC00CE584
191*c2c66affSColin Finck} XML_ERROR_CODE;
192*c2c66affSColin Finck
193*c2c66affSColin Fincktypedef enum
194*c2c66affSColin Finck{
195*c2c66affSColin Finck    XMLPARSER_IDLE,
196*c2c66affSColin Finck    XMLPARSER_WAITING,
197*c2c66affSColin Finck    XMLPARSER_BUSY,
198*c2c66affSColin Finck    XMLPARSER_ERROR,
199*c2c66affSColin Finck    XMLPARSER_STOPPED,
200*c2c66affSColin Finck    XMLPARSER_SUSPENDED
201*c2c66affSColin Finck} XML_PARSER_STATE;
202*c2c66affSColin Finck
203*c2c66affSColin Fincktypedef enum
204*c2c66affSColin Finck{
205*c2c66affSColin Finck    XMLFLAG_FLOATINGAMP       = 0x00000001,
206*c2c66affSColin Finck    XMLFLAG_SHORTENDTAGS      = 0x00000002,
207*c2c66affSColin Finck    XMLFLAG_CASEINSENSITIVE   = 0x00000004,
208*c2c66affSColin Finck    XMLFLAG_NONAMESPACES      = 0x00000008,
209*c2c66affSColin Finck    XMLFLAG_NOWHITESPACE      = 0x00000010,
210*c2c66affSColin Finck    XMLFLAG_IE4QUIRKS         = 0x00000020,
211*c2c66affSColin Finck    XMLFLAG_NODTDNODES        = 0x00000040,
212*c2c66affSColin Finck    XMLFLAG_IE4COMPATIBILITY  = 0x000000FF,
213*c2c66affSColin Finck    XMLFLAG_IE5COMPATIBILITY  = 0x00000100,
214*c2c66affSColin Finck    XMLFLAG_SAX               = 0x00000200,
215*c2c66affSColin Finck    XMLFLAG_NORMALIZELB       = 0x00000400,
216*c2c66affSColin Finck    XMLFLAG_IGNOREENCODING    = 0x00000800,
217*c2c66affSColin Finck    XMLFLAG_USEWINHTTP        = 0x00001000,
218*c2c66affSColin Finck    XMLFLAG_RUNBUFFERONLY     = 0x00002000,
219*c2c66affSColin Finck    XMLFLAG_PROHIBIT_DTD      = 0x00008000
220*c2c66affSColin Finck} XML_PARSER_FLAGS;
221*c2c66affSColin Finck
222*c2c66affSColin Finck
223*c2c66affSColin Fincktypedef enum
224*c2c66affSColin Finck{
225*c2c66affSColin Finck    XMLNF_STARTDOCUMENT,
226*c2c66affSColin Finck    XMLNF_STARTDTD,
227*c2c66affSColin Finck    XMLNF_ENDDTD,
228*c2c66affSColin Finck    XMLNF_STARTDTDSUBSET,
229*c2c66affSColin Finck    XMLNF_ENDDTDSUBSET,
230*c2c66affSColin Finck    XMLNF_ENDPROLOG,
231*c2c66affSColin Finck    XMLNF_STARTENTITY,
232*c2c66affSColin Finck    XMLNF_ENDENTITY,
233*c2c66affSColin Finck    XMLNF_ENDDOCUMENT,
234*c2c66affSColin Finck    XMLNF_DATAAVAILABLE,
235*c2c66affSColin Finck    XMLNF_LASTEVENT = XMLNF_DATAAVAILABLE
236*c2c66affSColin Finck} XML_NODEFACTORY_EVENT;
237*c2c66affSColin Finck
238*c2c66affSColin Fincktypedef struct _XML_NODE_INFO
239*c2c66affSColin Finck{
240*c2c66affSColin Finck    DWORD           dwSize;
241*c2c66affSColin Finck    DWORD           dwType;
242*c2c66affSColin Finck    DWORD           dwSubType;
243*c2c66affSColin Finck    BOOL            fTerminal;
244*c2c66affSColin Finck    const WCHAR*    pwcText;
245*c2c66affSColin Finck    ULONG           ulLen;
246*c2c66affSColin Finck    ULONG           ulNsPrefixLen;
247*c2c66affSColin Finck    PVOID           pNode;
248*c2c66affSColin Finck    PVOID           pReserved;
249*c2c66affSColin Finck} XML_NODE_INFO;
250*c2c66affSColin Finck
251*c2c66affSColin Finck[
252*c2c66affSColin Finck    uuid(d242361c-51a0-11d2-9caf-0060b0ec3d39),
253*c2c66affSColin Finck    helpstring("Microsoft XML Parser 1.0"),
254*c2c66affSColin Finck    lcid(0x0000),
255*c2c66affSColin Finck    version(1.0)
256*c2c66affSColin Finck]
257*c2c66affSColin Fincklibrary XMLPSR
258*c2c66affSColin Finck{
259*c2c66affSColin Finck/* importlib("stdole32.tlb"); */
260*c2c66affSColin Finckimportlib("stdole2.tlb");
261*c2c66affSColin Finck
262*c2c66affSColin Finck[
263*c2c66affSColin Finck    local,
264*c2c66affSColin Finck    object,
265*c2c66affSColin Finck    pointer_default(unique),
266*c2c66affSColin Finck    helpstring("IXMLNodeFactory Interface"),
267*c2c66affSColin Finck    uuid(d242361f-51a0-11d2-9caf-0060b0ec3d39)
268*c2c66affSColin Finck]
269*c2c66affSColin Finckinterface IXMLNodeFactory : IUnknown
270*c2c66affSColin Finck{
271*c2c66affSColin Finck    HRESULT NotifyEvent([in] IXMLNodeSource* pSource,[in] XML_NODEFACTORY_EVENT iEvt);
272*c2c66affSColin Finck    HRESULT BeginChildren([in] IXMLNodeSource* pSource, [in] XML_NODE_INFO* pNodeInfo);
273*c2c66affSColin Finck    HRESULT EndChildren([in] IXMLNodeSource* pSource, [in] BOOL fEmpty, [in] XML_NODE_INFO* pNodeInfo);
274*c2c66affSColin Finck    HRESULT Error([in] IXMLNodeSource* pSource,[in] HRESULT hrErrorCode,
275*c2c66affSColin Finck                [in] USHORT cNumRecs, [in] XML_NODE_INFO** ppNodeInfo);
276*c2c66affSColin Finck    HRESULT CreateNode([in] IXMLNodeSource* pSource, [in] PVOID pNodeParent, [in] USHORT cNumRecs,
277*c2c66affSColin Finck                [in] XML_NODE_INFO** ppNodeInfo);
278*c2c66affSColin Finck};
279*c2c66affSColin Finck
280*c2c66affSColin Finck[
281*c2c66affSColin Finck    local,
282*c2c66affSColin Finck    object,
283*c2c66affSColin Finck    pointer_default(unique),
284*c2c66affSColin Finck    uuid(d242361d-51a0-11d2-9caf-0060b0ec3d39)
285*c2c66affSColin Finck]
286*c2c66affSColin Finckinterface IXMLNodeSource : IUnknown
287*c2c66affSColin Finck{
288*c2c66affSColin Finck    HRESULT SetFactory([in] IXMLNodeFactory* pNodeFactory);
289*c2c66affSColin Finck    HRESULT GetFactory([out] IXMLNodeFactory** ppNodeFactory);
290*c2c66affSColin Finck    HRESULT Abort([in] BSTR bstrErrorInfo);
291*c2c66affSColin Finck    ULONG GetLineNumber();
292*c2c66affSColin Finck    ULONG GetLinePosition();
293*c2c66affSColin Finck    ULONG GetAbsolutePosition();
294*c2c66affSColin Finck    HRESULT GetLineBuffer([out] const WCHAR** ppBuf,[out] ULONG* Len, [out] ULONG* StartPos);
295*c2c66affSColin Finck    HRESULT GetLastError();
296*c2c66affSColin Finck    HRESULT GetErrorInfo([out] BSTR* pErrorInfo);
297*c2c66affSColin Finck    ULONG GetFlags();
298*c2c66affSColin Finck    HRESULT GetURL([out] const WCHAR** ppBuf);
299*c2c66affSColin Finck};
300*c2c66affSColin Finck
301*c2c66affSColin Finck[
302*c2c66affSColin Finck    local,
303*c2c66affSColin Finck    object,
304*c2c66affSColin Finck    pointer_default(unique),
305*c2c66affSColin Finck    helpstring("IXMLParser Interface"),
306*c2c66affSColin Finck    uuid(d242361e-51a0-11d2-9caf-0060b0ec3d39)
307*c2c66affSColin Finck]
308*c2c66affSColin Finckinterface IXMLParser : IXMLNodeSource
309*c2c66affSColin Finck{
310*c2c66affSColin Finck    HRESULT SetURL([in] const WCHAR* pszBaseUrl,[in] const WCHAR* pszRelativeUrl,[in] BOOL fAsync);
311*c2c66affSColin Finck    HRESULT Load([in] BOOL fFullyAvailable, [in] IMoniker *pimkName, [in] LPBC pibc, [in] DWORD grfMode);
312*c2c66affSColin Finck    HRESULT SetInput([in] IUnknown *pStm);
313*c2c66affSColin Finck    HRESULT PushData([in] const char* pData, [in] ULONG ulChars, [in] BOOL fLastBuffer);
314*c2c66affSColin Finck    HRESULT LoadDTD([in] const WCHAR* pszBaseUrl, [in] const WCHAR* pszRelativeUrl);
315*c2c66affSColin Finck    HRESULT LoadEntity([in] const WCHAR* pszBaseUrl, [in] const WCHAR* pszRelativeUrl, [in] BOOL fpe);
316*c2c66affSColin Finck    HRESULT ParseEntity([in] const WCHAR* pwcText, [in] ULONG ulLen, [in] BOOL fpe);
317*c2c66affSColin Finck    HRESULT ExpandEntity([in] const WCHAR* pwcText, [in] ULONG ulLen);
318*c2c66affSColin Finck    HRESULT SetRoot([in] PVOID pRoot);
319*c2c66affSColin Finck    HRESULT GetRoot([in] PVOID* ppRoot);
320*c2c66affSColin Finck    HRESULT Run([in] long lChars);
321*c2c66affSColin Finck    HRESULT GetParserState();
322*c2c66affSColin Finck    HRESULT Suspend();
323*c2c66affSColin Finck    HRESULT Reset();
324*c2c66affSColin Finck    HRESULT SetFlags([in] ULONG iFlags);
325*c2c66affSColin Finck    HRESULT SetSecureBaseURL([in] const WCHAR* pszBaseUrl);
326*c2c66affSColin Finck    HRESULT GetSecureBaseURL([out] const WCHAR** ppwcBuf);
327*c2c66affSColin Finck};
328*c2c66affSColin Finck
329*c2c66affSColin Finck}
330*c2c66affSColin Finck
331*c2c66affSColin Finck[
332*c2c66affSColin Finck    helpstring("XML Parser"),
333*c2c66affSColin Finck    uuid(f5078f19-c551-11d3-89b9-0000f81fe221),
334*c2c66affSColin Finck    threading(both),
335*c2c66affSColin Finck    progid("Msxml2.XMLParser"),
336*c2c66affSColin Finck    vi_progid("Msxml2.XMLParser"),
337*c2c66affSColin Finck    version(3.0)
338*c2c66affSColin Finck]
339*c2c66affSColin Finckcoclass XMLParser
340*c2c66affSColin Finck{
341*c2c66affSColin Finck    [default] interface IXMLParser;
342*c2c66affSColin Finck};
343*c2c66affSColin Finck
344*c2c66affSColin Finck[
345*c2c66affSColin Finck    helpstring("XML Parser 2.6"),
346*c2c66affSColin Finck    uuid(f5078f20-c551-11d3-89b9-0000f81fe221),
347*c2c66affSColin Finck    threading(both),
348*c2c66affSColin Finck    progid("Msxml2.XMLParser.2.6"),
349*c2c66affSColin Finck    vi_progid("Msxml2.XMLParser"),
350*c2c66affSColin Finck    version(2.6)
351*c2c66affSColin Finck]
352*c2c66affSColin Finckcoclass XMLParser26
353*c2c66affSColin Finck{
354*c2c66affSColin Finck    [default] interface IXMLParser;
355*c2c66affSColin Finck};
356*c2c66affSColin Finck
357*c2c66affSColin Finck[
358*c2c66affSColin Finck    helpstring("XML Parser 3.0"),
359*c2c66affSColin Finck    uuid(f5078f31-c551-11d3-89b9-0000f81fe221),
360*c2c66affSColin Finck    threading(both),
361*c2c66affSColin Finck    progid("Msxml2.XMLParser.3.0"),
362*c2c66affSColin Finck    vi_progid("Msxml2.XMLParser"),
363*c2c66affSColin Finck    version(3.0)
364*c2c66affSColin Finck]
365*c2c66affSColin Finckcoclass XMLParser30
366*c2c66affSColin Finck{
367*c2c66affSColin Finck    [default] interface IXMLParser;
368*c2c66affSColin Finck};
369*c2c66affSColin Finck
370*c2c66affSColin Finck[
371*c2c66affSColin Finck    helpstring("XML Document"),
372*c2c66affSColin Finck    threading(apartment),
373*c2c66affSColin Finck    uuid(48123bc4-99d9-11d1-a6b3-00c04fd91555),
374*c2c66affSColin Finck    progid("xmlfile"),
375*c2c66affSColin Finck    version(1.0)
376*c2c66affSColin Finck]
377*c2c66affSColin Finckcoclass XMLView
378*c2c66affSColin Finck{
379*c2c66affSColin Finck    interface IPersistMoniker;
380*c2c66affSColin Finck    interface IPersistHistory;
381*c2c66affSColin Finck    interface IOleCommandTarget;
382*c2c66affSColin Finck    interface IOleObject;
383*c2c66affSColin Finck}
384