48#define XML_E_UNEXPECTED_ATTRIBUTE 0xC00CE56C
51#undef CLSID_DOMDocument
53DEFINE_GUID(
GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
54DEFINE_GUID(IID_transformdest_unknown,0xf5078f3a,0xc551,0x11d3,0x89,0xb9,0x00,0x00,0xf8,0x1f,0xe2,0x21);
56#define check_interface(a, b, c) check_interface_(__LINE__, a, b, c)
65 hr = IUnknown_QueryInterface(iface, iid, (
void **)&unk);
66 ok_(__FILE__,
line)(
hr == expected_hr,
"Got hr %#lx, expected %#lx.\n",
hr, expected_hr);
68 IUnknown_Release(unk);
83 { &
CLSID_DOMDocument,
"DOMDocument", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
84 { &CLSID_DOMDocument2,
"DOMDocument2", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
85 { &CLSID_DOMDocument30,
"DOMDocument30", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
86 { &CLSID_DOMDocument40,
"DOMDocument40", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
87 { &CLSID_DOMDocument60,
"DOMDocument60", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2, &IID_IXMLDOMDocument3} },
88 { &CLSID_FreeThreadedDOMDocument,
"FreeThreadedDOMDocument", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
89 { &CLSID_XMLSchemaCache,
"XMLSchemaCache", {&IID_IXMLDOMSchemaCollection} },
90 { &CLSID_XSLTemplate,
"XSLTemplate", {&IID_IXSLTemplate} },
91 { &CLSID_MXNamespaceManager40,
"MXNamespaceManager40", {&IID_IMXNamespaceManager} },
101 return "IXMLDOMDocument";
103 return "IXMLDOMDocument2";
105 return "IXMLDOMDocument3";
107 return "IXMLDOMSchemaCollection";
109 return "IXSLTemplate";
111 return "IMXNamespaceManager";
127 if (
hr ==
S_OK) IUnknown_Release(unk);
178 IDispatch_AddRef( iface );
223 EXCEPINFO *excepInfo,
UINT *argErr)
235 ok(excepInfo ==
NULL,
"got %p\n", excepInfo);
236 ok(argErr ==
NULL,
"got %p\n", argErr);
260 return &
event->IDispatch_iface;
289 ok(0,
"unexpected call\n");
301 ok(0,
"unexpected call\n");
307 ok(0,
"unexpected call\n");
314 ok(0,
"unexpected call\n");
320 ok(0,
"unexpected call\n");
326 ok(0,
"unexpected call\n");
333 ok(0,
"unexpected call\n");
340 ok(0,
"unexpected call\n");
346 ok(0,
"unexpected call\n");
352 ok(0,
"unexpected call\n");
386 ok(0,
"unexpected call\n");
402 ok(0,
"unexpected call\n");
408 ok(0,
"unexpected call\n");
415 ok(0,
"unexpected call\n");
422 ok(0,
"unexpected call\n");
428 ok(0,
"unexpected call\n");
434 ok(0,
"unexpected call\n");
440 ok(0,
"unexpected call\n");
446 ok(0,
"unexpected call\n");
452 ok(0,
"unexpected call\n");
458 ok(0,
"unexpected call\n");
464 ok(0,
"unexpected call\n");
470 ok(0,
"unexpected call\n");
476 ok(0,
"unexpected call\n");
482 ok(0,
"unexpected call\n");
488 ok(0,
"unexpected call\n");
494 ok(0,
"unexpected call\n");
500 ok(0,
"unexpected call\n");
506 ok(0,
"unexpected call\n");
519 ok(dim == 1,
"got wrong array dimensions %u\n", dim);
524 ok(bound == 0,
"wrong array low bound %ld\n", bound);
529 ok(bound > 0,
"wrong array high bound %ld\n", bound);
536 ok(0,
"unexpected call\n");
542 ok(0,
"unexpected call\n");
548 ok(0,
"unexpected call\n");
554 ok(0,
"unexpected call\n");
560 ok(0,
"unexpected call\n");
566 ok(0,
"unexpected call\n");
572 ok(0,
"unexpected call\n");
578 ok(0,
"unexpected call\n");
584 ok(0,
"unexpected call\n");
590 ok(0,
"unexpected call\n");
596 ok(0,
"unexpected call\n");
602 ok(0,
"unexpected call\n");
608 ok(0,
"unexpected call\n");
614 ok(0,
"unexpected call\n");
620 ok(0,
"unexpected call\n");
626 ok(0,
"unexpected call\n");
674#define EXPECT_CHILDREN(node) _expect_children((IXMLDOMNode*)node, __LINE__)
681 hr = IXMLDOMNode_hasChildNodes(
node, &
b);
683 ok_(__FILE__,
line)(
b == VARIANT_TRUE,
"no children, %d\n",
b);
686#define EXPECT_NO_CHILDREN(node) _expect_no_children((IXMLDOMNode*)node, __LINE__)
693 hr = IXMLDOMNode_hasChildNodes(
node, &
b);
695 ok_(__FILE__,
line)(
b == VARIANT_FALSE,
"no children, %d\n",
b);
698#define EXPECT_REF(node,ref) _expect_ref((IUnknown*)node, ref, __LINE__)
702 IUnknown_AddRef(
obj);
703 rc = IUnknown_Release(
obj);
704 ok_(__FILE__,
line)(rc ==
ref,
"expected refcount %ld, got %ld\n",
ref, rc);
707#define EXPECT_LIST_LEN(list,len) _expect_list_len(list, len, __LINE__)
719#define EXPECT_PARSE_ERROR(doc, hr_exp, hr_todo) _expect_parse_error(doc, hr_exp, hr_todo, __LINE__)
727 hr = IXMLDOMDocument_get_parseError(doc, &
error);
732 hr = IXMLDOMParseError_get_errorCode(
error, &
code);
738 ok_(__FILE__,
line)(hr_exp ==
code,
"expected %#lx, unexpected hr %#lx.\n", hr_exp,
code);
746 IXMLDOMParseError_Release(
error);
751 "<?xml version=\'1.0\'?>\n"
753 "<bs vr=\'str2\' sz=\'1234\'>"
756 "<pr id=\'str3\' vr=\'1.2.3\' pn=\'wine 20050804\'>\n"
768 L"<S:search xmlns:D=\"DAV:\" xmlns:C=\"urn:schemas-microsoft-com:office:clipgallery\" xmlns:S=\"urn:schemas-microsoft-com:office:clipgallery:search\">"
769 "<S:scope><S:deep>/</S:deep></S:scope><S:contentfreetext><C:textorproperty/>computer</S:contentfreetext></S:search>";
772 "<?xml version=\"1.0\"?>\n\t"
781"<?xml version=\"1.0\" encoding=\"gbk\"?>"
787#define DECL_ISO8859_1 \
788"<?xml version=\"1.0\" encoding=\"ISO8859-1\"?>"
794#define DECL_WIN_936 \
795"<?xml version=\"1.0\" encoding=\"Windows-936\"?>"
801#define DECL_WIN_1252 \
802"<?xml version=\"1.0\" encoding=\"Windows-1252\"?>"
815"<?xml version='1.0' encoding='utf-8'?>\n"
816"<root xmlns:foo='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' a=\"attr a\" foo:b=\"attr b\" >\n"
822" <description xmlns:foo='http://www.winehq.org' xmlns:bar='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'>\n"
823" <html xmlns='http://www.w3.org/1999/xhtml'>\n"
824" <![CDATA[]]> This is<strong> a</strong> <i>description</i><dot>. </dot><bar:x/>\n"
826" <html xml:space='preserve' xmlns='http://www.w3.org/1999/xhtml'>\n"
827" This is <strong>a</strong> <i>description</i> with preserved whitespace. <bar:x/>\n"
835" <c type=\"old\">C2 field</c>\n"
839" <elem xmlns='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'>\n"
848" <foo:c>C4 field</foo:c>\n"
854"<?xml version='1.0'?>"
856"<b1> Text A end </b1>"
857"<b2>AB C </b2>"
861"<?xml version='1.0'?>"
862"<!-- comment node 0 -->"
863"<root id='0' depth='0'>"
864" <!-- comment node 1 -->"
866" <x id='1' depth='1'>"
867" <?foo value='PI for x'?>"
868" <!-- comment node 2 -->"
870" <a id='3' depth='2'/>"
871" <b id='4' depth='2'/>"
872" <c id='5' depth='2'/>"
874" <y id='2' depth='1'>"
875" <?bar value='PI for y'?>"
876" <!-- comment node 3 -->"
878" <a id='6' depth='2'/>"
879" <b id='7' depth='2'/>"
880" <c id='8' depth='2'/>"
885"<?xml version=\"1.0\"?>\n"
891"<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n"
892" <xsl:output method=\"html\"/>\n"
893" <xsl:template match=\"/\">\n"
894" <xsl:apply-templates select=\"greeting\"/>\n"
896" <xsl:template match=\"greeting\">\n"
900" <xsl:value-of select=\".\"/>\n"
910"</h1></body></html>";
913"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
914"<root xmlns:dt=\"urn:schemas-microsoft-com:datatypes\">\n"
915" <string>Wine</string>\n"
916" <string2 dt:dt=\"string\">String </string2>\n"
917" <string3> Wine Wine </string3>\n"
918" <string4>\nWine Wine\t</string4>\n"
919" <string5> </string5>\n"
920" <nested><s1> s1 </s1><s2>\ns2 s2\t</s2></nested>\n"
921" <number dt:dt=\"number\">12.44</number>\n"
922" <number2 dt:dt=\"NUMbEr\">-3.71e3</number2>\n"
923" <int dt:dt=\"int\">-13</int>\n"
924" <fixed dt:dt=\"fixed.14.4\">7322.9371</fixed>\n"
925" <bool dt:dt=\"boolean\">1</bool>\n"
926" <datetime dt:dt=\"datetime\">2009-11-18T03:21:33.12</datetime>\n"
927" <datetimetz dt:dt=\"datetime.tz\">2003-07-11T11:13:57+03:00</datetimetz>\n"
928" <date dt:dt=\"date\">3721-11-01</date>\n"
929" <time dt:dt=\"time\">13:57:12.31321</time>\n"
930" <timetz dt:dt=\"time.tz\">23:21:01.13+03:21</timetz>\n"
931" <i1 dt:dt=\"i1\">-13</i1>\n"
932" <i2 dt:dt=\"i2\">31915</i2>\n"
933" <i4 dt:dt=\"i4\">-312232</i4>\n"
934" <ui1 dt:dt=\"ui1\">123</ui1>\n"
935" <ui2 dt:dt=\"ui2\">48282</ui2>\n"
936" <ui4 dt:dt=\"ui4\">949281</ui4>\n"
937" <r4 dt:dt=\"r4\">213124.0</r4>\n"
938" <r8 dt:dt=\"r8\">0.412</r8>\n"
939" <float dt:dt=\"float\">41221.421</float>\n"
940" <uuid dt:dt=\"uuid\">333C7BC4-460F-11D0-BC04-0080C7055a83</uuid>\n"
941" <binhex dt:dt=\"bin.hex\">fffca012003c</binhex>\n"
942" <binbase64 dt:dt=\"bin.base64\">YmFzZTY0IHRlc3Q=</binbase64>\n"
943" <binbase64_1 dt:dt=\"bin.base64\">\nYmFzZTY0\nIHRlc3Q=\n</binbase64_1>\n"
944" <binbase64_2 dt:dt=\"bin.base64\">\nYmF\r\t z ZTY0\nIHRlc3Q=\n</binbase64_2>\n"
948"<?xml version=\"1.0\"?>"
949"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >"
950"<xsl:output method=\"html\"/>\n"
951"<xsl:template match=\"/\">"
953" <xsl:apply-templates select='document(\"";
957" <xsl:sort select=\"cost\"/><xsl:sort select=\"name\"/>"
958" </xsl:apply-templates>"
959"</TABLE></BODY></HTML>"
961"<xsl:template match=\"bottle\">"
962" <TR><xsl:apply-templates select=\"name\" /><xsl:apply-templates select=\"cost\" /></TR>"
964"<xsl:template match=\"name\">"
965" <TD><xsl:apply-templates /></TD>"
967"<xsl:template match=\"cost\">"
968" <TD><xsl:apply-templates /></TD>"
973"<?xml version=\"1.0\"?><bottle><wine><name>Wine</name><cost>$25.00</cost></wine></bottle>";
976"<HTML><BODY><TABLE><TD>Wine</TD><TD>$25.00</TD></TABLE></BODY></HTML>";
978#define SZ_EMAIL_DTD \
980" <!ELEMENT email (recipients,from,reply-to?,subject,body,attachment*)>"\
981" <!ATTLIST email attachments IDREFS #REQUIRED>"\
982" <!ATTLIST email sent (yes|no) \"no\">"\
983" <!ELEMENT recipients (to+,cc*)>"\
984" <!ELEMENT to (#PCDATA)>"\
985" <!ATTLIST to name CDATA #IMPLIED>"\
986" <!ELEMENT cc (#PCDATA)>"\
987" <!ATTLIST cc name CDATA #IMPLIED>"\
988" <!ELEMENT from (#PCDATA)>"\
989" <!ATTLIST from name CDATA #IMPLIED>"\
990" <!ELEMENT reply-to (#PCDATA)>"\
991" <!ATTLIST reply-to name CDATA #IMPLIED>"\
992" <!ELEMENT subject ANY>"\
993" <!ELEMENT body ANY>"\
994" <!ATTLIST body enc CDATA #FIXED \"UTF-8\">"\
995" <!ELEMENT attachment (#PCDATA)>"\
996" <!ATTLIST attachment id ID #REQUIRED>"\
1000"<?xml version=\"1.0\"?>"
1002"<email attachments=\"patch1\">"
1004" <to>wine-patches@winehq.org</to>"
1006" <from name=\"Anonymous\">user@localhost</from>"
1007" <subject>msxml3/tests: DTD validation (try 87)</subject>"
1009" It no longer causes spontaneous combustion..."
1011" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1015"<?xml version=\"1.0\"?>"
1017"<email attachments=\"patch1\">"
1019" <to>wine-patches@winehq.org</to>"
1021" <from name=\"Anonymous\">user@localhost</from>"
1022" <subject>msxml3/tests: DTD validation (try 88)</subject>"
1025" XML_ELEMENT_UNDECLARED 0xC00CE00D"
1027" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1031"<?xml version=\"1.0\"?>"
1033"<email attachments=\"patch1\">"
1035" <to>wine-patches@winehq.org</to>"
1037" <from name=\"Anonymous\">user@localhost</from>"
1038" <subject>msxml3/tests: DTD validation (try 89)</subject>"
1040" XML_ELEMENT_ID_NOT_FOUND 0xC00CE00E"
1042" <attachment id=\"patch\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1046"<?xml version=\"1.0\"?>"
1048"<email attachments=\"patch1\">"
1051" <from name=\"Anonymous\">user@localhost</from>"
1052" <subject>msxml3/tests: DTD validation (try 90)</subject>"
1054" XML_EMPTY_NOT_ALLOWED 0xC00CE011"
1056" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1060"<?xml version=\"1.0\"?>"
1062"<msg attachments=\"patch1\">"
1064" <to>wine-patches@winehq.org</to>"
1066" <from name=\"Anonymous\">user@localhost</from>"
1067" <subject>msxml3/tests: DTD validation (try 91)</subject>"
1069" XML_ROOT_NAME_MISMATCH 0xC00CE013"
1071" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1075"<?xml version=\"1.0\"?>"
1077"<email attachments=\"patch1\">"
1078" <to>wine-patches@winehq.org</to>"
1079" <from name=\"Anonymous\">user@localhost</from>"
1080" <subject>msxml3/tests: DTD validation (try 92)</subject>"
1082" XML_INVALID_CONTENT 0xC00CE014"
1084" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1088"<?xml version=\"1.0\"?>"
1090"<email attachments=\"patch1\" ip=\"127.0.0.1\">"
1092" <to>wine-patches@winehq.org</to>"
1094" <from name=\"Anonymous\">user@localhost</from>"
1095" <subject>msxml3/tests: DTD validation (try 93)</subject>"
1097" XML_ATTRIBUTE_NOT_DEFINED 0xC00CE015"
1099" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1103"<?xml version=\"1.0\"?>"
1105"<email attachments=\"patch1\">"
1107" <to>wine-patches@winehq.org</to>"
1109" <from name=\"Anonymous\">user@localhost</from>"
1110" <subject>msxml3/tests: DTD validation (try 94)</subject>"
1111" <body enc=\"ASCII\">"
1112" XML_ATTRIBUTE_FIXED 0xC00CE016"
1114" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1118"<?xml version=\"1.0\"?>"
1120"<email attachments=\"patch1\" sent=\"true\">"
1122" <to>wine-patches@winehq.org</to>"
1124" <from name=\"Anonymous\">user@localhost</from>"
1125" <subject>msxml3/tests: DTD validation (try 95)</subject>"
1127" XML_ATTRIBUTE_VALUE 0xC00CE017"
1129" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1133"<?xml version=\"1.0\"?>"
1135"<email attachments=\"patch1\">"
1138" <to>wine-patches@winehq.org</to>"
1140" <from name=\"Anonymous\">user@localhost</from>"
1141" <subject>msxml3/tests: DTD validation (try 96)</subject>"
1143" XML_ILLEGAL_TEXT 0xC00CE018"
1145" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1149"<?xml version=\"1.0\"?>"
1153" <to>wine-patches@winehq.org</to>"
1155" <from name=\"Anonymous\">user@localhost</from>"
1156" <subject>msxml3/tests: DTD validation (try 97)</subject>"
1158" XML_REQUIRED_ATTRIBUTE_MISSING 0xC00CE020"
1160" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1164"<?xml version=\"1.0\"?>"
1166" <a attr1=\"1\" attr2=\"2\" />"
1173 "<?xml version=\"1.0\"?>"
1174 "<a xmlns:ns=\"nshref\" xml:lang=\"ru\" ns:b=\"b attr\" xml:c=\"c attr\" "
1179 "<?xml version=\"1.0\"?>"
1180 "<a attr1=\"value1\" attr2=\"value2\" attr3=\"value3\" attr4=\"value4\" />"
1187#define expect_bstr_eq_and_free(bstr, expect) { \
1188 BSTR bstrExp = alloc_str_from_narrow(expect); \
1189 ok(lstrcmpW(bstr, bstrExp) == 0, "String differs\n"); \
1190 SysFreeString(bstr); \
1191 SysFreeString(bstrExp); \
1194#define expect_eq(expr, value, type, format) { type ret = (expr); ok((value) == ret, #expr " expected " format " got " format "\n", value, ret); }
1196#define ole_expect(expr, expect) { \
1198 ok(r == (expect), #expr " returned %x, expected %x\n", r, expect); \
1201#define double_eq(x, y) ok((x)-(y)<=1e-14*(x) && (x)-(y)>=-1e-14*(x), "expected %.16g, got %.16g\n", x, y)
1209 ok(
hr ==
S_OK,
"failed to create %s instance: hr %#lx.\n",
name,
hr);
1214#define _create(cls) cls, #cls
1216#define create_document(iid) _create_object(&_create(CLSID_DOMDocument2), iid, __LINE__)
1217#define create_document_version(v, iid) _create_object(&_create(CLSID_DOMDocument ## v), iid, __LINE__)
1218#define create_cache(iid) _create_object(&_create(CLSID_XMLSchemaCache), iid, __LINE__)
1219#define create_xsltemplate(iid) _create_object(&_create(CLSID_XSLTemplate), iid, __LINE__)
1259 while (*sLeft ==
'\r' || *sLeft ==
'\n') sLeft++;
1260 while (*sRight ==
'\r' || *sRight ==
'\n') sRight++;
1261 if (*sLeft != *sRight)
return FALSE;
1262 if (!*sLeft)
return TRUE;
1300 IXMLDOMNode_AddRef(
node);
1306 r = IXMLDOMNode_get_previousSibling(
node, &new_node);
1308 IXMLDOMNode_Release(
node);
1310 }
while (
r ==
S_OK);
1325 IXMLDOMNode_AddRef(
node);
1338 hr = IXMLDOMNode_get_nodeName(
node, &bstr);
1346 hr = IXMLDOMNode_selectSingleNode(
node,
_bstr_(
".."), &new_node);
1350 hr = IXMLDOMNode_get_parentNode(
node, &new_node);
1356 IXMLDOMNode_Release(
node);
1367 static char buf[4096];
1378 hr = IXMLDOMNodeList_get_length(
list, &
len);
1380 for (
i = 0;
i <
len;
i++)
1389 IXMLDOMNode_Release(
node);
1395#define expect_node(node, expstr) { char str[4096]; node_to_string(node, str); ok(strcmp(str, expstr)==0, "Invalid node: %s, expected %s\n", str, expstr); }
1396#define expect_list_and_release(list, expstr) { char *str = list_to_string(list); ok(strcmp(str, expstr)==0, "Invalid node list: %s, expected %s\n", str, expstr); if (list) IXMLDOMNodeList_Release(list); }
1411 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1412 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_TRUE,
S_OK } }},
1413 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1414 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1415 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1420 "\n<?xml version=\"1.0\" encoding=\"UTF-16\" ?><root/>",
1421 " <?xml version=\"1.0\"?><root/>",
1422 "\n<?xml version=\"1.0\"?><root/>",
1423 "\t<?xml version=\"1.0\"?><root/>",
1424 "\r\n<?xml version=\"1.0\"?><root/>",
1425 "\r<?xml version=\"1.0\"?><root/>",
1426 "\r\r\r\r\t\t \n\n <?xml version=\"1.0\"?><root/>",
1442 const char **data_ptr;
1462 while (class_ptr->
clsid)
1494 hr = IXMLDOMDocument_load(doc,
var, &
b);
1495 ok(
hr == class_ptr->
ret[0].hr,
"Unexpected hr %#lx.\n",
hr);
1496 ok(
b == class_ptr->
ret[0].b,
"%d:%d, got %d, expected %d\n",
index,
i,
b, class_ptr->
ret[0].b);
1501 hr = IXMLDOMDocument_loadXML(doc,
data, &
b);
1502 ok(
hr == class_ptr->
ret[1].hr,
"Unexpected hr %#lx.\n",
hr);
1503 ok(
b == class_ptr->
ret[1].b,
"%d:%d, got %d, expected %d\n",
index,
i,
b, class_ptr->
ret[1].b);
1528 IXMLDOMDocument_loadXML( doc, (
BSTR)0x1,
NULL );
1532 hr = IXMLDOMDocument_loadXML( doc,
NULL,
NULL );
1536 hr = IXMLDOMDocument_loadXML( doc,
NULL, &
b );
1538 ok(
b == VARIANT_FALSE,
"failed to load XML string\n");
1547 hr = IXMLDOMDocument_load( doc,
var, &
b);
1549 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1552 str = (
void *)0xdeadbeef;
1553 hr = IXMLDOMDocument_get_url(doc, &
str);
1560 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1562 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1565 hr = IXMLDOMDocument_get_async( doc, &
b );
1567 ok(
b == VARIANT_TRUE,
"Wrong default value\n");
1571 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
1572 ok(
hr ==
S_FALSE,
"should be no document element\n");
1577 hr = IXMLDOMDocument_selectSingleNode( doc,
str, &
node );
1583 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1585 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1590 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
1591 ok(
hr ==
S_FALSE,
"should be no document element\n");
1599 hr = IXMLDOMDocument_loadXML( doc, &
buff[2], &
b );
1600 ok(
hr ==
S_OK,
"loadXML failed\n");
1601 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1605 str =
SysAllocString(
L"<?xml version='1.0' encoding='Windows-1252'?>\n<open></open>\n" );
1606 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1607 ok(
hr ==
S_OK,
"loadXML failed\n");
1608 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1614 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1616 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1622 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1624 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1630 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1631 ok(
hr ==
S_OK,
"loadXML failed\n");
1632 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1636 hr = IXMLDOMDocument_get_nodeName( doc,
NULL );
1639 str = (
void *)0xdeadbeef;
1640 hr = IXMLDOMDocument_get_baseName( doc, &
str );
1646 hr = IXMLDOMDocument_get_nodeName( doc, &
str );
1647 ok (
hr ==
S_OK,
"get_nodeName wrong code\n");
1653 hr = IXMLDOMDocument_put_text( doc,
_bstr_(
"Should fail") );
1658 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
1659 ok(
hr ==
S_OK,
"should be a document element\n");
1664 hr = IXMLDOMElement_QueryInterface(
element, &IID_IObjectIdentity, (
void**)&
ident );
1667 IXMLDOMElement_Release(
element );
1673 hr = IXMLDOMDocument_loadXML( doc,
NULL,
NULL );
1675 ok(
b == 2,
"variant modified\n");
1676 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
1677 ok(
hr ==
S_FALSE,
"should be no document element\n");
1682 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1683 ok(
hr ==
S_OK,
"loadXML failed\n");
1684 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1690 ok(
hr ==
S_OK,
"loadXML failed\n");
1691 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1693 hr = IXMLDOMDocument_get_parseError( doc, &
error );
1696 hr = IXMLDOMParseError_get_errorCode(
error, &
code );
1699 IXMLDOMParseError_Release(
error );
1702 hr = IXMLDOMDocument_createTextNode(doc,
_bstr_(
""), &nodetext);
1704 IXMLDOMText_Release(nodetext);
1707 hr = IXMLDOMDocument_createTextNode(doc,
str,
NULL);
1709 hr = IXMLDOMDocument_createTextNode(doc,
str, &nodetext);
1714 hr = IXMLDOMText_QueryInterface(nodetext, &IID_IXMLDOMElement, (
void**)&
element);
1718 hr = IXMLDOMText_get_lastChild(nodetext,
NULL);
1722 hr = IXMLDOMText_get_lastChild(nodetext, &nodeChild);
1724 ok(nodeChild ==
NULL,
"nodeChild not NULL\n");
1727 hr = IXMLDOMText_get_length(nodetext,
NULL);
1730 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1735 hr = IXMLDOMText_put_data(nodetext,
_bstr_(
"This &is a ; test <>\\"));
1739 hr = IXMLDOMText_get_data(nodetext, &
str);
1741 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect put_data string\n");
1745 hr = IXMLDOMText_get_xml(nodetext, &
str);
1747 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect xml string\n");
1751 hr = IXMLDOMText_get_text(nodetext, &
str);
1753 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect xml string\n");
1757 hr = IXMLDOMText_substringData(nodetext, 0, 4,
NULL);
1761 str = (
void *)0xdeadbeef;
1762 hr = IXMLDOMText_substringData(nodetext, -1, 4, &
str);
1767 str = (
void *)0xdeadbeef;
1768 hr = IXMLDOMText_substringData(nodetext, 30, 0, &
str);
1773 str = (
void *)0xdeadbeef;
1774 hr = IXMLDOMText_substringData(nodetext, 0, -1, &
str);
1779 str = (
void *)0xdeadbeef;
1780 hr = IXMLDOMText_substringData(nodetext, 2, 0, &
str);
1785 hr = IXMLDOMText_substringData(nodetext, 0, 4, &
str);
1791 hr = IXMLDOMText_substringData(nodetext, 13, 4, &
str);
1797 hr = IXMLDOMText_substringData(nodetext, 20, 4, &
str);
1803 hr = IXMLDOMText_appendData(nodetext,
NULL);
1806 hr = IXMLDOMText_appendData(nodetext,
_bstr_(
""));
1809 hr = IXMLDOMText_appendData(nodetext,
_bstr_(
"Append"));
1812 hr = IXMLDOMText_get_text(nodetext, &
str);
1819 hr = IXMLDOMText_insertData(nodetext, -1,
str);
1822 hr = IXMLDOMText_insertData(nodetext, -1,
NULL);
1825 hr = IXMLDOMText_insertData(nodetext, 1000,
str);
1828 hr = IXMLDOMText_insertData(nodetext, 1000,
NULL);
1831 hr = IXMLDOMText_insertData(nodetext, 0,
NULL);
1834 hr = IXMLDOMText_insertData(nodetext, 0,
str);
1838 hr = IXMLDOMText_insertData(nodetext, -1,
_bstr_(
"Inserting"));
1841 hr = IXMLDOMText_insertData(nodetext, 1000,
_bstr_(
"Inserting"));
1844 hr = IXMLDOMText_insertData(nodetext, 0,
_bstr_(
"Begin "));
1847 hr = IXMLDOMText_insertData(nodetext, 17,
_bstr_(
"Middle"));
1850 hr = IXMLDOMText_insertData(nodetext, 39,
_bstr_(
" End"));
1853 hr = IXMLDOMText_get_text(nodetext, &
str);
1860 hr = IXMLDOMText_deleteData(nodetext, -1, 1);
1863 hr = IXMLDOMText_deleteData(nodetext, 0, 0);
1866 hr = IXMLDOMText_deleteData(nodetext, 0, -1);
1869 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1873 hr = IXMLDOMText_deleteData(nodetext,
nLength, 1);
1876 hr = IXMLDOMText_deleteData(nodetext,
nLength+1, 1);
1880 hr = IXMLDOMText_deleteData(nodetext, 0, 5);
1883 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1887 hr = IXMLDOMText_get_text(nodetext, &
str);
1893 hr = IXMLDOMText_deleteData(nodetext, 35, 3);
1896 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1900 hr = IXMLDOMText_get_text(nodetext, &
str);
1906 hr = IXMLDOMText_deleteData(nodetext, 1, 33);
1909 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1913 hr = IXMLDOMText_get_text(nodetext, &
str);
1919 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1922 hr = IXMLDOMText_deleteData(nodetext, 0,
nLength);
1925 hr = IXMLDOMText_deleteData(nodetext, 0,
nLength);
1931 hr = IXMLDOMText_put_nodeValue(nodetext,
var);
1935 hr = IXMLDOMText_get_text(nodetext, &
str);
1943 hr = IXMLDOMText_put_nodeValue(nodetext,
var);
1947 hr = IXMLDOMText_get_text(nodetext, &
str);
1955 hr = IXMLDOMText_put_nodeValue(nodetext,
var);
1959 hr = IXMLDOMText_replaceData(nodetext, 6, 0,
NULL);
1961 hr = IXMLDOMText_get_text(nodetext, &
str);
1966 hr = IXMLDOMText_replaceData(nodetext, 0, 0,
NULL);
1968 hr = IXMLDOMText_get_text(nodetext, &
str);
1974 hr = IXMLDOMText_replaceData(nodetext, 0, 1,
NULL);
1976 hr = IXMLDOMText_get_text(nodetext, &
str);
1982 hr = IXMLDOMText_replaceData(nodetext, 0, 1,
_bstr_(
""));
1984 hr = IXMLDOMText_get_text(nodetext, &
str);
1990 hr = IXMLDOMText_replaceData(nodetext, 0, 0,
_bstr_(
"a"));
1992 hr = IXMLDOMText_get_text(nodetext, &
str);
1997 hr = IXMLDOMText_replaceData(nodetext, 0, 2,
NULL);
2000 hr = IXMLDOMText_insertData(nodetext, 0,
_bstr_(
"m"));
2002 hr = IXMLDOMText_get_text(nodetext, &
str);
2008 hr = IXMLDOMText_replaceData(nodetext, 0, 2,
_bstr_(
"a1.2"));
2010 hr = IXMLDOMText_get_text(nodetext, &
str);
2016 hr = IXMLDOMText_replaceData(nodetext, 0, 1,
_bstr_(
"wine"));
2018 hr = IXMLDOMText_get_text(nodetext, &
str);
2023 IXMLDOMText_Release( nodetext );
2027 hr = IXMLDOMDocument_createComment(doc,
NULL,
NULL);
2032 hr = IXMLDOMDocument_createComment(doc,
_bstr_(
""), &node_comment);
2035 hr = IXMLDOMComment_get_data(node_comment, &
str);
2038 IXMLDOMComment_Release(node_comment);
2041 hr = IXMLDOMDocument_createComment(doc,
NULL, &node_comment);
2044 hr = IXMLDOMComment_get_data(node_comment, &
str);
2047 IXMLDOMComment_Release(node_comment);
2051 hr = IXMLDOMDocument_createComment(doc,
str, &node_comment);
2057 hr = IXMLDOMComment_get_lastChild(node_comment,
NULL);
2061 hr = IXMLDOMComment_get_lastChild(node_comment, &nodeChild);
2063 ok(nodeChild ==
NULL,
"pLastChild not NULL\n");
2066 str = (
void *)0xdeadbeef;
2067 hr = IXMLDOMComment_get_baseName(node_comment, &
str);
2071 IXMLDOMComment_Release( node_comment );
2076 hr = IXMLDOMDocument_createAttribute(doc,
NULL,
NULL);
2078 hr = IXMLDOMDocument_createAttribute(doc,
str, &node_attr);
2080 IXMLDOMAttribute_Release( node_attr);
2085 hr = IXMLDOMDocument_createProcessingInstruction(doc,
str,
str,
NULL);
2087 hr = IXMLDOMDocument_createProcessingInstruction(doc,
NULL,
str, &nodePI);
2089 hr = IXMLDOMDocument_createProcessingInstruction(doc,
str,
str, &nodePI);
2093 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\""), &nodePI);
2098 hr = IXMLDOMProcessingInstruction_get_lastChild(nodePI,
NULL);
2102 hr = IXMLDOMProcessingInstruction_get_lastChild(nodePI, &nodeChild);
2104 ok(nodeChild ==
NULL,
"nodeChild not NULL\n");
2107 hr = IXMLDOMProcessingInstruction_get_nodeName(nodePI, &
str);
2114 hr = IXMLDOMProcessingInstruction_get_baseName(nodePI, &
str);
2120 hr = IXMLDOMProcessingInstruction_get_target(nodePI, &
str);
2126 hr = IXMLDOMProcessingInstruction_get_data(nodePI, &
str);
2128 ok(!
lstrcmpW(
str,
L"version=\"1.0\""),
"incorrect data string\n");
2132 hr = IXMLDOMProcessingInstruction_put_data(nodePI,
_bstr_(
"version=\"1.0\" encoding=\"UTF-8\""));
2138 hr = IXMLDOMProcessingInstruction_put_nodeValue(nodePI,
var);
2143 hr = IXMLDOMProcessingInstruction_get_nodeName(nodePI, &
str);
2148 IXMLDOMProcessingInstruction_Release(nodePI);
2151 ref = IXMLDOMDocument_Release( doc );
2172 hr = IPersistStreamInit_InitNew(streaminit);
2175 hr = IPersistStreamInit_GetSizeMax(streaminit, &
size);
2185 hr = IPersistStreamInit_GetClassID(streaminit,
NULL);
2189 hr = IPersistStreamInit_GetClassID(streaminit, &
clsid);
2193 IPersistStream_Release(
stream);
2197 hr = IPersistStreamInit_Load(streaminit,
istream);
2203 hr = IPersistStreamInit_Load(streaminit,
istream);
2209 IPersistStreamInit_Release(streaminit);
2210 IXMLDOMDocument_Release(doc);
2232 ok(
hr ==
S_OK,
"loadXML failed\n");
2233 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
2237 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
2238 ok(
hr ==
S_OK,
"should be a document element\n");
2244 hr = IXMLDOMDocument_get_nodeValue( doc,
NULL );
2247 hr = IXMLDOMDocument_get_nodeValue( doc, &
var );
2248 ok(
hr ==
S_FALSE,
"get_nodeValue returned wrong code\n");
2257 hr = IXMLDOMElement_get_ownerDocument(
element, &owner );
2258 ok(
hr ==
S_OK,
"get_ownerDocument return code\n");
2259 ok( owner != doc,
"get_ownerDocument return\n");
2260 IXMLDOMDocument_Release(owner);
2269 ok(
hr ==
S_OK,
"get_baseName returned wrong code\n");
2312 ok(
attr !=
NULL,
"getAttributeNode returned NULL\n" );
2315 hr = IXMLDOMAttribute_get_parentNode(
attr,
NULL );
2320 hr = IXMLDOMAttribute_get_parentNode(
attr, &
node );
2324 IXMLDOMAttribute_Release(
attr);
2330 ok(
hr ==
S_OK,
"get_attributes returned wrong code\n");
2331 ok(
map !=
NULL,
"should be attributes\n");
2337 hr = IXMLDOMNodeList_nextNode(
list, &
node );
2339 IXMLDOMNode_Release(
node );
2340 hr = IXMLDOMNodeList_nextNode(
list, &
node );
2342 IXMLDOMNode_Release(
node );
2343 hr = IXMLDOMNodeList_nextNode(
list, &
node );
2345 hr = IXMLDOMNode_get_attributes(
node, &attributes );
2348 hr = IXMLDOMNamedNodeMap_nextNode( attributes, &
next );
2351 IXMLDOMNamedNodeMap_Release( attributes );
2352 IXMLDOMNode_Release(
node );
2355 IXMLDOMNodeList_Release(
list );
2364 hr = IXMLDOMNamedNodeMap_getNamedItem(
map,
str, &
node );
2365 ok(
hr ==
S_OK,
"getNamedItem returned wrong code\n");
2367 IXMLDOMNode_Release(
node);
2371 hr = IXMLDOMNamedNodeMap_getNamedItem(
map,
str,
NULL );
2378 hr = IXMLDOMNamedNodeMap_getNamedItem(
map,
str, &
node );
2379 ok(
hr ==
S_FALSE,
"getNamedItem found a node that wasn't there\n");
2380 ok(
node ==
NULL,
"getNamedItem should have returned NULL\n");
2384 hr = IXMLDOMNamedNodeMap_get_length(
map,
NULL );
2387 hr = IXMLDOMNamedNodeMap_get_length(
map, &
count );
2388 ok (
hr ==
S_OK,
"get_length wrong code\n");
2389 ok (
count == 1,
"get_length != 1\n");
2392 hr = IXMLDOMNamedNodeMap_get_item(
map, -1, &
node);
2393 ok (
hr ==
S_FALSE,
"get_item (-1) wrong code\n");
2397 hr = IXMLDOMNamedNodeMap_get_item(
map, 1, &
node);
2399 ok (
node ==
NULL,
"there is no attribute\n");
2402 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &
node);
2403 ok (
hr ==
S_OK,
"get_item (0) wrong code\n");
2411 hr = IXMLDOMNode_get_nodeName(
node, &
str );
2412 ok (
hr ==
S_OK,
"get_nodeName wrong code\n");
2416 IXMLDOMNode_Release(
node );
2420 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node );
2421 ok (
hr ==
S_OK,
"nextNode (first time) wrong code\n");
2422 ok (
node !=
NULL,
"nextNode, should be attribute\n");
2423 IXMLDOMNode_Release(
node );
2425 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node );
2426 ok (
hr !=
S_OK,
"nextNode (second time) wrong code\n");
2427 ok (
node ==
NULL,
"nextNode, there is no attribute\n");
2429 hr = IXMLDOMNamedNodeMap_reset(
map );
2430 ok (
hr ==
S_OK,
"reset should return S_OK\n");
2432 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node );
2433 ok (
hr ==
S_OK,
"nextNode (third time) wrong code\n");
2434 ok (
node !=
NULL,
"nextNode, should be attribute\n");
2443 ok(
hr ==
S_OK,
"get_nodeType returned wrong code\n");
2451 hr = IXMLDOMNode_get_baseName(
node, &
str );
2452 ok(
hr ==
S_OK,
"get_baseName returned wrong code\n");
2456 hr = IXMLDOMNode_get_childNodes(
node,
NULL );
2459 hr = IXMLDOMNode_get_childNodes(
node, &
list );
2460 ok(
hr ==
S_OK,
"get_childNodes returned wrong code\n");
2464 hr = IXMLDOMNodeList_nextNode(
list, &
next );
2465 ok(
hr ==
S_OK,
"nextNode returned wrong code\n");
2476 ok(
hr ==
S_OK,
"get_nodeType returned wrong code\n");
2479 str = (
void *)0xdeadbeef;
2480 hr = IXMLDOMNode_get_baseName(
next, &
str );
2481 ok(
hr ==
S_FALSE,
"get_baseName returned wrong code\n");
2482 ok(
str ==
NULL,
"basename was wrong\n");
2489 IXMLDOMNode_Release(
next );
2492 IXMLDOMNodeList_Release(
list );
2495 IXMLDOMNode_Release(
node );
2502 IXMLDOMNamedNodeMap_Release(
map );
2508 ok(
hr ==
S_OK,
"get_childNodes returned wrong code\n");
2511 hr = IXMLDOMNodeList_get_item(
list, 1, &
node);
2514 IXMLDOMNode_Release(
node);
2518 IXMLDOMNode_Release(
node);
2519 hr = IXMLDOMNodeList_reset(
list);
2522 IXMLDOMNodeList_AddRef(
list);
2524 hr = IXMLDOMNodeList_reset(
list);
2527 node = (
void*)0xdeadbeef;
2534 node = (
void*)0xdeadbeef;
2543 IXMLDOMNode_Release(
node );
2550 hr = IXMLDOMNodeList_get_item(
list, 0,
NULL);
2563 hr = IXMLDOMNodeList_nextNode(
list, &
node );
2564 ok(
hr ==
S_OK,
"nextNode returned wrong code\n");
2573 ok(
hr ==
S_OK,
"get_nodeType returned wrong code\n");
2576 hr = IXMLDOMNode_hasChildNodes(
node,
NULL );
2582 hr = IXMLDOMNode_get_baseName(
node, &
str );
2583 ok(
hr ==
S_OK,
"get_baseName returned wrong code\n");
2591 IXMLDOMNode_Release(
node );
2593 IXMLDOMNodeList_Release(
list );
2595 IXMLDOMElement_Release(
element );
2599 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
2600 ok(
hr ==
S_OK,
"loadXML failed\n");
2601 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
2606 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
2607 ok(
hr ==
S_OK,
"should be a document element\n");
2616 ok(
hr ==
S_OK,
"couldn't get tag name\n");
2621 IXMLDOMElement_Release(
element );
2623 ok(IXMLDOMDocument_Release( doc ) == 0,
"document is not destroyed\n");
2663 IUnknown *node_typed, *node_typed2;
2695 todo_wine ok(disp != disp2,
"%d: got %p and %p\n",
ptr->type, disp, disp2);
2699 IDispatch_Release(disp);
2700 IDispatch_Release(disp2);
2704 hr = IUnknown_QueryInterface(unk, &IID_IXMLDOMNode, (
void**)&node2);
2711 hr = IUnknown_QueryInterface(unk, &IID_IXMLDOMNode, (
void**)&node3);
2713 todo_wine ok(node2 != node3,
"%d: got %p and %p\n",
ptr->type, node2, node3);
2717 IXMLDOMNode_Release(node2);
2718 IXMLDOMNode_Release(node3);
2722 hr = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (
void**)&dispex);
2724 ok(unk != (
IUnknown*)dispex,
"%d: got %p and %p\n",
ptr->type, unk, dispex);
2729 hr = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (
void**)&dispex2);
2731 todo_wine ok(dispex != dispex2,
"%d: got %p and %p\n",
ptr->type, dispex, dispex2);
2735 IDispatchEx_Release(dispex);
2736 IDispatchEx_Release(dispex2);
2740 hr = IUnknown_QueryInterface(unk,
ptr->iid, (
void**)&node_typed);
2743 hr = IUnknown_QueryInterface(unk,
ptr->iid, (
void**)&node_typed2);
2746 todo_wine ok(node_typed != node_typed2,
"%d: got %p and %p\n",
ptr->type, node_typed, node_typed2);
2747 IUnknown_Release(node_typed);
2748 IUnknown_Release(node_typed2);
2751 hr = IUnknown_QueryInterface(unk, (
ptr+1)->iid, (
void**)&node_typed);
2754 IUnknown_Release(unk);
2757 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMNode, (
void**)&node2);
2760 ok(
node == node2,
"%d: got %p and %p\n",
ptr->type,
node, node2);
2763 hr = IXMLDOMNode_QueryInterface(
node,
ptr->iid, (
void**)&node_typed);
2770 IUnknown_Release(node_typed);
2772 IXMLDOMNode_Release(node2);
2773 IXMLDOMNode_Release(
node);
2779 ref = IXMLDOMDocument_Release(doc);
2785 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
2791 IXMLDOMDocument_Release(doc);
2793 IUnknown_Release(unk);
2798 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
2804 IUnknown_Release(unk);
2808 hr = IXMLDOMDocument_get_implementation(doc, &impl);
2812 hr = IXMLDOMDocument_get_implementation(doc, &impl2);
2816 ok(impl != impl2,
"got %p, %p\n", impl, impl2);
2817 IXMLDOMImplementation_Release(impl);
2818 IXMLDOMImplementation_Release(impl2);
2822 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
2825 IXMLDOMDocument_AddRef( doc );
2827 IXMLDOMDocument_AddRef( doc );
2830 IXMLDOMDocument_Release( doc );
2831 IXMLDOMDocument_Release( doc );
2834 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
2840 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
2846 hr = IXMLDOMDocument_get_documentElement(doc, &elem2);
2854 IXMLDOMElement_AddRef(
element);
2856 IXMLDOMElement_Release(
element);
2866 hr = IXMLDOMElement_QueryInterface(elem2, &
IID_IUnknown, (
void**)&unk2);
2875 todo_wine ok(unk == unk2,
"got %p and %p\n", unk, unk2);
2876 IUnknown_Release(unk);
2880 IXMLDOMElement_AddRef(elem2);
2882 IXMLDOMElement_Release(elem2);
2884 IXMLDOMElement_Release(elem2);
2887 IUnknown_Release(unk2);
2889 hr = IXMLDOMElement_get_childNodes(
element, &node_list );
2895 hr = IXMLDOMNodeList_get_item( node_list, 0, &
node );
2900 hr = IXMLDOMNodeList_get_item( node_list, 0, &node2 );
2905 ref = IXMLDOMNode_Release(
node );
2907 ref = IXMLDOMNode_Release( node2 );
2910 ref = IXMLDOMNodeList_Release( node_list );
2913 ok(
node != node2,
"node %p node2 %p\n",
node, node2 );
2915 ref = IXMLDOMDocument_Release( doc );
2924 hr = IXMLDOMElement_QueryInterface(
element, &IID_IXMLDOMNode, (
void**)&
node);
2930 ok(unk == unk2,
"unk %p unk2 %p\n", unk, unk2);
2933 IUnknown_Release( unk2 );
2934 IUnknown_Release( unk );
2935 IXMLDOMNode_Release(
node );
2938 IXMLDOMElement_Release(
element );
2969 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
2976 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
2983 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
2990 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3000 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
3002 IXMLDOMNode_Release(
node);
3008 IXMLDOMComment_Release(
comment);
3015 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
3017 IXMLDOMNode_Release(
node);
3023 IXMLDOMComment_Release(
comment);
3030 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
3032 IXMLDOMNode_Release(
node);
3038 IXMLDOMComment_Release(
comment);
3049 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
3051 IXMLDOMNode_Release(
node);
3057 IXMLDOMText_Release(
text);
3064 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
3066 IXMLDOMNode_Release(
node);
3072 IXMLDOMText_Release(
text);
3079 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
3081 IXMLDOMNode_Release(
node);
3087 IXMLDOMText_Release(
text);
3098 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
3100 IXMLDOMNode_Release(
node);
3103 hr = IXMLDOMCDATASection_get_data(cdata, &
str);
3106 IXMLDOMCDATASection_Release(cdata);
3113 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
3115 IXMLDOMNode_Release(
node);
3118 hr = IXMLDOMCDATASection_get_data(cdata, &
str);
3121 IXMLDOMCDATASection_Release(cdata);
3128 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
3130 IXMLDOMNode_Release(
node);
3133 hr = IXMLDOMCDATASection_get_data(cdata, &
str);
3136 IXMLDOMCDATASection_Release(cdata);
3145 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3152 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3170 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3179 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3186 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3199 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3206 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3214 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3221 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3261 hr = IXMLDOMDocument_appendChild( doc,
node, &
root );
3268 ref = IXMLDOMNode_Release(
node );
3294 IXMLDOMNode_Release(
child );
3295 IUnknown_Release( unk );
3302 IXMLDOMNode_Release(
child );
3308 IXMLDOMNode_Release(
node );
3310 hr = IXMLDOMNode_QueryInterface(
root, &IID_IXMLDOMElement, (
void**)&
element );
3313 hr = IXMLDOMElement_get_attributes(
element, &attr_map );
3315 hr = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3318 IXMLDOMNamedNodeMap_Release( attr_map );
3325 hr = IXMLDOMElement_get_attributes(
element, &attr_map );
3327 hr = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3330 IXMLDOMNamedNodeMap_Release( attr_map );
3337 hr = IXMLDOMElement_get_attributes(
element, &attr_map );
3339 hr = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3342 IXMLDOMNamedNodeMap_Release( attr_map );
3355 hr = IXMLDOMElement_get_attributes(
element, &attr_map );
3357 hr = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3360 IXMLDOMNamedNodeMap_Release( attr_map );
3385 IXMLDOMElement_Release(
element );
3386 IXMLDOMNode_Release(
root );
3387 IXMLDOMDocument_Release( doc );
3397 {
"",
"P1.D1 E2.D1 E1.E2.D1 T1.E1.E2.D1 E2.E2.D1 T1.E2.E2.D1 E3.E2.D1 E4.E2.D1 E1.E4.E2.D1 T1.E1.E4.E2.D1", 10 },
3398 {
"*",
"E2.D1 E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1 E1.E4.E2.D1", 6 },
3399 {
"bs",
"E1.E2.D1", 1 },
3420 ok(
hr ==
S_OK,
"loadXML failed\n");
3421 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3424 hr = IXMLDOMDocument_getElementsByTagName(doc,
NULL, &node_list);
3426 hr = IXMLDOMDocument_getElementsByTagName(doc,
_bstr_(
"*"),
NULL);
3431 hr = IXMLDOMDocument_getElementsByTagName(doc,
_bstr_(
ptr->query), &node_list);
3433 hr = IXMLDOMNodeList_get_length(node_list, &
len);
3435 ok(
len ==
ptr->len,
"%s: got len %ld, expected %d\n",
ptr->query,
len,
ptr->len);
3446 hr = IXMLDOMDocument_getElementsByTagName(doc, &
buff[2], &node_list);
3448 hr = IXMLDOMNodeList_get_length( node_list, &
len );
3451 IXMLDOMNodeList_Release( node_list );
3454 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
3460 hr = IXMLDOMElement_getElementsByTagName(
elem,
NULL, &node_list);
3465 hr = IXMLDOMElement_getElementsByTagName(
elem,
str, &node_list);
3467 hr = IXMLDOMNodeList_get_length( node_list, &
len );
3477 hr = IXMLDOMElement_getElementsByTagName(
elem, &
buff[2], &node_list);
3479 hr = IXMLDOMNodeList_get_length( node_list, &
len );
3482 IXMLDOMNodeList_Release( node_list );
3484 IXMLDOMElement_Release(
elem);
3486 IXMLDOMDocument_Release( doc );
3506 ok(
hr ==
S_OK,
"loadXML failed\n");
3507 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3510 hr = IXMLDOMDocument_getElementsByTagName( doc,
str, &node_list );
3515 hr = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMNode, (
void**)&nodeRoot);
3519 hr = IXMLDOMNode_get_text( nodeRoot, &
str );
3523 IXMLDOMNode_Release(nodeRoot);
3526 hr = IXMLDOMNodeList_get_length( node_list,
NULL );
3529 hr = IXMLDOMNodeList_get_length( node_list, &
len );
3531 ok(
len == 1,
"expect 1 got %ld\n",
len );
3533 hr = IXMLDOMNodeList_get_item( node_list, 0,
NULL );
3536 hr = IXMLDOMNodeList_nextNode( node_list,
NULL );
3539 hr = IXMLDOMNodeList_get_item( node_list, 0, &
node );
3541 IXMLDOMNodeList_Release( node_list );
3547 hr = IXMLDOMNode_get_text(
node, &
str );
3552 hr = IXMLDOMNode_get_attributes(
node, &node_map );
3556 hr = IXMLDOMNamedNodeMap_getNamedItem( node_map,
str, &node2 );
3560 hr = IXMLDOMNode_get_text( node2, &
str );
3565 hr = IXMLDOMNode_get_firstChild( node2, &node3 );
3568 hr = IXMLDOMNode_get_text( node3, &
str );
3574 IXMLDOMNode_Release( node3 );
3575 IXMLDOMNode_Release( node2 );
3576 IXMLDOMNamedNodeMap_Release( node_map );
3577 IXMLDOMNode_Release(
node );
3578 IXMLDOMDocument_Release( doc );
3602 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3604 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
3607 hr = IXMLDOMElement_get_childNodes(
element, &node_list );
3610 hr = IXMLDOMNodeList_get_length( node_list, &
len );
3616 hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IEnumVARIANT, (
void**)&enum1);
3622 hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IEnumVARIANT, (
void**)&enum2);
3625 ok(enum2 == enum1,
"got %p, %p\n", enum2, enum1);
3626 IEnumVARIANT_Release(enum2);
3630 hr = IEnumVARIANT_QueryInterface(enum1, &
IID_IUnknown, (
void**)&unk2);
3634 ok(
unk1 == unk2,
"got %p, %p\n",
unk1, unk2);
3635 IUnknown_Release(
unk1);
3636 IUnknown_Release(unk2);
3639 hr = IXMLDOMNodeList__newEnum(node_list, (
IUnknown**)&enum2);
3643 ok(enum2 != enum1,
"got %p, %p\n", enum2, enum1);
3648 hr = IEnumVARIANT_QueryInterface(enum2, &
IID_IUnknown, (
void**)&unk2);
3652 ok(
unk1 != unk2,
"got %p, %p\n",
unk1, unk2);
3653 IUnknown_Release(
unk1);
3654 IUnknown_Release(unk2);
3656 hr = IXMLDOMNodeList__newEnum(node_list, (
IUnknown**)&enum3);
3658 ok(enum2 != enum3,
"got %p, %p\n", enum2, enum3);
3659 IEnumVARIANT_Release(enum3);
3660 IEnumVARIANT_Release(enum2);
3663 hr = IXMLDOMNodeList_get_item(node_list, 0, &
node);
3665 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3669 IXMLDOMNode_Release(
node);
3671 hr = IXMLDOMNodeList_nextNode(node_list, &
node);
3673 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3677 IXMLDOMNode_Release(
node);
3680 hr = IEnumVARIANT_Next(enum1, 1, &
v[0],
NULL);
3683 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
3685 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3689 IXMLDOMNode_Release(
node);
3694 hr = IEnumVARIANT_Next(enum1, 2,
v, &fetched);
3698 ok(fetched == 2,
"got %ld, expected 2\n", fetched);
3699 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
3701 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3705 IXMLDOMNode_Release(
node);
3706 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[1]), &IID_IXMLDOMNode, (
void**)&
node);
3708 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3712 IXMLDOMNode_Release(
node);
3718 hr = IEnumVARIANT_Next(enum1, 2,
v, &fetched);
3722 ok(fetched == 1,
"got %ld, expected 1\n", fetched);
3723 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
3725 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3731 hr = IXMLDOMNodeList_nextNode(node_list, &
node);
3733 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3737 IXMLDOMNode_Release(
node);
3739 IEnumVARIANT_Release(enum1);
3741 hr = IXMLDOMNodeList_get_item( node_list, 2, &
node );
3744 hr = IXMLDOMNode_get_childNodes(
node, &node_list2 );
3747 hr = IXMLDOMNodeList_get_length( node_list2, &
len );
3751 hr = IXMLDOMNodeList_get_item( node_list2, 0, &node2);
3754 IXMLDOMNodeList_Release( node_list2 );
3755 IXMLDOMNode_Release(
node );
3756 IXMLDOMNodeList_Release( node_list );
3757 IXMLDOMElement_Release(
element );
3760 hr = IXMLDOMDocument_get_firstChild(doc, &
node);
3764 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3770 node_list = (
void*)0xdeadbeef;
3771 hr = IXMLDOMNode_get_childNodes(
node, &node_list);
3775 hr = IXMLDOMNodeList_get_length(node_list, &
len);
3779 IXMLDOMNodeList_Release( node_list );
3780 IXMLDOMNode_Release(
node);
3782 IXMLDOMDocument_Release( doc );
3797 ok(
hr ==
S_OK,
"loadXML failed\n");
3798 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3800 hr = IXMLDOMDocument_get_firstChild( doc, &
node );
3803 hr = IXMLDOMNode_get_nodeName(
node, &
str );
3809 IXMLDOMNode_Release(
node );
3810 IXMLDOMDocument_Release( doc );
3826 ok(
hr ==
S_OK,
"loadXML failed\n");
3827 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3829 hr = IXMLDOMDocument_get_lastChild( doc, &
node );
3832 hr = IXMLDOMNode_get_nodeName(
node, &
str );
3841 hr = IXMLDOMNode_get_nodeName(
child, &
str );
3847 IXMLDOMNode_Release(
child );
3848 IXMLDOMNode_Release(
node );
3849 IXMLDOMDocument_Release( doc );
3859 IXMLDOMNode *fo_node, *ba_node, *removed_node, *temp_node, *lc_node;
3866 ok(
hr ==
S_OK,
"loadXML failed\n");
3867 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3869 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
3873 hr = IXMLDOMElement_get_childNodes(
element, &root_list );
3877 hr = IXMLDOMNodeList_get_item( root_list, 3, &fo_node );
3881 hr = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
3885 hr = IXMLDOMNodeList_get_item( fo_list, 0, &ba_node );
3890 removed_node = (
void*)0xdeadbeef;
3891 hr = IXMLDOMElement_removeChild(
element,
NULL, &removed_node );
3893 ok( removed_node == (
void*)0xdeadbeef,
"%p\n", removed_node );
3896 removed_node = (
void*)0xdeadbeef;
3899 hr = IXMLDOMElement_removeChild(
element, ba_node, &removed_node );
3901 ok( removed_node ==
NULL,
"%p\n", removed_node );
3907 hr = IXMLDOMElement_removeChild(
element, fo_node, &removed_node );
3909 ok( fo_node == removed_node,
"node %p node2 %p\n", fo_node, removed_node );
3914 temp_node = (
void*)0xdeadbeef;
3915 hr = IXMLDOMElement_removeChild(
element, fo_node, &temp_node );
3917 ok( temp_node ==
NULL,
"%p\n", temp_node );
3918 IXMLDOMNode_Release( fo_node );
3921 hr = IXMLDOMNode_get_parentNode( removed_node, &temp_node );
3923 ok( temp_node ==
NULL,
"%p\n", temp_node );
3925 IXMLDOMNode_Release( removed_node );
3926 IXMLDOMNode_Release( ba_node );
3927 IXMLDOMNodeList_Release( fo_list );
3929 hr = IXMLDOMNodeList_get_item( root_list, 0, &lc_node );
3932 hr = IXMLDOMNode_QueryInterface( lc_node, &IID_IXMLDOMElement, (
void**)&lc_element );
3938 IXMLDOMElement_Release( lc_element );
3940 temp_node = (
void*)0xdeadbeef;
3941 hr = IXMLDOMNode_get_parentNode( lc_node, &temp_node );
3943 ok( temp_node ==
NULL,
"%p\n", temp_node );
3945 IXMLDOMNode_Release( lc_node );
3946 IXMLDOMNodeList_Release( root_list );
3947 IXMLDOMElement_Release(
element );
3948 IXMLDOMDocument_Release( doc );
3958 IXMLDOMNode *fo_node, *ba_node, *lc_node, *removed_node, *temp_node;
3967 ok(
hr ==
S_OK,
"loadXML failed\n");
3968 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3970 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
3973 hr = IXMLDOMElement_get_childNodes(
element, &root_list );
3976 hr = IXMLDOMNodeList_get_item( root_list, 0, &lc_node );
3979 hr = IXMLDOMNodeList_get_item( root_list, 3, &fo_node );
3982 hr = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
3985 hr = IXMLDOMNodeList_get_item( fo_list, 0, &ba_node );
3988 IXMLDOMNodeList_Release( fo_list );
3991 removed_node = (
void*)0xdeadbeef;
3992 hr = IXMLDOMElement_replaceChild(
element, ba_node,
NULL, &removed_node );
3994 ok( removed_node == (
void*)0xdeadbeef,
"%p\n", removed_node );
3997 removed_node = (
void*)0xdeadbeef;
3998 hr = IXMLDOMElement_replaceChild(
element,
NULL, fo_node, &removed_node );
4000 ok( removed_node == (
void*)0xdeadbeef,
"%p\n", removed_node );
4003 removed_node = (
void*)0xdeadbeef;
4004 hr = IXMLDOMElement_replaceChild(
element, lc_node, ba_node, &removed_node );
4006 ok( removed_node ==
NULL,
"%p\n", removed_node );
4007 IXMLDOMNode_Release( lc_node );
4010 removed_node = (
void*)0xdeadbeef;
4011 hr = IXMLDOMNode_replaceChild( fo_node, fo_node, ba_node, &removed_node );
4013 ok( removed_node ==
NULL,
"%p\n", removed_node );
4015 hr = IXMLDOMElement_replaceChild(
element, ba_node, fo_node,
NULL );
4018 hr = IXMLDOMNodeList_get_item( root_list, 3, &temp_node );
4023 ok( ba_node != temp_node,
"ba_node %p temp_node %p\n", ba_node, temp_node);
4026 hr = IXMLDOMNode_QueryInterface( ba_node, &
IID_IUnknown, (
void**)&unk2);
4030 IUnknown_Release(
unk1 );
4031 IUnknown_Release( unk2 );
4034 hr = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
4038 hr = IXMLDOMNode_QueryInterface( ba_node, &IID_IXMLDOMElement, (
void**)&ba_element);
4042 removed_node =
NULL;
4045 ok( removed_node !=
NULL,
"got %p\n", removed_node);
4047 IXMLDOMElement_Release( ba_element );
4049 hr = IXMLDOMNodeList_get_length( fo_list, &
len);
4053 IXMLDOMNodeList_Release( fo_list );
4055 IXMLDOMNode_Release(ba_node);
4056 IXMLDOMNode_Release(fo_node);
4057 IXMLDOMNode_Release(temp_node);
4058 IXMLDOMNodeList_Release( root_list );
4059 IXMLDOMElement_Release(
element );
4060 IXMLDOMDocument_Release( doc );
4080 ok(
hr ==
S_OK,
"loadXML failed\n");
4081 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4083 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
4086 hr = IXMLDOMElement_get_childNodes(
element, &root_list );
4089 hr = IXMLDOMNodeList_get_item( root_list, 1, &
node );
4092 hr = IXMLDOMNode_get_attributes(
node, &
map );
4095 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len );
4097 ok(
len == 3,
"length %ld\n",
len);
4099 removed_node = (
void*)0xdeadbeef;
4100 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
NULL, &removed_node );
4102 ok(removed_node == (
void*)0xdeadbeef,
"got %p\n", removed_node);
4104 removed_node = (
void*)0xdeadbeef;
4106 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
str, &removed_node );
4109 removed_node2 = (
void*)0xdeadbeef;
4110 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
str, &removed_node2 );
4112 ok(removed_node2 ==
NULL,
"got %p\n", removed_node2 );
4114 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len );
4118 hr = IXMLDOMNamedNodeMap_setNamedItem(
map, removed_node,
NULL );
4120 IXMLDOMNode_Release(removed_node);
4122 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len );
4126 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
str,
NULL );
4129 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len );
4133 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
str,
NULL );
4138 IXMLDOMNamedNodeMap_Release(
map );
4139 IXMLDOMNode_Release(
node );
4140 IXMLDOMNodeList_Release( root_list );
4141 IXMLDOMElement_Release(
element );
4147 hr = IXMLDOMDocument_selectSingleNode( doc,
_bstr_(
"a"), &
node );
4150 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
element );
4152 IXMLDOMNode_Release(
node );
4157 removed_node = (
void*)0xdeadbeef;
4158 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
_bstr_(
"foo:bar"), &removed_node );
4160 ok ( removed_node ==
NULL,
"got %p\n", removed_node );
4162 removed_node =
NULL;
4163 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
_bstr_(
"d"), &removed_node );
4165 IXMLDOMNode_Release( removed_node );
4167 removed_node =
NULL;
4168 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
_bstr_(
"ns:b"), &removed_node );
4171 if (removed_node !=
NULL)
4173 IXMLDOMNode_Release( removed_node );
4175 removed_node =
NULL;
4176 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
_bstr_(
"xml:lang"), &removed_node );
4179 if (removed_node !=
NULL)
4181 IXMLDOMNode_Release( removed_node );
4184 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len );
4186 ok(
len == 2,
"length %ld\n",
len );
4188 IXMLDOMNamedNodeMap_Release(
map );
4189 IXMLDOMElement_Release(
element );
4190 IXMLDOMDocument_Release( doc );
4194#define test_IObjectSafety_set(p, r, r2, s, m, e, e2) _test_IObjectSafety_set(__LINE__,p, r, r2, s, m, e, e2)
4202 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
set,
mask);
4207 "SetInterfaceSafetyOptions: expected %#lx, got %#lx\n", result2,
hr );
4209 supported =
enabled = 0xCAFECAFE;
4210 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4211 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
4216 "Expected %#lx, got %#lx\n", expected2,
enabled);
4220 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
4221 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_SECURITY_MANAGER,
4225 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4230#define test_IObjectSafety_common(s) _test_IObjectSafety_common(__LINE__,s)
4239 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported,
NULL);
4242 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4244 ok_(__FILE__,
line)(
broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
4245 supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) ,
4246 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
4247 "got %#lx\n", supported);
4253 INTERFACESAFE_FOR_UNTRUSTED_CALLER, INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4254 INTERFACESAFE_FOR_UNTRUSTED_CALLER, INTERFACESAFE_FOR_UNTRUSTED_CALLER);
4257 INTERFACESAFE_FOR_UNTRUSTED_DATA, INTERFACESAFE_FOR_UNTRUSTED_DATA,
4258 INTERFACESAFE_FOR_UNTRUSTED_DATA, INTERFACESAFE_FOR_UNTRUSTED_DATA);
4261 INTERFACE_USES_SECURITY_MANAGER, INTERFACE_USES_SECURITY_MANAGER,
4262 0, INTERFACE_USES_SECURITY_MANAGER );
4267 INTERFACE_USES_DISPEX, INTERFACE_USES_DISPEX,
4271 INTERFACE_USES_DISPEX, 0,
4275 0, INTERFACE_USES_DISPEX,
4281 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA,
4282 INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4283 INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4284 INTERFACESAFE_FOR_UNTRUSTED_CALLER);
4287 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA,
4288 INTERFACESAFE_FOR_UNTRUSTED_DATA,
4289 INTERFACESAFE_FOR_UNTRUSTED_DATA,
4290 INTERFACESAFE_FOR_UNTRUSTED_DATA);
4293 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA,
4294 INTERFACE_USES_SECURITY_MANAGER,
4300 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
4301 INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4302 INTERFACESAFE_FOR_UNTRUSTED_CALLER);
4304 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4306 ok_(__FILE__,
line)(
enabled == INTERFACESAFE_FOR_UNTRUSTED_CALLER,
"Expected INTERFACESAFE_FOR_UNTRUSTED_CALLER got %#lx\n",
enabled);
4307 ok_(__FILE__,
line)(
broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
4308 supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) ,
4309 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
4310 "got %#lx.\n", supported);
4312 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
4313 INTERFACESAFE_FOR_UNTRUSTED_DATA,
4314 INTERFACESAFE_FOR_UNTRUSTED_DATA);
4316 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4319 enabled == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA),
4320 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA) got %#lx\n",
enabled);
4321 ok_(__FILE__,
line)(
broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
4322 supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) ,
4323 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
4324 "got %#lx\n", supported);
4329 IXMLDOMDocument2 *doc2, *dtddoc2;
4343 hr = IXMLDOMDocument_QueryInterface( doc, &IID_IXMLDOMDocument2, (
void**)&doc2 );
4347 hr = IXMLDOMDocument2_get_readyState(doc2,
NULL);
4349 hr = IXMLDOMDocument2_get_readyState(doc2, &
res);
4351 ok(
res == READYSTATE_COMPLETE,
"expected READYSTATE_COMPLETE (4), got %ld\n",
res);
4354 hr = IXMLDOMDocument2_validate(doc2,
NULL);
4356 hr = IXMLDOMDocument2_validate(doc2, &
err);
4358 ok(
err !=
NULL,
"expected a pointer\n");
4362 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4365 ok(
res == E_XML_NOTWF,
"Unexpected code %#lx.\n",
res);
4366 IXMLDOMParseError_Release(
err);
4370 ok(
hr ==
S_OK,
"loadXML failed\n");
4371 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4373 hr = IXMLDOMDocument_get_readyState(doc, &
res);
4375 ok(
res == READYSTATE_COMPLETE,
"expected READYSTATE_COMPLETE (4), got %ld\n",
res);
4378 hr = IXMLDOMDocument2_validate(doc2, &
err);
4380 ok(
err !=
NULL,
"expected a pointer\n");
4384 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4387 ok(
res == E_XML_NODTD,
"Unexpected code %#lx.\n",
res);
4388 IXMLDOMParseError_Release(
err);
4391 hr = IXMLDOMDocument_QueryInterface( doc, &IID_IDispatchEx, (
void**)&dispex );
4394 IDispatchEx_Release(dispex);
4397 IXMLDOMDocument2_AddRef(doc2);
4404 hr = IXMLDOMDocument2_getProperty(doc2,
_bstr_(
"askldhfaklsdf"), &
var);
4407 hr = IXMLDOMDocument2_getProperty(doc2,
_bstr_(
"SelectionLanguage"),
NULL);
4411 hr = IXMLDOMDocument2_getProperty(doc2,
_bstr_(
"SelectionLanguage"), &
var);
4418 expect_eq(IXMLDOMDocument2_Release(doc2), 2,
int,
"%d");
4421 hr = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"askldhfaklsdf"),
var);
4423 hr = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"SelectionLanguage"),
var);
4425 hr = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"SelectionLanguage"),
_variantbstr_(
"alskjdh faklsjd hfk"));
4436 hr = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"SelectionNamespaces"),
var);
4442 hr = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"SelectionNamespaces"),
var);
4446 hr = IXMLDOMDocument2_getProperty(doc2,
_bstr_(
"SelectionLanguage"), &
var);
4451 IXMLDOMDocument2_Release( doc2 );
4452 IXMLDOMDocument_Release( doc );
4455 hr = IXMLDOMDocument2_put_validateOnParse(dtddoc2, VARIANT_FALSE);
4459 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4461 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4467 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4469 ok(
res == 0,
"Unexpected code %#lx.\n",
res);
4470 IXMLDOMParseError_Release(
err);
4475 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4477 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4483 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4487 IXMLDOMParseError_Release(
err);
4492 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4494 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4500 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4504 IXMLDOMParseError_Release(
err);
4509 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4511 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4517 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4521 IXMLDOMParseError_Release(
err);
4526 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4528 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4534 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4538 IXMLDOMParseError_Release(
err);
4543 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4545 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4551 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4555 IXMLDOMParseError_Release(
err);
4560 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4562 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4568 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4572 IXMLDOMParseError_Release(
err);
4577 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4579 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4585 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4589 IXMLDOMParseError_Release(
err);
4594 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4596 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4602 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4606 IXMLDOMParseError_Release(
err);
4611 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4613 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4619 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4623 IXMLDOMParseError_Release(
err);
4628 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4630 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4636 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4640 IXMLDOMParseError_Release(
err);
4643 IXMLDOMDocument2_Release( dtddoc2 );
4647#define helper_ole_check_ver(expr) { \
4648 HRESULT hr = expr; \
4649 ok_(__FILE__, line)(hr == S_OK, "-> %i (%s): " #expr " returned %#lx.\n", __LINE__, ver, hr); \
4652#define helper_expect_list_and_release(list, expstr) { \
4653 char *str = list_to_string(list); \
4654 ok_(__FILE__, line)(strcmp(str, expstr)==0, "=> %i (%s): Invalid node list: %s, expected %s\n", __LINE__, ver, str, expstr); \
4655 if (list) IXMLDOMNodeList_Release(list); \
4658#define helper_expect_bstr_and_release(bstr, str) { \
4659 ok_(__FILE__, line)(lstrcmpW(bstr, _bstr_(str)) == 0, \
4660 "=> %i (%s): got %s\n", __LINE__, ver, wine_dbgstr_w(bstr)); \
4661 SysFreeString(bstr); \
4664#define check_ws_ignored(ver, doc, str) _check_ws_ignored(__LINE__, ver, doc, str)
4679 "[4]1.E1.E5.E1.E2.D1 T2.E1.E5.E1.E2.D1 E3.E1.E5.E1.E2.D1 "
4680 "E4.E1.E5.E1.E2.D1 E5.E1.E5.E1.E2.D1 E6.E1.E5.E1.E2.D1");
4690 IXMLDOMNode_Release(node1);
4694 "T1.E2.E5.E1.E2.D1 E2.E2.E5.E1.E2.D1 T3.E2.E5.E1.E2.D1 "
4695 "E4.E2.E5.E1.E2.D1 T5.E2.E5.E1.E2.D1 E6.E2.E5.E1.E2.D1 T7.E2.E5.E1.E2.D1");
4698 "\n This is a description with preserved whitespace. \n ");
4699 IXMLDOMNode_Release(node2);
4702#define check_ws_preserved(ver, doc, str) _check_ws_preserved(__LINE__, ver, doc, str)
4717 "T1.E2.E10.E2.E2.D1 [4]2.E2.E10.E2.E2.D1 T3.E2.E10.E2.E2.D1 "
4718 "E4.E2.E10.E2.E2.D1 T5.E2.E10.E2.E2.D1 E6.E2.E10.E2.E2.D1 "
4719 "E7.E2.E10.E2.E2.D1 E8.E2.E10.E2.E2.D1 T9.E2.E10.E2.E2.D1");
4729 IXMLDOMNode_Release(node1);
4733 "T1.E4.E10.E2.E2.D1 E2.E4.E10.E2.E2.D1 T3.E4.E10.E2.E2.D1 "
4734 "E4.E4.E10.E2.E2.D1 T5.E4.E10.E2.E2.D1 E6.E4.E10.E2.E2.D1 T7.E4.E10.E2.E2.D1");
4737 "\n This is a description with preserved whitespace. \n ");
4738 IXMLDOMNode_Release(node2);
4751 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc,
preserve);
4757 hr = IXMLDOMDocument2_get_documentElement(doc, &
root);
4760 hr = IXMLDOMElement_get_childNodes(
root, &
list);
4762 IXMLDOMElement_Release(
root);
4764 text =
preserve == VARIANT_TRUE ?
L" Text A end " :
L"Text A end";
4765 hr = IXMLDOMNodeList_get_item(
list, 0, &
node);
4767 hr = IXMLDOMNode_get_text(
node, &
s);
4771 IXMLDOMNode_Release(
node);
4774 hr = IXMLDOMNodeList_get_item(
list, 1, &
node);
4776 hr = IXMLDOMNode_get_text(
node, &
s);
4780 IXMLDOMNode_Release(
node);
4782 IXMLDOMNodeList_Release(
list);
4792 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2" },
4793 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26" },
4794 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30" },
4795 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40" },
4796 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60" },
4804 while (class_ptr->
clsid)
4806 IXMLDOMDocument2 *doc1, *doc2, *doc3, *doc4;
4820 &IID_IXMLDOMDocument2, (
void**)&doc1);
4824 &IID_IXMLDOMDocument2, (
void**)&doc2);
4827 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc2, VARIANT_TRUE);
4829 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc1, &
b);
4831 ok(
b == VARIANT_FALSE,
"expected false\n");
4832 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc2, &
b);
4834 ok(
b == VARIANT_TRUE,
"expected true\n");
4838 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4841 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4853 hr = IXMLDOMDocument2_QueryInterface(doc1, &IID_IXMLDOMDocument2, (
void**) &doc3);
4855 hr = IXMLDOMDocument2_QueryInterface(doc2, &IID_IXMLDOMDocument2, (
void**) &doc4);
4858 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc3, &
b);
4860 ok(
b == VARIANT_FALSE,
"expected false\n");
4861 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc4, &
b);
4863 ok(
b == VARIANT_TRUE,
"expected true\n");
4869 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc1, VARIANT_TRUE);
4871 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc2, VARIANT_FALSE);
4879 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc1, &
b);
4881 ok(
b == VARIANT_TRUE,
"expected true\n");
4882 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc2, &
b);
4884 ok(
b == VARIANT_FALSE,
"expected false\n");
4888 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4891 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4897 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc3, &
b);
4899 ok(
b == VARIANT_TRUE,
"expected true\n");
4900 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc4, &
b);
4902 ok(
b == VARIANT_FALSE,
"expected false\n");
4907 IXMLDOMDocument2_Release(doc2);
4908 IXMLDOMDocument2_Release(doc3);
4909 IXMLDOMDocument2_Release(doc4);
4916 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc1, VARIANT_FALSE);
4921 ok(
b == VARIANT_TRUE,
"for %x\n",
b);
4923 hr = IXMLDOMDocument2_get_documentElement(doc1, &
root);
4925 hr = IXMLDOMElement_get_childNodes(
root, &
list);
4928 hr = IXMLDOMNodeList_get_length(
list, &
len);
4931 IXMLDOMNodeList_Release(
list);
4932 IXMLDOMElement_Release(
root);
4934 IXMLDOMDocument2_Release(doc1);
4951 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4952 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4953 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4954 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4956 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4957 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4958 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4959 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4961 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4962 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4963 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4964 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4966 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4967 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4968 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4969 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4971 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4972 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4973 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4974 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4985 {
"*/a",
"E1.E1.E2.D1 E1.E2.E2.D1 E1.E4.E2.D1" },
4986 {
"*/b",
"E2.E1.E2.D1 E2.E2.E2.D1 E2.E4.E2.D1" },
4987 {
"*/c",
"E3.E1.E2.D1 E3.E2.E2.D1" },
4988 {
"*/d",
"E4.E1.E2.D1 E4.E2.E2.D1 E4.E4.E2.D1" },
4989 {
"//a",
"E1.E1.E2.D1 E1.E2.E2.D1 E1.E4.E2.D1" },
4990 {
"//b",
"E2.E1.E2.D1 E2.E2.E2.D1 E2.E4.E2.D1" },
4991 {
"//c",
"E3.E1.E2.D1 E3.E2.E2.D1" },
4992 {
"//d",
"E4.E1.E2.D1 E4.E2.E2.D1 E4.E4.E2.D1" },
4993 {
"//c[@type]",
"E3.E2.E2.D1" },
4994 {
"//c[@type]/ancestor::node()[1]",
"E2.E2.D1" },
4995 {
"//c[@type]/ancestor-or-self::node()[1]",
"E3.E2.E2.D1" },
4996 {
"//c[@type]/attribute::node()[1]",
"A'type'.E3.E2.E2.D1" },
4997 {
"//c[@type]/child::node()[1]",
"T1.E3.E2.E2.D1" },
4998 {
"//c[@type]/descendant::node()[1]",
"T1.E3.E2.E2.D1" },
4999 {
"//c[@type]/descendant-or-self::node()[1]",
"E3.E2.E2.D1" },
5000 {
"//c[@type]/following::node()[1]",
"E4.E2.E2.D1" },
5001 {
"//c[@type]/following-sibling::node()[1]",
"E4.E2.E2.D1" },
5002 {
"//c[@type]/parent::node()[1]",
"E2.E2.D1" },
5003 {
"//c[@type]/preceding::node()[1]",
"T1.E2.E2.E2.D1" },
5004 {
"//c[@type]/self::node()[1]",
"E3.E2.E2.D1" },
5005 {
"child::*",
"E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1" },
5006 {
"child::node()",
"E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1" },
5007 {
"child::text()",
"" },
5008 {
"child::*/..",
"E2.D1" },
5009 {
"child::*//@*/..",
"E2.E5.E1.E2.D1 E2.E2.D1 E3.E2.E2.D1" },
5010 {
"self::node()",
"E2.D1" },
5011 {
"ancestor::node()",
"D1" },
5012 {
"elem[c][last()]/a",
"E1.E2.E2.D1"},
5013 {
"ancestor-or-self::node()[1]",
"E2.D1" },
5014 {
"((//a)[1])[last()]",
"E1.E1.E2.D1" },
5015 {
"//elem[@*]",
"E2.E2.D1" },
5025 IXMLDOMDocument2 *doc;
5043 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
5051 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
5057 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5062 hr = IXMLDOMNodeList_reset(
list);
5067 for ( ; xptest->
query ; xptest++ )
5072 ok(
hr ==
S_OK,
"query evaluation failed for query=%s\n", xptest->
query);
5079 ok(!
strcmp(
str, xptest->
list),
"query=%s, invalid node list: \"%s\", expected \"%s\"\n",
5083 IXMLDOMNodeList_Release(
list);
5090 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"/root/namespace::*"), &
list);
5093 hr = IXMLDOMNodeList_get_length(
list, &
len);
5103 IXMLDOMNode_Release(
node);
5105 IXMLDOMNodeList_Release(
list);
5108 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//c"), &
list);
5112 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//c[@type]"), &
list);
5116 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"elem"), &
list);
5119 hr = IXMLDOMNodeList_get_item(
list, 1, &
node);
5122 IXMLDOMNode_Release(
node);
5126 IXMLDOMNode_Release(
node);
5127 hr = IXMLDOMNodeList_reset(
list);
5131 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"."), &
list);
5135 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"elem[3]/preceding-sibling::*"), &
list);
5137 hr = IXMLDOMNodeList_get_item(
list, 0, &elem1Node);
5139 hr = IXMLDOMNodeList_reset(
list);
5144 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
".//@type"), &
list);
5149 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"count(*)"), &
list);
5152 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"position()>0"), &
list);
5155 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"name()"), &
list);
5159 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"c"), &
list);
5162 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"elem//c"), &
list);
5165 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//elem[4]"), &
list);
5168 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//elem[0]"), &
list);
5173 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//foo:c"), &
list);
5176 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
".//foo:c"), &
list);
5179 hr = IXMLDOMNode_selectNodes(elem1Node,
_bstr_(
"//foo:c"), &
list);
5182 hr = IXMLDOMNode_selectNodes(elem1Node,
_bstr_(
"//*[name()='foo:c']"), &
list);
5187 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
5188 _variantbstr_(
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'"));
5192 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//test:c"), &
list);
5195 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
".//test:c"), &
list);
5198 hr = IXMLDOMNode_selectNodes(elem1Node,
_bstr_(
"//test:c"), &
list);
5201 hr = IXMLDOMNode_selectNodes(elem1Node,
_bstr_(
".//test:x"), &
list);
5206 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
5207 _variantbstr_(
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' xmlns:foo=###"));
5210 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//foo:c"), &
list);
5214 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionNamespaces"), &
var);
5221 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
5222 _variantbstr_(
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' param='test'"));
5224 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//foo:c"), &
list);
5227 IXMLDOMNode_Release(rootNode);
5228 IXMLDOMNode_Release(elem1Node);
5231 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
5235 hr = IXMLDOMDocument2_get_lastChild(doc, &rootNode);
5240 hr = IXMLDOMDocument2_removeChild(doc, rootNode,
NULL);
5242 IXMLDOMNode_Release(rootNode);
5246 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5250 IXMLDOMNodeList_Release(
list);
5252 hr = IXMLDOMNode_get_nodeName(rootNode, &
str);
5256 IXMLDOMNode_Release(rootNode);
5261 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
5263 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
5267 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5270 hr = IXMLDOMNode_QueryInterface(rootNode, &IID_IXMLDOMElement, (
void**)&
elem);
5277 IXMLDOMElement_Release(
elem);
5278 IXMLDOMNode_Release(rootNode);
5281 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5284 hr = IXMLDOMNode_QueryInterface(rootNode, &IID_IXMLDOMElement, (
void**)&
elem);
5289 IXMLDOMAttribute_Release(
attr);
5291 IXMLDOMElement_Release(
elem);
5292 IXMLDOMNode_Release(rootNode);
5295 hr = IXMLDOMDocument2_get_documentElement(doc, &
elem);
5300 IXMLDOMAttribute_Release(
attr);
5302 IXMLDOMElement_Release(
elem);
5309 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
5311 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
5315 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5319 hr = IXMLDOMDocument_appendChild(doc2, rootNode,
NULL);
5327 IXMLDOMNode_Release(rootNode);
5328 IXMLDOMNodeList_Release(
list);
5329 IXMLDOMDocument_Release(doc2);
5330 IXMLDOMDocument2_Release(doc);
5347 ok(
b == VARIANT_TRUE,
"failed to load, %s\n",
ptr->name);
5355 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
var);
5356 ok(
hr ==
ptr->hr,
"Unexpected hr %#lx., for %s, %s\n",
hr,
ptr->name,
ptr->ns);
5359 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionNamespaces"), &
var);
5365 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//test:c"), &
list);
5370 IXMLDOMDocument2_Release(doc);
5380 IXMLDOMDocument2 *doc, *doc_clone;
5386 LONG attr_cnt, attr_cnt1;
5397 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
5399 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionLanguage"), &
v);
5406 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionLanguage"),
v);
5410 hr = IXMLDOMDocument2_cloneNode(doc, VARIANT_TRUE, &
node);
5411 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5415 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5418 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5420 IXMLDOMNodeList_Release(
pList);
5422 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMDocument2, (
void**)&doc_clone);
5426 hr = IXMLDOMDocument2_getProperty(doc_clone,
_bstr_(
"SelectionLanguage"), &
v);
5431 IXMLDOMDocument2_Release(doc_clone);
5432 IXMLDOMNode_Release(
node);
5434 hr = IXMLDOMDocument2_selectSingleNode(doc,
_bstr_(
"lc/pr"), &
node);
5435 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5439 hr = IXMLDOMNode_cloneNode(
node, VARIANT_TRUE,
NULL);
5443 hr = IXMLDOMNode_cloneNode(
node, VARIANT_TRUE, &node_clone);
5444 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5447 hr = IXMLDOMNode_get_firstChild(node_clone, &node_first);
5448 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5449 hr = IXMLDOMNode_get_ownerDocument(node_clone, &doc2);
5450 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5451 IXMLDOMDocument_Release(doc2);
5452 IXMLDOMNode_Release(node_first);
5455 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5458 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5460 IXMLDOMNodeList_Release(
pList);
5462 hr = IXMLDOMNode_get_attributes(
node, &mapAttr);
5463 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5465 hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt);
5466 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5467 ok(attr_cnt == 3,
"got %ld\n", attr_cnt);
5468 IXMLDOMNamedNodeMap_Release(mapAttr);
5470 hr = IXMLDOMNode_get_childNodes(node_clone, &
pList);
5471 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5473 hr = IXMLDOMNodeList_get_length(
pList, &length1);
5474 ok(length1 == 1,
"got %ld\n", length1);
5475 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5476 IXMLDOMNodeList_Release(
pList);
5478 hr = IXMLDOMNode_get_attributes(node_clone, &mapAttr);
5479 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5481 hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt1);
5482 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5483 ok(attr_cnt1 == 3,
"got %ld\n", attr_cnt1);
5486 hr = IXMLDOMNamedNodeMap_getNamedItem(mapAttr,
_bstr_(
"id"), &
attr);
5488 IXMLDOMNode_Release(
attr);
5489 IXMLDOMNamedNodeMap_Release(mapAttr);
5491 ok(
length == length1,
"wrong Child count (%ld, %ld)\n",
length, length1);
5492 ok(attr_cnt == attr_cnt1,
"wrong Attribute count (%ld, %ld)\n", attr_cnt, attr_cnt1);
5493 IXMLDOMNode_Release(node_clone);
5496 hr = IXMLDOMNode_cloneNode(
node, VARIANT_FALSE, &node_clone);
5497 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5500 hr = IXMLDOMNode_get_firstChild(node_clone, &node_first);
5503 hr = IXMLDOMNode_get_childNodes(node_clone, &
pList);
5504 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5505 hr = IXMLDOMNodeList_get_length(
pList, &length1);
5506 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5507 ok( length1 == 0,
"Length should be 0 (%ld)\n", length1);
5508 IXMLDOMNodeList_Release(
pList);
5510 hr = IXMLDOMNode_get_attributes(node_clone, &mapAttr);
5511 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5512 hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt1);
5513 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5514 ok(attr_cnt1 == 3,
"Attribute count should be 3 (%ld)\n", attr_cnt1);
5515 IXMLDOMNamedNodeMap_Release(mapAttr);
5517 ok(
length != length1,
"wrong Child count (%ld, %ld)\n",
length, length1);
5518 ok(attr_cnt == attr_cnt1,
"wrong Attribute count (%ld, %ld)\n", attr_cnt, attr_cnt1);
5519 IXMLDOMNode_Release(node_clone);
5521 IXMLDOMNode_Release(
node);
5522 IXMLDOMDocument2_Release(doc);
5546 hr = IXMLDOMDocument_get_nextSibling(doc,
NULL);
5549 pNextChild = (
void*)0xdeadbeef;
5550 hr = IXMLDOMDocument_get_nextSibling(doc, &pNextChild);
5552 ok(pNextChild ==
NULL,
"pDocChild not NULL\n");
5555 hr = IXMLDOMDocument_get_previousSibling(doc,
NULL);
5558 pNextChild = (
void*)0xdeadbeef;
5559 hr = IXMLDOMDocument_get_previousSibling(doc, &pNextChild);
5561 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
5565 hr = IXMLDOMDocument_get_dataType(doc, &
v);
5571 hr = IXMLDOMDocument_get_implementation(doc,
NULL);
5574 hr = IXMLDOMDocument_get_implementation(doc, &pIXMLDOMImplementation);
5575 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5581 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
NULL, sEmpty, &hasFeature);
5584 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, sEmpty, sEmpty,
NULL);
5587 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"), sEmpty, &hasFeature);
5588 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5589 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned false\n");
5591 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, sEmpty, sEmpty, &hasFeature);
5592 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5593 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned true\n");
5595 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"),
NULL, &hasFeature);
5596 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5597 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned false\n");
5599 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"), sEmpty, &hasFeature);
5600 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5601 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned false\n");
5603 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"),
_bstr_(
"1.0"), &hasFeature);
5604 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5605 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned true\n");
5607 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"XML"),
_bstr_(
"1.0"), &hasFeature);
5608 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5609 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned true\n");
5611 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"MS-DOM"),
_bstr_(
"1.0"), &hasFeature);
5612 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5613 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned true\n");
5615 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"SSS"),
NULL, &hasFeature);
5616 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5617 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned false\n");
5620 IXMLDOMImplementation_Release(pIXMLDOMImplementation);
5624 hr = IXMLDOMDocument_createElement(doc,
NULL, &pRoot);
5626 ok(pRoot == (
void*)0x1,
"Expect same ptr, got %p\n", pRoot);
5629 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
""), &pRoot);
5631 ok(pRoot == (
void*)0x1,
"Expect same ptr, got %p\n", pRoot);
5633 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &pRoot);
5634 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5638 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5643 hr = IXMLDOMDocument_createComment(doc,
str, &pComment);
5645 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5649 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5651 hr = IXMLDOMComment_get_nodeName(pComment, &
str);
5652 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5653 ok( !
lstrcmpW(
str,
L"#comment" ),
"incorrect comment node Name\n");
5656 hr = IXMLDOMComment_get_xml(pComment, &
str);
5657 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5658 ok( !
lstrcmpW(
str,
L"<!--A Comment-->" ),
"incorrect comment xml\n");
5662 hr = IXMLDOMComment_put_data(pComment,
_bstr_(
"This &is a ; test <>\\"));
5663 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5666 hr = IXMLDOMComment_get_data(pComment, &
str);
5667 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5668 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect get_data string\n");
5672 hr = IXMLDOMComment_get_xml(pComment, &
str);
5673 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5674 ok(!
lstrcmpW(
str,
L"<!--This &is a ; test <>\\-->"),
"incorrect xml string\n");
5678 hr = IXMLDOMComment_get_text(pComment, &
str);
5679 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5680 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect xml string\n");
5684 hr = IXMLDOMComment_get_length(pComment, &
len);
5685 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5686 ok(
len == 21,
"expected 21 got %ld\n",
len);
5689 hr = IXMLDOMComment_substringData(pComment, 0, 4,
NULL);
5693 str = (
void *)0xdeadbeef;
5694 hr = IXMLDOMComment_substringData(pComment, -1, 4, &
str);
5699 str = (
void *)0xdeadbeef;
5700 hr = IXMLDOMComment_substringData(pComment, 30, 0, &
str);
5705 str = (
void *)0xdeadbeef;
5706 hr = IXMLDOMComment_substringData(pComment, 0, -1, &
str);
5711 str = (
void *)0xdeadbeef;
5712 hr = IXMLDOMComment_substringData(pComment, 2, 0, &
str);
5717 hr = IXMLDOMComment_substringData(pComment, 0, 4, &
str);
5718 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5723 hr = IXMLDOMComment_substringData(pComment, 13, 4, &
str);
5724 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5729 hr = IXMLDOMComment_substringData(pComment, 20, 4, &
str);
5730 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5735 hr = IXMLDOMComment_appendData(pComment,
NULL);
5736 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5738 hr = IXMLDOMComment_appendData(pComment,
_bstr_(
""));
5739 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5741 hr = IXMLDOMComment_appendData(pComment,
_bstr_(
"Append"));
5742 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5744 hr = IXMLDOMComment_get_text(pComment, &
str);
5745 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5751 hr = IXMLDOMComment_insertData(pComment, -1,
str);
5752 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5754 hr = IXMLDOMComment_insertData(pComment, -1,
NULL);
5755 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5757 hr = IXMLDOMComment_insertData(pComment, 1000,
str);
5758 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5760 hr = IXMLDOMComment_insertData(pComment, 1000,
NULL);
5761 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5763 hr = IXMLDOMComment_insertData(pComment, 0,
NULL);
5764 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5766 hr = IXMLDOMComment_insertData(pComment, 0,
str);
5767 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5770 hr = IXMLDOMComment_insertData(pComment, -1,
_bstr_(
"Inserting"));
5773 hr = IXMLDOMComment_insertData(pComment, 1000,
_bstr_(
"Inserting"));
5776 hr = IXMLDOMComment_insertData(pComment, 0,
_bstr_(
"Begin "));
5777 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5779 hr = IXMLDOMComment_insertData(pComment, 17,
_bstr_(
"Middle"));
5780 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5782 hr = IXMLDOMComment_insertData(pComment, 39,
_bstr_(
" End"));
5783 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5785 hr = IXMLDOMComment_get_text(pComment, &
str);
5786 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5792 hr = IXMLDOMComment_deleteData(pComment, -1, 1);
5795 hr = IXMLDOMComment_deleteData(pComment, 0, 0);
5796 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5798 hr = IXMLDOMComment_deleteData(pComment, 0, -1);
5801 hr = IXMLDOMComment_get_length(pComment, &
len);
5802 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5803 ok(
len == 43,
"expected 43 got %ld\n",
len);
5805 hr = IXMLDOMComment_deleteData(pComment,
len, 1);
5806 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5808 hr = IXMLDOMComment_deleteData(pComment,
len+1, 1);
5812 hr = IXMLDOMComment_deleteData(pComment, 0, 5);
5813 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5815 hr = IXMLDOMComment_get_length(pComment, &
len);
5816 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5817 ok(
len == 38,
"expected 38 got %ld\n",
len);
5819 hr = IXMLDOMComment_get_text(pComment, &
str);
5820 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5825 hr = IXMLDOMComment_deleteData(pComment, 35, 3);
5826 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5828 hr = IXMLDOMComment_get_length(pComment, &
len);
5829 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5830 ok(
len == 35,
"expected 35 got %ld\n",
len);
5832 hr = IXMLDOMComment_get_text(pComment, &
str);
5833 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5838 hr = IXMLDOMComment_deleteData(pComment, 1, 33);
5839 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5841 hr = IXMLDOMComment_get_length(pComment, &
len);
5842 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5843 ok(
len == 2,
"expected 2 got %ld\n",
len);
5845 hr = IXMLDOMComment_get_text(pComment, &
str);
5846 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5851 hr = IXMLDOMComment_get_length(pComment, &
len);
5852 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5854 hr = IXMLDOMComment_deleteData(pComment, 0,
len);
5855 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5857 hr = IXMLDOMComment_deleteData(pComment, 0,
len);
5858 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5863 hr = IXMLDOMComment_put_nodeValue(pComment,
v);
5864 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5867 hr = IXMLDOMComment_replaceData(pComment, 6, 0,
NULL);
5869 hr = IXMLDOMComment_get_text(pComment, &
str);
5870 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5874 hr = IXMLDOMComment_replaceData(pComment, 0, 0,
NULL);
5875 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5876 hr = IXMLDOMComment_get_text(pComment, &
str);
5877 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5882 hr = IXMLDOMComment_replaceData(pComment, 0, 1,
NULL);
5883 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5884 hr = IXMLDOMComment_get_text(pComment, &
str);
5885 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5890 hr = IXMLDOMComment_replaceData(pComment, 0, 1,
_bstr_(
""));
5891 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5892 hr = IXMLDOMComment_get_text(pComment, &
str);
5893 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5898 hr = IXMLDOMComment_replaceData(pComment, 0, 0,
_bstr_(
"a"));
5899 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5900 hr = IXMLDOMComment_get_text(pComment, &
str);
5901 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5905 hr = IXMLDOMComment_replaceData(pComment, 0, 2,
NULL);
5906 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5908 hr = IXMLDOMComment_insertData(pComment, 0,
_bstr_(
"m"));
5909 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5910 hr = IXMLDOMComment_get_text(pComment, &
str);
5911 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5916 hr = IXMLDOMComment_replaceData(pComment, 0, 2,
_bstr_(
"a1.2"));
5917 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5918 hr = IXMLDOMComment_get_text(pComment, &
str);
5919 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5924 hr = IXMLDOMComment_replaceData(pComment, 0, 1,
_bstr_(
"wine"));
5925 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5926 hr = IXMLDOMComment_get_text(pComment, &
str);
5927 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5931 IXMLDOMComment_Release(pComment);
5936 hr = IXMLDOMDocument_createElement(doc,
str, &pElement);
5938 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5942 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5944 hr = IXMLDOMElement_get_nodeName(pElement, &
str);
5945 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5946 ok( !
lstrcmpW(
str,
L"EleTest" ),
"incorrect element node Name\n");
5949 hr = IXMLDOMElement_get_xml(pElement, &
str);
5950 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5956 hr = IXMLDOMDocument_createAttribute(doc,
NULL, &pAttribute);
5958 ok(pAttribute == (
void*)0x1,
"Expect same ptr, got %p\n", pAttribute);
5961 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
""), &pAttribute);
5963 ok(pAttribute == (
void*)0x1,
"Expect same ptr, got %p\n", pAttribute);
5966 hr = IXMLDOMDocument_createAttribute(doc,
str, &pAttribute);
5968 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5973 hr = IXMLDOMAttribute_get_nextSibling(pAttribute,
NULL);
5977 hr = IXMLDOMAttribute_get_nextSibling(pAttribute, &pNextChild);
5979 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
5982 hr = IXMLDOMAttribute_get_previousSibling(pAttribute,
NULL);
5986 hr = IXMLDOMAttribute_get_previousSibling(pAttribute, &pNextChild);
5988 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
5990 hr = IXMLDOMElement_appendChild(pElement, (
IXMLDOMNode*)pAttribute, &pNewChild);
5992 ok(pNewChild ==
NULL,
"pNewChild not NULL\n");
5994 hr = IXMLDOMElement_get_attributes(pElement, &pAttribs);
5995 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5998 hr = IXMLDOMNamedNodeMap_setNamedItem(pAttribs, (
IXMLDOMNode*)pAttribute,
NULL );
5999 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6001 IXMLDOMNamedNodeMap_Release(pAttribs);
6004 hr = IXMLDOMAttribute_get_nodeName(pAttribute, &
str);
6005 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6006 ok( !
lstrcmpW(
str,
L"Attr" ),
"incorrect attribute node Name\n");
6010 hr = IXMLDOMAttribute_get_nodeName(pAttribute, &
str);
6011 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6016 hr = IXMLDOMAttribute_get_name(pAttribute, &
str);
6017 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6021 hr = IXMLDOMAttribute_get_xml(pAttribute, &
str);
6022 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6023 ok( !
lstrcmpW(
str,
L"Attr=\"\"" ),
"incorrect attribute xml\n");
6026 IXMLDOMAttribute_Release(pAttribute);
6029 hr = IXMLDOMElement_get_xml(pElement, &
str);
6030 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6031 ok( !
lstrcmpW(
str,
L"<EleTest Attr=\"\"/>" ),
"incorrect element xml\n");
6035 hr = IXMLDOMElement_put_text(pElement,
_bstr_(
"TestingNode"));
6036 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6038 hr = IXMLDOMElement_get_xml(pElement, &
str);
6039 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6040 ok( !
lstrcmpW(
str,
L"<EleTest Attr=\"\">TestingNode</EleTest>" ),
"incorrect element xml\n");
6045 hr = IXMLDOMElement_put_text(pElement,
str);
6046 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6049 hr = IXMLDOMElement_get_xml(pElement, &
str);
6050 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6051 ok( !
lstrcmpW(
str,
L"<EleTest Attr=\"\">&x \x2103</EleTest>" ),
"incorrect element xml\n");
6054 hr = IXMLDOMElement_get_text(pElement, &
str);
6055 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6059 IXMLDOMElement_Release(pElement);
6064 hr = IXMLDOMDocument_createCDATASection(doc,
str,
NULL);
6067 hr = IXMLDOMDocument_createCDATASection(doc,
str, &pCDataSec);
6069 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6077 hr = IXMLDOMCDATASection_QueryInterface(pCDataSec, &IID_IXMLDOMElement, (
void**)&pElement);
6081 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6083 hr = IXMLDOMCDATASection_get_nodeName(pCDataSec, &
str);
6084 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6085 ok( !
lstrcmpW(
str,
L"#cdata-section" ),
"incorrect cdata node Name\n");
6088 hr = IXMLDOMCDATASection_get_xml(pCDataSec, &
str);
6089 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6090 ok( !
lstrcmpW(
str,
L"<![CDATA[[1]*2=3; &gee that is not right!]]>" ),
"incorrect cdata xml\n");
6095 hr = IXMLDOMCDATASection_get_lastChild(pCDataSec, &pNextChild);
6097 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
6100 hr = IXMLDOMCDATASection_put_data(pCDataSec,
_bstr_(
"This &is a ; test <>\\"));
6101 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6104 hr = IXMLDOMCDATASection_get_xml(pCDataSec, &
str);
6105 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6106 ok(!
lstrcmpW(
str,
L"<![CDATA[This &is a ; test <>\\]]>"),
"incorrect xml string\n");
6110 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6111 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6112 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect text string\n");
6116 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6117 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6118 ok(
len == 21,
"expected 21 got %ld\n",
len);
6121 hr = IXMLDOMCDATASection_get_data(pCDataSec, &
str);
6122 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6123 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect text string\n");
6127 hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, 4,
NULL);
6131 str = (
void *)0xdeadbeef;
6132 hr = IXMLDOMCDATASection_substringData(pCDataSec, -1, 4, &
str);
6137 str = (
void *)0xdeadbeef;
6138 hr = IXMLDOMCDATASection_substringData(pCDataSec, 30, 0, &
str);
6143 str = (
void *)0xdeadbeef;
6144 hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, -1, &
str);
6149 str = (
void *)0xdeadbeef;
6150 hr = IXMLDOMCDATASection_substringData(pCDataSec, 2, 0, &
str);
6155 hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, 4, &
str);
6156 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6161 hr = IXMLDOMCDATASection_substringData(pCDataSec, 13, 4, &
str);
6162 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6167 hr = IXMLDOMCDATASection_substringData(pCDataSec, 20, 4, &
str);
6168 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6173 hr = IXMLDOMCDATASection_appendData(pCDataSec,
NULL);
6174 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6176 hr = IXMLDOMCDATASection_appendData(pCDataSec,
_bstr_(
""));
6177 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6179 hr = IXMLDOMCDATASection_appendData(pCDataSec,
_bstr_(
"Append"));
6180 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6182 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6183 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6189 hr = IXMLDOMCDATASection_insertData(pCDataSec, -1,
str);
6190 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6192 hr = IXMLDOMCDATASection_insertData(pCDataSec, -1,
NULL);
6193 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6195 hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000,
str);
6196 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6198 hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000,
NULL);
6199 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6201 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
NULL);
6202 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6204 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
str);
6205 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6208 hr = IXMLDOMCDATASection_insertData(pCDataSec, -1,
_bstr_(
"Inserting"));
6211 hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000,
_bstr_(
"Inserting"));
6214 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
_bstr_(
"Begin "));
6215 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6217 hr = IXMLDOMCDATASection_insertData(pCDataSec, 17,
_bstr_(
"Middle"));
6218 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6220 hr = IXMLDOMCDATASection_insertData(pCDataSec, 39,
_bstr_(
" End"));
6221 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6223 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6224 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6230 hr = IXMLDOMCDATASection_deleteData(pCDataSec, -1, 1);
6233 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, 0);
6234 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6236 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, -1);
6239 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6240 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6241 ok(
len == 43,
"expected 43 got %ld\n",
len);
6243 hr = IXMLDOMCDATASection_deleteData(pCDataSec,
len, 1);
6244 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6246 hr = IXMLDOMCDATASection_deleteData(pCDataSec,
len+1, 1);
6250 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, 5);
6251 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6253 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6254 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6255 ok(
len == 38,
"expected 38 got %ld\n",
len);
6257 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6258 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6263 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 35, 3);
6264 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6266 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6267 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6268 ok(
len == 35,
"expected 35 got %ld\n",
len);
6270 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6271 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6276 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 1, 33);
6277 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6279 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6280 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6281 ok(
len == 2,
"expected 2 got %ld\n",
len);
6283 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6284 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6289 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6290 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6292 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0,
len);
6293 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6296 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0,
len);
6297 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6302 hr = IXMLDOMCDATASection_put_nodeValue(pCDataSec,
v);
6303 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6306 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 6, 0,
NULL);
6308 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6309 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6313 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 0,
NULL);
6314 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6315 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6316 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6321 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1,
NULL);
6322 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6323 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6324 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6329 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1,
_bstr_(
""));
6330 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6331 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6332 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6337 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 0,
_bstr_(
"a"));
6338 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6339 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6340 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6344 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 2,
NULL);
6345 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6347 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
_bstr_(
"m"));
6348 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6349 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6350 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6355 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 2,
_bstr_(
"a1.2"));
6356 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6357 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6358 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6363 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1,
_bstr_(
"wine"));
6364 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6365 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6366 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6370 IXMLDOMCDATASection_Release(pCDataSec);
6374 hr = IXMLDOMDocument_createDocumentFragment(doc,
NULL);
6377 hr = IXMLDOMDocument_createDocumentFragment(doc, &pDocFrag);
6378 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6383 hr = IXMLDOMDocumentFragment_get_parentNode(pDocFrag,
NULL);
6387 hr = IXMLDOMDocumentFragment_get_parentNode(pDocFrag, &
node);
6392 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6394 hr = IXMLDOMDocumentFragment_get_nodeName(pDocFrag, &
str);
6395 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6396 ok( !
lstrcmpW(
str,
L"#document-fragment" ),
"incorrect docfragment node Name\n");
6400 hr = IXMLDOMDocumentFragment_get_nextSibling(pDocFrag,
NULL);
6404 hr = IXMLDOMDocumentFragment_get_nextSibling(pDocFrag, &
node);
6409 hr = IXMLDOMDocumentFragment_get_previousSibling(pDocFrag,
NULL);
6413 hr = IXMLDOMDocumentFragment_get_previousSibling(pDocFrag, &
node);
6415 ok(
node ==
NULL,
"previous sibling not NULL\n");
6417 IXMLDOMDocumentFragment_Release(pDocFrag);
6421 hr = IXMLDOMDocument_createEntityReference(doc,
NULL, &pEntityRef);
6423 hr = IXMLDOMDocument_createEntityReference(doc,
_bstr_(
""), &pEntityRef);
6427 hr = IXMLDOMDocument_createEntityReference(doc,
str,
NULL);
6430 hr = IXMLDOMDocument_createEntityReference(doc,
str, &pEntityRef);
6432 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6436 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6439 hr = IXMLDOMEntityReference_get_xml(pEntityRef, &
str);
6440 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6444 IXMLDOMEntityReference_Release(pEntityRef);
6447 IXMLDOMElement_Release( pRoot );
6451 IXMLDOMDocument_Release(doc);
6465 {
"test_inval",
"abcdefg",
E_FAIL },
6466 {
"test_bool",
"Boolean",
S_OK },
6467 {
"test_string",
"String",
S_OK },
6468 {
"test_number",
"number",
S_OK },
6469 {
"test_int",
"InT",
S_OK },
6470 {
"test_fixed",
"fixed.14.4",
S_OK },
6471 {
"test_datetime",
"DateTime",
S_OK },
6472 {
"test_datetimetz",
"DateTime.tz",
S_OK },
6473 {
"test_date",
"Date",
S_OK },
6474 {
"test_time",
"Time",
S_OK },
6475 {
"test_timetz",
"Time.tz",
S_OK },
6476 {
"test_I1",
"I1",
S_OK },
6477 {
"test_I2",
"I2",
S_OK },
6478 {
"test_I4",
"I4",
S_OK },
6479 {
"test_UI1",
"UI1",
S_OK },
6480 {
"test_UI2",
"UI2",
S_OK },
6481 {
"test_UI4",
"UI4",
S_OK },
6482 {
"test_r4",
"r4",
S_OK },
6483 {
"test_r8",
"r8",
S_OK },
6484 {
"test_float",
"float",
S_OK },
6485 {
"test_uuid",
"UuId",
S_OK },
6486 {
"test_binhex",
"bin.hex",
S_OK },
6487 {
"test_binbase64",
"bin.base64",
S_OK },
6516 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"),
NULL);
6519 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
6525 hr = IXMLDOMElement_put_dataType(
root,
NULL);
6538 ok(
hr ==
ptr->hr,
"failed for %s:%s, %#lx.\n",
ptr->name,
ptr->type,
ptr->hr);
6540 IXMLDOMElement_Release(
element);
6546 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing_Change"), &
element);
6558 IXMLDOMElement_Release(
element);
6562 type1W =
_bstr_(
"string");
6563 type2W =
_bstr_(
"number");
6582 hr = IXMLDOMNode_put_dataType(
node, type1W);
6583 ok(
hr == ptr2->
hr,
"failed for type %d, %#lx\n", ptr2->
type,
ptr->hr);
6584 hr = IXMLDOMNode_put_dataType(
node, type2W);
6585 ok(
hr == ptr2->
hr,
"failed for type %d, %#lx\n", ptr2->
type,
ptr->hr);
6587 IXMLDOMNode_Release(
node);
6592 IXMLDOMElement_Release(
root);
6593 IXMLDOMDocument_Release(doc);
6599 static const char cheA[] =
"<Testing che=\"\xd0\xa7\"/>";
6618 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
6627 hr = IXMLDOMDocument_save(doc,
dest);
6630 hr = IXMLDOMDocument_get_xml(doc, &sOrig);
6633 hr = IXMLDOMDocument_get_xml(doc2, &sNew);
6636 ok( !
lstrcmpW( sOrig, sNew ),
"New document is not the same as original\n");
6641 IXMLDOMElement_Release(
root);
6642 IXMLDOMDocument_Release(doc2);
6648 hr = IXMLDOMDocument_save(doc,
dest);
6656 ok(
read != 0,
"could not read file\n");
6657 ok(
buffer[0] !=
'<' ||
buffer[1] !=
'?',
"File contains processing instruction\n");
6667 hr = IXMLDOMDocument_save(doc,
dest);
6677 ok(
read != 0,
"could not read file\n");
6678 ok(
buffer[0] !=
'<' ||
buffer[1] !=
'?',
"File contains processing instruction\n");
6688 hr = IXMLDOMDocument_save(doc,
dest);
6699 hr = IXMLDOMDocument_save(doc,
dest);
6710 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<a/>"), &
b);
6717 hr = IXMLDOMDocument_save(doc,
dest);
6723 ok(
ptr[0] ==
'<' &&
ptr[1] !=
'?',
"got wrong start tag %c%c\n",
ptr[0],
ptr[1]);
6727 IXMLDOMDocument_Release(doc);
6732 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
6738 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"che"), &
attr);
6743 hr = IXMLDOMAttribute_put_value(
attr,
v);
6753 hr = IXMLDOMDocument_save(doc,
dest);
6761 ok(
read != 0,
"could not read file\n");
6768 IXMLDOMAttribute_Release(
attr);
6769 IXMLDOMElement_Release(
root);
6770 IXMLDOMDocument_Release(doc);
6786 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6789 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6791 hr = IXMLDOMDocument_QueryInterface(docSS, &IID_IXMLDOMNode, (
void**)&pNode );
6792 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6797 hr = IXMLDOMDocument_transformNode(doc, pNode, &bOut);
6798 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6805 IXMLDOMNode_Release(pNode);
6808 IXMLDOMDocument_Release(docSS);
6809 IXMLDOMDocument_Release(doc);
6821 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2" },
6822 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26" },
6823 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30" },
6824 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40" },
6825 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60" },
6833 while (class_ptr->
clsid)
6850 &IID_IXMLDOMDocument, (
void**)&doc);
6859 hr = IXMLDOMDocument_appendChild(doc,
node,
NULL);
6862 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
6879 hr = IXMLDOMElement_get_xml(
elem, &
str);
6881 ok(!
lstrcmpW(
str,
L"<ns:elem xmlns:ns=\"ns/uri\"/>"),
"got element %s for %s\n",
6885 IXMLDOMElement_Release(
elem);
6886 IXMLDOMDocument_Release(doc);
6896 static const CHAR namespaces_xmlA[] =
6897 "<?xml version=\"1.0\"?>\n"
6898 "<XMI xmi.version=\"1.1\" xmlns:Model=\"http://omg.org/mof.Model/1.3\">"
6900 " <Model:Package name=\"WinePackage\" Model:name2=\"name2 attr\" />"
6914 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(namespaces_xmlA), &
b);
6916 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
6918 str = (
void *)0xdeadbeef;
6919 hr = IXMLDOMDocument_get_namespaceURI(doc, &
str);
6923 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"//XMI.content"), &
node );
6930 hr = IXMLDOMNode_get_firstChild(
node, &node2);
6932 ok(node2 !=
NULL,
"got %p\n", node2);
6935 hr = IXMLDOMNode_get_prefix(node2,
NULL);
6939 hr = IXMLDOMNode_get_prefix(node2, &
str);
6944 hr = IXMLDOMNode_get_nodeName(node2, &
str);
6950 hr = IXMLDOMNode_get_namespaceURI(node2,
NULL);
6954 hr = IXMLDOMNode_get_namespaceURI(node2, &
str);
6959 hr = IXMLDOMNode_QueryInterface(node2, &IID_IXMLDOMElement, (
void**)&
elem);
6965 hr = IXMLDOMAttribute_get_nodeName(
attr, &
str);
6970 hr = IXMLDOMAttribute_get_prefix(
attr, &
str);
6975 IXMLDOMAttribute_Release(
attr);
6976 IXMLDOMElement_Release(
elem);
6978 IXMLDOMNode_Release(node2);
6979 IXMLDOMNode_Release(
node);
6982 IXMLDOMDocument_Release(doc);
6994 static const CHAR szLinefeedXML[] =
"<?xml version=\"1.0\"?>\n<Root>\n\t<Sub val=\"A\" />\n</Root>";
6995 static const CHAR szLinefeedRootXML[] =
"<Root>\r\n\t<Sub val=\"A\"/>\r\n</Root>";
6999 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(szLinefeedXML), &bSucc);
7000 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7001 ok(bSucc == VARIANT_TRUE,
"Expected VARIANT_TRUE got VARIANT_FALSE\n");
7003 if(bSucc == VARIANT_TRUE)
7005 hr = IXMLDOMDocument_get_documentElement(doc, &pElement);
7006 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7009 hr = IXMLDOMElement_get_xml(pElement, &
str);
7010 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7014 IXMLDOMElement_Release(pElement);
7018 IXMLDOMDocument_Release(doc);
7032 {
"root/string2",
VT_BSTR,
"String " },
7034 {
"root/string4",
VT_BSTR,
"\nWine Wine\t",
TRUE },
7036 {
"root/nested",
VT_BSTR,
" s1 \ns2 s2\t",
TRUE },
7037 {
"root/number",
VT_BSTR,
"12.44" },
7038 {
"root/number2",
VT_BSTR,
"-3.71e3" },
7039 {
"root/int",
VT_I4,
"-13" },
7040 {
"root/fixed",
VT_CY,
"7322.9371" },
7041 {
"root/bool",
VT_BOOL,
"-1" },
7042 {
"root/datetime",
VT_DATE,
"40135.14" },
7043 {
"root/datetimetz",
VT_DATE,
"37813.59" },
7044 {
"root/date",
VT_DATE,
"665413" },
7045 {
"root/time",
VT_DATE,
"0.5813889" },
7046 {
"root/timetz",
VT_DATE,
"1.112512" },
7047 {
"root/i1",
VT_I1,
"-13" },
7048 {
"root/i2",
VT_I2,
"31915" },
7049 {
"root/i4",
VT_I4,
"-312232" },
7050 {
"root/ui1",
VT_UI1,
"123" },
7051 {
"root/ui2",
VT_UI2,
"48282" },
7052 {
"root/ui4",
VT_UI4,
"949281" },
7053 {
"root/r4",
VT_R4,
"213124" },
7054 {
"root/r8",
VT_R8,
"0.412" },
7055 {
"root/float",
VT_R8,
"41221.421" },
7056 {
"root/uuid",
VT_BSTR,
"333C7BC4-460F-11D0-BC04-0080C7055a83" },
7065 static char buf[256];
7099 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7100 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
7102 hr = IXMLDOMDocument_get_nodeValue(doc,
NULL);
7107 hr = IXMLDOMDocument_get_nodeValue(doc, &
value);
7111 hr = IXMLDOMDocument_get_nodeTypedValue(doc,
NULL);
7115 hr = IXMLDOMDocument_get_nodeTypedValue(doc, &
value);
7119 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"root/string"), &
node);
7120 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7128 hr = IXMLDOMNode_get_nodeTypedValue(
node,
NULL);
7131 IXMLDOMNode_Release(
node);
7133 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"root/binhex"), &
node);
7134 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7136 BYTE bytes[] = {0xff,0xfc,0xa0,0x12,0x00,0x3c};
7138 hr = IXMLDOMNode_get_nodeTypedValue(
node, &
value);
7139 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7141 ok(
V_ARRAY(&
value)->rgsabound[0].cElements == 6,
"incorrect array size\n");
7145 IXMLDOMNode_Release(
node);
7148 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"foo"),
_bstr_(
"value"), &
pi);
7149 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7153 hr = IXMLDOMProcessingInstruction_get_nodeTypedValue(
pi, &
value);
7154 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7157 IXMLDOMProcessingInstruction_Release(
pi);
7161 hr = IXMLDOMDocument_createCDATASection(doc,
_bstr_(
"[1]*2=3; &gee that's not right!"), &cdata);
7162 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7166 hr = IXMLDOMCDATASection_get_nodeTypedValue(cdata, &
value);
7167 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7170 IXMLDOMCDATASection_Release(cdata);
7175 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7180 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7183 IXMLDOMComment_Release(
comment);
7187 hr = IXMLDOMDocument_createDocumentFragment(doc, &frag);
7188 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7191 hr = IXMLDOMDocumentFragment_get_nodeTypedValue(frag, &
value);
7194 IXMLDOMDocumentFragment_Release(frag);
7201 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7202 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
7206 hr = IXMLDOMDocument_get_doctype(doc2, &doctype);
7207 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7214 hr = IXMLDOMDocumentType_get_nodeTypedValue(doctype, &
value);
7219 hr = IXMLDOMDocument_get_doctype(doc2, &doctype2);
7220 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7221 ok(doctype != doctype2,
"got %p, was %p\n", doctype2, doctype);
7223 IXMLDOMDocumentType_Release(doctype2);
7224 IXMLDOMDocumentType_Release(doctype);
7226 IXMLDOMDocument_Release(doc2);
7231 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7233 hr = IXMLDOMNode_get_nodeTypedValue(
node, &
value);
7234 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7240 "incorrect array size %ld\n",
V_ARRAY(&
value)->rgsabound[0].cElements);
7252 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7257 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7262 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7269 "expected %s\n",
entry->value);
7286 hr = IXMLDOMDocument_get_preserveWhiteSpace(doc, &
b);
7287 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7288 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
7290 hr = IXMLDOMNode_get_text(
node, &bstr);
7296 hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_TRUE);
7297 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7300 hr = IXMLDOMNode_get_text(
node, &bstr);
7306 hr = IXMLDOMNode_get_nodeTypedValue(
node, &
value);
7307 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7312 hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_FALSE);
7313 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7318 IXMLDOMNode_Release(
node);
7323 IXMLDOMDocument_Release(doc);
7341 strcat(lpPathBuffer,
"customers.xml" );
7354 if(lpPathBuffer[
i] ==
'\\')
7355 lpPathBuffer[
i] =
'/';
7362 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7363 ok(bSucc == VARIANT_TRUE,
"Expected VARIANT_TRUE got VARIANT_FALSE\n");
7364 if(bSucc == VARIANT_TRUE)
7377 hr = IXMLDOMDocument_loadXML(xsl, sXSL, &bSucc);
7378 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7379 ok(bSucc == VARIANT_TRUE,
"Expected VARIANT_TRUE got VARIANT_FALSE\n");
7380 if(bSucc == VARIANT_TRUE)
7384 hr = IXMLDOMDocument_QueryInterface(xsl, &IID_IXMLDOMNode, (
void**)&pNode );
7385 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7392 hr = IXMLDOMDocument_transformNode(doc, pNode, &sResult);
7393 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7400 IXMLDOMNode_Release(pNode);
7407 IXMLDOMDocument_Release(doc);
7408 IXMLDOMDocument_Release(xsl);
7428 hr = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMNode, (
void**)&
node);
7429 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7434 IXMLDOMNode_Release(
node);
7440 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7445 IXMLDOMNode_Release(
node);
7451 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7456 IXMLDOMNode_Release(
node);
7459 hr = IXMLDOMDocument_createEntityReference(doc,
_bstr_(
"ref"), &entityref);
7460 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7464 hr = IXMLDOMEntityReference_put_nodeValue(entityref,
data);
7467 hr = IXMLDOMEntityReference_QueryInterface(entityref, &IID_IXMLDOMNode, (
void**)&
node);
7468 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7473 IXMLDOMNode_Release(
node);
7474 IXMLDOMEntityReference_Release(entityref);
7477 hr = IXMLDOMDocument_createTextNode(doc,
_bstr_(
""), &
text);
7478 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7482 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7483 IXMLDOMText_Release(
text);
7485 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
7486 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7489 hr = IXMLDOMAttribute_put_nodeValue(
attr,
data);
7490 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7491 hr = IXMLDOMAttribute_get_nodeValue(
attr, &
data);
7492 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7495 IXMLDOMAttribute_Release(
attr);
7499 IXMLDOMDocument_Release(doc);
7510 hr = IXMLDOMDocument_QueryInterface(doc, &IID_IObjectSafety, (
void**)&safety);
7511 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7515 IObjectSafety_Release(safety);
7516 IXMLDOMDocument_Release(doc);
7519 &IID_IObjectSafety, (
void**)&safety);
7520 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7524 IObjectSafety_Release(safety);
7536 { &
CLSID_DOMDocument,
"CLSID_DOMDocument" ,
"SelectionLanguage",
"XSLPattern" },
7537 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2" ,
"SelectionLanguage",
"XSLPattern" },
7538 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"SelectionLanguage",
"XSLPattern" },
7539 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"SelectionLanguage",
"XPath" },
7540 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"SelectionLanguage",
"XPath" },
7550 IXMLDOMDocument2 *doc;
7569 IXMLDOMDocument2_Release(doc);
7582 {
"root//elem[0]",
"E1.E2.D1" },
7583 {
"root//elem[index()=1]",
"E2.E2.D1" },
7584 {
"root//elem[index() $eq$ 1]",
"E2.E2.D1" },
7585 {
"root//elem[end()]",
"E4.E2.D1" },
7586 {
"root//elem[$not$ end()]",
"E1.E2.D1 E2.E2.D1 E3.E2.D1" },
7587 {
"root//elem[index() != 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7588 {
"root//elem[index() $ne$ 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7589 {
"root//elem[index() < 2]",
"E1.E2.D1 E2.E2.D1" },
7590 {
"root//elem[index() $lt$ 2]",
"E1.E2.D1 E2.E2.D1" },
7591 {
"root//elem[index() <= 1]",
"E1.E2.D1 E2.E2.D1" },
7592 {
"root//elem[index() $le$ 1]",
"E1.E2.D1 E2.E2.D1" },
7593 {
"root//elem[index() > 1]",
"E3.E2.D1 E4.E2.D1" },
7594 {
"root//elem[index() $gt$ 1]",
"E3.E2.D1 E4.E2.D1" },
7595 {
"root//elem[index() >= 2]",
"E3.E2.D1 E4.E2.D1" },
7596 {
"root//elem[index() $ge$ 2]",
"E3.E2.D1 E4.E2.D1" },
7597 {
"root//elem[a $ieq$ 'a2 field']",
"E2.E2.D1" },
7598 {
"root//elem[a $ine$ 'a2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7599 {
"root//elem[a $ilt$ 'a3 field']",
"E1.E2.D1 E2.E2.D1" },
7600 {
"root//elem[a $ile$ 'a2 field']",
"E1.E2.D1 E2.E2.D1" },
7601 {
"root//elem[a $igt$ 'a2 field']",
"E3.E2.D1 E4.E2.D1" },
7602 {
"root//elem[a $ige$ 'a3 field']",
"E3.E2.D1 E4.E2.D1" },
7603 {
"root//elem[$any$ *='B2 field']",
"E2.E2.D1" },
7604 {
"root//elem[$all$ *!='B2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7605 {
"root//elem[index()=0 or end()]",
"E1.E2.D1 E4.E2.D1" },
7606 {
"root//elem[index()=0 $or$ end()]",
"E1.E2.D1 E4.E2.D1" },
7607 {
"root//elem[index()=0 || end()]",
"E1.E2.D1 E4.E2.D1" },
7608 {
"root//elem[index()>0 and $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7609 {
"root//elem[index()>0 $and$ $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7610 {
"root//elem[index()>0 && $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7611 {
"root/elem[0]",
"E1.E2.D1" },
7612 {
"root/elem[index()=1]",
"E2.E2.D1" },
7613 {
"root/elem[index() $eq$ 1]",
"E2.E2.D1" },
7614 {
"root/elem[end()]",
"E4.E2.D1" },
7615 {
"root/elem[$not$ end()]",
"E1.E2.D1 E2.E2.D1 E3.E2.D1" },
7616 {
"root/elem[index() != 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7617 {
"root/elem[index() $ne$ 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7618 {
"root/elem[index() < 2]",
"E1.E2.D1 E2.E2.D1" },
7619 {
"root/elem[index() $lt$ 2]",
"E1.E2.D1 E2.E2.D1" },
7620 {
"root/elem[index() <= 1]",
"E1.E2.D1 E2.E2.D1" },
7621 {
"root/elem[index() $le$ 1]",
"E1.E2.D1 E2.E2.D1" },
7622 {
"root/elem[index() > 1]",
"E3.E2.D1 E4.E2.D1" },
7623 {
"root/elem[index() $gt$ 1]",
"E3.E2.D1 E4.E2.D1" },
7624 {
"root/elem[index() >= 2]",
"E3.E2.D1 E4.E2.D1" },
7625 {
"root/elem[index() $ge$ 2]",
"E3.E2.D1 E4.E2.D1" },
7626 {
"root/elem[a $ieq$ 'a2 field']",
"E2.E2.D1" },
7627 {
"root/elem[a $ine$ 'a2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7628 {
"root/elem[a $ilt$ 'a3 field']",
"E1.E2.D1 E2.E2.D1" },
7629 {
"root/elem[a $ile$ 'a2 field']",
"E1.E2.D1 E2.E2.D1" },
7630 {
"root/elem[a $igt$ 'a2 field']",
"E3.E2.D1 E4.E2.D1" },
7631 {
"root/elem[a $ige$ 'a3 field']",
"E3.E2.D1 E4.E2.D1" },
7632 {
"root/elem[$any$ *='B2 field']",
"E2.E2.D1" },
7633 {
"root/elem[$all$ *!='B2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7634 {
"root/elem[index()=0 or end()]",
"E1.E2.D1 E4.E2.D1" },
7635 {
"root/elem[index()=0 $or$ end()]",
"E1.E2.D1 E4.E2.D1" },
7636 {
"root/elem[index()=0 || end()]",
"E1.E2.D1 E4.E2.D1" },
7637 {
"root/elem[index()>0 and $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7638 {
"root/elem[index()>0 $and$ $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7639 {
"root/elem[index()>0 && $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7640 {
"root/elem[d]",
"E1.E2.D1 E2.E2.D1 E4.E2.D1" },
7641 {
"root/elem[@*]",
"E2.E2.D1 E3.E2.D1",
TRUE },
7647 {
"//bar:x",
"E6.E1.E5.E1.E2.D1 E6.E2.E5.E1.E2.D1" },
7649 {
"//foo:elem",
"" },
7650 {
"//foo:c",
"E3.E4.E2.D1" },
7655 {
"attribute()",
"" },
7656 {
"attribute('depth')",
"" },
7657 {
"root/attribute('depth')",
"A'depth'.E3.D1" },
7658 {
"//x/attribute()",
"A'id'.E3.E3.D1 A'depth'.E3.E3.D1" },
7659 {
"//x//attribute(id)",
NULL },
7660 {
"//x//attribute('id')",
"A'id'.E3.E3.D1 A'id'.E4.E3.E3.D1 A'id'.E5.E3.E3.D1 A'id'.E6.E3.E3.D1" },
7661 {
"comment()",
"C2.D1" },
7662 {
"//comment()",
"C2.D1 C1.E3.D1 C2.E3.E3.D1 C2.E4.E3.D1" },
7663 {
"element()",
"E3.D1" },
7664 {
"root/y/element()",
"E4.E4.E3.D1 E5.E4.E3.D1 E6.E4.E3.D1" },
7665 {
"//element(a)",
NULL },
7666 {
"//element('a')",
"E4.E3.E3.D1 E4.E4.E3.D1" },
7667 {
"node()",
"P1.D1 C2.D1 E3.D1" },
7668 {
"//x/node()",
"P1.E3.E3.D1 C2.E3.E3.D1 T3.E3.E3.D1 E4.E3.E3.D1 E5.E3.E3.D1 E6.E3.E3.D1" },
7669 {
"//x/node()[nodeType()=1]",
"E4.E3.E3.D1 E5.E3.E3.D1 E6.E3.E3.D1" },
7670 {
"//x/node()[nodeType()=3]",
"T3.E3.E3.D1" },
7671 {
"//x/node()[nodeType()=7]",
"P1.E3.E3.D1" },
7672 {
"//x/node()[nodeType()=8]",
"C2.E3.E3.D1" },
7673 {
"pi()",
"P1.D1" },
7674 {
"//y/pi()",
"P1.E4.E3.D1" },
7675 {
"root/textnode()",
"T2.E3.D1" },
7676 {
"root/element()/textnode()",
"T3.E3.E3.D1 T3.E4.E3.D1" },
7683 IXMLDOMDocument2 *doc;
7694 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7701 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//elem/c"), &
list);
7705 hr = IXMLDOMNodeList_get_length(
list, &
len);
7708 ok(
len == 3,
"expected 3 entries in list, got %ld\n",
len);
7709 IXMLDOMNodeList_Release(
list);
7715 ok(
hr ==
S_OK,
"query=%s, failed with %#lx\n",
ptr->query,
hr);
7717 hr = IXMLDOMNodeList_get_length(
list, &
len);
7719 ok(
len != 0,
"query=%s, empty list\n",
ptr->query);
7725 IXMLDOMNodeList_Release(
list);
7744 ok(
hr ==
S_OK,
"query=%s, failed with %#lx.\n",
ptr->query,
hr);
7749 hr = IXMLDOMNodeList_get_length(
list, &
len);
7751 ok(
len != 0,
"query=%s, empty list\n",
ptr->query);
7756 hr = IXMLDOMNodeList_get_length(
list, &
len);
7758 ok(
len == 0,
"query=%s, empty list\n",
ptr->query);
7767 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
7768 _variantbstr_(
"xmlns:foo='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'"));
7772 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//foo:c"), &
list);
7775 hr = IXMLDOMNodeList_get_length(
list, &
len);
7777 ok(
len != 0,
"expected filled list\n");
7782 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
_variantbstr_(
"xmlns:foo='urn:nonexistent-foo'"));
7786 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//foo:c"), &
list);
7789 hr = IXMLDOMNodeList_get_length(
list, &
len);
7791 ok(
len == 0,
"expected empty list\n");
7792 IXMLDOMNodeList_Release(
list);
7794 IXMLDOMDocument2_Release(doc);
7800 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7809 ok(
hr ==
S_OK,
"query=%s, failed with %#lx.\n",
ptr->query,
hr);
7811 hr = IXMLDOMNodeList_get_length(
list, &
len);
7812 ok(
hr ==
S_OK,
"Failed to get list length, hr %#lx.\n",
hr);
7815 ok(
len != 0,
"query=%s, empty list\n",
ptr->query);
7820 ok(
len == 0,
"query=%s, filled list\n",
ptr->query);
7828 IXMLDOMDocument2_Release(doc);
7849 hr = IXMLDOMDocument_get_documentElement(doc, &
root);
7852 hr = IXMLDOMDocument_createCDATASection(doc,
_bstr_(
"beautiful plumage"), &cdata);
7860 hr = IXMLDOMCDATASection_get_length(cdata, &
length);
7864 hr = IXMLDOMCDATASection_splitText(cdata, 0,
NULL);
7867 text = (
void*)0xdeadbeef;
7869 hr = IXMLDOMCDATASection_splitText(cdata, -1, &
text);
7871 ok(
text == (
void*)0xdeadbeef,
"got %p\n",
text);
7873 text = (
void*)0xdeadbeef;
7875 hr = IXMLDOMCDATASection_splitText(cdata,
length + 1, &
text);
7879 text = (
void*)0xdeadbeef;
7881 hr = IXMLDOMCDATASection_splitText(cdata,
length, &
text);
7886 node = (
void*)0xdeadbeef;
7887 hr = IXMLDOMCDATASection_get_nextSibling(cdata, &
node);
7891 hr = IXMLDOMCDATASection_splitText(cdata, 10, &
text);
7899 hr = IXMLDOMCDATASection_get_nextSibling(cdata, &
node);
7901 IXMLDOMNode_Release(
node);
7907 node = (
void*)0xdeadbeef;
7908 hr = IXMLDOMText_get_nextSibling(
text, &
node);
7915 text2 = (
void*)0xdeadbeef;
7917 hr = IXMLDOMText_splitText(
text, -1, &text2);
7919 ok(text2 == (
void*)0xdeadbeef,
"got %p\n", text2);
7921 text2 = (
void*)0xdeadbeef;
7925 ok(text2 == 0,
"got %p\n", text2);
7927 text2 = (
void*)0xdeadbeef;
7931 ok(text2 == 0,
"got %p\n",
text);
7934 hr = IXMLDOMText_splitText(
text, 4, &text2);
7936 if (text2) IXMLDOMText_Release(text2);
7939 hr = IXMLDOMText_get_nextSibling(
text, &
node);
7941 if (
node) IXMLDOMNode_Release(
node);
7943 IXMLDOMText_Release(
text);
7944 IXMLDOMElement_Release(
root);
7945 IXMLDOMCDATASection_Release(cdata);
7958 {
"xml:lang",
"http://www.w3.org/XML/1998/namespace",
S_FALSE },
7959 {
"lang",
"http://www.w3.org/XML/1998/namespace",
S_OK },
7961 {
"ns:b",
"nshref",
S_FALSE },
7962 {
"b",
"nshref",
S_OK },
7992 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7994 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
7997 hr = IXMLDOMElement_get_childNodes(
element, &root_list);
8000 hr = IXMLDOMNodeList_get_item(root_list, 1, &pr_node);
8002 IXMLDOMNodeList_Release(root_list);
8004 hr = IXMLDOMNode_get_attributes(pr_node, &
map);
8006 IXMLDOMNode_Release(pr_node);
8009 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len);
8011 ok(
len == 3,
"length %ld\n",
len);
8016 node = (
void*)0xdeadbeef;
8019 ok(
node == (
void*)0xdeadbeef,
"got %p\n",
node);
8027 IXMLDOMNode_Release(
node);
8028 IXMLDOMNamedNodeMap_Release(
map);
8029 IXMLDOMElement_Release(
element);
8034 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"a"), &
node);
8037 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
element);
8039 IXMLDOMNode_Release(
node);
8047 node = (
void*)0xdeadbeef;
8049 ok(
hr ==
ptr->hr,
"%s, %s: unexpected hr %#lx, expected %#lx.\n",
ptr->name,
ptr->uri,
hr,
ptr->hr);
8051 IXMLDOMNode_Release(
node);
8060 node = (
void*)0xdeadbeef;
8062 ok(
hr ==
ptr->hr,
"%s: unexpected hr %#lx, expected %#lx.\n",
ptr->name,
hr,
ptr->hr);
8064 IXMLDOMNode_Release(
node);
8070 IXMLDOMNamedNodeMap_Release(
map);
8072 IXMLDOMElement_Release(
element);
8073 IXMLDOMDocument_Release(doc);
8091 ok(
hr ==
S_OK,
"loadXML failed\n");
8092 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8094 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
8095 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8097 hr = IXMLDOMElement_get_childNodes(
element, &root_list);
8098 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8100 hr = IXMLDOMNodeList_get_item(root_list, 1, &pr_node);
8101 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8102 IXMLDOMNodeList_Release(root_list);
8104 hr = IXMLDOMNode_get_attributes(pr_node, &
map);
8105 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8106 IXMLDOMNode_Release(pr_node);
8108 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len);
8109 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8110 ok(
len == 3,
"length %ld\n",
len);
8115 node = (
void*)0xdeadbeef;
8118 ok(
node == (
void*)0xdeadbeef,
"got %p\n",
node);
8122 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8129 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8130 IXMLDOMNode_Release(
node);
8132 IXMLDOMNamedNodeMap_Release(
map );
8133 IXMLDOMElement_Release(
element );
8134 IXMLDOMDocument_Release( doc );
8138#define check_default_props(doc) _check_default_props(__LINE__, doc)
8146 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionLanguage"), &
var);
8150 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionNamespaces"), &
var);
8155 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc, &
b);
8157 ok_(__FILE__,
line)(
b == VARIANT_FALSE,
"expected FALSE\n");
8159 hr = IXMLDOMDocument2_get_schemas(doc, &
var);
8164#define check_set_props(doc) _check_set_props(__LINE__, doc)
8172 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionLanguage"), &
var);
8177 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionNamespaces"), &
var);
8182 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc, &
b);
8184 ok_(__FILE__,
line)(
b == VARIANT_TRUE,
"expected TRUE\n");
8186 hr = IXMLDOMDocument2_get_schemas(doc, &
var);
8192#define set_props(doc, cache) _set_props(__LINE__, doc, cache)
8201 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
_variantbstr_(
"xmlns:wi=\'www.winehq.org\'"));
8203 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc, VARIANT_TRUE);
8210 hr = IXMLDOMDocument2_putref_schemas(doc,
var);
8215#define unset_props(doc) _unset_props(__LINE__, doc)
8226 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc, VARIANT_FALSE);
8229 hr = IXMLDOMDocument2_putref_schemas(doc,
var);
8237 IXMLDOMDocument2 *doc, *doc_owner;
8239 IXMLDOMSchemaCollection *
cache;
8247 const CHAR nodeXML[] =
8249 " <!-- comment node 0 -->"
8251 " <x attr='val'></x>"
8252 " <?foo value='PI for x'?>"
8253 " <![CDATA[ cdata ]]>"
8257 if (!
is_clsid_supported(&CLSID_XMLSchemaCache, &IID_IXMLDOMSchemaCollection))
return;
8266 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8274 hr = IXMLDOMDocument2_get_firstChild(doc, &
node);
8276 hr = IXMLDOMNode_get_ownerDocument(
node, &doc1);
8280 hr = IXMLDOMDocument_QueryInterface(doc1, &IID_IXMLDOMDocument2, (
void**)&doc_owner);
8282 ok( doc_owner != doc,
"got %p, doc %p\n", doc_owner, doc);
8284 IXMLDOMDocument2_Release(doc_owner);
8286 hr = IXMLDOMNode_get_ownerDocument(
node, &doc2);
8288 IXMLDOMNode_Release(
node);
8290 ok(doc1 != doc2,
"got %p, expected %p. original %p\n", doc2, doc1, doc);
8295 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8300 hr = IXMLDOMDocument2_get_firstChild(doc, &
node);
8302 hr = IXMLDOMNode_get_ownerDocument(
node, &doc3);
8304 IXMLDOMNode_Release(
node);
8306 hr = IXMLDOMDocument_QueryInterface(doc3, &IID_IXMLDOMDocument2, (
void**)&doc_owner);
8308 ok(doc3 != doc1 && doc3 != doc2 && doc_owner != doc,
"got %p, (%p, %p, %p)\n", doc3, doc, doc1, doc2);
8317 hr = IXMLDOMDocument_loadXML(doc1,
_bstr_(nodeXML), &
b);
8319 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8321 hr = IXMLDOMDocument_get_documentElement(doc1, &
element);
8324 hr = IXMLDOMElement_get_childNodes(
element, &node_list);
8327 hr = IXMLDOMNodeList_get_length(node_list, &
len);
8330 for(
i = 0;
i <
len;
i++) {
8331 hr = IXMLDOMNodeList_get_item(node_list,
i, &
node);
8334 hr = IXMLDOMNode_get_ownerDocument(
node,
NULL);
8337 IXMLDOMNode_Release(
node);
8339 IXMLDOMElement_Release(
element);
8342 hr = IXMLDOMNodeList_get_item(node_list, 2, &
node);
8344 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
element);
8346 IXMLDOMNode_Release(
node);
8351 IXMLDOMElement_Release(
element);
8352 hr = IXMLDOMAttribute_get_ownerDocument(
attr,
NULL);
8354 IXMLDOMAttribute_Release(
attr);
8355 IXMLDOMNodeList_Release(node_list);
8357 IXMLDOMSchemaCollection_Release(
cache);
8358 IXMLDOMDocument_Release(doc1);
8359 IXMLDOMDocument_Release(doc2);
8360 IXMLDOMDocument_Release(doc3);
8361 IXMLDOMDocument2_Release(doc);
8362#if defined(__REACTOS__) && defined(_M_AMD64)
8365 IXMLDOMDocument2_Release(doc_owner);
8383 ok(
hr ==
S_OK,
"loadXML failed\n");
8384 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8386 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
8387 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8389 hr = IXMLDOMDocument_get_documentElement(doc, &elem2);
8390 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8391 ok( elem2 !=
elem,
"got same instance\n");
8393 ret_attr = (
void*)0xdeadbeef;
8394 hr = IXMLDOMElement_setAttributeNode(
elem,
NULL, &ret_attr);
8396 ok( ret_attr == (
void*)0xdeadbeef,
"got %p\n", ret_attr);
8398 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
8399 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8401 ref1 = IXMLDOMElement_AddRef(
elem);
8402 IXMLDOMElement_Release(
elem);
8404 ret_attr = (
void*)0xdeadbeef;
8405 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8406 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8407 ok( ret_attr ==
NULL,
"got %p\n", ret_attr);
8410 ref2 = IXMLDOMElement_AddRef(
elem);
8411 IXMLDOMElement_Release(
elem);
8412 ok(ref2 == ref1,
"got %ld, expected %ld\n", ref2, ref1);
8417 IXMLDOMElement_Release(elem2);
8420 hr = IXMLDOMElement_getAttributeNode(
elem,
_bstr_(
"attr"), &attr2);
8421 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8422 ok( attr2 !=
attr,
"got same instance %p\n", attr2);
8423 IXMLDOMAttribute_Release(attr2);
8426 ret_attr = (
void*)0xdeadbeef;
8427 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8429 ok( ret_attr == (
void*)0xdeadbeef,
"got %p\n", ret_attr);
8431 IXMLDOMElement_Release(
elem);
8434 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
8435 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8436 ret_attr = (
void*)0xdeadbeef;
8437 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8439 ok( ret_attr == (
void*)0xdeadbeef,
"got %p\n", ret_attr);
8440 IXMLDOMElement_Release(
elem);
8446 ok(
hr ==
S_OK,
"loadXML failed\n");
8447 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8449 hr = IXMLDOMDocument_get_documentElement(doc2, &
elem);
8450 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8453 IXMLDOMElement_Release(
elem);
8455 IXMLDOMAttribute_Release(
attr);
8458 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"test"), &
elem);
8459 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8462 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
8466 ref1 = IXMLDOMAttribute_AddRef(
attr);
8467 IXMLDOMAttribute_Release(
attr);
8471 hr = IXMLDOMAttribute_put_nodeValue(
attr,
v);
8472 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8475 hr = IXMLDOMAttribute_get_xml(
attr, &
str);
8476 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8481 ret_attr = (
void*)0xdeadbeef;
8482 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8484 ok(ret_attr ==
NULL,
"got %p\n", ret_attr);
8487 ref2 = IXMLDOMAttribute_AddRef(
attr);
8488 IXMLDOMAttribute_Release(
attr);
8489 ok(ref1 == ref2,
"got %ld, expected %ld\n", ref2, ref1);
8491 hr = IXMLDOMElement_get_xml(
elem, &
str);
8492 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8499 hr = IXMLDOMAttribute_put_nodeValue(
attr,
v);
8500 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8502 hr = IXMLDOMElement_get_xml(
elem, &
str);
8503 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8508 IXMLDOMElement_Release(
elem);
8509 IXMLDOMAttribute_Release(
attr);
8510 IXMLDOMDocument_Release(doc2);
8511 IXMLDOMDocument_Release(doc);
8530 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &
elem);
8531 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8536 ref = IXMLDOMElement_Release(
elem);
8541 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &
elem);
8542 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8544 IXMLDOMDocument_Release(doc);
8546 IXMLDOMElement_Release(
elem);
8555 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"ns1:test"),
_bstr_(
"http://winehq.org"), &
node);
8556 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8559 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8562 IXMLDOMNode_Release(
node);
8565 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"test"),
_bstr_(
"http://winehq.org/default"), &
node);
8566 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8567 prefix = (
void*)0xdeadbeef;
8573 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8574 ok(
lstrcmpW(
str,
L"<test xmlns=\"http://winehq.org/default\"/>") == 0,
8578 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
elem);
8579 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8587 hr = IXMLDOMElement_get_namespaceURI(
elem, &
str);
8588 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8589 ok(
lstrcmpW(
str,
L"http://winehq.org/default") == 0,
"expected default namespace\n");
8592 IXMLDOMElement_Release(
elem);
8593 IXMLDOMNode_Release(
node);
8595 IXMLDOMDocument_Release(doc);
8600 "<?xml version=\"1.0\" ?>"
8601 "<a xmlns:ns1=\"ns1 href\" />";
8618 str = (
void*)0xdeadbeef;
8619 hr = IXMLDOMDocument_get_prefix(doc, &
str);
8623 hr = IXMLDOMDocument_get_prefix(doc,
NULL);
8627 hr = IXMLDOMDocument_createCDATASection(doc,
NULL, &cdata);
8630 str = (
void*)0xdeadbeef;
8631 hr = IXMLDOMCDATASection_get_prefix(cdata, &
str);
8635 hr = IXMLDOMCDATASection_get_prefix(cdata,
NULL);
8637 IXMLDOMCDATASection_Release(cdata);
8643 str = (
void*)0xdeadbeef;
8650 IXMLDOMComment_Release(
comment);
8653 hr = IXMLDOMDocument_createDocumentFragment(doc, &fragment);
8656 str = (
void*)0xdeadbeef;
8657 hr = IXMLDOMDocumentFragment_get_prefix(fragment, &
str);
8661 hr = IXMLDOMDocumentFragment_get_prefix(fragment,
NULL);
8663 IXMLDOMDocumentFragment_Release(fragment);
8672 str = (
void*)0xdeadbeef;
8677 IXMLDOMElement_Release(
element);
8681 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8683 str = (
void*)0xdeadbeef;
8685 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8689 str = (
void*)0xdeadbeef;
8694 IXMLDOMElement_Release(
element);
8699 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
8702 str = (
void*)0xdeadbeef;
8707 str = (
void*)0xdeadbeef;
8712 IXMLDOMDocument_Release(doc);
8727 hr = IXMLDOMDocument_selectSingleNode(doc,
NULL,
NULL);
8730 hr = IXMLDOMDocument_selectNodes(doc,
NULL,
NULL);
8734 ok(
hr ==
S_OK,
"loadXML failed\n");
8735 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8737 hr = IXMLDOMDocument_selectSingleNode(doc,
NULL,
NULL);
8740 hr = IXMLDOMDocument_selectNodes(doc,
NULL,
NULL);
8743 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"lc"),
NULL);
8746 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"lc"),
NULL);
8749 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"lc"), &
node);
8751 IXMLDOMNode_Release(
node);
8753 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"lc"), &
list);
8755 IXMLDOMNodeList_Release(
list);
8757 list = (
void*)0xdeadbeef;
8758 hr = IXMLDOMDocument_selectNodes(doc,
NULL, &
list);
8760 ok(
list == (
void*)0xdeadbeef,
"got %p\n",
list);
8762 node = (
void*)0xdeadbeef;
8763 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"nonexistent"), &
node);
8767 list = (
void*)0xdeadbeef;
8768 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"nonexistent"), &
list);
8771 hr = IXMLDOMNodeList_get_length(
list, &
len);
8774 IXMLDOMNodeList_Release(
list);
8776 IXMLDOMDocument_Release(doc);
8796 IConnectionPoint_Release(
point);
8799 IConnectionPoint_Release(
point);
8800 hr = IConnectionPointContainer_FindConnectionPoint(conn, &DIID_XMLDOMDocumentEvents, &
point);
8802 IConnectionPoint_Release(
point);
8804 IConnectionPointContainer_Release(conn);
8808 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8815 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8822 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8828 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8835 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8841 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8844 IDispatch_Release(
event);
8846 IXMLDOMDocument_Release(doc);
8851 static const WCHAR xml1[] =
L"<?xml version=\"1.0\"?>\r\n<test/>\r\n";
8852 static const char xml2[] =
"<?xml version=\"1.0\" encoding=\"windows-1252\"?>\r\n<test/>\r\n";
8853 static const char xml2_wine[] =
"<?xml version=\"1.0\" encoding=\"windows-1252\"?>\n<test/>\n";
8854 static const char xml3[] =
"<?xml version=\"1.0\" standalone=\"yes\"?>\r\n<test/>\r\n";
8855 static const char xml3_wine[] =
"<?xml version=\"1.0\" standalone=\"yes\"?>\n<test/>\n";
8873 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding=\"windows-1252\" dummy=\"value\""), &
pi);
8875 hr = IXMLDOMDocument_createProcessingInstruction(doc,
NULL,
_bstr_(
"version=\"1.0\" encoding=\"UTF-8\""), &
pi);
8877 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
NULL, &
pi);
8879 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding=UTF-8"), &
pi);
8881 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding='UTF-8\""), &
pi);
8883 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding=\"UTF-8"), &
pi);
8886 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding='UTF-8'"), &
pi);
8888 hr = IXMLDOMProcessingInstruction_QueryInterface(
pi, &IID_IXMLDOMNode, (
void **)&
node);
8891 hr = IXMLDOMNode_get_attributes(
node, &node_map);
8893 IXMLDOMNamedNodeMap_Release(node_map);
8894 IXMLDOMNode_Release(
node);
8895 IXMLDOMProcessingInstruction_Release(
pi);
8901 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"test"), &
buff[2], &
pi);
8904 IXMLDOMProcessingInstruction_Release(
pi);
8905 IXMLDOMDocument_Release(doc);
8909 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding=\"windows-1252\""), &
pi);
8911 hr = IXMLDOMProcessingInstruction_QueryInterface(
pi, &IID_IXMLDOMNode, (
void **)&
node);
8913 hr = IXMLDOMDocument_appendChild(doc,
node,
NULL);
8916 hr = IXMLDOMNode_get_attributes(
node, &node_map);
8919 item = (
void *)0xdeadbeef;
8920 hr = IXMLDOMNamedNodeMap_getNamedItem(node_map,
_bstr_(
"xml"), &
item);
8925 hr = IXMLDOMNamedNodeMap_getNamedItem(node_map,
_bstr_(
"encoding"), &
item);
8932 hr = IXMLDOMNode_get_nodeName(
item, &bstr);
8938 hr = IXMLDOMNode_get_nodeValue(
item, &
var);
8947 IXMLDOMNamedNodeMap_Release(node_map);
8948 IXMLDOMNode_Release(
node);
8949 IXMLDOMProcessingInstruction_Release(
pi);
8955 IXMLDOMElement_Release(
element);
8957 hr = IXMLDOMDocument_get_xml(doc, &xml);
8967 hr = IXMLDOMDocument_save(doc,
var);
8981 hr = IXMLDOMDocument_load(doc,
var, &
b);
8983 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
8989 hr = IXMLDOMDocument_save(doc,
var);
9000 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<?xml version=\"1.0\" standalone=\"yes\"?>\r\n<test/>\r\n"), &
b);
9002 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9009 hr = IXMLDOMDocument_save(doc,
var);
9020 IXMLDOMDocument_Release(doc);
9025 static const BYTE binhexdata[16] =
9026 {0,1,2,3,4,5,6,7,8,9,0xa,0xb,0xc,0xd,0xe,0xf};
9030 LONG ubound, lbound;
9039 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Element"), &
elem);
9043 hr = IXMLDOMElement_get_dataType(
elem, &
type);
9050 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
type);
9054 hr = IXMLDOMElement_get_dataType(
elem, &
type);
9060 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
type);
9073 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9077 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
9084 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9088 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
9093 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
9097 IXMLDOMNode_Release(
node);
9103 hr = IXMLDOMElement_put_dataType(
elem,
_bstr_(
"bin.base64"));
9108 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9112 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
9119 ok(ubound == 2,
"got %ld\n", ubound);
9123 ok(lbound == 0,
"got %ld\n", lbound);
9126 ok(
ptr[0] == 0,
"got %x\n",
ptr[0]);
9127 ok(
ptr[1] == 0x10,
"got %x\n",
ptr[1]);
9128 ok(
ptr[2] == 0x83,
"got %x\n",
ptr[2]);
9133 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
9138 IXMLDOMNode_Release(
node);
9149 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9153 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
9160 ok(ubound == 6,
"got %ld\n", ubound);
9164 ok(lbound == 0,
"got %ld\n", lbound);
9172 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
9177 IXMLDOMNode_Release(
node);
9184 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9187 hr = IXMLDOMElement_put_dataType(
elem,
_bstr_(
"bin.hex"));
9193 memcpy(
ptr, binhexdata,
sizeof(binhexdata));
9198 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9202 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
9209 ok(ubound == 15,
"got %ld\n", ubound);
9213 ok(lbound == 0,
"got %ld\n", lbound);
9216 ok(!
memcmp(
ptr, binhexdata,
sizeof(binhexdata)),
"got wrong data\n");
9221 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
9226 IXMLDOMNode_Release(
node);
9230 IXMLDOMElement_Release(
elem);
9231 IXMLDOMDocument_Release(doc);
9237 static const char xmlA[] =
"<?xml version=\"1.0\" encoding=\"UTF-16\"?>\r\n<a>test</a>\r\n";
9238 static const char attrA[] =
"attr=\""a & b"\"";
9239 static const char attr2A[] =
"\"a & b\"";
9240 static const char attr3A[] =
"attr=\"&quot;a\"";
9241 static const char attr4A[] =
""a";
9242 static const char fooA[] =
"<foo/>";
9256 hr = IXMLDOMDocument_loadXML( doc,
_bstr_(
"<a>test</a>"), &
b );
9258 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9260 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
9261 _bstr_(
"version=\"1.0\" encoding=\"UTF-16\""), &
pi);
9264 hr = IXMLDOMDocument_get_firstChild(doc, &
first);
9273 IXMLDOMProcessingInstruction_Release(
pi);
9274 IXMLDOMNode_Release(
first);
9276 hr = IXMLDOMDocument_get_xml(doc, &xml);
9283 IXMLDOMDocument_Release(doc);
9287 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"foo"), &
elem);
9290 hr = IXMLDOMDocument_putref_documentElement(doc,
elem);
9293 hr = IXMLDOMDocument_get_xml(doc, &xml);
9300 IXMLDOMElement_Release(
elem);
9303 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
9308 hr = IXMLDOMAttribute_put_value(
attr,
v);
9312 hr = IXMLDOMAttribute_get_xml(
attr, &xml);
9318 hr = IXMLDOMAttribute_get_value(
attr, &
v);
9327 hr = IXMLDOMAttribute_put_value(
attr,
v);
9331 hr = IXMLDOMAttribute_get_xml(
attr, &xml);
9337 hr = IXMLDOMAttribute_get_value(
attr, &
v);
9344 IXMLDOMAttribute_Release(
attr);
9346 IXMLDOMDocument_Release(doc);
9354 IXSLTemplate *
template;
9355 IXSLProcessor *processor;
9371 hr = IXSLTemplate_putref_stylesheet(
template,
NULL);
9377 hr = IXMLDOMDocument_loadXML( doc,
_bstr_(
"<a>test</a>"), &
b );
9379 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9382 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
9388 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9391 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
9394 IXMLDOMDocument_Release(doc);
9398 IXSLTemplate_Release(
template);
9402 hr =
CoCreateInstance(&CLSID_FreeThreadedDOMDocument,
NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (
void**)&doc);
9408 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9411 ref1 = IXMLDOMDocument_AddRef(doc);
9412 IXMLDOMDocument_Release(doc);
9413 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
9415 ref2 = IXMLDOMDocument_AddRef(doc);
9416 IXMLDOMDocument_Release(doc);
9417 ok(ref2 > ref1,
"got %ld\n", ref2);
9420 hr = IXSLTemplate_createProcessor(
template,
NULL);
9424 hr = IXSLTemplate_createProcessor(
template, &processor);
9431 hr = IXSLProcessor_get_input(processor, &
v);
9437 hr = IXSLProcessor_get_output(processor,
NULL);
9442 hr = IXSLProcessor_put_output(processor,
v);
9447 hr = IXSLProcessor_put_output(processor,
v);
9452 hr = IXSLProcessor_put_output(processor,
v);
9461 hr = IXSLProcessor_put_output(processor,
v);
9468 hr = IXSLProcessor_get_output(processor, &
v);
9476 hr = IXSLProcessor_transform(processor,
NULL);
9481 hr = IXSLProcessor_put_output(processor,
v);
9492 hr = IXMLDOMDocument_loadXML( doc2,
_bstr_(
"<a>test</a>"), &
b );
9494 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9498 hr = IXSLProcessor_put_input(processor,
v);
9501 hr = IXSLProcessor_transform(processor, &
b);
9505 hr = IXSLProcessor_get_output(processor, &
v);
9515 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9519 hr = IXSLProcessor_put_input(processor,
v);
9525 hr = IXSLProcessor_put_output(processor,
v);
9528 hr = IXMLDOMDocument_get_xml(doc3, &
str);
9530 ok(!*
str,
"Expected empty document\n");
9533 hr = IXSLProcessor_transform(processor, &
b);
9537 hr = IXSLProcessor_get_output(processor, &
v);
9542 hr = IXMLDOMDocument_get_xml(doc3, &
str);
9544 ok(!!*
str,
"Expected document\n");
9549 hr = IXSLProcessor_put_output(processor,
v);
9554 hr = IXSLProcessor_put_output(processor,
v);
9558 hr = IXSLProcessor_transform(processor, &
b);
9560 ok(
b == VARIANT_TRUE,
"got %x\n",
b);
9562 IXSLProcessor_Release(processor);
9563 IXMLDOMDocument_Release(doc2);
9564 IXMLDOMDocument_Release(doc3);
9567 hr = IXSLTemplate_putref_stylesheet(
template,
NULL);
9569 ref2 = IXMLDOMDocument_AddRef(doc);
9570 IXMLDOMDocument_Release(doc);
9571 ok(ref2 == ref1,
"got %ld\n", ref2);
9573 IXMLDOMDocument_Release(doc);
9574 IXSLTemplate_Release(
template);
9595 node = (
void*)0xdeadbeef;
9596 hr = IXMLDOMDocument_insertBefore(doc,
NULL,
v, &
node);
9598 ok(
node == (
void*)0xdeadbeef,
"got %p\n",
node);
9605 node = (
void*)0xdeadbeef;
9612 node = (
void*)0xdeadbeef;
9628 node = (
void*)0xdeadbeef;
9638 hr = IXMLDOMDocument_createNode(doc3,
v,
_bstr_(
"cdata"),
NULL, &cdata);
9640 ok(cdata !=
NULL,
"got %p\n", cdata);
9646 node = (
void*)0xdeadbeef;
9653 node = (
void*)0xdeadbeef;
9659 node = (
void*)0xdeadbeef;
9660 hr = IXMLDOMDocument_insertBefore(doc3, cdata,
v, &
node);
9664 IXMLDOMNode_Release(cdata);
9665 IXMLDOMDocument_Release(doc3);
9671 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"attr2"),
NULL, &newnode);
9673 ok(newnode !=
NULL,
"got %p\n", newnode);
9676 node = (
void*)0xdeadbeef;
9677 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9683 node = (
void*)0xdeadbeef;
9684 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9687 IXMLDOMNode_Release(newnode);
9693 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9695 ok(newnode !=
NULL,
"got %p\n", newnode);
9698 node = (
void*)0xdeadbeef;
9699 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9702 IXMLDOMNode_Release(newnode);
9708 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9710 ok(newnode !=
NULL,
"got %p\n", newnode);
9713 node = (
void*)0xdeadbeef;
9714 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9717 IXMLDOMNode_Release(newnode);
9723 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9725 ok(newnode !=
NULL,
"got %p\n", newnode);
9728 node = (
void*)0xdeadbeef;
9729 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9732 IXMLDOMNode_Release(newnode);
9738 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9740 ok(newnode !=
NULL,
"got %p\n", newnode);
9743 node = (
void*)0xdeadbeef;
9744 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9747 IXMLDOMNode_Release(newnode);
9748 IXMLDOMAttribute_Release(
attr);
9751 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &elem1);
9754 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem2"), &elem2);
9757 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem3"), &elem3);
9760 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem3"), &elem3);
9763 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem4"), &elem4);
9777 node = (
void*)0xdeadbeef;
9778 hr = IXMLDOMElement_insertBefore(elem1,
NULL,
v, &
node);
9780 ok(
node == (
void*)0xdeadbeef,
"got %p\n",
node);
9801 IXMLDOMElement_Release(elem4);
9813 IXMLDOMNode_Release(
node);
9826 IXMLDOMNode_Release(
node);
9830 node = (
void*)0xdeadbeef;
9838 IXMLDOMNode_Release(
node);
9843 hr = IXMLDOMDocument_createElement(doc2,
_bstr_(
"elem4"), &elem4);
9848 hr = IXMLDOMDocument_createElement(doc2,
_bstr_(
"elem4"), &elem5);
9860 IXMLDOMNode_Release(
node);
9869 IXMLDOMNode_Release(
node);
9871 IXMLDOMDocument_Release(doc2);
9873 IXMLDOMElement_Release(elem1);
9874 IXMLDOMElement_Release(elem2);
9875 IXMLDOMElement_Release(elem3);
9876 IXMLDOMElement_Release(elem4);
9877 IXMLDOMElement_Release(elem5);
9885 ok(elem1 !=
NULL,
"got %p\n", elem1);
9892 ok(elem2 !=
NULL,
"got %p\n", elem2);
9896 hr = IXMLDOMElement_get_xml(elem1, &
p);
9902 hr = IXMLDOMElement_get_xml(elem2, &
p);
9914 hr = IXMLDOMElement_get_xml(elem1, &
p);
9921 hr = IXMLDOMElement_get_xml(elem2, &
p);
9926 IXMLDOMElement_Release(elem1);
9927 IXMLDOMElement_Release(elem2);
9935 ok(elem1 !=
NULL,
"got %p\n", elem1);
9942 ok(elem2 !=
NULL,
"got %p\n", elem2);
9951 hr = IXMLDOMElement_get_xml(elem2, &
p);
9960 hr = IXMLDOMElement_get_xml(elem2, &
p);
9965 IXMLDOMElement_Release(elem1);
9966 IXMLDOMElement_Release(elem2);
9967 IXMLDOMDocument_Release(doc);
9979 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &
elem);
9982 hr = IXMLDOMDocument_createElement(doc2,
_bstr_(
"elem2"), &elem2);
9992 hr = IXMLDOMDocument_appendChild(doc2,
NULL,
NULL);
10000 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10009 IXMLDOMElement_Release(
elem);
10010 IXMLDOMElement_Release(elem2);
10011 IXMLDOMDocument_Release(doc);
10012 IXMLDOMDocument_Release(doc2);
10025 hr = IXMLDOMDocument_get_doctype(doc,
NULL);
10028 doctype = (
void*)0xdeadbeef;
10029 hr = IXMLDOMDocument_get_doctype(doc, &doctype);
10031 ok(doctype ==
NULL,
"got %p\n", doctype);
10034 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10035 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
10038 hr = IXMLDOMDocument_get_doctype(doc, &doctype);
10039 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10040 ok(doctype !=
NULL,
"got %p\n", doctype);
10042 hr = IXMLDOMDocumentType_get_name(doctype,
NULL);
10045 hr = IXMLDOMDocumentType_get_name(doctype, &
s);
10046 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10050 hr = IXMLDOMDocumentType_get_nodeName(doctype, &
s);
10051 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10055 IXMLDOMDocumentType_Release(doctype);
10056 IXMLDOMDocument_Release(doc);
10068 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"element"), &
elem);
10069 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10071 hr = IXMLDOMElement_get_tagName(
elem,
NULL);
10075 hr = IXMLDOMElement_get_tagName(
elem, &
str);
10076 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10080 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"s:element"), &elem2);
10081 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10084 hr = IXMLDOMElement_get_tagName(elem2, &
str);
10085 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10089 IXMLDOMElement_Release(
elem);
10090 IXMLDOMElement_Release(elem2);
10091 IXMLDOMDocument_Release(doc);
10121 while (
entry->type)
10130 ok(
hr ==
S_OK,
"failed to create node, type %d\n",
entry->type);
10137 ok(
hr ==
entry->hr,
"Unexpected hr %#lx, expected %#lx. node type %d\n",
10143 IXMLDOMNode_Release(
node);
10148 IXMLDOMDocument_Release(doc);
10178 hr = IXMLDOMDocument_get_nodeTypeString(doc, &
str);
10179 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10183 while (
entry->type)
10191 ok(
hr ==
S_OK,
"failed to create node, type %d\n",
entry->type);
10193 hr = IXMLDOMNode_get_nodeTypeString(
node,
NULL);
10196 hr = IXMLDOMNode_get_nodeTypeString(
node, &
str);
10197 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10201 IXMLDOMNode_Release(
node);
10206 IXMLDOMDocument_Release(doc);
10228 const WCHAR *namespaces[] =
10249 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10251 hr = IXMLDOMDocument_get_attributes(doc,
NULL);
10254 map = (
void*)0xdeadbeef;
10255 hr = IXMLDOMDocument_get_attributes(doc, &
map);
10260 hr = IXMLDOMDocument_get_firstChild(doc, &
node);
10261 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10263 hr = IXMLDOMNode_get_attributes(
node, &
map);
10264 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10266 node2 = (
void*)0xdeadbeef;
10267 hr = IXMLDOMNamedNodeMap_getNamedItem(
map,
_bstr_(
"attr"), &node2);
10269 ok(node2 ==
NULL,
"got %p\n", node2);
10272 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10273 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10283 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &node2);
10284 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10287 hr = IXMLDOMNode_get_nodeName(node2, &
str);
10288 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10293 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10294 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10298 hr = IXMLDOMNode_get_nodeType(node2, &
type);
10299 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10303 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10308 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10312 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
_bstr_(
"version"),
NULL);
10313 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10316 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10317 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10321 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10326 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10330 IXMLDOMNamedNodeMap_Release(
map);
10332 hr = IXMLDOMNode_get_attributes(
node, &
map);
10333 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10336 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10337 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10340 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"encoding"), &
attr);
10341 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10345 hr = IXMLDOMAttribute_put_nodeValue(
attr,
v);
10346 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10350 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10353 hr = IXMLDOMNode_get_attributes(
node, &
map);
10354 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10357 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10358 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10362 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10367 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10371 IXMLDOMNamedNodeMap_Release(
map);
10372 IXMLDOMNode_Release(node2);
10375 IXMLDOMNode_Release(
node);
10379 hr = IXMLDOMDocument_get_lastChild(doc, &
node);
10380 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10384 hr = IXMLDOMNode_get_attributes(
node, &
map);
10385 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10390 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &node2);
10391 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10396 IXMLDOMNode_Release(node2);
10399 IXMLDOMNode_Release(
node);
10402 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10403 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10407 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &node2);
10408 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10410 IXMLDOMNode_Release(node2);
10412 IXMLDOMNamedNodeMap_Release(
map);
10415 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"test"), &
elem);
10416 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10420 hr = IXMLDOMElement_setAttribute(
elem,
_bstr_(
"testattr"),
v);
10421 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10423 hr = IXMLDOMElement_get_attributes(
elem, &
map);
10424 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10427 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10428 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10434 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10436 IXMLDOMNode_Release(
node);
10437 IXMLDOMElement_Release(
elem);
10438 IXMLDOMDocument_Release(doc2);
10441 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10442 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10445 IXMLDOMNamedNodeMap_Release(
map);
10447 while (
entry->type)
10456 ok(
hr ==
S_OK,
"failed to create node, type %d\n",
entry->type);
10458 hr = IXMLDOMNode_get_attributes(
node,
NULL);
10461 map = (
void*)0xdeadbeef;
10462 hr = IXMLDOMNode_get_attributes(
node, &
map);
10463 ok(
hr ==
entry->hr,
"Unexpected hr %#lx, expected %#lx. node type %d\n",
10467 IXMLDOMNode_Release(
node);
10472 IXMLDOMDocument_Release(doc);
10475 L"<rdf:RDF xmlns:oslc_am=\"http://open-services.net/ns/am#\""
10476 L" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\""
10477 L" xmlns:dcterms=\"http://purl.org/dc/terms/\""
10478 L" xmlns:foaf=\"http://xmlns.com/foaf/0.1/\" >"
10483 hr = IXMLDOMDocument_loadXML(doc,
str, &
b);
10484 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10485 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
10487 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
10488 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10490 hr = IXMLDOMElement_get_attributes(
elem, &
map);
10491 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10494 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10495 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10500 hr = IXMLDOMNamedNodeMap_get_item(
map,
i, &node2);
10501 ok(
hr ==
S_OK,
"Unexpected hr %#lx (%ld).\n",
hr,
i);
10503 hr = IXMLDOMNode_get_nodeName(node2, &
str);
10504 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10508 IXMLDOMNode_Release(node2);
10511 IXMLDOMNamedNodeMap_Release(
map);
10512 IXMLDOMElement_Release(
elem);
10514 IXMLDOMDocument_Release(doc);
10521 IXMLDOMSelection *
selection, *selection2;
10540 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10542 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root"), &
list);
10543 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10545 hr = IXMLDOMNodeList_QueryInterface(
list, &IID_IXMLDOMSelection, (
void**)&
selection);
10546 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10550 hr = IXMLDOMSelection_QueryInterface(
selection, &IID_IDispatchEx, (
void**)&dispex);
10551 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10553 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
10554 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10558 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10560 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"10"), 0, &did);
10561 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10563 IDispatchEx_Release(dispex);
10567 hr = IXMLDOMSelection_QueryInterface(
selection, &IID_IEnumVARIANT, (
void**)&enum1);
10568 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10569 ok(enum1 !=
NULL,
"got %p\n", enum1);
10574 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10579 hr = IEnumVARIANT_QueryInterface(enum1, &
IID_IUnknown, (
void**)&unk2);
10580 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10583 ok(unk2 ==
unk1,
"got %p, %p\n",
unk1, unk2);
10584 IUnknown_Release(unk2);
10587 IEnumVARIANT_AddRef(enum1);
10589 IEnumVARIANT_Release(enum1);
10592 hr = IXMLDOMSelection_QueryInterface(
selection, &IID_IEnumVARIANT, (
void**)&enum3);
10593 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10594 ok(enum3 !=
NULL,
"got %p\n", enum3);
10595 ok(enum1 == enum3,
"got %p and %p\n", enum1, enum3);
10597 IEnumVARIANT_Release(enum3);
10604 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10605 ok(enum2 !=
NULL,
"got %p\n", enum2);
10611 ok(enum1 != enum2,
"got %p, %p\n", enum1, enum2);
10613 hr = IEnumVARIANT_QueryInterface(enum2, &
IID_IUnknown, (
void**)&unk2);
10614 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10617 ok(unk2 !=
unk1,
"got %p, %p\n",
unk1, unk2);
10618 IUnknown_Release(unk2);
10619 IUnknown_Release(
unk1);
10622 hr = IEnumVARIANT_QueryInterface(enum1, &IID_IXMLDOMSelection, (
void**)&selection2);
10623 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10628 IXMLDOMSelection_Release(selection2);
10630 hr = IEnumVARIANT_QueryInterface(enum1, &
IID_IDispatch, (
void**)&disp);
10631 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10633 IDispatch_Release(disp);
10635 hr = IEnumVARIANT_QueryInterface(enum1, &IID_IEnumVARIANT, (
void**)&enum3);
10636 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10637 ok(enum3 == enum1,
"got %p and %p\n", enum3, enum1);
10641 IEnumVARIANT_Release(enum1);
10642 IEnumVARIANT_Release(enum2);
10643 IEnumVARIANT_Release(enum3);
10647 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10648 ok(enum1 !=
NULL,
"got %p\n", enum1);
10654 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10655 ok(enum2 !=
NULL,
"got %p\n", enum2);
10659 ok(enum1 != enum2,
"got %p, %p\n", enum1, enum2);
10661 IEnumVARIANT_AddRef(enum1);
10665 IEnumVARIANT_Release(enum1);
10667 IEnumVARIANT_Release(enum1);
10668 IEnumVARIANT_Release(enum2);
10672 IXMLDOMNodeList_Release(
list);
10674 hr = IXMLDOMDocument_get_childNodes(doc, &
list);
10675 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10677 hr = IXMLDOMNodeList_QueryInterface(
list, &IID_IXMLDOMSelection, (
void**)&
selection);
10680 IXMLDOMNodeList_Release(
list);
10684 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10686 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root/*"), &
list);
10687 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10689 hr = IXMLDOMNodeList_QueryInterface(
list, &IID_IXMLDOMSelection, (
void**)&
selection);
10690 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10694 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10699 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10703 hr = IEnumVARIANT_Next(enum1, 0, &
v[0],
NULL);
10704 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10708 hr = IEnumVARIANT_Next(enum1, 1,
NULL,
NULL);
10711 hr = IEnumVARIANT_Next(enum1, 1,
NULL, &
ret);
10716 hr = IEnumVARIANT_Next(enum1, 1, &
v[0],
NULL);
10717 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10720 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
10721 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10723 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10726 IXMLDOMNode_Release(
node);
10731 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10733 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10735 IXMLDOMNode_Release(
node);
10739 hr = IEnumVARIANT_Next(enum1, 1, &
v[0],
NULL);
10740 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10742 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
10743 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10745 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10748 IXMLDOMNode_Release(
node);
10752 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10754 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10756 IXMLDOMNode_Release(
node);
10759 hr = IEnumVARIANT_Reset(enum1);
10760 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10765 hr = IEnumVARIANT_Next(enum1, 2,
v, &
ret);
10766 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10767 ok(
ret == 2,
"got %ld, expected 2\n",
ret);
10771 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
10772 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10774 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10777 IXMLDOMNode_Release(
node);
10779 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[1]), &IID_IXMLDOMNode, (
void**)&
node);
10780 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10784 IXMLDOMNode_Release(
node);
10794 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10796 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10799 IXMLDOMNode_Release(
node);
10809 hr = IEnumVARIANT_Next(enum1, 4,
v, &
ret);
10811 ok(
ret == 2,
"got %ld, expected 2\n",
ret);
10817 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
10818 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10820 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10823 IXMLDOMNode_Release(
node);
10829 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[1]), &IID_IXMLDOMNode, (
void**)&
node);
10830 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10832 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10835 IXMLDOMNode_Release(
node);
10842 IEnumVARIANT_Release(enum1);
10845 IXMLDOMNodeList_Release(
list);
10849 IXMLDOMDocument_Release(doc);
10869#define TEST_DOC_LOAD_FROM_PATH(doc,path,expected_hr, expected_ret) \
10870 _test_doc_load_from_path(doc, path, expected_hr, expected_ret, __LINE__)
10885 hr = IXMLDOMDocument_load(doc,
src, &
b);
10886 ok_(__FILE__,
line)(
hr == expected_hr,
"Failed to load document, %#lx.\n",
hr);
10887 ok_(__FILE__,
line)(
b == expected_ret,
"got %d\n",
b);
10891 hr = IXMLDOMDocument_load(doc,
src, &
b);
10892 ok_(__FILE__,
line)(
hr == expected_hr,
"Failed to load document, %#lx.\n",
hr);
10893 ok_(__FILE__,
line)(
b == expected_ret,
"got %d\n",
b);
10895 if (expected_hr !=
S_OK)
10899 hr = IXMLDOMDocument_get_url(doc, &
url);
10900 ok_(__FILE__,
line)(
hr ==
S_OK,
"Failed to get document url, hr %#lx.\n",
hr);
10902 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
10909 hr = IXMLDOMElement_get_ownerDocument(
elem, &doc2);
10910 ok_(__FILE__,
line)(
hr ==
S_OK,
"Failed to get owner document, hr %#lx.\n",
hr);
10912 hr = IXMLDOMDocument_get_url(doc2, &
url2);
10913 ok_(__FILE__,
line)(
hr ==
S_OK,
"Failed to get document url, hr %#lx.\n",
hr);
10916 IXMLDOMDocument_Release(doc2);
10917 IXMLDOMElement_Release(
elem);
10949 struct encoding_test
10954 } encoding_tests[] =
10974 hr = IXMLDOMDocument_load(doc,
src, &
b);
10976 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
11002 hr = IXMLDOMDocument_load(doc,
src, &
b);
11004 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
11007 hr = IXMLDOMDocument_get_url(doc, &bstr1);
11008 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11035 hr = IXMLDOMDocument_load(doc,
src, &
b);
11037 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
11039 bstr1 = (
void *)0xdeadbeef;
11040 hr = IXMLDOMDocument_get_url(doc, &bstr1);
11042 ok(bstr1 ==
NULL,
"got %p\n", bstr1);
11045 IXMLDOMDocument_Release(doc);
11050 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11051 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
11053 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"//*"), &
list);
11054 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11057 hr = IXMLDOMNodeList_reset(
list);
11058 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11060 IXMLDOMDocument_Release(doc);
11070 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11071 ok(
ptr !=
NULL,
"SafeArrayAccessData() returned NULL\n");
11075 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11077 hr = IXMLDOMDocument_load(doc,
src, &
b);
11078 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11079 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
11081 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"//*"), &
list);
11082 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11085 hr = IXMLDOMNodeList_reset(
list);
11086 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11088 ok(
lstrcmpW(bstr1, bstr2) == 0,
"strings not equal: %s : %s\n",
11091 IXMLDOMDocument_Release(doc);
11092 IXMLDOMNodeList_Release(
list);
11103 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11104 ok(
ptr !=
NULL,
"SafeArrayAccessData() returned NULL\n");
11108 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11110 hr = IXMLDOMDocument_load(doc,
src, &
b);
11112 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
11122 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11123 ok(
ptr !=
NULL,
"SafeArrayAccessData() returned NULL\n");
11127 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11129 hr = IXMLDOMDocument_load(doc,
src, &
b);
11131 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
11140 hr = IXMLDOMDocument_load(doc,
src, &
b);
11142 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
11151 hr = IXMLDOMDocument_load(doc,
src, &
b);
11152 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11153 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
11157 IXMLDOMDocument_Release(doc);
11168 IXMLDOMDocument_Release(doc);
11184 hr = IUnknown_QueryInterface(
obj, &IID_IDispatchEx, (
void**)&dispex);
11185 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11189 hr = IDispatchEx_GetTypeInfoCount(dispex, &ticnt);
11190 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11191 ok(ticnt == 1,
"ticnt=%u\n", ticnt);
11194 hr = IDispatchEx_DeleteMemberByName(dispex,
name, fdexNameCaseSensitive);
11198 hr = IDispatchEx_DeleteMemberByDispID(dispex, dispid);
11202 hr = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &
props);
11206 hr = IDispatchEx_GetMemberName(dispex, dispid, &
name);
11214 hr = IDispatchEx_GetNameSpaceParent(dispex, &unk);
11216 ok(unk == (
IUnknown*)0xdeadbeef,
"got %p\n", unk);
11219 hr = IDispatchEx_GetDispID(dispex,
name, fdexNameEnsure, &dispid);
11223 IDispatchEx_Release(dispex);
11228 static const char xmluriA[] =
"http://www.w3.org/XML/1998/namespace";
11230 IVBMXNamespaceManager *mgr2;
11231 IMXNamespaceManager *nsmgr;
11239 &IID_IMXNamespaceManager, (
void**)&nsmgr);
11240 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11247 hr = IMXNamespaceManager_QueryInterface(nsmgr, &IID_IVBMXNamespaceManager, (
void**)&mgr2);
11248 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11253 hr = IVBMXNamespaceManager_getDeclaredPrefixes(mgr2, &
prefixes);
11255 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11260 DISPPARAMS dispparams;
11273 IUnknown_Release(
unk1);
11274 IUnknown_Release(unk2);
11276 hr = IMXNamespacePrefixes_QueryInterface(
prefixes, &IID_IDispatchEx, (
void**)&dispex);
11277 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11281 dispparams.cArgs = 1;
11282 dispparams.cNamedArgs = 0;
11283 dispparams.rgdispidNamedArgs =
NULL;
11284 dispparams.rgvarg = &
arg;
11289 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11294 IDispatchEx_Release(dispex);
11295 IMXNamespacePrefixes_Release(
prefixes);
11297 IVBMXNamespaceManager_Release(mgr2);
11299 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
NULL);
11300 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11303 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri"));
11306 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns0"),
NULL);
11310 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"xml"),
_bstr_(
"uri1"));
11313 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"xmlns"),
_bstr_(
"uri1"));
11316 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, -1,
NULL,
NULL);
11319 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0,
NULL,
NULL);
11323 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0,
NULL, &
len);
11324 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11329 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
11330 ok(
hr == E_XML_BUFFERTOOSMALL,
"Unexpected hr %#lx.\n",
hr);
11332 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11336 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
11337 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11355 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11360 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
"xml"),
NULL, buffW, &
len);
11361 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11367 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
"xml"),
NULL, buffW, &
len);
11368 ok(
hr == E_XML_BUFFERTOOSMALL,
"Unexpected hr %#lx.\n",
hr);
11370 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11380 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
"xml1"),
NULL, buffW, &
len);
11382 ok(buffW[0] == 0,
"got %x\n", buffW[0]);
11386 hr = IMXNamespaceManager_QueryInterface(nsmgr, &
IID_IUnknown, (
void**)&unk);
11387 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11389 IUnknown_Release(unk);
11391 IMXNamespaceManager_Release(nsmgr);
11395 &IID_IMXNamespaceManager, (
void**)&nsmgr);
11396 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11402 hr = IMXNamespaceManager_getPrefix(nsmgr,
NULL, 0,
NULL, &
len);
11408 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns0 uri"), 0, buffW, &
len);
11410 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11415 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns0 uri"), 0, buffW, &
len);
11417 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11420 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns1"),
_bstr_(
"ns1 uri"));
11421 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11425 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11426 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11432 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"http://www.w3.org/XML/1998/namespace"), 0, buffW, &
len);
11433 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11439 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"http://www.w3.org/XML/1998/namespace"), 0,
NULL, &
len);
11440 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11444 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"http://www.w3.org/XML/1998/namespace"), 0,
NULL, &
len);
11445 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11450 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 1, buffW, &
len);
11452 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11457 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 2, buffW, &
len);
11459 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11464 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 0, buffW, &
len);
11466 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11471 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 1, buffW, &
len);
11473 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11478 hr = IMXNamespaceManager_getPrefix(nsmgr,
NULL, 0, buffW, &
len);
11480 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11485 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns0 uri"), 1, buffW, &
len);
11487 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11492 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 1, buffW, &
len);
11494 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11498 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns2"),
_bstr_(
"ns2 uri"));
11499 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11503 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11504 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11510 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
11511 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11517 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 1, buffW, &
len);
11519 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11524 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 1, buffW, &
len);
11526 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11529 IMXNamespaceManager_Release(nsmgr);
11533 &IID_IMXNamespaceManager, (
void**)&nsmgr);
11534 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11537 hr = IMXNamespaceManager_popContext(nsmgr);
11540 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns1"),
_bstr_(
"ns1 uri"));
11541 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11545 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11546 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11550 hr = IMXNamespaceManager_pushContext(nsmgr);
11551 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11555 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11556 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11560 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns2"),
_bstr_(
"ns2 uri"));
11561 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11565 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
11566 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11570 hr = IMXNamespaceManager_pushContext(nsmgr);
11571 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11572 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns3"),
_bstr_(
"ns3 uri"));
11573 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11577 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
11578 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11584 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11585 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11589 hr = IMXNamespaceManager_popContext(nsmgr);
11590 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11592 hr = IMXNamespaceManager_popContext(nsmgr);
11593 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11597 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
11599 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11604 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11605 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11609 IMXNamespaceManager_Release(nsmgr);
11616 IMXNamespaceManager *nsmgr;
11623 &IID_IMXNamespaceManager, (
void**)&nsmgr);
11624 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11628 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
11629 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11634 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &
len);
11637 hr = IMXNamespaceManager_getAllowOverride(nsmgr,
NULL);
11641 hr = IMXNamespaceManager_getAllowOverride(nsmgr, &
b);
11642 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11643 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
11645 hr = IMXNamespaceManager_putAllowOverride(nsmgr, VARIANT_FALSE);
11646 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11648 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri"));
11649 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11653 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
""),
NULL, buffW, &
len);
11654 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11657 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns0"),
_bstr_(
"ns0 uri"));
11658 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11662 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
11663 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11668 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &
len);
11669 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11674 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 2, buffW, &
len);
11675 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11679 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns1"),
_bstr_(
"ns1 uri"));
11680 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11684 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &
len);
11685 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11688 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
""),
NULL);
11691 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
NULL);
11694 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri"));
11697 hr = IMXNamespaceManager_putAllowOverride(nsmgr, VARIANT_TRUE);
11698 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11700 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri override"));
11705 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
""),
NULL, buffW, &
len);
11706 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11711 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 3, buffW, &
len);
11712 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11715 IMXNamespaceManager_Release(nsmgr);
11740 IXSLProcessor *processor;
11741 IXSLTemplate *
template;
11743 IXMLHTTPRequest *req;
11746 DISPPARAMS dispparams;
11756 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
11757 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11759 IUnknown_Release(unk);
11770 ok(
hr ==
S_OK,
"failed to create node type %d\n", *
type);
11775 IUnknown_Release(unk);
11776 IXMLDOMNode_Release(
node);
11780 hr = IXMLDOMDocument_getElementsByTagName(doc,
_bstr_(
"*"), &node_list);
11781 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11782 hr = IXMLDOMNodeList_QueryInterface(node_list, &
IID_IUnknown, (
void**)&unk);
11783 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11785 IUnknown_Release(unk);
11786 IXMLDOMNodeList_Release(node_list);
11789 hr = IXMLDOMDocument_get_childNodes(doc, &node_list);
11790 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11791 hr = IXMLDOMNodeList_QueryInterface(node_list, &
IID_IUnknown, (
void**)&unk);
11792 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11794 IUnknown_Release(unk);
11797 hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IDispatchEx, (
void**)&dispex);
11798 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11800 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
11801 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11803 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"1"), 0, &did);
11804 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11806 IDispatchEx_Release(dispex);
11809 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"item"), 0, &did);
11810 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11811 ok(did == DISPID_VALUE,
"got %ld\n", did);
11815 dispparams.cArgs = 0;
11816 dispparams.cNamedArgs = 0;
11817 dispparams.rgdispidNamedArgs =
NULL;
11818 dispparams.rgvarg = &
arg;
11830 dispparams.cArgs = 2;
11831 dispparams.cNamedArgs = 0;
11832 dispparams.rgdispidNamedArgs =
NULL;
11833 dispparams.rgvarg = &
arg;
11845 dispparams.cArgs = 1;
11846 dispparams.cNamedArgs = 0;
11847 dispparams.rgdispidNamedArgs =
NULL;
11848 dispparams.rgvarg = &
arg;
11853 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11860 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11867 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11871 dispparams.cArgs = 0;
11872 dispparams.cNamedArgs = 0;
11873 dispparams.rgdispidNamedArgs =
NULL;
11874 dispparams.rgvarg =
NULL;
11879 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11883 dispparams.cArgs = 0;
11884 dispparams.cNamedArgs = 0;
11885 dispparams.rgdispidNamedArgs =
NULL;
11886 dispparams.rgvarg =
NULL;
11896 IXMLDOMNodeList_Release(node_list);
11899 hr = IXMLDOMDocument_get_parseError(doc, &
error);
11900 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11904 hr = IXMLDOMParseError_QueryInterface(
error, &IID_IDispatchEx, (
void**)&dispex);
11905 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11909 dispparams.cArgs = 1;
11910 dispparams.cNamedArgs = 0;
11911 dispparams.rgdispidNamedArgs =
NULL;
11912 dispparams.rgvarg = &
arg;
11922 IDispatchEx_Release(dispex);
11924 IUnknown_Release(unk);
11925 IXMLDOMParseError_Release(
error);
11929 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11931 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root/a"), &node_list);
11932 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11933 hr = IXMLDOMNodeList_get_item(node_list, 0, &
node);
11934 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11935 IXMLDOMNodeList_Release(node_list);
11937 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
elem);
11938 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11939 IXMLDOMNode_Release(
node);
11940 hr = IXMLDOMElement_get_attributes(
elem, &
map);
11941 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11942 IXMLDOMNamedNodeMap_QueryInterface(
map, &
IID_IUnknown, (
void**)&unk);
11944 IUnknown_Release(unk);
11946 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IDispatchEx, (
void**)&dispex);
11947 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11949 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
11950 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11952 IDispatchEx_Release(dispex);
11953 IXMLDOMNamedNodeMap_Release(
map);
11955 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root/b"), &node_list);
11956 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11957 hr = IXMLDOMNodeList_get_item(node_list, 0, &
node);
11958 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11959 IXMLDOMNodeList_Release(node_list);
11960 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
elem);
11961 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11962 IXMLDOMNode_Release(
node);
11963 hr = IXMLDOMElement_get_attributes(
elem, &
map);
11964 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11966 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IDispatchEx, (
void**)&dispex);
11967 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11969 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
11970 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11972 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"1"), 0, &did);
11973 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11975 IXMLDOMNamedNodeMap_Release(
map);
11978 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"item"), 0, &did);
11979 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11980 ok(did == DISPID_VALUE,
"got %ld\n", did);
11984 dispparams.cArgs = 0;
11985 dispparams.cNamedArgs = 0;
11986 dispparams.rgdispidNamedArgs =
NULL;
11987 dispparams.rgvarg = &
arg;
12000 dispparams.cArgs = 2;
12001 dispparams.cNamedArgs = 0;
12002 dispparams.rgdispidNamedArgs =
NULL;
12003 dispparams.rgvarg = &
arg;
12016 dispparams.cArgs = 1;
12017 dispparams.cNamedArgs = 0;
12018 dispparams.rgdispidNamedArgs =
NULL;
12019 dispparams.rgvarg = &
arg;
12025 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12032 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12039 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12043 dispparams.cArgs = 0;
12044 dispparams.cNamedArgs = 0;
12045 dispparams.rgdispidNamedArgs =
NULL;
12046 dispparams.rgvarg =
NULL;
12051 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12055 dispparams.cArgs = 0;
12056 dispparams.cNamedArgs = 0;
12057 dispparams.rgdispidNamedArgs =
NULL;
12058 dispparams.rgvarg =
NULL;
12068 IDispatchEx_Release(dispex);
12069 IXMLDOMElement_Release(
elem);
12072 hr = IXMLDOMDocument_get_implementation(doc, &impl);
12073 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12075 hr = IXMLDOMImplementation_QueryInterface(impl, &IID_IDispatchEx, (
void**)&dispex);
12076 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12077 IDispatchEx_Release(dispex);
12078 IXMLDOMImplementation_Release(impl);
12080 IXMLDOMDocument_Release(doc);
12084 &IID_IXMLHttpRequest, (
void**)&req);
12087 hr = IXMLHTTPRequest_QueryInterface(req, &IID_IDispatchEx, (
void**)&dispex);
12089 IXMLHTTPRequest_Release(req);
12094 hr = IXSLTemplate_QueryInterface(
template, &IID_IDispatchEx, (
void**)&dispex);
12095 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12096 hr = IDispatchEx_QueryInterface(dispex, &
IID_IUnknown, (
void**)&unk);
12097 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12099 IUnknown_Release(unk);
12100 IDispatchEx_Release(dispex);
12103 hr =
CoCreateInstance(&CLSID_FreeThreadedDOMDocument,
NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (
void**)&doc);
12104 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12107 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12108 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
12110 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
12111 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12112 IXMLDOMDocument_Release(doc);
12114 hr = IXSLTemplate_createProcessor(
template, &processor);
12115 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12116 hr = IXSLProcessor_QueryInterface(processor, &IID_IDispatchEx, (
void**)&dispex);
12117 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12118 hr = IDispatchEx_QueryInterface(dispex, &
IID_IUnknown, (
void**)&unk);
12119 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12121 IUnknown_Release(unk);
12122 IDispatchEx_Release(dispex);
12124 IXSLProcessor_Release(processor);
12125 IXSLTemplate_Release(
template);
12131 IXMLDOMDocument_Release(doc);
12139 IXMLDOMParseError2 *
error2;
12146 hr = IXMLDOMDocument_get_parseError(doc, &
error);
12147 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12158 IXMLDOMParseError_Release(
error);
12159 IXMLDOMDocument_Release(doc);
12164 hr = IXMLDOMDocument_get_parseError(doc, &
error);
12165 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12166 hr = IXMLDOMParseError_QueryInterface(
error, &IID_IXMLDOMParseError2, (
void**)&
error2);
12167 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12168 IXMLDOMParseError2_Release(
error2);
12169 IXMLDOMParseError_Release(
error);
12170 IXMLDOMDocument_Release(doc);
12185 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12187 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
12188 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12211 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12212 IXMLDOMAttribute_Release(
attr);
12218 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12219 IXMLDOMAttribute_Release(
attr);
12221 IXMLDOMElement_Release(
elem);
12222 IXMLDOMDocument_Release(doc);
12237 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12239 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
12240 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12244 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12250 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12256 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12266 hr = IXMLDOMElement_getAttribute(
elem,
_bstr_(
"non-existent"), &
var );
12271 IXMLDOMElement_Release(
elem);
12272 IXMLDOMDocument_Release(doc);
12283 {
NODE_ELEMENT,
"element", { &IID_IXMLDOMNode, &IID_IXMLDOMElement } },
12284 {
NODE_ATTRIBUTE,
"attribute", { &IID_IXMLDOMNode, &IID_IXMLDOMAttribute } },
12288 {
NODE_COMMENT,
"comment", { &IID_IXMLDOMNode, &IID_IXMLDOMComment } },
12295 static REFIID iids[5] = { &IID_IXMLDOMNode, &IID_IXMLDOMDocument,
12296 &IID_IXMLDOMDocument2, &IID_IXMLDOMDocument3 };
12299 IXMLDOMSchemaCollection *schemacache;
12313 hr = IXMLDOMDocument_QueryInterface(doc, &IID_ISupportErrorInfo, (
void**)&errorinfo);
12314 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12316 ISupportErrorInfo_AddRef(errorinfo);
12319 ISupportErrorInfo_Release(errorinfo);
12321 hr = IXMLDOMDocument_QueryInterface(doc, &IID_ISupportErrorInfo, (
void**)&info2);
12322 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12323 ok(errorinfo != info2,
"got %p, %p\n", info2, errorinfo);
12326 hr = ISupportErrorInfo_QueryInterface(info2, &IID_IXMLDOMDocument, &
dummy);
12328 hr = ISupportErrorInfo_QueryInterface(info2, &IID_IXMLDOMNode, &
dummy);
12331 ISupportErrorInfo_Release(info2);
12336 hr = IXMLDOMDocument_QueryInterface(doc, *iid, (
void**)&unk);
12337 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12340 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, *iid);
12342 IUnknown_Release(unk);
12348 ISupportErrorInfo_Release(errorinfo);
12359 ok(
hr ==
S_OK,
"%d: Unexpected hr %#lx.\n",
ptr->type,
hr);
12362 hr = IXMLDOMNode_QueryInterface(
node, &IID_ISupportErrorInfo, (
void**)&errorinfo);
12363 ok(
hr ==
S_OK,
"%d: Unexpected hr %#lx.\n",
ptr->type,
hr);
12366 hr = ISupportErrorInfo_QueryInterface(errorinfo, &IID_IXMLDOMNode, &
dummy);
12373 hr = IXMLDOMNode_QueryInterface(
node, *iid, (
void**)&unk);
12376 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, *iid);
12378 IUnknown_Release(unk);
12384 ISupportErrorInfo_Release(errorinfo);
12385 IXMLDOMNode_Release(
node);
12392 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12393 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
12395 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
12396 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12398 hr = IXMLDOMElement_get_attributes(
elem, &
map);
12399 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12402 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_ISupportErrorInfo, (
void**)&errorinfo);
12403 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12406 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, &IID_IXMLDOMNamedNodeMap);
12407 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12409 hr = ISupportErrorInfo_QueryInterface(errorinfo, &IID_IXMLDOMNamedNodeMap, (
void**)&map2);
12410 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12411 ok(
map == map2,
"got %p\n", map2);
12412 IXMLDOMNamedNodeMap_Release(map2);
12415 hr = ISupportErrorInfo_QueryInterface(errorinfo, &
IID_IUnknown, (
void**)&unk);
12416 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12419 IUnknown_Release(unk);
12421 ISupportErrorInfo_Release(errorinfo);
12422 IXMLDOMNamedNodeMap_Release(
map);
12423 IXMLDOMElement_Release(
elem);
12425 IXMLDOMDocument_Release(doc);
12428 hr =
CoCreateInstance(&CLSID_XMLSchemaCache,
NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMSchemaCollection, (
void**)&schemacache);
12429 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12431 hr = IXMLDOMSchemaCollection_QueryInterface(schemacache, &IID_ISupportErrorInfo, (
void**)&errorinfo);
12432 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12434 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, &IID_IXMLDOMSchemaCollection);
12435 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12437 ISupportErrorInfo_Release(errorinfo);
12438 IXMLDOMSchemaCollection_Release(schemacache);
12481 ok(
hr ==
S_OK,
"failed to create node type %d\n",
ptr->type);
12488 hr = IXMLDOMNode_put_nodeValue(
node,
v);
12489 ok(
hr ==
ptr->put_hr,
"%d: unexpected hr %#lx\n",
ptr->type,
hr);
12492 hr = IXMLDOMNode_get_nodeValue(
node, &
v);
12493 ok(
hr ==
ptr->get_hr,
"%d: unexpected hr %#lx, expected %#lx.\n",
ptr->type,
hr,
ptr->get_hr);
12500 IXMLDOMNode_Release(
node);
12505 IXMLDOMDocument_Release(doc);
12520 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
12521 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12524 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12526 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"xmlns:dt"), &pAttribute);
12527 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
12530 V_BSTR(&
v) =
_bstr_(
"urn:schemas-microsoft-com:datatypes");
12531 hr = IXMLDOMAttribute_put_nodeValue(pAttribute,
v);
12532 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
12534 hr = IXMLDOMElement_setAttributeNode(
root, pAttribute,
NULL);
12535 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
12538 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
12540 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
12541 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12544 hr = IXMLDOMElement_get_xml(
elem, &
str);
12545 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12546 todo_wine ok(
lstrcmpW(
str,
L"<Testing xmlns:dt=\"urn:schemas-microsoft-com:datatypes\" dt:dt=\"bin.base64\"/>") == 0,
12550 IXMLDOMElement_Release(
elem);
12551 IXMLDOMAttribute_Release( pAttribute);
12553 IXMLDOMDocument_Release(doc);
12559"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
12560" <ns1:elem1 xmlns:ns1=\"http://blah.org\" b='1' >"
12561" <ns2:elem2 xmlns:ns2=\"http://blah.org\"/>"
12564" <elem5 xmlns=\"http://blahblah.org\"/>"
12565" <ns1:elem6>true</ns1:elem6>"
12570"<?xml version='1.0'?>"
12571"<schema xmlns='http://www.w3.org/2001/XMLSchema'"
12572" targetNamespace='x-schema:test1.xsd'>"
12573" <element name='root'>"
12575" <sequence maxOccurs='unbounded'>"
12584 IXMLDOMSchemaCollection *
collection, *collection2;
12585 IXMLDOMDocument2 *doc, *doc2;
12600 hr = IXMLDOMDocument2_get_namespaces(doc,
NULL);
12605 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
12606 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12609 IXMLDOMDocument2_Release(doc);
12614 collection2 = (
void*)0xdeadbeef;
12615 hr = IXMLDOMDocument2_get_namespaces(doc, &collection2);
12616 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12617 ok(
collection == collection2,
"got %p\n", collection2);
12619 IXMLDOMSchemaCollection_Release(
collection);
12623 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12625 IXMLDOMSchemaCollection_Release(
collection);
12629 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12631 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
12632 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12636 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12640 node = (
void*)0xdeadbeef;
12642 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12645 node = (
void*)0xdeadbeef;
12647 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12653 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12660 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 0, &
s);
12661 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12665 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 1, &
s);
12666 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12670 s = (
void*)0xdeadbeef;
12671 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 2, &
s);
12673 ok(
s == (
void*)0xdeadbeef,
"got %p\n",
s);
12676 enumv = (
void*)0xdeadbeef;
12679 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12681 ok(enumv !=
NULL,
"got %p\n", enumv);
12684 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12685 hr = IEnumVARIANT_QueryInterface(enumv, &
IID_IUnknown, (
void**)&unk2);
12686 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12687 ok(
unk1 != unk2,
"got %p, %p\n",
unk1, unk2);
12688 IUnknown_Release(
unk1);
12689 IUnknown_Release(unk2);
12691 hr = IXMLDOMSchemaCollection_QueryInterface(
collection, &IID_IEnumVARIANT, (
void**)&enum2);
12695 hr = IEnumVARIANT_Next(enumv, 1, &
v[0],
NULL);
12696 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12702 hr = IEnumVARIANT_Next(enumv, 1, &
v[0], &fetched);
12703 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12704 ok(fetched == 1,
"got %ld, expected 1\n", fetched);
12710 hr = IEnumVARIANT_Next(enumv, 1, &
v[0], &fetched);
12712 ok(fetched == 0,
"got %ld, expected 0\n", fetched);
12715 hr = IEnumVARIANT_Reset(enumv);
12716 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12723 hr = IEnumVARIANT_Next(enumv, 2,
v, &fetched);
12724 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12725 ok(fetched == 2,
"got %ld, expected 2\n", fetched);
12734 hr = IEnumVARIANT_Next(enumv, 1,
v, &fetched);
12736 ok(fetched == 0,
"got %ld, expected 0\n", fetched);
12739 IEnumVARIANT_Release(enumv);
12740 IXMLDOMSchemaCollection_Release(
collection);
12741 IXMLDOMDocument2_Release(doc);
12748 hr = IXMLDOMDocument2_get_namespaces(doc,
NULL);
12753 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
12754 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12757 IXMLDOMDocument2_Release(doc);
12762 collection2 = (
void*)0xdeadbeef;
12763 hr = IXMLDOMDocument2_get_namespaces(doc, &collection2);
12764 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12765 ok(
collection == collection2,
"got %p\n", collection2);
12767 IXMLDOMSchemaCollection_Release(
collection);
12771 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12773 IXMLDOMSchemaCollection_Release(
collection);
12777 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12779 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
12780 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12784 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12788 node = (
void*)0xdeadbeef;
12796 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12802 IXMLDOMDocument2_Release(doc2);
12804 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 0, &
s);
12805 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12809 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 1, &
s);
12810 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12814 s = (
void*)0xdeadbeef;
12815 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 2, &
s);
12820 enumv = (
void*)0xdeadbeef;
12822 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12823 ok(enumv !=
NULL,
"got %p\n", enumv);
12826 hr = IEnumVARIANT_Next(enumv, 1, &
v[0],
NULL);
12827 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12833 hr = IEnumVARIANT_Next(enumv, 1, &
v[0],
NULL);
12834 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12840 hr = IEnumVARIANT_Next(enumv, 1, &
v[0],
NULL);
12844 hr = IEnumVARIANT_Reset(enumv);
12845 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12849 hr = IEnumVARIANT_Next(enumv, 2,
v, &fetched);
12850 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12851 ok(fetched == 2,
"got %ld, expected 2\n", fetched);
12860 hr = IEnumVARIANT_Next(enumv, 1,
v, &fetched);
12862 ok(fetched == 0,
"got %ld, expected 0\n", fetched);
12865 IEnumVARIANT_Release(enumv);
12866 IXMLDOMSchemaCollection_Release(
collection);
12867 IXMLDOMDocument2_Release(doc);
12904 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12911 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
12912 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12914 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12916 hr = IXMLDOMText_get_data(
text, &get_data);
12917 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12919 IXMLDOMText_Release(
text);
12926 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
12927 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12928 hr = IXMLDOMCDATASection_put_data(cdata,
data);
12929 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12931 hr = IXMLDOMCDATASection_get_data(cdata, &get_data);
12932 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12934 IXMLDOMCDATASection_Release(cdata);
12941 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMProcessingInstruction, (
void**)&
pi);
12942 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12943 hr = IXMLDOMProcessingInstruction_put_data(
pi,
data);
12944 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12946 hr = IXMLDOMProcessingInstruction_get_data(
pi, &get_data);
12947 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12949 IXMLDOMProcessingInstruction_Release(
pi);
12956 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
12957 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12959 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12961 hr = IXMLDOMComment_get_data(
comment, &get_data);
12962 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12964 IXMLDOMComment_Release(
comment);
12977 IXMLDOMNode_Release(
node);
12981 IXMLDOMDocument_Release(doc);
13000 while (
table->clsid)
13009 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13012 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13014 IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
13019 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13021 hr = IXMLDOMText_get_data(
text, &
s);
13022 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13027 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13030 hr = IXMLDOMText_get_xml(
text, &
s);
13031 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13038 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13040 hr = IXMLDOMText_get_data(
text, &
s);
13041 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13046 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13049 hr = IXMLDOMText_get_xml(
text, &
s);
13050 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13056 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<?xml version=\"1.0\"?><root>foo\n\r\n\r\r\nbar</root>"), &
b);
13057 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13059 hr = IXMLDOMDocument_get_text(doc, &
s);
13060 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13064 hr = IXMLDOMDocument_get_xml(doc, &
s);
13065 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13066 ok(!
lstrcmpW(
s,
L"<?xml version=\"1.0\"?>\r\n<root>foo\r\n\r\n\r\n\r\nbar</root>\r\n"),
13072 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<?xml version=\"1.0\"?>"
13073 "<root xml:space=\"preserve\">foo\n\r\n\r\r\nbar</root>"), &
b);
13074 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13076 hr = IXMLDOMDocument_get_text(doc, &
s);
13077 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13081 hr = IXMLDOMDocument_get_xml(doc, &
s);
13082 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13084 "<root xml:space=\"preserve\">foo\r\n\r\n\r\n\r\nbar</root>\r\n")),
13090 hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_TRUE);
13091 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13093 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<?xml version=\"1.0\"?><root>foo\n\r\n\r\r\nbar</root>"), &
b);
13094 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13096 hr = IXMLDOMDocument_get_text(doc, &
s);
13097 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13101 hr = IXMLDOMDocument_get_xml(doc, &
s);
13102 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13107 ok(!
lstrcmpW(
s,
L"<?xml version=\"1.0\"?><root>foo\r\n\r\n\r\n\r\nbar</root>"),
13112 ok(!
lstrcmpW(
s,
L"<?xml version=\"1.0\"?>\r\n<root>foo\r\n\r\n\r\n\r\nbar</root>\r\n"),
13117 IXMLDOMText_Release(
text);
13118 IXMLDOMNode_Release(
node);
13119 IXMLDOMDocument_Release(doc);
13127 IXMLDOMSchemaCollection *
cache;
13128 IXMLDOMDocument2 *doc;
13133 if (!
is_clsid_supported(&CLSID_XMLSchemaCache, &IID_IXMLDOMSchemaCollection))
return;
13141 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13142 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13146 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13147 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13152 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13153 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13156 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
13157 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13162 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13163 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13167 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
13175 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13176 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13179 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
13180 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13185 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13186 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13190 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
13195 IXMLDOMSchemaCollection_Release(
cache);
13196 IXMLDOMDocument2_Release(doc);
13216 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13218 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
13219 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13221 hr = IXMLDOMElement_get_attributes(
elem, &
map);
13222 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13223 IXMLDOMElement_Release(
elem);
13227 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IEnumVARIANT, (
void**)&enum1);
13228 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13229 ok(enum1 !=
NULL,
"got %p\n", enum1);
13234 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IEnumVARIANT, (
void**)&enum2);
13235 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13236 ok(enum2 == enum1,
"got %p\n", enum2);
13238 IEnumVARIANT_Release(enum2);
13241 hr = IXMLDOMNamedNodeMap__newEnum(
map, (
IUnknown**)&enum2);
13242 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13245 ok(enum2 != enum1,
"got %p, %p\n", enum2, enum1);
13247 IEnumVARIANT_Release(enum1);
13251 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13252 hr = IEnumVARIANT_QueryInterface(enum2, &
IID_IUnknown, (
void**)&unk2);
13253 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13256 ok(
unk1 != unk2,
"got %p, %p\n",
unk1, unk2);
13257 IUnknown_Release(
unk1);
13258 IUnknown_Release(unk2);
13260 hr = IXMLDOMNamedNodeMap__newEnum(
map, (
IUnknown**)&enum3);
13261 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13262 ok(enum2 != enum3,
"got %p, %p\n", enum2, enum3);
13263 IEnumVARIANT_Release(enum3);
13266 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &
node);
13267 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13268 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13269 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13272 IXMLDOMNode_Release(
node);
13274 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node);
13275 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13276 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13277 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13280 IXMLDOMNode_Release(
node);
13283 hr = IEnumVARIANT_Next(enum2, 1, &
v[0],
NULL);
13284 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13286 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
13287 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13288 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13289 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13292 IXMLDOMNode_Release(
node);
13295 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node);
13296 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13297 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13298 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13301 IXMLDOMNode_Release(
node);
13303 hr = IEnumVARIANT_Reset(enum2);
13304 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13308 hr = IEnumVARIANT_Next(enum2, 2,
v, &fetched);
13309 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13310 ok(fetched == 2,
"got %ld, expected 2\n", fetched);
13313 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
13314 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13315 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13316 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13319 IXMLDOMNode_Release(
node);
13320 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[1]), &IID_IXMLDOMNode, (
void**)&
node);
13321 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13322 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13323 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13326 IXMLDOMNode_Release(
node);
13333 hr = IEnumVARIANT_Next(enum2, 3,
v, &fetched);
13335 ok(fetched == 2,
"got %ld, expected 2\n", fetched);
13339 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
13340 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13341 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13342 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13345 IXMLDOMNode_Release(
node);
13349 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[1]), &IID_IXMLDOMNode, (
void**)&
node);
13350 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13351 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13352 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13355 IXMLDOMNode_Release(
node);
13361 IEnumVARIANT_Release(enum2);
13363 IXMLDOMNamedNodeMap_Release(
map);
13364 IXMLDOMDocument_Release(doc);
13368"<?xml version=\"1.0\"?>"
13369"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >"
13370"<xsl:output method=\"html\" encoding=\"us-ascii\"/>"
13371"<xsl:template match=\"/\">"
13373" <xsl:when test=\"testkey\">"
13374" <xsl:text>testdata</xsl:text>"
13378"</xsl:stylesheet>";
13381"<?xml version=\"1.0\"?>"
13382"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >"
13383"<xsl:output method=\"xml\" omit-xml-declaration=\"yes\"/>"
13384"<xsl:template match=\"/\">"
13385" <xsl:for-each select=\"/a/item\">"
13386" <xsl:element name=\"node\">"
13387" <xsl:value-of select=\"@name\"/>"
13391"</xsl:stylesheet>";
13394"<?xml version=\"1.0\"?>"
13396" <item name=\"item1\"/>"
13397" <item name=\"item2\"/>"
13411 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13413 hr = IXMLDOMDocument_loadXML(doc2,
_bstr_(
"<testkey/>"), &
b);
13414 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13417 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13423 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13425 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13428 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13432 IXMLDOMDocument_Release(doc2);
13433 IXMLDOMDocument_Release(doc);
13445 {
"xmlns",
"http://www.w3.org/2000/xmlns/",
"xmlns",
"xmlns" },
13446 {
"xmlns",
"nondefaulturi",
"xmlns",
"xmlns" },
13447 {
"c",
"http://www.w3.org/2000/xmlns/",
NULL,
"http://www.w3.org/2000/xmlns/" },
13448 {
"c",
"nsref1",
NULL,
"nsref1" },
13449 {
"ns:c",
"nsref1",
"ns",
"nsref1" },
13450 {
"xmlns:c",
"http://www.w3.org/2000/xmlns/",
"xmlns",
"" },
13451 {
"xmlns:c",
"nondefaulturi",
"xmlns",
"" },
13474 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13477 hr = IXMLDOMNode_get_prefix(
node, &
str);
13480 ok(
hr ==
S_OK,
"%d: unexpected hr %#lx\n",
i,
hr);
13491 hr = IXMLDOMNode_get_namespaceURI(
node, &
str);
13492 ok(
hr ==
S_OK,
"%d: unexpected hr %#lx\n",
i,
hr);
13496 IXMLDOMNode_Release(
node);
13505 hr = IXMLDOMDocument_createNode(doc,
var,
_bstr_(
"e"),
NULL, &node2);
13506 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13508 hr = IXMLDOMNode_QueryInterface(node2, &IID_IXMLDOMElement, (
void**)&el);
13509 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13510 IXMLDOMNode_Release(node2);
13514 hr = IXMLDOMDocument_createNode(doc,
var,
_bstr_(
"xmlns:a"),
_bstr_(
"http://www.w3.org/2000/xmlns/"), &
node);
13515 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13518 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13521 hr = IXMLDOMNode_get_namespaceURI(
node, &
str);
13522 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13526 IXMLDOMNode_Release(
node);
13527 IXMLDOMElement_Release(el);
13528 IXMLDOMDocument_Release(doc);
13540 hr = IXMLDOMDocument_get_url(doc,
NULL);
13543 s = (
void *)0xdeadbeef;
13544 hr = IXMLDOMDocument_get_url(doc, &
s);
13548 IXMLDOMDocument_Release(doc);
13565 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
13566 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13569 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13572 for (
i = 0;
i < 10;
i++)
13575 hr = IXMLDOMDocument_createTextNode(doc,
str, &nodetext);
13577 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13581 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13582 ok(nodetext == newtext,
"expected %p, got %p\n", nodetext, newtext);
13584 IXMLDOMText_Release(newtext);
13585 IXMLDOMText_Release(nodetext);
13589 hr = IXMLDOMElement_get_firstChild(
root, &
first);
13590 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13593 for (
i = 0;
i < 10;
i++)
13596 hr = IXMLDOMDocument_createTextNode(doc,
str, &nodetext);
13598 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13602 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13603 ok(nodetext == newtext,
"expected %p, got %p\n", nodetext, newtext);
13605 IXMLDOMText_Release(newtext);
13606 IXMLDOMText_Release(nodetext);
13609 IXMLDOMNode_Release(
first);
13610 IXMLDOMElement_Release(
root);
13611 IXMLDOMDocument_Release(doc);
13666 ok(
hr ==
S_OK,
"Failed to load document, hr %#lx.\n",
hr);
13668 ok(
hr ==
S_OK,
"Failed to load document, hr %#lx.\n",
hr);
13672 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13677 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13682 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13687 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13688 ok(
hr ==
S_OK,
"Failed to transform node, hr %#lx.\n",
hr);
13694 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13695 ok(
hr ==
S_OK,
"Failed to transform node, hr %#lx.\n",
hr);
13699 ok(
hr ==
S_OK,
"Failed to seek, hr %#lx.\n",
hr);
13704 ok(
hr ==
S_OK,
"Failed to read, hr %#lx.\n",
hr);
13713 hr = IStream_QueryInterface(
istream, &IID_ISequentialStream, (
void**)&sstream);
13722 ok(
hr ==
S_OK,
"Failed to QI, hr %#lx.\n",
hr);
13726 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13727 ok(
hr ==
S_OK,
"Failed to transform node, hr %#lx.\n",
hr);
13731 ok(
hr ==
S_OK,
"Failed to seek, hr %#lx.\n",
hr);
13735 hr = ISequentialStream_Read(sstream,
buffer,
sizeof(
buffer), &nread);
13736 ok(
hr ==
S_OK,
"Failed to read, hr %#lx.\n",
hr);
13740 ISequentialStream_Release(sstream);
13746 IXMLDOMDocument_Release(doc3);
13747 IXMLDOMDocument_Release(doc2);
13748 IXMLDOMDocument_Release(doc);
13754 IXMLDOMDocument2 *doc;
13760 win_skip(
"NormalizeAttributeValues is not supported.\n");
13768 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"NormalizeAttributeValues"), &
var);
13770 ok(
hr ==
S_OK,
"Failed to get property value, hr %#lx.\n",
hr);
13772 ok(
V_BOOL(&
var) == VARIANT_FALSE,
"Unexpected property value.\n");
13776 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"NormalizeAttributeValues"),
var);
13777 ok(
hr ==
S_OK,
"Failed to set property, hr %#lx.\n",
hr);
13781 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"NormalizeAttributeValues"), &
var);
13783 ok(
hr ==
S_OK,
"Failed to get property value, hr %#lx.\n",
hr);
13785 ok(
V_BOOL(&
var) == VARIANT_TRUE,
"Unexpected property value.\n");
13787 IXMLDOMDocument2_Release(doc);
13792 IXMLDOMDocument2 *doc;
13801 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"MaxElementDepth"), &
var);
13803 ok(
hr ==
S_OK,
"Failed to get property value, hr %#lx.\n",
hr);
13805 ok(
V_I4(&
var) == 256,
"Unexpected property value.\n");
13811 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"MaxElementDepth"),
var);
13812 ok(
hr ==
S_OK,
"Failed to set property, hr %#lx.\n",
hr);
13816 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"MaxElementDepth"), &
var);
13818 ok(
hr ==
S_OK,
"Failed to get property value, hr %#lx.\n",
hr);
13820 ok(
V_I4(&
var) == 32,
"Unexpected property value.\n");
13823 IXMLDOMDocument2_Release(doc);
13833 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2" },
13834 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26" },
13835 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30" },
13846 const char *
names[3];
13848 const char *basenames[3];
13849 const char *uris[3];
13850 const char *texts[3];
13851 const char *xmls[3];
13855 "<a ns:b=\"b attr\" d=\"d attr\" xmlns:ns=\"nshref\" />", 3,
13856 {
"ns:b",
"d",
"xmlns:ns" },
13857 {
"ns",
NULL,
"xmlns" },
13858 {
"b",
"d",
"ns" },
13859 {
"nshref",
NULL,
"" },
13860 {
"b attr",
"d attr",
"nshref" },
13861 {
"ns:b=\"b attr\"",
"d=\"d attr\"",
"xmlns:ns=\"nshref\"" },
13865 "<a d=\"d attr\" />", 1,
13871 {
"d=\"d attr\"" },
13875 "<a xmlns:ns=\"nshref\" />", 1,
13881 {
"xmlns:ns=\"nshref\"" },
13885 "<a xmlns=\"nshref\" />", 1,
13891 {
"xmlns=\"nshref\"" },
13909 while (
entry->guid)
13918 while (
test->xml) {
13923 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13926 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"a"), &
node);
13927 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13929 hr = IXMLDOMNode_get_attributes(
node, &
map);
13930 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13933 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len);
13934 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13938 hr = IXMLDOMNamedNodeMap_get_item(
map,
test->explen+1, &
item);
13940 ok(!
item,
"Item should be NULL\n");
13942 for (
i = 0;
i <
len;
i++)
13945 hr = IXMLDOMNamedNodeMap_get_item(
map,
i, &
item);
13946 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13950 ok(0,
"item is NULL at index %ld\n",
i);
13955 hr = IXMLDOMNode_get_nodeName(
item, &
str);
13956 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13961 hr = IXMLDOMNode_get_prefix(
item, &
str);
13962 if (
test->prefixes[
i])
13964 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13972 hr = IXMLDOMNode_get_baseName(
item, &
str);
13973 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13978 hr = IXMLDOMNode_get_namespaceURI(
item, &
str);
13981 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13993 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13999 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
14003 IXMLDOMNode_Release(
item);
14006 IXMLDOMNamedNodeMap_Release(
map);
14007 IXMLDOMNode_Release(
node);
14008 IXMLDOMDocument_Release(doc);
14078 if (
IsEqualGUID(service, &SID_SContainerDispatch) ||
14079 IsEqualGUID(service, &SID_SInternetHostSecurityManager))
14107 IXMLDOMDocument2 *doc;
14120 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
14124 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
14127 ok(
qi_list_contains(&IID_IXMLDOMDocument),
"QI(IID_IXMLDOMDocument) was not called\n");
14128 ok(
qi_list_contains(&IID_IHTMLDocument2),
"QI(IID_IHTMLDocument2) was not called\n");
14129 ok(
qi_list_contains(&IID_IServiceProvider),
"QI(IID_IServiceProvider) was not called\n");
14133 "QI(SID_SContainerDispatch, IID_IHTMLDocument2) was not called\n");
14136 "QI(SID_SInternetHostSecurityManager, IID_IXMLDOMDocument) was not called\n");
14141 hr = IXMLDOMDocument2_load(doc,
var, &
b);
14142 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
14143 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
14146 IXMLDOMDocument2_Release(doc);
14162 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
E_FAIL },
14163 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26",
E_FAIL },
14164 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
E_FAIL },
14165 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
S_OK },
14166 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
S_OK },
14175 while (
entry->guid)
14177 IXMLDOMDocument2 *doc, *doc_clone;
14195 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"ValidateOnParse"), &
var);
14208 win_skip(
"Skip tests for CLSID_DOMDocument40 on Windows 8.\n");
14209 IXMLDOMDocument2_Release(doc);
14216 hr = IXMLDOMDocument2_get_validateOnParse(doc, &
b);
14218 ok(
b == VARIANT_TRUE,
"%d: got property value %d.\n",
i,
b);
14222 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"ValidateOnParse"),
var);
14226 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"ValidateOnParse"), &
var);
14236 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"ValidateOnParse"),
var);
14239 hr = IXMLDOMDocument2_get_validateOnParse(doc, &
b);
14241 ok(
b == VARIANT_TRUE,
"%d: got property value %d.\n",
i,
b);
14245 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"ValidateOnParse"), &
var);
14254 hr = IXMLDOMDocument2_put_validateOnParse(doc,
b);
14258 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"ValidateOnParse"), &
var);
14267 hr = IXMLDOMDocument2_cloneNode(doc, VARIANT_TRUE, &node_clone);
14269 ok(node_clone !=
NULL,
"%d: got node %p.\n",
i, node_clone);
14270 hr = IXMLDOMNode_QueryInterface(node_clone, &IID_IXMLDOMDocument2, (
void **)&doc_clone);
14274 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"ValidateOnParse"), &
var);
14282 V_I2(&var_clone) = 10;
14283 hr = IXMLDOMDocument2_getProperty(doc_clone,
_bstr_(
"ValidateOnParse"), &var_clone);
14287 ok(
V_VT(&var_clone) ==
V_VT(&
var),
"%d: got property value type %d.\n",
i,
V_VT(&var_clone));
14291 hr = IXMLDOMDocument2_get_validateOnParse(doc_clone, &
b);
14293 ok(
b == VARIANT_FALSE,
"%d: got property value %d.\n",
i,
b);
14294 IXMLDOMNode_Release(node_clone);
14295 IXMLDOMDocument2_Release(doc_clone);
14297 IXMLDOMDocument2_Release(doc);
14307 const WCHAR *data_expected;
14318 ok(
hr ==
S_OK,
"Unable to create instance hr %#lx.\n",
hr);
14319 hr = IXMLDOMDocument_loadXML(doc,
str, &
b);
14320 ok(
hr ==
S_OK,
"Unable to load XML hr %#lx.\n",
hr);
14321 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
14322 ok(
hr ==
S_OK,
"Unable to get element hr %#lx.\n",
hr);
14324 ok(
hr ==
S_OK,
"Unable to get XML hr %#lx.\n",
hr);
14326 data_expected =
L"<root>\r\n"
14339 ok(
hr ==
S_OK,
"failed to init com\n");
14340 if (
hr !=
S_OK)
return 1;
14354 ok(
hr ==
S_OK,
"failed to init com\n");
14360 win_skip(
"DOMDocument2 is not supported. Skipping all tests.\n");
basic_istream< char, char_traits< char > > istream
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
static unsigned char bytes[4]
#define InterlockedIncrement
#define InterlockedDecrement
static const WCHAR nameW[]
#define ReadFile(a, b, c, d, e)
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define FILE_ATTRIBUTE_NORMAL
#define MultiByteToWideChar
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI GetHGlobalFromStream(IStream *pstm, HGLOBAL *phglobal)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
HRESULT WINAPI SafeArrayGetUBound(SAFEARRAY *psa, UINT nDim, LONG *plUbound)
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
HRESULT WINAPI SafeArrayUnlock(SAFEARRAY *psa)
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
UINT WINAPI SafeArrayGetDim(SAFEARRAY *psa)
SAFEARRAY *WINAPI SafeArrayCreateVector(VARTYPE vt, LONG lLbound, ULONG cElements)
HRESULT WINAPI SafeArrayGetLBound(SAFEARRAY *psa, UINT nDim, LONG *plLbound)
HRESULT WINAPI SafeArrayDestroyData(SAFEARRAY *psa)
static unsigned char buff[32768]
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLboolean GLboolean GLboolean b
GLenum const GLfloat * params
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLuint GLsizei const GLvoid GLenum preserve
GLenum GLenum GLenum input
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
static ERESOURCE GlobalLock
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define todo_wine_if(is_todo)
#define memcpy(s1, s2, n)
static struct test_info tests[]
#define comment(fmt, arg1)
const IID IID_IObjectWithSite
static IActiveScriptSite * site
static void get_str_for_type(DOMNodeType type, char *buf)
static const IID * qi_list[32]
static void test_put_data(void)
static HRESULT WINAPI istream_Commit(IStream *iface, DWORD flags)
static void test_xmlns_attribute(void)
static void test_get_xml(void)
static void test_put_nodeValue(void)
static int g_expectedcall
#define create_cache(iid)
static const char namespacesA[]
static HRESULT WINAPI response_AppendToLog(IResponse *iface, BSTR bstrLogEntry)
static VARIANT _variantbstr_(const char *str)
static const char nocontent[]
static const CHAR szTypeValueXML[]
static BSTR _bstr_(const char *str)
static HRESULT WINAPI response_get_CacheControl(IResponse *iface, BSTR *pbstrCacheControl)
#define check_set_props(doc)
static HRESULT WINAPI response_get_Status(IResponse *iface, BSTR *pbstrStatusRet)
static void test_getQualifiedItem(void)
static const CHAR szTransformXML[]
static IResponse testresponse
static void test_whitespace(void)
static const char win936xml[]
static HRESULT WINAPI sp_QueryService(IServiceProvider *iface, REFGUID service, REFIID iid, void **ppv)
static const char szExampleXML[]
static void test_get_lastChild(void)
static void test_get_prefix(void)
static void test_get_childNodes(void)
static HRESULT WINAPI response_get_CharSet(IResponse *iface, BSTR *pbstrCharSetRet)
static const ns_item_t qualified_item_tests[]
static const CHAR szEmailXML_15[]
static int g_unexpectedcall
#define XML_E_UNEXPECTED_ATTRIBUTE
static HRESULT WINAPI istream_Seek(IStream *iface, LARGE_INTEGER move, DWORD origin, ULARGE_INTEGER *new_pos)
static void test_get_doctype(void)
#define expect_node(node, expstr)
static void test_appendChild(void)
static void test_removeNamedItem(void)
static BSTR alloced_bstrs[256]
static ULONG WINAPI sp_AddRef(IServiceProvider *iface)
static void test_getAttribute(void)
static const CHAR szEmailXML_0D[]
static const node_value_t nodevalue_test[]
#define helper_expect_list_and_release(list, expstr)
static HRESULT WINAPI istream_CopyTo(IStream *iface, IStream *stream, ULARGE_INTEGER len, ULARGE_INTEGER *pread, ULARGE_INTEGER *written)
static void test_get_dataType(void)
static const IResponseVtbl testresponsevtbl
static void test_save(void)
static void _test_IObjectSafety_set(unsigned line, IObjectSafety *safety, HRESULT result, HRESULT result2, DWORD set, DWORD mask, DWORD expected, DWORD expected2)
static const property_test_t properties_test_data[]
static HRESULT WINAPI response_Clear(IResponse *iface)
static ULONG WINAPI istream_Release(IStream *iface)
static HRESULT WINAPI response_put_Status(IResponse *iface, BSTR bstrStatus)
static void test_get_namespaces(void)
static const CHAR szNodeTypesXML[]
static const char * leading_spaces_xmldata[]
static dispevent * impl_from_IDispatch(IDispatch *iface)
struct _namespace_as_attribute_t namespace_as_attribute_t
static const IServiceProviderVtbl sp_vtbl
static const refcount_test_t refcount_test[]
static void write_to_file(const char *name, const char *data)
static HRESULT WINAPI response_put_CodePage(IResponse *iface, LONG codepage)
static void test_get_ownerDocument(void)
static void test_setAttributeNode(void)
static void test_refs(void)
static const struct namespaces_change_t namespaces_change_test_data[]
static HRESULT WINAPI sp_QueryInterface(IServiceProvider *iface, REFIID iid, void **ppv)
#define helper_ole_check_ver(expr)
static void check_interface_(unsigned int line, void *iface_ptr, REFIID iid, BOOL supported)
#define EXPECT_CHILDREN(node)
static const xslpattern_test_t xslpattern_test_no_ns[]
static HRESULT WINAPI dispevent_GetTypeInfo(IDispatch *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static DWORD WINAPI new_thread(void *arg)
#define create_document_version(v, iid)
static void test_validate_on_parse_values(void)
static ULONG WINAPI sp_Release(IServiceProvider *iface)
static char * list_to_string(IXMLDOMNodeList *list)
static void get_class_support_data(struct msxmlsupported_data_t *table)
static void test_get_text(void)
static const char win1252decl[]
static void _expect_parse_error(IXMLDOMDocument *doc, HRESULT hr_exp, BOOL hr_todo, int line)
static HRESULT WINAPI response_IsClientConnected(IResponse *iface, VARIANT_BOOL *pfIsClientConnected)
static const CHAR szTransformSSXML[]
static void node_to_string(IXMLDOMNode *node, char *buf)
static void test_domobj_dispex(IUnknown *obj)
static int get_node_position(IXMLDOMNode *node)
static void test_nodeValue(void)
static const CHAR szEmailXML_11[]
static BSTR alloc_str_from_narrow(const char *str)
static void test_selectSingleNode(void)
static void test_put_dataType(void)
#define set_props(doc, cache)
static const CHAR szEmailXML_20[]
static void test_transformNodeToObject(void)
static const namespace_as_attribute_t namespace_as_attribute_test_data[]
static const ns_item_t named_item_tests[]
static void test_mxnamespacemanager(void)
static HRESULT WINAPI dispevent_Invoke(IDispatch *iface, DISPID member, REFIID riid, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *result, EXCEPINFO *excepInfo, UINT *argErr)
static void test_get_attributes(void)
static void test_testTransforms(void)
static const validate_on_parse_test_t validate_on_parse_tests[]
#define helper_expect_bstr_and_release(bstr, str)
static void test_create(void)
static HRESULT WINAPI response_WriteBlock(IResponse *iface, short iBlockNumber)
static struct msxmlsupported_data_t domdoc_support_data[]
static void test_domdoc(void)
static void test_max_element_depth_values(void)
static void test_domnode(void)
static void test_nodeTypedValue(void)
static const char xsltext_xsl[]
#define EXPECT_REF(node, ref)
static HRESULT WINAPI response_GetTypeInfo(IResponse *iface, UINT ti, LCID lcid, ITypeInfo **tinfo)
static HRESULT WINAPI response_get_Buffer(IResponse *iface, VARIANT_BOOL *fIsBuffering)
static void _set_props(int line, IXMLDOMDocument2 *doc, IXMLDOMSchemaCollection *cache)
static void test_get_firstChild(void)
static HRESULT WINAPI response_get_CodePage(IResponse *iface, LONG *plvar)
static void _expect_ref(IUnknown *obj, ULONG ref, int line)
static void test_getAttributeNode(void)
static struct attrtest_t attrtests[]
static const struct whitespace_t whitespace_test_data[]
static void _unset_props(int line, IXMLDOMDocument2 *doc)
static put_datatype_t put_datatype_data[]
static void test_normalize_attribute_values(void)
static void test_namespaces_change(void)
static HRESULT WINAPI response_Write(IResponse *iface, VARIANT varText)
static const char charrefsxml[]
static HRESULT WINAPI response_put_ContentType(IResponse *iface, BSTR bstrContentType)
static void test_getElementsByTagName(void)
static int alloced_bstrs_count
static HRESULT WINAPI response_QI(IResponse *iface, REFIID riid, void **obj)
static const CHAR szEmailXML[]
static ULONG WINAPI transformdest_Release(IUnknown *iface)
static void test_IObjectSafety(void)
static void test_namespaces_as_attributes(void)
static HRESULT WINAPI response_get_LCID(IResponse *iface, LONG *lcid)
static ULONG WINAPI dispevent_AddRef(IDispatch *iface)
struct _validate_on_parse_test_t validate_on_parse_test_t
static HRESULT WINAPI response_put_Buffer(IResponse *iface, VARIANT_BOOL fIsBuffering)
static const CHAR szEmailXML_18[]
static void _check_ws_ignored(int line, const char *ver, IXMLDOMDocument2 *doc, char const *str)
static HRESULT WINAPI dispevent_QueryInterface(IDispatch *iface, REFIID riid, void **ppvObject)
static void free_bstrs(void)
struct _property_test_t property_test_t
static const nodetypedvalue_t get_nodetypedvalue[]
static const DOMNodeType put_data_types[]
static void _test_doc_load_from_path(IXMLDOMDocument *doc, const char *path, HRESULT expected_hr, VARIANT_BOOL expected_ret, int line)
static HRESULT WINAPI response_AddHeader(IResponse *iface, BSTR bstrHeaderName, BSTR bstrHeaderValue)
static void test_cloneNode(void)
static void test_insertBefore(void)
static const get_attributes_t get_attributes[]
static void test_supporterrorinfo(void)
static void test_newline_normalization(void)
static ULONG WINAPI transformdest_AddRef(IUnknown *iface)
static void test_persiststream(void)
static HRESULT WINAPI response_put_Expires(IResponse *iface, LONG lExpiresMinutes)
static HRESULT WINAPI response_Flush(IResponse *iface)
#define EXPECT_LIST_LEN(list, len)
static HRESULT WINAPI istream_LockRegion(IStream *iface, ULARGE_INTEGER offset, ULARGE_INTEGER len, DWORD locktype)
static const char win1252xml[]
static const CHAR szEmailXML_0E[]
static HRESULT WINAPI dispevent_GetTypeInfoCount(IDispatch *iface, UINT *pctinfo)
static HRESULT WINAPI istream_Revert(IStream *iface)
static void _test_IObjectSafety_common(unsigned line, IObjectSafety *safety)
static void _expect_no_children(IXMLDOMNode *node, int line)
static void test_preserve_charref(IXMLDOMDocument2 *doc, VARIANT_BOOL preserve)
static void test_parseerror(void)
static HRESULT WINAPI response_put_ExpiresAbsolute(IResponse *iface, DATE dtExpires)
static const DOMNodeType nodetypes_test[]
static HRESULT WINAPI response_GetTypeInfoCount(IResponse *iface, UINT *count)
static void test_createNode(void)
static HRESULT WINAPI response_Invoke(IResponse *iface, DISPID dispid, REFIID riid, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *result, EXCEPINFO *ei, UINT *argerr)
static void test_createProcessingInstruction(void)
static const WCHAR nonexistent_fileW[]
#define expect_eq(expr, value, type, format)
#define EXPECT_PARSE_ERROR(doc, hr_exp, hr_todo)
static IDispatch * create_dispevent(void)
static void test_replaceChild(void)
static void test_url(void)
static const xslpattern_test_t xslpattern_test[]
static const WCHAR szComplete5[]
static HRESULT WINAPI response_put_CharSet(IResponse *iface, BSTR bstrCharSet)
#define expect_list_and_release(list, expstr)
static const xslpattern_test_t xslpattern_test_func[]
static void * _create_object(const GUID *clsid, const char *name, const IID *iid, int line)
static void test_xmlTypes(void)
static const CHAR szEmailXML_17[]
#define check_default_props(doc)
static HRESULT WINAPI dispevent_GetIDsOfNames(IDispatch *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static void _expect_children(IXMLDOMNode *node, int line)
static HRESULT WINAPI istream_SetSize(IStream *iface, ULARGE_INTEGER size)
static ULONG WINAPI response_Release(IResponse *iface)
static ULONG WINAPI dispevent_Release(IDispatch *iface)
static void test_removeChild(void)
static HRESULT WINAPI response_Pics(IResponse *iface, BSTR bstrHeaderValue)
static HRESULT WINAPI response_get_ContentType(IResponse *iface, BSTR *pbstrContentTypeRet)
static void test_XPath(void)
static const WCHAR szStrangeChars[]
static ULONG WINAPI istream_AddRef(IStream *iface)
static void test_xsltext(void)
static const node_type_t get_datatype[]
static const char omitxmldecl_xsl[]
static HRESULT WINAPI response_put_CacheControl(IResponse *iface, BSTR bstrCacheControl)
static void test_putref_schemas(void)
struct _get_attributes_t get_attributes_t
static const CHAR szBasicTransformSSXMLPart1[]
static BOOL qi_list_contains_service(REFIID service, REFIID iid)
static const char default_ns_doc[]
static const CHAR szEmailXML_14[]
static put_datatype_notype_t put_dt_notype[]
static HRESULT WINAPI response_get_ExpiresAbsolute(IResponse *iface, VARIANT *pvarExpiresRet)
static void test_mxnamespacemanager_override(void)
#define TEST_DOC_LOAD_FROM_PATH(doc, path, expected_hr, expected_ret)
static void test_indent(void)
#define create_document(iid)
static void test_namedmap_newenum(void)
static HRESULT WINAPI response_GetIDsOfNames(IResponse *iface, REFIID riid, LPOLESTR *names, UINT cnames, LCID lcid, DISPID *rgDispId)
static void test_xsltemplate(void)
static const char xpath_simple_list[]
static ULONG WINAPI response_AddRef(IResponse *iface)
static void test_merging_text(void)
static void test_load(void)
static HRESULT WINAPI response_put_LCID(IResponse *iface, LONG lcid)
#define test_IObjectSafety_set(p, r, r2, s, m, e, e2)
static HRESULT WINAPI response_Add(IResponse *iface, BSTR bstrHeaderValue, BSTR bstrHeaderName)
#define check_ws_ignored(ver, doc, str)
static void test_load_with_site(void)
static void test_default_properties(void)
static const CHAR szEmailXML_13[]
static const char xsd_schema1_uri[]
static HRESULT WINAPI istream_QueryInterface(IStream *iface, REFIID riid, void **ppvObject)
struct _nodetypedvalue_t nodetypedvalue_t
#define EXPECT_NO_CHILDREN(node)
static void test_create_attribute(void)
static const IStreamVtbl StreamVtbl
static HRESULT WINAPI istream_Read(IStream *iface, void *ptr, ULONG len, ULONG *pread)
static const selection_ns_t selection_ns_data[]
static HRESULT WINAPI response_get_Cookies(IResponse *iface, IRequestDictionary **ppCookies)
static HRESULT WINAPI istream_Clone(IStream *iface, IStream **stream)
static void test_get_nodeTypeString(void)
static void _check_default_props(int line, IXMLDOMDocument2 *doc)
static void test_IXMLDOMDocument2(void)
static void test_events(void)
static IStream savestream
#define check_interface(a, b, c)
static HRESULT WINAPI istream_Stat(IStream *iface, STATSTG *pstatstg, DWORD flag)
static const get_node_typestring_t get_node_typestring[]
static void test_put_nodeTypedValue(void)
static void _expect_list_len(IXMLDOMNodeList *list, LONG len, int line)
static BOOL qi_list_contains(REFIID iid)
static const supporterror_t supporterror_test[]
static HRESULT WINAPI istream_Write(IStream *iface, const void *ptr, ULONG len, ULONG *written)
static void _check_set_props(int line, IXMLDOMDocument2 *doc)
static BOOL is_clsid_supported(const GUID *clsid, REFIID riid)
static HRESULT WINAPI response_BinaryWrite(IResponse *iface, VARIANT input)
static const struct leading_spaces_t leading_spaces_classdata[]
static const char attributes_map[]
static IServiceProvider sp
static const IUnknownVtbl transformdestvtbl
static const struct queryresult_t elementsbytagname[]
static void test_removeQualifiedItem(void)
static const CHAR szEmailXML_16[]
static const char get_prefix_doc[]
static void test_selection(void)
static const char iso8859_1_xml[]
static void test_get_tagName(void)
static const char omitxmldecl_doc[]
static const char * strip_spaces(const char *str)
static void url_forward_slash(char *url)
static HRESULT WINAPI response_Redirect(IResponse *iface, BSTR bstrURL)
static const char xsd_schema1_xml[]
static void test_FormattingXML(void)
static const char complete7[]
static const CHAR szBasicTransformXML[]
static void test_namespaces_basic(void)
static void _check_ws_preserved(int line, const char *ver, IXMLDOMDocument2 *doc, char const *str)
#define check_ws_preserved(ver, doc, str)
static void test_splitText(void)
struct _get_node_typestring_t get_node_typestring_t
static const WCHAR szComplete1[]
#define create_xsltemplate(iid)
static HRESULT WINAPI istream_UnlockRegion(IStream *iface, ULARGE_INTEGER offset, ULARGE_INTEGER len, DWORD locktype)
#define expect_bstr_eq_and_free(bstr, expect)
static HRESULT WINAPI response_get_Expires(IResponse *iface, VARIANT *pvarExpiresMinutesRet)
static BOOL compareIgnoreReturns(BSTR sLeft, BSTR sRight)
static HRESULT WINAPI transformdest_QueryInterface(IUnknown *iface, REFIID riid, void **obj)
static void test_dispex(void)
static const CHAR szBasicTransformSSXMLPart2[]
static const CHAR szTransformOutput[]
static const char gbkxml[]
static const char * debugstr_msxml_guid(REFIID riid)
static const xpath_test_t xpath_test[]
#define test_IObjectSafety_common(s)
static void test_XSLPattern(void)
static const char complete4A[]
static const CHAR szBasicTransformOutput[]
static HRESULT WINAPI response_End(IResponse *iface)
static void test_TransformWithLoadingLocalFile(void)
static const IDispatchVtbl dispeventVtbl
#define XML_E_INVALIDATROOTLEVEL
static ICollection collection
static VARIANTARG static DISPID
static const WCHAR url2[]
ssize_t pread(int fd, void *buf, size_t count, off_t offset)
static const WCHAR path2[]
#define DISPID_XMLDOM_NODELIST_RESET
#define DISPID_DOM_COLLECTION_BASE
#define DISPID_DOM_NODELIST_LENGTH
const struct _GUID CLSID_DOMDocument
const struct _GUID CLSID_XMLHTTPRequest
_In_ LPWSTR _In_ DWORD _In_ LPCVOID pvData
#define LOCALE_SYSTEM_DEFAULT
#define MAKELCID(lgid, srtid)
BSTR WINAPI SysAllocString(LPCOLESTR str)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI DECLSPEC_HOTPATCH SysAllocStringByteLen(LPCSTR str, UINT len)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
#define VARIANT_NOUSEROVERRIDE
#define DISPATCH_PROPERTYGET
const GUID IID_IConnectionPointContainer
const GUID IID_IPropertyNotifySink
const GUID IID_IOleClientSite
const GUID IID_IPersistStreamInit
const GUID IID_IPersistStream
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
#define IsEqualCLSID(rclsid1, rclsid2)
static unsigned __int64 next
IStream *WINAPI SHCreateMemStream(const BYTE *lpbData, UINT dwDataLen)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
const char int int int static __inline const char * wine_dbgstr_a(const char *s)
static __inline const char * wine_dbgstr_guid(const GUID *id)
#define _WIN32_WINNT_VISTA
IDispatch IDispatch_iface
struct docload_ret_t ret[2]
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Character const *const prefix
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI VariantChangeTypeEx(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, LCID lcid, USHORT wFlags, VARTYPE vt)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantChangeType(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
void WINAPI VariantInit(VARIANTARG *pVarg)
static const WCHAR props[]
#define success(from, fromstr, to, tostr)
DWORD WINAPI GetLastError(void)
WINBASEAPI _In_ DWORD nLength
_In_ ULONG _In_ ULONG_PTR ident
#define DISP_E_BADPARAMCOUNT
#define DISP_E_MEMBERNOTFOUND
#define DISP_E_TYPEMISMATCH
#define DISP_E_UNKNOWNNAME
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)
enum tagDOMNodeType DOMNodeType
@ NODE_PROCESSING_INSTRUCTION