[PATCH] Corrected getAttribute to return current value and assign output var
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Mon Jan 14 04:13:01 CST 2008
---
dlls/msxml3/element.c | 9 +++++++--
dlls/msxml3/tests/domdoc.c | 11 +++++++++--
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c
index e7f03d6..bce7b78 100644
--- a/dlls/msxml3/element.c
+++ b/dlls/msxml3/element.c
@@ -459,15 +459,20 @@ static HRESULT WINAPI domelem_getAttribute(
domelem *This = impl_from_IXMLDOMElement( iface );
xmlNodePtr element;
xmlChar *xml_name, *xml_value;
- HRESULT hr = E_FAIL;
+ HRESULT hr = S_FALSE;
TRACE("(%p)->(%s,%p)\n", This, debugstr_w(name), value);
+
+ if(!value || !name)
+ return E_INVALIDARG;
element = get_element( This );
if ( !element )
return E_FAIL;
- VariantInit(value);
+ V_BSTR(value) = NULL;
+ V_VT(value) = VT_NULL;
+
xml_name = xmlChar_from_wchar( name );
xml_value = xmlGetNsProp(element, xml_name, NULL);
HeapFree(GetProcessHeap(), 0, xml_name);
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 19a3dc1..12b3774 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -677,8 +677,8 @@ static void test_domnode( void )
V_VT(&var) = VT_I4;
V_I4(&var) = 0x1234;
r = IXMLDOMElement_getAttribute( element, str, &var );
- ok( r == E_FAIL, "getAttribute ret %08x\n", r );
- ok( V_VT(&var) == VT_EMPTY, "vt = %x\n", V_VT(&var));
+ ok( r == S_FALSE, "getAttribute ret %08x\n", r );
+ ok( V_VT(&var) == VT_NULL, "vt = %x\n", V_VT(&var));
VariantClear(&var);
SysFreeString( str );
@@ -690,6 +690,13 @@ static void test_domnode( void )
ok( V_VT(&var) == VT_BSTR, "vt = %x\n", V_VT(&var));
ok( !lstrcmpW(V_BSTR(&var), szstr1), "wrong attr value\n");
VariantClear( &var );
+
+ r = IXMLDOMElement_getAttribute( element, NULL, &var );
+ ok( r == E_INVALIDARG, "getAttribute ret %08x\n", r );
+
+ r = IXMLDOMElement_getAttribute( element, str, NULL );
+ ok( r == E_INVALIDARG, "getAttribute ret %08x\n", r );
+
SysFreeString( str );
r = IXMLDOMElement_get_attributes( element, &map );
--
1.5.3.7
--------------060406050809030909070609--
More information about the wine-patches
mailing list