Module: wine Branch: master Commit: 965a2ea5dd944576ae2d260d23e71b1418f01965 URL: http://source.winehq.org/git/wine.git/?a=commit;h=965a2ea5dd944576ae2d260d23...
Author: Piotr Caban piotr.caban@gmail.com Date: Thu Jul 17 00:41:27 2008 +0200
msxml3: Added ISAXContentHandler_startElement event.
---
dlls/msxml3/saxreader.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c index 55da4db..7c79af0 100644 --- a/dlls/msxml3/saxreader.c +++ b/dlls/msxml3/saxreader.c @@ -120,6 +120,51 @@ static void libxmlEndDocument(void *ctx) } }
+static void libxmlStartElementNS( + void *ctx, + const xmlChar *localname, + const xmlChar *prefix, + const xmlChar *URI, + int nb_namespaces, + const xmlChar **namespaces, + int nb_attributes, + int nb_defaulted, + const xmlChar **attributes) +{ + BSTR NamespaceUri, LocalName, QName; + saxlocator *This = ctx; + HRESULT hr; + + FIXME("Arguments processing not yet implemented.\n"); + + This->lastColumn = xmlSAX2GetColumnNumber(This->pParserCtxt)+1; + 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_startElement( + This->saxreader->contentHandler, + NamespaceUri, SysStringLen(NamespaceUri), + LocalName, SysStringLen(LocalName), + QName, SysStringLen(QName), + NULL); + + 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) @@ -920,6 +965,7 @@ HRESULT SAXXMLReader_create(IUnknown *pUnkOuter, LPVOID *ppObj) reader->sax.initialized = XML_SAX2_MAGIC; reader->sax.startDocument = libxmlStartDocument; reader->sax.endDocument = libxmlEndDocument; + reader->sax.startElementNs = libxmlStartElementNS;
*ppObj = &reader->lpVtbl;