[ros-diffs] [cwittich] 45908: [MSXML3] sync msxml3 to wine 1.1.40
cwittich at svn.reactos.org
cwittich at svn.reactos.org
Sat Mar 6 09:56:22 CET 2010
Author: cwittich
Date: Sat Mar 6 09:56:21 2010
New Revision: 45908
URL: http://svn.reactos.org/svn/reactos?rev=45908&view=rev
Log:
[MSXML3]
sync msxml3 to wine 1.1.40
Modified:
trunk/reactos/dll/win32/msxml3/domdoc.c
trunk/reactos/dll/win32/msxml3/element.c
Modified: trunk/reactos/dll/win32/msxml3/domdoc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/domdoc.c?rev=45908&r1=45907&r2=45908&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/domdoc.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/domdoc.c [iso-8859-1] Sat Mar 6 09:56:21 2010
@@ -2214,7 +2214,7 @@
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)
@@ -2237,6 +2237,9 @@
{
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;
Modified: trunk/reactos/dll/win32/msxml3/element.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/element.c?rev=45908&r1=45907&r2=45908&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msxml3/element.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/element.c [iso-8859-1] Sat Mar 6 09:56:21 2010
@@ -489,32 +489,24 @@
{
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 );
-
- return S_OK;
+ prefix = element->ns ? element->ns->prefix : NULL;
+ qname = xmlBuildQName(element->name, prefix, NULL, 0);
+
+ *p = bstr_from_xmlChar(qname);
+ if (qname != element->name) xmlFree(qname);
+
+ return *p ? S_OK : E_OUTOFMEMORY;
}
static HRESULT WINAPI domelem_getAttribute(
More information about the Ros-diffs
mailing list