Module: wine Branch: master Commit: 75681ef314461517052af38c2a533138e049b05b URL: http://source.winehq.org/git/wine.git/?a=commit;h=75681ef314461517052af38c2a...
Author: Piotr Caban piotr.caban@gmail.com Date: Sat Jul 19 22:41:39 2008 +0200
msxml3: Added support for SafeArrays in ISAXXMLReader_parse.
---
dlls/msxml3/saxreader.c | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c index 9250c61..f0d1ef5 100644 --- a/dlls/msxml3/saxreader.c +++ b/dlls/msxml3/saxreader.c @@ -1064,6 +1064,25 @@ static HRESULT WINAPI isaxxmlreader_parse( if(xmlParseDocument(locator->pParserCtxt)) hr = E_FAIL; else hr = locator->ret; break; + case VT_ARRAY|VT_UI1: + locator->pParserCtxt = xmlNewParserCtxt(); + if(!locator->pParserCtxt) + { + hr = E_FAIL; + break; + } + + hr = SafeArrayAccessData(V_ARRAY(&varInput), (void**)&data); + if(hr != S_OK) break; + xmlSetupParserForBuffer(locator->pParserCtxt, data, NULL); + SafeArrayUnaccessData(V_ARRAY(&varInput)); + + locator->pParserCtxt->sax = &locator->saxreader->sax; + locator->pParserCtxt->userData = locator; + + if(xmlParseDocument(locator->pParserCtxt)) hr = E_FAIL; + else hr = locator->ret; + break; default: hr = E_NOTIMPL; }