mirror of
https://github.com/reactos/reactos.git
synced 2024-09-30 22:47:28 +00:00
sync msxml3 to wine 1.1.14
svn path=/trunk/; revision=39221
This commit is contained in:
parent
b0bff7e4d7
commit
0704f1af38
|
@ -520,7 +520,7 @@ static HRESULT WINAPI domcdata_get_length(
|
|||
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 @@ static HRESULT WINAPI domcdata_substringData(
|
|||
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 @@ static HRESULT WINAPI domcdata_appendData(
|
|||
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 @@ static HRESULT WINAPI domcdata_appendData(
|
|||
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 @@ static HRESULT WINAPI domcdata_insertData(
|
|||
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 @@ static HRESULT WINAPI domcdata_insertData(
|
|||
|
||||
sNewString[nLengthP + nLength] = 0;
|
||||
|
||||
str = xmlChar_from_wchar((WCHAR*)sNewString);
|
||||
str = xmlChar_from_wchar(sNewString);
|
||||
if(str)
|
||||
{
|
||||
xmlNodeSetContent(pDOMNode->node, str);
|
||||
|
|
|
@ -595,7 +595,7 @@ static HRESULT WINAPI domcomment_appendData(
|
|||
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 @@ static HRESULT WINAPI domcomment_insertData(
|
|||
|
||||
sNewString[nLengthP + nLength] = 0;
|
||||
|
||||
str = xmlChar_from_wchar((WCHAR*)sNewString);
|
||||
str = xmlChar_from_wchar(sNewString);
|
||||
if(str)
|
||||
{
|
||||
xmlNodeSetContent(pDOMNode->node, str);
|
||||
|
|
|
@ -357,8 +357,26 @@ static HRESULT WINAPI xmldoc_IPersistStream_Load(
|
|||
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 @@ static HRESULT WINAPI domdoc_QueryInterface( IXMLDOMDocument2 *iface, REFIID rii
|
|||
}
|
||||
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 @@ static HRESULT WINAPI domdoc_createElement(
|
|||
|
||||
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 @@ static HRESULT WINAPI domdoc_createTextNode(
|
|||
|
||||
*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 @@ static HRESULT WINAPI domdoc_createComment(
|
|||
|
||||
*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 @@ static HRESULT WINAPI domdoc_createCDATASection(
|
|||
|
||||
*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 @@ static HRESULT WINAPI domdoc_createProcessingInstruction(
|
|||
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 @@ static HRESULT WINAPI domdoc_createAttribute(
|
|||
|
||||
*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 @@ static HRESULT WINAPI domdoc_createEntityReference(
|
|||
|
||||
*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 @@ static HRESULT WINAPI domdoc_createNode(
|
|||
|
||||
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 @@ HRESULT DOMDocument_create_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument2 **docu
|
|||
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 @@ IUnknown* create_domdoc( xmlNodePtr document )
|
|||
if (FAILED(hr))
|
||||
return NULL;
|
||||
|
||||
return (IUnknown*)pObj;
|
||||
return pObj;
|
||||
}
|
||||
|
||||
#else
|
||||
|
|
|
@ -644,6 +644,7 @@ static HRESULT WINAPI domelem_getElementsByTagName(
|
|||
{
|
||||
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 @@ static HRESULT WINAPI domelem_getElementsByTagName(
|
|||
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;
|
||||
|
|
|
@ -345,7 +345,7 @@ static HRESULT WINAPI xmlnode_put_nodeValue(
|
|||
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 @@ static HRESULT WINAPI xmlnode_put_text(
|
|||
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 @@ static HRESULT WINAPI xmlnode_put_dataType(
|
|||
{
|
||||
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");
|
||||
|
|
|
@ -564,6 +564,14 @@ static struct regsvr_coclass const coclass_list[] = {
|
|||
"Msxml2.SAXXMLReader",
|
||||
"3.0"
|
||||
},
|
||||
{ &CLSID_SAXXMLReader30,
|
||||
"SAX XML Reader 3.0",
|
||||
NULL,
|
||||
"msxml3.dll",
|
||||
"Both",
|
||||
"Msxml2.SAXXMLReader",
|
||||
"3.0"
|
||||
},
|
||||
{ NULL } /* list terminator */
|
||||
};
|
||||
|
||||
|
@ -653,6 +661,16 @@ static struct progid const progid_list[] = {
|
|||
&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
|
||||
},
|
||||
|
||||
{ NULL } /* list terminator */
|
||||
};
|
||||
|
|
|
@ -457,9 +457,8 @@ static HRESULT WINAPI ivbsaxattributes_getIndexFromName(
|
|||
{
|
||||
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 @@ static HRESULT WINAPI ivbsaxattributes_getIndexFromQName(
|
|||
{
|
||||
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 @@ static HRESULT WINAPI ivbsaxattributes_getTypeFromName(
|
|||
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 @@ static HRESULT WINAPI ivbsaxattributes_getTypeFromQName(
|
|||
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 @@ static HRESULT WINAPI ivbsaxattributes_getValueFromName(
|
|||
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 @@ static HRESULT WINAPI ivbsaxattributes_getValueFromQName(
|
|||
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 @@ static void libxmlFatalError(void *ctx, const char *msg, ...)
|
|||
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 @@ static HRESULT internal_parse(
|
|||
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 @@ static HRESULT WINAPI saxxmlreader_QueryInterface(IVBSAXXMLReader* iface, REFIID
|
|||
}
|
||||
else if( IsEqualGUID( riid, &IID_ISAXXMLReader ))
|
||||
{
|
||||
*ppvObject = (ISAXXMLReader*)&This->lpSAXXMLReaderVtbl;
|
||||
*ppvObject = &This->lpSAXXMLReaderVtbl;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -603,7 +603,7 @@ static HRESULT WINAPI domtext_appendData(
|
|||
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 @@ static HRESULT WINAPI domtext_insertData(
|
|||
|
||||
sNewString[nLengthP + nLength] = 0;
|
||||
|
||||
str = xmlChar_from_wchar((WCHAR*)sNewString);
|
||||
str = xmlChar_from_wchar(sNewString);
|
||||
if(str)
|
||||
{
|
||||
xmlNodeSetContent(pDOMNode->node, str);
|
||||
|
|
|
@ -86,7 +86,7 @@ static HRESULT WINAPI xmldoc_QueryInterface(IXMLDocument *iface, REFIID riid, vo
|
|||
else if (IsEqualGUID(&IID_IPersistStreamInit, riid) ||
|
||||
IsEqualGUID(&IID_IPersistStream, riid))
|
||||
{
|
||||
*ppvObject = (IPersistStreamInit *)&(This->lpvtblIPersistStreamInit);
|
||||
*ppvObject = &(This->lpvtblIPersistStreamInit);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -516,7 +516,7 @@ static HRESULT WINAPI xmlelem_collection_QueryInterface(IXMLElementCollection *i
|
|||
}
|
||||
else if (IsEqualGUID(riid, &IID_IEnumVARIANT))
|
||||
{
|
||||
*ppvObject = (IEnumVARIANT *)&(This->lpvtblIEnumVARIANT);
|
||||
*ppvObject = &(This->lpvtblIEnumVARIANT);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue