Dom.Idl 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765
  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. // Node removeChild(in Node childNode)
  160. // raises(DOMException);
  161. [id(DISPID_DOM_NODE_REMOVECHILD),
  162. helpstring("remove a child node")]
  163. HRESULT removeChild(
  164. [in] IDOMNode * childNode,
  165. [out, retval] IDOMNode ** oldChild);
  166. // Node appendChild(in Node newChild);
  167. [id(DISPID_DOM_NODE_APPENDCHILD),
  168. helpstring("append a child node")]
  169. HRESULT appendChild(
  170. [in] IDOMNode * newChild,
  171. [out, retval] IDOMNode ** outNewChild);
  172. // boolean hasChildNodes();
  173. [id(DISPID_DOM_NODE_HASCHILDNODES),
  174. helpstring("")]
  175. HRESULT hasChildNodes(
  176. [out, retval] VARIANT_BOOL * hasChild);
  177. // readonly attribute Node ownerDocument;
  178. [propget, id(DISPID_DOM_NODE_OWNERDOC),
  179. helpstring("document that contains the node")]
  180. HRESULT ownerDocument(
  181. [out, retval] IDOMDocument ** DOMDocument);
  182. // Node cloneNode(in boolean deep);
  183. [id(DISPID_DOM_NODE_CLONENODE),
  184. helpstring("")]
  185. HRESULT cloneNode(
  186. [in] VARIANT_BOOL deep,
  187. [out, retval] IDOMNode ** cloneRoot);
  188. };
  189. [
  190. local, object,
  191. uuid(3efaa413-272f-11d2-836f-0000f87a7782), // IID_IDOMDocumentFragment
  192. odl,
  193. dual,
  194. oleautomation,
  195. nonextensible,
  196. pointer_default(unique)
  197. ]
  198. interface IDOMDocumentFragment : IDOMNode
  199. {
  200. };
  201. [
  202. local, object,
  203. uuid(3efaa414-272f-11d2-836f-0000f87a7782), // IID_IDOMDocument
  204. odl,
  205. dual,
  206. oleautomation,
  207. nonextensible,
  208. pointer_default(unique)
  209. ]
  210. interface IDOMDocument : IDOMNode
  211. {
  212. // readonly attribute DocumentType doctype;
  213. [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE),
  214. helpstring("node corresponding to the DOCTYPE")]
  215. HRESULT doctype(
  216. [out, retval] IDOMDocumentType ** documentType);
  217. // readonly attribute DOMImplementation implementation;
  218. [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION),
  219. helpstring("info on this DOM implementation")]
  220. HRESULT implementation(
  221. [out, retval] IDOMImplementation ** impl);
  222. // attribute Element documentElement;
  223. [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT),
  224. helpstring("the root of the tree")]
  225. HRESULT documentElement(
  226. [out, retval] IDOMElement ** DOMElement);
  227. [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT),
  228. helpstring("the root of the tree")]
  229. HRESULT documentElement(
  230. [in] IDOMElement * DOMElement);
  231. // Element createElement(in wstring tagName);
  232. [id(DISPID_DOM_DOCUMENT_CREATEELEMENT),
  233. helpstring("create an Element node")]
  234. HRESULT createElement(
  235. [in] BSTR tagName,
  236. [out, retval] IDOMElement ** element);
  237. // DocumentFragment createDocumentFragment();
  238. [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT),
  239. helpstring("create a DocumentFragment node")]
  240. HRESULT createDocumentFragment(
  241. [out, retval] IDOMDocumentFragment ** docFrag );
  242. // Text createTextNode(in wstring data);
  243. [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE),
  244. helpstring("create a text node")]
  245. HRESULT createTextNode(
  246. [in] BSTR data,
  247. [out, retval] IDOMText ** text);
  248. // Comment createComment(in wstring data);
  249. [id(DISPID_DOM_DOCUMENT_CREATECOMMENT),
  250. helpstring("create a comment node")]
  251. HRESULT createComment(
  252. [in] BSTR data,
  253. [out, retval] IDOMComment ** comment);
  254. // CDATASection createCDATASection(in wstring data);
  255. [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION),
  256. helpstring("create a CDATA section node")]
  257. HRESULT createCDATASection(
  258. [in] BSTR data,
  259. [out, retval] IDOMCDATASection ** cdata);
  260. // ProcessingInstruction createProcessingInstruction(in wstring target,
  261. // in wstring data);
  262. [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION),
  263. helpstring("create a processing instruction node")]
  264. HRESULT createProcessingInstruction(
  265. [in] BSTR target,
  266. [in] BSTR data,
  267. [out, retval] IDOMProcessingInstruction ** pi);
  268. // Attribute createAttribute(in wstring name);
  269. [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE),
  270. helpstring("create an attribute node")]
  271. HRESULT createAttribute(
  272. [in] BSTR name,
  273. [out, retval] IDOMAttribute ** attribute);
  274. // EntityReference createEntityReference(in wstring name);
  275. [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE),
  276. helpstring("create an entity reference node")]
  277. HRESULT createEntityReference(
  278. [in] BSTR name,
  279. [out, retval] IDOMEntityReference ** entityRef);
  280. // NodeList getElementsByTagName(in wstring tagname);
  281. [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME),
  282. helpstring("build a list of elements by name")]
  283. HRESULT getElementsByTagName(
  284. [in] BSTR tagName,
  285. [out, retval] IDOMNodeList ** resultList);
  286. };
  287. [
  288. local, object,
  289. uuid(3efaa416-272f-11d2-836f-0000f87a7782), // IID_IDOMNodeList
  290. odl,
  291. dual,
  292. oleautomation,
  293. nonextensible,
  294. pointer_default(unique)
  295. ]
  296. interface IDOMNodeList : IDispatch
  297. {
  298. // Node item(in unsigned long index);
  299. [propget, id(DISPID_VALUE),
  300. helpstring("collection of nodes")]
  301. HRESULT item(
  302. [in] long index,
  303. [out, retval] IDOMNode ** listItem);
  304. // readonly attribute unsigned long length;
  305. [propget, id(DISPID_DOM_NODELIST_LENGTH),
  306. helpstring("number of nodes in the collection")]
  307. HRESULT length(
  308. [out, retval] long * listLength);
  309. };
  310. [
  311. local, object,
  312. uuid(3efaa418-272f-11d2-836f-0000f87a7782), // IID_IDOMNamedNodeMap
  313. odl,
  314. dual,
  315. oleautomation,
  316. nonextensible,
  317. pointer_default(unique)
  318. ]
  319. interface IDOMNamedNodeMap : IDispatch
  320. {
  321. // Node getNamedItem(in wstring name);
  322. [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM),
  323. helpstring("lookup item by name")]
  324. HRESULT getNamedItem(
  325. [in] BSTR name,
  326. [out, retval] IDOMNode ** namedItem);
  327. // void setNamedItem(in Node arg);
  328. [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM),
  329. helpstring("set item by name")]
  330. HRESULT setNamedItem(
  331. [in] IDOMNode * newItem,
  332. [out, retval] IDOMNode ** nameItem);
  333. // Node removeNamedItem(in wstring name);
  334. [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM),
  335. helpstring("remove item by name")]
  336. HRESULT removeNamedItem(
  337. [in] BSTR name,
  338. [out, retval] IDOMNode ** namedItem);
  339. // Node item(in unsigned long index);
  340. [propget, id(DISPID_VALUE),
  341. helpstring("collection of nodes")]
  342. HRESULT item(
  343. [in] long index,
  344. [out, retval] IDOMNode ** listItem);
  345. // readonly attribute unsigned long length;
  346. [propget, id(DISPID_DOM_NODELIST_LENGTH),
  347. helpstring("number of nodes in the collection")]
  348. HRESULT length(
  349. [out, retval] long * listLength);
  350. };
  351. [
  352. local, object,
  353. uuid(3efaa41a-272f-11d2-836f-0000f87a7782), // IID_IDOMCharacterData
  354. odl,
  355. dual,
  356. oleautomation,
  357. nonextensible,
  358. pointer_default(unique)
  359. ]
  360. interface IDOMCharacterData : IDOMNode
  361. {
  362. // attribute wstring data;
  363. [propget, id(DISPID_VALUE),
  364. helpstring("value of the node")]
  365. HRESULT data(
  366. [out, retval] BSTR * data);
  367. [propput, id(DISPID_VALUE),
  368. helpstring("value of the node")]
  369. HRESULT data(
  370. [in] BSTR data);
  371. // readonly attribute unsigned long length;
  372. [propget, id(DISPID_DOM_DATA_LENGTH),
  373. helpstring("number of characters in value")]
  374. HRESULT length(
  375. [out, retval] long * dataLength);
  376. // wstring substring(in unsigned long offset,
  377. // in unsigned long count)
  378. // raises(DOMException);
  379. [id(DISPID_DOM_DATA_SUBSTRING),
  380. helpstring("retrieve substring of value")]
  381. HRESULT substringData(
  382. [in] long offset,
  383. [in] long count,
  384. [out, retval] BSTR * data);
  385. // void append(in wstring arg);
  386. [id(DISPID_DOM_DATA_APPEND),
  387. helpstring("append string to value")]
  388. HRESULT appendData(
  389. [in] BSTR data);
  390. // void insert(in unsigned long offset,
  391. // in wstring arg)
  392. // raises(DOMException);
  393. [id(DISPID_DOM_DATA_INSERT),
  394. helpstring("insert string into value")]
  395. HRESULT insertData(
  396. [in] long offset,
  397. [in] BSTR data);
  398. // void delete(in unsigned long offset,
  399. // in unsigned long count)
  400. // raises(DOMException);
  401. [id(DISPID_DOM_DATA_DELETE),
  402. helpstring("delete string within the value")]
  403. HRESULT deleteData(
  404. [in] long offset,
  405. [in] long count);
  406. // void replace(in unsigned long offset,
  407. // in unsigned long count,
  408. // in wstring arg)
  409. // raises(DOMException);
  410. [id(DISPID_DOM_DATA_REPLACE),
  411. helpstring("replace string within the value")]
  412. HRESULT replaceData(
  413. [in] long offset,
  414. [in] long count,
  415. [in] BSTR data);
  416. };
  417. [
  418. local, object,
  419. uuid(3efaa41b-272f-11d2-836f-0000f87a7782), // IID_IDOMAttribute
  420. odl,
  421. dual,
  422. oleautomation,
  423. nonextensible,
  424. pointer_default(unique)
  425. ]
  426. interface IDOMAttribute : IDOMNode
  427. {
  428. // wstring name;
  429. [propget, id(DISPID_DOM_ATTRIBUTE_GETNAME),
  430. helpstring("get name of the attribute")]
  431. HRESULT name(
  432. [out, retval] BSTR * attributeName);
  433. // attribute boolean specified;
  434. [propget, id(DISPID_DOM_ATTRIBUTE_SPECIFIED),
  435. helpstring("indicates whether attribute has a default value")]
  436. HRESULT specified(
  437. [out, retval] VARIANT_BOOL * isSpecified);
  438. // attribute wstring value;
  439. [propget, id(DISPID_VALUE),
  440. helpstring("string value of the attribute")]
  441. HRESULT value(
  442. [out, retval] VARIANT * attributeValue);
  443. [propput, id(DISPID_VALUE),
  444. helpstring("string value of the attribute")]
  445. HRESULT value(
  446. [in] VARIANT attributeValue);
  447. };
  448. [
  449. local, object,
  450. uuid(3efaa41c-272f-11d2-836f-0000f87a7782), // IID_IDOMElement
  451. odl,
  452. dual,
  453. oleautomation,
  454. nonextensible,
  455. pointer_default(unique)
  456. ]
  457. interface IDOMElement : IDOMNode
  458. {
  459. // readonly attribute wstring tagName;
  460. [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME),
  461. helpstring("get the tagName of the element")]
  462. HRESULT tagName(
  463. [out, retval] BSTR * tagName);
  464. // wstring getAttribute(in wstring name);
  465. [id(DISPID_DOM_ELEMENT_GETATTRIBUTE),
  466. helpstring("look up the string value of an attribute by name")]
  467. HRESULT getAttribute(
  468. [in] BSTR name,
  469. [out, retval] VARIANT * value);
  470. // void setAttribute(in string name,
  471. // in string value);
  472. [id(DISPID_DOM_ELEMENT_SETATTRIBUTE),
  473. helpstring("set the string value of an attribute by name")]
  474. HRESULT setAttribute(
  475. [in] BSTR name,
  476. [in] VARIANT value);
  477. // void removeAttribute(in wstring name);
  478. [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE),
  479. helpstring("remove an attribute by name")]
  480. HRESULT removeAttribute(
  481. [in] BSTR name);
  482. // Attribute getAttributeNode(in wstring name);
  483. [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE),
  484. helpstring("look up the attribute node by name")]
  485. HRESULT getAttributeNode(
  486. [in] BSTR name,
  487. [out, retval] IDOMAttribute ** attributeNode);
  488. // void setAttributeNode(in Attribute newAttr);
  489. [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE),
  490. helpstring("set the specified attribute on the element")]
  491. HRESULT setAttributeNode(
  492. [in] IDOMAttribute * DOMAttribute,
  493. [out, retval] IDOMAttribute ** attributeNode);
  494. // void removeAttributeNode(in Attribute oldAttr);
  495. [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE),
  496. helpstring("remove the specified attribute")]
  497. HRESULT removeAttributeNode(
  498. [in] IDOMAttribute * DOMAttribute,
  499. [out, retval] IDOMAttribute ** attributeNode);
  500. // NodeList getElementsByTagName(in wstring tagname);
  501. [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME),
  502. helpstring("build a list of elements by name")]
  503. HRESULT getElementsByTagName(
  504. [in] BSTR tagName,
  505. [out, retval] IDOMNodeList ** resultList);
  506. // void normalize();
  507. [id(DISPID_DOM_ELEMENT_NORMALIZE),
  508. helpstring("collapse all adjacent text nodes in sub-tree")]
  509. HRESULT normalize();
  510. };
  511. [
  512. local, object,
  513. uuid(9cafc72d-272e-11d2-836f-0000f87a7782), // IID_IDOMText
  514. odl,
  515. dual,
  516. oleautomation,
  517. nonextensible,
  518. pointer_default(unique)
  519. ]
  520. interface IDOMText : IDOMCharacterData
  521. {
  522. // Text splitText(in unsigned long offset);
  523. [id(DISPID_DOM_TEXT_SPLITTEXT),
  524. helpstring("split the text node into two text nodes at the position specified")]
  525. HRESULT splitText(
  526. [in] long offset,
  527. [out, retval] IDOMText ** rightHandTextNode);
  528. };
  529. [
  530. local, object,
  531. uuid(3efaa41e-272f-11d2-836f-0000f87a7782), // IID_IDOMComment
  532. odl,
  533. dual,
  534. oleautomation,
  535. nonextensible,
  536. pointer_default(unique)
  537. ]
  538. interface IDOMComment : IDOMCharacterData
  539. {
  540. };
  541. [
  542. local, object,
  543. uuid(3efaa41f-272f-11d2-836f-0000f87a7782), // IID_IDOMProcessingInstruction
  544. odl,
  545. dual,
  546. oleautomation,
  547. nonextensible,
  548. pointer_default(unique)
  549. ]
  550. interface IDOMProcessingInstruction : IDOMNode
  551. {
  552. // read-only attribute wstring target;
  553. [propget, id(DISPID_DOM_PI_TARGET),
  554. helpstring("the target")]
  555. HRESULT target(
  556. [out, retval] BSTR * name);
  557. // attribute wstring data;
  558. [propget, id(DISPID_VALUE),
  559. helpstring("the data")]
  560. HRESULT data(
  561. [out, retval] BSTR * value);
  562. [propput, id(DISPID_VALUE),
  563. helpstring("the data")]
  564. HRESULT data(
  565. [in] BSTR value);
  566. };
  567. [
  568. local, object,
  569. uuid(3efaa420-272f-11d2-836f-0000f87a7782), // IID_IDOMCDATASection
  570. odl,
  571. dual,
  572. oleautomation,
  573. nonextensible,
  574. pointer_default(unique)
  575. ]
  576. interface IDOMCDATASection : IDOMText
  577. {
  578. };
  579. [
  580. local, object,
  581. uuid(3efaa421-272f-11d2-836f-0000f87a7782), // IID_IDOMDocumentType
  582. odl,
  583. dual,
  584. oleautomation,
  585. nonextensible,
  586. pointer_default(unique)
  587. ]
  588. interface IDOMDocumentType : IDOMNode
  589. {
  590. // readonly attribute wstring name;
  591. [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME),
  592. helpstring("name of the document type (root of the tree)")]
  593. HRESULT name(
  594. [out, retval] BSTR * rootName);
  595. // readonly attribute NamedNodeMap entities;
  596. [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES),
  597. helpstring("a list of entities in the document")]
  598. HRESULT entities(
  599. [out, retval] IDOMNamedNodeMap ** entityMap);
  600. // readonly attribute NamedNodeMap notations;
  601. [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS),
  602. helpstring("a list of notations in the document")]
  603. HRESULT notations(
  604. [out, retval] IDOMNamedNodeMap ** notationMap);
  605. };
  606. [
  607. local, object,
  608. uuid(3efaa422-272f-11d2-836f-0000f87a7782), // IID_IDOMNotation
  609. odl,
  610. dual,
  611. oleautomation,
  612. nonextensible,
  613. pointer_default(unique)
  614. ]
  615. interface IDOMNotation : IDOMNode
  616. {
  617. // attribute wstring publicId;
  618. [propget, id(DISPID_DOM_NOTATION_PUBLICID),
  619. helpstring("the public ID")]
  620. HRESULT publicId(
  621. [out, retval] VARIANT * publicID);
  622. // attribute wstring systemId;
  623. [propget, id(DISPID_DOM_NOTATION_SYSTEMID),
  624. helpstring("the system ID")]
  625. HRESULT systemId(
  626. [out, retval] VARIANT * systemID);
  627. };
  628. [
  629. local, object,
  630. uuid(3efaa423-272f-11d2-836f-0000f87a7782), // IID_IDOMEntity
  631. odl,
  632. dual,
  633. oleautomation,
  634. nonextensible,
  635. pointer_default(unique)
  636. ]
  637. interface IDOMEntity : IDOMNode
  638. {
  639. // attribute wstring publicId;
  640. [propget, id(DISPID_DOM_ENTITY_PUBLICID),
  641. helpstring("the public ID")]
  642. HRESULT publicId(
  643. [out, retval] VARIANT * publicID);
  644. // attribute wstring systemId;
  645. [propget, id(DISPID_DOM_ENTITY_SYSTEMID),
  646. helpstring("the system ID")]
  647. HRESULT systemId(
  648. [out, retval] VARIANT * systemID);
  649. // attribute wstring notationName;
  650. [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME),
  651. helpstring("the name of the notation")]
  652. HRESULT notationName(
  653. [out, retval] BSTR * name);
  654. };
  655. [
  656. local, object,
  657. uuid(3efaa424-272f-11d2-836f-0000f87a7782), // IID_IDOMEntityReference
  658. odl,
  659. dual,
  660. oleautomation,
  661. nonextensible,
  662. pointer_default(unique)
  663. ]
  664. interface IDOMEntityReference : IDOMNode
  665. {
  666. };