2005-05-16 10:46:55 +02:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2005 Mike McCormack
|
2005-07-02 12:48:16 +02:00
|
|
|
* Copyright (C) 2005 Vijay Kiran Kamuju
|
2005-05-16 10:46:55 +02:00
|
|
|
*
|
|
|
|
* 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";
|
|
|
|
|
2005-07-02 12:48:16 +02:00
|
|
|
|
2005-05-16 10:46:55 +02:00
|
|
|
[
|
|
|
|
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,
|
2005-06-22 20:04:18 +02:00
|
|
|
object,
|
|
|
|
uuid(3f7f31ac-e15f-11d0-9c25-00c04fc99c8e)
|
2005-05-16 10:46:55 +02:00
|
|
|
]
|
|
|
|
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,
|
2005-06-22 20:04:18 +02:00
|
|
|
object,
|
|
|
|
uuid(f52e2b61-18a1-11d1-b105-00805f49916b)
|
2005-05-16 10:46:55 +02:00
|
|
|
]
|
|
|
|
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 );
|
|
|
|
};
|
2005-06-22 20:04:18 +02:00
|
|
|
|
2005-07-02 12:48:16 +02:00
|
|
|
[
|
|
|
|
local,
|
|
|
|
object,
|
|
|
|
uuid(2B8DE2FF-8D2D-11d1-B2FC-00C04FD915A9)
|
|
|
|
]
|
|
|
|
interface IXMLElement2 : 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]IXMLElement2 **ppParent);
|
|
|
|
|
|
|
|
[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 **pp);
|
|
|
|
|
|
|
|
[propget, id(DISPID_XMLELEMENT_TYPE)]
|
|
|
|
HRESULT type([retval, out] long *plType);
|
|
|
|
|
|
|
|
[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] IXMLElement2 *pChildElem,
|
|
|
|
[retval, out] long lIndex,
|
|
|
|
[retval, out] long lReserved);
|
|
|
|
|
|
|
|
[id(DISPID_XMLELEMENT_REMOVECHILD)]
|
|
|
|
HRESULT removeChild([in]IXMLElement2 *pChildElem);
|
|
|
|
|
|
|
|
[propget, id(DISPID_XMLELEMENT_ATTRIBUTES)]
|
|
|
|
HRESULT attributes([retval, out] IXMLElementCollection **pp);
|
|
|
|
};
|
|
|
|
|
|
|
|
[
|
|
|
|
local,
|
|
|
|
object,
|
|
|
|
uuid(2B8DE2FE-8D2D-11d1-B2FC-00C04FD915A9)
|
|
|
|
]
|
|
|
|
interface IXMLDocument2 : IDispatch
|
|
|
|
{
|
|
|
|
[propget, id(DISPID_XMLDOCUMENT_ROOT)]
|
|
|
|
HRESULT root([retval, out] IXMLElement2 **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 *pl);
|
|
|
|
|
|
|
|
[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, restricted, id(DISPID_XMLDOCUMENT_DTDURL)]
|
|
|
|
HRESULT dtdURL([retval, out]BSTR *p);
|
|
|
|
|
|
|
|
[id(DISPID_XMLDOCUMENT_CREATEELEMENT)]
|
|
|
|
HRESULT createElement(
|
|
|
|
[in] VARIANT vType,
|
|
|
|
[optional, in] VARIANT var,
|
|
|
|
[retval, out] IXMLElement2 **ppElem);
|
|
|
|
|
|
|
|
[propget, id(DISPID_XMLDOCUMENT_ASYNC)]
|
|
|
|
HRESULT async([retval, out] VARIANT_BOOL *pf);
|
|
|
|
|
|
|
|
[propput, id(DISPID_XMLDOCUMENT_ASYNC)]
|
|
|
|
HRESULT async([in] VARIANT_BOOL f);
|
|
|
|
};
|
|
|
|
|
2005-06-22 20:04:18 +02:00
|
|
|
typedef enum tagXMLEMEM_TYPE {
|
|
|
|
XMLELEMTYPE_ELEMENT = 0,
|
|
|
|
XMLELEMTYPE_TEXT = 1,
|
|
|
|
XMLELEMTYPE_COMMENT = 2,
|
|
|
|
XMLELEMTYPE_DOCUMENT = 3,
|
|
|
|
XMLELEMTYPE_DTD = 4,
|
|
|
|
XMLELEMTYPE_PI = 5,
|
|
|
|
XMLELEMTYPE_OTHER = 6
|
|
|
|
} XMLELEM_TYPE;
|
|
|
|
|
|
|
|
typedef struct _xml_error {
|
|
|
|
UINT _nLine;
|
|
|
|
BSTR _pchBuf;
|
|
|
|
BSTR _cchBuf;
|
|
|
|
UINT _ich;
|
|
|
|
BSTR _pszFound;
|
|
|
|
BSTR _pszExpected;
|
|
|
|
DWORD _reserved1;
|
|
|
|
DWORD _reserved2;
|
|
|
|
} XML_ERROR;
|
|
|
|
|
2005-06-22 20:29:35 +02:00
|
|
|
[
|
|
|
|
local,
|
|
|
|
object,
|
|
|
|
uuid(d4d4a0fc-3b73-11d1-b2b4-00c04fb92596)
|
|
|
|
]
|
|
|
|
interface IXMLAttribute : IDispatch
|
|
|
|
{
|
|
|
|
[propget, id(DISPID_XMLATTRIBUTE_NAME)]
|
|
|
|
HRESULT name( [retval, out] BSTR *p );
|
|
|
|
|
|
|
|
[propget, id(DISPID_XMLATTRIBUTE_VALUE)]
|
|
|
|
HRESULT value( [retval, out] BSTR *p );
|
2005-06-30 22:48:43 +02:00
|
|
|
};
|
2005-06-22 20:29:35 +02:00
|
|
|
|
2005-06-22 20:04:18 +02:00
|
|
|
[
|
|
|
|
local,
|
|
|
|
object,
|
|
|
|
uuid(948c5ad3-c58d-11d0-9c0b-00c04fc99c8e)
|
|
|
|
]
|
|
|
|
interface IXMLError : IUnknown
|
|
|
|
{
|
|
|
|
HRESULT GetErrorInfo([out]XML_ERROR *pErrorReturn);
|
2005-06-30 22:48:43 +02:00
|
|
|
};
|
2005-06-22 20:04:18 +02:00
|
|
|
|
2005-07-05 16:07:10 +02:00
|
|
|
[
|
|
|
|
object,
|
|
|
|
local,
|
|
|
|
uuid(D9F1E15A-CCDB-11d0-9C0C-00C04FC99C8E)
|
|
|
|
]
|
|
|
|
interface IXMLElementNotificationSink : IDispatch
|
|
|
|
{
|
|
|
|
[id(DISPID_XMLNOTIFSINK_CHILDADDED)]
|
|
|
|
HRESULT ChildAdded([in]IDispatch *pChildElem);
|
|
|
|
};
|
|
|
|
|
2005-06-22 20:04:18 +02:00
|
|
|
[
|
|
|
|
uuid(cfc399af-d876-11d0-9c10-00c04fc99c8e)
|
|
|
|
]
|
|
|
|
coclass XMLDocument
|
|
|
|
{
|
|
|
|
[default] interface IXMLDocument;
|
2005-06-30 22:48:43 +02:00
|
|
|
};
|