[ros-diffs] [cwittich] 39221: sync msxml3 to wine 1.1.14

cwittich at svn.reactos.org cwittich at svn.reactos.org
Sat Jan 31 12:27:23 CET 2009


Author: cwittich
Date: Sat Jan 31 05:27:22 2009
New Revision: 39221

URL: http://svn.reactos.org/svn/reactos?rev=39221&view=rev
Log:
sync msxml3 to wine 1.1.14

Modified:
    trunk/reactos/dll/win32/msxml3/cdata.c
    trunk/reactos/dll/win32/msxml3/comment.c
    trunk/reactos/dll/win32/msxml3/domdoc.c
    trunk/reactos/dll/win32/msxml3/element.c
    trunk/reactos/dll/win32/msxml3/node.c
    trunk/reactos/dll/win32/msxml3/regsvr.c
    trunk/reactos/dll/win32/msxml3/saxreader.c
    trunk/reactos/dll/win32/msxml3/text.c
    trunk/reactos/dll/win32/msxml3/xmldoc.c
    trunk/reactos/dll/win32/msxml3/xmlelem.c

Modified: trunk/reactos/dll/win32/msxml3/cdata.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/cdata.c?rev=39221&r1=39220&r2=39221&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/cdata.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/cdata.c [iso-8859-1] Sat Jan 31 05:27:22 2009
@@ -520,7 +520,7 @@
     long *len)
 {
     domcdata *This = impl_from_IXMLDOMCDATASection( iface );
-    xmlnode *pDOMNode = impl_from_IXMLDOMNode( (IXMLDOMNode*)This->node );
+    xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
     xmlChar *pContent;
     long nLength = 0;
 
@@ -546,7 +546,7 @@
     long offset, long count, BSTR *p)
 {
     domcdata *This = impl_from_IXMLDOMCDATASection( iface );
-    xmlnode *pDOMNode = impl_from_IXMLDOMNode( (IXMLDOMNode*)This->node );
+    xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
     xmlChar *pContent;
     long nLength = 0;
     HRESULT hr = S_FALSE;
@@ -591,7 +591,7 @@
     BSTR p)
 {
     domcdata *This = impl_from_IXMLDOMCDATASection( iface );
-    xmlnode *pDOMNode = impl_from_IXMLDOMNode( (IXMLDOMNode*)This->node );
+    xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
     xmlChar *pContent;
     HRESULT hr = S_FALSE;
 
@@ -601,7 +601,7 @@
     if(p == NULL || SysStringLen(p) == 0)
         return S_OK;
 
-    pContent = xmlChar_from_wchar( (WCHAR*)p );
+    pContent = xmlChar_from_wchar( p );
     if(pContent)
     {
         if(xmlTextConcat(pDOMNode->node, pContent, SysStringLen(p) ) == 0)
@@ -621,7 +621,7 @@
     long offset, BSTR p)
 {
     domcdata *This = impl_from_IXMLDOMCDATASection( iface );
-    xmlnode *pDOMNode = impl_from_IXMLDOMNode( (IXMLDOMNode*)This->node );
+    xmlnode *pDOMNode = impl_from_IXMLDOMNode( This->node );
     xmlChar *pXmlContent;
     BSTR sNewString;
     HRESULT hr = S_FALSE;
@@ -667,7 +667,7 @@
 
             sNewString[nLengthP + nLength] = 0;
 
-            str = xmlChar_from_wchar((WCHAR*)sNewString);
+            str = xmlChar_from_wchar(sNewString);
             if(str)
             {
                 xmlNodeSetContent(pDOMNode->node, str);

Modified: trunk/reactos/dll/win32/msxml3/comment.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/comment.c?rev=39221&r1=39220&r2=39221&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/comment.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/comment.c [iso-8859-1] Sat Jan 31 05:27:22 2009
@@ -595,7 +595,7 @@
     if(p == NULL || SysStringLen(p) == 0)
         return S_OK;
 
-    pContent = xmlChar_from_wchar( (WCHAR*)p );
+    pContent = xmlChar_from_wchar( p );
     if(pContent)
     {
         /* Older versions of libxml < 2.6.27 didn't correctly support
@@ -675,7 +675,7 @@
 
             sNewString[nLengthP + nLength] = 0;
 
-            str = xmlChar_from_wchar((WCHAR*)sNewString);
+            str = xmlChar_from_wchar(sNewString);
             if(str)
             {
                 xmlNodeSetContent(pDOMNode->node, str);

Modified: trunk/reactos/dll/win32/msxml3/domdoc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/domdoc.c?rev=39221&r1=39220&r2=39221&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/domdoc.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/domdoc.c [iso-8859-1] Sat Jan 31 05:27:22 2009
@@ -357,8 +357,26 @@
 static HRESULT WINAPI xmldoc_IPersistStream_Save(
     IPersistStream *iface, LPSTREAM pStm, BOOL fClearDirty)
 {
-    FIXME("(%p, %p, %d): stub!\n", iface, pStm, fClearDirty);
-    return E_NOTIMPL;
+    domdoc *This = impl_from_IPersistStream(iface);
+    HRESULT hr;
+    BSTR xmlString;
+
+    TRACE("(%p, %p, %d)\n", iface, pStm, fClearDirty);
+
+    hr = IXMLDOMNode_get_xml( This->node, &xmlString );
+    if(hr == S_OK)
+    {
+        DWORD count;
+        DWORD len = strlenW(xmlString) * sizeof(WCHAR);
+
+        hr = IStream_Write( pStm, xmlString, len, &count );
+
+        SysFreeString(xmlString);
+    }
+
+    TRACE("ret 0x%08x\n", hr);
+
+    return hr;
 }
 
 static HRESULT WINAPI xmldoc_IPersistStream_GetSizeMax(
@@ -441,11 +459,11 @@
     }
     else if (IsEqualGUID(&IID_IPersistStream, riid))
     {
-        *ppvObject = (IPersistStream*)&(This->lpvtblIPersistStream);
+        *ppvObject = &(This->lpvtblIPersistStream);
     }
     else if (IsEqualGUID(&IID_IObjectWithSite, riid))
     {
-        *ppvObject = (IObjectWithSite*)&(This->lpvtblIObjectWithSite);
+        *ppvObject = &(This->lpvtblIObjectWithSite);
     }
     else if( IsEqualGUID( riid, &IID_ISupportErrorInfo ))
     {
@@ -1023,7 +1041,7 @@
 
     TRACE("%p->(%s,%p)\n", iface, debugstr_w(tagname), element);
 
-    xml_name = xmlChar_from_wchar((WCHAR*)tagname);
+    xml_name = xmlChar_from_wchar(tagname);
     xmlnode = xmlNewDocNode(get_doc(This), NULL, xml_name, NULL);
     xmldoc_add_orphan(xmlnode->doc, xmlnode);
 
@@ -1080,7 +1098,7 @@
 
     *text = NULL;
 
-    xml_content = xmlChar_from_wchar((WCHAR*)data);
+    xml_content = xmlChar_from_wchar(data);
     xmlnode = xmlNewText(xml_content);
     HeapFree(GetProcessHeap(), 0, xml_content);
 
@@ -1112,7 +1130,7 @@
 
     *comment = NULL;
 
-    xml_content = xmlChar_from_wchar((WCHAR*)data);
+    xml_content = xmlChar_from_wchar(data);
     xmlnode = xmlNewComment(xml_content);
     HeapFree(GetProcessHeap(), 0, xml_content);
 
@@ -1144,7 +1162,7 @@
 
     *cdata = NULL;
 
-    xml_content = xmlChar_from_wchar((WCHAR*)data);
+    xml_content = xmlChar_from_wchar(data);
     xmlnode = xmlNewCDataBlock(get_doc( This ), xml_content, strlen( (char*)xml_content) );
     HeapFree(GetProcessHeap(), 0, xml_content);
 
@@ -1179,8 +1197,8 @@
     if(!target || lstrlenW(target) == 0)
         return E_FAIL;
 
-    xml_target = xmlChar_from_wchar((WCHAR*)target);
-    xml_content = xmlChar_from_wchar((WCHAR*)data);
+    xml_target = xmlChar_from_wchar(target);
+    xml_content = xmlChar_from_wchar(data);
 
     xmlnode = xmlNewDocPI(get_doc(This), xml_target, xml_content);
     xmldoc_add_orphan(xmlnode->doc, xmlnode);
@@ -1214,7 +1232,7 @@
 
     *attribute = NULL;
 
-    xml_name = xmlChar_from_wchar((WCHAR*)name);
+    xml_name = xmlChar_from_wchar(name);
     xmlnode = (xmlNode *)xmlNewProp(NULL, xml_name, NULL);
     HeapFree(GetProcessHeap(), 0, xml_name);
 
@@ -1246,7 +1264,7 @@
 
     *entityRef = NULL;
 
-    xml_name = xmlChar_from_wchar((WCHAR*)name);
+    xml_name = xmlChar_from_wchar(name);
     xmlnode = xmlNewReference(get_doc( This ), xml_name );
     HeapFree(GetProcessHeap(), 0, xml_name);
 
@@ -1312,13 +1330,16 @@
 
     TRACE("(%p)->(type,%s,%s,%p)\n", This, debugstr_w(name), debugstr_w(namespaceURI), node);
 
+    if(namespaceURI && namespaceURI[0])
+        FIXME("nodes with namespaces currently not supported.\n");
+
     hr = get_node_type(Type, &node_type);
     if(FAILED(hr))
         return hr;
 
     TRACE("node_type %d\n", node_type);
 
-    xml_name = xmlChar_from_wchar((WCHAR*)name);
+    xml_name = xmlChar_from_wchar(name);
 
     switch(node_type)
     {
@@ -2189,7 +2210,7 @@
     doc->lpvtblIObjectSafety = &domdocObjectSafetyVtbl;
     doc->lpvtblISupportErrorInfo = &support_error_vtbl;
     doc->ref = 1;
-    doc->async = 0;
+    doc->async = VARIANT_TRUE;
     doc->validating = 0;
     doc->resolving = 0;
     doc->preserving = 0;
@@ -2258,7 +2279,7 @@
     if (FAILED(hr))
         return NULL;
 
-    return (IUnknown*)pObj;
+    return pObj;
 }
 
 #else

Modified: trunk/reactos/dll/win32/msxml3/element.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/element.c?rev=39221&r1=39220&r2=39221&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/element.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/element.c [iso-8859-1] Sat Jan 31 05:27:22 2009
@@ -644,6 +644,7 @@
 {
     domelem *This = impl_from_IXMLDOMElement( iface );
     LPWSTR szPattern;
+    xmlNodePtr element;
     HRESULT hr;
 
     TRACE("(%p)->(%s,%p)\n", This, debugstr_w(bstrName), resultList);
@@ -654,7 +655,11 @@
     lstrcpyW(szPattern+3, bstrName);
     TRACE("%s\n", debugstr_w(szPattern));
 
-    hr = queryresult_create(get_element(This), szPattern, resultList);
+    element = get_element(This);
+    if (!element)
+        hr = E_FAIL;
+    else
+        hr = queryresult_create(element, szPattern, resultList);
     HeapFree(GetProcessHeap(), 0, szPattern);
 
     return hr;

Modified: trunk/reactos/dll/win32/msxml3/node.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/node.c?rev=39221&r1=39220&r2=39221&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/node.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/node.c [iso-8859-1] Sat Jan 31 05:27:22 2009
@@ -345,7 +345,7 @@
     case XML_PI_NODE:
     case XML_TEXT_NODE:
       {
-        str = xmlChar_from_wchar((WCHAR*)V_BSTR(&string_value));
+        str = xmlChar_from_wchar(V_BSTR(&string_value));
         xmlNodeSetContent(This->node, str);
         HeapFree(GetProcessHeap(),0,str);
         hr = S_OK;
@@ -904,7 +904,7 @@
         break;
     }
 
-    str = xmlChar_from_wchar((WCHAR*)text);
+    str = xmlChar_from_wchar(text);
 
     /* Escape the string. */
     str2 = xmlEncodeEntitiesReentrant(This->node->doc, str);
@@ -1060,7 +1060,7 @@
     {
         xmlNsPtr pNS = NULL;
         xmlAttrPtr pAttr = NULL;
-        xmlChar* str = xmlChar_from_wchar((WCHAR*)dataTypeName);
+        xmlChar* str = xmlChar_from_wchar(dataTypeName);
 
         pAttr = xmlHasNsProp(This->node, (xmlChar*)"dt",
                             (xmlChar*)"urn:schemas-microsoft-com:datatypes");

Modified: trunk/reactos/dll/win32/msxml3/regsvr.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/regsvr.c?rev=39221&r1=39220&r2=39221&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/regsvr.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/regsvr.c [iso-8859-1] Sat Jan 31 05:27:22 2009
@@ -564,6 +564,14 @@
         "Msxml2.SAXXMLReader",
         "3.0"
     },
+    {   &CLSID_SAXXMLReader30,
+        "SAX XML Reader 3.0",
+        NULL,
+        "msxml3.dll",
+        "Both",
+        "Msxml2.SAXXMLReader",
+        "3.0"
+    },
     { NULL }			/* list terminator */
 };
 
@@ -651,6 +659,16 @@
     {   "Msxml2.XMLSchemaCache.3.0",
         "XML Schema Cache 3.0",
         &CLSID_XMLSchemaCache30,
+        NULL
+    },
+    {   "Msxml2.SAXXMLReader",
+        "SAX XML Reader",
+        &CLSID_SAXXMLReader,
+        "Msxml2.SAXXMLReader.3.0"
+    },
+    {   "Msxml2.SAXXMLReader.3.0",
+        "SAX XML Reader 3.0",
+        &CLSID_SAXXMLReader30,
         NULL
     },
 

Modified: trunk/reactos/dll/win32/msxml3/saxreader.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/saxreader.c?rev=39221&r1=39220&r2=39221&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/saxreader.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/saxreader.c [iso-8859-1] Sat Jan 31 05:27:22 2009
@@ -457,9 +457,8 @@
 {
     saxattributes *This = impl_from_IVBSAXAttributes( iface );
     return ISAXAttributes_getIndexFromName(
-            (ISAXAttributes*)&This->lpSAXAttributesVtbl,
-            (const WCHAR*)uri, SysStringLen(uri),
-            (const WCHAR*)localName, SysStringLen(localName), index);
+            (ISAXAttributes*)&This->lpSAXAttributesVtbl, uri, SysStringLen(uri),
+            localName, SysStringLen(localName), index);
 }
 
 static HRESULT WINAPI ivbsaxattributes_getIndexFromQName(
@@ -469,8 +468,8 @@
 {
     saxattributes *This = impl_from_IVBSAXAttributes( iface );
     return ISAXAttributes_getIndexFromQName(
-            (ISAXAttributes*)&This->lpSAXAttributesVtbl,
-            (const WCHAR*)QName, SysStringLen(QName), index);
+            (ISAXAttributes*)&This->lpSAXAttributesVtbl, QName,
+            SysStringLen(QName), index);
 }
 
 static HRESULT WINAPI ivbsaxattributes_getType(
@@ -494,10 +493,8 @@
     int len;
     saxattributes *This = impl_from_IVBSAXAttributes( iface );
     return ISAXAttributes_getTypeFromName(
-            (ISAXAttributes*)&This->lpSAXAttributesVtbl,
-            (const WCHAR*)uri, SysStringLen(uri),
-            (const WCHAR*)localName, SysStringLen(localName),
-            (const WCHAR**)type, &len);
+            (ISAXAttributes*)&This->lpSAXAttributesVtbl, uri, SysStringLen(uri),
+            localName, SysStringLen(localName), (const WCHAR**)type, &len);
 }
 
 static HRESULT WINAPI ivbsaxattributes_getTypeFromQName(
@@ -508,9 +505,8 @@
     int len;
     saxattributes *This = impl_from_IVBSAXAttributes( iface );
     return ISAXAttributes_getTypeFromQName(
-            (ISAXAttributes*)&This->lpSAXAttributesVtbl,
-            (const WCHAR*)QName, SysStringLen(QName),
-            (const WCHAR**)type, &len);
+            (ISAXAttributes*)&This->lpSAXAttributesVtbl, QName,
+            SysStringLen(QName), (const WCHAR**)type, &len);
 }
 
 static HRESULT WINAPI ivbsaxattributes_getValue(
@@ -534,10 +530,8 @@
     int len;
     saxattributes *This = impl_from_IVBSAXAttributes( iface );
     return ISAXAttributes_getValueFromName(
-            (ISAXAttributes*)&This->lpSAXAttributesVtbl,
-            (const WCHAR*)uri, SysStringLen(uri),
-            (const WCHAR*)localName, SysStringLen(localName),
-            (const WCHAR**)value, &len);
+            (ISAXAttributes*)&This->lpSAXAttributesVtbl, uri, SysStringLen(uri),
+            localName, SysStringLen(localName), (const WCHAR**)value, &len);
 }
 
 static HRESULT WINAPI ivbsaxattributes_getValueFromQName(
@@ -548,9 +542,8 @@
     int len;
     saxattributes *This = impl_from_IVBSAXAttributes( iface );
     return ISAXAttributes_getValueFromQName(
-            (ISAXAttributes*)&This->lpSAXAttributesVtbl,
-            (const WCHAR*)QName, SysStringLen(QName),
-            (const WCHAR**)value, &len);
+            (ISAXAttributes*)&This->lpSAXAttributesVtbl, QName,
+            SysStringLen(QName), (const WCHAR**)value, &len);
 }
 
 static const struct IVBSAXAttributesVtbl ivbsaxattributes_vtbl =
@@ -1329,7 +1322,7 @@
     len = MultiByteToWideChar(CP_UNIXCP, 0, message, -1, NULL, 0);
     wszError = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR)*len);
     if(wszError)
-        MultiByteToWideChar(CP_UNIXCP, 0, message, -1, (LPWSTR)wszError, len);
+        MultiByteToWideChar(CP_UNIXCP, 0, message, -1, wszError, len);
 
     if(This->vbInterface)
     {
@@ -2031,7 +2024,7 @@
             hr = SafeArrayGetUBound(V_ARRAY(&varInput), 1, &uBound);
             if(hr != S_OK) break;
             dataRead = (uBound-lBound)*SafeArrayGetElemsize(V_ARRAY(&varInput));
-            hr = SafeArrayAccessData(V_ARRAY(&varInput), (void**)&pSAData);
+            hr = SafeArrayAccessData(V_ARRAY(&varInput), &pSAData);
             if(hr != S_OK) break;
             hr = internal_parseBuffer(This, pSAData, dataRead, vbInterface);
             SafeArrayUnaccessData(V_ARRAY(&varInput));
@@ -2267,7 +2260,7 @@
     }
     else if( IsEqualGUID( riid, &IID_ISAXXMLReader ))
     {
-        *ppvObject = (ISAXXMLReader*)&This->lpSAXXMLReaderVtbl;
+        *ppvObject = &This->lpSAXXMLReaderVtbl;
     }
     else
     {

Modified: trunk/reactos/dll/win32/msxml3/text.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/text.c?rev=39221&r1=39220&r2=39221&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/text.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/text.c [iso-8859-1] Sat Jan 31 05:27:22 2009
@@ -603,7 +603,7 @@
     if(p == NULL || SysStringLen(p) == 0)
         return S_OK;
 
-    pContent = xmlChar_from_wchar( (WCHAR*)p );
+    pContent = xmlChar_from_wchar( p );
     if(pContent)
     {
         if(xmlTextConcat(pDOMNode->node, pContent, SysStringLen(p) ) == 0)
@@ -669,7 +669,7 @@
 
             sNewString[nLengthP + nLength] = 0;
 
-            str = xmlChar_from_wchar((WCHAR*)sNewString);
+            str = xmlChar_from_wchar(sNewString);
             if(str)
             {
                 xmlNodeSetContent(pDOMNode->node, str);

Modified: trunk/reactos/dll/win32/msxml3/xmldoc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/xmldoc.c?rev=39221&r1=39220&r2=39221&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/xmldoc.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/xmldoc.c [iso-8859-1] Sat Jan 31 05:27:22 2009
@@ -86,7 +86,7 @@
     else if (IsEqualGUID(&IID_IPersistStreamInit, riid) ||
              IsEqualGUID(&IID_IPersistStream, riid))
     {
-        *ppvObject = (IPersistStreamInit *)&(This->lpvtblIPersistStreamInit);
+        *ppvObject = &(This->lpvtblIPersistStreamInit);
     }
     else
     {

Modified: trunk/reactos/dll/win32/msxml3/xmlelem.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/xmlelem.c?rev=39221&r1=39220&r2=39221&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/xmlelem.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/xmlelem.c [iso-8859-1] Sat Jan 31 05:27:22 2009
@@ -516,7 +516,7 @@
     }
     else if (IsEqualGUID(riid, &IID_IEnumVARIANT))
     {
-        *ppvObject = (IEnumVARIANT *)&(This->lpvtblIEnumVARIANT);
+        *ppvObject = &(This->lpvtblIEnumVARIANT);
     }
     else
     {



More information about the Ros-diffs mailing list