blob: 37f2146fb8a8d5ce44f968d82ed6956c03c276a2 [file] [log] [blame]
#pragma once
//-------------------------------------------------------------------------------------------------
// <copyright file="xmlutil.h" company="Outercurve Foundation">
// Copyright (c) 2004, Outercurve Foundation.
// This software is released under Microsoft Reciprocal License (MS-RL).
// The license and further copyright text can be found in the file
// LICENSE.TXT at the root directory of the distribution.
// </copyright>
//
// <summary>
// XML helper functions.
// </summary>
//-------------------------------------------------------------------------------------------------
// constant XML CLSIDs and IIDs
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument = {0x2933BF90, 0x7B36, 0x11d2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument20 = {0xF6D90F11, 0x9C73, 0x11D3, {0xB3, 0x2E, 0x00, 0xC0, 0x4F, 0x99, 0x0B, 0xB4}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument26 = {0xf5078f1b, 0xc551, 0x11d3, {0x89, 0xb9, 0x00, 0x00, 0xf8, 0x1f, 0xe2, 0x21}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument30 = {0xf5078f32, 0xc551, 0x11d3, {0x89, 0xb9, 0x00, 0x00, 0xf8, 0x1f, 0xe2, 0x21}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument40 = {0x88d969c0, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument50 = {0x88d969e5, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument60 = {0x88d96a05, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_XMLSchemaCache = {0x88d969c2, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMDocument = {0x2933BF81, 0x7B36, 0x11D2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMDocument2 = {0x2933BF95, 0x7B36, 0x11D2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMSchemaCollection = {0x373984C8, 0xB845, 0x449B, {0x91, 0xE7, 0x45, 0xAC, 0x83, 0x03, 0x6A, 0xDE}};
enum XML_LOAD_ATTRIBUTE
{
XML_LOAD_PRESERVE_WHITESPACE = 1,
};
#ifdef __cplusplus
extern "C" {
#endif
HRESULT DAPI XmlInitialize();
void DAPI XmlUninitialize();
HRESULT DAPI XmlCreateElement(
__in IXMLDOMDocument *pixdDocument,
__in_z LPCWSTR wzElementName,
__out IXMLDOMElement **ppixnElement
);
HRESULT DAPI XmlCreateDocument(
__in_opt LPCWSTR pwzElementName,
__out IXMLDOMDocument** ppixdDocument,
__out_opt IXMLDOMElement** ppixeRootElement = NULL
);
HRESULT DAPI XmlLoadDocument(
__in_z LPCWSTR wzDocument,
__out IXMLDOMDocument** ppixdDocument
);
HRESULT DAPI XmlLoadDocumentEx(
__in_z LPCWSTR wzDocument,
__in DWORD dwAttributes,
__out IXMLDOMDocument** ppixdDocument
);
HRESULT DAPI XmlLoadDocumentFromFile(
__in_z LPCWSTR wzPath,
__out IXMLDOMDocument** ppixdDocument
);
HRESULT DAPI XmlLoadDocumentFromBuffer(
__in_bcount(cbSource) const BYTE* pbSource,
__in DWORD cbSource,
__out IXMLDOMDocument** ppixdDocument
);
HRESULT DAPI XmlLoadDocumentFromFileEx(
__in_z LPCWSTR wzPath,
__in DWORD dwAttributes,
__out IXMLDOMDocument** ppixdDocument
);
HRESULT DAPI XmlSelectSingleNode(
__in IXMLDOMNode* pixnParent,
__in_z LPCWSTR wzXPath,
__out IXMLDOMNode **ppixnChild
);
HRESULT DAPI XmlSetAttribute(
__in IXMLDOMNode* pixnNode,
__in_z LPCWSTR pwzAttribute,
__in_z LPCWSTR pwzAttributeValue
);
HRESULT DAPI XmlCreateTextNode(
__in IXMLDOMDocument *pixdDocument,
__in_z LPCWSTR wzText,
__out IXMLDOMText **ppixnTextNode
);
HRESULT DAPI XmlGetText(
__in IXMLDOMNode* pixnNode,
__deref_out_z BSTR* pbstrText
);
HRESULT DAPI XmlGetAttribute(
__in IXMLDOMNode* pixnNode,
__in_z LPCWSTR pwzAttribute,
__deref_out_z BSTR* pbstrAttributeValue
);
HRESULT DAPI XmlGetAttributeEx(
__in IXMLDOMNode* pixnNode,
__in_z LPCWSTR wzAttribute,
__deref_out_z LPWSTR* psczAttributeValue
);
HRESULT DAPI XmlGetYesNoAttribute(
__in IXMLDOMNode* pixnNode,
__in_z LPCWSTR wzAttribute,
__out BOOL* pfYes
);
HRESULT DAPI XmlGetAttributeNumber(
__in IXMLDOMNode* pixnNode,
__in_z LPCWSTR pwzAttribute,
__out DWORD* pdwValue
);
HRESULT DAPI XmlGetAttributeNumberBase(
__in IXMLDOMNode* pixnNode,
__in_z LPCWSTR pwzAttribute,
__in int nBase,
__out DWORD* pdwValue
);
HRESULT DAPI XmlGetAttributeLargeNumber(
__in IXMLDOMNode* pixnNode,
__in_z LPCWSTR pwzAttribute,
__out DWORD64* pdw64Value
);
HRESULT DAPI XmlGetNamedItem(
__in IXMLDOMNamedNodeMap *pixnmAttributes,
__in_opt LPCWSTR wzName,
__out IXMLDOMNode **ppixnNamedItem
);
HRESULT DAPI XmlSetText(
__in IXMLDOMNode* pixnNode,
__in_z LPCWSTR pwzText
);
HRESULT DAPI XmlSetTextNumber(
__in IXMLDOMNode *pixnNode,
__in DWORD dwValue
);
HRESULT DAPI XmlCreateChild(
__in IXMLDOMNode* pixnParent,
__in_z LPCWSTR pwzElementType,
__out IXMLDOMNode** ppixnChild
);
HRESULT DAPI XmlRemoveAttribute(
__in IXMLDOMNode* pixnNode,
__in_z LPCWSTR pwzAttribute
);
HRESULT DAPI XmlSelectNodes(
__in IXMLDOMNode* pixnParent,
__in_z LPCWSTR wzXPath,
__out IXMLDOMNodeList **ppixnChild
);
HRESULT DAPI XmlNextAttribute(
__in IXMLDOMNamedNodeMap* pixnnm,
__out IXMLDOMNode** pixnAttribute,
__deref_opt_out_z_opt BSTR* pbstrAttribute
);
HRESULT DAPI XmlNextElement(
__in IXMLDOMNodeList* pixnl,
__out IXMLDOMNode** pixnElement,
__deref_opt_out_z_opt BSTR* pbstrElement
);
HRESULT DAPI XmlRemoveChildren(
__in IXMLDOMNode* pixnSource,
__in_z LPCWSTR pwzXPath
);
HRESULT DAPI XmlSaveDocument(
__in IXMLDOMDocument* pixdDocument,
__inout LPCWSTR wzPath
);
HRESULT DAPI XmlSaveDocumentToBuffer(
__in IXMLDOMDocument* pixdDocument,
__deref_out_bcount(*pcbDest) BYTE** ppbDest,
__out DWORD* pcbDest
);
#ifdef __cplusplus
}
#endif