| /* | |
| * Copyright (C) 2011 Alistair Leslie-Hughes | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| */ | |
| #pragma makedep register | |
| import "unknwn.idl"; | |
| import "objidl.idl"; | |
| import "oaidl.idl"; | |
| interface IXMLNodeSource; | |
| interface IXMLParser; | |
| interface IXMLNodeFactory; | |
| interface IMoniker; | |
| typedef enum | |
| { | |
| XML_ELEMENT = 1, | |
| XML_ATTRIBUTE, | |
| XML_PI, | |
| XML_XMLDECL, | |
| XML_DOCTYPE, | |
| XML_DTDATTRIBUTE, | |
| XML_ENTITYDECL, | |
| XML_ELEMENTDECL, | |
| XML_ATTLISTDECL, | |
| XML_NOTATION, | |
| XML_GROUP, | |
| XML_INCLUDESECT, | |
| XML_PCDATA, | |
| XML_CDATA, | |
| XML_IGNORESECT, | |
| XML_COMMENT, | |
| XML_ENTITYREF, | |
| XML_WHITESPACE, | |
| XML_NAME, | |
| XML_NMTOKEN, | |
| XML_STRING, | |
| XML_PEREF, | |
| XML_MODEL, | |
| XML_ATTDEF, | |
| XML_ATTTYPE, | |
| XML_ATTPRESENCE, | |
| XML_DTDSUBSET, | |
| XML_LASTNODETYPE | |
| } XML_NODE_TYPE; | |
| typedef enum | |
| { | |
| XML_VERSION = XML_LASTNODETYPE, | |
| XML_ENCODING, | |
| XML_STANDALONE, | |
| XML_NS, | |
| XML_XMLSPACE, | |
| XML_XMLLANG, | |
| XML_SYSTEM, | |
| XML_PUBLIC, | |
| XML_NDATA, | |
| XML_AT_CDATA, | |
| XML_AT_ID, | |
| XML_AT_IDREF, | |
| XML_AT_IDREFS, | |
| XML_AT_ENTITY, | |
| XML_AT_ENTITIES, | |
| XML_AT_NMTOKEN, | |
| XML_AT_NMTOKENS, | |
| XML_AT_NOTATION, | |
| XML_AT_REQUIRED, | |
| XML_AT_IMPLIED, | |
| XML_AT_FIXED, | |
| XML_PENTITYDECL, | |
| XML_EMPTY, | |
| XML_ANY, | |
| XML_MIXED, | |
| XML_SEQUENCE, | |
| XML_CHOICE, | |
| XML_STAR, | |
| XML_PLUS, | |
| XML_QUESTIONMARK, | |
| XML_LASTSUBNODETYPE | |
| } | |
| XML_NODE_SUBTYPE; | |
| typedef enum | |
| { | |
| XML_E_PARSEERRORBASE = 0xC00CE500L, | |
| XML_E_ENDOFINPUT = XML_E_PARSEERRORBASE, | |
| XML_E_MISSINGEQUALS = 0xC00CE501, | |
| XML_E_MISSINGQUOTE = 0xC00CE502, | |
| XML_E_COMMENTSYNTAX = 0xC00CE503, | |
| XML_E_BADSTARTNAMECHAR = 0xC00CE504, | |
| XML_E_BADNAMECHAR = 0xC00CE505, | |
| XML_E_BADCHARINSTRING = 0xC00CE506, | |
| XML_E_XMLDECLSYNTAX = 0xC00CE507, | |
| XML_E_BADCHARDATA = 0xC00CE508, | |
| XML_E_MISSINGWHITESPACE = 0xC00CE509, | |
| XML_E_EXPECTINGTAGEND = 0xC00CE50A, | |
| XML_E_BADCHARINDTD = 0xC00CE50B, | |
| XML_E_BADCHARINDECL = 0xC00CE50C, | |
| XML_E_MISSINGSEMICOLON = 0xC00CE50D, | |
| XML_E_BADCHARINENTREF = 0xC00CE50E, | |
| XML_E_UNBALANCEDPAREN = 0xC00CE50F, | |
| XML_E_EXPECTINGOPENBRACKET = 0xC00CE510, | |
| XML_E_BADENDCONDSECT = 0xC00CE511, | |
| XML_E_INTERNALERROR = 0xC00CE512, | |
| XML_E_UNEXPECTED_WHITESPACE = 0xC00CE513, | |
| XML_E_INCOMPLETE_ENCODING = 0xC00CE514, | |
| XML_E_BADCHARINMIXEDMODEL = 0xC00CE515, | |
| XML_E_MISSING_STAR = 0xC00CE516, | |
| XML_E_BADCHARINMODEL = 0xC00CE517, | |
| XML_E_MISSING_PAREN = 0xC00CE518, | |
| XML_E_BADCHARINENUMERATION = 0xC00CE519, | |
| XML_E_PIDECLSYNTAX = 0xC00CE51A, | |
| XML_E_EXPECTINGCLOSEQUOTE = 0xC00CE51B, | |
| XML_E_MULTIPLE_COLONS = 0xC00CE51C, | |
| XML_E_INVALID_DECIMAL = 0xC00CE51D, | |
| XML_E_INVALID_HEXIDECIMAL = 0xC00CE51E, | |
| XML_E_INVALID_UNICODE = 0xC00CE51F, | |
| XML_E_WHITESPACEORQUESTIONMARK = 0xC00CE520, | |
| XML_E_ENDOFPE = 0xC00CE521, | |
| XML_E_TOKEN_ERROR = XML_E_PARSEERRORBASE + 0x50, | |
| XML_E_SUSPENDED = 0xC00CE550, | |
| XML_E_STOPPED = 0xC00CE551, | |
| XML_E_UNEXPECTEDENDTAG = 0xC00CE552, | |
| XML_E_UNCLOSEDTAG = 0xC00CE553, | |
| XML_E_DUPLICATEATTRIBUTE = 0xC00CE554, | |
| XML_E_MULTIPLEROOTS = 0xC00CE555, | |
| XML_E_INVALIDATROOTLEVEL = 0xC00CE556, | |
| XML_E_BADXMLDECL = 0xC00CE557, | |
| XML_E_MISSINGROOT = 0xC00CE558, | |
| XML_E_UNEXPECTEDEOF = 0xC00CE559, | |
| XML_E_BADPEREFINSUBSET = 0xC00CE55A, | |
| XML_E_PE_NESTING = 0xC00CE55B, | |
| XML_E_INVALID_CDATACLOSINGTAG = 0xC00CE55C, | |
| XML_E_UNCLOSEDPI = 0xC00CE55D, | |
| XML_E_UNCLOSEDSTARTTAG = 0xC00CE55E, | |
| XML_E_UNCLOSEDENDTAG = 0xC00CE55F, | |
| XML_E_UNCLOSEDSTRING = 0xC00CE560, | |
| XML_E_UNCLOSEDCOMMENT = 0xC00CE561, | |
| XML_E_UNCLOSEDDECL = 0xC00CE562, | |
| XML_E_UNCLOSEDMARKUPDECL = 0xC00CE563, | |
| XML_E_UNCLOSEDCDATA = 0xC00CE564, | |
| XML_E_BADDECLNAME = 0xC00CE565, | |
| XML_E_BADEXTERNALID = 0xC00CE566, | |
| XML_E_BADELEMENTINDTD = 0xC00CE567, | |
| XML_E_RESERVEDNAMESPACE = 0xC00CE568, | |
| XML_E_EXPECTING_VERSION = 0xC00CE569, | |
| XML_E_EXPECTING_ENCODING = 0xC00CE56A, | |
| XML_E_EXPECTING_NAME = 0xC00CE56B, | |
| XML_E_UNEXPECTED_ATTRIBUTE = 0xC00CE56C, | |
| XML_E_ENDTAGMISMATCH = 0xC00CE56D, | |
| XML_E_INVALIDENCODING = 0xC00CE56E, | |
| XML_E_INVALIDSWITCH = 0xC00CE56F, | |
| XML_E_EXPECTING_NDATA = 0xC00CE570, | |
| XML_E_INVALID_MODEL = 0xC00CE571, | |
| XML_E_INVALID_TYPE = 0xC00CE572, | |
| XML_E_INVALIDXMLSPACE = 0xC00CE573, | |
| XML_E_MULTI_ATTR_VALUE = 0xC00CE574, | |
| XML_E_INVALID_PRESENCE = 0xC00CE575, | |
| XML_E_BADXMLCASE = 0xC00CE576, | |
| XML_E_CONDSECTINSUBSET = 0xC00CE577, | |
| XML_E_CDATAINVALID = 0xC00CE578, | |
| XML_E_INVALID_STANDALONE = 0xC00CE579, | |
| XML_E_UNEXPECTED_STANDALONE = 0xC00CE57A, | |
| XML_E_DOCTYPE_IN_DTD = 0xC00CE57B, | |
| XML_E_MISSING_ENTITY = 0xC00CE57C, | |
| XML_E_ENTITYREF_INNAME = 0xC00CE57D, | |
| XML_E_DOCTYPE_OUTSIDE_PROLOG = 0xC00CE57E, | |
| XML_E_INVALID_VERSION = 0xC00CE57F, | |
| XML_E_DTDELEMENT_OUTSIDE_DTD = 0xC00CE580, | |
| XML_E_DUPLICATEDOCTYPE = 0xC00CE581, | |
| XML_E_RESOURCE = 0xC00CE582, | |
| XML_E_MISSINGNAME = 0xC00CE583, | |
| XML_E_LASTERROR = 0xC00CE584 | |
| } XML_ERROR_CODE; | |
| typedef enum | |
| { | |
| XMLPARSER_IDLE, | |
| XMLPARSER_WAITING, | |
| XMLPARSER_BUSY, | |
| XMLPARSER_ERROR, | |
| XMLPARSER_STOPPED, | |
| XMLPARSER_SUSPENDED | |
| } XML_PARSER_STATE; | |
| typedef enum | |
| { | |
| XMLFLAG_FLOATINGAMP = 0x00000001, | |
| XMLFLAG_SHORTENDTAGS = 0x00000002, | |
| XMLFLAG_CASEINSENSITIVE = 0x00000004, | |
| XMLFLAG_NONAMESPACES = 0x00000008, | |
| XMLFLAG_NOWHITESPACE = 0x00000010, | |
| XMLFLAG_IE4QUIRKS = 0x00000020, | |
| XMLFLAG_NODTDNODES = 0x00000040, | |
| XMLFLAG_IE4COMPATIBILITY = 0x000000FF, | |
| XMLFLAG_IE5COMPATIBILITY = 0x00000100, | |
| XMLFLAG_SAX = 0x00000200, | |
| XMLFLAG_NORMALIZELB = 0x00000400, | |
| XMLFLAG_IGNOREENCODING = 0x00000800, | |
| XMLFLAG_USEWINHTTP = 0x00001000, | |
| XMLFLAG_RUNBUFFERONLY = 0x00002000, | |
| XMLFLAG_PROHIBIT_DTD = 0x00008000 | |
| } XML_PARSER_FLAGS; | |
| typedef enum | |
| { | |
| XMLNF_STARTDOCUMENT, | |
| XMLNF_STARTDTD, | |
| XMLNF_ENDDTD, | |
| XMLNF_STARTDTDSUBSET, | |
| XMLNF_ENDDTDSUBSET, | |
| XMLNF_ENDPROLOG, | |
| XMLNF_STARTENTITY, | |
| XMLNF_ENDENTITY, | |
| XMLNF_ENDDOCUMENT, | |
| XMLNF_DATAAVAILABLE, | |
| XMLNF_LASTEVENT = XMLNF_DATAAVAILABLE | |
| } XML_NODEFACTORY_EVENT; | |
| typedef struct _XML_NODE_INFO | |
| { | |
| DWORD dwSize; | |
| DWORD dwType; | |
| DWORD dwSubType; | |
| BOOL fTerminal; | |
| const WCHAR* pwcText; | |
| ULONG ulLen; | |
| ULONG ulNsPrefixLen; | |
| PVOID pNode; | |
| PVOID pReserved; | |
| } XML_NODE_INFO; | |
| [ | |
| uuid(d242361c-51a0-11d2-9caf-0060b0ec3d39), | |
| helpstring("Microsoft XML Parser 1.0"), | |
| lcid(0x0000), | |
| version(1.0) | |
| ] | |
| library XMLPSR | |
| { | |
| /* importlib("stdole32.tlb"); */ | |
| importlib("stdole2.tlb"); | |
| [ | |
| local, | |
| object, | |
| pointer_default(unique), | |
| helpstring("IXMLNodeFactory Interface"), | |
| uuid(d242361f-51a0-11d2-9caf-0060b0ec3d39) | |
| ] | |
| interface IXMLNodeFactory : IUnknown | |
| { | |
| HRESULT NotifyEvent([in] IXMLNodeSource* pSource,[in] XML_NODEFACTORY_EVENT iEvt); | |
| HRESULT BeginChildren([in] IXMLNodeSource* pSource, [in] XML_NODE_INFO* pNodeInfo); | |
| HRESULT EndChildren([in] IXMLNodeSource* pSource, [in] BOOL fEmpty, [in] XML_NODE_INFO* pNodeInfo); | |
| HRESULT Error([in] IXMLNodeSource* pSource,[in] HRESULT hrErrorCode, | |
| [in] USHORT cNumRecs, [in] XML_NODE_INFO** ppNodeInfo); | |
| HRESULT CreateNode([in] IXMLNodeSource* pSource, [in] PVOID pNodeParent, [in] USHORT cNumRecs, | |
| [in] XML_NODE_INFO** ppNodeInfo); | |
| }; | |
| [ | |
| local, | |
| object, | |
| pointer_default(unique), | |
| uuid(d242361d-51a0-11d2-9caf-0060b0ec3d39) | |
| ] | |
| interface IXMLNodeSource : IUnknown | |
| { | |
| HRESULT SetFactory([in] IXMLNodeFactory* pNodeFactory); | |
| HRESULT GetFactory([out] IXMLNodeFactory** ppNodeFactory); | |
| HRESULT Abort([in] BSTR bstrErrorInfo); | |
| ULONG GetLineNumber(); | |
| ULONG GetLinePosition(); | |
| ULONG GetAbsolutePosition(); | |
| HRESULT GetLineBuffer([out] const WCHAR** ppBuf,[out] ULONG* Len, [out] ULONG* StartPos); | |
| HRESULT GetLastError(); | |
| HRESULT GetErrorInfo([out] BSTR* pErrorInfo); | |
| ULONG GetFlags(); | |
| HRESULT GetURL([out] const WCHAR** ppBuf); | |
| }; | |
| [ | |
| local, | |
| object, | |
| pointer_default(unique), | |
| helpstring("IXMLParser Interface"), | |
| uuid(d242361e-51a0-11d2-9caf-0060b0ec3d39) | |
| ] | |
| interface IXMLParser : IXMLNodeSource | |
| { | |
| HRESULT SetURL([in] const WCHAR* pszBaseUrl,[in] const WCHAR* pszRelativeUrl,[in] BOOL fAsync); | |
| HRESULT Load([in] BOOL fFullyAvailable, [in] IMoniker *pimkName, [in] LPBC pibc, [in] DWORD grfMode); | |
| HRESULT SetInput([in] IUnknown *pStm); | |
| HRESULT PushData([in] const char* pData, [in] ULONG ulChars, [in] BOOL fLastBuffer); | |
| HRESULT LoadDTD([in] const WCHAR* pszBaseUrl, [in] const WCHAR* pszRelativeUrl); | |
| HRESULT LoadEntity([in] const WCHAR* pszBaseUrl, [in] const WCHAR* pszRelativeUrl, [in] BOOL fpe); | |
| HRESULT ParseEntity([in] const WCHAR* pwcText, [in] ULONG ulLen, [in] BOOL fpe); | |
| HRESULT ExpandEntity([in] const WCHAR* pwcText, [in] ULONG ulLen); | |
| HRESULT SetRoot([in] PVOID pRoot); | |
| HRESULT GetRoot([in] PVOID* ppRoot); | |
| HRESULT Run([in] long lChars); | |
| HRESULT GetParserState(); | |
| HRESULT Suspend(); | |
| HRESULT Reset(); | |
| HRESULT SetFlags([in] ULONG iFlags); | |
| HRESULT SetSecureBaseURL([in] const WCHAR* pszBaseUrl); | |
| HRESULT GetSecureBaseURL([out] const WCHAR** ppwcBuf); | |
| }; | |
| } | |
| [ | |
| helpstring("XML Parser"), | |
| uuid(f5078f19-c551-11d3-89b9-0000f81fe221), | |
| threading(both), | |
| progid("Msxml2.XMLParser"), | |
| vi_progid("Msxml2.XMLParser"), | |
| version(3.0) | |
| ] | |
| coclass XMLParser | |
| { | |
| [default] interface IXMLParser; | |
| }; | |
| [ | |
| helpstring("XML Parser 2.6"), | |
| uuid(f5078f20-c551-11d3-89b9-0000f81fe221), | |
| threading(both), | |
| progid("Msxml2.XMLParser.2.6"), | |
| vi_progid("Msxml2.XMLParser"), | |
| version(2.6) | |
| ] | |
| coclass XMLParser26 | |
| { | |
| [default] interface IXMLParser; | |
| }; | |
| [ | |
| helpstring("XML Parser 3.0"), | |
| uuid(f5078f31-c551-11d3-89b9-0000f81fe221), | |
| threading(both), | |
| progid("Msxml2.XMLParser.3.0"), | |
| vi_progid("Msxml2.XMLParser"), | |
| version(3.0) | |
| ] | |
| coclass XMLParser30 | |
| { | |
| [default] interface IXMLParser; | |
| }; | |
| [ | |
| helpstring("XML Document"), | |
| threading(apartment), | |
| uuid(48123bc4-99d9-11d1-a6b3-00c04fd91555), | |
| progid("xmlfile"), | |
| version(1.0) | |
| ] | |
| coclass XMLView | |
| { | |
| interface IPersistMoniker; | |
| interface IPersistHistory; | |
| interface IOleCommandTarget; | |
| interface IOleObject; | |
| } |