Windows-Server-2003/inetcore/published/inc/xmldom.idl

1208 lines
38 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// 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 <idispids.h>
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;
};