sync msxml3 to wine 1.1.40

svn path=/trunk/; revision=45908
This commit is contained in:
Christoph von Wittich 2010-03-06 08:56:21 +00:00
parent 5d4d3fd694
commit 812fcd6a3e
2 changed files with 14 additions and 19 deletions

View file

@ -2214,7 +2214,7 @@ static ULONG WINAPI xmldoc_Safety_Release(IObjectSafety *iface)
return IXMLDocument_Release((IXMLDocument *)This);
}
#define SAFETY_SUPPORTED_OPTIONS (INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA)
#define SAFETY_SUPPORTED_OPTIONS (INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_SECURITY_MANAGER)
static HRESULT WINAPI xmldoc_Safety_GetInterfaceSafetyOptions(IObjectSafety *iface, REFIID riid,
DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions)
@ -2238,6 +2238,9 @@ static HRESULT WINAPI xmldoc_Safety_SetInterfaceSafetyOptions(IObjectSafety *ifa
domdoc *This = impl_from_IObjectSafety(iface);
TRACE("(%p)->(%s %x %x)\n", This, debugstr_guid(riid), dwOptionSetMask, dwEnabledOptions);
if ((dwOptionSetMask & ~SAFETY_SUPPORTED_OPTIONS) != 0)
return E_FAIL;
This->safeopt = dwEnabledOptions & dwOptionSetMask & SAFETY_SUPPORTED_OPTIONS;
return S_OK;
}

View file

@ -489,32 +489,24 @@ static HRESULT WINAPI domelem_get_tagName(
{
domelem *This = impl_from_IXMLDOMElement( iface );
xmlNodePtr element;
DWORD len;
DWORD offset = 0;
LPWSTR str;
const xmlChar *prefix;
xmlChar *qname;
TRACE("(%p)->(%p)\n", This, p );
if (!p) return E_INVALIDARG;
element = get_element( This );
if ( !element )
return E_FAIL;
len = MultiByteToWideChar( CP_UTF8, 0, (LPCSTR) element->name, -1, NULL, 0 );
if (element->ns)
len += MultiByteToWideChar( CP_UTF8, 0, (LPCSTR) element->ns->prefix, -1, NULL, 0 );
str = heap_alloc( len * sizeof (WCHAR) );
if ( !str )
return E_OUTOFMEMORY;
if (element->ns)
{
offset = MultiByteToWideChar( CP_UTF8, 0, (LPCSTR) element->ns->prefix, -1, str, len );
str[offset - 1] = ':';
}
MultiByteToWideChar( CP_UTF8, 0, (LPCSTR) element->name, -1, str + offset, len - offset );
*p = SysAllocString( str );
heap_free( str );
prefix = element->ns ? element->ns->prefix : NULL;
qname = xmlBuildQName(element->name, prefix, NULL, 0);
return S_OK;
*p = bstr_from_xmlChar(qname);
if (qname != element->name) xmlFree(qname);
return *p ? S_OK : E_OUTOFMEMORY;
}
static HRESULT WINAPI domelem_getAttribute(