//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1998. // // File: xmldom.idl // //-------------------------------------------------------------------------- #ifdef UNIX import "ocidl.idl"; #endif cpp_quote("//+-------------------------------------------------------------------------") cpp_quote("//") cpp_quote("// Microsoft Windows") cpp_quote("// Copyright (C) Microsoft Corporation, 1998.") cpp_quote("//") cpp_quote("//--------------------------------------------------------------------------") #include "xmldomdid.h" #include 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 [ helpstring("Constants that define a node's type") ] 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), // IID_INode odl, dual, oleautomation, nonextensible, helpstring("Core DOM node interface"), pointer_default(unique) ] interface IXMLDOMNode : IDispatch { // readonly attribute wstring nodeName; [propget, id(DISPID_DOM_NODE_NODENAME), helpstring("name of the node")] HRESULT nodeName( [out, retval] BSTR * name); // attribute wstring nodeValue; [propget, id(DISPID_DOM_NODE_NODEVALUE), helpstring("value stored in the node")] HRESULT nodeValue( [out, retval] VARIANT * value); [propput, id(DISPID_DOM_NODE_NODEVALUE), helpstring("value stored in the node")] HRESULT nodeValue( [in] VARIANT value); // readonly attribute unsigned short nodeType; [propget, id(DISPID_DOM_NODE_NODETYPE), helpstring("the node's type")] HRESULT nodeType( [out, retval] DOMNodeType * type); // readonly attribute Node parentNode; [propget, id(DISPID_DOM_NODE_PARENTNODE), helpstring("parent of the node")] HRESULT parentNode( [out, retval] IXMLDOMNode ** parent); // readonly attribute NodeList childNodes; [propget, id(DISPID_DOM_NODE_CHILDNODES), helpstring("the collection of the node's children")] HRESULT childNodes( [out, retval] IXMLDOMNodeList ** childList); // readonly attribute Node firstChild; [propget,id(DISPID_DOM_NODE_FIRSTCHILD), helpstring("first child of the node")] HRESULT firstChild( [out, retval] IXMLDOMNode ** firstChild); // readonly attribute Node lastChild; [propget,id(DISPID_DOM_NODE_LASTCHILD), helpstring("first child of the node")] HRESULT lastChild( [out, retval] IXMLDOMNode ** lastChild); // readonly attribute Node previousSibling; [propget,id(DISPID_DOM_NODE_PREVIOUSSIBLING), helpstring("left sibling of the node")] HRESULT previousSibling( [out, retval] IXMLDOMNode ** previousSibling); // readonly attribute Node nextSibling; [propget,id(DISPID_DOM_NODE_NEXTSIBLING), helpstring("right sibling of the node")] HRESULT nextSibling( [out, retval] IXMLDOMNode ** nextSibling); // readonly attribute NamedNodeMap attributes; [propget, id(DISPID_DOM_NODE_ATTRIBUTES), helpstring("the collection of the node's attributes")] HRESULT attributes( [out, retval] IXMLDOMNamedNodeMap ** attributeMap); // Node insertBefore(in Node newChild, // in Node refChild) // raises(DOMException); [id(DISPID_DOM_NODE_INSERTBEFORE), helpstring("insert a child node")] HRESULT insertBefore( [in] IXMLDOMNode * newChild, [in] VARIANT refChild, [out, retval] IXMLDOMNode ** outNewChild); // Node replaceChild(in Node newChild, // in Node oldChild) // raises(DOMException); [id(DISPID_DOM_NODE_REPLACECHILD), helpstring("replace a child node")] HRESULT replaceChild( [in] IXMLDOMNode * newChild, [in] IXMLDOMNode * oldChild, [out, retval] IXMLDOMNode ** outOldChild); // Node removeChild(in Node childNode) // raises(DOMException); [id(DISPID_DOM_NODE_REMOVECHILD), helpstring("remove a child node")] HRESULT removeChild( [in] IXMLDOMNode * childNode, [out, retval] IXMLDOMNode ** oldChild); // Node appendChild(in Node newChild); [id(DISPID_DOM_NODE_APPENDCHILD), helpstring("append a child node")] HRESULT appendChild( [in] IXMLDOMNode * newChild, [out, retval] IXMLDOMNode ** outNewChild); // boolean hasChildNodes(); [id(DISPID_DOM_NODE_HASCHILDNODES), helpstring("")] HRESULT hasChildNodes( [out, retval] VARIANT_BOOL * hasChild); // readonly attribute Node ownerDocument; [propget, id(DISPID_DOM_NODE_OWNERDOC), helpstring("document that contains the node")] HRESULT ownerDocument( [out, retval] IXMLDOMDocument ** DOMDocument); // Node cloneNode(in boolean deep); [id(DISPID_DOM_NODE_CLONENODE), helpstring("")] HRESULT cloneNode( [in] VARIANT_BOOL deep, [out, retval] IXMLDOMNode ** cloneRoot); [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE), helpstring("the type of node in string form")] HRESULT nodeTypeString( [retval, out] BSTR * nodeType); [propget, id(DISPID_XMLDOM_NODE_TEXT), helpstring("text content of the node and subtree")] HRESULT text( [retval, out] BSTR * text); [propput, id(DISPID_XMLDOM_NODE_TEXT), helpstring("text content of the node and subtree")] HRESULT text( [in] BSTR text); [propget, id(DISPID_XMLDOM_NODE_SPECIFIED), helpstring("indicates whether node is a default value")] HRESULT specified( [out, retval] VARIANT_BOOL * isSpecified); // DTD Navigation. [propget, id(DISPID_XMLDOM_NODE_DEFINITION), helpstring("pointer to the definition of the node in the DTD or schema")] HRESULT definition( [retval,out] IXMLDOMNode ** definitionNode); [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE), helpstring("get the strongly typed value of the node")] HRESULT nodeTypedValue( [retval, out] VARIANT * typedValue); [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE), helpstring("get the strongly typed value of the node")] HRESULT nodeTypedValue( [in] VARIANT typedValue); [propget, id(DISPID_XMLDOM_NODE_DATATYPE), helpstring("the data type of the node")] HRESULT dataType( [retval, out] VARIANT * dataTypeName); // BSTR or VT_NULL [propput, id(DISPID_XMLDOM_NODE_DATATYPE), helpstring("the data type of the node")] HRESULT dataType( [in] BSTR dataTypeName); [propget, id(DISPID_XMLDOM_NODE_XML), helpstring("return the XML source for the node and each of its descendants")] HRESULT xml( [retval, out] BSTR * xmlString); [id(DISPID_XMLDOM_NODE_TRANSFORMNODE), helpstring("apply the stylesheet to the subtree")] HRESULT transformNode( [in] IXMLDOMNode * stylesheet, [retval, out] BSTR * xmlString); [id(DISPID_XMLDOM_NODE_SELECTNODES), helpstring("execute query on the subtree")] HRESULT selectNodes( [in] BSTR queryString, [retval, out] IXMLDOMNodeList** resultList); [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE), helpstring("execute query on the subtree")] HRESULT selectSingleNode( [in] BSTR queryString, [retval, out] IXMLDOMNode** resultNode); [propget,id(DISPID_XMLDOM_NODE_PARSED), helpstring("has sub-tree been completely parsed")] HRESULT parsed( [retval, out] VARIANT_BOOL * isParsed); [propget, id(DISPID_XMLDOM_NODE_NAMESPACE), helpstring("the URI for the namespace applying to the node")] HRESULT namespaceURI( [retval, out] BSTR * namespaceURI); [propget, id(DISPID_XMLDOM_NODE_PREFIX), helpstring("the prefix for the namespace applying to the node")] HRESULT prefix( [retval, out] BSTR * prefixString); [propget, id(DISPID_XMLDOM_NODE_BASENAME), helpstring("the base name of the node (nodename with the prefix stripped off)")] HRESULT baseName( [retval, out] BSTR * nameString); [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT), helpstring("apply the stylesheet to the subtree, returning the result through a document or a stream")] HRESULT transformNodeToObject( [in] IXMLDOMNode * stylesheet, [in] VARIANT outputObject); }; [ local, object, uuid(2933BF81-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMDocument odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMDocument : IXMLDOMNode { // readonly attribute DocumentType doctype; [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE), helpstring("node corresponding to the DOCTYPE")] HRESULT doctype( [out, retval] IXMLDOMDocumentType ** documentType); // readonly attribute DOMImplementation implementation; [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION), helpstring("info on this DOM implementation")] HRESULT implementation( [out, retval] IXMLDOMImplementation ** impl); // attribute Element documentElement; [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT), helpstring("the root of the tree")] HRESULT documentElement( [out, retval] IXMLDOMElement ** DOMElement); [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT), helpstring("the root of the tree")] HRESULT documentElement( [in] IXMLDOMElement * DOMElement); // Element createElement(in wstring tagName); [id(DISPID_DOM_DOCUMENT_CREATEELEMENT), helpstring("create an Element node")] HRESULT createElement( [in] BSTR tagName, [out, retval] IXMLDOMElement ** element); // DocumentFragment createDocumentFragment(); [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT), helpstring("create a DocumentFragment node")] HRESULT createDocumentFragment( [out, retval] IXMLDOMDocumentFragment ** docFrag ); // Text createTextNode(in wstring data); [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE), helpstring("create a text node")] HRESULT createTextNode( [in] BSTR data, [out, retval] IXMLDOMText ** text); // Comment createComment(in wstring data); [id(DISPID_DOM_DOCUMENT_CREATECOMMENT), helpstring("create a comment node")] HRESULT createComment( [in] BSTR data, [out, retval] IXMLDOMComment ** comment); // CDATASection createCDATASection(in wstring data); [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION), helpstring("create a CDATA section node")] HRESULT createCDATASection( [in] BSTR data, [out, retval] IXMLDOMCDATASection ** cdata); // ProcessingInstruction createProcessingInstruction(in wstring target, // in wstring data); [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION), helpstring("create a processing instruction node")] HRESULT createProcessingInstruction( [in] BSTR target, [in] BSTR data, [out, retval] IXMLDOMProcessingInstruction ** pi); // Attribute createAttribute(in wstring name); [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE), helpstring("create an attribute node")] HRESULT createAttribute( [in] BSTR name, [out, retval] IXMLDOMAttribute ** attribute); // EntityReference createEntityReference(in wstring name); [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE), helpstring("create an entity reference node")] HRESULT createEntityReference( [in] BSTR name, [out, retval] IXMLDOMEntityReference ** entityRef); // NodeList getElementsByTagName(in wstring tagname); [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME), helpstring("build a list of elements by name")] HRESULT getElementsByTagName( [in] BSTR tagName, [out, retval] IXMLDOMNodeList ** resultList); [id(DISPID_XMLDOM_DOCUMENT_CREATENODE), helpstring("create a node of the specified node type and name")] HRESULT createNode( [in] VARIANT Type, [in] BSTR name, [in] BSTR namespaceURI, [retval, out] IXMLDOMNode ** node); [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID), helpstring("retrieve node from it's ID")] HRESULT nodeFromID( [in] BSTR idString, [retval, out] IXMLDOMNode ** node); [id(DISPID_XMLDOM_DOCUMENT_LOAD), helpstring("load document from the specified XML source")] HRESULT load( [in] VARIANT xmlSource, [out, retval] VARIANT_BOOL * isSuccessful); [propget, id(DISPID_READYSTATE), helpstring("get the state of the XML document")] HRESULT readyState( [retval, out] long * value); [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR), helpstring("get the last parser error")] HRESULT parseError( [retval, out] IXMLDOMParseError ** errorObj); [propget, id(DISPID_XMLDOM_DOCUMENT_URL), helpstring("get the URL for the loaded XML document")] HRESULT url( [retval, out] BSTR * urlString); [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC), helpstring("flag for asynchronous download")] HRESULT async( [retval, out] VARIANT_BOOL * isAsync); [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC), helpstring("flag for asynchronous download")] HRESULT async( [in] VARIANT_BOOL isAsync); [id(DISPID_XMLDOM_DOCUMENT_ABORT), helpstring("abort an asynchronous download")] HRESULT abort(); [id(DISPID_XMLDOM_DOCUMENT_LOADXML), helpstring("load the document from a string")] HRESULT loadXML( [in] BSTR bstrXML, [out, retval] VARIANT_BOOL * isSuccessful); [id(DISPID_XMLDOM_DOCUMENT_SAVE), helpstring("save the document to a specified desination")] HRESULT save( [in] VARIANT desination); [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE), helpstring("indicates whether the parser performs validation")] HRESULT validateOnParse( [retval, out] VARIANT_BOOL * isValidating); [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE), helpstring("indicates whether the parser performs validation")] HRESULT validateOnParse( [in] VARIANT_BOOL isValidating); [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE), helpstring("indicates whether the parser resolves references to external DTD/Entities/Schema")] HRESULT resolveExternals( [retval,out] VARIANT_BOOL * isResolving); [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE), helpstring("indicates whether the parser resolves references to external DTD/Entities/Schema")] HRESULT resolveExternals( [in] VARIANT_BOOL isResolving); [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE), helpstring("indicates whether the parser preserves whitespace")] HRESULT preserveWhiteSpace( [retval,out] VARIANT_BOOL * isPreserving); [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE), helpstring("indicates whether the parser preserves whitespace")] HRESULT preserveWhiteSpace( [in] VARIANT_BOOL isPreserving); [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE), helpstring("register a readystatechange event handler")] HRESULT onreadystatechange( [in] VARIANT readystatechangeSink); [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE), helpstring("register an ondataavailable event handler")] HRESULT ondataavailable( [in] VARIANT ondataavailableSink); [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE), helpstring("register an ontransformnode event handler")] HRESULT ontransformnode( [in] VARIANT ontransformnodeSink); }; [ local, object, uuid(2933BF82-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMNodeList odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMNodeList : IDispatch { // Node item(in unsigned long index); [propget, id(DISPID_VALUE), helpstring("collection of nodes")] HRESULT item( [in] long index, [out, retval] IXMLDOMNode ** listItem); // readonly attribute unsigned long length; [propget, id(DISPID_DOM_NODELIST_LENGTH), helpstring("number of nodes in the collection")] HRESULT length( [out, retval] long * listLength); [id(DISPID_XMLDOM_NODELIST_NEXTNODE), helpstring("get next node from iterator")] HRESULT nextNode( [out, retval] IXMLDOMNode ** nextItem); [id(DISPID_XMLDOM_NODELIST_RESET), helpstring("reset the position of iterator")] HRESULT reset(); [propget, restricted, hidden, id(DISPID_NEWENUM)] HRESULT _newEnum( [retval, out] IUnknown ** ppUnk); }; [ local, object, uuid(2933BF83-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMNamedNodeMap odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMNamedNodeMap : IDispatch { // Node getNamedItem(in wstring name); [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM), helpstring("lookup item by name")] HRESULT getNamedItem( [in] BSTR name, [out, retval] IXMLDOMNode ** namedItem); // void setNamedItem(in Node arg); [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM), helpstring("set item by name")] HRESULT setNamedItem( [in] IXMLDOMNode * newItem, [out, retval] IXMLDOMNode ** nameItem); // Node removeNamedItem(in wstring name); [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM), helpstring("remove item by name")] HRESULT removeNamedItem( [in] BSTR name, [out, retval] IXMLDOMNode ** namedItem); // Node item(in unsigned long index); [propget, id(DISPID_VALUE), helpstring("collection of nodes")] HRESULT item( [in] long index, [out, retval] IXMLDOMNode ** listItem); // readonly attribute unsigned long length; [propget, id(DISPID_DOM_NODELIST_LENGTH), helpstring("number of nodes in the collection")] HRESULT length( [out, retval] long * listLength); // Node getQualifiedItem(in wstring name,in Node namespace); [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM), helpstring("lookup the item by name and namespace")] HRESULT getQualifiedItem( [in] BSTR baseName, [in] BSTR namespaceURI, [out, retval] IXMLDOMNode ** qualifiedItem); // Node removeQualifiedItem(in wstring name,in Node namespace); [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM), helpstring("remove the item by name and namespace")] HRESULT removeQualifiedItem( [in] BSTR baseName, [in] BSTR namespaceURI, [out, retval] IXMLDOMNode ** qualifiedItem); [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE), helpstring("get next node from iterator")] HRESULT nextNode( [out, retval] IXMLDOMNode ** nextItem); [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET), helpstring("reset the position of iterator")] HRESULT reset(); [propget, restricted, hidden, id(DISPID_NEWENUM)] HRESULT _newEnum( [retval, out] IUnknown ** ppUnk); }; [ local, object, uuid(3efaa413-272f-11d2-836f-0000f87a7782), // IID_IXMLDOMDocumentFragment odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMDocumentFragment : IXMLDOMNode { }; [ local, object, uuid(2933BF84-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMCharacterData odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMCharacterData : IXMLDOMNode { // attribute wstring data; [propget, id(DISPID_DOM_DATA_DATA), helpstring("value of the node")] HRESULT data( [out, retval] BSTR * data); [propput, id(DISPID_DOM_DATA_DATA), helpstring("value of the node")] HRESULT data( [in] BSTR data); // readonly attribute unsigned long length; [propget, id(DISPID_DOM_DATA_LENGTH), helpstring("number of characters in value")] HRESULT length( [out, retval] long * dataLength); // wstring substring(in unsigned long offset, // in unsigned long count) // raises(DOMException); [id(DISPID_DOM_DATA_SUBSTRING), helpstring("retrieve substring of value")] HRESULT substringData( [in] long offset, [in] long count, [out, retval] BSTR * data); // void append(in wstring arg); [id(DISPID_DOM_DATA_APPEND), helpstring("append string to value")] HRESULT appendData( [in] BSTR data); // void insert(in unsigned long offset, // in wstring arg) // raises(DOMException); [id(DISPID_DOM_DATA_INSERT), helpstring("insert string into value")] HRESULT insertData( [in] long offset, [in] BSTR data); // void delete(in unsigned long offset, // in unsigned long count) // raises(DOMException); [id(DISPID_DOM_DATA_DELETE), helpstring("delete string within the value")] HRESULT deleteData( [in] long offset, [in] long count); // void replace(in unsigned long offset, // in unsigned long count, // in wstring arg) // raises(DOMException); [id(DISPID_DOM_DATA_REPLACE), helpstring("replace string within the value")] HRESULT replaceData( [in] long offset, [in] long count, [in] BSTR data); }; [ local, object, uuid(2933BF85-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMAttribute odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMAttribute : IXMLDOMNode { // wstring name; [propget, id(DISPID_DOM_ATTRIBUTE_GETNAME), helpstring("get name of the attribute")] HRESULT name( [out, retval] BSTR * attributeName); // attribute boolean specified; // ! This is defined as an extended property on IXMLDOMNode // attribute wstring value; [propget, id(DISPID_DOM_ATTRIBUTE_VALUE), helpstring("string value of the attribute")] HRESULT value( [out, retval] VARIANT * attributeValue); [propput, id(DISPID_DOM_ATTRIBUTE_VALUE), helpstring("string value of the attribute")] HRESULT value( [in] VARIANT attributeValue); }; [ local, object, uuid(2933BF86-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMElement odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMElement : IXMLDOMNode { // readonly attribute wstring tagName; [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME), helpstring("get the tagName of the element")] HRESULT tagName( [out, retval] BSTR * tagName); // wstring getAttribute(in wstring name); [id(DISPID_DOM_ELEMENT_GETATTRIBUTE), helpstring("look up the string value of an attribute by name")] HRESULT getAttribute( [in] BSTR name, [out, retval] VARIANT * value); // void setAttribute(in string name, // in string value); [id(DISPID_DOM_ELEMENT_SETATTRIBUTE), helpstring("set the string value of an attribute by name")] HRESULT setAttribute( [in] BSTR name, [in] VARIANT value); // void removeAttribute(in wstring name); [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE), helpstring("remove an attribute by name")] HRESULT removeAttribute( [in] BSTR name); // Attribute getAttributeNode(in wstring name); [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE), helpstring("look up the attribute node by name")] HRESULT getAttributeNode( [in] BSTR name, [out, retval] IXMLDOMAttribute ** attributeNode); // void setAttributeNode(in Attribute newAttr); [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE), helpstring("set the specified attribute on the element")] HRESULT setAttributeNode( [in] IXMLDOMAttribute * DOMAttribute, [out, retval] IXMLDOMAttribute ** attributeNode); // void removeAttributeNode(in Attribute oldAttr); [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE), helpstring("remove the specified attribute")] HRESULT removeAttributeNode( [in] IXMLDOMAttribute * DOMAttribute, [out, retval] IXMLDOMAttribute ** attributeNode); // NodeList getElementsByTagName(in wstring tagname); [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME), helpstring("build a list of elements by name")] HRESULT getElementsByTagName( [in] BSTR tagName, [out, retval] IXMLDOMNodeList ** resultList); // void normalize(); [id(DISPID_DOM_ELEMENT_NORMALIZE), helpstring("collapse all adjacent text nodes in sub-tree")] HRESULT normalize(); }; [ local, object, uuid(2933BF87-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMText odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMText : IXMLDOMCharacterData { // Text splitText(in unsigned long offset); [id(DISPID_DOM_TEXT_SPLITTEXT), helpstring("split the text node into two text nodes at the position specified")] HRESULT splitText( [in] long offset, [out, retval] IXMLDOMText ** rightHandTextNode); }; [ local, object, uuid(2933BF88-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMComment odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMComment : IXMLDOMCharacterData { }; [ local, object, uuid(2933BF89-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMProcessingInstruction odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMProcessingInstruction : IXMLDOMNode { // read-only attribute wstring target; [propget, id(DISPID_DOM_PI_TARGET), helpstring("the target")] HRESULT target( [out, retval] BSTR * name); // attribute wstring data; [propget, id(DISPID_DOM_PI_DATA), helpstring("the data")] HRESULT data( [out, retval] BSTR * value); [propput, id(DISPID_DOM_PI_DATA), helpstring("the data")] HRESULT data( [in] BSTR value); }; [ local, object, uuid(2933BF8A-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMCDATASection odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMCDATASection : IXMLDOMText { }; [ local, object, uuid(2933BF8B-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMDocumentType odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMDocumentType : IXMLDOMNode { // readonly attribute wstring name; [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME), helpstring("name of the document type (root of the tree)")] HRESULT name( [out, retval] BSTR * rootName); // readonly attribute NamedNodeMap entities; [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES), helpstring("a list of entities in the document")] HRESULT entities( [out, retval] IXMLDOMNamedNodeMap ** entityMap); // readonly attribute NamedNodeMap notations; [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS), helpstring("a list of notations in the document")] HRESULT notations( [out, retval] IXMLDOMNamedNodeMap ** notationMap); }; [ local, object, uuid(2933BF8C-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMNotation odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMNotation : IXMLDOMNode { // attribute wstring publicId; [propget, id(DISPID_DOM_NOTATION_PUBLICID), helpstring("the public ID")] HRESULT publicId( [out, retval] VARIANT * publicID); // attribute wstring systemId; [propget, id(DISPID_DOM_NOTATION_SYSTEMID), helpstring("the system ID")] HRESULT systemId( [out, retval] VARIANT * systemID); }; [ local, object, uuid(2933BF8D-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMEntity odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMEntity : IXMLDOMNode { // attribute wstring publicId; [propget, id(DISPID_DOM_ENTITY_PUBLICID), helpstring("the public ID")] HRESULT publicId( [out, retval] VARIANT * publicID); // attribute wstring systemId; [propget, id(DISPID_DOM_ENTITY_SYSTEMID), helpstring("the system ID")] HRESULT systemId( [out, retval] VARIANT * systemID); // attribute wstring notationName; [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME), helpstring("the name of the notation")] HRESULT notationName( [out, retval] BSTR * name); }; [ local, object, uuid(2933BF8E-7B36-11d2-B20E-00C04F983E60), // IID_IXMLDOMEntityReference odl, dual, oleautomation, nonextensible, pointer_default(unique) ] interface IXMLDOMEntityReference : IXMLDOMNode { }; [ local, object, nonextensible, pointer_default(unique), odl, oleautomation, dual, uuid(2933BF8F-7B36-11d2-B20E-00C04F983E60) // IID_IXMLDOMImplementation ] interface IXMLDOMImplementation : IDispatch { // boolean hasFeature(in wstring feature, // in wstring version); [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)] HRESULT hasFeature( [in] BSTR feature, [in] BSTR version, [out, retval] VARIANT_BOOL * hasFeature); }; [ local, object, uuid(3efaa425-272f-11d2-836f-0000f87a7782), // IID_IXTLRuntime odl, dual, oleautomation, nonextensible, helpstring("XTL runtime object"), pointer_default(unique) ] interface IXTLRuntime : IXMLDOMNode { [id(DISPID_XTLRUNTIME_UNIQUEID), helpstring("")] HRESULT uniqueID( [in]IXMLDOMNode *pNode, [out,retval]long *pID); [id(DISPID_XTLRUNTIME_DEPTH), helpstring("")] HRESULT depth( [in] IXMLDOMNode *pNode, [out,retval]long * pDepth); [id(DISPID_XTLRUNTIME_CHILDNUMBER), helpstring("")] HRESULT childNumber( [in]IXMLDOMNode *pNode, [out,retval] long *pNumber); [id(DISPID_XTLRUNTIME_ANCESTORCHILDNUMBER), helpstring("")] HRESULT ancestorChildNumber( [in]BSTR bstrNodeName, [in]IXMLDOMNode *pNode, [out,retval]long *pNumber); [id(DISPID_XTLRUNTIME_ABSOLUTECHILDNUMBER), helpstring("")] HRESULT absoluteChildNumber( [in]IXMLDOMNode *pNode, [out,retval]long *pNumber); [id(DISPID_XTLRUNTIME_FORMATINDEX), helpstring("")] HRESULT formatIndex( [in] long lIndex, [in] BSTR bstrFormat, [out, retval]BSTR *pbstrFormattedString); [id(DISPID_XTLRUNTIME_FORMATNUMBER), helpstring("")] HRESULT formatNumber( [in] double dblNumber, [in] BSTR bstrFormat, [out, retval]BSTR *pbstrFormattedString); [id(DISPID_XTLRUNTIME_FORMATDATE), helpstring("")] HRESULT formatDate( [in] VARIANT varDate, [in] BSTR bstrFormat, [in,optional] VARIANT varDestLocale, [out, retval]BSTR *pbstrFormattedString); [id(DISPID_XTLRUNTIME_FORMATTIME), helpstring("")] HRESULT formatTime( [in] VARIANT varTime, [in] BSTR bstrFormat, [in,optional] VARIANT varDestLocale, [out, retval]BSTR *pbstrFormattedString); }; [ local, object, uuid(3efaa426-272f-11d2-836f-0000f87a7782), // IID_IXMLDOMParseError odl, dual, oleautomation, nonextensible, helpstring("structure for reporting parser errors"), pointer_default(unique) ] interface IXMLDOMParseError : IDispatch { [propget, id(DISPID_VALUE), helpstring("the error code")] HRESULT errorCode( [retval, out] long * errorCode); [propget, id(DISPID_DOM_ERROR_URL), helpstring("the URL of the XML document containing the error")] HRESULT url( [retval, out] BSTR * urlString); [propget, id(DISPID_DOM_ERROR_REASON), helpstring("the cause of the error")] HRESULT reason( [retval, out] BSTR * reasonString); [propget, id(DISPID_DOM_ERROR_SRCTEXT), helpstring("the data where the error occurred")] HRESULT srcText( [retval, out] BSTR * sourceString); [propget, id(DISPID_DOM_ERROR_LINE), helpstring("the line number in the XML document where the error occurred")] HRESULT line( [retval, out] long * lineNumber); [propget, id(DISPID_DOM_ERROR_LINEPOS), helpstring("the character position in the line containing the error")] HRESULT linepos( [retval, out] long * linePosition); [propget, id(DISPID_DOM_ERROR_FILEPOS), helpstring("the absolute file position in the XML document containing the error")] HRESULT filepos( [retval, out] long * filePosition); }; // DOM event interface [ hidden, uuid(3efaa427-272f-11d2-836f-0000f87a7782), // IID_IXMLDOMEvent ] dispinterface XMLDOMDocumentEvents { properties: methods: [id (DISPID_XMLDOMEVENT_ONDATAAVAILABLE)] HRESULT ondataavailable(void); [id (DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)] HRESULT onreadystatechange(void); }; // DOM Document rental-model co-Class [ uuid(2933BF90-7B36-11d2-B20E-00C04F983E60), // CLSID_DOMDocument helpstring("W3C-DOM XML Document") ] coclass DOMDocument { [default] interface IXMLDOMDocument; [default, source] dispinterface XMLDOMDocumentEvents; }; // DOM Document free-threaded co-Class [ uuid(2933BF91-7B36-11d2-B20E-00C04F983E60), // CLSID_DOMDocument helpstring("W3C-DOM XML Document (Apartment)") ] coclass DOMFreeThreadedDocument { [default] interface IXMLDOMDocument; [default, source] dispinterface XMLDOMDocumentEvents; }; [ object, uuid(ED8C108D-4349-11D2-91A4-00C04F7969E8), odl, dual, oleautomation, helpstring("IXMLHttpRequest Interface"), pointer_default(unique) ] interface IXMLHttpRequest : IDispatch { [id(1), helpstring("Open HTTP connection")] HRESULT open([in] BSTR bstrMethod, [in] BSTR bstrUrl, [in,optional] VARIANT varAsync, [in,optional] VARIANT bstrUser, [in,optional] VARIANT bstrPassword); [id(2), helpstring("Add HTTP request header")] HRESULT setRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue); [id(3), helpstring("Get HTTP response header")] HRESULT getResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR * pbstrValue); [id(4), helpstring("Get all HTTP response headers")] HRESULT getAllResponseHeaders([out, retval] BSTR * pbstrHeaders); [id(5), helpstring("Send HTTP request")] HRESULT send([in, optional] VARIANT varBody); [id(6), helpstring("Abort HTTP request")] HRESULT abort(); [propget, id(7), helpstring("Get HTTP status code")] HRESULT status([out, retval] long * plStatus); [propget, id(8), helpstring("Get HTTP status text")] HRESULT statusText([out, retval] BSTR * pbstrStatus); [propget, id(9), helpstring("Get response body")] HRESULT responseXML([out, retval] IDispatch ** ppBody); [propget, id(10), helpstring("Get response body")] HRESULT responseText([out, retval] BSTR * pbstrBody); [propget, id(11), helpstring("Get response body")] HRESULT responseBody([out, retval] VARIANT * pvarBody); [propget, id(12), helpstring("Get response body")] HRESULT responseStream([out, retval] VARIANT * pvarBody); [propget, id(13), helpstring("Get ready state")] HRESULT readyState([out, retval] long * plState); [propput, id(14), helpstring("Register a complete event handler")] HRESULT onreadystatechange([in] IDispatch * pReadyStateSink); }; // XML HTTP Request Class [ uuid(ED8C108E-4349-11D2-91A4-00C04F7969E8), // CLSID_XMLHTTPRequest helpstring("XML HTTP Request class.") ] coclass XMLHTTPRequest { [default] interface IXMLHttpRequest; };