msxml3: Implement get_dataType.
This commit is contained in:
parent
c3eda248a5
commit
e989d48f43
@ -736,8 +736,48 @@ static HRESULT WINAPI xmlnode_get_dataType(
|
|||||||
IXMLDOMNode *iface,
|
IXMLDOMNode *iface,
|
||||||
VARIANT* dataTypeName)
|
VARIANT* dataTypeName)
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
xmlnode *This = impl_from_IXMLDOMNode( iface );
|
||||||
return E_NOTIMPL;
|
xmlChar *pVal;
|
||||||
|
|
||||||
|
TRACE("iface %p\n", iface);
|
||||||
|
|
||||||
|
if(!dataTypeName)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
/* CDATA Section, Comment, Document, Document Fragment,
|
||||||
|
Entity, Notation, PI, and Text Node are non-typed. */
|
||||||
|
V_BSTR(dataTypeName) = NULL;
|
||||||
|
V_VT(dataTypeName) = VT_NULL;
|
||||||
|
|
||||||
|
switch ( This->node->type )
|
||||||
|
{
|
||||||
|
case XML_ATTRIBUTE_NODE:
|
||||||
|
FIXME("NODE_ATTRIBUTE_NODE should return a valid value.\n");
|
||||||
|
break;
|
||||||
|
case XML_ELEMENT_NODE:
|
||||||
|
pVal = xmlGetNsProp(This->node, (xmlChar*)"dt",
|
||||||
|
(xmlChar*)"urn:schemas-microsoft-com:datatypes");
|
||||||
|
if (pVal)
|
||||||
|
{
|
||||||
|
V_VT(dataTypeName) = VT_BSTR;
|
||||||
|
V_BSTR(dataTypeName) = bstr_from_xmlChar( pVal );
|
||||||
|
xmlFree(pVal);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case XML_ENTITY_REF_NODE:
|
||||||
|
FIXME("XML_ENTITY_REF_NODE should return a valid value.\n");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
TRACE("Type %d returning NULL\n", This->node->type);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* non-typed nodes return S_FALSE */
|
||||||
|
if(V_VT(dataTypeName) == VT_NULL)
|
||||||
|
{
|
||||||
|
return S_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI xmlnode_put_dataType(
|
static HRESULT WINAPI xmlnode_put_dataType(
|
||||||
|
@ -531,6 +531,13 @@ static void test_domdoc( void )
|
|||||||
r = IXMLDOMText_get_attributes( nodetext, &pAttribs);
|
r = IXMLDOMText_get_attributes( nodetext, &pAttribs);
|
||||||
ok(r == S_FALSE, "ret %08x\n", r );
|
ok(r == S_FALSE, "ret %08x\n", r );
|
||||||
ok( pAttribs == NULL, "pAttribs not NULL\n");
|
ok( pAttribs == NULL, "pAttribs not NULL\n");
|
||||||
|
|
||||||
|
/* test get_dataType */
|
||||||
|
r = IXMLDOMText_get_dataType(nodetext, &var);
|
||||||
|
ok(r == S_FALSE, "ret %08x\n", r );
|
||||||
|
ok( V_VT(&var) == VT_NULL, "incorrect dataType type\n");
|
||||||
|
VariantClear(&var);
|
||||||
|
|
||||||
IXMLDOMText_Release( nodetext );
|
IXMLDOMText_Release( nodetext );
|
||||||
}
|
}
|
||||||
SysFreeString( str );
|
SysFreeString( str );
|
||||||
@ -582,6 +589,12 @@ static void test_domdoc( void )
|
|||||||
r = IXMLDOMProcessingInstruction_get_lastChild(nodePI, &nodeChild);
|
r = IXMLDOMProcessingInstruction_get_lastChild(nodePI, &nodeChild);
|
||||||
ok(r == S_FALSE, "ret %08x\n", r );
|
ok(r == S_FALSE, "ret %08x\n", r );
|
||||||
ok(nodeChild == NULL, "nodeChild not NULL\n");
|
ok(nodeChild == NULL, "nodeChild not NULL\n");
|
||||||
|
|
||||||
|
r = IXMLDOMProcessingInstruction_get_dataType(nodePI, &var);
|
||||||
|
ok(r == S_FALSE, "ret %08x\n", r );
|
||||||
|
ok( V_VT(&var) == VT_NULL, "incorrect dataType type\n");
|
||||||
|
VariantClear(&var);
|
||||||
|
|
||||||
IXMLDOMProcessingInstruction_Release(nodePI);
|
IXMLDOMProcessingInstruction_Release(nodePI);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1828,6 +1841,7 @@ static void test_xmlTypes(void)
|
|||||||
IXMLDOMNamedNodeMap *pAttribs;
|
IXMLDOMNamedNodeMap *pAttribs;
|
||||||
BSTR str;
|
BSTR str;
|
||||||
IXMLDOMNode *pNextChild = (IXMLDOMNode *)0x1; /* Used for testing Siblings */
|
IXMLDOMNode *pNextChild = (IXMLDOMNode *)0x1; /* Used for testing Siblings */
|
||||||
|
VARIANT v;
|
||||||
|
|
||||||
hr = CoCreateInstance( &CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (LPVOID*)&doc );
|
hr = CoCreateInstance( &CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (LPVOID*)&doc );
|
||||||
if( hr != S_OK )
|
if( hr != S_OK )
|
||||||
@ -1858,6 +1872,12 @@ static void test_xmlTypes(void)
|
|||||||
ok(hr == S_FALSE, "ret %08x\n", hr );
|
ok(hr == S_FALSE, "ret %08x\n", hr );
|
||||||
ok( pAttribs == NULL, "pAttribs not NULL\n");
|
ok( pAttribs == NULL, "pAttribs not NULL\n");
|
||||||
|
|
||||||
|
/* test get_dataType */
|
||||||
|
hr = IXMLDOMDocument_get_dataType(doc, &v);
|
||||||
|
ok(hr == S_FALSE, "ret %08x\n", hr );
|
||||||
|
ok( V_VT(&v) == VT_NULL, "incorrect dataType type\n");
|
||||||
|
VariantClear(&v);
|
||||||
|
|
||||||
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), &pRoot);
|
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), &pRoot);
|
||||||
ok(hr == S_OK, "ret %08x\n", hr );
|
ok(hr == S_OK, "ret %08x\n", hr );
|
||||||
if(hr == S_OK)
|
if(hr == S_OK)
|
||||||
@ -1893,6 +1913,11 @@ static void test_xmlTypes(void)
|
|||||||
ok( !lstrcmpW( str, szCommentXML ), "incorrect comment xml\n");
|
ok( !lstrcmpW( str, szCommentXML ), "incorrect comment xml\n");
|
||||||
SysFreeString(str);
|
SysFreeString(str);
|
||||||
|
|
||||||
|
hr = IXMLDOMComment_get_dataType(pComment, &v);
|
||||||
|
ok(hr == S_FALSE, "ret %08x\n", hr );
|
||||||
|
ok( V_VT(&v) == VT_NULL, "incorrect dataType type\n");
|
||||||
|
VariantClear(&v);
|
||||||
|
|
||||||
IXMLDOMComment_Release(pComment);
|
IXMLDOMComment_Release(pComment);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1914,6 +1939,11 @@ static void test_xmlTypes(void)
|
|||||||
ok( !lstrcmpW( str, szElementXML ), "incorrect element xml\n");
|
ok( !lstrcmpW( str, szElementXML ), "incorrect element xml\n");
|
||||||
SysFreeString(str);
|
SysFreeString(str);
|
||||||
|
|
||||||
|
hr = IXMLDOMElement_get_dataType(pElement, &v);
|
||||||
|
ok(hr == S_FALSE, "ret %08x\n", hr );
|
||||||
|
ok( V_VT(&v) == VT_NULL, "incorrect dataType type\n");
|
||||||
|
VariantClear(&v);
|
||||||
|
|
||||||
/* Attribute */
|
/* Attribute */
|
||||||
hr = IXMLDOMDocument_createAttribute(doc, szAttribute, &pAttrubute);
|
hr = IXMLDOMDocument_createAttribute(doc, szAttribute, &pAttrubute);
|
||||||
ok(hr == S_OK, "ret %08x\n", hr );
|
ok(hr == S_OK, "ret %08x\n", hr );
|
||||||
@ -1971,6 +2001,11 @@ static void test_xmlTypes(void)
|
|||||||
ok( !lstrcmpW( str, szAttributeXML ), "incorrect attribute xml\n");
|
ok( !lstrcmpW( str, szAttributeXML ), "incorrect attribute xml\n");
|
||||||
SysFreeString(str);
|
SysFreeString(str);
|
||||||
|
|
||||||
|
hr = IXMLDOMAttribute_get_dataType(pAttrubute, &v);
|
||||||
|
ok(hr == S_FALSE, "ret %08x\n", hr );
|
||||||
|
ok( V_VT(&v) == VT_NULL, "incorrect dataType type\n");
|
||||||
|
VariantClear(&v);
|
||||||
|
|
||||||
IXMLDOMAttribute_Release(pAttrubute);
|
IXMLDOMAttribute_Release(pAttrubute);
|
||||||
|
|
||||||
/* Check Element again with the Add Attribute*/
|
/* Check Element again with the Add Attribute*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user