1/* 2 * Copyright (C) 2005 Mike McCormack 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19#include <xmldomdid.h> 20#include <idispids.h> 21 22#if !defined(progid) && !defined(__WIDL__) 23#define threading(model) 24#define progid(str) 25#define vi_progid(str) 26#endif 27 28import "oaidl.idl"; 29 30interface IXMLDOMImplementation; 31interface IXMLDOMNode; 32interface IXMLDOMDocumentFragment; 33interface IXMLDOMDocument; 34interface IXMLDOMNodeList; 35interface IXMLDOMNamedNodeMap; 36interface IXMLDOMCharacterData; 37interface IXMLDOMAttribute; 38interface IXMLDOMElement; 39interface IXMLDOMText; 40interface IXMLDOMComment; 41interface IXMLDOMProcessingInstruction; 42interface IXMLDOMCDATASection; 43interface IXMLDOMDocumentType; 44interface IXMLDOMNotation; 45interface IXMLDOMEntity; 46interface IXMLDOMEntityReference; 47interface IXMLDOMParseError; 48 49cpp_quote("#ifndef __MSXML_DOMNODETYPE_DEFINED") 50cpp_quote("#define __MSXML_DOMNODETYPE_DEFINED") 51typedef enum tagDOMNodeType { 52 NODE_INVALID, 53 NODE_ELEMENT, 54 NODE_ATTRIBUTE, 55 NODE_TEXT, 56 NODE_CDATA_SECTION, 57 NODE_ENTITY_REFERENCE, 58 NODE_ENTITY, 59 NODE_PROCESSING_INSTRUCTION, 60 NODE_COMMENT, 61 NODE_DOCUMENT, 62 NODE_DOCUMENT_TYPE, 63 NODE_DOCUMENT_FRAGMENT, 64 NODE_NOTATION 65} DOMNodeType; 66cpp_quote("#endif") 67 68[ 69local, 70object, 71odl, 72dual, 73oleautomation, 74/*nonextensible,*/ 75uuid(2933bf80-7b36-11d2-b20e-00c04f983e60), 76pointer_default(unique) 77] 78interface IXMLDOMNode : IDispatch 79{ 80 [propget, id(DISPID_DOM_NODE_NODENAME)] 81 HRESULT nodeName( [out,retval] BSTR *name ); 82 83 [propget, id(DISPID_DOM_NODE_NODEVALUE)] 84 HRESULT nodeValue( [out,retval] VARIANT *value ); 85 86 [propput, id(DISPID_DOM_NODE_NODEVALUE)] 87 HRESULT nodeValue( [in] VARIANT value ); 88 89 [propget, id(DISPID_DOM_NODE_NODETYPE)] 90 HRESULT nodeType( [out,retval] DOMNodeType *type ); 91 92 [propget, id(DISPID_DOM_NODE_PARENTNODE)] 93 HRESULT parentNode( [out,retval] IXMLDOMNode **parent ); 94 95 [propget, id(DISPID_DOM_NODE_CHILDNODES)] 96 HRESULT childNodes( [out,retval] IXMLDOMNodeList **childList ); 97 98 [propget, id(DISPID_DOM_NODE_FIRSTCHILD)] 99 HRESULT firstChild( [out,retval] IXMLDOMNode **firstChild ); 100 101 [propget, id(DISPID_DOM_NODE_LASTCHILD)] 102 HRESULT lastChild( [out,retval] IXMLDOMNode **lastChild ); 103 104 [propget, id(DISPID_DOM_NODE_PREVIOUSSIBLING)] 105 HRESULT previousSibling( [out,retval] IXMLDOMNode **previousSibling ); 106 107 [propget, id(DISPID_DOM_NODE_NEXTSIBLING)] 108 HRESULT nextSibling( [out,retval] IXMLDOMNode **nextSibling ); 109 110 [propget, id(DISPID_DOM_NODE_ATTRIBUTES)] 111 HRESULT attributes( [out,retval] IXMLDOMNamedNodeMap **attributeMap ); 112 113 [id(DISPID_DOM_NODE_INSERTBEFORE)] 114 HRESULT insertBefore( [in] IXMLDOMNode * newChild, 115 [in] VARIANT refChild, 116 [out,retval] IXMLDOMNode **outNewChild ); 117 118 [id(DISPID_DOM_NODE_REPLACECHILD)] 119 HRESULT replaceChild( [in] IXMLDOMNode *newChild, 120 [in] IXMLDOMNode *oldChild, 121 [out,retval] IXMLDOMNode **outOldChild ); 122 123 [id(DISPID_DOM_NODE_REMOVECHILD)] 124 HRESULT removeChild( [in] IXMLDOMNode *childNode, 125 [out,retval] IXMLDOMNode **oldChild ); 126 127 [id(DISPID_DOM_NODE_APPENDCHILD)] 128 HRESULT appendChild( [in] IXMLDOMNode *newChild, 129 [out,retval] IXMLDOMNode **outNewChild ); 130 131 [id(DISPID_DOM_NODE_HASCHILDNODES)] 132 HRESULT hasChildNodes( [out,retval] VARIANT_BOOL *hasChild ); 133 134 [propget, id(DISPID_DOM_NODE_OWNERDOC)] 135 HRESULT ownerDocument( [out,retval] IXMLDOMDocument **DOMDocument ); 136 137 [id(DISPID_DOM_NODE_CLONENODE)] 138 HRESULT cloneNode( [in] VARIANT_BOOL deep, 139 [out,retval] IXMLDOMNode **cloneRoot ); 140 141 [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE)] 142 HRESULT nodeTypeString( [out,retval] BSTR *nodeType ); 143 144 [propget, id(DISPID_XMLDOM_NODE_TEXT)] 145 HRESULT text( [out,retval] BSTR *text ); 146 147 [propput, id(DISPID_XMLDOM_NODE_TEXT)] 148 HRESULT text( [in] BSTR text ); 149 150 [propget, id(DISPID_XMLDOM_NODE_SPECIFIED)] 151 HRESULT specified( [out,retval] VARIANT_BOOL *isSpecified ); 152 153 [propget, id(DISPID_XMLDOM_NODE_DEFINITION)] 154 HRESULT definition( [out,retval] IXMLDOMNode **definitionNode ); 155 156 [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)] 157 HRESULT nodeTypedValue( [out,retval] VARIANT *typedValue ); 158 159 [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)] 160 HRESULT nodeTypedValue( [in] VARIANT typedValue ); 161 162 [propget, id(DISPID_XMLDOM_NODE_DATATYPE)] 163 HRESULT dataType( [out,retval] VARIANT *dataTypeName ); 164 165 [propput, id(DISPID_XMLDOM_NODE_DATATYPE)] 166 HRESULT dataType( [in] BSTR dataTypeName ); 167 168 [propget, id(DISPID_XMLDOM_NODE_XML)] 169 HRESULT xml( [out,retval] BSTR *xmlString ); 170 171 [id(DISPID_XMLDOM_NODE_TRANSFORMNODE)] 172 HRESULT transformNode( [in] IXMLDOMNode *styleSheet, 173 [out,retval] BSTR *xmlString ); 174 175 [id(DISPID_XMLDOM_NODE_SELECTNODES)] 176 HRESULT selectNodes( [in] BSTR queryString, 177 [out,retval] IXMLDOMNodeList **resultList ); 178 179 [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE)] 180 HRESULT selectSingleNode( [in] BSTR queryString, 181 [out,retval] IXMLDOMNode **resultNode ); 182 183 [propget, id(DISPID_XMLDOM_NODE_PARSED)] 184 HRESULT parsed( [out,retval] VARIANT_BOOL *isParsed ); 185 186 [propget, id(DISPID_XMLDOM_NODE_NAMESPACE)] 187 HRESULT namespaceURI( [out,retval] BSTR *namespaceURI ); 188 189 [propget, id(DISPID_XMLDOM_NODE_PREFIX)] 190 HRESULT prefix( [out,retval] BSTR *prefixString ); 191 192 [propget, id(DISPID_XMLDOM_NODE_BASENAME)] 193 HRESULT baseName( [out,retval] BSTR *nameString ); 194 195 [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT)] 196 HRESULT transformNodeToObject( [in] IXMLDOMNode *stylesheet, 197 [in] VARIANT outputObject ); 198} 199 200[ 201local, 202object, 203odl, 204dual, 205/*nonextensible,*/ 206oleautomation, 207uuid(2933bf81-7b36-11d2-b20e-00c04f983e60), 208pointer_default(unique) 209] 210interface IXMLDOMDocument : IXMLDOMNode 211{ 212 [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)] 213 HRESULT doctype( [out,retval] IXMLDOMDocumentType **documentType ); 214 215 [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION)] 216 HRESULT implementation( [out,retval] IXMLDOMImplementation **impl ); 217 218 [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)] 219 HRESULT documentElement( [out,retval] IXMLDOMElement **DOMElement ); 220 221 [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)] 222 HRESULT documentElement( [in] IXMLDOMElement *DOMElement ); 223 224 [id(DISPID_DOM_DOCUMENT_CREATEELEMENT)] 225 HRESULT createElement( [in] BSTR tagname, 226 [out,retval] IXMLDOMElement **element ); 227 228 [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT)] 229 HRESULT createDocumentFragment( [out,retval] IXMLDOMDocumentFragment **docFrag ); 230 231 [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE)] 232 HRESULT createTextNode( [in] BSTR data, 233 [out,retval] IXMLDOMText **text ); 234 235 [id(DISPID_DOM_DOCUMENT_CREATECOMMENT)] 236 HRESULT createComment( [in] BSTR data, 237 [out,retval] IXMLDOMComment **comment ); 238 239 [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION)] 240 HRESULT createCDATASection( [in] BSTR data, 241 [out,retval] IXMLDOMCDATASection **cdata ); 242 243 [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION)] 244 HRESULT createProcessingInstruction( [in] BSTR target, 245 [in] BSTR data, 246 [out,retval] IXMLDOMProcessingInstruction **pi ); 247 248 [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE)] 249 HRESULT createAttribute( [in] BSTR name, 250 [out,retval] IXMLDOMAttribute **attribute ); 251 252 [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE)] 253 HRESULT createEntityReference( [in] BSTR name, 254 [out,retval] IXMLDOMEntityReference **entityRef ); 255 256 [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME)] 257 HRESULT getElementsByTagName( [in] BSTR tagName, 258 [out,retval] IXMLDOMNodeList **resultList ); 259 260 [id(DISPID_XMLDOM_DOCUMENT_CREATENODE)] 261 HRESULT createNode( [in] VARIANT Type, 262 [in] BSTR name, 263 [in] BSTR namespaceURI, 264 [out,retval] IXMLDOMNode **node ); 265 266 [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID)] 267 HRESULT nodeFromID( [in] BSTR idString, 268 [out,retval] IXMLDOMNode **node ); 269 270 [id(DISPID_XMLDOM_DOCUMENT_LOAD)] 271 HRESULT load( [in] VARIANT xmlSource, 272 [out,retval] VARIANT_BOOL *isSuccessful ); 273 274 [propget, id(DISPID_READYSTATE)] 275 HRESULT readyState( [out,retval] LONG *value ); 276 277 [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR)] 278 HRESULT parseError( [out,retval] IXMLDOMParseError **errorObj ); 279 280 [propget, id(DISPID_XMLDOM_DOCUMENT_URL)] 281 HRESULT url( [out,retval] BSTR *urlString ); 282 283 /* FIXME: these is meant to be async, but widl parses that as a keyword */ 284 [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC)] 285 HRESULT async( [out,retval] VARIANT_BOOL *isAsync ); 286 287 [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC)] 288 HRESULT async( [in] VARIANT_BOOL isAsync ); 289 290 [id(DISPID_XMLDOM_DOCUMENT_ABORT)] 291 HRESULT abort(); 292 293 [id(DISPID_XMLDOM_DOCUMENT_LOADXML)] 294 HRESULT loadXML( [in] BSTR bstrXML, 295 [out,retval] VARIANT_BOOL *isSuccessful ); 296 297 [id(DISPID_XMLDOM_DOCUMENT_SAVE)] 298 HRESULT save( [in] VARIANT destination ); 299 300 [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)] 301 HRESULT validateOnParse( [out,retval] VARIANT_BOOL *isValidating ); 302 303 [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)] 304 HRESULT validateOnParse( [in] VARIANT_BOOL isValidating ); 305 306 [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)] 307 HRESULT resolveExternals( [out,retval] VARIANT_BOOL *isResolving ); 308 309 [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)] 310 HRESULT resolveExternals( [in] VARIANT_BOOL isValidating ); 311 312 [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)] 313 HRESULT preserveWhiteSpace( [out,retval] VARIANT_BOOL *isPreserving ); 314 315 [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)] 316 HRESULT preserveWhiteSpace( [in] VARIANT_BOOL isPreserving ); 317 318 [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE)] 319 HRESULT onreadystatechange( [in] VARIANT readystatechangeSink ); 320 321 [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE)] 322 HRESULT ondataavailable( [in] VARIANT ondataavailableSink ); 323 324 [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE)] 325 HRESULT ontransformnode( [in] VARIANT ontransformnodeSink ); 326} 327 328[ 329local, 330object, 331odl, 332dual, 333/*nonextensible,*/ 334oleautomation, 335uuid(2933bf82-7b36-11d2-b20e-00c04f983e60), 336pointer_default(unique) 337] 338interface IXMLDOMNodeList : IDispatch 339{ 340 [propget, id(DISPID_VALUE)] 341 HRESULT item( [in] LONG index, 342 [out,retval] IXMLDOMNode **listItem ); 343 344 [propget, id(DISPID_DOM_NODELIST_LENGTH)] 345 HRESULT length( [out,retval] LONG *listLength ); 346 347 [id(DISPID_XMLDOM_NODELIST_NEXTNODE)] 348 HRESULT nextNode( [out,retval] IXMLDOMNode **nextItem ); 349 350 [id(DISPID_XMLDOM_NODELIST_RESET)] 351 HRESULT reset(); 352 353 [id(DISPID_NEWENUM)] 354 HRESULT _newEnum( [out,retval] IUnknown **ppUnk ); 355} 356 357[ 358local, 359object, 360odl, 361dual, 362/*nonextensible,*/ 363oleautomation, 364uuid(2933bf83-7b36-11d2-b20e-00c04f983e60), 365pointer_default(unique) 366] 367interface IXMLDOMNamedNodeMap : IDispatch 368{ 369 [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)] 370 HRESULT getNamedItem( [in] BSTR name, 371 [out,retval] IXMLDOMNode **namedItem ); 372 373 [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)] 374 HRESULT setNamedItem( [in] IXMLDOMNode *newItem, 375 [out,retval] IXMLDOMNode **namedItem ); 376 377 [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)] 378 HRESULT removeNamedItem( [in] BSTR name, 379 [out,retval] IXMLDOMNode **namedItem ); 380 381 [propget, id(DISPID_VALUE)] 382 HRESULT item( [in] LONG index, 383 [out,retval] IXMLDOMNode **listItem ); 384 385 [propget, id(DISPID_DOM_NODELIST_LENGTH)] 386 HRESULT length( [out,retval] LONG *listLength ); 387 388 [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)] 389 HRESULT getQualifiedItem( [in] BSTR baseName, 390 [in] BSTR namespaceURI, 391 [out,retval] IXMLDOMNode **qualifiedItem ); 392 393 [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)] 394 HRESULT removeQualifiedItem( [in] BSTR baseName, 395 [in] BSTR namespaceURI, 396 [out,retval] IXMLDOMNode **qualifiedItem ); 397 398 [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)] 399 HRESULT nextNode( [out,retval] IXMLDOMNode **nextItem ); 400 401 [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)] 402 HRESULT reset(); 403 404 [id(DISPID_NEWENUM)] 405 HRESULT _newEnum( [out,retval] IUnknown **ppUnk ); 406} 407 408[ 409local, 410object, 411odl, 412dual, 413/*nonextensible,*/ 414oleautomation, 415uuid(3efaa413-272f-11d2-836f-0000f87a7782), 416pointer_default(unique) 417] 418interface IXMLDOMDocumentFragment : IXMLDOMNode 419{ 420 /* empty */ 421} 422 423[ 424local, 425object, 426odl, 427dual, 428/*nonextensible,*/ 429oleautomation, 430uuid(2933bf84-7b36-11d2-b20e-00c04f983e60), 431pointer_default(unique) 432] 433interface IXMLDOMCharacterData : IXMLDOMNode 434{ 435 [propget, id(DISPID_DOM_DATA_DATA)] 436 HRESULT data( [out,retval] BSTR *data ); 437 438 [propput, id(DISPID_DOM_DATA_DATA)] 439 HRESULT data( [in] BSTR data ); 440 441 [propget, id(DISPID_DOM_DATA_LENGTH)] 442 HRESULT length( [out,retval] LONG *dataLength ); 443 444 [id(DISPID_DOM_DATA_SUBSTRING)] 445 HRESULT substringData( [in] LONG offset, 446 [in] LONG count, 447 [out,retval] BSTR *data ); 448 449 [id(DISPID_DOM_DATA_APPEND)] 450 HRESULT appendData( [in] BSTR data ); 451 452 [id(DISPID_DOM_DATA_INSERT)] 453 HRESULT insertData( [in] LONG offset, 454 [in] BSTR data ); 455 456 [id(DISPID_DOM_DATA_DELETE)] 457 HRESULT deleteData( [in] LONG offset, 458 [in] LONG count ); 459 460 [id(DISPID_DOM_DATA_REPLACE)] 461 HRESULT replaceData( [in] LONG offset, 462 [in] LONG count, 463 [in] BSTR data ); 464} 465 466[ 467local, 468object, 469odl, 470dual, 471/*nonextensible,*/ 472oleautomation, 473uuid(2933bf85-7b36-11d2-b20e-00c04f983e60), 474pointer_default(unique) 475] 476interface IXMLDOMAttribute : IXMLDOMNode 477{ 478 [propget,id(DISPID_DOM_ATTRIBUTE_GETNAME)] 479 HRESULT name( [out,retval] BSTR *attributeName ); 480 481 [propget,id(DISPID_DOM_ATTRIBUTE_VALUE)] 482 HRESULT value( [out,retval] VARIANT *attributeValue ); 483 484 [propput,id(DISPID_DOM_ATTRIBUTE_VALUE)] 485 HRESULT value( [in] VARIANT attributeValue ); 486} 487 488[ 489local, 490object, 491odl, 492dual, 493/*nonextensible,*/ 494oleautomation, 495uuid(2933bf86-7b36-11d2-b20e-00c04f983e60), 496pointer_default(unique) 497] 498interface IXMLDOMElement : IXMLDOMNode 499{ 500 [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)] 501 HRESULT tagName( [out,retval] BSTR *tagName ); 502 503 [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)] 504 HRESULT getAttribute( [in] BSTR name, 505 [out,retval] VARIANT * value ); 506 507 [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)] 508 HRESULT setAttribute( [in] BSTR name, 509 [in] VARIANT value ); 510 511 [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)] 512 HRESULT removeAttribute( [in] BSTR name ); 513 514 [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)] 515 HRESULT getAttributeNode( [in] BSTR name, 516 [out, retval] IXMLDOMAttribute ** attributeNode ); 517 518 [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)] 519 HRESULT setAttributeNode( [in] IXMLDOMAttribute *DOMAttribute, 520 [out, retval] IXMLDOMAttribute ** attributeNode ); 521 522 [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)] 523 HRESULT removeAttributeNode( [in] IXMLDOMAttribute *DOMAttribute, 524 [out, retval] IXMLDOMAttribute ** attributeNode ); 525 526 [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)] 527 HRESULT getElementsByTagName( [in] BSTR tagName, 528 [out, retval] IXMLDOMNodeList ** resultList ); 529 530 [id(DISPID_DOM_ELEMENT_NORMALIZE)] 531 HRESULT normalize(); 532} 533 534[ 535local, 536object, 537odl, 538dual, 539/*nonextensible,*/ 540oleautomation, 541uuid(2933bf87-7b36-11d2-b20e-00c04f983e60), 542pointer_default(unique) 543] 544interface IXMLDOMText : IXMLDOMCharacterData 545{ 546 [id(DISPID_DOM_TEXT_SPLITTEXT)] 547 HRESULT splitText( [in] LONG offset, 548 [out,retval] IXMLDOMText **rightHandTextNode ); 549} 550 551[ 552local, 553object, 554odl, 555dual, 556/*nonextensible,*/ 557oleautomation, 558uuid(2933bf88-7b36-11d2-b20e-00c04f983e60), 559pointer_default(unique) 560] 561interface IXMLDOMComment : IXMLDOMCharacterData 562{ 563 /* empty */ 564} 565 566[ 567local, 568object, 569odl, 570dual, 571/*nonextensible,*/ 572oleautomation, 573uuid(2933bf89-7b36-11d2-b20e-00c04f983e60), 574pointer_default(unique) 575] 576interface IXMLDOMProcessingInstruction : IXMLDOMNode 577{ 578 [propget, id(DISPID_DOM_PI_TARGET)] 579 HRESULT target( [out, retval] BSTR *name ); 580 581 [propget, id(DISPID_DOM_PI_DATA)] 582 HRESULT data( [out, retval] BSTR *value ); 583 584 [propput, id(DISPID_DOM_PI_DATA)] 585 HRESULT data( [in] BSTR value ); 586} 587 588[ 589local, 590object, 591odl, 592dual, 593/*nonextensible,*/ 594oleautomation, 595uuid(2933bf8a-7b36-11d2-b20e-00c04f983e60), 596pointer_default(unique) 597] 598interface IXMLDOMCDATASection : IXMLDOMText 599{ 600 /* empty */ 601} 602 603[ 604local, 605object, 606odl, 607dual, 608/*nonextensible,*/ 609oleautomation, 610uuid(2933bf8b-7b36-11d2-b20e-00c04f983e60), 611pointer_default(unique) 612] 613interface IXMLDOMDocumentType : IXMLDOMNode 614{ 615 [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)] 616 HRESULT name( [out,retval] BSTR *rootName ); 617 618 [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)] 619 HRESULT entities( [out,retval] IXMLDOMNamedNodeMap **entityMap ); 620 621 [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)] 622 HRESULT notations( [out,retval] IXMLDOMNamedNodeMap **notationMap ); 623} 624 625[ 626local, 627object, 628odl, 629dual, 630nonextensible, 631oleautomation, 632uuid(2933bf8c-7b36-11d2-b20e-00c04f983e60), 633pointer_default(unique) 634] 635interface IXMLDOMNotation : IXMLDOMNode 636{ 637 [propget, id(DISPID_DOM_NOTATION_PUBLICID)] 638 HRESULT publicId([out, retval] VARIANT *publicId); 639 640 [propget, id(DISPID_DOM_NOTATION_SYSTEMID)] 641 HRESULT systemId([out, retval] VARIANT *systemId); 642} 643 644[ 645local, 646object, 647odl, 648dual, 649nonextensible, 650oleautomation, 651uuid(2933bf8d-7b36-11d2-b20e-00c04f983e60), 652pointer_default(unique) 653] 654interface IXMLDOMEntity : IXMLDOMNode 655{ 656 [propget, id(DISPID_DOM_ENTITY_PUBLICID)] 657 HRESULT publicId([out, retval] VARIANT *publicId); 658 659 [propget, id(DISPID_DOM_ENTITY_SYSTEMID)] 660 HRESULT systemId([out, retval] VARIANT *systemId); 661 662 [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)] 663 HRESULT notationName([out, retval] BSTR *name); 664} 665 666[ 667local, 668object, 669odl, 670dual, 671nonextensible, 672oleautomation, 673uuid(2933bf8e-7b36-11d2-b20e-00c04f983e60), 674pointer_default(unique) 675] 676interface IXMLDOMEntityReference : IXMLDOMNode 677{ 678} 679 680[ 681local, 682object, 683odl, 684dual, 685nonextensible, 686oleautomation, 687uuid(2933bf8f-7b36-11d2-b20e-00c04f983e60), 688pointer_default(unique) 689] 690interface IXMLDOMImplementation : IDispatch 691{ 692 [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)] 693 HRESULT hasFeature([in] BSTR feature, [in] BSTR version, [out, retval] VARIANT_BOOL *pbool); 694} 695 696[ 697local, 698object, 699odl, 700dual, 701oleautomation, 702/*nonextensible,*/ 703helpstring("structure for reporting parse errors"), 704pointer_default(unique), 705uuid (3efaa426-272f-11d2-836f-0000f87a7782) 706] 707interface IXMLDOMParseError : IDispatch 708{ 709 [propget, id(DISPID_VALUE)] 710 HRESULT errorCode([retval, out] LONG *errCode); 711 712 [propget, id(DISPID_DOM_ERROR_URL)] 713 HRESULT url([retval, out] BSTR *p); 714 715 [propget, id(DISPID_DOM_ERROR_REASON)] 716 HRESULT reason([retval, out] BSTR *p); 717 718 [propget, id(DISPID_DOM_ERROR_SRCTEXT)] 719 HRESULT srcText([retval, out] BSTR *p); 720 721 [propget, id(DISPID_DOM_ERROR_LINE)] 722 HRESULT line([retval, out] LONG *lineNo); 723 724 [propget, id(DISPID_DOM_ERROR_LINEPOS)] 725 HRESULT linepos([retval, out] LONG * linePos); 726 727 [propget, id(DISPID_DOM_ERROR_FILEPOS)] 728 HRESULT filepos([retval, out] LONG * filePos); 729} 730 731[ 732 hidden, 733 uuid(3efaa427-272f-11d2-836f-0000f87a7782) 734] 735dispinterface XMLDOMDocumentEvents 736{ 737 properties: 738 methods: 739 [id(DISPID_XMLDOMEVENT_ONDATAAVAILABLE)] 740 HRESULT ondataavailable(); 741 742 [id(DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)] 743 HRESULT onreadystatechange(); 744} 745 746[ 747 helpstring("XML DOM Document"), 748 progid("Microsoft.XMLDOM.1.0"), 749 vi_progid("Microsoft.XMLDOM"), 750 threading(both), 751 version(1.0), 752 uuid(2933bf90-7b36-11d2-b20e-00c04f983e60) 753] 754coclass DOMDocument 755{ 756 [default] interface IXMLDOMDocument; 757 [default, source] dispinterface XMLDOMDocumentEvents; 758} 759 760[ 761 helpstring("Free Threaded XML DOM Document"), 762 progid("Microsoft.FreeThreadedXMLDOM.1.0"), 763 vi_progid("Microsoft.FreeThreadedXMLDOM"), 764 threading(both), 765 version(1.0), 766 uuid(2933bf91-7b36-11d2-b20e-00c04f983e60) 767] 768coclass DOMFreeThreadedDocument 769{ 770 [default] interface IXMLDOMDocument; 771 [default, source] dispinterface XMLDOMDocumentEvents; 772} 773 774[ 775object, 776uuid(ed8c108d-4349-11d2-91a4-00c04f7969e8), 777odl, 778dual, 779oleautomation, 780pointer_default(unique) 781] 782interface IXMLHttpRequest : IDispatch 783{ 784 [id(1)] 785 HRESULT open([in] BSTR bstrMethod, [in] BSTR bstrUrl, 786 [in, optional] VARIANT varAsync, 787 [in, optional] VARIANT varUser, 788 [in, optional] VARIANT varPassword); 789 [id(2)] 790 HRESULT setRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue); 791 792 [id(3)] 793 HRESULT getResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR *pbstrValue); 794 795 [id(4)] 796 HRESULT getAllResponseHeaders([out, retval] BSTR *pbstrHeaders); 797 798 [id(5)] 799 HRESULT send([in, optional] VARIANT varBody); 800 801 [id(6)] 802 HRESULT abort(); 803 804 [propget, id(7)] 805 HRESULT status([out, retval] LONG *plStatus); 806 807 [propget, id(8)] 808 HRESULT statusText([out, retval] BSTR *bstrStatus); 809 810 [propget, id(9)] 811 HRESULT responseXML([out, retval] IDispatch **ppBody); 812 813 [propget, id(10)] 814 HRESULT responseText([out, retval] BSTR *pbstrBody); 815 816 [propget, id(11)] 817 HRESULT responseBody([out, retval] VARIANT *pvarBody); 818 819 [propget, id(12)] 820 HRESULT responseStream([out, retval] VARIANT *pvarBody); 821 822 [propget, id(13)] 823 HRESULT readyState([out, retval] LONG *plState); 824 825 [propput, id(14)] 826 HRESULT onreadystatechange([in] IDispatch *pReadyStateSink); 827} 828 829[ 830 helpstring("XML HTTP Request"), 831 progid("Microsoft.XMLHTTP.1.0"), 832 vi_progid("Microsoft.XMLHTTP"), 833 threading(apartment), 834 version(1.0), 835 uuid(ed8c108e-4349-11d2-91a4-00c04f7969e8) 836] 837coclass XMLHTTPRequest 838{ 839 [default] interface IXMLHttpRequest; 840} 841