Dom.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:23k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //+-------------------------------------------------------------------------
  2. //
  3. //  Microsoft Windows
  4. //  Copyright (C) Microsoft Corporation, 1998 - 1999 .
  5. //
  6. //  File: dom.idl
  7. //
  8. //--------------------------------------------------------------------------
  9. #ifdef UNIX
  10. import "ocidl.idl";
  11. #endif
  12. cpp_quote("//+-------------------------------------------------------------------------")
  13. cpp_quote("//")
  14. cpp_quote("//  Microsoft Windows")
  15. cpp_quote("//  Copyright (C) Microsoft Corporation, 1998 - 1999.")
  16. cpp_quote("//")
  17. cpp_quote("//--------------------------------------------------------------------------")
  18. #include "domdid.h"
  19. #include <idispids.h>
  20. interface IDOMImplementation;
  21. interface IDOMNode;
  22. interface IDOMDocumentFragment;
  23. interface IDOMDocument;
  24. interface IDOMNodeList;
  25. interface IDOMNamedNodeMap;
  26. interface IDOMCharacterData;
  27. interface IDOMAttribute;
  28. interface IDOMElement;
  29. interface IDOMText;
  30. interface IDOMComment;
  31. interface IDOMProcessingInstruction;
  32. interface IDOMCDATASection;
  33. interface IDOMDocumentType;
  34. interface IDOMNotation;
  35. interface IDOMEntity;
  36. interface IDOMEntityReference;
  37. [
  38. //    local, object,
  39. //    nonextensible,
  40. //    pointer_default(unique),
  41.     odl,
  42.     oleautomation,
  43.     dual,
  44.     uuid(3efaa410-272f-11d2-836f-0000f87a7782) // IID_IDOMImplementation
  45. ]
  46. interface IDOMImplementation : IDispatch
  47. {
  48.     //  boolean                   hasFeature(in wstring feature, 
  49.     //                                   in wstring version);
  50.     [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)]
  51. //    [id(-1)]
  52.     HRESULT hasFeature(
  53.         [in] BSTR feature,
  54.         [in] BSTR version,
  55.         [out, retval] VARIANT_BOOL * hasFeature);
  56. };
  57. typedef [
  58. helpstring("Constants that define a node's type")
  59. ] enum tagDOMNodeType 
  60. {  
  61.     NODE_INVALID, // = 0
  62.     NODE_ELEMENT, // = 1
  63.     NODE_ATTRIBUTE, // = 2
  64.     NODE_TEXT, // = 3
  65.     NODE_CDATA_SECTION, // = 4
  66.     NODE_ENTITY_REFERENCE, // = 5
  67.     NODE_ENTITY, // = 6
  68.     NODE_PROCESSING_INSTRUCTION, // = 7
  69.     NODE_COMMENT, // = 8
  70.     NODE_DOCUMENT, // = 9
  71.     NODE_DOCUMENT_TYPE, // = 10
  72.     NODE_DOCUMENT_FRAGMENT, // = 11
  73.     NODE_NOTATION // = 12
  74. } DOMNodeType; 
  75. [
  76.     local, object,
  77.     uuid(3efaa411-272f-11d2-836f-0000f87a7782), // IID_INode
  78.     odl, 
  79.     dual,
  80.     oleautomation,
  81.     nonextensible,
  82.     helpstring("Core DOM node interface"),
  83.     pointer_default(unique)
  84. ]
  85. interface IDOMNode : IDispatch
  86. {
  87.     // readonly attribute  wstring              nodeName;
  88.     [propget, id(DISPID_DOM_NODE_NODENAME), 
  89.      helpstring("name of the node")]
  90.     HRESULT nodeName(
  91.         [out, retval] BSTR * name);
  92.     //          attribute  wstring              nodeValue;
  93.     [propget, id(DISPID_DOM_NODE_NODEVALUE), 
  94.      helpstring("value stored in the node")]
  95.     HRESULT nodeValue(
  96.         [out, retval] VARIANT * value);
  97.     [propput, id(DISPID_DOM_NODE_NODEVALUE), 
  98.      helpstring("value stored in the node")]
  99.     HRESULT nodeValue(
  100.         [in] VARIANT value);
  101.     // readonly attribute  unsigned short       nodeType;
  102.     [propget, id(DISPID_DOM_NODE_NODETYPE), 
  103.      helpstring("the node's type")]
  104.     HRESULT nodeType(
  105.         [out, retval] DOMNodeType * type);
  106.     // readonly attribute  Node                 parentNode;
  107.     [propget, id(DISPID_DOM_NODE_PARENTNODE), 
  108.      helpstring("parent of the node")]
  109.     HRESULT parentNode(
  110.         [out, retval] IDOMNode ** parent);
  111.     // readonly attribute  NodeList             childNodes;
  112.     [propget, id(DISPID_DOM_NODE_CHILDNODES), 
  113.      helpstring("the collection of the node's children")]
  114.     HRESULT childNodes(
  115.         [out, retval] IDOMNodeList ** childList);
  116.     // readonly attribute  Node                 firstChild;
  117.     [propget,id(DISPID_DOM_NODE_FIRSTCHILD),
  118.      helpstring("first child of the node")]
  119.     HRESULT firstChild(
  120.         [out, retval] IDOMNode ** firstChild);
  121.     // readonly attribute  Node                 lastChild;
  122.     [propget,id(DISPID_DOM_NODE_LASTCHILD),
  123.      helpstring("first child of the node")]
  124.     HRESULT lastChild(
  125.         [out, retval] IDOMNode ** lastChild);
  126.     // readonly attribute  Node                 previousSibling;
  127.     [propget,id(DISPID_DOM_NODE_PREVIOUSSIBLING),
  128.      helpstring("left sibling of the node")]
  129.     HRESULT previousSibling(
  130.         [out, retval] IDOMNode ** previousSibling);
  131.     // readonly attribute  Node                 nextSibling;
  132.     [propget,id(DISPID_DOM_NODE_NEXTSIBLING),
  133.      helpstring("right sibling of the node")]
  134.     HRESULT nextSibling(
  135.         [out, retval] IDOMNode ** nextSibling);
  136.     // readonly attribute  NamedNodeMap         attributes;
  137.     [propget, id(DISPID_DOM_NODE_ATTRIBUTES), 
  138.      helpstring("the collection of the node's attributes")]
  139.     HRESULT attributes(
  140.         [out, retval] IDOMNamedNodeMap ** atrributeMap);
  141.     // Node                      insertBefore(in Node newChild, 
  142.     //                                        in Node refChild)
  143.     //                                        raises(DOMException);
  144.     [id(DISPID_DOM_NODE_INSERTBEFORE),
  145.      helpstring("insert a child node")]
  146.     HRESULT insertBefore(
  147.         [in] IDOMNode * newChild,
  148.         [in] VARIANT refChild,
  149.         [out, retval] IDOMNode ** outNewChild);
  150.     // Node                      replaceChild(in Node newChild, 
  151.     //                                        in Node oldChild)
  152.     //                                        raises(DOMException);
  153.     [id(DISPID_DOM_NODE_REPLACECHILD),
  154.      helpstring("replace a child node")]
  155.     HRESULT replaceChild(
  156.         [in] IDOMNode * newChild,
  157.         [in] IDOMNode * oldChild,
  158.         [out, retval] IDOMNode ** outOldChild);
  159.   
  160.     // Node                      removeChild(in Node childNode)
  161.     //                                       raises(DOMException);
  162.     [id(DISPID_DOM_NODE_REMOVECHILD),
  163.      helpstring("remove a child node")]
  164.     HRESULT removeChild(
  165.         [in] IDOMNode * childNode,
  166.         [out, retval] IDOMNode ** oldChild);
  167.     // Node                      appendChild(in Node newChild);
  168.     [id(DISPID_DOM_NODE_APPENDCHILD),
  169.      helpstring("append a child node")]
  170.     HRESULT appendChild(
  171.         [in] IDOMNode * newChild,
  172.         [out, retval] IDOMNode ** outNewChild);
  173.     // boolean                   hasChildNodes();
  174.     [id(DISPID_DOM_NODE_HASCHILDNODES),
  175.      helpstring("")]
  176.     HRESULT hasChildNodes(
  177.         [out, retval] VARIANT_BOOL * hasChild);
  178.     // readonly attribute  Node                 ownerDocument;
  179.     [propget, id(DISPID_DOM_NODE_OWNERDOC), 
  180.      helpstring("document that contains the node")]
  181.     HRESULT ownerDocument(
  182.         [out, retval] IDOMDocument ** DOMDocument);
  183.     // Node                      cloneNode(in boolean deep);
  184.     [id(DISPID_DOM_NODE_CLONENODE),
  185.      helpstring("")]
  186.     HRESULT cloneNode(
  187.         [in] VARIANT_BOOL deep,
  188.         [out, retval] IDOMNode ** cloneRoot);
  189. };
  190. [
  191.     local, object,
  192.     uuid(3efaa413-272f-11d2-836f-0000f87a7782), // IID_IDOMDocumentFragment
  193.     odl, 
  194.     dual,
  195.     oleautomation,
  196.     nonextensible,
  197.     pointer_default(unique)
  198. ]
  199. interface IDOMDocumentFragment : IDOMNode 
  200. {
  201. };
  202. [
  203.     local, object,
  204.     uuid(3efaa414-272f-11d2-836f-0000f87a7782), // IID_IDOMDocument
  205.     odl, 
  206.     dual,
  207.     oleautomation,
  208.     nonextensible,
  209.     pointer_default(unique)
  210. ]
  211. interface IDOMDocument : IDOMNode 
  212. {
  213.     // readonly attribute  DocumentType         doctype;
  214.     [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE),
  215.      helpstring("node corresponding to the DOCTYPE")]
  216.     HRESULT doctype(
  217.         [out, retval] IDOMDocumentType ** documentType); 
  218.     // readonly attribute  DOMImplementation    implementation;
  219.     [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION),
  220.      helpstring("info on this DOM implementation")]
  221.     HRESULT implementation(
  222.         [out, retval] IDOMImplementation ** impl);
  223.     // attribute  Element              documentElement;
  224.     [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT),
  225.      helpstring("the root of the tree")]
  226.     HRESULT documentElement(
  227.         [out, retval] IDOMElement ** DOMElement);
  228.     [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT),
  229.      helpstring("the root of the tree")]
  230.     HRESULT documentElement(
  231.         [in] IDOMElement * DOMElement);
  232.     // Element                   createElement(in wstring tagName);
  233.     [id(DISPID_DOM_DOCUMENT_CREATEELEMENT),
  234.      helpstring("create an Element node")]
  235.     HRESULT createElement(
  236.         [in] BSTR tagName,
  237.         [out, retval] IDOMElement ** element);
  238.     // DocumentFragment          createDocumentFragment();
  239.     [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT),
  240.      helpstring("create a DocumentFragment node")]
  241.     HRESULT createDocumentFragment(
  242.         [out, retval] IDOMDocumentFragment ** docFrag );
  243.     // Text                      createTextNode(in wstring data);
  244.     [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE),
  245.      helpstring("create a text node")]
  246.     HRESULT createTextNode(
  247.         [in] BSTR data,
  248.         [out, retval] IDOMText ** text);
  249.     // Comment                   createComment(in wstring data);
  250.     [id(DISPID_DOM_DOCUMENT_CREATECOMMENT),
  251.      helpstring("create a comment node")]
  252.     HRESULT createComment(
  253.         [in] BSTR data,
  254.         [out, retval] IDOMComment ** comment);
  255.     // CDATASection              createCDATASection(in wstring data);
  256.     [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION),
  257.      helpstring("create a CDATA section node")]
  258.     HRESULT createCDATASection(
  259.         [in] BSTR data,
  260.         [out, retval] IDOMCDATASection ** cdata);
  261.     // ProcessingInstruction     createProcessingInstruction(in wstring target, 
  262.     //                                                       in wstring data);
  263.     [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION),
  264.      helpstring("create a processing instruction node")]
  265.     HRESULT createProcessingInstruction(
  266.         [in] BSTR target,
  267.         [in] BSTR data,
  268.         [out, retval] IDOMProcessingInstruction ** pi);
  269.     // Attribute                 createAttribute(in wstring name);
  270.     [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE),
  271.      helpstring("create an attribute node")]
  272.     HRESULT createAttribute(
  273.         [in] BSTR name,
  274.         [out, retval] IDOMAttribute ** attribute);
  275.     // EntityReference           createEntityReference(in wstring name);
  276.     [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE),
  277.      helpstring("create an entity reference node")]
  278.     HRESULT createEntityReference(
  279.         [in] BSTR name,
  280.         [out, retval] IDOMEntityReference ** entityRef);
  281.     // NodeList                  getElementsByTagName(in wstring tagname);
  282.     [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME),
  283.      helpstring("build a list of elements by name")]
  284.     HRESULT getElementsByTagName(
  285.         [in] BSTR tagName,
  286.         [out, retval] IDOMNodeList ** resultList);
  287. };
  288. [
  289.     local, object,
  290.     uuid(3efaa416-272f-11d2-836f-0000f87a7782), // IID_IDOMNodeList
  291.     odl, 
  292.     dual,
  293.     oleautomation,
  294.     nonextensible,
  295.     pointer_default(unique)
  296. ]
  297. interface IDOMNodeList : IDispatch
  298. {
  299.     // Node                      item(in unsigned long index);
  300.     [propget, id(DISPID_VALUE),
  301.      helpstring("collection of nodes")]
  302.     HRESULT item(
  303.         [in] long index,
  304.         [out, retval] IDOMNode ** listItem);
  305.     // readonly attribute  unsigned long        length;
  306.     [propget, id(DISPID_DOM_NODELIST_LENGTH),
  307.      helpstring("number of nodes in the collection")]
  308.     HRESULT length(
  309.         [out, retval] long * listLength);
  310. };
  311. [
  312.     local, object,
  313.     uuid(3efaa418-272f-11d2-836f-0000f87a7782), // IID_IDOMNamedNodeMap
  314.     odl, 
  315.     dual,
  316.     oleautomation,
  317.     nonextensible,
  318.     pointer_default(unique)
  319. ]
  320. interface IDOMNamedNodeMap : IDispatch
  321. {
  322.     // Node                      getNamedItem(in wstring name);
  323.     [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM),
  324.      helpstring("lookup item by name")]
  325.     HRESULT getNamedItem(
  326.         [in] BSTR name,
  327.         [out, retval] IDOMNode ** namedItem);
  328.     // void                      setNamedItem(in Node arg);
  329.     [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM),
  330.      helpstring("set item by name")]
  331.     HRESULT setNamedItem(
  332.         [in] IDOMNode * newItem,
  333.         [out, retval] IDOMNode ** nameItem);
  334.     // Node                      removeNamedItem(in wstring name);
  335.     [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM),
  336.      helpstring("remove item by name")]
  337.     HRESULT removeNamedItem(
  338.         [in] BSTR name,
  339.         [out, retval] IDOMNode ** namedItem);
  340.     // Node                      item(in unsigned long index);
  341.     [propget, id(DISPID_VALUE),
  342.      helpstring("collection of nodes")]
  343.     HRESULT item(
  344.         [in] long index,
  345.         [out, retval] IDOMNode ** listItem);
  346.     // readonly attribute  unsigned long        length;
  347.     [propget, id(DISPID_DOM_NODELIST_LENGTH),
  348.      helpstring("number of nodes in the collection")]
  349.     HRESULT length(
  350.         [out, retval] long * listLength);
  351. };
  352. [
  353.     local, object,
  354.     uuid(3efaa41a-272f-11d2-836f-0000f87a7782), // IID_IDOMCharacterData
  355.     odl, 
  356.     dual,
  357.     oleautomation,
  358.     nonextensible,
  359.     pointer_default(unique)
  360. ]
  361. interface IDOMCharacterData : IDOMNode 
  362. {
  363.     //          attribute  wstring              data;
  364.     [propget, id(DISPID_VALUE),
  365.      helpstring("value of the node")]
  366.     HRESULT data(
  367.         [out, retval] BSTR * data);
  368.     [propput, id(DISPID_VALUE),
  369.      helpstring("value of the node")]
  370.     HRESULT data(
  371.         [in] BSTR data);
  372.     
  373.     // readonly attribute  unsigned long        length;
  374.     [propget, id(DISPID_DOM_DATA_LENGTH),
  375.      helpstring("number of characters in value")]
  376.     HRESULT length(
  377.         [out, retval] long * dataLength);
  378.     // wstring                   substring(in unsigned long offset, 
  379.     //                                     in unsigned long count)
  380.     //                                     raises(DOMException);
  381.     [id(DISPID_DOM_DATA_SUBSTRING),
  382.      helpstring("retrieve substring of value")]
  383.     HRESULT substringData(
  384.         [in] long offset,
  385.         [in] long count,
  386.         [out, retval] BSTR * data);
  387.     // void                      append(in wstring arg);
  388.     [id(DISPID_DOM_DATA_APPEND),
  389.      helpstring("append string to value")]
  390.     HRESULT appendData(
  391.         [in] BSTR data);
  392.     // void                      insert(in unsigned long offset, 
  393.     //                                  in wstring arg)
  394.     //                                  raises(DOMException);
  395.     [id(DISPID_DOM_DATA_INSERT),
  396.      helpstring("insert string into value")]
  397.     HRESULT insertData(
  398.         [in] long offset,
  399.         [in] BSTR data);
  400.     // void                      delete(in unsigned long offset, 
  401.     //                                  in unsigned long count)
  402.     //                                  raises(DOMException);
  403.     [id(DISPID_DOM_DATA_DELETE),
  404.      helpstring("delete string within the value")]
  405.     HRESULT deleteData(
  406.         [in] long offset,
  407.         [in] long count);
  408.     // void                      replace(in unsigned long offset, 
  409.     //                                   in unsigned long count, 
  410.     //                                   in wstring arg)
  411.     //                                   raises(DOMException);
  412.     [id(DISPID_DOM_DATA_REPLACE),
  413.      helpstring("replace string within the value")]
  414.     HRESULT replaceData(
  415.         [in] long offset,
  416.         [in] long count,
  417.         [in] BSTR data);
  418. };
  419. [
  420.     local, object,
  421.     uuid(3efaa41b-272f-11d2-836f-0000f87a7782), // IID_IDOMAttribute
  422.     odl, 
  423.     dual,
  424.     oleautomation,
  425.     nonextensible,
  426.     pointer_default(unique)
  427. ]
  428. interface IDOMAttribute : IDOMNode 
  429. {
  430.     // wstring                   name;
  431.     [propget, id(DISPID_DOM_ATTRIBUTE_GETNAME),
  432.      helpstring("get name of the attribute")]
  433.     HRESULT name(
  434.         [out, retval] BSTR * attributeName);
  435.     //         attribute  boolean              specified;
  436.     [propget, id(DISPID_DOM_ATTRIBUTE_SPECIFIED),
  437.      helpstring("indicates whether attribute has a default value")]
  438.     HRESULT specified(
  439.         [out, retval] VARIANT_BOOL * isSpecified);
  440.     // attribute wstring                   value;
  441.     [propget, id(DISPID_VALUE),
  442.      helpstring("string value of the attribute")]
  443.     HRESULT value(
  444.         [out, retval] VARIANT * attributeValue);
  445.     [propput, id(DISPID_VALUE),
  446.      helpstring("string value of the attribute")]
  447.     HRESULT value(
  448.         [in] VARIANT attributeValue);
  449. };
  450. [
  451.     local, object,
  452.     uuid(3efaa41c-272f-11d2-836f-0000f87a7782), // IID_IDOMElement
  453.     odl, 
  454.     dual,
  455.     oleautomation,
  456.     nonextensible,
  457.     pointer_default(unique)
  458. ]
  459. interface IDOMElement : IDOMNode 
  460. {
  461.     // readonly attribute wstring                   tagName;
  462.     [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME),
  463.      helpstring("get the tagName of the element")]
  464.     HRESULT tagName(
  465.         [out, retval] BSTR * tagName);
  466.     // wstring                   getAttribute(in wstring name);
  467.     [id(DISPID_DOM_ELEMENT_GETATTRIBUTE),
  468.      helpstring("look up the string value of an attribute by name")]
  469.     HRESULT getAttribute(
  470.         [in] BSTR name,
  471.         [out, retval] VARIANT * value);
  472.     // void                      setAttribute(in string name, 
  473.     //                                        in string value);
  474.     [id(DISPID_DOM_ELEMENT_SETATTRIBUTE),
  475.      helpstring("set the string value of an attribute by name")]
  476.     HRESULT setAttribute(
  477.         [in] BSTR name,
  478.         [in] VARIANT value);
  479.     // void                      removeAttribute(in wstring name);
  480.     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE),
  481.      helpstring("remove an attribute by name")]
  482.     HRESULT removeAttribute(
  483.         [in] BSTR name);
  484.     // Attribute                 getAttributeNode(in wstring name);
  485.     [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE),
  486.      helpstring("look up the attribute node by name")]
  487.     HRESULT getAttributeNode(
  488.         [in] BSTR name,
  489.         [out, retval] IDOMAttribute ** attributeNode);
  490.     // void                      setAttributeNode(in Attribute newAttr);
  491.     [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE),
  492.      helpstring("set the specified attribute on the element")]
  493.     HRESULT setAttributeNode(
  494.         [in] IDOMAttribute * DOMAttribute,
  495.         [out, retval] IDOMAttribute ** attributeNode);
  496.     // void                      removeAttributeNode(in Attribute oldAttr);
  497.     [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE),
  498.      helpstring("remove the specified attribute")]
  499.     HRESULT removeAttributeNode(
  500.         [in] IDOMAttribute * DOMAttribute,
  501.         [out, retval] IDOMAttribute ** attributeNode);
  502.     // NodeList                  getElementsByTagName(in wstring tagname);
  503.     [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME),
  504.      helpstring("build a list of elements by name")]
  505.     HRESULT getElementsByTagName(
  506.         [in] BSTR tagName,
  507.         [out, retval] IDOMNodeList ** resultList);
  508.     // void                      normalize();
  509.     [id(DISPID_DOM_ELEMENT_NORMALIZE),
  510.      helpstring("collapse all adjacent text nodes in sub-tree")]
  511.     HRESULT normalize();
  512. };
  513. [
  514.     local, object,
  515.     uuid(9cafc72d-272e-11d2-836f-0000f87a7782), // IID_IDOMText
  516.     odl, 
  517.     dual,
  518.     oleautomation,
  519.     nonextensible,
  520.     pointer_default(unique)
  521. ]
  522. interface IDOMText : IDOMCharacterData 
  523. {
  524.     // Text                      splitText(in unsigned long offset);
  525.     [id(DISPID_DOM_TEXT_SPLITTEXT),
  526.      helpstring("split the text node into two text nodes at the position specified")]
  527.     HRESULT splitText(
  528.         [in] long offset,
  529.         [out, retval] IDOMText ** rightHandTextNode);
  530. };
  531. [
  532.     local, object,
  533.     uuid(3efaa41e-272f-11d2-836f-0000f87a7782), // IID_IDOMComment
  534.     odl, 
  535.     dual,
  536.     oleautomation,
  537.     nonextensible,
  538.     pointer_default(unique)
  539. ]
  540. interface IDOMComment : IDOMCharacterData 
  541. {
  542. };
  543. [
  544.     local, object,
  545.     uuid(3efaa41f-272f-11d2-836f-0000f87a7782), // IID_IDOMProcessingInstruction
  546.     odl, 
  547.     dual,
  548.     oleautomation,
  549.     nonextensible,
  550.     pointer_default(unique)
  551. ]
  552. interface IDOMProcessingInstruction : IDOMNode 
  553. {
  554.     //         read-only attribute  wstring              target;
  555.     [propget, id(DISPID_DOM_PI_TARGET),
  556.      helpstring("the target")]
  557.     HRESULT target(
  558.         [out, retval] BSTR * name);
  559.     //         attribute  wstring              data;
  560.     [propget, id(DISPID_VALUE),
  561.      helpstring("the data")]
  562.     HRESULT data(
  563.         [out, retval] BSTR * value);
  564.     [propput, id(DISPID_VALUE),
  565.      helpstring("the data")]
  566.     HRESULT data(
  567.         [in] BSTR value);
  568. };
  569. [
  570.     local, object,
  571.     uuid(3efaa420-272f-11d2-836f-0000f87a7782), // IID_IDOMCDATASection
  572.     odl, 
  573.     dual,
  574.     oleautomation,
  575.     nonextensible,
  576.     pointer_default(unique)
  577. ]
  578. interface IDOMCDATASection : IDOMText 
  579. {
  580. };
  581. [
  582.     local, object,
  583.     uuid(3efaa421-272f-11d2-836f-0000f87a7782), // IID_IDOMDocumentType
  584.     odl, 
  585.     dual,
  586.     oleautomation,
  587.     nonextensible,
  588.     pointer_default(unique)
  589. ]
  590. interface IDOMDocumentType : IDOMNode 
  591. {
  592.     //          readonly attribute  wstring              name;
  593.     [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME),
  594.      helpstring("name of the document type (root of the tree)")]
  595.     HRESULT name(
  596.         [out, retval] BSTR * rootName);
  597.     // readonly attribute  NamedNodeMap         entities;
  598.     [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES),
  599.      helpstring("a list of entities in the document")]
  600.     HRESULT entities(
  601.         [out, retval] IDOMNamedNodeMap ** entityMap);
  602.     // readonly attribute  NamedNodeMap         notations;
  603.     [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS),
  604.      helpstring("a list of notations in the document")]
  605.     HRESULT notations(
  606.         [out, retval] IDOMNamedNodeMap ** notationMap);
  607. };
  608. [
  609.     local, object,
  610.     uuid(3efaa422-272f-11d2-836f-0000f87a7782), // IID_IDOMNotation
  611.     odl, 
  612.     dual,
  613.     oleautomation,
  614.     nonextensible,
  615.     pointer_default(unique)
  616. ]
  617. interface IDOMNotation : IDOMNode 
  618. {
  619.     //         attribute  wstring              publicId;
  620.     [propget, id(DISPID_DOM_NOTATION_PUBLICID),
  621.      helpstring("the public ID")]
  622.     HRESULT publicId(
  623.         [out, retval] VARIANT * publicID);
  624.     //         attribute  wstring              systemId;
  625.     [propget, id(DISPID_DOM_NOTATION_SYSTEMID),
  626.      helpstring("the system ID")]
  627.     HRESULT systemId(
  628.         [out, retval] VARIANT * systemID);
  629. };
  630. [
  631.     local, object,
  632.     uuid(3efaa423-272f-11d2-836f-0000f87a7782), // IID_IDOMEntity
  633.     odl, 
  634.     dual,
  635.     oleautomation,
  636.     nonextensible,
  637.     pointer_default(unique)
  638. ]
  639. interface IDOMEntity : IDOMNode 
  640. {
  641.     //         attribute  wstring              publicId;
  642.     [propget, id(DISPID_DOM_ENTITY_PUBLICID),
  643.      helpstring("the public ID")]
  644.     HRESULT publicId(
  645.         [out, retval] VARIANT * publicID);
  646.     //         attribute  wstring              systemId;
  647.     [propget, id(DISPID_DOM_ENTITY_SYSTEMID),
  648.      helpstring("the system ID")]
  649.     HRESULT systemId(
  650.         [out, retval] VARIANT * systemID);
  651.     //         attribute  wstring              notationName;
  652.     [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME),
  653.      helpstring("the name of the notation")]
  654.     HRESULT notationName(
  655.         [out, retval] BSTR * name);
  656. };
  657. [
  658.     local, object,
  659.     uuid(3efaa424-272f-11d2-836f-0000f87a7782), // IID_IDOMEntityReference
  660.     odl, 
  661.     dual,
  662.     oleautomation,
  663.     nonextensible,
  664.     pointer_default(unique)
  665. ]
  666. interface IDOMEntityReference : IDOMNode 
  667. {
  668. };