mirror of
git://source.winehq.org/git/wine.git
synced 2024-11-05 18:01:34 +00:00
msxml3: Added IXMLDOMElement_getAttributeNode implementation.
This commit is contained in:
parent
bd4e7379ae
commit
c0661fdb90
2 changed files with 27 additions and 6 deletions
|
@ -582,8 +582,33 @@ static HRESULT WINAPI domelem_getAttributeNode(
|
||||||
IXMLDOMElement *iface,
|
IXMLDOMElement *iface,
|
||||||
BSTR p, IXMLDOMAttribute** attributeNode )
|
BSTR p, IXMLDOMAttribute** attributeNode )
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
domelem *This = impl_from_IXMLDOMElement( iface );
|
||||||
return E_NOTIMPL;
|
xmlChar *xml_name;
|
||||||
|
xmlNodePtr element;
|
||||||
|
xmlAttrPtr attr;
|
||||||
|
IUnknown *unk;
|
||||||
|
HRESULT hr = E_FAIL;
|
||||||
|
|
||||||
|
TRACE("(%p)->(%s %p)\n", This, debugstr_w(p), attributeNode);
|
||||||
|
|
||||||
|
element = get_element( This );
|
||||||
|
if ( !element )
|
||||||
|
return E_FAIL;
|
||||||
|
|
||||||
|
xml_name = xmlChar_from_wchar(p);
|
||||||
|
|
||||||
|
attr = xmlHasProp(element, xml_name);
|
||||||
|
if(attr) {
|
||||||
|
unk = create_attribute((xmlNodePtr)attr);
|
||||||
|
hr = IUnknown_QueryInterface(unk, &IID_IXMLDOMAttribute, (void**)attributeNode);
|
||||||
|
IUnknown_Release(unk);
|
||||||
|
}else {
|
||||||
|
*attributeNode = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HeapFree(GetProcessHeap(), 0, xml_name);
|
||||||
|
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI domelem_setAttributeNode(
|
static HRESULT WINAPI domelem_setAttributeNode(
|
||||||
|
|
|
@ -939,10 +939,8 @@ static void test_domnode( void )
|
||||||
|
|
||||||
attr = (IXMLDOMAttribute*)0xdeadbeef;
|
attr = (IXMLDOMAttribute*)0xdeadbeef;
|
||||||
r = IXMLDOMElement_getAttributeNode( element, str, &attr);
|
r = IXMLDOMElement_getAttributeNode( element, str, &attr);
|
||||||
todo_wine {
|
|
||||||
ok( r == E_FAIL, "getAttributeNode ret %08x\n", r );
|
ok( r == E_FAIL, "getAttributeNode ret %08x\n", r );
|
||||||
ok( attr == NULL, "getAttributeNode ret %p, expected NULL\n", attr );
|
ok( attr == NULL, "getAttributeNode ret %p, expected NULL\n", attr );
|
||||||
}
|
|
||||||
SysFreeString( str );
|
SysFreeString( str );
|
||||||
|
|
||||||
str = SysAllocString( szdl );
|
str = SysAllocString( szdl );
|
||||||
|
@ -962,10 +960,8 @@ static void test_domnode( void )
|
||||||
|
|
||||||
attr = NULL;
|
attr = NULL;
|
||||||
r = IXMLDOMElement_getAttributeNode( element, str, &attr);
|
r = IXMLDOMElement_getAttributeNode( element, str, &attr);
|
||||||
todo_wine {
|
|
||||||
ok( r == S_OK, "GetAttributeNode ret %08x\n", r );
|
ok( r == S_OK, "GetAttributeNode ret %08x\n", r );
|
||||||
ok( attr != NULL, "getAttributeNode returned NULL\n" );
|
ok( attr != NULL, "getAttributeNode returned NULL\n" );
|
||||||
}
|
|
||||||
if(attr)
|
if(attr)
|
||||||
IXMLDOMAttribute_Release(attr);
|
IXMLDOMAttribute_Release(attr);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue