"Piotr Caban" piotr.caban@gmail.com wrote in message news:200807170041.01333.piotr.caban@gmail.com... +/*** LibXML callbacks ***/ +static void libxmlStartDocument(void *ctx) +{ + saxlocator *This = ctx; + HRESULT hr; + + if(This->saxreader->contentHandler) + { + hr = ISAXContentHandler_startDocument(This->saxreader->contentHandler); + if(FAILED(hr)) + { + xmlStopParser(This->pParserCtxt); + This->ret = hr; + } Hi Piotr,
Should This->ret be set on a non-error?
Best Regards Alistair Leslie-Hughes _________________________________________________________________ Are you paid what you're worth? Find out: SEEK Salary Centre http://a.ninemsn.com.au/b.aspx?URL=http%3A%2F%2Fninemsn%2Eseek%2Ecom%2Eau%2F...
On Thursday 17 of July 2008 04:07:29 you wrote:
"Piotr Caban" piotr.caban@gmail.com wrote in message news:200807170041.01333.piotr.caban@gmail.com... +/*** LibXML callbacks ***/ +static void libxmlStartDocument(void *ctx) +{
- saxlocator *This = ctx;
- HRESULT hr;
- if(This->saxreader->contentHandler)
- {
- hr = ISAXContentHandler_startDocument(This->saxreader->contentHandler);
- if(FAILED(hr))
- {
- xmlStopParser(This->pParserCtxt);
- This->ret = hr;
- }
Hi Piotr,
Should This->ret be set on a non-error?
When ISAXErrorHandler is not registered ISAXXMLReader_parse stops only when ISAXContentHandler returns negative value. This is why the parser is stopped and return value is set only if FAILED(hr) returns true. I don't know how it works when ISAXErrorHandler is registered. I will check it when adding the interface. When ISAXXMLReader_parse parses whole document S_OK is returned. In this case This->ret should not be changed.
Best Regards Alistair Leslie-Hughes
Regards, Piotr Caban