Mike McCormack | 6e69a36 | 2005-05-16 08:46:55 +0000 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2005 Mike McCormack |
Vijay Kiran Kamuju | a52310a | 2005-07-02 10:48:16 +0000 | [diff] [blame] | 3 | * Copyright (C) 2005 Vijay Kiran Kamuju |
Mike McCormack | 6e69a36 | 2005-05-16 08:46:55 +0000 | [diff] [blame] | 4 | * |
| 5 | * This library is free software; you can redistribute it and/or |
| 6 | * modify it under the terms of the GNU Lesser General Public |
| 7 | * License as published by the Free Software Foundation; either |
| 8 | * version 2.1 of the License, or (at your option) any later version. |
| 9 | * |
| 10 | * This library is distributed in the hope that it will be useful, |
| 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 13 | * Lesser General Public License for more details. |
| 14 | * |
| 15 | * You should have received a copy of the GNU Lesser General Public |
| 16 | * License along with this library; if not, write to the Free Software |
| 17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 18 | */ |
| 19 | |
Vincent BĂ©ron | 56da0c3 | 2005-08-10 09:51:40 +0000 | [diff] [blame] | 20 | #include <msxmldid.h> |
Mike McCormack | 6e69a36 | 2005-05-16 08:46:55 +0000 | [diff] [blame] | 21 | |
| 22 | import "unknwn.idl"; |
| 23 | import "wtypes.idl"; |
| 24 | import "objidl.idl"; |
| 25 | import "oaidl.idl"; |
| 26 | |
Vijay Kiran Kamuju | a52310a | 2005-07-02 10:48:16 +0000 | [diff] [blame] | 27 | |
Mike McCormack | 6e69a36 | 2005-05-16 08:46:55 +0000 | [diff] [blame] | 28 | [ |
| 29 | local, |
| 30 | object, |
| 31 | odl, |
| 32 | dual, |
| 33 | oleautomation, |
| 34 | uuid(65725580-9b5d-11d0-9bfe-00c04fc99c8e) |
| 35 | ] |
| 36 | interface IXMLElementCollection : IDispatch |
| 37 | { |
| 38 | [propput, id(DISPID_XMLELEMENTCOLLECTION_LENGTH)] |
| 39 | HRESULT length( [in] long v ); |
| 40 | |
| 41 | [propget, id(DISPID_XMLELEMENTCOLLECTION_LENGTH)] |
| 42 | HRESULT length( [retval, out] long *p ); |
| 43 | |
| 44 | [propget, id(DISPID_XMLELEMENTCOLLECTION_NEWENUM)] |
| 45 | HRESULT _newEnum( [retval, out] IUnknown ** ppUnk ); |
| 46 | |
| 47 | [id(DISPID_XMLELEMENTCOLLECTION_ITEM)] |
| 48 | HRESULT item( |
| 49 | [optional, in] VARIANT var1, |
| 50 | [optional, in] VARIANT var2, |
| 51 | [retval, out] IDispatch ** ppDisp ); |
| 52 | }; |
| 53 | |
| 54 | [ |
| 55 | local, |
Vijay Kiran Kamuju | 9508286 | 2005-06-22 18:04:18 +0000 | [diff] [blame] | 56 | object, |
| 57 | uuid(3f7f31ac-e15f-11d0-9c25-00c04fc99c8e) |
Mike McCormack | 6e69a36 | 2005-05-16 08:46:55 +0000 | [diff] [blame] | 58 | ] |
| 59 | interface IXMLElement : IDispatch |
| 60 | { |
| 61 | [propget, id(DISPID_XMLELEMENT_TAGNAME)] |
| 62 | HRESULT tagName( [retval, out] BSTR *p); |
| 63 | |
| 64 | [propput, id(DISPID_XMLELEMENT_TAGNAME)] |
| 65 | HRESULT tagName( [in] BSTR p ); |
| 66 | |
| 67 | [propget, id(DISPID_XMLELEMENT_PARENT)] |
| 68 | HRESULT parent( [retval, out] IXMLElement **parent ); |
| 69 | |
| 70 | [id(DISPID_XMLELEMENT_SETATTRIBUTE)] |
| 71 | HRESULT setAttribute( |
| 72 | [in] BSTR strPropertyName, |
| 73 | [in] VARIANT PropertyValue ); |
| 74 | |
| 75 | [id(DISPID_XMLELEMENT_GETATTRIBUTE)] |
| 76 | HRESULT getAttribute( |
| 77 | [in] BSTR strPropertyName, |
| 78 | [retval, out] VARIANT *PropertyValue ); |
| 79 | |
| 80 | [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE)] |
| 81 | HRESULT removeAttribute( |
| 82 | [in] BSTR strPropertyName ); |
| 83 | |
| 84 | [propget, id(DISPID_XMLELEMENT_CHILDREN)] |
| 85 | HRESULT children( [retval, out] IXMLElementCollection **p ); |
| 86 | |
| 87 | [propget, id(DISPID_XMLELEMENT_TYPE)] |
| 88 | HRESULT type( [retval, out] long *p ); |
| 89 | |
| 90 | [propget, id(DISPID_XMLELEMENT_TEXT)] |
| 91 | HRESULT text( [retval, out] BSTR *p ); |
| 92 | |
| 93 | [propput, id(DISPID_XMLELEMENT_TEXT)] |
| 94 | HRESULT text( [in] BSTR p ); |
| 95 | |
| 96 | [id(DISPID_XMLELEMENT_ADDCHILD)] |
| 97 | HRESULT addChild( |
| 98 | [in] IXMLElement *pChildElem, |
| 99 | [in] long lIndex, |
| 100 | [in] long lreserved ); |
| 101 | |
| 102 | [id(DISPID_XMLELEMENT_REMOVECHILD)] |
| 103 | HRESULT removeChild( |
| 104 | [in] IXMLElement *pChildElem ); |
| 105 | }; |
| 106 | |
| 107 | [ |
| 108 | local, |
Vijay Kiran Kamuju | 9508286 | 2005-06-22 18:04:18 +0000 | [diff] [blame] | 109 | object, |
| 110 | uuid(f52e2b61-18a1-11d1-b105-00805f49916b) |
Mike McCormack | 6e69a36 | 2005-05-16 08:46:55 +0000 | [diff] [blame] | 111 | ] |
| 112 | interface IXMLDocument : IDispatch |
| 113 | { |
| 114 | [propget, id(DISPID_XMLDOCUMENT_ROOT)] |
| 115 | HRESULT root( [retval, out] IXMLElement **p ); |
| 116 | |
| 117 | [propget, id(DISPID_XMLDOCUMENT_FILESIZE)] |
| 118 | HRESULT fileSize( [retval, out] BSTR *p ); |
| 119 | |
| 120 | [propget, id(DISPID_XMLDOCUMENT_FILEMODIFIEDDATE)] |
| 121 | HRESULT fileModifiedDate( [retval, out] BSTR *p ); |
| 122 | |
| 123 | [propget, id(DISPID_XMLDOCUMENT_FILEUPDATEDDATE)] |
| 124 | HRESULT fileUpdatedDate( [retval, out] BSTR *p ); |
| 125 | |
| 126 | [propget, id(DISPID_XMLDOCUMENT_URL)] |
| 127 | HRESULT URL( [retval, out] BSTR *p ); |
| 128 | |
| 129 | [propput, id(DISPID_XMLDOCUMENT_URL)] |
| 130 | HRESULT URL( [in] BSTR p ); |
| 131 | |
| 132 | [propget, id(DISPID_XMLDOCUMENT_MIMETYPE)] |
| 133 | HRESULT mimeType( [retval, out] BSTR *p ); |
| 134 | |
| 135 | [propget, id(DISPID_XMLDOCUMENT_READYSTATE)] |
| 136 | HRESULT readyState( [retval, out] long *p ); |
| 137 | |
| 138 | [propget, id(DISPID_XMLDOCUMENT_CHARSET)] |
| 139 | HRESULT charset( [retval, out] BSTR *p ); |
| 140 | |
| 141 | [propput, id(DISPID_XMLDOCUMENT_CHARSET)] |
| 142 | HRESULT charset( [in] BSTR p ); |
| 143 | |
| 144 | [propget, id(DISPID_XMLDOCUMENT_VERSION)] |
| 145 | HRESULT version( [retval, out] BSTR *p ); |
| 146 | |
| 147 | [propget, id(DISPID_XMLDOCUMENT_DOCTYPE)] |
| 148 | HRESULT doctype( [retval, out] BSTR *p ); |
| 149 | |
| 150 | [propget, id(DISPID_XMLDOCUMENT_DTDURL)] |
| 151 | HRESULT dtdURl( [retval, out] BSTR *p ); |
| 152 | |
| 153 | [id(DISPID_XMLDOCUMENT_CREATEELEMENT)] |
| 154 | HRESULT createElement( |
| 155 | [in] VARIANT vType, |
| 156 | [optional, in] VARIANT var1, |
| 157 | [retval, out] IXMLElement **ppElem ); |
| 158 | }; |
Vijay Kiran Kamuju | 9508286 | 2005-06-22 18:04:18 +0000 | [diff] [blame] | 159 | |
Vijay Kiran Kamuju | a52310a | 2005-07-02 10:48:16 +0000 | [diff] [blame] | 160 | [ |
| 161 | local, |
| 162 | object, |
| 163 | uuid(2B8DE2FF-8D2D-11d1-B2FC-00C04FD915A9) |
| 164 | ] |
| 165 | interface IXMLElement2 : IDispatch |
| 166 | { |
| 167 | [propget, id(DISPID_XMLELEMENT_TAGNAME)] |
| 168 | HRESULT tagName([retval, out] BSTR *p); |
| 169 | |
| 170 | [propput, id(DISPID_XMLELEMENT_TAGNAME)] |
| 171 | HRESULT tagName([in] BSTR p); |
| 172 | |
| 173 | [propget, id(DISPID_XMLELEMENT_PARENT)] |
| 174 | HRESULT parent([retval, out]IXMLElement2 **ppParent); |
| 175 | |
| 176 | [id(DISPID_XMLELEMENT_SETATTRIBUTE)] |
| 177 | HRESULT setAttribute( |
| 178 | [in] BSTR strPropertyName, |
| 179 | [in] VARIANT PropertyValue); |
| 180 | |
| 181 | [id(DISPID_XMLELEMENT_GETATTRIBUTE)] |
| 182 | HRESULT getAttribute( |
| 183 | [in] BSTR strPropertyName, |
| 184 | [retval, out] VARIANT *PropertyValue); |
| 185 | |
| 186 | [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE)] |
| 187 | HRESULT removeAttribute([in] BSTR strPropertyName); |
| 188 | |
| 189 | [propget, id(DISPID_XMLELEMENT_CHILDREN)] |
| 190 | HRESULT children([retval, out] IXMLElementCollection **pp); |
| 191 | |
| 192 | [propget, id(DISPID_XMLELEMENT_TYPE)] |
| 193 | HRESULT type([retval, out] long *plType); |
| 194 | |
| 195 | [propget, id(DISPID_XMLELEMENT_TEXT)] |
| 196 | HRESULT text([retval, out] BSTR *p); |
| 197 | |
| 198 | [propput, id(DISPID_XMLELEMENT_TEXT)] |
| 199 | HRESULT text([in] BSTR p); |
| 200 | |
| 201 | [id(DISPID_XMLELEMENT_ADDCHILD)] |
| 202 | HRESULT addChild( |
| 203 | [in] IXMLElement2 *pChildElem, |
Robert Shearman | 4bd0ec1 | 2005-08-26 08:47:54 +0000 | [diff] [blame] | 204 | [in] long lIndex, |
| 205 | [in] long lReserved); |
Vijay Kiran Kamuju | a52310a | 2005-07-02 10:48:16 +0000 | [diff] [blame] | 206 | |
| 207 | [id(DISPID_XMLELEMENT_REMOVECHILD)] |
| 208 | HRESULT removeChild([in]IXMLElement2 *pChildElem); |
| 209 | |
| 210 | [propget, id(DISPID_XMLELEMENT_ATTRIBUTES)] |
| 211 | HRESULT attributes([retval, out] IXMLElementCollection **pp); |
| 212 | }; |
| 213 | |
| 214 | [ |
| 215 | local, |
| 216 | object, |
| 217 | uuid(2B8DE2FE-8D2D-11d1-B2FC-00C04FD915A9) |
| 218 | ] |
| 219 | interface IXMLDocument2 : IDispatch |
| 220 | { |
| 221 | [propget, id(DISPID_XMLDOCUMENT_ROOT)] |
| 222 | HRESULT root([retval, out] IXMLElement2 **p); |
| 223 | |
| 224 | [propget, id(DISPID_XMLDOCUMENT_FILESIZE)] |
| 225 | HRESULT fileSize([retval, out] BSTR *p); |
| 226 | |
| 227 | [propget, id(DISPID_XMLDOCUMENT_FILEMODIFIEDDATE)] |
| 228 | HRESULT fileModifiedDate([retval, out] BSTR *p); |
| 229 | |
| 230 | [propget, id(DISPID_XMLDOCUMENT_FILEUPDATEDDATE)] |
| 231 | HRESULT fileUpdatedDate([retval, out] BSTR *p); |
| 232 | |
| 233 | [propget, id(DISPID_XMLDOCUMENT_URL)] |
| 234 | HRESULT URL([retval, out] BSTR *p); |
| 235 | |
| 236 | [propput, id(DISPID_XMLDOCUMENT_URL)] |
| 237 | HRESULT URL([in] BSTR p); |
| 238 | |
| 239 | [propget, id(DISPID_XMLDOCUMENT_MIMETYPE)] |
| 240 | HRESULT mimeType([retval, out] BSTR *p); |
| 241 | |
| 242 | [propget, id(DISPID_XMLDOCUMENT_READYSTATE)] |
| 243 | HRESULT readyState([retval, out]long *pl); |
| 244 | |
| 245 | [propget, id(DISPID_XMLDOCUMENT_CHARSET)] |
| 246 | HRESULT charset([retval, out]BSTR *p); |
| 247 | |
| 248 | [propput, id(DISPID_XMLDOCUMENT_CHARSET)] |
| 249 | HRESULT charset([in]BSTR p); |
| 250 | |
| 251 | [propget, id(DISPID_XMLDOCUMENT_VERSION)] |
| 252 | HRESULT version([retval, out]BSTR *p); |
| 253 | |
| 254 | [propget, id(DISPID_XMLDOCUMENT_DOCTYPE)] |
| 255 | HRESULT doctype([retval, out]BSTR *p); |
| 256 | |
| 257 | [propget, restricted, id(DISPID_XMLDOCUMENT_DTDURL)] |
| 258 | HRESULT dtdURL([retval, out]BSTR *p); |
| 259 | |
| 260 | [id(DISPID_XMLDOCUMENT_CREATEELEMENT)] |
| 261 | HRESULT createElement( |
| 262 | [in] VARIANT vType, |
| 263 | [optional, in] VARIANT var, |
| 264 | [retval, out] IXMLElement2 **ppElem); |
| 265 | |
| 266 | [propget, id(DISPID_XMLDOCUMENT_ASYNC)] |
| 267 | HRESULT async([retval, out] VARIANT_BOOL *pf); |
| 268 | |
| 269 | [propput, id(DISPID_XMLDOCUMENT_ASYNC)] |
| 270 | HRESULT async([in] VARIANT_BOOL f); |
| 271 | }; |
| 272 | |
Vijay Kiran Kamuju | 9508286 | 2005-06-22 18:04:18 +0000 | [diff] [blame] | 273 | typedef enum tagXMLEMEM_TYPE { |
| 274 | XMLELEMTYPE_ELEMENT = 0, |
| 275 | XMLELEMTYPE_TEXT = 1, |
| 276 | XMLELEMTYPE_COMMENT = 2, |
| 277 | XMLELEMTYPE_DOCUMENT = 3, |
| 278 | XMLELEMTYPE_DTD = 4, |
| 279 | XMLELEMTYPE_PI = 5, |
| 280 | XMLELEMTYPE_OTHER = 6 |
| 281 | } XMLELEM_TYPE; |
| 282 | |
| 283 | typedef struct _xml_error { |
| 284 | UINT _nLine; |
| 285 | BSTR _pchBuf; |
| 286 | BSTR _cchBuf; |
| 287 | UINT _ich; |
| 288 | BSTR _pszFound; |
| 289 | BSTR _pszExpected; |
| 290 | DWORD _reserved1; |
| 291 | DWORD _reserved2; |
| 292 | } XML_ERROR; |
| 293 | |
| 294 | [ |
| 295 | local, |
| 296 | object, |
Vijay Kiran Kamuju | 9feda99 | 2005-06-22 18:29:35 +0000 | [diff] [blame] | 297 | uuid(d4d4a0fc-3b73-11d1-b2b4-00c04fb92596) |
| 298 | ] |
| 299 | interface IXMLAttribute : IDispatch |
| 300 | { |
| 301 | [propget, id(DISPID_XMLATTRIBUTE_NAME)] |
| 302 | HRESULT name( [retval, out] BSTR *p ); |
| 303 | |
| 304 | [propget, id(DISPID_XMLATTRIBUTE_VALUE)] |
| 305 | HRESULT value( [retval, out] BSTR *p ); |
Vijay Kiran Kamuju | 9399b19 | 2005-06-30 20:48:43 +0000 | [diff] [blame] | 306 | }; |
Vijay Kiran Kamuju | 9feda99 | 2005-06-22 18:29:35 +0000 | [diff] [blame] | 307 | |
| 308 | [ |
| 309 | local, |
| 310 | object, |
Vijay Kiran Kamuju | 9508286 | 2005-06-22 18:04:18 +0000 | [diff] [blame] | 311 | uuid(948c5ad3-c58d-11d0-9c0b-00c04fc99c8e) |
| 312 | ] |
| 313 | interface IXMLError : IUnknown |
| 314 | { |
| 315 | HRESULT GetErrorInfo([out]XML_ERROR *pErrorReturn); |
Vijay Kiran Kamuju | 9399b19 | 2005-06-30 20:48:43 +0000 | [diff] [blame] | 316 | }; |
Vijay Kiran Kamuju | 9508286 | 2005-06-22 18:04:18 +0000 | [diff] [blame] | 317 | |
| 318 | [ |
Vijay Kiran Kamuju | d24938a | 2005-07-05 14:07:10 +0000 | [diff] [blame] | 319 | object, |
| 320 | local, |
| 321 | uuid(D9F1E15A-CCDB-11d0-9C0C-00C04FC99C8E) |
| 322 | ] |
| 323 | interface IXMLElementNotificationSink : IDispatch |
| 324 | { |
| 325 | [id(DISPID_XMLNOTIFSINK_CHILDADDED)] |
| 326 | HRESULT ChildAdded([in]IDispatch *pChildElem); |
| 327 | }; |
| 328 | |
| 329 | [ |
Vijay Kiran Kamuju | 9508286 | 2005-06-22 18:04:18 +0000 | [diff] [blame] | 330 | uuid(cfc399af-d876-11d0-9c10-00c04fc99c8e) |
| 331 | ] |
| 332 | coclass XMLDocument |
| 333 | { |
| 334 | [default] interface IXMLDocument; |
Vijay Kiran Kamuju | 9399b19 | 2005-06-30 20:48:43 +0000 | [diff] [blame] | 335 | }; |