| /* | 
 |  * Copyright (C) 2005 Vijay Kiran Kamuju | 
 |  * | 
 |  * 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 | 
 |  */ | 
 |  | 
 | #include <msxml2did.h> | 
 | #include <olectl.h> | 
 |  | 
 | import "unknwn.idl"; | 
 | import "objidl.idl"; | 
 | import "oaidl.idl"; | 
 |  | 
 | interface IXMLDOMImplementation; | 
 | interface IXMLDOMNode; | 
 | interface IXMLDOMDocumentFragment; | 
 | interface IXMLDOMDocument; | 
 | interface IXMLDOMSchemaCollection; | 
 | interface IXMLDOMDocument2; | 
 | interface IXMLDOMNodeList; | 
 | interface IXMLDOMNamedNodeMap; | 
 | interface IXMLDOMCharacterData; | 
 | interface IXMLDOMAttribute; | 
 | interface IXMLDOMElement; | 
 | interface IXMLDOMText; | 
 | interface IXMLDOMComment; | 
 | interface IXMLDOMProcessingInstruction; | 
 | interface IXMLDOMCDATASection; | 
 | interface IXMLDOMDocumentType; | 
 | interface IXMLDOMNotation; | 
 | interface IXMLDOMEntity; | 
 | interface IXMLDOMEntityReference; | 
 | interface IXMLDOMParseError; | 
 | interface IXTLRuntime; | 
 | interface IXSLTemplate; | 
 | interface IXSLProcessor; | 
 |  | 
 | typedef enum tagDOMNodeType  | 
 | {   | 
 |     NODE_INVALID  		= 0, | 
 |     NODE_ELEMENT  		= 1, | 
 |     NODE_ATTRIBUTE		= 2, | 
 |     NODE_TEXT			= 3, | 
 |     NODE_CDATA_SECTION		= 4, | 
 |     NODE_ENTITY_REFERENCE 	= 5, | 
 |     NODE_ENTITY 		= 6, | 
 |     NODE_PROCESSING_INSTRUCTION = 7, | 
 |     NODE_COMMENT		= 8, | 
 |     NODE_DOCUMENT		= 9, | 
 |     NODE_DOCUMENT_TYPE		= 10, | 
 |     NODE_DOCUMENT_FRAGMENT 	= 11, | 
 |     NODE_NOTATION 		= 12 | 
 | } DOMNodeType; | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF80-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMNode : IDispatch | 
 | { | 
 |     [propget, id(DISPID_DOM_NODE_NODENAME)] | 
 |     HRESULT nodeName([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODE_NODEVALUE)] | 
 |     HRESULT nodeValue([retval, out] VARIANT *var1); | 
 |  | 
 |     [propput, id(DISPID_DOM_NODE_NODEVALUE)] | 
 |     HRESULT nodeValue([in] VARIANT var1); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODE_NODETYPE)] | 
 |     HRESULT nodeType([retval, out] DOMNodeType *domNodeType); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODE_PARENTNODE)] | 
 |     HRESULT parentNode([retval, out] IXMLDOMNode **parent); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODE_CHILDNODES)] | 
 |     HRESULT childNodes([retval, out] IXMLDOMNodeList **outList); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODE_FIRSTCHILD)] | 
 |     HRESULT firstChild([retval, out] IXMLDOMNode **domNode); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODE_LASTCHILD)] | 
 |     HRESULT lastChild([retval, out] IXMLDOMNode **domNode); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODE_PREVIOUSSIBLING)] | 
 |     HRESULT previousSibling([retval, out] IXMLDOMNode **domNode); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODE_NEXTSIBLING)] | 
 |     HRESULT nextSibling([retval, out] IXMLDOMNode **domNode); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODE_ATTRIBUTES)] | 
 |     HRESULT attributes([retval, out] IXMLDOMNamedNodeMap **attributeMap); | 
 |  | 
 |     [id(DISPID_DOM_NODE_INSERTBEFORE)] | 
 |     HRESULT insertBefore( | 
 |         [in] IXMLDOMNode *newNode, | 
 |         [in] VARIANT var1, | 
 |         [retval, out] IXMLDOMNode **outOldNode); | 
 |  | 
 |     [id(DISPID_DOM_NODE_REPLACECHILD)] | 
 |     HRESULT replaceChild( | 
 |         [in] IXMLDOMNode *newNode, | 
 |         [in] IXMLDOMNode *oldNode, | 
 |         [retval, out] IXMLDOMNode **outOldNode); | 
 |  | 
 |     [id(DISPID_DOM_NODE_REMOVECHILD)] | 
 |     HRESULT removeChild( | 
 |         [in] IXMLDOMNode *domNode, | 
 |         [retval, out] IXMLDOMNode **oldNode); | 
 |  | 
 |     [id(DISPID_DOM_NODE_APPENDCHILD)] | 
 |     HRESULT appendChild( | 
 |         [in] IXMLDOMNode *newNode, | 
 |         [retval, out] IXMLDOMNode **outNewNode); | 
 |  | 
 |     [id(DISPID_DOM_NODE_HASCHILDNODES)] | 
 |     HRESULT hasChildNodes( | 
 |         [retval, out] VARIANT_BOOL *pbool); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODE_OWNERDOC)] | 
 |     HRESULT ownerDocument([retval, out] IXMLDOMDocument **domDocument); | 
 |  | 
 |     [id(DISPID_DOM_NODE_CLONENODE)] | 
 |     HRESULT cloneNode( | 
 |         [in] VARIANT_BOOL pbool, | 
 |         [retval, out] IXMLDOMNode **outNode); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE)] | 
 |     HRESULT nodeTypeString([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_NODE_TEXT)] | 
 |     HRESULT text([retval, out] BSTR *p); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_NODE_TEXT)] | 
 |     HRESULT text([in] BSTR p); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_NODE_SPECIFIED)] | 
 |     HRESULT specified([retval, out] VARIANT_BOOL *pbool); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_NODE_DEFINITION)] | 
 |     HRESULT definition([retval,out] IXMLDOMNode **domNode); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)] | 
 |     HRESULT nodeTypedValue([retval, out] VARIANT *var1); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)] | 
 |     HRESULT nodeTypedValue([in] VARIANT var1); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_NODE_DATATYPE)] | 
 |     HRESULT dataType([retval, out] VARIANT *var1); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_NODE_DATATYPE)] | 
 |     HRESULT dataType([in] BSTR p); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_NODE_XML)] | 
 |     HRESULT xml([retval, out] BSTR *p); | 
 |  | 
 |     [id(DISPID_XMLDOM_NODE_TRANSFORMNODE)] | 
 |     HRESULT transformNode( | 
 |         [in] IXMLDOMNode *domNode, | 
 |         [retval, out] BSTR *p); | 
 |  | 
 |     [id(DISPID_XMLDOM_NODE_SELECTNODES)] | 
 |     HRESULT selectNodes( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMNodeList **outList); | 
 |  | 
 |     [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE)] | 
 |     HRESULT selectSingleNode( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMNode **outNode); | 
 |  | 
 |     [propget,id(DISPID_XMLDOM_NODE_PARSED)] | 
 |     HRESULT parsed([retval, out] VARIANT_BOOL *pbool); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_NODE_NAMESPACE)] | 
 |     HRESULT namespaceURI([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_NODE_PREFIX)] | 
 |     HRESULT prefix([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_NODE_BASENAME)] | 
 |     HRESULT baseName([retval, out] BSTR *p); | 
 |  | 
 |     [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT)] | 
 |     HRESULT transformNodeToObject( | 
 |         [in] IXMLDOMNode *domNode, | 
 |         [in] VARIANT var1); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF81-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMDocument : IXMLDOMNode | 
 | { | 
 |     [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)] | 
 |     HRESULT doctype([retval, out] IXMLDOMDocumentType **docType); | 
 |  | 
 |     [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION)] | 
 |     HRESULT implementation([retval, out] IXMLDOMImplementation **impl); | 
 |  | 
 |     [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)] | 
 |     HRESULT documentElement([retval, out] IXMLDOMElement **domElement); | 
 |  | 
 |     [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)] | 
 |     HRESULT documentElement([in] IXMLDOMElement *domElement); | 
 |  | 
 |     [id(DISPID_DOM_DOCUMENT_CREATEELEMENT)] | 
 |     HRESULT createElement( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMElement **domElement); | 
 |  | 
 |     [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT)] | 
 |     HRESULT createDocumentFragment( | 
 |         [retval, out] IXMLDOMDocumentFragment **docFrag); | 
 |  | 
 |     [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE)] | 
 |     HRESULT createTextNode( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMText **text); | 
 |  | 
 |     [id(DISPID_DOM_DOCUMENT_CREATECOMMENT)] | 
 |     HRESULT createComment( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMComment **comment); | 
 |  | 
 |     [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION)] | 
 |     HRESULT createCDATASection( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMCDATASection **cdata); | 
 |  | 
 |     [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION)] | 
 |     HRESULT createProcessingInstruction( | 
 |         [in] BSTR target, | 
 |         [in] BSTR data, | 
 |         [retval, out] IXMLDOMProcessingInstruction **pi); | 
 |  | 
 |     [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE)] | 
 |     HRESULT createAttribute( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMAttribute **attribute); | 
 |  | 
 |     [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE)] | 
 |     HRESULT createEntityReference( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMEntityReference **entityRef); | 
 |  | 
 |     [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME)] | 
 |     HRESULT getElementsByTagName( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMNodeList **resultList); | 
 |  | 
 |     [id(DISPID_XMLDOM_DOCUMENT_CREATENODE)] | 
 |     HRESULT createNode( | 
 |         [in] VARIANT var,  | 
 |         [in] BSTR name,  | 
 |         [in] BSTR uri, | 
 |         [retval, out] IXMLDOMNode **node); | 
 |  | 
 |     [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID)] | 
 |     HRESULT nodeFromID(  | 
 |         [in] BSTR id, | 
 |         [retval, out] IXMLDOMNode **node); | 
 |  | 
 |     [id(DISPID_XMLDOM_DOCUMENT_LOAD)] | 
 |     HRESULT load( | 
 |         [in] VARIANT var1, | 
 |         [retval, out] VARIANT_BOOL *pbool); | 
 |  | 
 |     [propget, id(DISPID_READYSTATE)] | 
 |     HRESULT readyState([retval, out] long *value); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR)] | 
 |     HRESULT parseError([retval, out] IXMLDOMParseError **err); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_DOCUMENT_URL)] | 
 |     HRESULT url([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC)] | 
 |     HRESULT async([retval, out] VARIANT_BOOL *pbool); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC)] | 
 |     HRESULT async([in] VARIANT_BOOL pbool); | 
 |  | 
 |     [id(DISPID_XMLDOM_DOCUMENT_ABORT)] | 
 |     HRESULT abort(); | 
 |  | 
 |     [id(DISPID_XMLDOM_DOCUMENT_LOADXML)] | 
 |     HRESULT loadXML(  | 
 |         [in] BSTR p, | 
 |         [out, retval] VARIANT_BOOL *pbool); | 
 |  | 
 |     [id(DISPID_XMLDOM_DOCUMENT_SAVE)] | 
 |     HRESULT save(  | 
 |         [in] VARIANT var1); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)] | 
 |     HRESULT validateOnParse([retval, out] VARIANT_BOOL *pbool); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)] | 
 |     HRESULT validateOnParse([in] VARIANT_BOOL pbool); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)] | 
 |     HRESULT resolveExternals([retval,out] VARIANT_BOOL *pbool); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)] | 
 |     HRESULT resolveExternals([in] VARIANT_BOOL pbool); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)] | 
 |     HRESULT preserveWhiteSpace([retval,out] VARIANT_BOOL *pbool); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)] | 
 |     HRESULT preserveWhiteSpace([in] VARIANT_BOOL pbool); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE)] | 
 |     HRESULT onreadystatechange([in] VARIANT var1); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE)] | 
 |     HRESULT ondataavailable([in] VARIANT var1); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE)] | 
 |     HRESULT ontransformnode([in] VARIANT var1); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (373984c8-b845-449b-91e7-45ac83036ade) | 
 | ] | 
 | interface IXMLDOMSchemaCollection : IDispatch | 
 | { | 
 |     [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADD)] | 
 |     HRESULT add( | 
 |         [in] BSTR uri, | 
 |         [in] VARIANT var); | 
 |  | 
 |     [id(DISPID_XMLDOM_SCHEMACOLLECTION_GET)] | 
 |     HRESULT get( | 
 |         [in] BSTR uri, | 
 |         [retval, out] IXMLDOMNode **node); | 
 |  | 
 |     [id(DISPID_XMLDOM_SCHEMACOLLECTION_REMOVE)] | 
 |     HRESULT remove( | 
 |         [in] BSTR uri); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_SCHEMACOLLECTION_LENGTH)] | 
 |     HRESULT length( | 
 |         [retval, out] long *length); | 
 |  | 
 |     [propget, id(DISPID_VALUE)] | 
 |     HRESULT namespaceURI([in] long index, [out, retval] BSTR *len); | 
 |  | 
 |     [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADDCOLLECTION)] | 
 |     HRESULT addCollection( | 
 |         [in] IXMLDOMSchemaCollection *otherCollection); | 
 |  | 
 |     [propget, id(DISPID_NEWENUM)] | 
 |     HRESULT _newEnum([retval, out] IUnknown **ppUnk); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF95-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMDocument2 : IXMLDOMDocument | 
 | { | 
 |     [propget, id(DISPID_XMLDOM_DOCUMENT2_NAMESPACES)] | 
 |     HRESULT namespaces([retval, out] IXMLDOMSchemaCollection **schemaCollection); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)] | 
 |     HRESULT schemas([retval, out] VARIANT *var1); | 
 |  | 
 |     [propputref, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)] | 
 |     HRESULT schemas([in] VARIANT var1); | 
 |  | 
 |     [id(DISPID_XMLDOM_DOCUMENT2_VALIDATE)] | 
 |     HRESULT validate( | 
 |         [retval, out] IXMLDOMParseError **err); | 
 |  | 
 |     [id(DISPID_XMLDOM_DOCUMENT2_SETPROPERTY)] | 
 |     HRESULT setProperty( | 
 |         [in] BSTR p, | 
 |         [in] VARIANT var); | 
 |  | 
 |     [id(DISPID_XMLDOM_DOCUMENT2_GETPROPERTY)] | 
 |     HRESULT getProperty( | 
 |         [in] BSTR p, | 
 |         [retval, out] VARIANT *var); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF82-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMNodeList : IDispatch | 
 | { | 
 |     [propget, id(DISPID_VALUE)] | 
 |     HRESULT item([in] long lIndex, [retval, out] IXMLDOMNode **outNode); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODELIST_LENGTH)] | 
 |     HRESULT length([retval, out] long *lLength); | 
 |  | 
 |     [id(DISPID_XMLDOM_NODELIST_NEXTNODE)] | 
 |     HRESULT nextNode( | 
 |         [retval, out] IXMLDOMNode **outNode); | 
 |  | 
 |     [id(DISPID_XMLDOM_NODELIST_RESET)] | 
 |     HRESULT reset(); | 
 |  | 
 |     [propget, id(DISPID_NEWENUM)] | 
 |     HRESULT _newEnum([retval, out] IUnknown **ppUnk); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (AA634FC7-5888-44a7-A257-3A47150D3A0E) | 
 | ] | 
 | interface IXMLDOMSelection : IXMLDOMNodeList | 
 | { | 
 |     [propget, id(DISPID_XMLDOM_SELECTION_EXPR)] | 
 |     HRESULT expr([retval, out] BSTR *p); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_SELECTION_EXPR)] | 
 |     HRESULT expr([in] BSTR p); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_SELECTION_CONTEXT)] | 
 |     HRESULT context([retval, out] IXMLDOMNode **ppNode); | 
 |  | 
 |     [propputref, id(DISPID_XMLDOM_SELECTION_CONTEXT)] | 
 |     HRESULT context([in] IXMLDOMNode * pNode); | 
 |  | 
 |     [id(DISPID_XMLDOM_SELECTION_PEEKNODE)] | 
 |     HRESULT peekNode( | 
 |         [retval, out] IXMLDOMNode **ppNode); | 
 |  | 
 |     [id(DISPID_XMLDOM_SELECTION_MATCHES)] | 
 |     HRESULT matches( | 
 |         [in] IXMLDOMNode *pNode, | 
 |         [retval, out] IXMLDOMNode **ppNode); | 
 |  | 
 |     [id(DISPID_XMLDOM_SELECTION_REMOVENEXT)]  | 
 |     HRESULT removeNext( | 
 |         [retval, out] IXMLDOMNode **ppNode); | 
 |  | 
 |     [id(DISPID_XMLDOM_SELECTION_REMOVEALL)] | 
 |     HRESULT removeAll(); | 
 |  | 
 |     [id(DISPID_XMLDOM_SELECTION_CLONE)] | 
 |     HRESULT clone( | 
 |         [retval, out] IXMLDOMSelection **ppNode); | 
 |  | 
 |     [id(DISPID_XMLDOM_SELECTION_GETPROPERTY)] | 
 |     HRESULT getProperty( | 
 |         [in] BSTR p, | 
 |         [retval, out] VARIANT * var); | 
 |  | 
 |     [id(DISPID_XMLDOM_SELECTION_SETPROPERTY)] | 
 |     HRESULT setProperty( | 
 |         [in] BSTR p, | 
 |         [in] VARIANT var); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF83-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMNamedNodeMap : IDispatch | 
 | { | 
 |     [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)] | 
 |     HRESULT getNamedItem( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMNode **outNode); | 
 |  | 
 |     [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)] | 
 |     HRESULT setNamedItem( | 
 |         [in] IXMLDOMNode *newNode, | 
 |         [retval, out] IXMLDOMNode **outNode); | 
 |  | 
 |     [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)] | 
 |     HRESULT removeNamedItem( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMNode **outNode); | 
 |  | 
 |     [propget, id(DISPID_VALUE)] | 
 |     HRESULT item([in] long lIndex, [retval, out] IXMLDOMNode **outNode); | 
 |  | 
 |     [propget, id(DISPID_DOM_NODELIST_LENGTH)] | 
 |     HRESULT length([retval, out] long *lLength); | 
 |  | 
 |     [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)] | 
 |     HRESULT getQualifiedItem( | 
 |         [in] BSTR name, | 
 |         [in] BSTR uri, | 
 |         [retval, out] IXMLDOMNode **outNode); | 
 |  | 
 |     [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)] | 
 |     HRESULT removeQualifiedItem( | 
 |         [in] BSTR name, | 
 |         [in] BSTR uri, | 
 |         [retval, out] IXMLDOMNode **outNode); | 
 |  | 
 |     [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)] | 
 |     HRESULT nextNode( | 
 |         [retval, out] IXMLDOMNode **outNode); | 
 |  | 
 |     [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)] | 
 |     HRESULT reset(); | 
 |  | 
 |     [propget, id(DISPID_NEWENUM)] | 
 |     HRESULT _newEnum([retval, out] IUnknown **ppUnk); | 
 | } | 
 |   | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (3efaa413-272f-11d2-836f-0000f87a7782) | 
 | ] | 
 | interface IXMLDOMDocumentFragment : IXMLDOMNode  | 
 | { | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF84-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMCharacterData : IXMLDOMNode  | 
 | { | 
 |     [propget, id(DISPID_DOM_DATA_DATA)] | 
 |     HRESULT data([retval, out] BSTR *p); | 
 |  | 
 |     [propput, id(DISPID_DOM_DATA_DATA)] | 
 |     HRESULT data([in] BSTR data); | 
 |  | 
 |     [propget, id(DISPID_DOM_DATA_LENGTH)] | 
 |     HRESULT length([retval, out] long *len); | 
 |  | 
 |     [id(DISPID_DOM_DATA_SUBSTRING)] | 
 |     HRESULT substringData( | 
 |         [in] long offset, | 
 |         [in] long count, | 
 |         [retval, out] BSTR *p); | 
 |  | 
 |     [id(DISPID_DOM_DATA_APPEND)] | 
 |     HRESULT appendData( | 
 |         [in] BSTR p); | 
 |  | 
 |     [id(DISPID_DOM_DATA_INSERT)] | 
 |     HRESULT insertData( | 
 |         [in] long offset, | 
 |         [in] BSTR p); | 
 |  | 
 |     [id(DISPID_DOM_DATA_DELETE)] | 
 |     HRESULT deleteData( | 
 |         [in] long offset, | 
 |         [in] long count); | 
 |  | 
 |     [id(DISPID_DOM_DATA_REPLACE)] | 
 |     HRESULT replaceData( | 
 |         [in] long offset, | 
 |         [in] long count, | 
 |         [in] BSTR p); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF85-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMAttribute : IXMLDOMNode  | 
 | { | 
 |     [propget, id(DISPID_DOM_ATTRIBUTE_GETNAME)] | 
 |     HRESULT name([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_DOM_ATTRIBUTE_VALUE)] | 
 |     HRESULT value([retval, out] VARIANT *var1); | 
 |  | 
 |     [propput, id(DISPID_DOM_ATTRIBUTE_VALUE)] | 
 |     HRESULT value([in] VARIANT var1); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF86-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMElement : IXMLDOMNode  | 
 | { | 
 |     [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)] | 
 |     HRESULT tagName([retval, out] BSTR *p); | 
 |  | 
 |     [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)] | 
 |     HRESULT getAttribute( | 
 |         [in] BSTR p, | 
 |         [retval, out] VARIANT *var); | 
 |  | 
 |     [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)] | 
 |     HRESULT setAttribute( | 
 |         [in] BSTR p, | 
 |         [in] VARIANT var); | 
 |  | 
 |     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)] | 
 |     HRESULT removeAttribute( | 
 |         [in] BSTR p); | 
 |  | 
 |     [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)] | 
 |     HRESULT getAttributeNode( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMAttribute **attributeNode); | 
 |  | 
 |     [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)] | 
 |     HRESULT setAttributeNode( | 
 |         [in] IXMLDOMAttribute *domAttribute, | 
 |         [retval, out] IXMLDOMAttribute **attributeNode); | 
 |  | 
 |     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)] | 
 |     HRESULT removeAttributeNode( | 
 |         [in] IXMLDOMAttribute *domAttribute, | 
 |         [retval, out] IXMLDOMAttribute **attributeNode); | 
 |  | 
 |     [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)] | 
 |     HRESULT getElementsByTagName( | 
 |         [in] BSTR p, | 
 |         [retval, out] IXMLDOMNodeList **resultList); | 
 |  | 
 |     [id(DISPID_DOM_ELEMENT_NORMALIZE)] | 
 |     HRESULT normalize(); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF87-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMText : IXMLDOMCharacterData  | 
 | { | 
 |     [id(DISPID_DOM_TEXT_SPLITTEXT)] | 
 |     HRESULT splitText( | 
 |         [in] long offset, | 
 |         [retval, out] IXMLDOMText **txtNode); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF88-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMComment : IXMLDOMCharacterData  | 
 | { | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF89-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMProcessingInstruction : IXMLDOMNode  | 
 | { | 
 |     [propget, id(DISPID_DOM_PI_TARGET)] | 
 |     HRESULT target([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_DOM_PI_DATA)] | 
 |     HRESULT data([retval, out] BSTR *p); | 
 |  | 
 |     [propput, id(DISPID_DOM_PI_DATA)] | 
 |     HRESULT data([in] BSTR p); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF8A-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMCDATASection : IXMLDOMText  | 
 | { | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF8B-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMDocumentType : IXMLDOMNode  | 
 | { | 
 |     [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)] | 
 |     HRESULT name([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)] | 
 |     HRESULT entities([retval, out] IXMLDOMNamedNodeMap **entityMap); | 
 |  | 
 |     [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)] | 
 |     HRESULT notations([retval, out] IXMLDOMNamedNodeMap **notationMap); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF8C-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMNotation : IXMLDOMNode  | 
 | { | 
 |     [propget, id(DISPID_DOM_NOTATION_PUBLICID)] | 
 |     HRESULT publicId([retval, out] VARIANT *id); | 
 |  | 
 |     [propget, id(DISPID_DOM_NOTATION_SYSTEMID)] | 
 |     HRESULT systemId([retval, out] VARIANT *id); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF8D-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMEntity : IXMLDOMNode  | 
 | { | 
 |     [propget, id(DISPID_DOM_ENTITY_PUBLICID)] | 
 |     HRESULT publicId([retval, out] VARIANT *id1); | 
 |  | 
 |     [propget, id(DISPID_DOM_ENTITY_SYSTEMID)] | 
 |     HRESULT systemId([retval, out] VARIANT *id1); | 
 |  | 
 |     [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)] | 
 |     HRESULT notationName([retval, out] BSTR *p); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF8E-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMEntityReference : IXMLDOMNode  | 
 | { | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF8F-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXMLDOMImplementation : IDispatch | 
 | { | 
 |     [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)] | 
 |     HRESULT hasFeature( | 
 |         [in] BSTR feature, | 
 |         [in] BSTR version, | 
 |         [retval, out] VARIANT_BOOL *pbool); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (3efaa425-272f-11d2-836f-0000f87a7782) | 
 | ] | 
 | interface IXTLRuntime : IXMLDOMNode | 
 | { | 
 |     [id(DISPID_XTLRUNTIME_UNIQUEID)]  | 
 |     HRESULT uniqueID( | 
 |         [in]IXMLDOMNode *pNode,  | 
 |         [retval, out]long *pID); | 
 |  | 
 |     [id(DISPID_XTLRUNTIME_DEPTH)] | 
 |     HRESULT depth( | 
 |         [in] IXMLDOMNode *pNode,  | 
 |         [retval, out]long * pDepth); | 
 |  | 
 |     [id(DISPID_XTLRUNTIME_CHILDNUMBER)]  | 
 |     HRESULT childNumber( | 
 |         [in]IXMLDOMNode *pNode,  | 
 |         [retval, out] long *pNumber); | 
 |  | 
 |     [id(DISPID_XTLRUNTIME_ANCESTORCHILDNUMBER)] | 
 |     HRESULT ancestorChildNumber( | 
 |         [in]BSTR bstr,  | 
 |         [in]IXMLDOMNode *pNode,  | 
 |         [retval, out]long *pNumber); | 
 |  | 
 |     [id(DISPID_XTLRUNTIME_ABSOLUTECHILDNUMBER)] | 
 |     HRESULT absoluteChildNumber( | 
 |         [in]IXMLDOMNode *pNode,  | 
 |         [retval, out]long *pNumber); | 
 |  | 
 |     [id(DISPID_XTLRUNTIME_FORMATINDEX)] | 
 |     HRESULT formatIndex( | 
 |         [in] long lIndex,  | 
 |         [in] BSTR bstr,  | 
 |         [retval, out]BSTR *pbstr); | 
 |  | 
 |     [id(DISPID_XTLRUNTIME_FORMATNUMBER)] | 
 |     HRESULT formatNumber( | 
 |         [in] double dblNumber,  | 
 |         [in] BSTR bstr,  | 
 |         [retval, out]BSTR *pbstr); | 
 |  | 
 |     [id(DISPID_XTLRUNTIME_FORMATDATE)] | 
 |     HRESULT formatDate( | 
 |         [in] VARIANT var1,  | 
 |         [in] BSTR bstr,  | 
 |         [optional, in] VARIANT var2, | 
 |         [retval, out]BSTR *pbstr); | 
 |  | 
 |     [id(DISPID_XTLRUNTIME_FORMATTIME)] | 
 |     HRESULT formatTime( | 
 |         [in] VARIANT var1,  | 
 |         [in] BSTR bstr,  | 
 |         [optional, in] VARIANT var2, | 
 |         [retval, out]BSTR *pbstr); | 
 |  | 
 | } | 
 |  | 
 | [ | 
 |     uuid(3efaa427-272f-11d2-836f-0000f87a7782) | 
 | ] | 
 | dispinterface XMLDOMDocumentEvents  | 
 | { | 
 |     properties: | 
 |     methods: | 
 |     [id (DISPID_XMLDOMEVENT_ONDATAAVAILABLE)]   | 
 |     HRESULT ondataavailable(); | 
 |   | 
 |     [id (DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)]  | 
 |     HRESULT onreadystatechange(); | 
 | } | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF92-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXSLProcessor : IDispatch | 
 | { | 
 |     [propput, id(DISPID_XMLDOM_PROCESSOR_INPUT)] | 
 |     HRESULT input([in] VARIANT var); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_PROCESSOR_INPUT)] | 
 |     HRESULT input([retval, out] VARIANT *var); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_PROCESSOR_XSLTEMPLATE)] | 
 |     HRESULT ownerTemplate([retval, out] IXSLTemplate **ppTemplate); | 
 |  | 
 |     [id(DISPID_XMLDOM_PROCESSOR_SETSTARTMODE)] | 
 |     HRESULT setStartMode( | 
 |         [in] BSTR p,  | 
 |         [in, defaultvalue("")] BSTR uri); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODE)] | 
 |     HRESULT startMode([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODEURI)] | 
 |     HRESULT startModeURI([retval, out] BSTR *uri); | 
 |  | 
 |     [propput, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)] | 
 |     HRESULT output([in] VARIANT var); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)] | 
 |     HRESULT output([retval, out] VARIANT *var); | 
 |  | 
 |     [id(DISPID_XMLDOM_PROCESSOR_TRANSFORM)] | 
 |     HRESULT transform( | 
 |         [retval, out] VARIANT_BOOL *pbool); | 
 |  | 
 |     [id(DISPID_XMLDOM_PROCESSOR_RESET)] | 
 |     HRESULT reset(); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_PROCESSOR_READYSTATE)] | 
 |     HRESULT readyState([retval, out] long *pstate); | 
 |  | 
 |     [id(DISPID_XMLDOM_PROCESSOR_ADDPARAMETER)] | 
 |     HRESULT addParameter( | 
 |         [in] BSTR p,  | 
 |         [in] VARIANT var,  | 
 |         [in, defaultvalue("")] BSTR uri); | 
 |  | 
 |     [id(DISPID_XMLDOM_PROCESSOR_ADDOBJECT)] | 
 |     HRESULT addObject( | 
 |         [in] IDispatch* obj,  | 
 |         [in] BSTR uri); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_PROCESSOR_STYLESHEET)] | 
 |     HRESULT stylesheet([retval, out] IXMLDOMNode **node); | 
 | }  | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (2933BF93-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | interface IXSLTemplate : IDispatch | 
 | { | 
 |     [propputref, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)] | 
 |     HRESULT stylesheet([in] IXMLDOMNode *node); | 
 |  | 
 |     [propget, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)] | 
 |     HRESULT stylesheet([retval, out] IXMLDOMNode **node); | 
 |  | 
 |     [id(DISPID_XMLDOM_TEMPLATE_CREATEPROCESSOR)] | 
 |     HRESULT createProcessor( | 
 |         [retval, out] IXSLProcessor **ppProcessor); | 
 | }  | 
 |  | 
 | [ | 
 | local, | 
 | object, | 
 | uuid (3efaa426-272f-11d2-836f-0000f87a7782) | 
 | ] | 
 | interface IXMLDOMParseError : IDispatch | 
 | { | 
 |     [propget, id(DISPID_VALUE)] | 
 |     HRESULT errorCode([retval, out] long *errCode); | 
 |  | 
 |     [propget, id(DISPID_DOM_ERROR_URL)] | 
 |     HRESULT url([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_DOM_ERROR_REASON)] | 
 |     HRESULT reason([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_DOM_ERROR_SRCTEXT)] | 
 |     HRESULT srcText([retval, out] BSTR *p); | 
 |  | 
 |     [propget, id(DISPID_DOM_ERROR_LINE)] | 
 |     HRESULT line([retval, out] long *lineNo); | 
 |  | 
 |     [propget, id(DISPID_DOM_ERROR_LINEPOS)] | 
 |     HRESULT linepos([retval, out] long * linePos); | 
 |  | 
 |     [propget, id(DISPID_DOM_ERROR_FILEPOS)] | 
 |     HRESULT filepos([retval, out] long * filePos); | 
 | } | 
 |  | 
 | [ | 
 |     uuid(F6D90F11-9C73-11D3-B32E-00C04F990BB4) | 
 | ] | 
 | coclass DOMDocument | 
 | { | 
 |     [default] interface IXMLDOMDocument2; | 
 |     [default, source] dispinterface XMLDOMDocumentEvents; | 
 | } | 
 |  | 
 | [ | 
 |     uuid(f5078f1b-c551-11d3-89b9-0000f81fe221) | 
 | ] | 
 | coclass DOMDocument26 | 
 | { | 
 |     [default] interface IXMLDOMDocument2; | 
 |     [default, source] dispinterface XMLDOMDocumentEvents; | 
 | } | 
 |  | 
 | [ | 
 |     uuid(f5078f32-c551-11d3-89b9-0000f81fe221) | 
 | ] | 
 | coclass DOMDocument30 | 
 | { | 
 |     [default] interface IXMLDOMDocument2; | 
 |     [default, source] dispinterface XMLDOMDocumentEvents; | 
 | } | 
 |  | 
 |  | 
 | [ | 
 |     uuid(F6D90F12-9C73-11D3-B32E-00C04F990BB4) | 
 | ] | 
 | coclass FreeThreadedDOMDocument | 
 | { | 
 |     [default] interface IXMLDOMDocument2; | 
 |     [default, source] dispinterface XMLDOMDocumentEvents; | 
 | } | 
 |  | 
 | [ | 
 |     uuid(f5078f1c-c551-11d3-89b9-0000f81fe221) | 
 | ] | 
 | coclass FreeThreadedDOMDocument26 | 
 | { | 
 |     [default] interface IXMLDOMDocument2; | 
 |     [default, source] dispinterface XMLDOMDocumentEvents; | 
 | } | 
 |  | 
 | [ | 
 |     uuid(f5078f33-c551-11d3-89b9-0000f81fe221) | 
 | ] | 
 | coclass FreeThreadedDOMDocument30 | 
 | { | 
 |     [default] interface IXMLDOMDocument2; | 
 |     [default, source] dispinterface XMLDOMDocumentEvents; | 
 | } | 
 |  | 
 | [ | 
 |     uuid(373984c9-b845-449b-91e7-45ac83036ade) | 
 | ] | 
 | coclass XMLSchemaCache | 
 | { | 
 |     [default] interface IXMLDOMSchemaCollection; | 
 | } | 
 |  | 
 | [ | 
 |     uuid(f5078f1d-c551-11d3-89b9-0000f81fe221) | 
 | ] | 
 | coclass XMLSchemaCache26 | 
 | { | 
 |     [default] interface IXMLDOMSchemaCollection; | 
 | } | 
 |  | 
 | [ | 
 |     uuid(f5078f34-c551-11d3-89b9-0000f81fe221) | 
 | ] | 
 | coclass XMLSchemaCache30 | 
 | { | 
 |     [default] interface IXMLDOMSchemaCollection; | 
 | } | 
 |  | 
 | [ | 
 |     uuid(2933BF94-7B36-11d2-B20E-00C04F983E60) | 
 | ] | 
 | coclass XSLTemplate | 
 | { | 
 |     [default] interface IXSLTemplate; | 
 | } | 
 |  | 
 | [ | 
 |     uuid(f5078f21-c551-11d3-89b9-0000f81fe221) | 
 | ] | 
 | coclass XSLTemplate26 | 
 | { | 
 |     [default] interface IXSLTemplate; | 
 | } | 
 |  | 
 | [ | 
 |     uuid(f5078f36-c551-11d3-89b9-0000f81fe221) | 
 | ] | 
 | coclass XSLTemplate30 | 
 | { | 
 |     [default] interface IXSLTemplate; | 
 | } |