Piotr Caban : msxml3: Added support for SafeArrays in ISAXXMLReader_parse.

Alexandre Julliard julliard at winehq.org
Mon Jul 21 08:51:38 CDT 2008


Module: wine
Branch: master
Commit: 75681ef314461517052af38c2a533138e049b05b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=75681ef314461517052af38c2a533138e049b05b

Author: Piotr Caban <piotr.caban at 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;
     }




More information about the wine-cvs mailing list