Piotr Caban : msxml3: Added ISAXContentHandler_endElement event.
Alexandre Julliard
julliard at winehq.org
Thu Jul 17 06:38:33 CDT 2008
Module: wine
Branch: master
Commit: 669326344fa24c53a32b7b083629f9a33c3ca6be
URL: http://source.winehq.org/git/wine.git/?a=commit;h=669326344fa24c53a32b7b083629f9a33c3ca6be
Author: Piotr Caban <piotr.caban at gmail.com>
Date: Thu Jul 17 00:41:34 2008 +0200
msxml3: Added ISAXContentHandler_endElement event.
---
dlls/msxml3/saxreader.c | 38 ++++++++++++++++++++++++++++++++++++++
1 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c
index 7c79af0..854584f 100644
--- a/dlls/msxml3/saxreader.c
+++ b/dlls/msxml3/saxreader.c
@@ -165,6 +165,43 @@ static void libxmlStartElementNS(
}
}
+static void libxmlEndElementNS(
+ void *ctx,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *URI)
+{
+ BSTR NamespaceUri, LocalName, QName;
+ saxlocator *This = ctx;
+ HRESULT hr;
+
+ This->lastColumn = xmlSAX2GetColumnNumber(This->pParserCtxt);
+ This->lastLine = xmlSAX2GetLineNumber(This->pParserCtxt);
+
+ if(This->saxreader->contentHandler)
+ {
+ NamespaceUri = bstr_from_xmlChar(URI);
+ LocalName = bstr_from_xmlChar(localname);
+ QName = bstr_from_xmlChar(localname);
+
+ hr = ISAXContentHandler_endElement(
+ This->saxreader->contentHandler,
+ NamespaceUri, SysStringLen(NamespaceUri),
+ LocalName, SysStringLen(LocalName),
+ QName, SysStringLen(QName));
+
+ SysFreeString(NamespaceUri);
+ SysFreeString(LocalName);
+ SysFreeString(QName);
+
+ if(FAILED(hr))
+ {
+ xmlStopParser(This->pParserCtxt);
+ This->ret = hr;
+ }
+ }
+}
+
/*** ISAXLocator interface ***/
/*** IUnknown methods ***/
static HRESULT WINAPI isaxlocator_QueryInterface(ISAXLocator* iface, REFIID riid, void **ppvObject)
@@ -966,6 +1003,7 @@ HRESULT SAXXMLReader_create(IUnknown *pUnkOuter, LPVOID *ppObj)
reader->sax.startDocument = libxmlStartDocument;
reader->sax.endDocument = libxmlEndDocument;
reader->sax.startElementNs = libxmlStartElementNS;
+ reader->sax.endElementNs = libxmlEndElementNS;
*ppObj = &reader->lpVtbl;
More information about the wine-cvs
mailing list