Piotr Caban : msxml3: Add ISAXContentHandler_startPrefixMapping event.

Alexandre Julliard julliard at winehq.org
Mon Aug 4 08:53:43 CDT 2008


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

Author: Piotr Caban <piotr.caban at gmail.com>
Date:   Sun Aug  3 17:03:28 2008 +0200

msxml3: Add ISAXContentHandler_startPrefixMapping event.

---

 dlls/msxml3/saxreader.c |   28 +++++++++++++++++++++++++++-
 1 files changed, 27 insertions(+), 1 deletions(-)

diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c
index 0cdd0c1..0d0a091 100644
--- a/dlls/msxml3/saxreader.c
+++ b/dlls/msxml3/saxreader.c
@@ -919,15 +919,41 @@ static void libxmlStartElementNS(
         int nb_defaulted,
         const xmlChar **attributes)
 {
-    BSTR NamespaceUri, LocalName, QName;
+    BSTR NamespaceUri, LocalName, QName, Prefix, Uri;
     saxlocator *This = ctx;
     HRESULT hr;
     saxattributes *attr;
+    int index;
 
     update_position(This, (xmlChar*)This->pParserCtxt->input->cur+1);
 
     if(This->saxreader->contentHandler)
     {
+        for(index=0; index<nb_namespaces; index++)
+        {
+            Prefix = bstr_from_xmlChar(namespaces[2*index]);
+            Uri = bstr_from_xmlChar(namespaces[2*index+1]);
+
+            if(This->vbInterface)
+                hr = IVBSAXContentHandler_startPrefixMapping(
+                        This->saxreader->vbcontentHandler,
+                        &Prefix, &Uri);
+            else
+                hr = ISAXContentHandler_startPrefixMapping(
+                        This->saxreader->contentHandler,
+                        Prefix, SysStringLen(Prefix),
+                        Uri, SysStringLen(Uri));
+
+            SysFreeString(Prefix);
+            SysFreeString(Uri);
+
+            if(hr != S_OK)
+            {
+                format_error_message_from_id(This, hr);
+                return;
+            }
+        }
+
         NamespaceUri = bstr_from_xmlChar(URI);
         LocalName = bstr_from_xmlChar(localname);
         QName = QName_from_xmlChar(prefix, localname);




More information about the wine-cvs mailing list