msxml3: Implement createAttribute.
This commit is contained in:
parent
2e3f5243ca
commit
300191d58c
|
@ -981,8 +981,29 @@ static HRESULT WINAPI domdoc_createAttribute(
|
||||||
BSTR name,
|
BSTR name,
|
||||||
IXMLDOMAttribute** attribute )
|
IXMLDOMAttribute** attribute )
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
domdoc *This = impl_from_IXMLDOMDocument2( iface );
|
||||||
return E_NOTIMPL;
|
xmlNodePtr xmlnode;
|
||||||
|
xmlChar *xml_name;
|
||||||
|
|
||||||
|
TRACE("%p->(%s %p)\n", iface, debugstr_w(name), attribute);
|
||||||
|
|
||||||
|
if(!attribute)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
*attribute = NULL;
|
||||||
|
|
||||||
|
xml_name = xmlChar_from_wchar((WCHAR*)name);
|
||||||
|
xmlnode = (xmlNode *)xmlNewProp(NULL, xml_name, NULL);
|
||||||
|
HeapFree(GetProcessHeap(), 0, xml_name);
|
||||||
|
|
||||||
|
if(!xmlnode)
|
||||||
|
return E_FAIL;
|
||||||
|
|
||||||
|
xmlnode->doc = get_doc( This );
|
||||||
|
|
||||||
|
*attribute = (IXMLDOMAttribute*)create_attribute(xmlnode);
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -137,6 +137,8 @@ static const WCHAR szfn1_txt[] = {'f','n','1','.','t','x','t',0};
|
||||||
|
|
||||||
static WCHAR szComment[] = {'A',' ','C','o','m','m','e','n','t',0 };
|
static WCHAR szComment[] = {'A',' ','C','o','m','m','e','n','t',0 };
|
||||||
|
|
||||||
|
static WCHAR szAttribute[] = {'A','t','t','r',0 };
|
||||||
|
|
||||||
#define expect_bstr_eq_and_free(bstr, expect) { \
|
#define expect_bstr_eq_and_free(bstr, expect) { \
|
||||||
BSTR bstrExp = alloc_str_from_narrow(expect); \
|
BSTR bstrExp = alloc_str_from_narrow(expect); \
|
||||||
ok(lstrcmpW(bstr, bstrExp) == 0, "String differs\n"); \
|
ok(lstrcmpW(bstr, bstrExp) == 0, "String differs\n"); \
|
||||||
|
@ -337,6 +339,7 @@ static void test_domdoc( void )
|
||||||
IXMLDOMNode *node;
|
IXMLDOMNode *node;
|
||||||
IXMLDOMText *nodetext = NULL;
|
IXMLDOMText *nodetext = NULL;
|
||||||
IXMLDOMComment *node_comment = NULL;
|
IXMLDOMComment *node_comment = NULL;
|
||||||
|
IXMLDOMAttribute *node_attr = NULL;
|
||||||
VARIANT_BOOL b;
|
VARIANT_BOOL b;
|
||||||
VARIANT var;
|
VARIANT var;
|
||||||
BSTR str;
|
BSTR str;
|
||||||
|
@ -508,6 +511,13 @@ static void test_domdoc( void )
|
||||||
ok( r == S_OK, "returns %08x\n", r );
|
ok( r == S_OK, "returns %08x\n", r );
|
||||||
IXMLDOMText_Release( node_comment );
|
IXMLDOMText_Release( node_comment );
|
||||||
|
|
||||||
|
/* test Create Attribute */
|
||||||
|
r = IXMLDOMDocument_createAttribute(doc, NULL, NULL);
|
||||||
|
ok( r == E_INVALIDARG, "returns %08x\n", r );
|
||||||
|
r = IXMLDOMDocument_createAttribute(doc, szAttribute, &node_attr);
|
||||||
|
ok( r == S_OK, "returns %08x\n", r );
|
||||||
|
IXMLDOMText_Release( node_attr);
|
||||||
|
|
||||||
r = IXMLDOMDocument_Release( doc );
|
r = IXMLDOMDocument_Release( doc );
|
||||||
ok( r == 0, "document ref count incorrect\n");
|
ok( r == 0, "document ref count incorrect\n");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue