From: Amine Khaldi Date: Sun, 19 Jul 2015 23:07:13 +0000 (+0000) Subject: [MSXML3] Sync with Wine Staging 1.7.47. CORE-9924 X-Git-Tag: ReactOS-0.4.0~1551 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=f756c9c7a034daa92729947ea1f8c0714340ae68 [MSXML3] Sync with Wine Staging 1.7.47. CORE-9924 svn path=/trunk/; revision=68465 --- diff --git a/reactos/dll/win32/msxml3/domdoc.c b/reactos/dll/win32/msxml3/domdoc.c index 76aa5fb9019..6c32bb5a982 100644 --- a/reactos/dll/win32/msxml3/domdoc.c +++ b/reactos/dll/win32/msxml3/domdoc.c @@ -2120,7 +2120,13 @@ static HRESULT WINAPI domdoc_load( case 1: /* Only takes UTF-8 strings. * NOT NULL-terminated. */ - SafeArrayAccessData(psa, (void**)&str); + hr = SafeArrayAccessData(psa, (void**)&str); + if (FAILED(hr)) + { + This->error = hr; + WARN("failed to access array data, 0x%08x\n", hr); + break; + } SafeArrayGetUBound(psa, 1, &len); if ((xmldoc = doparse(This, str, ++len, XML_CHAR_ENCODING_UTF8))) diff --git a/reactos/dll/win32/msxml3/node.c b/reactos/dll/win32/msxml3/node.c index a52dcdf6119..e4a8ad84784 100644 --- a/reactos/dll/win32/msxml3/node.c +++ b/reactos/dll/win32/msxml3/node.c @@ -1598,7 +1598,29 @@ static HRESULT WINAPI unknode_get_nodeType( FIXME("(%p)->(%p)\n", This, domNodeType); - *domNodeType = This->node.node->type; + switch (This->node.node->type) + { + case XML_ELEMENT_NODE: + case XML_ATTRIBUTE_NODE: + case XML_TEXT_NODE: + case XML_CDATA_SECTION_NODE: + case XML_ENTITY_REF_NODE: + case XML_ENTITY_NODE: + case XML_PI_NODE: + case XML_COMMENT_NODE: + case XML_DOCUMENT_NODE: + case XML_DOCUMENT_TYPE_NODE: + case XML_DOCUMENT_FRAG_NODE: + case XML_NOTATION_NODE: + /* we only care about this set of types, libxml2 type values are + exactly what we need */ + *domNodeType = (DOMNodeType)This->node.node->type; + break; + default: + *domNodeType = NODE_INVALID; + break; + } + return S_OK; } @@ -1997,9 +2019,11 @@ IXMLDOMNode *create_node( xmlNodePtr node ) pUnk = create_doc_fragment( node ); break; case XML_DTD_NODE: + case XML_DOCUMENT_TYPE_NODE: pUnk = create_doc_type( node ); break; - default: { + case XML_ENTITY_NODE: + case XML_NOTATION_NODE: { unknode *new_node; FIXME("only creating basic node for type %d\n", node->type); @@ -2012,7 +2036,11 @@ IXMLDOMNode *create_node( xmlNodePtr node ) new_node->ref = 1; init_xmlnode(&new_node->node, node, &new_node->IXMLDOMNode_iface, NULL); pUnk = (IUnknown*)&new_node->IXMLDOMNode_iface; + break; } + default: + ERR("Called for unsupported node type %d\n", node->type); + return NULL; } hr = IUnknown_QueryInterface(pUnk, &IID_IXMLDOMNode, (LPVOID*)&ret); diff --git a/reactos/dll/win32/msxml3/saxreader.c b/reactos/dll/win32/msxml3/saxreader.c index dc02f19e1b9..ddaba1cfeed 100644 --- a/reactos/dll/win32/msxml3/saxreader.c +++ b/reactos/dll/win32/msxml3/saxreader.c @@ -646,7 +646,7 @@ static void format_error_message_from_id(saxlocator *This, HRESULT hr) { WCHAR msg[1024]; if(!FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM, - NULL, hr, 0, msg, sizeof(msg), NULL)) + NULL, hr, 0, msg, sizeof(msg)/sizeof(msg[0]), NULL)) { FIXME("MSXML errors not yet supported.\n"); msg[0] = '\0'; diff --git a/reactos/dll/win32/msxml3/xslpattern.l b/reactos/dll/win32/msxml3/xslpattern.l index bda383602cf..58df30909d3 100644 --- a/reactos/dll/win32/msxml3/xslpattern.l +++ b/reactos/dll/win32/msxml3/xslpattern.l @@ -152,6 +152,7 @@ ANY (.) %% +xmlChar* XSLPattern_to_XPath(xmlXPathContextPtr, xmlChar const*) DECLSPEC_HIDDEN; xmlChar* XSLPattern_to_XPath(xmlXPathContextPtr ctxt, xmlChar const* xslpat_str) { parser_param p; diff --git a/reactos/dll/win32/msxml3/xslpattern.yy.c b/reactos/dll/win32/msxml3/xslpattern.yy.c index 01b7488f94b..d56541e4046 100644 --- a/reactos/dll/win32/msxml3/xslpattern.yy.c +++ b/reactos/dll/win32/msxml3/xslpattern.yy.c @@ -2211,6 +2211,7 @@ void xslpattern_free (void * ptr , yyscan_t yyscanner) +xmlChar* XSLPattern_to_XPath(xmlXPathContextPtr, xmlChar const*) DECLSPEC_HIDDEN; xmlChar* XSLPattern_to_XPath(xmlXPathContextPtr ctxt, xmlChar const* xslpat_str) { parser_param p; diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 5e9aa455ebc..a49fc5017ef 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -134,7 +134,7 @@ reactos/dll/win32/msvfw32 # Synced to WineStaging-1.7.37 reactos/dll/win32/msvidc32 # Synced to WineStaging-1.7.37 reactos/dll/win32/msxml # Synced to WineStaging-1.7.37 reactos/dll/win32/msxml2 # Synced to WineStaging-1.7.37 -reactos/dll/win32/msxml3 # Synced to WineStaging-1.7.37 +reactos/dll/win32/msxml3 # Synced to WineStaging-1.7.47 reactos/dll/win32/msxml4 # Synced to WineStaging-1.7.37 reactos/dll/win32/msxml6 # Synced to WineStaging-1.7.37 reactos/dll/win32/nddeapi # Synced to WineStaging-1.7.37