msxml3: Added ISAXContentHandler_startElement event.

This commit is contained in:
Piotr Caban 2008-07-17 00:41:27 +02:00 committed by Alexandre Julliard
parent c58b24b374
commit 965a2ea5dd
1 changed files with 46 additions and 0 deletions

View File

@ -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;