|  | /* | 
|  | * Copyright (C) 2005 Mike McCormack | 
|  | * | 
|  | * 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 <xmldomdid.h> | 
|  | #include <idispids.h> | 
|  |  | 
|  | import "ocidl.idl"; | 
|  |  | 
|  | interface IXMLDOMImplementation; | 
|  | interface IXMLDOMNode; | 
|  | interface IXMLDOMDocumentFragment; | 
|  | interface IXMLDOMDocument; | 
|  | 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; | 
|  |  | 
|  | typedef enum tagDOMNodeType { | 
|  | NODE_INVALID, | 
|  | NODE_ELEMENT, | 
|  | NODE_ATTRIBUTE, | 
|  | NODE_TEXT, | 
|  | NODE_CDATA_SECTION, | 
|  | NODE_ENTITY_REFERENCE, | 
|  | NODE_ENTITY, | 
|  | NODE_PROCESSING_INSTRUCTION, | 
|  | NODE_COMMENT, | 
|  | NODE_DOCUMENT, | 
|  | NODE_DOCUMENT_TYPE, | 
|  | NODE_DOCUMENT_FRAGMENT, | 
|  | NODE_NOTATION | 
|  | } DOMNodeType; | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | oleautomation, | 
|  | /*nonextensible,*/ | 
|  | uuid(2933bf80-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMNode : IDispatch | 
|  | { | 
|  | [propget, id(DISPID_DOM_NODE_NODENAME)] | 
|  | HRESULT nodeName( [out,retval] BSTR *name ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODE_NODEVALUE)] | 
|  | HRESULT nodeValue( [out,retval] VARIANT *value ); | 
|  |  | 
|  | [propput, id(DISPID_DOM_NODE_NODEVALUE)] | 
|  | HRESULT nodeValue( [in] VARIANT value ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODE_NODETYPE)] | 
|  | HRESULT nodeType( [out,retval] DOMNodeType *type ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODE_PARENTNODE)] | 
|  | HRESULT parentNode( [out,retval] IXMLDOMNode **parent ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODE_CHILDNODES)] | 
|  | HRESULT childNodes( [out,retval] IXMLDOMNodeList **childList ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODE_FIRSTCHILD)] | 
|  | HRESULT firstChild( [out,retval] IXMLDOMNode **firstChild ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODE_LASTCHILD)] | 
|  | HRESULT lastChild( [out,retval] IXMLDOMNode **lastChild ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODE_PREVIOUSSIBLING)] | 
|  | HRESULT previousSibling( [out,retval] IXMLDOMNode **previousSibling ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODE_NEXTSIBLING)] | 
|  | HRESULT nextSibling( [out,retval] IXMLDOMNode **nextSibling ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODE_ATTRIBUTES)] | 
|  | HRESULT attributes( [out,retval] IXMLDOMNamedNodeMap **attributeMap ); | 
|  |  | 
|  | [id(DISPID_DOM_NODE_INSERTBEFORE)] | 
|  | HRESULT insertBefore( [in] IXMLDOMNode * newChild, | 
|  | [in] VARIANT refChild, | 
|  | [out,retval] IXMLDOMNode **outNewChild ); | 
|  |  | 
|  | [id(DISPID_DOM_NODE_REPLACECHILD)] | 
|  | HRESULT replaceChild( [in] IXMLDOMNode *newChild, | 
|  | [in] IXMLDOMNode *oldChild, | 
|  | [out,retval] IXMLDOMNode **outOldChild ); | 
|  |  | 
|  | [id(DISPID_DOM_NODE_REMOVECHILD)] | 
|  | HRESULT removeChild( [in] IXMLDOMNode *childNode, | 
|  | [out,retval] IXMLDOMNode **oldChild ); | 
|  |  | 
|  | [id(DISPID_DOM_NODE_APPENDCHILD)] | 
|  | HRESULT appendChild( [in] IXMLDOMNode *newChild, | 
|  | [out,retval] IXMLDOMNode **outNewChild ); | 
|  |  | 
|  | [id(DISPID_DOM_NODE_HASCHILDNODES)] | 
|  | HRESULT hasChildNodes( [out,retval] VARIANT_BOOL *hasChild ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODE_OWNERDOC)] | 
|  | HRESULT ownerDocument( [out,retval] IXMLDOMDocument **DOMDocument ); | 
|  |  | 
|  | [id(DISPID_DOM_NODE_CLONENODE)] | 
|  | HRESULT cloneNode( [in] VARIANT_BOOL deep, | 
|  | [out,retval] IXMLDOMNode **cloneRoot ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE)] | 
|  | HRESULT nodeTypeString( [out,retval] BSTR *nodeType ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_NODE_TEXT)] | 
|  | HRESULT text( [out,retval] BSTR *text ); | 
|  |  | 
|  | [propput, id(DISPID_XMLDOM_NODE_TEXT)] | 
|  | HRESULT text( [in] BSTR text ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_NODE_SPECIFIED)] | 
|  | HRESULT specified( [out,retval] VARIANT_BOOL *isSpecified ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_NODE_DEFINITION)] | 
|  | HRESULT definition( [out,retval] IXMLDOMNode **definitionNode ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)] | 
|  | HRESULT nodeTypedValue( [out,retval] VARIANT *typedValue ); | 
|  |  | 
|  | [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)] | 
|  | HRESULT nodeTypedValue( [in] VARIANT typedValue ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_NODE_DATATYPE)] | 
|  | HRESULT dataType( [out,retval] VARIANT *dataTypeName ); | 
|  |  | 
|  | [propput, id(DISPID_XMLDOM_NODE_DATATYPE)] | 
|  | HRESULT dataType( [in] BSTR dataTypeName ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_NODE_XML)] | 
|  | HRESULT xml( [out,retval] BSTR *xmlString ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_NODE_TRANSFORMNODE)] | 
|  | HRESULT transformNode( [in] IXMLDOMNode *styleSheet, | 
|  | [out,retval] BSTR *xmlString ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_NODE_SELECTNODES)] | 
|  | HRESULT selectNodes( [in] BSTR queryString, | 
|  | [out,retval] IXMLDOMNodeList **resultList ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE)] | 
|  | HRESULT selectSingleNode( [in] BSTR queryString, | 
|  | [out,retval] IXMLDOMNode **resultNode ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_NODE_PARSED)] | 
|  | HRESULT parsed( [out,retval] VARIANT_BOOL *isParsed ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_NODE_NAMESPACE)] | 
|  | HRESULT namespaceURI( [out,retval] BSTR *namespaceURI ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_NODE_PREFIX)] | 
|  | HRESULT prefix( [out,retval] BSTR *prefixString ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_NODE_BASENAME)] | 
|  | HRESULT baseName( [out,retval] BSTR *nameString ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT)] | 
|  | HRESULT transformNodeToObject( [in] IXMLDOMNode *stylesheet, | 
|  | [in] VARIANT outputObject ); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(2933bf81-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMDocument : IXMLDOMNode | 
|  | { | 
|  | [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)] | 
|  | HRESULT doctype( [out,retval] IXMLDOMDocumentType **documentType ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION)] | 
|  | HRESULT implementation( [out,retval] IXMLDOMImplementation **impl ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)] | 
|  | HRESULT documentElement( [out,retval] IXMLDOMElement **DOMElement ); | 
|  |  | 
|  | [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)] | 
|  | HRESULT documentElement( [in] IXMLDOMElement *DOMElement ); | 
|  |  | 
|  | [id(DISPID_DOM_DOCUMENT_CREATEELEMENT)] | 
|  | HRESULT createElement( [in] BSTR tagname, | 
|  | [out,retval] IXMLDOMElement **element ); | 
|  |  | 
|  | [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT)] | 
|  | HRESULT createDocumentFragment( [out,retval] IXMLDOMDocumentFragment **docFrag ); | 
|  |  | 
|  | [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE)] | 
|  | HRESULT createTextNode( [in] BSTR data, | 
|  | [out,retval] IXMLDOMText **text ); | 
|  |  | 
|  | [id(DISPID_DOM_DOCUMENT_CREATECOMMENT)] | 
|  | HRESULT createComment( [in] BSTR data, | 
|  | [out,retval] IXMLDOMComment **comment ); | 
|  |  | 
|  | [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION)] | 
|  | HRESULT createCDATASection( [in] BSTR data, | 
|  | [out,retval] IXMLDOMCDATASection **cdata ); | 
|  |  | 
|  | [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION)] | 
|  | HRESULT createProcessingInstruction( [in] BSTR target, | 
|  | [in] BSTR data, | 
|  | [out,retval] IXMLDOMProcessingInstruction **pi ); | 
|  |  | 
|  | [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE)] | 
|  | HRESULT createAttribute( [in] BSTR name, | 
|  | [out,retval] IXMLDOMAttribute **attribute ); | 
|  |  | 
|  | [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE)] | 
|  | HRESULT createEntityReference( [in] BSTR name, | 
|  | [out,retval] IXMLDOMEntityReference **entityRef ); | 
|  |  | 
|  | [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME)] | 
|  | HRESULT getElementsByTagName( [in] BSTR tagName, | 
|  | [out,retval] IXMLDOMNodeList **resultList ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_DOCUMENT_CREATENODE)] | 
|  | HRESULT createNode( [in] VARIANT Type, | 
|  | [in] BSTR name, | 
|  | [in] BSTR namespaceURI, | 
|  | [out,retval] IXMLDOMNode **node ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID)] | 
|  | HRESULT nodeFromID( [in] BSTR idString, | 
|  | [out,retval] IXMLDOMNode **node ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_DOCUMENT_LOAD)] | 
|  | HRESULT load( [in] VARIANT xmlSource, | 
|  | [out,retval] VARIANT_BOOL *isSuccessful ); | 
|  |  | 
|  | [propget, id(DISPID_READYSTATE)] | 
|  | HRESULT readyState( [out,retval] long *value ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR)] | 
|  | HRESULT parseError( [out,retval] IXMLDOMParseError **errorObj ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_DOCUMENT_URL)] | 
|  | HRESULT url( [out,retval] BSTR *urlString ); | 
|  |  | 
|  | /* FIXME: these is meant to be async, but widl parses that as a keyword */ | 
|  | [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC)] | 
|  | HRESULT async( [out,retval] VARIANT_BOOL *isAsync ); | 
|  |  | 
|  | [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC)] | 
|  | HRESULT async( [in] VARIANT_BOOL isAsync ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_DOCUMENT_ABORT)] | 
|  | HRESULT abort(); | 
|  |  | 
|  | [id(DISPID_XMLDOM_DOCUMENT_LOADXML)] | 
|  | HRESULT loadXML( [in] BSTR bstrXML, | 
|  | [out,retval] VARIANT_BOOL *isSuccessful ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_DOCUMENT_SAVE)] | 
|  | HRESULT save( [in] VARIANT destination ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)] | 
|  | HRESULT validateOnParse( [out,retval] VARIANT_BOOL *isValidating ); | 
|  |  | 
|  | [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)] | 
|  | HRESULT validateOnParse( [in] VARIANT_BOOL isValidating ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)] | 
|  | HRESULT resolveExternals( [out,retval] VARIANT_BOOL *isResolving ); | 
|  |  | 
|  | [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)] | 
|  | HRESULT resolveExternals( [in] VARIANT_BOOL isValidating ); | 
|  |  | 
|  | [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)] | 
|  | HRESULT preserveWhiteSpace( [out,retval] VARIANT_BOOL *isPreserving ); | 
|  |  | 
|  | [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)] | 
|  | HRESULT preserveWhiteSpace( [in] VARIANT_BOOL isPreserving ); | 
|  |  | 
|  | [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE)] | 
|  | HRESULT onreadystatechange( [in] VARIANT readystatechangeSink ); | 
|  |  | 
|  | [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE)] | 
|  | HRESULT ondataavailable( [in] VARIANT ondataavailableSink ); | 
|  |  | 
|  | [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE)] | 
|  | HRESULT ontransformnode( [in] VARIANT ontransformnodeSink ); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(2933bf82-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMNodeList : IDispatch | 
|  | { | 
|  | [propget, id(DISPID_VALUE)] | 
|  | HRESULT item( [in] long index, | 
|  | [out,retval] IXMLDOMNode **listItem ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODELIST_LENGTH)] | 
|  | HRESULT length( [out,retval] long *listLength ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_NODELIST_NEXTNODE)] | 
|  | HRESULT nextNode( [out,retval] IXMLDOMNode **nextItem ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_NODELIST_RESET)] | 
|  | HRESULT reset(); | 
|  |  | 
|  | [id(DISPID_NEWENUM)] | 
|  | HRESULT _newEnum( [out,retval] IUnknown **ppUnk ); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(2933bf83-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMNamedNodeMap : IDispatch | 
|  | { | 
|  | [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)] | 
|  | HRESULT getNamedItem( [in] BSTR name, | 
|  | [out,retval] IXMLDOMNode **namedItem ); | 
|  |  | 
|  | [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)] | 
|  | HRESULT setNamedItem( [in] IXMLDOMNode *newItem, | 
|  | [out,retval] IXMLDOMNode **namedItem ); | 
|  |  | 
|  | [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)] | 
|  | HRESULT removeNamedItem( [in] BSTR name, | 
|  | [out,retval] IXMLDOMNode **namedItem ); | 
|  |  | 
|  | [propget, id(DISPID_VALUE)] | 
|  | HRESULT item( [in] long index, | 
|  | [out,retval] IXMLDOMNode **listItem ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NODELIST_LENGTH)] | 
|  | HRESULT length( [out,retval] long *listLength ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)] | 
|  | HRESULT getQualifiedItem( [in] BSTR baseName, | 
|  | [in] BSTR namespaceURI, | 
|  | [out,retval] IXMLDOMNode **qualifiedItem ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)] | 
|  | HRESULT removeQualifiedItem( [in] BSTR baseName, | 
|  | [in] BSTR namespaceURI, | 
|  | [out,retval] IXMLDOMNode **qualifiedItem ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)] | 
|  | HRESULT nextNode( [out,retval] IXMLDOMNode **nextItem ); | 
|  |  | 
|  | [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)] | 
|  | HRESULT reset(); | 
|  |  | 
|  | [id(DISPID_NEWENUM)] | 
|  | HRESULT _newEnum( [out,retval] IUnknown **ppUnk ); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(3efaa413-272f-11d2-836f-0000f87a7782), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMDocumentFragment : IXMLDOMNode | 
|  | { | 
|  | /* empty */ | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(2933bf84-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMCharacterData : IXMLDOMNode | 
|  | { | 
|  | [propget, id(DISPID_DOM_DATA_DATA)] | 
|  | HRESULT data( [out,retval] BSTR *data ); | 
|  |  | 
|  | [propput, id(DISPID_DOM_DATA_DATA)] | 
|  | HRESULT data( [in] BSTR data ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_DATA_LENGTH)] | 
|  | HRESULT length( [out,retval] long *dataLength ); | 
|  |  | 
|  | [id(DISPID_DOM_DATA_SUBSTRING)] | 
|  | HRESULT substringData( [in] long offset, | 
|  | [in] long count, | 
|  | [out,retval] BSTR *data ); | 
|  |  | 
|  | [id(DISPID_DOM_DATA_APPEND)] | 
|  | HRESULT appendData( [in] BSTR data ); | 
|  |  | 
|  | [id(DISPID_DOM_DATA_INSERT)] | 
|  | HRESULT insertData( [in] long offset, | 
|  | [in] BSTR data ); | 
|  |  | 
|  | [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 data ); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(2933bf85-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMAttribute : IXMLDOMNode | 
|  | { | 
|  | [propget,id(DISPID_DOM_ATTRIBUTE_GETNAME)] | 
|  | HRESULT name( [out,retval] BSTR *attributeName ); | 
|  |  | 
|  | [propget,id(DISPID_DOM_ATTRIBUTE_VALUE)] | 
|  | HRESULT value( [out,retval] VARIANT *attributeValue ); | 
|  |  | 
|  | [propput,id(DISPID_DOM_ATTRIBUTE_VALUE)] | 
|  | HRESULT value( [in] VARIANT attributeValue ); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(2933bf86-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMElement : IXMLDOMNode | 
|  | { | 
|  | [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)] | 
|  | HRESULT tagName( [out,retval] BSTR *tagName ); | 
|  |  | 
|  | [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)] | 
|  | HRESULT getAttribute( [in] BSTR name, | 
|  | [out,retval] VARIANT * value ); | 
|  |  | 
|  | [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)] | 
|  | HRESULT setAttribute( [in] BSTR name, | 
|  | [in] VARIANT value ); | 
|  |  | 
|  | [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)] | 
|  | HRESULT removeAttribute( [in] BSTR name ); | 
|  |  | 
|  | [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)] | 
|  | HRESULT getAttributeNode( [in] BSTR name, | 
|  | [out, retval] IXMLDOMAttribute ** attributeNode ); | 
|  |  | 
|  | [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)] | 
|  | HRESULT setAttributeNode( [in] IXMLDOMAttribute *DOMAttribute, | 
|  | [out, retval] IXMLDOMAttribute ** attributeNode ); | 
|  |  | 
|  | [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)] | 
|  | HRESULT removeAttributeNode( [in] IXMLDOMAttribute *DOMAttribute, | 
|  | [out, retval] IXMLDOMAttribute ** attributeNode ); | 
|  |  | 
|  | [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)] | 
|  | HRESULT getElementsByTagName( [in] BSTR tagName, | 
|  | [out, retval] IXMLDOMNodeList ** resultList ); | 
|  |  | 
|  | [id(DISPID_DOM_ELEMENT_NORMALIZE)] | 
|  | HRESULT normalize(); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(2933bf87-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMText : IXMLDOMCharacterData | 
|  | { | 
|  | [id(DISPID_DOM_TEXT_SPLITTEXT)] | 
|  | HRESULT splitText( [in] long offset, | 
|  | [out,retval] IXMLDOMText **rightHandTextNode ); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(2933bf88-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMComment : IXMLDOMCharacterData | 
|  | { | 
|  | /* empty */ | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(2933bf89-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMProcessingInstruction : IXMLDOMNode | 
|  | { | 
|  | [propget, id(DISPID_DOM_PI_TARGET)] | 
|  | HRESULT target( [out, retval] BSTR *name ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_PI_DATA)] | 
|  | HRESULT data( [out, retval] BSTR *value ); | 
|  |  | 
|  | [propput, id(DISPID_DOM_PI_DATA)] | 
|  | HRESULT data( [in] BSTR value ); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(2933bf8a-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMCDATASection : IXMLDOMText | 
|  | { | 
|  | /* empty */ | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | /*nonextensible,*/ | 
|  | oleautomation, | 
|  | uuid(2933bf8b-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMDocumentType : IXMLDOMNode | 
|  | { | 
|  | [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)] | 
|  | HRESULT name( [out,retval] BSTR *rootName ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)] | 
|  | HRESULT entities( [out,retval] IXMLDOMNamedNodeMap **entityMap ); | 
|  |  | 
|  | [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)] | 
|  | HRESULT notations( [out,retval] IXMLDOMNamedNodeMap **notationMap ); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | nonextensible, | 
|  | oleautomation, | 
|  | uuid(2933bf8c-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMNotation : IXMLDOMNode | 
|  | { | 
|  | [propget, id(DISPID_DOM_NOTATION_PUBLICID)] | 
|  | HRESULT publicId([out, retval] VARIANT *publicId); | 
|  |  | 
|  | [propget, id(DISPID_DOM_NOTATION_SYSTEMID)] | 
|  | HRESULT systemId([out, retval] VARIANT *systemId); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | nonextensible, | 
|  | oleautomation, | 
|  | uuid(2933bf8d-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMEntity : IXMLDOMNode | 
|  | { | 
|  | [propget, id(DISPID_DOM_ENTITY_PUBLICID)] | 
|  | HRESULT publicId([out, retval] VARIANT *publicId); | 
|  |  | 
|  | [propget, id(DISPID_DOM_ENTITY_SYSTEMID)] | 
|  | HRESULT systemId([out, retval] VARIANT *systemId); | 
|  |  | 
|  | [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)] | 
|  | HRESULT notationName([out, retval] BSTR *name); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | nonextensible, | 
|  | oleautomation, | 
|  | uuid(2933bf8e-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMEntityReference : IXMLDOMNode | 
|  | { | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | nonextensible, | 
|  | oleautomation, | 
|  | uuid(2933bf8f-7b36-11d2-b20e-00c04f983e60), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLDOMImplementation : IDispatch | 
|  | { | 
|  | [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)] | 
|  | HRESULT hasFeature([in] BSTR feature, [in] BSTR version, [out, retval] VARIANT_BOOL *pbool); | 
|  | } | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | odl, | 
|  | dual, | 
|  | oleautomation, | 
|  | /*nonextensible,*/ | 
|  | helpstring("structure for reporting parse errors"), | 
|  | pointer_default(unique), | 
|  | 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); | 
|  | } | 
|  |  | 
|  | [ | 
|  | hidden, | 
|  | uuid(3efaa427-272f-11d2-836f-0000f87a7782) | 
|  | ] | 
|  | dispinterface XMLDOMDocumentEvents | 
|  | { | 
|  | properties: | 
|  | methods: | 
|  | [id(DISPID_XMLDOMEVENT_ONDATAAVAILABLE)] | 
|  | HRESULT ondataavailable(); | 
|  |  | 
|  | [id(DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)] | 
|  | HRESULT onreadystatechange(); | 
|  | } | 
|  |  | 
|  | [ | 
|  | uuid(2933bf90-7b36-11d2-b20e-00c04f983e60) | 
|  | ] | 
|  | coclass DOMDocument | 
|  | { | 
|  | [default] interface IXMLDOMDocument; | 
|  | [default, source] dispinterface XMLDOMDocumentEvents; | 
|  | } | 
|  |  | 
|  | [ | 
|  | uuid(2933bf91-7b36-11d2-b20e-00c04f983e60) | 
|  | ] | 
|  | coclass DOMFreeThreadedDocument | 
|  | { | 
|  | [default] interface IXMLDOMDocument; | 
|  | [default, source] dispinterface XMLDOMDocumentEvents; | 
|  | } | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(ed8c108d-4349-11d2-91a4-00c04f7969e8), | 
|  | odl, | 
|  | dual, | 
|  | oleautomation, | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IXMLHttpRequest : IDispatch | 
|  | { | 
|  | [id(1)] | 
|  | HRESULT open([in] BSTR bstrMethod, [in] BSTR bstrUrl, | 
|  | [in, optional] VARIANT varAsync, | 
|  | [in, optional] VARIANT varUser, | 
|  | [in, optional] VARIANT varPassword); | 
|  | [id(2)] | 
|  | HRESULT setRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue); | 
|  |  | 
|  | [id(3)] | 
|  | HRESULT getResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR *pbstrValue); | 
|  |  | 
|  | [id(4)] | 
|  | HRESULT getAllResponseHeaders([out, retval] BSTR *pbstrHeaders); | 
|  |  | 
|  | [id(5)] | 
|  | HRESULT send([in, optional] VARIANT varBody); | 
|  |  | 
|  | [id(6)] | 
|  | HRESULT abort(); | 
|  |  | 
|  | [propget, id(7)] | 
|  | HRESULT status([out, retval] long *plStatus); | 
|  |  | 
|  | [propget, id(8)] | 
|  | HRESULT statusText([out, retval] BSTR *bstrStatus); | 
|  |  | 
|  | [propget, id(9)] | 
|  | HRESULT responseXML([out, retval] IDispatch **ppBody); | 
|  |  | 
|  | [propget, id(10)] | 
|  | HRESULT responseText([out, retval] BSTR *pbstrBody); | 
|  |  | 
|  | [propget, id(11)] | 
|  | HRESULT responseBody([out, retval] VARIANT *pvarBody); | 
|  |  | 
|  | [propget, id(12)] | 
|  | HRESULT responseStream([out, retval] VARIANT *pvarBody); | 
|  |  | 
|  | [propget, id(13)] | 
|  | HRESULT readyState([out, retval] long *plState); | 
|  |  | 
|  | [propput, id(14)] | 
|  | HRESULT onreadystatechange([in] IDispatch *pReadyStateSink); | 
|  | } | 
|  |  | 
|  | [ | 
|  | uuid(ed8c108e-4349-11d2-91a4-00c04f7969e8) | 
|  | ] | 
|  | coclass XMLHTTPRequest | 
|  | { | 
|  | [default] interface IXMLHttpRequest; | 
|  | } |