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