diff --git a/include/.cvsignore b/include/.cvsignore index f58f66cc410..4e5b4fa2c09 100644 --- a/include/.cvsignore +++ b/include/.cvsignore @@ -15,6 +15,7 @@ mlang.h mmstream.h mshtmhst.h mshtml.h +msxml.h oaidl.h objidl.h ocidl.h diff --git a/include/Makefile.in b/include/Makefile.in index a46acd61e83..bd2c7a33bbc 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -20,6 +20,7 @@ IDL_SRCS = \ mmstream.idl \ mshtmhst.idl \ mshtml.idl \ + msxml.idl \ oaidl.idl \ objidl.idl \ ocidl.idl \ @@ -170,6 +171,7 @@ WINDOWS_INCLUDES = \ msiquery.h \ mssip.h \ mswsock.h \ + msxmldid.h \ nb30.h \ npapi.h \ nspapi.h \ diff --git a/include/msxml.idl b/include/msxml.idl new file mode 100644 index 00000000000..14d5ad15fd5 --- /dev/null +++ b/include/msxml.idl @@ -0,0 +1,154 @@ +/* + * Copyright (C) 2005 Mike McCormack + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "msxmldid.h" + +import "unknwn.idl"; +import "wtypes.idl"; +import "objidl.idl"; +import "oaidl.idl"; + +[ +local, +object, +odl, +dual, +oleautomation, +uuid(65725580-9b5d-11d0-9bfe-00c04fc99c8e) +] +interface IXMLElementCollection : IDispatch +{ + [propput, id(DISPID_XMLELEMENTCOLLECTION_LENGTH)] + HRESULT length( [in] long v ); + + [propget, id(DISPID_XMLELEMENTCOLLECTION_LENGTH)] + HRESULT length( [retval, out] long *p ); + + [propget, id(DISPID_XMLELEMENTCOLLECTION_NEWENUM)] + HRESULT _newEnum( [retval, out] IUnknown ** ppUnk ); + + [id(DISPID_XMLELEMENTCOLLECTION_ITEM)] + HRESULT item( + [optional, in] VARIANT var1, + [optional, in] VARIANT var2, + [retval, out] IDispatch ** ppDisp ); +}; + +[ +local, +object +] +interface IXMLElement : IDispatch +{ + [propget, id(DISPID_XMLELEMENT_TAGNAME)] + HRESULT tagName( [retval, out] BSTR *p); + + [propput, id(DISPID_XMLELEMENT_TAGNAME)] + HRESULT tagName( [in] BSTR p ); + + [propget, id(DISPID_XMLELEMENT_PARENT)] + HRESULT parent( [retval, out] IXMLElement **parent ); + + [id(DISPID_XMLELEMENT_SETATTRIBUTE)] + HRESULT setAttribute( + [in] BSTR strPropertyName, + [in] VARIANT PropertyValue ); + + [id(DISPID_XMLELEMENT_GETATTRIBUTE)] + HRESULT getAttribute( + [in] BSTR strPropertyName, + [retval, out] VARIANT *PropertyValue ); + + [id(DISPID_XMLELEMENT_REMOVEATTRIBUTE)] + HRESULT removeAttribute( + [in] BSTR strPropertyName ); + + [propget, id(DISPID_XMLELEMENT_CHILDREN)] + HRESULT children( [retval, out] IXMLElementCollection **p ); + + [propget, id(DISPID_XMLELEMENT_TYPE)] + HRESULT type( [retval, out] long *p ); + + [propget, id(DISPID_XMLELEMENT_TEXT)] + HRESULT text( [retval, out] BSTR *p ); + + [propput, id(DISPID_XMLELEMENT_TEXT)] + HRESULT text( [in] BSTR p ); + + [id(DISPID_XMLELEMENT_ADDCHILD)] + HRESULT addChild( + [in] IXMLElement *pChildElem, + [in] long lIndex, + [in] long lreserved ); + + [id(DISPID_XMLELEMENT_REMOVECHILD)] + HRESULT removeChild( + [in] IXMLElement *pChildElem ); +}; + +[ +local, +object +] +interface IXMLDocument : IDispatch +{ + [propget, id(DISPID_XMLDOCUMENT_ROOT)] + HRESULT root( [retval, out] IXMLElement **p ); + + [propget, id(DISPID_XMLDOCUMENT_FILESIZE)] + HRESULT fileSize( [retval, out] BSTR *p ); + + [propget, id(DISPID_XMLDOCUMENT_FILEMODIFIEDDATE)] + HRESULT fileModifiedDate( [retval, out] BSTR *p ); + + [propget, id(DISPID_XMLDOCUMENT_FILEUPDATEDDATE)] + HRESULT fileUpdatedDate( [retval, out] BSTR *p ); + + [propget, id(DISPID_XMLDOCUMENT_URL)] + HRESULT URL( [retval, out] BSTR *p ); + + [propput, id(DISPID_XMLDOCUMENT_URL)] + HRESULT URL( [in] BSTR p ); + + [propget, id(DISPID_XMLDOCUMENT_MIMETYPE)] + HRESULT mimeType( [retval, out] BSTR *p ); + + [propget, id(DISPID_XMLDOCUMENT_READYSTATE)] + HRESULT readyState( [retval, out] long *p ); + + [propget, id(DISPID_XMLDOCUMENT_CHARSET)] + HRESULT charset( [retval, out] BSTR *p ); + + [propput, id(DISPID_XMLDOCUMENT_CHARSET)] + HRESULT charset( [in] BSTR p ); + + [propget, id(DISPID_XMLDOCUMENT_VERSION)] + HRESULT version( [retval, out] BSTR *p ); + + [propget, id(DISPID_XMLDOCUMENT_DOCTYPE)] + HRESULT doctype( [retval, out] BSTR *p ); + + [propget, id(DISPID_XMLDOCUMENT_DTDURL)] + HRESULT dtdURl( [retval, out] BSTR *p ); + + [id(DISPID_XMLDOCUMENT_CREATEELEMENT)] + HRESULT createElement( + [in] VARIANT vType, + [optional, in] VARIANT var1, + [retval, out] IXMLElement **ppElem ); +}; diff --git a/include/msxmldid.h b/include/msxmldid.h new file mode 100644 index 00000000000..c6561ff0970 --- /dev/null +++ b/include/msxmldid.h @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2005 Mike McCormack + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __MSXMLDID_H__ +#define __MSXMLDID_H__ + +#define DISPID_XOBJ_MIN 0x10000 +#define DISPID_XOBJ_MAX 0x1FFFF +#define DISPID_XOBJ_BASE 0x10000 + +#define DISPID_XMLELEMENTCOLLECTION 0x10000 +#define DISPID_XMLELEMENTCOLLECTION_LENGTH 0x10001 +#define DISPID_XMLELEMENTCOLLECTION_NEWENUM DISPID_NEWENUM +#define DISPID_XMLELEMENTCOLLECTION_ITEM 0x10003 + +#define DISPID_XMLDOCUMENT 0x10064 +#define DISPID_XMLDOCUMENT_ROOT 0x10065 +#define DISPID_XMLDOCUMENT_FILESIZE 0x10066 +#define DISPID_XMLDOCUMENT_FILEMODIFIEDDATE 0x10067 +#define DISPID_XMLDOCUMENT_FILEUPDATEDDATE 0x10068 +#define DISPID_XMLDOCUMENT_URL 0x10069 +#define DISPID_XMLDOCUMENT_MIMETYPE 0x1006a +#define DISPID_XMLDOCUMENT_READYSTATE 0x1006b +#define DISPID_XMLDOCUMENT_CREATEELEMENT 0x1006c +#define DISPID_XMLDOCUMENT_CHARSET 0x1006d +#define DISPID_XMLDOCUMENT_VERSION 0x1006e +#define DISPID_XMLDOCUMENT_DOCTYPE 0x1006f +#define DISPID_XMLDOCUMENT_DTDURL 0x10070 +#define DISPID_XMLDOCUMENT_ASYNC 0x10071 +#define DISPID_XMLDOCUMENT_CASEINSENSITIVE 0x10072 + +#define DISPID_XMLELEMENT 0x100c8 +#define DISPID_XMLELEMENT_TAGNAME 0x100c9 +#define DISPID_XMLELEMENT_PARENT 0x100ca +#define DISPID_XMLELEMENT_SETATTRIBUTE 0x100cb +#define DISPID_XMLELEMENT_GETATTRIBUTE 0x100cc +#define DISPID_XMLELEMENT_REMOVEATTRIBUTE 0x100cd +#define DISPID_XMLELEMENT_CHILDREN 0x100ce +#define DISPID_XMLELEMENT_TYPE 0x100cf +#define DISPID_XMLELEMENT_TEXT 0x100d0 +#define DISPID_XMLELEMENT_ADDCHILD 0x100d1 +#define DISPID_XMLELEMENT_REMOVECHILD 0x100d2 +#define DISPID_XMLELEMENT_ATTRIBUTES 0x100d3 + +#define DISPID_XMLNOTIFSINK 0x1012c +#define DISPID_XMLNOTIFSINK_CHILDADDED 0x1012d + +#define DISPID_XMLATTRIBUTE 0x10190 +#define DISPID_XMLATTRIBUTE_NAME 0x10191 +#define DISPID_XMLATTRIBUTE_VALUE 0x10192 + +#endif /* __MSXMLDID_H__ */