47#undef CLSID_DOMDocument
49DEFINE_GUID(
GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
50DEFINE_GUID(IID_transformdest_unknown,0xf5078f3a,0xc551,0x11d3,0x89,0xb9,0x00,0x00,0xf8,0x1f,0xe2,0x21);
64 { &
CLSID_DOMDocument,
"DOMDocument", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
65 { &CLSID_DOMDocument2,
"DOMDocument2", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
66 { &CLSID_DOMDocument30,
"DOMDocument30", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
67 { &CLSID_DOMDocument40,
"DOMDocument40", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
68 { &CLSID_DOMDocument60,
"DOMDocument60", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2, &IID_IXMLDOMDocument3} },
69 { &CLSID_FreeThreadedDOMDocument,
"FreeThreadedDOMDocument", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
70 { &CLSID_XMLSchemaCache,
"XMLSchemaCache", {&IID_IXMLDOMSchemaCollection} },
71 { &CLSID_XSLTemplate,
"XSLTemplate", {&IID_IXSLTemplate} },
72 { &CLSID_MXNamespaceManager40,
"MXNamespaceManager40", {&IID_IMXNamespaceManager} },
82 return "IXMLDOMDocument";
84 return "IXMLDOMDocument2";
86 return "IXMLDOMDocument3";
88 return "IXMLDOMSchemaCollection";
90 return "IXSLTemplate";
92 return "IMXNamespaceManager";
108 if (
hr ==
S_OK) IUnknown_Release(unk);
159 IDispatch_AddRef( iface );
204 EXCEPINFO *excepInfo,
UINT *argErr)
216 ok(excepInfo ==
NULL,
"got %p\n", excepInfo);
217 ok(argErr ==
NULL,
"got %p\n", argErr);
241 return (
IDispatch*)&
event->IDispatch_iface;
270 ok(0,
"unexpected call\n");
282 ok(0,
"unexpected call\n");
288 ok(0,
"unexpected call\n");
295 ok(0,
"unexpected call\n");
301 ok(0,
"unexpected call\n");
307 ok(0,
"unexpected call\n");
314 ok(0,
"unexpected call\n");
321 ok(0,
"unexpected call\n");
327 ok(0,
"unexpected call\n");
333 ok(0,
"unexpected call\n");
367 ok(0,
"unexpected call\n");
383 ok(0,
"unexpected call\n");
389 ok(0,
"unexpected call\n");
396 ok(0,
"unexpected call\n");
403 ok(0,
"unexpected call\n");
409 ok(0,
"unexpected call\n");
415 ok(0,
"unexpected call\n");
421 ok(0,
"unexpected call\n");
427 ok(0,
"unexpected call\n");
433 ok(0,
"unexpected call\n");
439 ok(0,
"unexpected call\n");
445 ok(0,
"unexpected call\n");
451 ok(0,
"unexpected call\n");
457 ok(0,
"unexpected call\n");
463 ok(0,
"unexpected call\n");
469 ok(0,
"unexpected call\n");
475 ok(0,
"unexpected call\n");
481 ok(0,
"unexpected call\n");
487 ok(0,
"unexpected call\n");
500 ok(dim == 1,
"got wrong array dimensions %u\n", dim);
505 ok(bound == 0,
"wrong array low bound %d\n", bound);
510 ok(bound > 0,
"wrong array high bound %d\n", bound);
517 ok(0,
"unexpected call\n");
523 ok(0,
"unexpected call\n");
529 ok(0,
"unexpected call\n");
535 ok(0,
"unexpected call\n");
541 ok(0,
"unexpected call\n");
547 ok(0,
"unexpected call\n");
553 ok(0,
"unexpected call\n");
559 ok(0,
"unexpected call\n");
565 ok(0,
"unexpected call\n");
571 ok(0,
"unexpected call\n");
577 ok(0,
"unexpected call\n");
583 ok(0,
"unexpected call\n");
589 ok(0,
"unexpected call\n");
595 ok(0,
"unexpected call\n");
601 ok(0,
"unexpected call\n");
607 ok(0,
"unexpected call\n");
655#define EXPECT_CHILDREN(node) _expect_children((IXMLDOMNode*)node, __LINE__)
662 hr = IXMLDOMNode_hasChildNodes(
node, &
b);
663 ok_(__FILE__,
line)(
hr ==
S_OK,
"hasChildNodes() failed, 0x%08x\n",
hr);
664 ok_(__FILE__,
line)(
b == VARIANT_TRUE,
"no children, %d\n",
b);
667#define EXPECT_NO_CHILDREN(node) _expect_no_children((IXMLDOMNode*)node, __LINE__)
674 hr = IXMLDOMNode_hasChildNodes(
node, &
b);
676 ok_(__FILE__,
line)(
b == VARIANT_FALSE,
"no children, %d\n",
b);
679#define EXPECT_REF(node,ref) _expect_ref((IUnknown*)node, ref, __LINE__)
683 IUnknown_AddRef(
obj);
684 rc = IUnknown_Release(
obj);
685 ok_(__FILE__,
line)(rc ==
ref,
"expected refcount %d, got %d\n",
ref, rc);
688#define EXPECT_LIST_LEN(list,len) _expect_list_len(list, len, __LINE__)
700#define EXPECT_HR(hr,hr_exp) \
701 ok(hr == hr_exp, "got 0x%08x, expected 0x%08x\n", hr, hr_exp)
704#define EXPECT_NOT_HR(hr,hr_exp) \
705 ok(hr != hr_exp, "got 0x%08x, expected not 0x%08x\n", hr, hr_exp)
710 '<',
'?',
'x',
'm',
'l',
' ',
711 'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\'',
'1',
'.',
'0',
'\'',
'?',
'>',
'\n',0
714 '<',
'?',
'x',
'm',
'l',
' ',
715 'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\'',
'1',
'.',
'0',
'\'',
'?',
'>',
'\n',
716 '<',
'o',
'p',
'e',
'n',
'>',
'<',
'/',
'o',
'p',
'e',
'n',
'>',
'\n',0
719 '<',
'?',
'x',
'm',
'l',
' ',
720 'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\'',
'1',
'.',
'0',
'\'',
'?',
'>',
'\n',
721 '<',
'a',
'>',
'<',
'/',
'a',
'>',
'\n',0
724 "<?xml version=\'1.0\'?>\n"
726 "<bs vr=\'str2\' sz=\'1234\'>"
729 "<pr id=\'str3\' vr=\'1.2.3\' pn=\'wine 20050804\'>\n"
741 '<',
'S',
':',
's',
'e',
'a',
'r',
'c',
'h',
' ',
'x',
'm',
'l',
'n',
's',
':',
'D',
'=',
'"',
'D',
'A',
'V',
':',
'"',
' ',
742 'x',
'm',
'l',
'n',
's',
':',
'C',
'=',
'"',
'u',
'r',
'n',
':',
's',
'c',
'h',
'e',
'm',
'a',
's',
'-',
'm',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'-',
'c',
'o',
'm',
':',
'o',
'f',
'f',
'i',
'c',
'e',
':',
'c',
'l',
'i',
'p',
'g',
'a',
'l',
'l',
'e',
'r',
'y',
'"',
743 ' ',
'x',
'm',
'l',
'n',
's',
':',
'S',
'=',
'"',
'u',
'r',
'n',
':',
's',
'c',
'h',
'e',
'm',
'a',
's',
'-',
'm',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'-',
'c',
'o',
'm',
':',
'o',
'f',
'f',
'i',
'c',
'e',
':',
'c',
'l',
'i',
'p',
'g',
'a',
'l',
'l',
'e',
'r',
'y',
':',
's',
'e',
'a',
'r',
'c',
'h',
'"',
'>',
744 '<',
'S',
':',
's',
'c',
'o',
'p',
'e',
'>',
745 '<',
'S',
':',
'd',
'e',
'e',
'p',
'>',
'/',
'<',
'/',
'S',
':',
'd',
'e',
'e',
'p',
'>',
746 '<',
'/',
'S',
':',
's',
'c',
'o',
'p',
'e',
'>',
747 '<',
'S',
':',
'c',
'o',
'n',
't',
'e',
'n',
't',
'f',
'r',
'e',
'e',
't',
'e',
'x',
't',
'>',
748 '<',
'C',
':',
't',
'e',
'x',
't',
'o',
'r',
'p',
'r',
'o',
'p',
'e',
'r',
't',
'y',
'/',
'>',
749 'c',
'o',
'm',
'p',
'u',
't',
'e',
'r',
750 '<',
'/',
'S',
':',
'c',
'o',
'n',
't',
'e',
'n',
't',
'f',
'r',
'e',
'e',
't',
'e',
'x',
't',
'>',
751 '<',
'/',
'S',
':',
's',
'e',
'a',
'r',
'c',
'h',
'>',0
755 '<',
'?',
'x',
'm',
'l',
' ',
'v',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'\'',
'1',
'.',
'0',
'\'',
' ',
756 'e',
'n',
'c',
'o',
'd',
'i',
'n',
'g',
'=',
'\'',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'-',
'1',
'2',
'5',
'2',
'\'',
'?',
'>',
'\n',
757 '<',
'o',
'p',
'e',
'n',
'>',
'<',
'/',
'o',
'p',
'e',
'n',
'>',
'\n',0
761 "<?xml version=\"1.0\"?>\n\t"
769#define DECL_WIN_1252 \
770"<?xml version=\"1.0\" encoding=\"Windows-1252\"?>"
783"<?xml version='1.0' encoding='utf-8'?>\n"
784"<root xmlns:foo='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' a=\"attr a\" foo:b=\"attr b\" >\n"
790" <description xmlns:foo='http://www.winehq.org' xmlns:bar='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'>\n"
791" <html xmlns='http://www.w3.org/1999/xhtml'>\n"
792" <![CDATA[]]> This is<strong> a</strong> <i>description</i><dot>. </dot><bar:x/>\n"
794" <html xml:space='preserve' xmlns='http://www.w3.org/1999/xhtml'>\n"
795" This is <strong>a</strong> <i>description</i> with preserved whitespace. <bar:x/>\n"
803" <c type=\"old\">C2 field</c>\n"
807" <elem xmlns='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'>\n"
816" <foo:c>C4 field</foo:c>\n"
822"<?xml version='1.0'?>"
824"<b1> Text A end </b1>"
825"<b2>AB C </b2>"
829"<?xml version='1.0'?>"
830"<!-- comment node 0 -->"
831"<root id='0' depth='0'>"
832" <!-- comment node 1 -->"
834" <x id='1' depth='1'>"
835" <?foo value='PI for x'?>"
836" <!-- comment node 2 -->"
838" <a id='3' depth='2'/>"
839" <b id='4' depth='2'/>"
840" <c id='5' depth='2'/>"
842" <y id='2' depth='1'>"
843" <?bar value='PI for y'?>"
844" <!-- comment node 3 -->"
846" <a id='6' depth='2'/>"
847" <b id='7' depth='2'/>"
848" <c id='8' depth='2'/>"
853"<?xml version=\"1.0\"?>\n"
859"<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n"
860" <xsl:output method=\"html\"/>\n"
861" <xsl:template match=\"/\">\n"
862" <xsl:apply-templates select=\"greeting\"/>\n"
864" <xsl:template match=\"greeting\">\n"
868" <xsl:value-of select=\".\"/>\n"
878"</h1></body></html>";
881"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
882"<root xmlns:dt=\"urn:schemas-microsoft-com:datatypes\">\n"
883" <string>Wine</string>\n"
884" <string2 dt:dt=\"string\">String</string2>\n"
885" <number dt:dt=\"number\">12.44</number>\n"
886" <number2 dt:dt=\"NUMbEr\">-3.71e3</number2>\n"
887" <int dt:dt=\"int\">-13</int>\n"
888" <fixed dt:dt=\"fixed.14.4\">7322.9371</fixed>\n"
889" <bool dt:dt=\"boolean\">1</bool>\n"
890" <datetime dt:dt=\"datetime\">2009-11-18T03:21:33.12</datetime>\n"
891" <datetimetz dt:dt=\"datetime.tz\">2003-07-11T11:13:57+03:00</datetimetz>\n"
892" <date dt:dt=\"date\">3721-11-01</date>\n"
893" <time dt:dt=\"time\">13:57:12.31321</time>\n"
894" <timetz dt:dt=\"time.tz\">23:21:01.13+03:21</timetz>\n"
895" <i1 dt:dt=\"i1\">-13</i1>\n"
896" <i2 dt:dt=\"i2\">31915</i2>\n"
897" <i4 dt:dt=\"i4\">-312232</i4>\n"
898" <ui1 dt:dt=\"ui1\">123</ui1>\n"
899" <ui2 dt:dt=\"ui2\">48282</ui2>\n"
900" <ui4 dt:dt=\"ui4\">949281</ui4>\n"
901" <r4 dt:dt=\"r4\">213124.0</r4>\n"
902" <r8 dt:dt=\"r8\">0.412</r8>\n"
903" <float dt:dt=\"float\">41221.421</float>\n"
904" <uuid dt:dt=\"uuid\">333C7BC4-460F-11D0-BC04-0080C7055a83</uuid>\n"
905" <binhex dt:dt=\"bin.hex\">fffca012003c</binhex>\n"
906" <binbase64 dt:dt=\"bin.base64\">YmFzZTY0IHRlc3Q=</binbase64>\n"
907" <binbase64_1 dt:dt=\"bin.base64\">\nYmFzZTY0\nIHRlc3Q=\n</binbase64_1>\n"
908" <binbase64_2 dt:dt=\"bin.base64\">\nYmF\r\t z ZTY0\nIHRlc3Q=\n</binbase64_2>\n"
912"<?xml version=\"1.0\"?>"
913"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >"
914"<xsl:output method=\"html\"/>\n"
915"<xsl:template match=\"/\">"
917" <xsl:apply-templates select='document(\"";
921" <xsl:sort select=\"cost\"/><xsl:sort select=\"name\"/>"
922" </xsl:apply-templates>"
923"</TABLE></BODY></HTML>"
925"<xsl:template match=\"bottle\">"
926" <TR><xsl:apply-templates select=\"name\" /><xsl:apply-templates select=\"cost\" /></TR>"
928"<xsl:template match=\"name\">"
929" <TD><xsl:apply-templates /></TD>"
931"<xsl:template match=\"cost\">"
932" <TD><xsl:apply-templates /></TD>"
937"<?xml version=\"1.0\"?><bottle><wine><name>Wine</name><cost>$25.00</cost></wine></bottle>";
940"<HTML><BODY><TABLE><TD>Wine</TD><TD>$25.00</TD></TABLE></BODY></HTML>";
942#define SZ_EMAIL_DTD \
944" <!ELEMENT email (recipients,from,reply-to?,subject,body,attachment*)>"\
945" <!ATTLIST email attachments IDREFS #REQUIRED>"\
946" <!ATTLIST email sent (yes|no) \"no\">"\
947" <!ELEMENT recipients (to+,cc*)>"\
948" <!ELEMENT to (#PCDATA)>"\
949" <!ATTLIST to name CDATA #IMPLIED>"\
950" <!ELEMENT cc (#PCDATA)>"\
951" <!ATTLIST cc name CDATA #IMPLIED>"\
952" <!ELEMENT from (#PCDATA)>"\
953" <!ATTLIST from name CDATA #IMPLIED>"\
954" <!ELEMENT reply-to (#PCDATA)>"\
955" <!ATTLIST reply-to name CDATA #IMPLIED>"\
956" <!ELEMENT subject ANY>"\
957" <!ELEMENT body ANY>"\
958" <!ATTLIST body enc CDATA #FIXED \"UTF-8\">"\
959" <!ELEMENT attachment (#PCDATA)>"\
960" <!ATTLIST attachment id ID #REQUIRED>"\
964"<?xml version=\"1.0\"?>"
966"<email attachments=\"patch1\">"
968" <to>wine-patches@winehq.org</to>"
970" <from name=\"Anonymous\">user@localhost</from>"
971" <subject>msxml3/tests: DTD validation (try 87)</subject>"
973" It no longer causes spontaneous combustion..."
975" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
979"<?xml version=\"1.0\"?>"
981"<email attachments=\"patch1\">"
983" <to>wine-patches@winehq.org</to>"
985" <from name=\"Anonymous\">user@localhost</from>"
986" <subject>msxml3/tests: DTD validation (try 88)</subject>"
989" XML_ELEMENT_UNDECLARED 0xC00CE00D"
991" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
995"<?xml version=\"1.0\"?>"
997"<email attachments=\"patch1\">"
999" <to>wine-patches@winehq.org</to>"
1001" <from name=\"Anonymous\">user@localhost</from>"
1002" <subject>msxml3/tests: DTD validation (try 89)</subject>"
1004" XML_ELEMENT_ID_NOT_FOUND 0xC00CE00E"
1006" <attachment id=\"patch\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1010"<?xml version=\"1.0\"?>"
1012"<email attachments=\"patch1\">"
1015" <from name=\"Anonymous\">user@localhost</from>"
1016" <subject>msxml3/tests: DTD validation (try 90)</subject>"
1018" XML_EMPTY_NOT_ALLOWED 0xC00CE011"
1020" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1024"<?xml version=\"1.0\"?>"
1026"<msg attachments=\"patch1\">"
1028" <to>wine-patches@winehq.org</to>"
1030" <from name=\"Anonymous\">user@localhost</from>"
1031" <subject>msxml3/tests: DTD validation (try 91)</subject>"
1033" XML_ROOT_NAME_MISMATCH 0xC00CE013"
1035" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1039"<?xml version=\"1.0\"?>"
1041"<email attachments=\"patch1\">"
1042" <to>wine-patches@winehq.org</to>"
1043" <from name=\"Anonymous\">user@localhost</from>"
1044" <subject>msxml3/tests: DTD validation (try 92)</subject>"
1046" XML_INVALID_CONTENT 0xC00CE014"
1048" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1052"<?xml version=\"1.0\"?>"
1054"<email attachments=\"patch1\" ip=\"127.0.0.1\">"
1056" <to>wine-patches@winehq.org</to>"
1058" <from name=\"Anonymous\">user@localhost</from>"
1059" <subject>msxml3/tests: DTD validation (try 93)</subject>"
1061" XML_ATTRIBUTE_NOT_DEFINED 0xC00CE015"
1063" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1067"<?xml version=\"1.0\"?>"
1069"<email attachments=\"patch1\">"
1071" <to>wine-patches@winehq.org</to>"
1073" <from name=\"Anonymous\">user@localhost</from>"
1074" <subject>msxml3/tests: DTD validation (try 94)</subject>"
1075" <body enc=\"ASCII\">"
1076" XML_ATTRIBUTE_FIXED 0xC00CE016"
1078" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1082"<?xml version=\"1.0\"?>"
1084"<email attachments=\"patch1\" sent=\"true\">"
1086" <to>wine-patches@winehq.org</to>"
1088" <from name=\"Anonymous\">user@localhost</from>"
1089" <subject>msxml3/tests: DTD validation (try 95)</subject>"
1091" XML_ATTRIBUTE_VALUE 0xC00CE017"
1093" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1097"<?xml version=\"1.0\"?>"
1099"<email attachments=\"patch1\">"
1102" <to>wine-patches@winehq.org</to>"
1104" <from name=\"Anonymous\">user@localhost</from>"
1105" <subject>msxml3/tests: DTD validation (try 96)</subject>"
1107" XML_ILLEGAL_TEXT 0xC00CE018"
1109" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1113"<?xml version=\"1.0\"?>"
1117" <to>wine-patches@winehq.org</to>"
1119" <from name=\"Anonymous\">user@localhost</from>"
1120" <subject>msxml3/tests: DTD validation (try 97)</subject>"
1122" XML_REQUIRED_ATTRIBUTE_MISSING 0xC00CE020"
1124" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1128"<?xml version=\"1.0\"?>"
1130" <a attr1=\"1\" attr2=\"2\" />"
1137 "<?xml version=\"1.0\"?>"
1138 "<a xmlns:ns=\"nshref\" xml:lang=\"ru\" ns:b=\"b attr\" xml:c=\"c attr\" "
1143 "<?xml version=\"1.0\"?>"
1144 "<a attr1=\"value1\" attr2=\"value2\" attr3=\"value3\" attr4=\"value4\" />"
1148 'c',
':',
'\\',
'N',
'o',
'n',
'e',
'x',
'i',
's',
't',
'e',
'n',
't',
'.',
'x',
'm',
'l', 0
1151 'n',
'o',
'n',
'E',
'x',
'i',
's',
'i',
't',
'i',
'n',
'g',
'A',
't',
't',
'r',
'i',
'b',
'u',
't',
'e',0
1154 '#',
'd',
'o',
'c',
'u',
'm',
'e',
'n',
't', 0
1168static const WCHAR szCommentXML[] = {
'<',
'!',
'-',
'-',
'A',
' ',
'C',
'o',
'm',
'm',
'e',
'n',
't',
'-',
'-',
'>',0 };
1172static const WCHAR szElementXML[] = {
'<',
'E',
'l',
'e',
'T',
'e',
's',
't',
'/',
'>',0 };
1173static const WCHAR szElementXML2[] = {
'<',
'E',
'l',
'e',
'T',
'e',
's',
't',
' ',
'A',
't',
't',
'r',
'=',
'"',
'"',
'/',
'>',0 };
1174static const WCHAR szElementXML3[] = {
'<',
'E',
'l',
'e',
'T',
'e',
's',
't',
' ',
'A',
't',
't',
'r',
'=',
'"',
'"',
'>',
1175 'T',
'e',
's',
't',
'i',
'n',
'g',
'N',
'o',
'd',
'e',
'<',
'/',
'E',
'l',
'e',
'T',
'e',
's',
't',
'>',0 };
1176static const WCHAR szElementXML4[] = {
'<',
'E',
'l',
'e',
'T',
'e',
's',
't',
' ',
'A',
't',
't',
'r',
'=',
'"',
'"',
'>',
1177 '&',
'a',
'm',
'p',
';',
'x',
' ',0x2103,
'<',
'/',
'E',
'l',
'e',
'T',
'e',
's',
't',
'>',0 };
1182static const WCHAR szCData[] = {
'[',
'1',
']',
'*',
'2',
'=',
'3',
';',
' ',
'&',
'g',
'e',
'e',
' ',
't',
'h',
'a',
't',
's',
1183 ' ',
'n',
'o',
't',
' ',
'r',
'i',
'g',
'h',
't',
'!', 0};
1184static const WCHAR szCDataXML[] = {
'<',
'!',
'[',
'C',
'D',
'A',
'T',
'A',
'[',
'[',
'1',
']',
'*',
'2',
'=',
'3',
';',
' ',
'&',
1185 'g',
'e',
'e',
' ',
't',
'h',
'a',
't',
's',
' ',
'n',
'o',
't',
' ',
'r',
'i',
'g',
'h',
't',
1187static const WCHAR szCDataNodeText[] = {
'#',
'c',
'd',
'a',
't',
'a',
'-',
's',
'e',
'c',
't',
'i',
'o',
'n',0 };
1188static const WCHAR szDocFragmentText[] = {
'#',
'd',
'o',
'c',
'u',
'm',
'e',
'n',
't',
'-',
'f',
'r',
'a',
'g',
'm',
'e',
'n',
't',0 };
1191static const WCHAR szEntityRefXML[] = {
'&',
'e',
'n',
't',
'i',
't',
'y',
'r',
'e',
'f',
';',0 };
1194#define expect_bstr_eq_and_free(bstr, expect) { \
1195 BSTR bstrExp = alloc_str_from_narrow(expect); \
1196 ok(lstrcmpW(bstr, bstrExp) == 0, "String differs\n"); \
1197 SysFreeString(bstr); \
1198 SysFreeString(bstrExp); \
1201#define expect_eq(expr, value, type, format) { type ret = (expr); ok((value) == ret, #expr " expected " format " got " format "\n", value, ret); }
1203#define ole_check(expr) { \
1205 ok(r == S_OK, #expr " returned %x\n", r); \
1208#define ole_expect(expr, expect) { \
1210 ok(r == (expect), #expr " returned %x, expected %x\n", r, expect); \
1213#define double_eq(x, y) ok((x)-(y)<=1e-14*(x) && (x)-(y)>=-1e-14*(x), "expected %.16g, got %.16g\n", x, y)
1221 ok(
hr ==
S_OK,
"failed to create %s instance: 0x%08x\n",
name,
hr);
1226#define _create(cls) cls, #cls
1228#define create_document(iid) _create_object(&_create(CLSID_DOMDocument2), iid, __LINE__)
1229#define create_document_version(v, iid) _create_object(&_create(CLSID_DOMDocument ## v), iid, __LINE__)
1230#define create_cache(iid) _create_object(&_create(CLSID_XMLSchemaCache), iid, __LINE__)
1231#define create_xsltemplate(iid) _create_object(&_create(CLSID_XSLTemplate), iid, __LINE__)
1271 while (*sLeft ==
'\r' || *sLeft ==
'\n') sLeft++;
1272 while (*sRight ==
'\r' || *sRight ==
'\n') sRight++;
1273 if (*sLeft != *sRight)
return FALSE;
1274 if (!*sLeft)
return TRUE;
1312 IXMLDOMNode_AddRef(
node);
1318 r = IXMLDOMNode_get_previousSibling(
node, &new_node);
1320 IXMLDOMNode_Release(
node);
1322 }
while (
r ==
S_OK);
1337 IXMLDOMNode_AddRef(
node);
1356 r = IXMLDOMNode_selectSingleNode(
node,
_bstr_(
".."), &new_node);
1360 r = IXMLDOMNode_get_parentNode(
node, &new_node);
1366 IXMLDOMNode_Release(
node);
1377 static char buf[4096];
1388 hr = IXMLDOMNodeList_get_length(
list, &
len);
1390 for (
i = 0;
i <
len;
i++)
1398 IXMLDOMNode_Release(
node);
1404#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); }
1405#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); }
1420 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1421 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_TRUE,
S_OK } }},
1422 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1423 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1424 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1429 "\n<?xml version=\"1.0\" encoding=\"UTF-16\" ?><root/>",
1430 " <?xml version=\"1.0\"?><root/>",
1431 "\n<?xml version=\"1.0\"?><root/>",
1432 "\t<?xml version=\"1.0\"?><root/>",
1433 "\r\n<?xml version=\"1.0\"?><root/>",
1434 "\r<?xml version=\"1.0\"?><root/>",
1435 "\r\r\r\r\t\t \n\n <?xml version=\"1.0\"?><root/>",
1452 const char **data_ptr;
1471 while (class_ptr->
clsid)
1503 hr = IXMLDOMDocument_load(doc,
var, &
b);
1505 ok(
b == class_ptr->
ret[0].b,
"%d:%d, got %d, expected %d\n",
index,
i,
b, class_ptr->
ret[0].b);
1510 hr = IXMLDOMDocument_loadXML(doc,
data, &
b);
1512 ok(
b == class_ptr->
ret[1].b,
"%d:%d, got %d, expected %d\n",
index,
i,
b, class_ptr->
ret[1].b);
1529 IXMLDOMDocument_loadXML( doc, (
BSTR)0x1,
NULL );
1533 hr = IXMLDOMDocument_loadXML( doc,
NULL,
NULL );
1537 hr = IXMLDOMDocument_loadXML( doc,
NULL, &
b );
1539 ok(
b == VARIANT_FALSE,
"failed to load XML string\n");
1548 r = IXMLDOMDocument_load( doc,
var, &
b);
1550 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1553 str = (
void *)0xdeadbeef;
1554 hr = IXMLDOMDocument_get_url(doc, &
str);
1561 r = IXMLDOMDocument_loadXML( doc,
str, &
b );
1563 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1566 r = IXMLDOMDocument_get_async( doc, &
b );
1567 ok(
r ==
S_OK,
"get_async failed (%08x)\n",
r);
1568 ok(
b == VARIANT_TRUE,
"Wrong default value\n");
1572 r = IXMLDOMDocument_get_documentElement( doc, &
element );
1573 ok(
r ==
S_FALSE,
"should be no document element\n");
1578 r = IXMLDOMDocument_selectSingleNode( doc,
str, &
node );
1584 r = IXMLDOMDocument_loadXML( doc,
str, &
b );
1586 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1591 r = IXMLDOMDocument_get_documentElement( doc, &
element );
1592 ok(
r ==
S_FALSE,
"should be no document element\n");
1600 r = IXMLDOMDocument_loadXML( doc, &
buff[2], &
b );
1601 ok(
r ==
S_OK,
"loadXML failed\n");
1602 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1607 r = IXMLDOMDocument_loadXML( doc,
str, &
b );
1608 ok(
r ==
S_OK,
"loadXML failed\n");
1609 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1615 r = IXMLDOMDocument_loadXML( doc,
str, &
b );
1617 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1623 r = IXMLDOMDocument_loadXML( doc,
str, &
b );
1624 ok(
r ==
S_OK,
"loadXML failed\n");
1625 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1629 r = IXMLDOMDocument_get_nodeName( doc,
NULL );
1632 str = (
void *)0xdeadbeef;
1633 r = IXMLDOMDocument_get_baseName( doc, &
str );
1639 r = IXMLDOMDocument_get_nodeName( doc, &
str );
1640 ok (
r ==
S_OK,
"get_nodeName wrong code\n");
1646 r = IXMLDOMDocument_put_text( doc,
_bstr_(
"Should fail") );
1651 r = IXMLDOMDocument_get_documentElement( doc, &
element );
1652 ok(
r ==
S_OK,
"should be a document element\n");
1657 r = IXMLDOMElement_QueryInterface(
element, &IID_IObjectIdentity, (
void**)&
ident );
1660 IXMLDOMElement_Release(
element );
1666 r = IXMLDOMDocument_loadXML( doc,
NULL,
NULL );
1668 ok(
b == 2,
"variant modified\n");
1669 r = IXMLDOMDocument_get_documentElement( doc, &
element );
1670 ok(
r ==
S_FALSE,
"should be no document element\n");
1675 r = IXMLDOMDocument_loadXML( doc,
str, &
b );
1676 ok(
r ==
S_OK,
"loadXML failed\n");
1677 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1683 ok(
r ==
S_OK,
"loadXML failed\n");
1684 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1686 r = IXMLDOMDocument_get_parseError( doc, &
error );
1687 ok(
r ==
S_OK,
"returns %08x\n",
r );
1689 r = IXMLDOMParseError_get_errorCode(
error, &
code );
1692 IXMLDOMParseError_Release(
error );
1695 r = IXMLDOMDocument_createTextNode(doc,
_bstr_(
""), &nodetext);
1696 ok(
r ==
S_OK,
"returns %08x\n",
r );
1697 IXMLDOMText_Release(nodetext);
1700 r = IXMLDOMDocument_createTextNode(doc,
str,
NULL);
1702 r = IXMLDOMDocument_createTextNode(doc,
str, &nodetext);
1703 ok(
r ==
S_OK,
"returns %08x\n",
r );
1707 r = IXMLDOMText_QueryInterface(nodetext, &IID_IXMLDOMElement, (
void**)&
element);
1711 r = IXMLDOMText_get_lastChild(nodetext,
NULL);
1715 r = IXMLDOMText_get_lastChild(nodetext, &nodeChild);
1717 ok(nodeChild ==
NULL,
"nodeChild not NULL\n");
1720 r = IXMLDOMText_get_length(nodetext,
NULL);
1723 r = IXMLDOMText_get_length(nodetext, &
nLength);
1728 r = IXMLDOMText_put_data(nodetext,
_bstr_(
"This &is a ; test <>\\"));
1732 r = IXMLDOMText_get_data(nodetext, &
str);
1738 r = IXMLDOMText_get_xml(nodetext, &
str);
1740 ok( !
lstrcmpW(
str,
_bstr_(
"This &is a ; test <>\\") ),
"incorrect xml string\n");
1744 r = IXMLDOMText_get_text(nodetext, &
str);
1750 r = IXMLDOMText_substringData(nodetext, 0, 4,
NULL);
1754 str = (
void *)0xdeadbeef;
1755 r = IXMLDOMText_substringData(nodetext, -1, 4, &
str);
1760 str = (
void *)0xdeadbeef;
1761 r = IXMLDOMText_substringData(nodetext, 30, 0, &
str);
1766 str = (
void *)0xdeadbeef;
1767 r = IXMLDOMText_substringData(nodetext, 0, -1, &
str);
1772 str = (
void *)0xdeadbeef;
1773 r = IXMLDOMText_substringData(nodetext, 2, 0, &
str);
1778 r = IXMLDOMText_substringData(nodetext, 0, 4, &
str);
1784 r = IXMLDOMText_substringData(nodetext, 13, 4, &
str);
1790 r = IXMLDOMText_substringData(nodetext, 20, 4, &
str);
1796 r = IXMLDOMText_appendData(nodetext,
NULL);
1799 r = IXMLDOMText_appendData(nodetext,
_bstr_(
""));
1802 r = IXMLDOMText_appendData(nodetext,
_bstr_(
"Append"));
1805 r = IXMLDOMText_get_text(nodetext, &
str);
1812 r = IXMLDOMText_insertData(nodetext, -1,
str);
1815 r = IXMLDOMText_insertData(nodetext, -1,
NULL);
1818 r = IXMLDOMText_insertData(nodetext, 1000,
str);
1821 r = IXMLDOMText_insertData(nodetext, 1000,
NULL);
1824 r = IXMLDOMText_insertData(nodetext, 0,
NULL);
1827 r = IXMLDOMText_insertData(nodetext, 0,
str);
1831 r = IXMLDOMText_insertData(nodetext, -1,
_bstr_(
"Inserting"));
1834 r = IXMLDOMText_insertData(nodetext, 1000,
_bstr_(
"Inserting"));
1837 r = IXMLDOMText_insertData(nodetext, 0,
_bstr_(
"Begin "));
1840 r = IXMLDOMText_insertData(nodetext, 17,
_bstr_(
"Middle"));
1843 r = IXMLDOMText_insertData(nodetext, 39,
_bstr_(
" End"));
1846 r = IXMLDOMText_get_text(nodetext, &
str);
1853 r = IXMLDOMText_deleteData(nodetext, -1, 1);
1856 r = IXMLDOMText_deleteData(nodetext, 0, 0);
1859 r = IXMLDOMText_deleteData(nodetext, 0, -1);
1862 r = IXMLDOMText_get_length(nodetext, &
nLength);
1866 r = IXMLDOMText_deleteData(nodetext,
nLength, 1);
1869 r = IXMLDOMText_deleteData(nodetext,
nLength+1, 1);
1873 r = IXMLDOMText_deleteData(nodetext, 0, 5);
1876 r = IXMLDOMText_get_length(nodetext, &
nLength);
1880 r = IXMLDOMText_get_text(nodetext, &
str);
1886 r = IXMLDOMText_deleteData(nodetext, 35, 3);
1889 r = IXMLDOMText_get_length(nodetext, &
nLength);
1893 r = IXMLDOMText_get_text(nodetext, &
str);
1899 r = IXMLDOMText_deleteData(nodetext, 1, 33);
1902 r = IXMLDOMText_get_length(nodetext, &
nLength);
1906 r = IXMLDOMText_get_text(nodetext, &
str);
1912 r = IXMLDOMText_get_length(nodetext, &
nLength);
1915 r = IXMLDOMText_deleteData(nodetext, 0,
nLength);
1918 r = IXMLDOMText_deleteData(nodetext, 0,
nLength);
1924 r = IXMLDOMText_put_nodeValue(nodetext,
var);
1928 r = IXMLDOMText_get_text(nodetext, &
str);
1936 r = IXMLDOMText_put_nodeValue(nodetext,
var);
1940 r = IXMLDOMText_get_text(nodetext, &
str);
1948 r = IXMLDOMText_put_nodeValue(nodetext,
var);
1952 r = IXMLDOMText_replaceData(nodetext, 6, 0,
NULL);
1954 r = IXMLDOMText_get_text(nodetext, &
str);
1959 r = IXMLDOMText_replaceData(nodetext, 0, 0,
NULL);
1961 r = IXMLDOMText_get_text(nodetext, &
str);
1967 r = IXMLDOMText_replaceData(nodetext, 0, 1,
NULL);
1969 r = IXMLDOMText_get_text(nodetext, &
str);
1975 r = IXMLDOMText_replaceData(nodetext, 0, 1,
_bstr_(
""));
1977 r = IXMLDOMText_get_text(nodetext, &
str);
1983 r = IXMLDOMText_replaceData(nodetext, 0, 0,
_bstr_(
"a"));
1985 r = IXMLDOMText_get_text(nodetext, &
str);
1990 r = IXMLDOMText_replaceData(nodetext, 0, 2,
NULL);
1993 r = IXMLDOMText_insertData(nodetext, 0,
_bstr_(
"m"));
1995 r = IXMLDOMText_get_text(nodetext, &
str);
2001 r = IXMLDOMText_replaceData(nodetext, 0, 2,
_bstr_(
"a1.2"));
2003 r = IXMLDOMText_get_text(nodetext, &
str);
2009 r = IXMLDOMText_replaceData(nodetext, 0, 1,
_bstr_(
"wine"));
2011 r = IXMLDOMText_get_text(nodetext, &
str);
2016 IXMLDOMText_Release( nodetext );
2020 r = IXMLDOMDocument_createComment(doc,
NULL,
NULL);
2025 r = IXMLDOMDocument_createComment(doc,
_bstr_(
""), &node_comment);
2026 ok(
r ==
S_OK,
"returns %08x\n",
r );
2028 r = IXMLDOMComment_get_data(node_comment, &
str);
2029 ok(
r ==
S_OK,
"returns %08x\n",
r );
2031 IXMLDOMComment_Release(node_comment);
2034 r = IXMLDOMDocument_createComment(doc,
NULL, &node_comment);
2035 ok(
r ==
S_OK,
"returns %08x\n",
r );
2037 r = IXMLDOMComment_get_data(node_comment, &
str);
2038 ok(
r ==
S_OK,
"returns %08x\n",
r );
2040 IXMLDOMComment_Release(node_comment);
2044 r = IXMLDOMDocument_createComment(doc,
str, &node_comment);
2046 ok(
r ==
S_OK,
"returns %08x\n",
r );
2050 r = IXMLDOMComment_get_lastChild(node_comment,
NULL);
2054 r = IXMLDOMComment_get_lastChild(node_comment, &nodeChild);
2056 ok(nodeChild ==
NULL,
"pLastChild not NULL\n");
2059 str = (
void *)0xdeadbeef;
2060 r = IXMLDOMComment_get_baseName(node_comment, &
str);
2064 IXMLDOMComment_Release( node_comment );
2069 r = IXMLDOMDocument_createAttribute(doc,
NULL,
NULL);
2071 r = IXMLDOMDocument_createAttribute(doc,
str, &node_attr);
2072 ok(
r ==
S_OK,
"returns %08x\n",
r );
2073 IXMLDOMAttribute_Release( node_attr);
2078 r = IXMLDOMDocument_createProcessingInstruction(doc,
str,
str,
NULL);
2080 r = IXMLDOMDocument_createProcessingInstruction(doc,
NULL,
str, &nodePI);
2082 r = IXMLDOMDocument_createProcessingInstruction(doc,
str,
str, &nodePI);
2086 r = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\""), &nodePI);
2087 ok(
r ==
S_OK,
"returns %08x\n",
r );
2091 r = IXMLDOMProcessingInstruction_get_lastChild(nodePI,
NULL);
2095 r = IXMLDOMProcessingInstruction_get_lastChild(nodePI, &nodeChild);
2097 ok(nodeChild ==
NULL,
"nodeChild not NULL\n");
2100 r = IXMLDOMProcessingInstruction_get_nodeName(nodePI, &
str);
2107 r = IXMLDOMProcessingInstruction_get_baseName(nodePI, &
str);
2113 r = IXMLDOMProcessingInstruction_get_target(nodePI, &
str);
2119 r = IXMLDOMProcessingInstruction_get_data(nodePI, &
str);
2125 r = IXMLDOMProcessingInstruction_put_data(nodePI,
_bstr_(
"version=\"1.0\" encoding=\"UTF-8\""));
2131 r = IXMLDOMProcessingInstruction_put_nodeValue(nodePI,
var);
2136 r = IXMLDOMProcessingInstruction_get_nodeName(nodePI, &
str);
2141 IXMLDOMProcessingInstruction_Release(nodePI);
2144 ref = IXMLDOMDocument_Release( doc );
2165 hr = IPersistStreamInit_InitNew(streaminit);
2168 hr = IPersistStreamInit_GetSizeMax(streaminit, &
size);
2178 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IPersist, (
void **)&persist);
2181 hr = IPersistStreamInit_GetClassID(streaminit,
NULL);
2185 hr = IPersistStreamInit_GetClassID(streaminit, &
clsid);
2189 IPersistStream_Release(
stream);
2190 IPersistStreamInit_Release(streaminit);
2191 IXMLDOMDocument_Release(doc);
2213 ok(
r ==
S_OK,
"loadXML failed\n");
2214 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
2218 r = IXMLDOMDocument_get_documentElement( doc, &
element );
2219 ok(
r ==
S_OK,
"should be a document element\n");
2225 r = IXMLDOMDocument_get_nodeValue( doc,
NULL );
2228 r = IXMLDOMDocument_get_nodeValue( doc, &
var );
2229 ok(
r ==
S_FALSE,
"nextNode returned wrong code\n");
2236 r = IXMLDOMElement_get_ownerDocument(
element, &owner );
2237 ok(
r ==
S_OK,
"get_ownerDocument return code\n");
2238 ok( owner != doc,
"get_ownerDocument return\n");
2239 IXMLDOMDocument_Release(owner);
2248 ok(
r ==
S_OK,
"get_baseName returned wrong code\n");
2259 ok (
r ==
S_OK,
"get_nodeName wrong code\n");
2268 ok(
r ==
E_FAIL,
"getAttribute ret %08x\n",
r );
2277 ok(
r ==
S_OK,
"getAttribute ret %08x\n",
r );
2290 ok(
r ==
S_OK,
"GetAttributeNode ret %08x\n",
r );
2291 ok(
attr !=
NULL,
"getAttributeNode returned NULL\n" );
2294 r = IXMLDOMAttribute_get_parentNode(
attr,
NULL );
2299 r = IXMLDOMAttribute_get_parentNode(
attr, &
node );
2300 ok(
r ==
S_FALSE,
"Expected S_FALSE, ret %08x\n",
r );
2303 IXMLDOMAttribute_Release(
attr);
2308 r = IXMLDOMElement_get_attributes(
element, &
map );
2309 ok(
r ==
S_OK,
"get_attributes returned wrong code\n");
2310 ok(
map !=
NULL,
"should be attributes\n");
2320 r = IXMLDOMNamedNodeMap_getNamedItem(
map,
str, &
node );
2321 ok(
r ==
S_OK,
"getNamedItem returned wrong code\n");
2323 IXMLDOMNode_Release(
node);
2327 r = IXMLDOMNamedNodeMap_getNamedItem(
map,
str,
NULL );
2334 r = IXMLDOMNamedNodeMap_getNamedItem(
map,
str, &
node );
2335 ok(
r ==
S_FALSE,
"getNamedItem found a node that wasn't there\n");
2336 ok(
node ==
NULL,
"getNamedItem should have returned NULL\n");
2340 r = IXMLDOMNamedNodeMap_get_length(
map,
NULL );
2343 r = IXMLDOMNamedNodeMap_get_length(
map, &
count );
2344 ok (
r ==
S_OK,
"get_length wrong code\n");
2345 ok (
count == 1,
"get_length != 1\n");
2348 r = IXMLDOMNamedNodeMap_get_item(
map, -1, &
node);
2349 ok (
r ==
S_FALSE,
"get_item (-1) wrong code\n");
2353 r = IXMLDOMNamedNodeMap_get_item(
map, 1, &
node);
2354 ok (
r ==
S_FALSE,
"get_item (1) wrong code\n");
2355 ok (
node ==
NULL,
"there is no attribute\n");
2358 r = IXMLDOMNamedNodeMap_get_item(
map, 0, &
node);
2359 ok (
r ==
S_OK,
"get_item (0) wrong code\n");
2362 r = IXMLDOMNode_get_nodeName(
node,
NULL );
2367 r = IXMLDOMNode_get_nodeName(
node, &
str );
2368 ok (
r ==
S_OK,
"get_nodeName wrong code\n");
2372 IXMLDOMNode_Release(
node );
2376 r = IXMLDOMNamedNodeMap_nextNode(
map, &
node );
2377 ok (
r ==
S_OK,
"nextNode (first time) wrong code\n");
2378 ok (
node !=
NULL,
"nextNode, should be attribute\n");
2379 IXMLDOMNode_Release(
node );
2381 r = IXMLDOMNamedNodeMap_nextNode(
map, &
node );
2382 ok (
r !=
S_OK,
"nextNode (second time) wrong code\n");
2383 ok (
node ==
NULL,
"nextNode, there is no attribute\n");
2385 r = IXMLDOMNamedNodeMap_reset(
map );
2386 ok (
r ==
S_OK,
"reset should return S_OK\n");
2388 r = IXMLDOMNamedNodeMap_nextNode(
map, &
node );
2389 ok (
r ==
S_OK,
"nextNode (third time) wrong code\n");
2390 ok (
node !=
NULL,
"nextNode, should be attribute\n");
2398 r = IXMLDOMNode_get_nodeType(
node, &
type);
2399 ok(
r ==
S_OK,
"getNamedItem returned wrong code\n");
2403 r = IXMLDOMNode_get_baseName(
node,
NULL );
2407 r = IXMLDOMNode_get_baseName(
node, &
str );
2408 ok(
r ==
S_OK,
"get_baseName returned wrong code\n");
2412 r = IXMLDOMNode_get_childNodes(
node,
NULL );
2415 r = IXMLDOMNode_get_childNodes(
node, &
list );
2416 ok(
r ==
S_OK,
"get_childNodes returned wrong code\n");
2420 r = IXMLDOMNodeList_nextNode(
list, &
next );
2421 ok(
r ==
S_OK,
"nextNode returned wrong code\n");
2431 r = IXMLDOMNode_get_nodeType(
next, &
type);
2432 ok(
r ==
S_OK,
"getNamedItem returned wrong code\n");
2435 str = (
void *)0xdeadbeef;
2436 r = IXMLDOMNode_get_baseName(
next, &
str );
2437 ok(
r ==
S_FALSE,
"get_baseName returned wrong code\n");
2438 ok(
str ==
NULL,
"basename was wrong\n");
2445 IXMLDOMNode_Release(
next );
2448 IXMLDOMNodeList_Release(
list );
2451 IXMLDOMNode_Release(
node );
2458 IXMLDOMNamedNodeMap_Release(
map );
2464 ok(
r ==
S_OK,
"get_childNodes returned wrong code\n");
2469 IXMLDOMNode_Release(
node);
2472 IXMLDOMNode_Release(
node);
2475 IXMLDOMNodeList_AddRef(
list);
2479 node = (
void*)0xdeadbeef;
2490 r = IXMLDOMNode_Release(
node );
2491 ok(
r == 0,
"ret %08x\n",
r );
2498 r = IXMLDOMNodeList_get_item(
list, 0,
NULL);
2501 r = IXMLDOMNodeList_get_length(
list,
NULL);
2504 r = IXMLDOMNodeList_get_length(
list, &
count );
2505 ok(
r ==
S_OK,
"get_length returns %08x\n",
r );
2508 r = IXMLDOMNodeList_nextNode(
list,
NULL);
2511 r = IXMLDOMNodeList_nextNode(
list, &
node );
2512 ok(
r ==
S_OK,
"nextNode returned wrong code\n");
2520 r = IXMLDOMNode_get_nodeType(
node, &
type);
2521 ok(
r ==
S_OK,
"getNamedItem returned wrong code\n");
2524 r = IXMLDOMNode_hasChildNodes(
node,
NULL );
2530 r = IXMLDOMNode_get_baseName(
node, &
str );
2531 ok(
r ==
S_OK,
"get_baseName returned wrong code\n");
2539 IXMLDOMNode_Release(
node );
2541 IXMLDOMNodeList_Release(
list );
2543 IXMLDOMElement_Release(
element );
2547 r = IXMLDOMDocument_loadXML( doc,
str, &
b );
2548 ok(
r ==
S_OK,
"loadXML failed\n");
2549 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
2554 r = IXMLDOMDocument_get_documentElement( doc, &
element );
2555 ok(
r ==
S_OK,
"should be a document element\n");
2560 static const WCHAR szSSearch[] = {
'S',
':',
's',
'e',
'a',
'r',
'c',
'h',0};
2565 ok(
r ==
S_OK,
"couldn't get tag name\n");
2570 IXMLDOMElement_Release(
element );
2572 ok(IXMLDOMDocument_Release( doc ) == 0,
"document is not destroyed\n");
2612 IUnknown *node_typed, *node_typed2;
2644 todo_wine ok(disp != disp2,
"%d: got %p and %p\n",
ptr->type, disp, disp2);
2648 IDispatch_Release(disp);
2649 IDispatch_Release(disp2);
2653 hr = IUnknown_QueryInterface(unk, &IID_IXMLDOMNode, (
void**)&node2);
2660 hr = IUnknown_QueryInterface(unk, &IID_IXMLDOMNode, (
void**)&node3);
2662 todo_wine ok(node2 != node3,
"%d: got %p and %p\n",
ptr->type, node2, node3);
2666 IXMLDOMNode_Release(node2);
2667 IXMLDOMNode_Release(node3);
2671 hr = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (
void**)&dispex);
2673 ok(unk != (
IUnknown*)dispex,
"%d: got %p and %p\n",
ptr->type, unk, dispex);
2678 hr = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (
void**)&dispex2);
2680 todo_wine ok(dispex != dispex2,
"%d: got %p and %p\n",
ptr->type, dispex, dispex2);
2684 IDispatchEx_Release(dispex);
2685 IDispatchEx_Release(dispex2);
2689 hr = IUnknown_QueryInterface(unk,
ptr->iid, (
void**)&node_typed);
2692 hr = IUnknown_QueryInterface(unk,
ptr->iid, (
void**)&node_typed2);
2695 todo_wine ok(node_typed != node_typed2,
"%d: got %p and %p\n",
ptr->type, node_typed, node_typed2);
2696 IUnknown_Release(node_typed);
2697 IUnknown_Release(node_typed2);
2700 hr = IUnknown_QueryInterface(unk, (
ptr+1)->iid, (
void**)&node_typed);
2703 IUnknown_Release(unk);
2706 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMNode, (
void**)&node2);
2709 ok(
node == node2,
"%d: got %p and %p\n",
ptr->type,
node, node2);
2712 hr = IXMLDOMNode_QueryInterface(
node,
ptr->iid, (
void**)&node_typed);
2719 IUnknown_Release(node_typed);
2721 IXMLDOMNode_Release(node2);
2722 IXMLDOMNode_Release(
node);
2728 ref = IXMLDOMDocument_Release(doc);
2734 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
2740 IXMLDOMDocument_Release(doc);
2742 IUnknown_Release(unk);
2747 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
2753 IUnknown_Release(unk);
2757 hr = IXMLDOMDocument_get_implementation(doc, &impl);
2761 hr = IXMLDOMDocument_get_implementation(doc, &impl2);
2765 ok(impl != impl2,
"got %p, %p\n", impl, impl2);
2766 IXMLDOMImplementation_Release(impl);
2767 IXMLDOMImplementation_Release(impl2);
2771 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
2774 IXMLDOMDocument_AddRef( doc );
2776 IXMLDOMDocument_AddRef( doc );
2779 IXMLDOMDocument_Release( doc );
2780 IXMLDOMDocument_Release( doc );
2783 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
2789 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
2795 hr = IXMLDOMDocument_get_documentElement(doc, &elem2);
2803 IXMLDOMElement_AddRef(
element);
2805 IXMLDOMElement_Release(
element);
2815 hr = IXMLDOMElement_QueryInterface(elem2, &
IID_IUnknown, (
void**)&unk2);
2824 todo_wine ok(unk == unk2,
"got %p and %p\n", unk, unk2);
2825 IUnknown_Release(unk);
2829 IXMLDOMElement_AddRef(elem2);
2831 IXMLDOMElement_Release(elem2);
2833 IXMLDOMElement_Release(elem2);
2836 IUnknown_Release(unk2);
2838 hr = IXMLDOMElement_get_childNodes(
element, &node_list );
2844 hr = IXMLDOMNodeList_get_item( node_list, 0, &
node );
2849 hr = IXMLDOMNodeList_get_item( node_list, 0, &node2 );
2854 ref = IXMLDOMNode_Release(
node );
2856 ref = IXMLDOMNode_Release( node2 );
2859 ref = IXMLDOMNodeList_Release( node_list );
2862 ok(
node != node2,
"node %p node2 %p\n",
node, node2 );
2864 ref = IXMLDOMDocument_Release( doc );
2873 hr = IXMLDOMElement_QueryInterface(
element, &IID_IXMLDOMNode, (
void**)&
node);
2879 ok(unk == unk2,
"unk %p unk2 %p\n", unk, unk2);
2882 IUnknown_Release( unk2 );
2883 IUnknown_Release( unk );
2884 IXMLDOMNode_Release(
node );
2887 IXMLDOMElement_Release(
element );
2894 static const WCHAR szOne[] = {
'1',0};
2895 static const WCHAR szOneGarbage[] = {
'1',
'G',
'a',
'r',
'b',
'a',
'g',
'e',0};
2920 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
2927 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
2934 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
2941 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
2948 ok(
r ==
S_OK,
"returns %08x\n",
r );
2951 r = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
2952 ok(
r ==
S_OK,
"returns %08x\n",
r );
2953 IXMLDOMNode_Release(
node);
2957 ok(
r ==
S_OK,
"returns %08x\n",
r );
2959 IXMLDOMComment_Release(
comment);
2964 ok(
r ==
S_OK,
"returns %08x\n",
r );
2966 r = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
2967 ok(
r ==
S_OK,
"returns %08x\n",
r );
2968 IXMLDOMNode_Release(
node);
2972 ok(
r ==
S_OK,
"returns %08x\n",
r );
2974 IXMLDOMComment_Release(
comment);
2979 ok(
r ==
S_OK,
"returns %08x\n",
r );
2981 r = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
2982 ok(
r ==
S_OK,
"returns %08x\n",
r );
2983 IXMLDOMNode_Release(
node);
2987 ok(
r ==
S_OK,
"returns %08x\n",
r );
2989 IXMLDOMComment_Release(
comment);
2997 ok(
r ==
S_OK,
"returns %08x\n",
r );
3000 r = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
3001 ok(
r ==
S_OK,
"returns %08x\n",
r );
3002 IXMLDOMNode_Release(
node);
3005 r = IXMLDOMText_get_data(
text, &
str);
3006 ok(
r ==
S_OK,
"returns %08x\n",
r );
3008 IXMLDOMText_Release(
text);
3013 ok(
r ==
S_OK,
"returns %08x\n",
r );
3015 r = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
3016 ok(
r ==
S_OK,
"returns %08x\n",
r );
3017 IXMLDOMNode_Release(
node);
3020 r = IXMLDOMText_get_data(
text, &
str);
3021 ok(
r ==
S_OK,
"returns %08x\n",
r );
3023 IXMLDOMText_Release(
text);
3028 ok(
r ==
S_OK,
"returns %08x\n",
r );
3030 r = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
3031 ok(
r ==
S_OK,
"returns %08x\n",
r );
3032 IXMLDOMNode_Release(
node);
3035 r = IXMLDOMText_get_data(
text, &
str);
3036 ok(
r ==
S_OK,
"returns %08x\n",
r );
3038 IXMLDOMText_Release(
text);
3046 ok(
r ==
S_OK,
"returns %08x\n",
r );
3049 r = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
3050 ok(
r ==
S_OK,
"returns %08x\n",
r );
3051 IXMLDOMNode_Release(
node);
3054 r = IXMLDOMCDATASection_get_data(cdata, &
str);
3055 ok(
r ==
S_OK,
"returns %08x\n",
r );
3057 IXMLDOMCDATASection_Release(cdata);
3062 ok(
r ==
S_OK,
"returns %08x\n",
r );
3064 r = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
3065 ok(
r ==
S_OK,
"returns %08x\n",
r );
3066 IXMLDOMNode_Release(
node);
3069 r = IXMLDOMCDATASection_get_data(cdata, &
str);
3070 ok(
r ==
S_OK,
"returns %08x\n",
r );
3072 IXMLDOMCDATASection_Release(cdata);
3077 ok(
r ==
S_OK,
"returns %08x\n",
r );
3079 r = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
3080 ok(
r ==
S_OK,
"returns %08x\n",
r );
3081 IXMLDOMNode_Release(
node);
3084 r = IXMLDOMCDATASection_get_data(cdata, &
str);
3085 ok(
r ==
S_OK,
"returns %08x\n",
r );
3087 IXMLDOMCDATASection_Release(cdata);
3096 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3103 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3109 ok(
r ==
S_OK,
"returns %08x\n",
r );
3121 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3130 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3137 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3150 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3157 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3165 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3172 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3178 ok(
r ==
S_OK,
"returns %08x\n",
r );
3189 ok(
r ==
S_OK,
"returns %08x\n",
r );
3195 ok(
r ==
S_OK,
"returns %08x\n",
r );
3209 ok(
r ==
S_OK,
"returns %08x\n",
r );
3212 r = IXMLDOMDocument_appendChild( doc,
node, &
root );
3213 ok(
r ==
S_OK,
"returns %08x\n",
r );
3219 ref = IXMLDOMNode_Release(
node );
3227 ok(
r ==
S_OK,
"returns %08x\n",
r );
3233 ok(
r ==
S_OK,
"returns %08x\n",
r );
3240 ok(
r ==
S_OK,
"returns %08x\n",
r );
3245 IXMLDOMNode_Release(
child );
3246 IUnknown_Release( unk );
3251 ok(
r ==
S_OK,
"returns %08x\n",
r );
3253 IXMLDOMNode_Release(
child );
3258 ok(
r ==
S_OK,
"returns %08x\n",
r );
3259 IXMLDOMNode_Release(
node );
3261 r = IXMLDOMNode_QueryInterface(
root, &IID_IXMLDOMElement, (
void**)&
element );
3262 ok(
r ==
S_OK,
"returns %08x\n",
r );
3264 r = IXMLDOMElement_get_attributes(
element, &attr_map );
3265 ok(
r ==
S_OK,
"returns %08x\n",
r );
3266 r = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3267 ok(
r ==
S_OK,
"returns %08x\n",
r );
3269 IXMLDOMNamedNodeMap_Release( attr_map );
3275 ok(
r ==
S_OK,
"returns %08x\n",
r );
3276 r = IXMLDOMElement_get_attributes(
element, &attr_map );
3277 ok(
r ==
S_OK,
"returns %08x\n",
r );
3278 r = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3279 ok(
r ==
S_OK,
"returns %08x\n",
r );
3281 IXMLDOMNamedNodeMap_Release( attr_map );
3287 ok(
r ==
S_OK,
"returns %08x\n",
r );
3288 r = IXMLDOMElement_get_attributes(
element, &attr_map );
3289 ok(
r ==
S_OK,
"returns %08x\n",
r );
3290 r = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3291 ok(
r ==
S_OK,
"returns %08x\n",
r );
3293 IXMLDOMNamedNodeMap_Release( attr_map );
3296 ok(
r ==
S_OK,
"returns %08x\n",
r );
3305 ok(
r ==
S_OK,
"returns %08x\n",
r );
3306 r = IXMLDOMElement_get_attributes(
element, &attr_map );
3307 ok(
r ==
S_OK,
"returns %08x\n",
r );
3308 r = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3309 ok(
r ==
S_OK,
"returns %08x\n",
r );
3311 IXMLDOMNamedNodeMap_Release( attr_map );
3319 ok(
r ==
S_OK,
"returns %08x\n",
r );
3322 ok(
r ==
S_OK,
"returns %08x\n",
r );
3332 ok(
r ==
S_OK,
"returns %08x\n",
r );
3336 IXMLDOMElement_Release(
element );
3337 IXMLDOMNode_Release(
root );
3338 IXMLDOMDocument_Release( doc );
3348 {
"",
"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 },
3349 {
"*",
"E2.D1 E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1 E1.E4.E2.D1", 6 },
3350 {
"bs",
"E1.E2.D1", 1 },
3371 ok(
r ==
S_OK,
"loadXML failed\n");
3372 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3375 r = IXMLDOMDocument_getElementsByTagName(doc,
NULL, &node_list);
3377 r = IXMLDOMDocument_getElementsByTagName(doc,
_bstr_(
"*"),
NULL);
3382 r = IXMLDOMDocument_getElementsByTagName(doc,
_bstr_(
ptr->query), &node_list);
3384 r = IXMLDOMNodeList_get_length(node_list, &
len);
3386 ok(
len ==
ptr->len,
"%s: got len %d, expected %d\n",
ptr->query,
len,
ptr->len);
3397 r = IXMLDOMDocument_getElementsByTagName(doc, &
buff[2], &node_list);
3399 r = IXMLDOMNodeList_get_length( node_list, &
len );
3402 IXMLDOMNodeList_Release( node_list );
3405 r = IXMLDOMDocument_get_documentElement(doc, &
elem);
3411 r = IXMLDOMElement_getElementsByTagName(
elem,
NULL, &node_list);
3413 r = IXMLDOMElement_getElementsByTagName(
elem,
str,
NULL);
3416 r = IXMLDOMElement_getElementsByTagName(
elem,
str, &node_list);
3418 r = IXMLDOMNodeList_get_length( node_list, &
len );
3428 r = IXMLDOMElement_getElementsByTagName(
elem, &
buff[2], &node_list);
3430 r = IXMLDOMNodeList_get_length( node_list, &
len );
3433 IXMLDOMNodeList_Release( node_list );
3435 IXMLDOMElement_Release(
elem);
3437 IXMLDOMDocument_Release( doc );
3457 ok(
r ==
S_OK,
"loadXML failed\n");
3458 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3461 r = IXMLDOMDocument_getElementsByTagName( doc,
str, &node_list );
3466 r = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMNode, (
void**)&nodeRoot);
3470 r = IXMLDOMNode_get_text( nodeRoot, &
str );
3474 IXMLDOMNode_Release(nodeRoot);
3477 r = IXMLDOMNodeList_get_length( node_list,
NULL );
3480 r = IXMLDOMNodeList_get_length( node_list, &
len );
3482 ok(
len == 1,
"expect 1 got %d\n",
len );
3484 r = IXMLDOMNodeList_get_item( node_list, 0,
NULL );
3487 r = IXMLDOMNodeList_nextNode( node_list,
NULL );
3490 r = IXMLDOMNodeList_get_item( node_list, 0, &
node );
3492 IXMLDOMNodeList_Release( node_list );
3498 r = IXMLDOMNode_get_text(
node, &
str );
3503 r = IXMLDOMNode_get_attributes(
node, &node_map );
3507 r = IXMLDOMNamedNodeMap_getNamedItem( node_map,
str, &node2 );
3511 r = IXMLDOMNode_get_text( node2, &
str );
3516 r = IXMLDOMNode_get_firstChild( node2, &node3 );
3519 r = IXMLDOMNode_get_text( node3, &
str );
3525 IXMLDOMNode_Release( node3 );
3526 IXMLDOMNode_Release( node2 );
3527 IXMLDOMNamedNodeMap_Release( node_map );
3528 IXMLDOMNode_Release(
node );
3529 IXMLDOMDocument_Release( doc );
3540static void verify_nodelist_query_interface(
IXMLDOMNodeList *node_list)
3555 hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IXMLDOMNodeList,
NULL);
3578 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3580 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
3583 hr = IXMLDOMElement_get_childNodes(
element, &node_list );
3587 verify_nodelist_query_interface(node_list);
3590 hr = IXMLDOMNodeList_get_length( node_list, &
len );
3596 hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IEnumVARIANT, (
void**)&enum1);
3602 hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IEnumVARIANT, (
void**)&enum2);
3605 ok(enum2 == enum1,
"got %p, %p\n", enum2, enum1);
3606 IEnumVARIANT_Release(enum2);
3610 hr = IEnumVARIANT_QueryInterface(enum1, &
IID_IUnknown, (
void**)&unk2);
3614 ok(
unk1 == unk2,
"got %p, %p\n",
unk1, unk2);
3615 IUnknown_Release(
unk1);
3616 IUnknown_Release(unk2);
3619 hr = IXMLDOMNodeList__newEnum(node_list, (
IUnknown**)&enum2);
3623 ok(enum2 != enum1,
"got %p, %p\n", enum2, enum1);
3628 hr = IEnumVARIANT_QueryInterface(enum2, &
IID_IUnknown, (
void**)&unk2);
3632 ok(
unk1 != unk2,
"got %p, %p\n",
unk1, unk2);
3633 IUnknown_Release(
unk1);
3634 IUnknown_Release(unk2);
3636 hr = IXMLDOMNodeList__newEnum(node_list, (
IUnknown**)&enum3);
3638 ok(enum2 != enum3,
"got %p, %p\n", enum2, enum3);
3639 IEnumVARIANT_Release(enum3);
3640 IEnumVARIANT_Release(enum2);
3643 hr = IXMLDOMNodeList_get_item(node_list, 0, &
node);
3645 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3649 IXMLDOMNode_Release(
node);
3651 hr = IXMLDOMNodeList_nextNode(node_list, &
node);
3653 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3657 IXMLDOMNode_Release(
node);
3660 hr = IEnumVARIANT_Next(enum1, 1, &
v,
NULL);
3665 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3669 IXMLDOMNode_Release(
node);
3672 hr = IXMLDOMNodeList_nextNode(node_list, &
node);
3674 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3678 IXMLDOMNode_Release(
node);
3680 IEnumVARIANT_Release(enum1);
3682 hr = IXMLDOMNodeList_get_item( node_list, 2, &
node );
3685 hr = IXMLDOMNode_get_childNodes(
node, &node_list2 );
3688 hr = IXMLDOMNodeList_get_length( node_list2, &
len );
3692 hr = IXMLDOMNodeList_get_item( node_list2, 0, &node2);
3695 IXMLDOMNodeList_Release( node_list2 );
3696 IXMLDOMNode_Release(
node );
3697 IXMLDOMNodeList_Release( node_list );
3698 IXMLDOMElement_Release(
element );
3701 hr = IXMLDOMDocument_get_firstChild(doc, &
node);
3705 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3711 node_list = (
void*)0xdeadbeef;
3712 hr = IXMLDOMNode_get_childNodes(
node, &node_list);
3716 hr = IXMLDOMNodeList_get_length(node_list, &
len);
3720 IXMLDOMNodeList_Release( node_list );
3721 IXMLDOMNode_Release(
node);
3723 IXMLDOMDocument_Release( doc );
3729 static const WCHAR xmlW[] = {
'x',
'm',
'l',0};
3739 ok(
r ==
S_OK,
"loadXML failed\n");
3740 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3742 r = IXMLDOMDocument_get_firstChild( doc, &
node );
3745 r = IXMLDOMNode_get_nodeName(
node, &
str );
3751 IXMLDOMNode_Release(
node );
3752 IXMLDOMDocument_Release( doc );
3759 static const WCHAR lcW[] = {
'l',
'c',0};
3760 static const WCHAR foW[] = {
'f',
'o',0};
3770 ok(
r ==
S_OK,
"loadXML failed\n");
3771 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3773 r = IXMLDOMDocument_get_lastChild( doc, &
node );
3776 r = IXMLDOMNode_get_nodeName(
node, &
str );
3779 ok(
memcmp(
str, lcW,
sizeof(lcW)) == 0,
"expected \"lc\" node name\n");
3782 r = IXMLDOMNode_get_lastChild(
node, &
child );
3785 r = IXMLDOMNode_get_nodeName(
child, &
str );
3788 ok(
memcmp(
str, foW,
sizeof(foW)) == 0,
"expected \"fo\" node name\n");
3791 IXMLDOMNode_Release(
child );
3792 IXMLDOMNode_Release(
node );
3793 IXMLDOMDocument_Release( doc );
3804 IXMLDOMNode *fo_node, *ba_node, *removed_node, *temp_node, *lc_node;
3810 ok(
r ==
S_OK,
"loadXML failed\n");
3811 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3813 r = IXMLDOMDocument_get_documentElement( doc, &
element );
3817 r = IXMLDOMElement_get_childNodes(
element, &root_list );
3821 r = IXMLDOMNodeList_get_item( root_list, 3, &fo_node );
3825 r = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
3829 r = IXMLDOMNodeList_get_item( fo_list, 0, &ba_node );
3834 removed_node = (
void*)0xdeadbeef;
3835 r = IXMLDOMElement_removeChild(
element,
NULL, &removed_node );
3837 ok( removed_node == (
void*)0xdeadbeef,
"%p\n", removed_node );
3840 removed_node = (
void*)0xdeadbeef;
3843 r = IXMLDOMElement_removeChild(
element, ba_node, &removed_node );
3845 ok( removed_node ==
NULL,
"%p\n", removed_node );
3851 r = IXMLDOMElement_removeChild(
element, fo_node, &removed_node );
3853 ok( fo_node == removed_node,
"node %p node2 %p\n", fo_node, removed_node );
3858 temp_node = (
void*)0xdeadbeef;
3859 r = IXMLDOMElement_removeChild(
element, fo_node, &temp_node );
3861 ok( temp_node ==
NULL,
"%p\n", temp_node );
3862 IXMLDOMNode_Release( fo_node );
3865 r = IXMLDOMNode_get_parentNode( removed_node, &temp_node );
3867 ok( temp_node ==
NULL,
"%p\n", temp_node );
3869 IXMLDOMNode_Release( removed_node );
3870 IXMLDOMNode_Release( ba_node );
3871 IXMLDOMNodeList_Release( fo_list );
3873 r = IXMLDOMNodeList_get_item( root_list, 0, &lc_node );
3876 r = IXMLDOMNode_QueryInterface( lc_node, &IID_IXMLDOMElement, (
void**)&lc_element );
3882 IXMLDOMElement_Release( lc_element );
3884 temp_node = (
void*)0xdeadbeef;
3885 r = IXMLDOMNode_get_parentNode( lc_node, &temp_node );
3887 ok( temp_node ==
NULL,
"%p\n", temp_node );
3889 IXMLDOMNode_Release( lc_node );
3890 IXMLDOMNodeList_Release( root_list );
3891 IXMLDOMElement_Release(
element );
3892 IXMLDOMDocument_Release( doc );
3903 IXMLDOMNode *fo_node, *ba_node, *lc_node, *removed_node, *temp_node;
3911 ok(
r ==
S_OK,
"loadXML failed\n");
3912 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3914 r = IXMLDOMDocument_get_documentElement( doc, &
element );
3917 r = IXMLDOMElement_get_childNodes(
element, &root_list );
3920 r = IXMLDOMNodeList_get_item( root_list, 0, &lc_node );
3923 r = IXMLDOMNodeList_get_item( root_list, 3, &fo_node );
3926 r = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
3929 r = IXMLDOMNodeList_get_item( fo_list, 0, &ba_node );
3932 IXMLDOMNodeList_Release( fo_list );
3935 removed_node = (
void*)0xdeadbeef;
3936 r = IXMLDOMElement_replaceChild(
element, ba_node,
NULL, &removed_node );
3938 ok( removed_node == (
void*)0xdeadbeef,
"%p\n", removed_node );
3941 removed_node = (
void*)0xdeadbeef;
3942 r = IXMLDOMElement_replaceChild(
element,
NULL, fo_node, &removed_node );
3944 ok( removed_node == (
void*)0xdeadbeef,
"%p\n", removed_node );
3947 removed_node = (
void*)0xdeadbeef;
3948 r = IXMLDOMElement_replaceChild(
element, lc_node, ba_node, &removed_node );
3950 ok( removed_node ==
NULL,
"%p\n", removed_node );
3951 IXMLDOMNode_Release( lc_node );
3954 removed_node = (
void*)0xdeadbeef;
3955 r = IXMLDOMNode_replaceChild( fo_node, fo_node, ba_node, &removed_node );
3957 ok( removed_node ==
NULL,
"%p\n", removed_node );
3959 r = IXMLDOMElement_replaceChild(
element, ba_node, fo_node,
NULL );
3962 r = IXMLDOMNodeList_get_item( root_list, 3, &temp_node );
3967 ok( ba_node != temp_node,
"ba_node %p temp_node %p\n", ba_node, temp_node);
3970 r = IXMLDOMNode_QueryInterface( ba_node, &
IID_IUnknown, (
void**)&unk2);
3974 IUnknown_Release(
unk1 );
3975 IUnknown_Release( unk2 );
3978 r = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
3982 r = IXMLDOMNode_QueryInterface( ba_node, &IID_IXMLDOMElement, (
void**)&ba_element);
3986 removed_node =
NULL;
3987 r = IXMLDOMElement_replaceChild(
element, ba_node, (
IXMLDOMNode*)ba_element, &removed_node );
3989 ok( removed_node !=
NULL,
"got %p\n", removed_node);
3991 IXMLDOMElement_Release( ba_element );
3993 r = IXMLDOMNodeList_get_length( fo_list, &
len);
3997 IXMLDOMNodeList_Release( fo_list );
3999 IXMLDOMNode_Release(ba_node);
4000 IXMLDOMNode_Release(fo_node);
4001 IXMLDOMNode_Release(temp_node);
4002 IXMLDOMNodeList_Release( root_list );
4003 IXMLDOMElement_Release(
element );
4004 IXMLDOMDocument_Release( doc );
4013 IXMLDOMNode *pr_node, *removed_node, *removed_node2;
4024 ok(
r ==
S_OK,
"loadXML failed\n");
4025 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4027 r = IXMLDOMDocument_get_documentElement( doc, &
element );
4030 r = IXMLDOMElement_get_childNodes(
element, &root_list );
4033 r = IXMLDOMNodeList_get_item( root_list, 1, &pr_node );
4036 r = IXMLDOMNode_get_attributes( pr_node, &pr_attrs );
4039 r = IXMLDOMNamedNodeMap_get_length( pr_attrs, &
len );
4043 removed_node = (
void*)0xdeadbeef;
4044 r = IXMLDOMNamedNodeMap_removeNamedItem( pr_attrs,
NULL, &removed_node);
4046 ok ( removed_node == (
void*)0xdeadbeef,
"got %p\n", removed_node);
4048 removed_node = (
void*)0xdeadbeef;
4050 r = IXMLDOMNamedNodeMap_removeNamedItem( pr_attrs,
str, &removed_node);
4053 removed_node2 = (
void*)0xdeadbeef;
4054 r = IXMLDOMNamedNodeMap_removeNamedItem( pr_attrs,
str, &removed_node2);
4056 ok ( removed_node2 ==
NULL,
"got %p\n", removed_node2 );
4058 r = IXMLDOMNamedNodeMap_get_length( pr_attrs, &
len );
4062 r = IXMLDOMNamedNodeMap_setNamedItem( pr_attrs, removed_node,
NULL);
4064 IXMLDOMNode_Release(removed_node);
4066 r = IXMLDOMNamedNodeMap_get_length( pr_attrs, &
len );
4070 r = IXMLDOMNamedNodeMap_removeNamedItem( pr_attrs,
str,
NULL);
4073 r = IXMLDOMNamedNodeMap_get_length( pr_attrs, &
len );
4077 r = IXMLDOMNamedNodeMap_removeNamedItem( pr_attrs,
str,
NULL);
4082 IXMLDOMNamedNodeMap_Release( pr_attrs );
4083 IXMLDOMNode_Release( pr_node );
4084 IXMLDOMNodeList_Release( root_list );
4085 IXMLDOMElement_Release(
element );
4086 IXMLDOMDocument_Release( doc );
4091#define test_IObjectSafety_set(p, r, r2, s, m, e, e2) _test_IObjectSafety_set(__LINE__,p, r, r2, s, m, e, e2)
4099 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
set,
mask);
4104 "SetInterfaceSafetyOptions: expected %08x, got %08x\n", result2,
hr );
4106 supported =
enabled = 0xCAFECAFE;
4107 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4113 "Expected %08x, got %08x\n", expected2,
enabled);
4117 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
4118 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_SECURITY_MANAGER,
4122 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4127#define test_IObjectSafety_common(s) _test_IObjectSafety_common(__LINE__,s)
4136 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported,
NULL);
4139 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4141 ok_(__FILE__,
line)(
broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
4142 supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) ,
4143 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
4144 "got %08x\n", supported);
4150 INTERFACESAFE_FOR_UNTRUSTED_CALLER, INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4151 INTERFACESAFE_FOR_UNTRUSTED_CALLER, INTERFACESAFE_FOR_UNTRUSTED_CALLER);
4154 INTERFACESAFE_FOR_UNTRUSTED_DATA, INTERFACESAFE_FOR_UNTRUSTED_DATA,
4155 INTERFACESAFE_FOR_UNTRUSTED_DATA, INTERFACESAFE_FOR_UNTRUSTED_DATA);
4158 INTERFACE_USES_SECURITY_MANAGER, INTERFACE_USES_SECURITY_MANAGER,
4159 0, INTERFACE_USES_SECURITY_MANAGER );
4164 INTERFACE_USES_DISPEX, INTERFACE_USES_DISPEX,
4168 INTERFACE_USES_DISPEX, 0,
4172 0, INTERFACE_USES_DISPEX,
4178 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA,
4179 INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4180 INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4181 INTERFACESAFE_FOR_UNTRUSTED_CALLER);
4184 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA,
4185 INTERFACESAFE_FOR_UNTRUSTED_DATA,
4186 INTERFACESAFE_FOR_UNTRUSTED_DATA,
4187 INTERFACESAFE_FOR_UNTRUSTED_DATA);
4190 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA,
4191 INTERFACE_USES_SECURITY_MANAGER,
4197 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
4198 INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4199 INTERFACESAFE_FOR_UNTRUSTED_CALLER);
4201 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4203 ok_(__FILE__,
line)(
enabled == INTERFACESAFE_FOR_UNTRUSTED_CALLER,
"Expected INTERFACESAFE_FOR_UNTRUSTED_CALLER got %08x\n",
enabled);
4204 ok_(__FILE__,
line)(
broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
4205 supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) ,
4206 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
4207 "got %08x\n", supported);
4209 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
4210 INTERFACESAFE_FOR_UNTRUSTED_DATA,
4211 INTERFACESAFE_FOR_UNTRUSTED_DATA);
4213 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4216 enabled == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA),
4217 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA) got %08x\n",
enabled);
4218 ok_(__FILE__,
line)(
broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
4219 supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) ,
4220 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
4221 "got %08x\n", supported);
4227 IXMLDOMDocument2 *doc2, *dtddoc2;
4241 r = IXMLDOMDocument_QueryInterface( doc, &IID_IXMLDOMDocument2, (
void**)&doc2 );
4246 ole_check(IXMLDOMDocument2_get_readyState(doc2, &
res));
4247 ok(
res == READYSTATE_COMPLETE,
"expected READYSTATE_COMPLETE (4), got %i\n",
res);
4252 ok(
err !=
NULL,
"expected a pointer\n");
4258 ok(
res == E_XML_NOTWF,
"got %08x\n",
res);
4259 IXMLDOMParseError_Release(
err);
4263 ok(
r ==
S_OK,
"loadXML failed\n");
4264 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4267 ok(
res == READYSTATE_COMPLETE,
"expected READYSTATE_COMPLETE (4), got %i\n",
res);
4271 ok(
err !=
NULL,
"expected a pointer\n");
4277 ok(
res == E_XML_NODTD,
"got %08x\n",
res);
4278 IXMLDOMParseError_Release(
err);
4281 r = IXMLDOMDocument_QueryInterface( doc, &IID_IDispatchEx, (
void**)&dispex );
4285 IDispatchEx_Release(dispex);
4289 IXMLDOMDocument2_AddRef(doc2);
4307 expect_eq(IXMLDOMDocument2_Release(doc2), 2,
int,
"%d");
4319 r = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"SelectionNamespaces"),
var);
4325 r = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"SelectionNamespaces"),
var);
4333 IXMLDOMDocument2_Release( doc2 );
4334 IXMLDOMDocument_Release( doc );
4337 ole_check(IXMLDOMDocument2_put_validateOnParse(dtddoc2, VARIANT_FALSE));
4339 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4348 IXMLDOMParseError_Release(
err);
4352 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4362 IXMLDOMParseError_Release(
err);
4366 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4376 IXMLDOMParseError_Release(
err);
4380 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4390 IXMLDOMParseError_Release(
err);
4394 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4404 IXMLDOMParseError_Release(
err);
4408 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4418 IXMLDOMParseError_Release(
err);
4422 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4432 IXMLDOMParseError_Release(
err);
4436 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4446 IXMLDOMParseError_Release(
err);
4450 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4460 IXMLDOMParseError_Release(
err);
4464 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4474 IXMLDOMParseError_Release(
err);
4478 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4488 IXMLDOMParseError_Release(
err);
4491 IXMLDOMDocument2_Release( dtddoc2 );
4495#define helper_ole_check(expr) { \
4497 ok_(__FILE__, line)(r == S_OK, "=> %i: " #expr " returned %08x\n", __LINE__, r); \
4500#define helper_ole_check_ver(expr) { \
4502 ok_(__FILE__, line)(r == S_OK, "-> %i (%s): " #expr " returned %08x\n", __LINE__, ver, r); \
4505#define helper_expect_list_and_release(list, expstr) { \
4506 char *str = list_to_string(list); \
4507 ok_(__FILE__, line)(strcmp(str, expstr)==0, "=> %i (%s): Invalid node list: %s, expected %s\n", __LINE__, ver, str, expstr); \
4508 if (list) IXMLDOMNodeList_Release(list); \
4511#define helper_expect_bstr_and_release(bstr, str) { \
4512 ok_(__FILE__, line)(lstrcmpW(bstr, _bstr_(str)) == 0, \
4513 "=> %i (%s): got %s\n", __LINE__, ver, wine_dbgstr_w(bstr)); \
4514 SysFreeString(bstr); \
4517#define check_ws_ignored(ver, doc, str) _check_ws_ignored(__LINE__, ver, doc, str)
4532 "[4]1.E1.E5.E1.E2.D1 T2.E1.E5.E1.E2.D1 E3.E1.E5.E1.E2.D1 "
4533 "E4.E1.E5.E1.E2.D1 E5.E1.E5.E1.E2.D1 E6.E1.E5.E1.E2.D1");
4543 IXMLDOMNode_Release(node1);
4547 "T1.E2.E5.E1.E2.D1 E2.E2.E5.E1.E2.D1 T3.E2.E5.E1.E2.D1 "
4548 "E4.E2.E5.E1.E2.D1 T5.E2.E5.E1.E2.D1 E6.E2.E5.E1.E2.D1 T7.E2.E5.E1.E2.D1");
4551 "\n This is a description with preserved whitespace. \n ");
4552 IXMLDOMNode_Release(node2);
4555#define check_ws_preserved(ver, doc, str) _check_ws_preserved(__LINE__, ver, doc, str)
4570 "T1.E2.E10.E2.E2.D1 [4]2.E2.E10.E2.E2.D1 T3.E2.E10.E2.E2.D1 "
4571 "E4.E2.E10.E2.E2.D1 T5.E2.E10.E2.E2.D1 E6.E2.E10.E2.E2.D1 "
4572 "E7.E2.E10.E2.E2.D1 E8.E2.E10.E2.E2.D1 T9.E2.E10.E2.E2.D1");
4582 IXMLDOMNode_Release(node1);
4586 "T1.E4.E10.E2.E2.D1 E2.E4.E10.E2.E2.D1 T3.E4.E10.E2.E2.D1 "
4587 "E4.E4.E10.E2.E2.D1 T5.E4.E10.E2.E2.D1 E6.E4.E10.E2.E2.D1 T7.E4.E10.E2.E2.D1");
4590 "\n This is a description with preserved whitespace. \n ");
4591 IXMLDOMNode_Release(node2);
4596 static const WCHAR b1_p[] = {
' ',
'T',
'e',
'x',
't',
' ',
'A',
' ',
'e',
'n',
'd',
' ',0};
4597 static const WCHAR b1_i[] = {
'T',
'e',
'x',
't',
' ',
'A',
' ',
'e',
'n',
'd',0};
4598 static const WCHAR b2_p[] = {
'A',
'B',
' ',
'C',
' ',0};
4599 static const WCHAR b2_i[] = {
'A',
'B',
' ',
'C',0};
4608 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc,
preserve);
4614 hr = IXMLDOMDocument2_get_documentElement(doc, &
root);
4617 hr = IXMLDOMElement_get_childNodes(
root, &
list);
4619 IXMLDOMElement_Release(
root);
4622 hr = IXMLDOMNodeList_get_item(
list, 0, &
node);
4624 hr = IXMLDOMNode_get_text(
node, &
s);
4628 IXMLDOMNode_Release(
node);
4631 hr = IXMLDOMNodeList_get_item(
list, 1, &
node);
4633 hr = IXMLDOMNode_get_text(
node, &
s);
4637 IXMLDOMNode_Release(
node);
4639 IXMLDOMNodeList_Release(
list);
4649 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2" },
4650 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26" },
4651 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30" },
4652 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40" },
4653 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60" },
4661 while (class_ptr->
clsid)
4663 IXMLDOMDocument2 *doc1, *doc2, *doc3, *doc4;
4677 &IID_IXMLDOMDocument2, (
void**)&doc1);
4681 &IID_IXMLDOMDocument2, (
void**)&doc2);
4684 ole_check(IXMLDOMDocument2_put_preserveWhiteSpace(doc2, VARIANT_TRUE));
4685 ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc1, &
b));
4686 ok(
b == VARIANT_FALSE,
"expected false\n");
4687 ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc2, &
b));
4688 ok(
b == VARIANT_TRUE,
"expected true\n");
4691 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4693 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4703 ole_check(IXMLDOMDocument2_QueryInterface(doc1, &IID_IXMLDOMDocument2, (
void**) &doc3));
4704 ole_check(IXMLDOMDocument2_QueryInterface(doc2, &IID_IXMLDOMDocument2, (
void**) &doc4));
4706 ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc3, &
b));
4707 ok(
b == VARIANT_FALSE,
"expected false\n");
4708 ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc4, &
b));
4709 ok(
b == VARIANT_TRUE,
"expected true\n");
4715 ole_check(IXMLDOMDocument2_put_preserveWhiteSpace(doc1, VARIANT_TRUE));
4716 ole_check(IXMLDOMDocument2_put_preserveWhiteSpace(doc2, VARIANT_FALSE));
4723 ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc1, &
b));
4724 ok(
b == VARIANT_TRUE,
"expected true\n");
4725 ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc2, &
b));
4726 ok(
b == VARIANT_FALSE,
"expected false\n");
4729 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4731 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4737 ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc3, &
b));
4738 ok(
b == VARIANT_TRUE,
"expected true\n");
4739 ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc4, &
b));
4740 ok(
b == VARIANT_FALSE,
"expected false\n");
4745 IXMLDOMDocument2_Release(doc2);
4746 IXMLDOMDocument2_Release(doc3);
4747 IXMLDOMDocument2_Release(doc4);
4754 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc1, VARIANT_FALSE);
4759 ok(
b == VARIANT_TRUE,
"for %x\n",
b);
4761 hr = IXMLDOMDocument2_get_documentElement(doc1, &
root);
4763 hr = IXMLDOMElement_get_childNodes(
root, &
list);
4766 hr = IXMLDOMNodeList_get_length(
list, &
len);
4769 IXMLDOMNodeList_Release(
list);
4770 IXMLDOMElement_Release(
root);
4772 IXMLDOMDocument2_Release(doc1);
4789 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4790 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4791 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4792 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4794 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4795 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4796 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4797 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4799 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4800 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4801 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4802 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4804 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4805 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4806 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4807 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4809 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4810 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4811 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4812 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4823 {
"*/a",
"E1.E1.E2.D1 E1.E2.E2.D1 E1.E4.E2.D1" },
4824 {
"*/b",
"E2.E1.E2.D1 E2.E2.E2.D1 E2.E4.E2.D1" },
4825 {
"*/c",
"E3.E1.E2.D1 E3.E2.E2.D1" },
4826 {
"*/d",
"E4.E1.E2.D1 E4.E2.E2.D1 E4.E4.E2.D1" },
4827 {
"//a",
"E1.E1.E2.D1 E1.E2.E2.D1 E1.E4.E2.D1" },
4828 {
"//b",
"E2.E1.E2.D1 E2.E2.E2.D1 E2.E4.E2.D1" },
4829 {
"//c",
"E3.E1.E2.D1 E3.E2.E2.D1" },
4830 {
"//d",
"E4.E1.E2.D1 E4.E2.E2.D1 E4.E4.E2.D1" },
4831 {
"//c[@type]",
"E3.E2.E2.D1" },
4832 {
"//c[@type]/ancestor::node()[1]",
"E2.E2.D1" },
4833 {
"//c[@type]/ancestor-or-self::node()[1]",
"E3.E2.E2.D1" },
4834 {
"//c[@type]/attribute::node()[1]",
"A'type'.E3.E2.E2.D1" },
4835 {
"//c[@type]/child::node()[1]",
"T1.E3.E2.E2.D1" },
4836 {
"//c[@type]/descendant::node()[1]",
"T1.E3.E2.E2.D1" },
4837 {
"//c[@type]/descendant-or-self::node()[1]",
"E3.E2.E2.D1" },
4838 {
"//c[@type]/following::node()[1]",
"E4.E2.E2.D1" },
4839 {
"//c[@type]/following-sibling::node()[1]",
"E4.E2.E2.D1" },
4840 {
"//c[@type]/parent::node()[1]",
"E2.E2.D1" },
4841 {
"//c[@type]/preceding::node()[1]",
"T1.E2.E2.E2.D1" },
4842 {
"//c[@type]/self::node()[1]",
"E3.E2.E2.D1" },
4843 {
"child::*",
"E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1" },
4844 {
"child::node()",
"E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1" },
4845 {
"child::text()",
"" },
4846 {
"child::*/..",
"E2.D1" },
4847 {
"child::*//@*/..",
"E2.E5.E1.E2.D1 E2.E2.D1 E3.E2.E2.D1" },
4848 {
"self::node()",
"E2.D1" },
4849 {
"ancestor::node()",
"D1" },
4850 {
"elem[c][last()]/a",
"E1.E2.E2.D1"},
4851 {
"ancestor-or-self::node()[1]",
"E2.D1" },
4852 {
"((//a)[1])[last()]",
"E1.E1.E2.D1" },
4853 {
"//elem[@*]",
"E2.E2.D1" },
4863 IXMLDOMDocument2 *doc;
4881 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4888 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
4894 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
4899 hr = IXMLDOMNodeList_reset(
list);
4904 for ( ; xptest->
query ; xptest++ )
4909 ok(
hr ==
S_OK,
"query evaluation failed for query=%s\n", xptest->
query);
4916 ok(!
strcmp(
str, xptest->
list),
"query=%s, invalid node list: \"%s\", expected \"%s\"\n",
4920 IXMLDOMNodeList_Release(
list);
4927 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"/root/namespace::*"), &
list);
4930 hr = IXMLDOMNodeList_get_length(
list, &
len);
4940 IXMLDOMNode_Release(
node);
4942 IXMLDOMNodeList_Release(
list);
4955 IXMLDOMNode_Release(
node);
4958 IXMLDOMNode_Release(
node);
4965 ole_check(IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"elem[3]/preceding-sibling::*"), &
list));
5002 ole_check(IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
5003 _variantbstr_(
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'")));
5016 ole_expect(IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
5017 _variantbstr_(
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' xmlns:foo=###")),
E_FAIL);
5028 ole_expect(IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
5029 _variantbstr_(
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' param='test'")),
E_FAIL);
5032 IXMLDOMNode_Release(rootNode);
5033 IXMLDOMNode_Release(elem1Node);
5036 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
5040 hr = IXMLDOMDocument2_get_lastChild(doc, &rootNode);
5045 hr = IXMLDOMDocument2_removeChild(doc, rootNode,
NULL);
5047 IXMLDOMNode_Release(rootNode);
5051 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5055 IXMLDOMNodeList_Release(
list);
5057 hr = IXMLDOMNode_get_nodeName(rootNode, &
str);
5061 IXMLDOMNode_Release(rootNode);
5066 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
5068 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
5072 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5075 hr = IXMLDOMNode_QueryInterface(rootNode, &IID_IXMLDOMElement, (
void**)&
elem);
5082 IXMLDOMElement_Release(
elem);
5083 IXMLDOMNode_Release(rootNode);
5086 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5089 hr = IXMLDOMNode_QueryInterface(rootNode, &IID_IXMLDOMElement, (
void**)&
elem);
5094 IXMLDOMAttribute_Release(
attr);
5096 IXMLDOMElement_Release(
elem);
5097 IXMLDOMNode_Release(rootNode);
5100 hr = IXMLDOMDocument2_get_documentElement(doc, &
elem);
5105 IXMLDOMAttribute_Release(
attr);
5107 IXMLDOMElement_Release(
elem);
5114 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
5116 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
5120 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5124 hr = IXMLDOMDocument_appendChild(doc2, rootNode,
NULL);
5132 IXMLDOMNode_Release(rootNode);
5133 IXMLDOMNodeList_Release(
list);
5134 IXMLDOMDocument_Release(doc2);
5135 IXMLDOMDocument2_Release(doc);
5152 ok(
b == VARIANT_TRUE,
"failed to load, %s\n",
ptr->name);
5160 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
var);
5161 ok(
hr ==
ptr->hr,
"got 0x%08x, for %s, %s\n",
hr,
ptr->name,
ptr->ns);
5164 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionNamespaces"), &
var);
5170 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//test:c"), &
list);
5175 IXMLDOMDocument2_Release(doc);
5185 IXMLDOMDocument2 *doc, *doc_clone;
5191 LONG attr_cnt, attr_cnt1;
5202 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
5204 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionLanguage"), &
v);
5211 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionLanguage"),
v);
5216 hr = IXMLDOMDocument2_cloneNode(doc, VARIANT_TRUE, &
node);
5226 IXMLDOMNodeList_Release(
pList);
5228 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMDocument2, (
void**)&doc_clone);
5232 hr = IXMLDOMDocument2_getProperty(doc_clone,
_bstr_(
"SelectionLanguage"), &
v);
5237 IXMLDOMDocument2_Release(doc_clone);
5238 IXMLDOMNode_Release(
node);
5240 hr = IXMLDOMDocument2_selectSingleNode(doc,
_bstr_(
"lc/pr"), &
node);
5245 hr = IXMLDOMNode_cloneNode(
node, VARIANT_TRUE,
NULL);
5249 hr = IXMLDOMNode_cloneNode(
node, VARIANT_TRUE, &node_clone);
5253 hr = IXMLDOMNode_get_firstChild(node_clone, &node_first);
5255 hr = IXMLDOMNode_get_ownerDocument(node_clone, &doc2);
5257 IXMLDOMDocument_Release(doc2);
5258 IXMLDOMNode_Release(node_first);
5266 IXMLDOMNodeList_Release(
pList);
5268 hr = IXMLDOMNode_get_attributes(
node, &mapAttr);
5271 hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt);
5273 ok(attr_cnt == 3,
"got %d\n", attr_cnt);
5274 IXMLDOMNamedNodeMap_Release(mapAttr);
5276 hr = IXMLDOMNode_get_childNodes(node_clone, &
pList);
5279 hr = IXMLDOMNodeList_get_length(
pList, &length1);
5280 ok(length1 == 1,
"got %d\n", length1);
5282 IXMLDOMNodeList_Release(
pList);
5284 hr = IXMLDOMNode_get_attributes(node_clone, &mapAttr);
5287 hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt1);
5289 ok(attr_cnt1 == 3,
"got %d\n", attr_cnt1);
5292 hr = IXMLDOMNamedNodeMap_getNamedItem(mapAttr,
_bstr_(
"id"), &
attr);
5294 IXMLDOMNode_Release(
attr);
5295 IXMLDOMNamedNodeMap_Release(mapAttr);
5297 ok(
length == length1,
"wrong Child count (%d, %d)\n",
length, length1);
5298 ok(attr_cnt == attr_cnt1,
"wrong Attribute count (%d, %d)\n", attr_cnt, attr_cnt1);
5299 IXMLDOMNode_Release(node_clone);
5302 hr = IXMLDOMNode_cloneNode(
node, VARIANT_FALSE, &node_clone);
5306 hr = IXMLDOMNode_get_firstChild(node_clone, &node_first);
5309 hr = IXMLDOMNode_get_childNodes(node_clone, &
pList);
5311 hr = IXMLDOMNodeList_get_length(
pList, &length1);
5313 ok( length1 == 0,
"Length should be 0 (%d)\n", length1);
5314 IXMLDOMNodeList_Release(
pList);
5316 hr = IXMLDOMNode_get_attributes(node_clone, &mapAttr);
5318 hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt1);
5320 ok(attr_cnt1 == 3,
"Attribute count should be 3 (%d)\n", attr_cnt1);
5321 IXMLDOMNamedNodeMap_Release(mapAttr);
5323 ok(
length != length1,
"wrong Child count (%d, %d)\n",
length, length1);
5324 ok(attr_cnt == attr_cnt1,
"wrong Attribute count (%d, %d)\n", attr_cnt, attr_cnt1);
5325 IXMLDOMNode_Release(node_clone);
5327 IXMLDOMNode_Release(
node);
5328 IXMLDOMDocument2_Release(doc);
5352 hr = IXMLDOMDocument_get_nextSibling(doc,
NULL);
5355 pNextChild = (
void*)0xdeadbeef;
5356 hr = IXMLDOMDocument_get_nextSibling(doc, &pNextChild);
5358 ok(pNextChild ==
NULL,
"pDocChild not NULL\n");
5361 hr = IXMLDOMDocument_get_previousSibling(doc,
NULL);
5364 pNextChild = (
void*)0xdeadbeef;
5365 hr = IXMLDOMDocument_get_previousSibling(doc, &pNextChild);
5367 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
5371 hr = IXMLDOMDocument_get_dataType(doc, &
v);
5377 hr = IXMLDOMDocument_get_implementation(doc,
NULL);
5380 hr = IXMLDOMDocument_get_implementation(doc, &pIXMLDOMImplementation);
5387 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
NULL, sEmpty, &hasFeature);
5390 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, sEmpty, sEmpty,
NULL);
5393 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"), sEmpty, &hasFeature);
5395 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned false\n");
5397 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, sEmpty, sEmpty, &hasFeature);
5399 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned true\n");
5401 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"),
NULL, &hasFeature);
5403 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned false\n");
5405 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"), sEmpty, &hasFeature);
5407 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned false\n");
5409 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"),
_bstr_(
"1.0"), &hasFeature);
5411 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned true\n");
5413 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"XML"),
_bstr_(
"1.0"), &hasFeature);
5415 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned true\n");
5417 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"MS-DOM"),
_bstr_(
"1.0"), &hasFeature);
5419 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned true\n");
5421 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"SSS"),
NULL, &hasFeature);
5423 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned false\n");
5426 IXMLDOMImplementation_Release(pIXMLDOMImplementation);
5430 hr = IXMLDOMDocument_createElement(doc,
NULL, &pRoot);
5432 ok(pRoot == (
void*)0x1,
"Expect same ptr, got %p\n", pRoot);
5435 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
""), &pRoot);
5437 ok(pRoot == (
void*)0x1,
"Expect same ptr, got %p\n", pRoot);
5439 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &pRoot);
5449 hr = IXMLDOMDocument_createComment(doc,
str, &pComment);
5457 hr = IXMLDOMComment_get_nodeName(pComment, &
str);
5462 hr = IXMLDOMComment_get_xml(pComment, &
str);
5468 hr = IXMLDOMComment_put_data(pComment,
_bstr_(
"This &is a ; test <>\\"));
5472 hr = IXMLDOMComment_get_data(pComment, &
str);
5478 hr = IXMLDOMComment_get_xml(pComment, &
str);
5484 hr = IXMLDOMComment_get_text(pComment, &
str);
5490 hr = IXMLDOMComment_get_length(pComment, &
len);
5492 ok(
len == 21,
"expected 21 got %d\n",
len);
5495 hr = IXMLDOMComment_substringData(pComment, 0, 4,
NULL);
5499 str = (
void *)0xdeadbeef;
5500 hr = IXMLDOMComment_substringData(pComment, -1, 4, &
str);
5505 str = (
void *)0xdeadbeef;
5506 hr = IXMLDOMComment_substringData(pComment, 30, 0, &
str);
5511 str = (
void *)0xdeadbeef;
5512 hr = IXMLDOMComment_substringData(pComment, 0, -1, &
str);
5517 str = (
void *)0xdeadbeef;
5518 hr = IXMLDOMComment_substringData(pComment, 2, 0, &
str);
5523 hr = IXMLDOMComment_substringData(pComment, 0, 4, &
str);
5529 hr = IXMLDOMComment_substringData(pComment, 13, 4, &
str);
5535 hr = IXMLDOMComment_substringData(pComment, 20, 4, &
str);
5541 hr = IXMLDOMComment_appendData(pComment,
NULL);
5544 hr = IXMLDOMComment_appendData(pComment,
_bstr_(
""));
5547 hr = IXMLDOMComment_appendData(pComment,
_bstr_(
"Append"));
5550 hr = IXMLDOMComment_get_text(pComment, &
str);
5557 hr = IXMLDOMComment_insertData(pComment, -1,
str);
5560 hr = IXMLDOMComment_insertData(pComment, -1,
NULL);
5563 hr = IXMLDOMComment_insertData(pComment, 1000,
str);
5566 hr = IXMLDOMComment_insertData(pComment, 1000,
NULL);
5569 hr = IXMLDOMComment_insertData(pComment, 0,
NULL);
5572 hr = IXMLDOMComment_insertData(pComment, 0,
str);
5576 hr = IXMLDOMComment_insertData(pComment, -1,
_bstr_(
"Inserting"));
5579 hr = IXMLDOMComment_insertData(pComment, 1000,
_bstr_(
"Inserting"));
5582 hr = IXMLDOMComment_insertData(pComment, 0,
_bstr_(
"Begin "));
5585 hr = IXMLDOMComment_insertData(pComment, 17,
_bstr_(
"Middle"));
5588 hr = IXMLDOMComment_insertData(pComment, 39,
_bstr_(
" End"));
5591 hr = IXMLDOMComment_get_text(pComment, &
str);
5598 hr = IXMLDOMComment_deleteData(pComment, -1, 1);
5601 hr = IXMLDOMComment_deleteData(pComment, 0, 0);
5604 hr = IXMLDOMComment_deleteData(pComment, 0, -1);
5607 hr = IXMLDOMComment_get_length(pComment, &
len);
5609 ok(
len == 43,
"expected 43 got %d\n",
len);
5611 hr = IXMLDOMComment_deleteData(pComment,
len, 1);
5614 hr = IXMLDOMComment_deleteData(pComment,
len+1, 1);
5618 hr = IXMLDOMComment_deleteData(pComment, 0, 5);
5621 hr = IXMLDOMComment_get_length(pComment, &
len);
5623 ok(
len == 38,
"expected 38 got %d\n",
len);
5625 hr = IXMLDOMComment_get_text(pComment, &
str);
5631 hr = IXMLDOMComment_deleteData(pComment, 35, 3);
5634 hr = IXMLDOMComment_get_length(pComment, &
len);
5636 ok(
len == 35,
"expected 35 got %d\n",
len);
5638 hr = IXMLDOMComment_get_text(pComment, &
str);
5644 hr = IXMLDOMComment_deleteData(pComment, 1, 33);
5647 hr = IXMLDOMComment_get_length(pComment, &
len);
5649 ok(
len == 2,
"expected 2 got %d\n",
len);
5651 hr = IXMLDOMComment_get_text(pComment, &
str);
5657 hr = IXMLDOMComment_get_length(pComment, &
len);
5660 hr = IXMLDOMComment_deleteData(pComment, 0,
len);
5663 hr = IXMLDOMComment_deleteData(pComment, 0,
len);
5669 hr = IXMLDOMComment_put_nodeValue(pComment,
v);
5673 hr = IXMLDOMComment_replaceData(pComment, 6, 0,
NULL);
5675 hr = IXMLDOMComment_get_text(pComment, &
str);
5680 hr = IXMLDOMComment_replaceData(pComment, 0, 0,
NULL);
5682 hr = IXMLDOMComment_get_text(pComment, &
str);
5688 hr = IXMLDOMComment_replaceData(pComment, 0, 1,
NULL);
5690 hr = IXMLDOMComment_get_text(pComment, &
str);
5696 hr = IXMLDOMComment_replaceData(pComment, 0, 1,
_bstr_(
""));
5698 hr = IXMLDOMComment_get_text(pComment, &
str);
5704 hr = IXMLDOMComment_replaceData(pComment, 0, 0,
_bstr_(
"a"));
5706 hr = IXMLDOMComment_get_text(pComment, &
str);
5711 hr = IXMLDOMComment_replaceData(pComment, 0, 2,
NULL);
5714 hr = IXMLDOMComment_insertData(pComment, 0,
_bstr_(
"m"));
5716 hr = IXMLDOMComment_get_text(pComment, &
str);
5722 hr = IXMLDOMComment_replaceData(pComment, 0, 2,
_bstr_(
"a1.2"));
5724 hr = IXMLDOMComment_get_text(pComment, &
str);
5730 hr = IXMLDOMComment_replaceData(pComment, 0, 1,
_bstr_(
"wine"));
5732 hr = IXMLDOMComment_get_text(pComment, &
str);
5737 IXMLDOMComment_Release(pComment);
5742 hr = IXMLDOMDocument_createElement(doc,
str, &pElement);
5750 hr = IXMLDOMElement_get_nodeName(pElement, &
str);
5755 hr = IXMLDOMElement_get_xml(pElement, &
str);
5762 hr = IXMLDOMDocument_createAttribute(doc,
NULL, &pAttribute);
5764 ok(pAttribute == (
void*)0x1,
"Expect same ptr, got %p\n", pAttribute);
5767 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
""), &pAttribute);
5769 ok(pAttribute == (
void*)0x1,
"Expect same ptr, got %p\n", pAttribute);
5772 hr = IXMLDOMDocument_createAttribute(doc,
str, &pAttribute);
5779 hr = IXMLDOMAttribute_get_nextSibling(pAttribute,
NULL);
5783 hr = IXMLDOMAttribute_get_nextSibling(pAttribute, &pNextChild);
5785 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
5788 hr = IXMLDOMAttribute_get_previousSibling(pAttribute,
NULL);
5792 hr = IXMLDOMAttribute_get_previousSibling(pAttribute, &pNextChild);
5794 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
5796 hr = IXMLDOMElement_appendChild(pElement, (
IXMLDOMNode*)pAttribute, &pNewChild);
5798 ok(pNewChild ==
NULL,
"pNewChild not NULL\n");
5800 hr = IXMLDOMElement_get_attributes(pElement, &pAttribs);
5804 hr = IXMLDOMNamedNodeMap_setNamedItem(pAttribs, (
IXMLDOMNode*)pAttribute,
NULL );
5807 IXMLDOMNamedNodeMap_Release(pAttribs);
5810 hr = IXMLDOMAttribute_get_nodeName(pAttribute, &
str);
5816 hr = IXMLDOMAttribute_get_nodeName(pAttribute, &
str);
5822 hr = IXMLDOMAttribute_get_name(pAttribute, &
str);
5827 hr = IXMLDOMAttribute_get_xml(pAttribute, &
str);
5832 IXMLDOMAttribute_Release(pAttribute);
5835 hr = IXMLDOMElement_get_xml(pElement, &
str);
5841 hr = IXMLDOMElement_put_text(pElement,
_bstr_(
"TestingNode"));
5844 hr = IXMLDOMElement_get_xml(pElement, &
str);
5851 hr = IXMLDOMElement_put_text(pElement,
str);
5855 hr = IXMLDOMElement_get_xml(pElement, &
str);
5860 hr = IXMLDOMElement_get_text(pElement, &
str);
5865 IXMLDOMElement_Release(pElement);
5870 hr = IXMLDOMDocument_createCDATASection(doc,
str,
NULL);
5873 hr = IXMLDOMDocument_createCDATASection(doc,
str, &pCDataSec);
5883 hr = IXMLDOMCDATASection_QueryInterface(pCDataSec, &IID_IXMLDOMElement, (
void**)&pElement);
5889 hr = IXMLDOMCDATASection_get_nodeName(pCDataSec, &
str);
5894 hr = IXMLDOMCDATASection_get_xml(pCDataSec, &
str);
5901 hr = IXMLDOMCDATASection_get_lastChild(pCDataSec, &pNextChild);
5903 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
5906 hr = IXMLDOMCDATASection_put_data(pCDataSec,
_bstr_(
"This &is a ; test <>\\"));
5910 hr = IXMLDOMCDATASection_get_xml(pCDataSec, &
str);
5912 ok( !
lstrcmpW(
str,
_bstr_(
"<![CDATA[This &is a ; test <>\\]]>") ),
"incorrect xml string\n");
5916 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
5922 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
5924 ok(
len == 21,
"expected 21 got %d\n",
len);
5927 hr = IXMLDOMCDATASection_get_data(pCDataSec, &
str);
5933 hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, 4,
NULL);
5937 str = (
void *)0xdeadbeef;
5938 hr = IXMLDOMCDATASection_substringData(pCDataSec, -1, 4, &
str);
5943 str = (
void *)0xdeadbeef;
5944 hr = IXMLDOMCDATASection_substringData(pCDataSec, 30, 0, &
str);
5949 str = (
void *)0xdeadbeef;
5950 hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, -1, &
str);
5955 str = (
void *)0xdeadbeef;
5956 hr = IXMLDOMCDATASection_substringData(pCDataSec, 2, 0, &
str);
5961 hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, 4, &
str);
5967 hr = IXMLDOMCDATASection_substringData(pCDataSec, 13, 4, &
str);
5973 hr = IXMLDOMCDATASection_substringData(pCDataSec, 20, 4, &
str);
5979 hr = IXMLDOMCDATASection_appendData(pCDataSec,
NULL);
5982 hr = IXMLDOMCDATASection_appendData(pCDataSec,
_bstr_(
""));
5985 hr = IXMLDOMCDATASection_appendData(pCDataSec,
_bstr_(
"Append"));
5988 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
5995 hr = IXMLDOMCDATASection_insertData(pCDataSec, -1,
str);
5998 hr = IXMLDOMCDATASection_insertData(pCDataSec, -1,
NULL);
6001 hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000,
str);
6004 hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000,
NULL);
6007 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
NULL);
6010 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
str);
6014 hr = IXMLDOMCDATASection_insertData(pCDataSec, -1,
_bstr_(
"Inserting"));
6017 hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000,
_bstr_(
"Inserting"));
6020 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
_bstr_(
"Begin "));
6023 hr = IXMLDOMCDATASection_insertData(pCDataSec, 17,
_bstr_(
"Middle"));
6026 hr = IXMLDOMCDATASection_insertData(pCDataSec, 39,
_bstr_(
" End"));
6029 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6036 hr = IXMLDOMCDATASection_deleteData(pCDataSec, -1, 1);
6039 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, 0);
6042 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, -1);
6045 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6047 ok(
len == 43,
"expected 43 got %d\n",
len);
6049 hr = IXMLDOMCDATASection_deleteData(pCDataSec,
len, 1);
6052 hr = IXMLDOMCDATASection_deleteData(pCDataSec,
len+1, 1);
6056 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, 5);
6059 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6061 ok(
len == 38,
"expected 38 got %d\n",
len);
6063 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6069 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 35, 3);
6072 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6074 ok(
len == 35,
"expected 35 got %d\n",
len);
6076 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6082 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 1, 33);
6085 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6087 ok(
len == 2,
"expected 2 got %d\n",
len);
6089 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6095 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6098 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0,
len);
6102 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0,
len);
6108 hr = IXMLDOMCDATASection_put_nodeValue(pCDataSec,
v);
6112 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 6, 0,
NULL);
6114 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6119 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 0,
NULL);
6121 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6127 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1,
NULL);
6129 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6135 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1,
_bstr_(
""));
6137 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6143 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 0,
_bstr_(
"a"));
6145 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6150 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 2,
NULL);
6153 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
_bstr_(
"m"));
6155 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6161 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 2,
_bstr_(
"a1.2"));
6163 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6169 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1,
_bstr_(
"wine"));
6171 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6176 IXMLDOMCDATASection_Release(pCDataSec);
6180 hr = IXMLDOMDocument_createDocumentFragment(doc,
NULL);
6183 hr = IXMLDOMDocument_createDocumentFragment(doc, &pDocFrag);
6189 hr = IXMLDOMDocumentFragment_get_parentNode(pDocFrag,
NULL);
6193 hr = IXMLDOMDocumentFragment_get_parentNode(pDocFrag, &
node);
6200 hr = IXMLDOMDocumentFragment_get_nodeName(pDocFrag, &
str);
6206 hr = IXMLDOMDocumentFragment_get_nextSibling(pDocFrag,
NULL);
6210 hr = IXMLDOMDocumentFragment_get_nextSibling(pDocFrag, &
node);
6215 hr = IXMLDOMDocumentFragment_get_previousSibling(pDocFrag,
NULL);
6219 hr = IXMLDOMDocumentFragment_get_previousSibling(pDocFrag, &
node);
6221 ok(
node ==
NULL,
"previous sibling not NULL\n");
6223 IXMLDOMDocumentFragment_Release(pDocFrag);
6227 hr = IXMLDOMDocument_createEntityReference(doc,
NULL, &pEntityRef);
6229 hr = IXMLDOMDocument_createEntityReference(doc,
_bstr_(
""), &pEntityRef);
6233 hr = IXMLDOMDocument_createEntityReference(doc,
str,
NULL);
6236 hr = IXMLDOMDocument_createEntityReference(doc,
str, &pEntityRef);
6245 hr = IXMLDOMEntityReference_get_xml(pEntityRef, &
str);
6250 IXMLDOMEntityReference_Release(pEntityRef);
6253 IXMLDOMElement_Release( pRoot );
6257 IXMLDOMDocument_Release(doc);
6271 {
"test_inval",
"abcdefg",
E_FAIL },
6272 {
"test_bool",
"Boolean",
S_OK },
6273 {
"test_string",
"String",
S_OK },
6274 {
"test_number",
"number",
S_OK },
6275 {
"test_int",
"InT",
S_OK },
6276 {
"test_fixed",
"fixed.14.4",
S_OK },
6277 {
"test_datetime",
"DateTime",
S_OK },
6278 {
"test_datetimetz",
"DateTime.tz",
S_OK },
6279 {
"test_date",
"Date",
S_OK },
6280 {
"test_time",
"Time",
S_OK },
6281 {
"test_timetz",
"Time.tz",
S_OK },
6282 {
"test_I1",
"I1",
S_OK },
6283 {
"test_I2",
"I2",
S_OK },
6284 {
"test_I4",
"I4",
S_OK },
6285 {
"test_UI1",
"UI1",
S_OK },
6286 {
"test_UI2",
"UI2",
S_OK },
6287 {
"test_UI4",
"UI4",
S_OK },
6288 {
"test_r4",
"r4",
S_OK },
6289 {
"test_r8",
"r8",
S_OK },
6290 {
"test_float",
"float",
S_OK },
6291 {
"test_uuid",
"UuId",
S_OK },
6292 {
"test_binhex",
"bin.hex",
S_OK },
6293 {
"test_binbase64",
"bin.base64",
S_OK },
6322 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"),
NULL);
6325 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
6331 hr = IXMLDOMElement_put_dataType(
root,
NULL);
6344 ok(
hr ==
ptr->hr,
"failed for %s:%s, 0x%08x\n",
ptr->name,
ptr->type,
ptr->hr);
6346 IXMLDOMElement_Release(
element);
6352 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing_Change"), &
element);
6364 IXMLDOMElement_Release(
element);
6368 type1W =
_bstr_(
"string");
6369 type2W =
_bstr_(
"number");
6388 hr = IXMLDOMNode_put_dataType(
node, type1W);
6389 ok(
hr == ptr2->
hr,
"failed for type %d, 0x%08x\n", ptr2->
type,
ptr->hr);
6390 hr = IXMLDOMNode_put_dataType(
node, type2W);
6391 ok(
hr == ptr2->
hr,
"failed for type %d, 0x%08x\n", ptr2->
type,
ptr->hr);
6393 IXMLDOMNode_Release(
node);
6398 IXMLDOMElement_Release(
root);
6399 IXMLDOMDocument_Release(doc);
6422 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
6431 hr = IXMLDOMDocument_save(doc,
dest);
6434 hr = IXMLDOMDocument_get_xml(doc, &sOrig);
6437 hr = IXMLDOMDocument_get_xml(doc2, &sNew);
6440 ok( !
lstrcmpW( sOrig, sNew ),
"New document is not the same as original\n");
6445 IXMLDOMElement_Release(
root);
6446 IXMLDOMDocument_Release(doc2);
6452 hr = IXMLDOMDocument_save(doc,
dest);
6460 ok(
read != 0,
"could not read file\n");
6461 ok(
buffer[0] !=
'<' ||
buffer[1] !=
'?',
"File contains processing instruction\n");
6471 hr = IXMLDOMDocument_save(doc,
dest);
6481 ok(
read != 0,
"could not read file\n");
6482 ok(
buffer[0] !=
'<' ||
buffer[1] !=
'?',
"File contains processing instruction\n");
6492 hr = IXMLDOMDocument_save(doc,
dest);
6503 hr = IXMLDOMDocument_save(doc,
dest);
6514 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<a/>"), &
b);
6521 hr = IXMLDOMDocument_save(doc,
dest);
6527 ok(
ptr[0] ==
'<' &&
ptr[1] !=
'?',
"got wrong start tag %c%c\n",
ptr[0],
ptr[1]);
6531 IXMLDOMDocument_Release(doc);
6551 hr = IXMLDOMDocument_QueryInterface(docSS, &IID_IXMLDOMNode, (
void**)&pNode );
6557 hr = IXMLDOMDocument_transformNode(doc, pNode, &bOut);
6565 IXMLDOMNode_Release(pNode);
6568 IXMLDOMDocument_Release(docSS);
6569 IXMLDOMDocument_Release(doc);
6581 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2" },
6582 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26" },
6583 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30" },
6584 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40" },
6585 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60" },
6593 while (class_ptr->
clsid)
6610 &IID_IXMLDOMDocument, (
void**)&doc);
6619 hr = IXMLDOMDocument_appendChild(doc,
node,
NULL);
6622 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
6639 hr = IXMLDOMElement_get_xml(
elem, &
str);
6645 IXMLDOMElement_Release(
elem);
6646 IXMLDOMDocument_Release(doc);
6656 static const CHAR namespaces_xmlA[] =
6657 "<?xml version=\"1.0\"?>\n"
6658 "<XMI xmi.version=\"1.1\" xmlns:Model=\"http://omg.org/mof.Model/1.3\">"
6660 " <Model:Package name=\"WinePackage\" Model:name2=\"name2 attr\" />"
6674 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(namespaces_xmlA), &
b);
6676 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
6678 str = (
void *)0xdeadbeef;
6679 hr = IXMLDOMDocument_get_namespaceURI(doc, &
str);
6683 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"//XMI.content"), &
node );
6690 hr = IXMLDOMNode_get_firstChild(
node, &node2);
6692 ok(node2 !=
NULL,
"got %p\n", node2);
6695 hr = IXMLDOMNode_get_prefix(node2,
NULL);
6699 hr = IXMLDOMNode_get_prefix(node2, &
str);
6704 hr = IXMLDOMNode_get_nodeName(node2, &
str);
6710 hr = IXMLDOMNode_get_namespaceURI(node2,
NULL);
6714 hr = IXMLDOMNode_get_namespaceURI(node2, &
str);
6719 hr = IXMLDOMNode_QueryInterface(node2, &IID_IXMLDOMElement, (
void**)&
elem);
6725 hr = IXMLDOMAttribute_get_nodeName(
attr, &
str);
6730 hr = IXMLDOMAttribute_get_prefix(
attr, &
str);
6735 IXMLDOMAttribute_Release(
attr);
6736 IXMLDOMElement_Release(
elem);
6738 IXMLDOMNode_Release(node2);
6739 IXMLDOMNode_Release(
node);
6742 IXMLDOMDocument_Release(doc);
6754 static const CHAR szLinefeedXML[] =
"<?xml version=\"1.0\"?>\n<Root>\n\t<Sub val=\"A\" />\n</Root>";
6755 static const CHAR szLinefeedRootXML[] =
"<Root>\r\n\t<Sub val=\"A\"/>\r\n</Root>";
6759 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(szLinefeedXML), &bSucc);
6761 ok(bSucc == VARIANT_TRUE,
"Expected VARIANT_TRUE got VARIANT_FALSE\n");
6763 if(bSucc == VARIANT_TRUE)
6765 hr = IXMLDOMDocument_get_documentElement(doc, &pElement);
6769 hr = IXMLDOMElement_get_xml(pElement, &
str);
6774 IXMLDOMElement_Release(pElement);
6778 IXMLDOMDocument_Release(doc);
6790 {
"root/string",
VT_BSTR,
"Wine" },
6791 {
"root/string2",
VT_BSTR,
"String" },
6792 {
"root/number",
VT_BSTR,
"12.44" },
6793 {
"root/number2",
VT_BSTR,
"-3.71e3" },
6794 {
"root/int",
VT_I4,
"-13" },
6795 {
"root/fixed",
VT_CY,
"7322.9371" },
6796 {
"root/bool",
VT_BOOL,
"-1" },
6797 {
"root/datetime",
VT_DATE,
"40135.14" },
6798 {
"root/datetimetz",
VT_DATE,
"37813.59" },
6799 {
"root/date",
VT_DATE,
"665413" },
6800 {
"root/time",
VT_DATE,
"0.5813889" },
6801 {
"root/timetz",
VT_DATE,
"1.112512" },
6802 {
"root/i1",
VT_I1,
"-13" },
6803 {
"root/i2",
VT_I2,
"31915" },
6804 {
"root/i4",
VT_I4,
"-312232" },
6805 {
"root/ui1",
VT_UI1,
"123" },
6806 {
"root/ui2",
VT_UI2,
"48282" },
6807 {
"root/ui4",
VT_UI4,
"949281" },
6808 {
"root/r4",
VT_R4,
"213124" },
6809 {
"root/r8",
VT_R8,
"0.412" },
6810 {
"root/float",
VT_R8,
"41221.421" },
6811 {
"root/uuid",
VT_BSTR,
"333C7BC4-460F-11D0-BC04-0080C7055a83" },
6837 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
6839 hr = IXMLDOMDocument_get_nodeValue(doc,
NULL);
6844 hr = IXMLDOMDocument_get_nodeValue(doc, &
value);
6848 hr = IXMLDOMDocument_get_nodeTypedValue(doc,
NULL);
6852 hr = IXMLDOMDocument_get_nodeTypedValue(doc, &
value);
6856 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"root/string"), &
node);
6865 hr = IXMLDOMNode_get_nodeTypedValue(
node,
NULL);
6868 IXMLDOMNode_Release(
node);
6870 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"root/binhex"), &
node);
6873 BYTE bytes[] = {0xff,0xfc,0xa0,0x12,0x00,0x3c};
6875 hr = IXMLDOMNode_get_nodeTypedValue(
node, &
value);
6878 ok(
V_ARRAY(&
value)->rgsabound[0].cElements == 6,
"incorrect array size\n");
6882 IXMLDOMNode_Release(
node);
6885 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"foo"),
_bstr_(
"value"), &
pi);
6890 hr = IXMLDOMProcessingInstruction_get_nodeTypedValue(
pi, &
value);
6894 IXMLDOMProcessingInstruction_Release(
pi);
6898 hr = IXMLDOMDocument_createCDATASection(doc,
_bstr_(
"[1]*2=3; &gee that's not right!"), &cdata);
6903 hr = IXMLDOMCDATASection_get_nodeTypedValue(cdata, &
value);
6907 IXMLDOMCDATASection_Release(cdata);
6920 IXMLDOMComment_Release(
comment);
6924 hr = IXMLDOMDocument_createDocumentFragment(doc, &frag);
6928 hr = IXMLDOMDocumentFragment_get_nodeTypedValue(frag, &
value);
6931 IXMLDOMDocumentFragment_Release(frag);
6939 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
6943 hr = IXMLDOMDocument_get_doctype(doc2, &doctype);
6951 hr = IXMLDOMDocumentType_get_nodeTypedValue(doctype, &
value);
6956 hr = IXMLDOMDocument_get_doctype(doc2, &doctype2);
6958 ok(doctype != doctype2,
"got %p, was %p\n", doctype2, doctype);
6960 IXMLDOMDocumentType_Release(doctype2);
6961 IXMLDOMDocumentType_Release(doctype);
6963 IXMLDOMDocument_Release(doc2);
6970 hr = IXMLDOMNode_get_nodeTypedValue(
node, &
value);
6977 "incorrect array size %d\n",
V_ARRAY(&
value)->rgsabound[0].cElements);
7006 "expected %s\n",
entry->value);
7017 IXMLDOMNode_Release(
node);
7022 IXMLDOMDocument_Release(doc);
7040 strcat(lpPathBuffer,
"customers.xml" );
7053 if(lpPathBuffer[
i] ==
'\\')
7054 lpPathBuffer[
i] =
'/';
7062 ok(bSucc == VARIANT_TRUE,
"Expected VARIANT_TRUE got VARIANT_FALSE\n");
7063 if(bSucc == VARIANT_TRUE)
7076 hr = IXMLDOMDocument_loadXML(xsl, sXSL, &bSucc);
7078 ok(bSucc == VARIANT_TRUE,
"Expected VARIANT_TRUE got VARIANT_FALSE\n");
7079 if(bSucc == VARIANT_TRUE)
7083 hr = IXMLDOMDocument_QueryInterface(xsl, &IID_IXMLDOMNode, (
void**)&pNode );
7088 hr = IXMLDOMDocument_transformNode(doc, pNode, &sResult);
7096 IXMLDOMNode_Release(pNode);
7103 IXMLDOMDocument_Release(doc);
7104 IXMLDOMDocument_Release(xsl);
7112 static const WCHAR jeevesW[] = {
'J',
'e',
'e',
'v',
'e',
's',
' ',
'&',
' ',
'W',
'o',
'o',
's',
't',
'e',
'r',0};
7125 hr = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMNode, (
void**)&
node);
7131 IXMLDOMNode_Release(
node);
7142 IXMLDOMNode_Release(
node);
7153 IXMLDOMNode_Release(
node);
7156 hr = IXMLDOMDocument_createEntityReference(doc,
_bstr_(
"ref"), &entityref);
7161 hr = IXMLDOMEntityReference_put_nodeValue(entityref,
data);
7164 hr = IXMLDOMEntityReference_QueryInterface(entityref, &IID_IXMLDOMNode, (
void**)&
node);
7170 IXMLDOMNode_Release(
node);
7171 IXMLDOMEntityReference_Release(entityref);
7174 hr = IXMLDOMDocument_createTextNode(doc,
_bstr_(
""), &
text);
7180 IXMLDOMText_Release(
text);
7182 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
7186 hr = IXMLDOMAttribute_put_nodeValue(
attr,
data);
7188 hr = IXMLDOMAttribute_get_nodeValue(
attr, &
data);
7193 IXMLDOMAttribute_Release(
attr);
7197 IXMLDOMDocument_Release(doc);
7208 hr = IXMLDOMDocument_QueryInterface(doc, &IID_IObjectSafety, (
void**)&safety);
7213 IObjectSafety_Release(safety);
7214 IXMLDOMDocument_Release(doc);
7217 &IID_IObjectSafety, (
void**)&safety);
7218 ok(
hr ==
S_OK,
"Could not create XMLHTTPRequest instance: %08x\n",
hr);
7222 IObjectSafety_Release(safety);
7234 { &
CLSID_DOMDocument,
"CLSID_DOMDocument" ,
"SelectionLanguage",
"XSLPattern" },
7235 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2" ,
"SelectionLanguage",
"XSLPattern" },
7236 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"SelectionLanguage",
"XSLPattern" },
7237 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"SelectionLanguage",
"XPath" },
7238 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"SelectionLanguage",
"XPath" },
7248 IXMLDOMDocument2 *doc;
7267 IXMLDOMDocument2_Release(doc);
7280 {
"root//elem[0]",
"E1.E2.D1" },
7281 {
"root//elem[index()=1]",
"E2.E2.D1" },
7282 {
"root//elem[index() $eq$ 1]",
"E2.E2.D1" },
7283 {
"root//elem[end()]",
"E4.E2.D1" },
7284 {
"root//elem[$not$ end()]",
"E1.E2.D1 E2.E2.D1 E3.E2.D1" },
7285 {
"root//elem[index() != 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7286 {
"root//elem[index() $ne$ 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7287 {
"root//elem[index() < 2]",
"E1.E2.D1 E2.E2.D1" },
7288 {
"root//elem[index() $lt$ 2]",
"E1.E2.D1 E2.E2.D1" },
7289 {
"root//elem[index() <= 1]",
"E1.E2.D1 E2.E2.D1" },
7290 {
"root//elem[index() $le$ 1]",
"E1.E2.D1 E2.E2.D1" },
7291 {
"root//elem[index() > 1]",
"E3.E2.D1 E4.E2.D1" },
7292 {
"root//elem[index() $gt$ 1]",
"E3.E2.D1 E4.E2.D1" },
7293 {
"root//elem[index() >= 2]",
"E3.E2.D1 E4.E2.D1" },
7294 {
"root//elem[index() $ge$ 2]",
"E3.E2.D1 E4.E2.D1" },
7295 {
"root//elem[a $ieq$ 'a2 field']",
"E2.E2.D1" },
7296 {
"root//elem[a $ine$ 'a2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7297 {
"root//elem[a $ilt$ 'a3 field']",
"E1.E2.D1 E2.E2.D1" },
7298 {
"root//elem[a $ile$ 'a2 field']",
"E1.E2.D1 E2.E2.D1" },
7299 {
"root//elem[a $igt$ 'a2 field']",
"E3.E2.D1 E4.E2.D1" },
7300 {
"root//elem[a $ige$ 'a3 field']",
"E3.E2.D1 E4.E2.D1" },
7301 {
"root//elem[$any$ *='B2 field']",
"E2.E2.D1" },
7302 {
"root//elem[$all$ *!='B2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7303 {
"root//elem[index()=0 or end()]",
"E1.E2.D1 E4.E2.D1" },
7304 {
"root//elem[index()=0 $or$ end()]",
"E1.E2.D1 E4.E2.D1" },
7305 {
"root//elem[index()=0 || end()]",
"E1.E2.D1 E4.E2.D1" },
7306 {
"root//elem[index()>0 and $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7307 {
"root//elem[index()>0 $and$ $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7308 {
"root//elem[index()>0 && $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7309 {
"root/elem[0]",
"E1.E2.D1" },
7310 {
"root/elem[index()=1]",
"E2.E2.D1" },
7311 {
"root/elem[index() $eq$ 1]",
"E2.E2.D1" },
7312 {
"root/elem[end()]",
"E4.E2.D1" },
7313 {
"root/elem[$not$ end()]",
"E1.E2.D1 E2.E2.D1 E3.E2.D1" },
7314 {
"root/elem[index() != 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7315 {
"root/elem[index() $ne$ 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7316 {
"root/elem[index() < 2]",
"E1.E2.D1 E2.E2.D1" },
7317 {
"root/elem[index() $lt$ 2]",
"E1.E2.D1 E2.E2.D1" },
7318 {
"root/elem[index() <= 1]",
"E1.E2.D1 E2.E2.D1" },
7319 {
"root/elem[index() $le$ 1]",
"E1.E2.D1 E2.E2.D1" },
7320 {
"root/elem[index() > 1]",
"E3.E2.D1 E4.E2.D1" },
7321 {
"root/elem[index() $gt$ 1]",
"E3.E2.D1 E4.E2.D1" },
7322 {
"root/elem[index() >= 2]",
"E3.E2.D1 E4.E2.D1" },
7323 {
"root/elem[index() $ge$ 2]",
"E3.E2.D1 E4.E2.D1" },
7324 {
"root/elem[a $ieq$ 'a2 field']",
"E2.E2.D1" },
7325 {
"root/elem[a $ine$ 'a2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7326 {
"root/elem[a $ilt$ 'a3 field']",
"E1.E2.D1 E2.E2.D1" },
7327 {
"root/elem[a $ile$ 'a2 field']",
"E1.E2.D1 E2.E2.D1" },
7328 {
"root/elem[a $igt$ 'a2 field']",
"E3.E2.D1 E4.E2.D1" },
7329 {
"root/elem[a $ige$ 'a3 field']",
"E3.E2.D1 E4.E2.D1" },
7330 {
"root/elem[$any$ *='B2 field']",
"E2.E2.D1" },
7331 {
"root/elem[$all$ *!='B2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7332 {
"root/elem[index()=0 or end()]",
"E1.E2.D1 E4.E2.D1" },
7333 {
"root/elem[index()=0 $or$ end()]",
"E1.E2.D1 E4.E2.D1" },
7334 {
"root/elem[index()=0 || end()]",
"E1.E2.D1 E4.E2.D1" },
7335 {
"root/elem[index()>0 and $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7336 {
"root/elem[index()>0 $and$ $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7337 {
"root/elem[index()>0 && $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7338 {
"root/elem[d]",
"E1.E2.D1 E2.E2.D1 E4.E2.D1" },
7339 {
"root/elem[@*]",
"E2.E2.D1 E3.E2.D1",
TRUE },
7345 {
"//bar:x",
"E6.E1.E5.E1.E2.D1 E6.E2.E5.E1.E2.D1" },
7347 {
"//foo:elem",
"" },
7348 {
"//foo:c",
"E3.E4.E2.D1" },
7353 {
"attribute()",
"" },
7354 {
"attribute('depth')",
"" },
7355 {
"root/attribute('depth')",
"A'depth'.E3.D1" },
7356 {
"//x/attribute()",
"A'id'.E3.E3.D1 A'depth'.E3.E3.D1" },
7357 {
"//x//attribute(id)",
NULL },
7358 {
"//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" },
7359 {
"comment()",
"C2.D1" },
7360 {
"//comment()",
"C2.D1 C1.E3.D1 C2.E3.E3.D1 C2.E4.E3.D1" },
7361 {
"element()",
"E3.D1" },
7362 {
"root/y/element()",
"E4.E4.E3.D1 E5.E4.E3.D1 E6.E4.E3.D1" },
7363 {
"//element(a)",
NULL },
7364 {
"//element('a')",
"E4.E3.E3.D1 E4.E4.E3.D1" },
7365 {
"node()",
"P1.D1 C2.D1 E3.D1" },
7366 {
"//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" },
7367 {
"//x/node()[nodeType()=1]",
"E4.E3.E3.D1 E5.E3.E3.D1 E6.E3.E3.D1" },
7368 {
"//x/node()[nodeType()=3]",
"T3.E3.E3.D1" },
7369 {
"//x/node()[nodeType()=7]",
"P1.E3.E3.D1" },
7370 {
"//x/node()[nodeType()=8]",
"C2.E3.E3.D1" },
7371 {
"pi()",
"P1.D1" },
7372 {
"//y/pi()",
"P1.E4.E3.D1" },
7373 {
"root/textnode()",
"T2.E3.D1" },
7374 {
"root/element()/textnode()",
"T3.E3.E3.D1 T3.E4.E3.D1" },
7381 IXMLDOMDocument2 *doc;
7392 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7399 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//elem/c"), &
list);
7403 hr = IXMLDOMNodeList_get_length(
list, &
len);
7406 ok(
len == 3,
"expected 3 entries in list, got %d\n",
len);
7407 IXMLDOMNodeList_Release(
list);
7413 ok(
hr ==
S_OK,
"query=%s, failed with 0x%08x\n",
ptr->query,
hr);
7415 hr = IXMLDOMNodeList_get_length(
list, &
len);
7416 ok(
len != 0,
"query=%s, empty list\n",
ptr->query);
7422 IXMLDOMNodeList_Release(
list);
7441 ok(
hr ==
S_OK,
"query=%s, failed with 0x%08x\n",
ptr->query,
hr);
7446 hr = IXMLDOMNodeList_get_length(
list, &
len);
7448 ok(
len != 0,
"query=%s, empty list\n",
ptr->query);
7453 hr = IXMLDOMNodeList_get_length(
list, &
len);
7455 ok(
len == 0,
"query=%s, empty list\n",
ptr->query);
7464 ole_check(IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
_variantbstr_(
"xmlns:foo='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'")));
7467 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//foo:c"), &
list);
7470 hr = IXMLDOMNodeList_get_length(
list, &
len);
7472 ok(
len != 0,
"expected filled list\n");
7477 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
_variantbstr_(
"xmlns:foo='urn:nonexistent-foo'"));
7481 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//foo:c"), &
list);
7484 hr = IXMLDOMNodeList_get_length(
list, &
len);
7486 ok(
len == 0,
"expected empty list\n");
7487 IXMLDOMNodeList_Release(
list);
7489 IXMLDOMDocument2_Release(doc);
7495 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7504 ok(
hr ==
S_OK,
"query=%s, failed with 0x%08x\n",
ptr->query,
hr);
7506 hr = IXMLDOMNodeList_get_length(
list, &
len);
7507 ok(
hr ==
S_OK,
"Failed to get list length, hr %#x.\n",
hr);
7510 ok(
len != 0,
"query=%s, empty list\n",
ptr->query);
7515 ok(
len == 0,
"query=%s, filled list\n",
ptr->query);
7523 IXMLDOMDocument2_Release(doc);
7544 hr = IXMLDOMDocument_get_documentElement(doc, &
root);
7547 hr = IXMLDOMDocument_createCDATASection(doc,
_bstr_(
"beautiful plumage"), &cdata);
7555 hr = IXMLDOMCDATASection_get_length(cdata, &
length);
7559 hr = IXMLDOMCDATASection_splitText(cdata, 0,
NULL);
7562 text = (
void*)0xdeadbeef;
7564 hr = IXMLDOMCDATASection_splitText(cdata, -1, &
text);
7566 ok(
text == (
void*)0xdeadbeef,
"got %p\n",
text);
7568 text = (
void*)0xdeadbeef;
7570 hr = IXMLDOMCDATASection_splitText(cdata,
length + 1, &
text);
7574 text = (
void*)0xdeadbeef;
7576 hr = IXMLDOMCDATASection_splitText(cdata,
length, &
text);
7581 node = (
void*)0xdeadbeef;
7582 hr = IXMLDOMCDATASection_get_nextSibling(cdata, &
node);
7586 hr = IXMLDOMCDATASection_splitText(cdata, 10, &
text);
7594 hr = IXMLDOMCDATASection_get_nextSibling(cdata, &
node);
7596 IXMLDOMNode_Release(
node);
7602 node = (
void*)0xdeadbeef;
7603 hr = IXMLDOMText_get_nextSibling(
text, &
node);
7610 text2 = (
void*)0xdeadbeef;
7612 hr = IXMLDOMText_splitText(
text, -1, &text2);
7614 ok(text2 == (
void*)0xdeadbeef,
"got %p\n", text2);
7616 text2 = (
void*)0xdeadbeef;
7620 ok(text2 == 0,
"got %p\n", text2);
7622 text2 = (
void*)0xdeadbeef;
7626 ok(text2 == 0,
"got %p\n",
text);
7629 hr = IXMLDOMText_splitText(
text, 4, &text2);
7631 if (text2) IXMLDOMText_Release(text2);
7634 hr = IXMLDOMText_get_nextSibling(
text, &
node);
7636 if (
node) IXMLDOMNode_Release(
node);
7638 IXMLDOMText_Release(
text);
7639 IXMLDOMElement_Release(
root);
7640 IXMLDOMCDATASection_Release(cdata);
7653 {
"xml:lang",
"http://www.w3.org/XML/1998/namespace",
S_FALSE },
7654 {
"lang",
"http://www.w3.org/XML/1998/namespace",
S_OK },
7656 {
"ns:b",
"nshref",
S_FALSE },
7657 {
"b",
"nshref",
S_OK },
7687 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7689 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
7692 hr = IXMLDOMElement_get_childNodes(
element, &root_list);
7695 hr = IXMLDOMNodeList_get_item(root_list, 1, &pr_node);
7697 IXMLDOMNodeList_Release(root_list);
7699 hr = IXMLDOMNode_get_attributes(pr_node, &
map);
7701 IXMLDOMNode_Release(pr_node);
7704 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len);
7711 node = (
void*)0xdeadbeef;
7714 ok(
node == (
void*)0xdeadbeef,
"got %p\n",
node);
7722 IXMLDOMNode_Release(
node);
7723 IXMLDOMNamedNodeMap_Release(
map);
7724 IXMLDOMElement_Release(
element);
7729 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"a"), &
node);
7732 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
element);
7734 IXMLDOMNode_Release(
node);
7742 node = (
void*)0xdeadbeef;
7744 ok(
hr ==
ptr->hr,
"%s, %s: got 0x%08x, expected 0x%08x\n",
ptr->name,
ptr->uri,
hr,
ptr->hr);
7746 IXMLDOMNode_Release(
node);
7755 node = (
void*)0xdeadbeef;
7757 ok(
hr ==
ptr->hr,
"%s: got 0x%08x, expected 0x%08x\n",
ptr->name,
hr,
ptr->hr);
7759 IXMLDOMNode_Release(
node);
7765 IXMLDOMNamedNodeMap_Release(
map);
7767 IXMLDOMElement_Release(
element);
7768 IXMLDOMDocument_Release(doc);
7786 ok(
hr ==
S_OK,
"loadXML failed\n");
7787 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7789 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
7792 hr = IXMLDOMElement_get_childNodes(
element, &root_list);
7795 hr = IXMLDOMNodeList_get_item(root_list, 1, &pr_node);
7797 IXMLDOMNodeList_Release(root_list);
7799 hr = IXMLDOMNode_get_attributes(pr_node, &
map);
7801 IXMLDOMNode_Release(pr_node);
7803 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len);
7810 node = (
void*)0xdeadbeef;
7813 ok(
node == (
void*)0xdeadbeef,
"got %p\n",
node);
7825 IXMLDOMNode_Release(
node);
7827 IXMLDOMNamedNodeMap_Release(
map );
7828 IXMLDOMElement_Release(
element );
7829 IXMLDOMDocument_Release( doc );
7833#define check_default_props(doc) _check_default_props(__LINE__, doc)
7850 ok_(__FILE__,
line)(
b == VARIANT_FALSE,
"expected FALSE\n");
7852 hr = IXMLDOMDocument2_get_schemas(doc, &
var);
7857#define check_set_props(doc) _check_set_props(__LINE__, doc)
7873 ok_(__FILE__,
line)(
b == VARIANT_TRUE,
"expected TRUE\n");
7880#define set_props(doc, cache) _set_props(__LINE__, doc, cache)
7888 helper_ole_check(IXMLDOMDocument2_put_preserveWhiteSpace(doc, VARIANT_TRUE));
7897#define unset_props(doc) _unset_props(__LINE__, doc)
7905 helper_ole_check(IXMLDOMDocument2_put_preserveWhiteSpace(doc, VARIANT_FALSE));
7914 IXMLDOMDocument2 *doc, *doc_owner;
7916 IXMLDOMSchemaCollection *
cache;
7924 const CHAR nodeXML[] =
7926 " <!-- comment node 0 -->"
7928 " <x attr='val'></x>"
7929 " <?foo value='PI for x'?>"
7930 " <![CDATA[ cdata ]]>"
7934 if (!
is_clsid_supported(&CLSID_XMLSchemaCache, &IID_IXMLDOMSchemaCollection))
return;
7942 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7954 ole_check(IXMLDOMDocument_QueryInterface(doc1, &IID_IXMLDOMDocument2, (
void**)&doc_owner));
7955 ok( doc_owner != doc,
"got %p, doc %p\n", doc_owner, doc);
7957 IXMLDOMDocument2_Release(doc_owner);
7960 IXMLDOMNode_Release(
node);
7962 ok(doc1 != doc2,
"got %p, expected %p. original %p\n", doc2, doc1, doc);
7966 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7973 IXMLDOMNode_Release(
node);
7975 ole_check(IXMLDOMDocument_QueryInterface(doc3, &IID_IXMLDOMDocument2, (
void**)&doc_owner));
7976 ok(doc3 != doc1 && doc3 != doc2 && doc_owner != doc,
"got %p, (%p, %p, %p)\n", doc3, doc, doc1, doc2);
7985 hr = IXMLDOMDocument_loadXML(doc1,
_bstr_(nodeXML), &
b);
7987 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7989 hr = IXMLDOMDocument_get_documentElement(doc1, &
element);
7992 hr = IXMLDOMElement_get_childNodes(
element, &node_list);
7995 hr = IXMLDOMNodeList_get_length(node_list, &
len);
7998 for(
i = 0;
i <
len;
i++) {
7999 hr = IXMLDOMNodeList_get_item(node_list,
i, &
node);
8002 hr = IXMLDOMNode_get_ownerDocument(
node,
NULL);
8005 IXMLDOMNode_Release(
node);
8007 IXMLDOMElement_Release(
element);
8010 hr = IXMLDOMNodeList_get_item(node_list, 2, &
node);
8012 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
element);
8014 IXMLDOMNode_Release(
node);
8019 IXMLDOMElement_Release(
element);
8020 hr = IXMLDOMAttribute_get_ownerDocument(
attr,
NULL);
8022 IXMLDOMAttribute_Release(
attr);
8023 IXMLDOMNodeList_Release(node_list);
8025 IXMLDOMSchemaCollection_Release(
cache);
8026 IXMLDOMDocument_Release(doc1);
8027 IXMLDOMDocument_Release(doc2);
8028 IXMLDOMDocument_Release(doc3);
8029 IXMLDOMDocument2_Release(doc);
8048 ok(
hr ==
S_OK,
"loadXML failed\n");
8049 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8051 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
8054 hr = IXMLDOMDocument_get_documentElement(doc, &elem2);
8056 ok( elem2 !=
elem,
"got same instance\n");
8058 ret_attr = (
void*)0xdeadbeef;
8059 hr = IXMLDOMElement_setAttributeNode(
elem,
NULL, &ret_attr);
8061 ok( ret_attr == (
void*)0xdeadbeef,
"got %p\n", ret_attr);
8063 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
8066 ref1 = IXMLDOMElement_AddRef(
elem);
8067 IXMLDOMElement_Release(
elem);
8069 ret_attr = (
void*)0xdeadbeef;
8070 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8072 ok( ret_attr ==
NULL,
"got %p\n", ret_attr);
8075 ref2 = IXMLDOMElement_AddRef(
elem);
8076 IXMLDOMElement_Release(
elem);
8077 ok(ref2 == ref1,
"got %d, expected %d\n", ref2, ref1);
8082 IXMLDOMElement_Release(elem2);
8085 hr = IXMLDOMElement_getAttributeNode(
elem,
_bstr_(
"attr"), &attr2);
8087 ok( attr2 !=
attr,
"got same instance %p\n", attr2);
8088 IXMLDOMAttribute_Release(attr2);
8091 ret_attr = (
void*)0xdeadbeef;
8092 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8094 ok( ret_attr == (
void*)0xdeadbeef,
"got %p\n", ret_attr);
8096 IXMLDOMElement_Release(
elem);
8099 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
8101 ret_attr = (
void*)0xdeadbeef;
8102 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8104 ok( ret_attr == (
void*)0xdeadbeef,
"got %p\n", ret_attr);
8105 IXMLDOMElement_Release(
elem);
8111 ok(
hr ==
S_OK,
"loadXML failed\n");
8112 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8114 hr = IXMLDOMDocument_get_documentElement(doc2, &
elem);
8118 IXMLDOMElement_Release(
elem);
8120 IXMLDOMAttribute_Release(
attr);
8123 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"test"), &
elem);
8127 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
8131 ref1 = IXMLDOMAttribute_AddRef(
attr);
8132 IXMLDOMAttribute_Release(
attr);
8136 hr = IXMLDOMAttribute_put_nodeValue(
attr,
v);
8140 hr = IXMLDOMAttribute_get_xml(
attr, &
str);
8146 ret_attr = (
void*)0xdeadbeef;
8147 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8149 ok(ret_attr ==
NULL,
"got %p\n", ret_attr);
8152 ref2 = IXMLDOMAttribute_AddRef(
attr);
8153 IXMLDOMAttribute_Release(
attr);
8154 ok(ref1 == ref2,
"got %d, expected %d\n", ref2, ref1);
8156 hr = IXMLDOMElement_get_xml(
elem, &
str);
8164 hr = IXMLDOMAttribute_put_nodeValue(
attr,
v);
8167 hr = IXMLDOMElement_get_xml(
elem, &
str);
8173 IXMLDOMElement_Release(
elem);
8174 IXMLDOMAttribute_Release(
attr);
8175 IXMLDOMDocument_Release(doc2);
8176 IXMLDOMDocument_Release(doc);
8195 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &
elem);
8201 ref = IXMLDOMElement_Release(
elem);
8206 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &
elem);
8209 IXMLDOMDocument_Release(doc);
8211 IXMLDOMElement_Release(
elem);
8220 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"ns1:test"),
_bstr_(
"http://winehq.org"), &
node);
8227 IXMLDOMNode_Release(
node);
8230 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"test"),
_bstr_(
"http://winehq.org/default"), &
node);
8232 prefix = (
void*)0xdeadbeef;
8243 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
elem);
8252 hr = IXMLDOMElement_get_namespaceURI(
elem, &
str);
8254 ok(
lstrcmpW(
str,
_bstr_(
"http://winehq.org/default")) == 0,
"expected default namespace\n");
8257 IXMLDOMElement_Release(
elem);
8258 IXMLDOMNode_Release(
node);
8260 IXMLDOMDocument_Release(doc);
8265 "<?xml version=\"1.0\" ?>"
8266 "<a xmlns:ns1=\"ns1 href\" />";
8283 str = (
void*)0xdeadbeef;
8284 hr = IXMLDOMDocument_get_prefix(doc, &
str);
8288 hr = IXMLDOMDocument_get_prefix(doc,
NULL);
8292 hr = IXMLDOMDocument_createCDATASection(doc,
NULL, &cdata);
8295 str = (
void*)0xdeadbeef;
8296 hr = IXMLDOMCDATASection_get_prefix(cdata, &
str);
8300 hr = IXMLDOMCDATASection_get_prefix(cdata,
NULL);
8302 IXMLDOMCDATASection_Release(cdata);
8308 str = (
void*)0xdeadbeef;
8315 IXMLDOMComment_Release(
comment);
8318 hr = IXMLDOMDocument_createDocumentFragment(doc, &fragment);
8321 str = (
void*)0xdeadbeef;
8322 hr = IXMLDOMDocumentFragment_get_prefix(fragment, &
str);
8326 hr = IXMLDOMDocumentFragment_get_prefix(fragment,
NULL);
8328 IXMLDOMDocumentFragment_Release(fragment);
8337 str = (
void*)0xdeadbeef;
8342 IXMLDOMElement_Release(
element);
8348 str = (
void*)0xdeadbeef;
8354 str = (
void*)0xdeadbeef;
8359 IXMLDOMElement_Release(
element);
8364 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
8367 str = (
void*)0xdeadbeef;
8372 str = (
void*)0xdeadbeef;
8377 IXMLDOMDocument_Release(doc);
8392 hr = IXMLDOMDocument_selectSingleNode(doc,
NULL,
NULL);
8395 hr = IXMLDOMDocument_selectNodes(doc,
NULL,
NULL);
8399 ok(
hr ==
S_OK,
"loadXML failed\n");
8400 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8402 hr = IXMLDOMDocument_selectSingleNode(doc,
NULL,
NULL);
8405 hr = IXMLDOMDocument_selectNodes(doc,
NULL,
NULL);
8408 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"lc"),
NULL);
8411 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"lc"),
NULL);
8414 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"lc"), &
node);
8416 IXMLDOMNode_Release(
node);
8418 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"lc"), &
list);
8420 IXMLDOMNodeList_Release(
list);
8422 list = (
void*)0xdeadbeef;
8423 hr = IXMLDOMDocument_selectNodes(doc,
NULL, &
list);
8425 ok(
list == (
void*)0xdeadbeef,
"got %p\n",
list);
8427 node = (
void*)0xdeadbeef;
8428 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"nonexistent"), &
node);
8432 list = (
void*)0xdeadbeef;
8433 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"nonexistent"), &
list);
8436 hr = IXMLDOMNodeList_get_length(
list, &
len);
8439 IXMLDOMNodeList_Release(
list);
8441 IXMLDOMDocument_Release(doc);
8461 IConnectionPoint_Release(
point);
8464 IConnectionPoint_Release(
point);
8465 hr = IConnectionPointContainer_FindConnectionPoint(conn, &DIID_XMLDOMDocumentEvents, &
point);
8467 IConnectionPoint_Release(
point);
8469 IConnectionPointContainer_Release(conn);
8473 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8480 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8487 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8493 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8500 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8506 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8509 IDispatch_Release(
event);
8511 IXMLDOMDocument_Release(doc);
8516 static const WCHAR bodyW[] = {
't',
'e',
's',
't',0};
8528 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"test"), &
buff[2], &
pi);
8531 IXMLDOMProcessingInstruction_Release(
pi);
8532 IXMLDOMDocument_Release(doc);
8537 static const BYTE binhexdata[16] =
8538 {0,1,2,3,4,5,6,7,8,9,0xa,0xb,0xc,0xd,0xe,0xf};
8542 LONG ubound, lbound;
8551 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Element"), &
elem);
8555 hr = IXMLDOMElement_get_dataType(
elem, &
type);
8562 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
type);
8566 hr = IXMLDOMElement_get_dataType(
elem, &
type);
8572 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
type);
8579 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
8583 IXMLDOMNode_Release(
node);
8589 hr = IXMLDOMElement_put_dataType(
elem,
_bstr_(
"bin.base64"));
8594 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
8598 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
8605 ok(ubound == 2,
"got %d\n", ubound);
8609 ok(lbound == 0,
"got %d\n", lbound);
8612 ok(
ptr[0] == 0,
"got %x\n",
ptr[0]);
8613 ok(
ptr[1] == 0x10,
"got %x\n",
ptr[1]);
8614 ok(
ptr[2] == 0x83,
"got %x\n",
ptr[2]);
8619 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
8624 IXMLDOMNode_Release(
node);
8635 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
8639 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
8646 ok(ubound == 6,
"got %d\n", ubound);
8650 ok(lbound == 0,
"got %d\n", lbound);
8658 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
8663 IXMLDOMNode_Release(
node);
8670 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
8673 hr = IXMLDOMElement_put_dataType(
elem,
_bstr_(
"bin.hex"));
8679 memcpy(
ptr, binhexdata,
sizeof(binhexdata));
8684 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
8688 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
8695 ok(ubound == 15,
"got %d\n", ubound);
8699 ok(lbound == 0,
"got %d\n", lbound);
8702 ok(!
memcmp(
ptr, binhexdata,
sizeof(binhexdata)),
"got wrong data\n");
8707 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
8712 IXMLDOMNode_Release(
node);
8716 IXMLDOMElement_Release(
elem);
8717 IXMLDOMDocument_Release(doc);
8723 static const char xmlA[] =
"<?xml version=\"1.0\" encoding=\"UTF-16\"?>\r\n<a>test</a>\r\n";
8724 static const char attrA[] =
"attr=\""a & b"\"";
8725 static const char attr2A[] =
"\"a & b\"";
8726 static const char attr3A[] =
"attr=\"&quot;a\"";
8727 static const char attr4A[] =
""a";
8728 static const char fooA[] =
"<foo/>";
8742 hr = IXMLDOMDocument_loadXML( doc,
_bstr_(
"<a>test</a>"), &
b );
8744 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
8746 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
8747 _bstr_(
"version=\"1.0\" encoding=\"UTF-16\""), &
pi);
8750 hr = IXMLDOMDocument_get_firstChild(doc, &
first);
8759 IXMLDOMProcessingInstruction_Release(
pi);
8760 IXMLDOMNode_Release(
first);
8762 hr = IXMLDOMDocument_get_xml(doc, &xml);
8769 IXMLDOMDocument_Release(doc);
8773 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"foo"), &
elem);
8776 hr = IXMLDOMDocument_putref_documentElement(doc,
elem);
8779 hr = IXMLDOMDocument_get_xml(doc, &xml);
8786 IXMLDOMElement_Release(
elem);
8789 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
8794 hr = IXMLDOMAttribute_put_value(
attr,
v);
8798 hr = IXMLDOMAttribute_get_xml(
attr, &xml);
8804 hr = IXMLDOMAttribute_get_value(
attr, &
v);
8813 hr = IXMLDOMAttribute_put_value(
attr,
v);
8817 hr = IXMLDOMAttribute_get_xml(
attr, &xml);
8823 hr = IXMLDOMAttribute_get_value(
attr, &
v);
8830 IXMLDOMAttribute_Release(
attr);
8832 IXMLDOMDocument_Release(doc);
8840 IXSLTemplate *
template;
8841 IXSLProcessor *processor;
8853 hr = IXSLTemplate_putref_stylesheet(
template,
NULL);
8859 hr = IXMLDOMDocument_loadXML( doc,
_bstr_(
"<a>test</a>"), &
b );
8861 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
8864 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
8870 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
8873 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
8876 IXMLDOMDocument_Release(doc);
8880 IXSLTemplate_Release(
template);
8884 hr =
CoCreateInstance(&CLSID_FreeThreadedDOMDocument,
NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (
void**)&doc);
8890 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
8893 ref1 = IXMLDOMDocument_AddRef(doc);
8894 IXMLDOMDocument_Release(doc);
8895 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
8897 ref2 = IXMLDOMDocument_AddRef(doc);
8898 IXMLDOMDocument_Release(doc);
8899 ok(ref2 > ref1,
"got %d\n", ref2);
8902 hr = IXSLTemplate_createProcessor(
template,
NULL);
8906 hr = IXSLTemplate_createProcessor(
template, &processor);
8913 hr = IXSLProcessor_get_input(processor, &
v);
8919 hr = IXSLProcessor_get_output(processor,
NULL);
8924 hr = IXSLProcessor_put_output(processor,
v);
8929 hr = IXSLProcessor_put_output(processor,
v);
8934 hr = IXSLProcessor_put_output(processor,
v);
8943 hr = IXSLProcessor_put_output(processor,
v);
8950 hr = IXSLProcessor_get_output(processor, &
v);
8958 hr = IXSLProcessor_transform(processor,
NULL);
8963 hr = IXSLProcessor_put_output(processor,
v);
8974 hr = IXMLDOMDocument_loadXML( doc2,
_bstr_(
"<a>test</a>"), &
b );
8976 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
8980 hr = IXSLProcessor_put_input(processor,
v);
8983 hr = IXSLProcessor_transform(processor, &
b);
8987 hr = IXSLProcessor_get_output(processor, &
v);
8997 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9001 hr = IXSLProcessor_put_input(processor,
v);
9007 hr = IXSLProcessor_put_output(processor,
v);
9010 hr = IXMLDOMDocument_get_xml(doc3, &
str);
9012 ok(!*
str,
"Expected empty document\n");
9015 hr = IXSLProcessor_transform(processor, &
b);
9019 hr = IXSLProcessor_get_output(processor, &
v);
9024 hr = IXMLDOMDocument_get_xml(doc3, &
str);
9026 ok(!!*
str,
"Expected document\n");
9031 hr = IXSLProcessor_put_output(processor,
v);
9036 hr = IXSLProcessor_put_output(processor,
v);
9040 hr = IXSLProcessor_transform(processor, &
b);
9042 ok(
b == VARIANT_TRUE,
"got %x\n",
b);
9044 IXSLProcessor_Release(processor);
9045 IXMLDOMDocument_Release(doc2);
9046 IXMLDOMDocument_Release(doc3);
9049 hr = IXSLTemplate_putref_stylesheet(
template,
NULL);
9051 ref2 = IXMLDOMDocument_AddRef(doc);
9052 IXMLDOMDocument_Release(doc);
9053 ok(ref2 == ref1,
"got %d\n", ref2);
9055 IXMLDOMDocument_Release(doc);
9056 IXSLTemplate_Release(
template);
9075 node = (
void*)0xdeadbeef;
9082 node = (
void*)0xdeadbeef;
9098 node = (
void*)0xdeadbeef;
9108 hr = IXMLDOMDocument_createNode(doc3,
v,
_bstr_(
"cdata"),
NULL, &cdata);
9110 ok(cdata !=
NULL,
"got %p\n", cdata);
9116 node = (
void*)0xdeadbeef;
9123 node = (
void*)0xdeadbeef;
9129 node = (
void*)0xdeadbeef;
9130 hr = IXMLDOMDocument_insertBefore(doc3, cdata,
v, &
node);
9134 IXMLDOMNode_Release(cdata);
9135 IXMLDOMDocument_Release(doc3);
9141 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"attr2"),
NULL, &newnode);
9143 ok(newnode !=
NULL,
"got %p\n", newnode);
9146 node = (
void*)0xdeadbeef;
9147 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9153 node = (
void*)0xdeadbeef;
9154 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9157 IXMLDOMNode_Release(newnode);
9163 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9165 ok(newnode !=
NULL,
"got %p\n", newnode);
9168 node = (
void*)0xdeadbeef;
9169 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9172 IXMLDOMNode_Release(newnode);
9178 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9180 ok(newnode !=
NULL,
"got %p\n", newnode);
9183 node = (
void*)0xdeadbeef;
9184 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9187 IXMLDOMNode_Release(newnode);
9193 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9195 ok(newnode !=
NULL,
"got %p\n", newnode);
9198 node = (
void*)0xdeadbeef;
9199 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9202 IXMLDOMNode_Release(newnode);
9208 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9210 ok(newnode !=
NULL,
"got %p\n", newnode);
9213 node = (
void*)0xdeadbeef;
9214 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9217 IXMLDOMNode_Release(newnode);
9218 IXMLDOMAttribute_Release(
attr);
9221 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &elem1);
9224 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem2"), &elem2);
9227 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem3"), &elem3);
9230 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem3"), &elem3);
9233 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem4"), &elem4);
9258 IXMLDOMElement_Release(elem4);
9270 IXMLDOMNode_Release(
node);
9283 IXMLDOMNode_Release(
node);
9287 node = (
void*)0xdeadbeef;
9295 IXMLDOMNode_Release(
node);
9300 hr = IXMLDOMDocument_createElement(doc2,
_bstr_(
"elem4"), &elem4);
9305 hr = IXMLDOMDocument_createElement(doc2,
_bstr_(
"elem4"), &elem5);
9317 IXMLDOMNode_Release(
node);
9326 IXMLDOMNode_Release(
node);
9328 IXMLDOMDocument_Release(doc2);
9330 IXMLDOMElement_Release(elem1);
9331 IXMLDOMElement_Release(elem2);
9332 IXMLDOMElement_Release(elem3);
9333 IXMLDOMElement_Release(elem4);
9334 IXMLDOMElement_Release(elem5);
9342 ok(elem1 !=
NULL,
"got %p\n", elem1);
9349 ok(elem2 !=
NULL,
"got %p\n", elem2);
9353 hr = IXMLDOMElement_get_xml(elem1, &
p);
9359 hr = IXMLDOMElement_get_xml(elem2, &
p);
9371 hr = IXMLDOMElement_get_xml(elem1, &
p);
9378 hr = IXMLDOMElement_get_xml(elem2, &
p);
9383 IXMLDOMElement_Release(elem1);
9384 IXMLDOMElement_Release(elem2);
9392 ok(elem1 !=
NULL,
"got %p\n", elem1);
9399 ok(elem2 !=
NULL,
"got %p\n", elem2);
9408 hr = IXMLDOMElement_get_xml(elem2, &
p);
9417 hr = IXMLDOMElement_get_xml(elem2, &
p);
9422 IXMLDOMElement_Release(elem1);
9423 IXMLDOMElement_Release(elem2);
9424 IXMLDOMDocument_Release(doc);
9436 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &
elem);
9439 hr = IXMLDOMDocument_createElement(doc2,
_bstr_(
"elem2"), &elem2);
9449 hr = IXMLDOMDocument_appendChild(doc2,
NULL,
NULL);
9466 IXMLDOMElement_Release(
elem);
9467 IXMLDOMElement_Release(elem2);
9468 IXMLDOMDocument_Release(doc);
9469 IXMLDOMDocument_Release(doc2);
9474 static const WCHAR emailW[] = {
'e',
'm',
'a',
'i',
'l',0};
9483 hr = IXMLDOMDocument_get_doctype(doc,
NULL);
9486 doctype = (
void*)0xdeadbeef;
9487 hr = IXMLDOMDocument_get_doctype(doc, &doctype);
9489 ok(doctype ==
NULL,
"got %p\n", doctype);
9493 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
9496 hr = IXMLDOMDocument_get_doctype(doc, &doctype);
9498 ok(doctype !=
NULL,
"got %p\n", doctype);
9500 hr = IXMLDOMDocumentType_get_name(doctype,
NULL);
9503 hr = IXMLDOMDocumentType_get_name(doctype, &
s);
9508 hr = IXMLDOMDocumentType_get_nodeName(doctype, &
s);
9513 IXMLDOMDocumentType_Release(doctype);
9514 IXMLDOMDocument_Release(doc);
9526 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"element"), &
elem);
9533 hr = IXMLDOMElement_get_tagName(
elem, &
str);
9538 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"s:element"), &elem2);
9542 hr = IXMLDOMElement_get_tagName(elem2, &
str);
9547 IXMLDOMElement_Release(
elem);
9548 IXMLDOMElement_Release(elem2);
9549 IXMLDOMDocument_Release(doc);
9588 ok(
hr ==
S_OK,
"failed to create node, type %d\n",
entry->type);
9595 ok(
hr ==
entry->hr,
"got 0x%08x, expected 0x%08x. node type %d\n",
9601 IXMLDOMNode_Release(
node);
9606 IXMLDOMDocument_Release(doc);
9636 hr = IXMLDOMDocument_get_nodeTypeString(doc, &
str);
9649 ok(
hr ==
S_OK,
"failed to create node, type %d\n",
entry->type);
9651 hr = IXMLDOMNode_get_nodeTypeString(
node,
NULL);
9654 hr = IXMLDOMNode_get_nodeTypeString(
node, &
str);
9659 IXMLDOMNode_Release(
node);
9664 IXMLDOMDocument_Release(doc);
9702 hr = IXMLDOMDocument_get_attributes(doc,
NULL);
9705 map = (
void*)0xdeadbeef;
9706 hr = IXMLDOMDocument_get_attributes(doc, &
map);
9711 hr = IXMLDOMDocument_get_firstChild(doc, &
node);
9714 hr = IXMLDOMNode_get_attributes(
node, &
map);
9717 node2 = (
void*)0xdeadbeef;
9718 hr = IXMLDOMNamedNodeMap_getNamedItem(
map,
_bstr_(
"attr"), &node2);
9720 ok(node2 ==
NULL,
"got %p\n", node2);
9723 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
9734 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &node2);
9738 hr = IXMLDOMNode_get_nodeName(node2, &
str);
9744 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
9749 hr = IXMLDOMNode_get_nodeType(node2, &
type);
9763 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
_bstr_(
"version"),
NULL);
9767 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
9781 IXMLDOMNamedNodeMap_Release(
map);
9783 hr = IXMLDOMNode_get_attributes(
node, &
map);
9787 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
9791 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"encoding"), &
attr);
9796 hr = IXMLDOMAttribute_put_nodeValue(
attr,
v);
9804 hr = IXMLDOMNode_get_attributes(
node, &
map);
9808 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
9822 IXMLDOMNamedNodeMap_Release(
map);
9823 IXMLDOMNode_Release(node2);
9826 IXMLDOMNode_Release(
node);
9830 hr = IXMLDOMDocument_get_lastChild(doc, &
node);
9835 hr = IXMLDOMNode_get_attributes(
node, &
map);
9841 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &node2);
9847 IXMLDOMNode_Release(node2);
9850 IXMLDOMNode_Release(
node);
9853 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
9858 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &node2);
9861 IXMLDOMNode_Release(node2);
9863 IXMLDOMNamedNodeMap_Release(
map);
9866 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"test"), &
elem);
9867 ok(
hr ==
S_OK,
"createElement failed: %08x\n",
hr);
9871 hr = IXMLDOMElement_setAttribute(
elem,
_bstr_(
"testattr"),
v);
9872 ok(
hr ==
S_OK,
"setAttribute failed: %08x\n",
hr);
9874 hr = IXMLDOMElement_get_attributes(
elem, &
map);
9875 ok(
hr ==
S_OK,
"get_attributes failed: %08x\n",
hr);
9878 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
9885 ok(
hr ==
S_OK,
"appendChild failed: %08x\n",
hr);
9887 IXMLDOMNode_Release(
node);
9888 IXMLDOMElement_Release(
elem);
9889 IXMLDOMDocument_Release(doc2);
9892 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
9896 IXMLDOMNamedNodeMap_Release(
map);
9907 ok(
hr ==
S_OK,
"failed to create node, type %d\n",
entry->type);
9912 map = (
void*)0xdeadbeef;
9913 hr = IXMLDOMNode_get_attributes(
node, &
map);
9914 ok(
hr ==
entry->hr,
"got 0x%08x, expected 0x%08x. node type %d\n",
9918 IXMLDOMNode_Release(
node);
9923 IXMLDOMDocument_Release(doc);
9929 IXMLDOMSelection *
selection, *selection2;
9950 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root"), &
list);
9953 hr = IXMLDOMNodeList_QueryInterface(
list, &IID_IXMLDOMSelection, (
void**)&
selection);
9958 hr = IXMLDOMSelection_QueryInterface(
selection, &IID_IDispatchEx, (
void**)&dispex);
9961 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
9968 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"10"), 0, &did);
9971 IDispatchEx_Release(dispex);
9975 hr = IXMLDOMSelection_QueryInterface(
selection, &IID_IEnumVARIANT, (
void**)&enum1);
9977 ok(enum1 !=
NULL,
"got %p\n", enum1);
9987 hr = IEnumVARIANT_QueryInterface(enum1, &
IID_IUnknown, (
void**)&unk2);
9991 ok(unk2 ==
unk1,
"got %p, %p\n",
unk1, unk2);
9992 IUnknown_Release(unk2);
9995 IEnumVARIANT_AddRef(enum1);
9997 IEnumVARIANT_Release(enum1);
10000 hr = IXMLDOMSelection_QueryInterface(
selection, &IID_IEnumVARIANT, (
void**)&enum3);
10002 ok(enum3 !=
NULL,
"got %p\n", enum3);
10003 ok(enum1 == enum3,
"got %p and %p\n", enum1, enum3);
10005 IEnumVARIANT_Release(enum3);
10013 ok(enum2 !=
NULL,
"got %p\n", enum2);
10019 ok(enum1 != enum2,
"got %p, %p\n", enum1, enum2);
10021 hr = IEnumVARIANT_QueryInterface(enum2, &
IID_IUnknown, (
void**)&unk2);
10025 ok(unk2 !=
unk1,
"got %p, %p\n",
unk1, unk2);
10026 IUnknown_Release(unk2);
10027 IUnknown_Release(
unk1);
10030 hr = IEnumVARIANT_QueryInterface(enum1, &IID_IXMLDOMSelection, (
void**)&selection2);
10036 IXMLDOMSelection_Release(selection2);
10038 hr = IEnumVARIANT_QueryInterface(enum1, &
IID_IDispatch, (
void**)&disp);
10041 IDispatch_Release(disp);
10043 hr = IEnumVARIANT_QueryInterface(enum1, &IID_IEnumVARIANT, (
void**)&enum3);
10045 ok(enum3 == enum1,
"got %p and %p\n", enum3, enum1);
10049 IEnumVARIANT_Release(enum1);
10050 IEnumVARIANT_Release(enum2);
10051 IEnumVARIANT_Release(enum3);
10056 ok(enum1 !=
NULL,
"got %p\n", enum1);
10063 ok(enum2 !=
NULL,
"got %p\n", enum2);
10067 ok(enum1 != enum2,
"got %p, %p\n", enum1, enum2);
10069 IEnumVARIANT_AddRef(enum1);
10073 IEnumVARIANT_Release(enum1);
10075 IEnumVARIANT_Release(enum1);
10076 IEnumVARIANT_Release(enum2);
10080 IXMLDOMNodeList_Release(
list);
10082 hr = IXMLDOMDocument_get_childNodes(doc, &
list);
10085 hr = IXMLDOMNodeList_QueryInterface(
list, &IID_IXMLDOMSelection, (
void**)&
selection);
10088 IXMLDOMNodeList_Release(
list);
10094 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root/*"), &
list);
10097 hr = IXMLDOMNodeList_QueryInterface(
list, &IID_IXMLDOMSelection, (
void**)&
selection);
10111 hr = IEnumVARIANT_Next(enum1, 0, &
v,
NULL);
10116 hr = IEnumVARIANT_Next(enum1, 1,
NULL,
NULL);
10120 hr = IEnumVARIANT_Next(enum1, 1,
NULL, &
ret);
10125 hr = IEnumVARIANT_Next(enum1, 1, &
v,
NULL);
10129 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IXMLDOMNode, (
void**)&
node);
10135 IXMLDOMNode_Release(
node);
10144 IXMLDOMNode_Release(
node);
10148 hr = IEnumVARIANT_Next(enum1, 1, &
v,
NULL);
10151 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IXMLDOMNode, (
void**)&
node);
10157 IXMLDOMNode_Release(
node);
10159 IEnumVARIANT_Release(enum1);
10166 IXMLDOMNode_Release(
node);
10170 IXMLDOMNodeList_Release(
list);
10171 IXMLDOMDocument_Release(doc);
10204 hr = IXMLDOMDocument_load(doc,
src, &
b);
10205 ok(
hr ==
S_OK,
"Failed to load document, %#x.\n",
hr);
10206 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
10210 hr = IXMLDOMDocument_load(doc,
src, &
b);
10211 ok(
hr ==
S_OK,
"Failed to load document, %#x.\n",
hr);
10212 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
10215 hr = IXMLDOMDocument_get_url(doc, &
url);
10216 ok(
hr ==
S_OK,
"Failed to get document url, hr %#x.\n",
hr);
10218 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
10222 hr = IXMLDOMElement_get_ownerDocument(
elem, &doc2);
10223 ok(
hr ==
S_OK,
"Failed to get owner document, hr %#x.\n",
hr);
10225 hr = IXMLDOMDocument_get_url(doc2, &
url2);
10226 ok(
hr ==
S_OK,
"Failed to get document url, hr %#x.\n",
hr);
10229 IXMLDOMDocument_Release(doc2);
10230 IXMLDOMElement_Release(
elem);
10269 hr = IXMLDOMDocument_load(doc,
src, &
b);
10271 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
10297 hr = IXMLDOMDocument_load(doc,
src, &
b);
10299 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
10302 hr = IXMLDOMDocument_get_url(doc, &bstr1);
10314 hr = IXMLDOMDocument_load(doc,
src, &
b);
10316 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
10318 bstr1 = (
void *)0xdeadbeef;
10319 hr = IXMLDOMDocument_get_url(doc, &bstr1);
10321 ok(bstr1 ==
NULL,
"got %p\n", bstr1);
10324 IXMLDOMDocument_Release(doc);
10330 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
10332 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"//*"), &
list);
10336 hr = IXMLDOMNodeList_reset(
list);
10339 IXMLDOMDocument_Release(doc);
10350 ok(
ptr !=
NULL,
"SafeArrayAccessData() returned NULL\n");
10356 hr = IXMLDOMDocument_load(doc,
src, &
b);
10358 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
10360 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"//*"), &
list);
10364 hr = IXMLDOMNodeList_reset(
list);
10367 ok(
lstrcmpW(bstr1, bstr2) == 0,
"strings not equal: %s : %s\n",
10370 IXMLDOMDocument_Release(doc);
10371 IXMLDOMNodeList_Release(
list);
10383 ok(
ptr !=
NULL,
"SafeArrayAccessData() returned NULL\n");
10389 hr = IXMLDOMDocument_load(doc,
src, &
b);
10402 ok(
ptr !=
NULL,
"SafeArrayAccessData() returned NULL\n");
10408 hr = IXMLDOMDocument_load(doc,
src, &
b);
10410 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
10413 IXMLDOMDocument_Release(doc);
10420 static const WCHAR testW[] = {
't',
'e',
's',
't',
'p',
'r',
'o',
'p',0};
10429 hr = IUnknown_QueryInterface(
obj, &IID_IDispatchEx, (
void**)&dispex);
10434 hr = IDispatchEx_GetTypeInfoCount(dispex, &ticnt);
10436 ok(ticnt == 1,
"ticnt=%u\n", ticnt);
10439 hr = IDispatchEx_DeleteMemberByName(dispex,
name, fdexNameCaseSensitive);
10443 hr = IDispatchEx_DeleteMemberByDispID(dispex, dispid);
10447 hr = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &
props);
10451 hr = IDispatchEx_GetMemberName(dispex, dispid, &
name);
10459 hr = IDispatchEx_GetNameSpaceParent(dispex, &unk);
10461 ok(unk == (
IUnknown*)0xdeadbeef,
"got %p\n", unk);
10464 hr = IDispatchEx_GetDispID(dispex,
name, fdexNameEnsure, &dispid);
10468 IDispatchEx_Release(dispex);
10473 static const char xmluriA[] =
"http://www.w3.org/XML/1998/namespace";
10475 IVBMXNamespaceManager *mgr2;
10476 IMXNamespaceManager *nsmgr;
10485 &IID_IMXNamespaceManager, (
void**)&nsmgr);
10489 hr = IMXNamespaceManager_QueryInterface(nsmgr, &
IID_IDispatch, (
void**)&disp);
10491 IDispatch_Release(disp);
10493 hr = IMXNamespaceManager_QueryInterface(nsmgr, &IID_IVBMXNamespaceManager, (
void**)&mgr2);
10499 hr = IVBMXNamespaceManager_getDeclaredPrefixes(mgr2, &
prefixes);
10506 DISPPARAMS dispparams;
10519 IUnknown_Release(
unk1);
10520 IUnknown_Release(unk2);
10522 hr = IMXNamespacePrefixes_QueryInterface(
prefixes, &IID_IDispatchEx, (
void**)&dispex);
10527 dispparams.cArgs = 1;
10528 dispparams.cNamedArgs = 0;
10529 dispparams.rgdispidNamedArgs =
NULL;
10530 dispparams.rgvarg = &
arg;
10540 IDispatchEx_Release(dispex);
10541 IMXNamespacePrefixes_Release(
prefixes);
10543 IVBMXNamespaceManager_Release(mgr2);
10545 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
NULL);
10549 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri"));
10552 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns0"),
NULL);
10556 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"xml"),
_bstr_(
"uri1"));
10559 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"xmlns"),
_bstr_(
"uri1"));
10562 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, -1,
NULL,
NULL);
10565 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0,
NULL,
NULL);
10569 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0,
NULL, &
len);
10575 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
10578 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10582 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
10606 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
"xml"),
NULL, buffW, &
len);
10613 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
"xml"),
NULL, buffW, &
len);
10616 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10626 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
"xml1"),
NULL, buffW, &
len);
10628 ok(buffW[0] == 0,
"got %x\n", buffW[0]);
10632 hr = IMXNamespaceManager_QueryInterface(nsmgr, &
IID_IUnknown, (
void**)&unk);
10635 IUnknown_Release(unk);
10637 IMXNamespaceManager_Release(nsmgr);
10641 &IID_IMXNamespaceManager, (
void**)&nsmgr);
10648 hr = IMXNamespaceManager_getPrefix(nsmgr,
NULL, 0,
NULL, &
len);
10654 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns0 uri"), 0, buffW, &
len);
10656 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10661 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns0 uri"), 0, buffW, &
len);
10663 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10666 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns1"),
_bstr_(
"ns1 uri"));
10671 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
10678 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"http://www.w3.org/XML/1998/namespace"), 0, buffW, &
len);
10685 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"http://www.w3.org/XML/1998/namespace"), 0,
NULL, &
len);
10690 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"http://www.w3.org/XML/1998/namespace"), 0,
NULL, &
len);
10696 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 1, buffW, &
len);
10698 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10703 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 2, buffW, &
len);
10705 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10710 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 0, buffW, &
len);
10712 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10717 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 1, buffW, &
len);
10719 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10724 hr = IMXNamespaceManager_getPrefix(nsmgr,
NULL, 0, buffW, &
len);
10726 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10731 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns0 uri"), 1, buffW, &
len);
10733 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10738 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 1, buffW, &
len);
10740 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10744 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns2"),
_bstr_(
"ns2 uri"));
10749 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
10756 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
10763 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 1, buffW, &
len);
10765 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10770 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 1, buffW, &
len);
10772 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10775 IMXNamespaceManager_Release(nsmgr);
10779 &IID_IMXNamespaceManager, (
void**)&nsmgr);
10783 hr = IMXNamespaceManager_popContext(nsmgr);
10786 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns1"),
_bstr_(
"ns1 uri"));
10791 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
10796 hr = IMXNamespaceManager_pushContext(nsmgr);
10801 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
10806 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns2"),
_bstr_(
"ns2 uri"));
10811 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
10816 hr = IMXNamespaceManager_pushContext(nsmgr);
10818 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns3"),
_bstr_(
"ns3 uri"));
10823 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
10830 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
10835 hr = IMXNamespaceManager_popContext(nsmgr);
10838 hr = IMXNamespaceManager_popContext(nsmgr);
10843 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
10845 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
10850 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
10855 IMXNamespaceManager_Release(nsmgr);
10862 IMXNamespaceManager *nsmgr;
10869 &IID_IMXNamespaceManager, (
void**)&nsmgr);
10874 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
10880 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &
len);
10883 hr = IMXNamespaceManager_getAllowOverride(nsmgr,
NULL);
10887 hr = IMXNamespaceManager_getAllowOverride(nsmgr, &
b);
10889 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
10891 hr = IMXNamespaceManager_putAllowOverride(nsmgr, VARIANT_FALSE);
10894 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri"));
10899 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
""),
NULL, buffW, &
len);
10903 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns0"),
_bstr_(
"ns0 uri"));
10908 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
10914 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &
len);
10920 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 2, buffW, &
len);
10925 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns1"),
_bstr_(
"ns1 uri"));
10930 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &
len);
10934 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
""),
NULL);
10937 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
NULL);
10940 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri"));
10943 hr = IMXNamespaceManager_putAllowOverride(nsmgr, VARIANT_TRUE);
10946 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri override"));
10951 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
""),
NULL, buffW, &
len);
10957 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 3, buffW, &
len);
10961 IMXNamespaceManager_Release(nsmgr);
10986 IXSLProcessor *processor;
10987 IXSLTemplate *
template;
10989 IXMLHTTPRequest *req;
10992 DISPPARAMS dispparams;
11002 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
11005 IUnknown_Release(unk);
11016 ok(
hr ==
S_OK,
"failed to create node type %d\n", *
type);
11021 IUnknown_Release(unk);
11022 IXMLDOMNode_Release(
node);
11026 hr = IXMLDOMDocument_getElementsByTagName(doc,
_bstr_(
"*"), &node_list);
11028 hr = IXMLDOMNodeList_QueryInterface(node_list, &
IID_IUnknown, (
void**)&unk);
11031 IUnknown_Release(unk);
11032 IXMLDOMNodeList_Release(node_list);
11035 hr = IXMLDOMDocument_get_childNodes(doc, &node_list);
11037 hr = IXMLDOMNodeList_QueryInterface(node_list, &
IID_IUnknown, (
void**)&unk);
11040 IUnknown_Release(unk);
11043 hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IDispatchEx, (
void**)&dispex);
11046 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
11049 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"1"), 0, &did);
11052 IDispatchEx_Release(dispex);
11055 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"item"), 0, &did);
11057 ok(did == DISPID_VALUE,
"got %d\n", did);
11061 dispparams.cArgs = 0;
11062 dispparams.cNamedArgs = 0;
11063 dispparams.rgdispidNamedArgs =
NULL;
11064 dispparams.rgvarg = &
arg;
11076 dispparams.cArgs = 2;
11077 dispparams.cNamedArgs = 0;
11078 dispparams.rgdispidNamedArgs =
NULL;
11079 dispparams.rgvarg = &
arg;
11091 dispparams.cArgs = 1;
11092 dispparams.cNamedArgs = 0;
11093 dispparams.rgdispidNamedArgs =
NULL;
11094 dispparams.rgvarg = &
arg;
11117 dispparams.cArgs = 0;
11118 dispparams.cNamedArgs = 0;
11119 dispparams.rgdispidNamedArgs =
NULL;
11120 dispparams.rgvarg =
NULL;
11129 dispparams.cArgs = 0;
11130 dispparams.cNamedArgs = 0;
11131 dispparams.rgdispidNamedArgs =
NULL;
11132 dispparams.rgvarg =
NULL;
11142 IXMLDOMNodeList_Release(node_list);
11145 hr = IXMLDOMDocument_get_parseError(doc, &
error);
11150 hr = IXMLDOMParseError_QueryInterface(
error, &IID_IDispatchEx, (
void**)&dispex);
11155 dispparams.cArgs = 1;
11156 dispparams.cNamedArgs = 0;
11157 dispparams.rgdispidNamedArgs =
NULL;
11158 dispparams.rgvarg = &
arg;
11168 IDispatchEx_Release(dispex);
11170 IUnknown_Release(unk);
11171 IXMLDOMParseError_Release(
error);
11177 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root/a"), &node_list);
11179 hr = IXMLDOMNodeList_get_item(node_list, 0, &
node);
11181 IXMLDOMNodeList_Release(node_list);
11183 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
elem);
11185 IXMLDOMNode_Release(
node);
11186 hr = IXMLDOMElement_get_attributes(
elem, &
map);
11188 IXMLDOMNamedNodeMap_QueryInterface(
map, &
IID_IUnknown, (
void**)&unk);
11190 IUnknown_Release(unk);
11192 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IDispatchEx, (
void**)&dispex);
11195 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
11198 IDispatchEx_Release(dispex);
11199 IXMLDOMNamedNodeMap_Release(
map);
11201 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root/b"), &node_list);
11203 hr = IXMLDOMNodeList_get_item(node_list, 0, &
node);
11205 IXMLDOMNodeList_Release(node_list);
11206 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
elem);
11208 IXMLDOMNode_Release(
node);
11209 hr = IXMLDOMElement_get_attributes(
elem, &
map);
11212 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IDispatchEx, (
void**)&dispex);
11215 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
11218 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"1"), 0, &did);
11221 IXMLDOMNamedNodeMap_Release(
map);
11224 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"item"), 0, &did);
11226 ok(did == DISPID_VALUE,
"got %d\n", did);
11230 dispparams.cArgs = 0;
11231 dispparams.cNamedArgs = 0;
11232 dispparams.rgdispidNamedArgs =
NULL;
11233 dispparams.rgvarg = &
arg;
11246 dispparams.cArgs = 2;
11247 dispparams.cNamedArgs = 0;
11248 dispparams.rgdispidNamedArgs =
NULL;
11249 dispparams.rgvarg = &
arg;
11262 dispparams.cArgs = 1;
11263 dispparams.cNamedArgs = 0;
11264 dispparams.rgdispidNamedArgs =
NULL;
11265 dispparams.rgvarg = &
arg;
11289 dispparams.cArgs = 0;
11290 dispparams.cNamedArgs = 0;
11291 dispparams.rgdispidNamedArgs =
NULL;
11292 dispparams.rgvarg =
NULL;
11301 dispparams.cArgs = 0;
11302 dispparams.cNamedArgs = 0;
11303 dispparams.rgdispidNamedArgs =
NULL;
11304 dispparams.rgvarg =
NULL;
11314 IDispatchEx_Release(dispex);
11315 IXMLDOMElement_Release(
elem);
11318 hr = IXMLDOMDocument_get_implementation(doc, &impl);
11321 hr = IXMLDOMImplementation_QueryInterface(impl, &IID_IDispatchEx, (
void**)&dispex);
11323 IDispatchEx_Release(dispex);
11324 IXMLDOMImplementation_Release(impl);
11326 IXMLDOMDocument_Release(doc);
11330 &IID_IXMLHttpRequest, (
void**)&req);
11333 hr = IXMLHTTPRequest_QueryInterface(req, &IID_IDispatchEx, (
void**)&dispex);
11335 IXMLHTTPRequest_Release(req);
11340 hr = IXSLTemplate_QueryInterface(
template, &IID_IDispatchEx, (
void**)&dispex);
11342 hr = IDispatchEx_QueryInterface(dispex, &
IID_IUnknown, (
void**)&unk);
11345 IUnknown_Release(unk);
11346 IDispatchEx_Release(dispex);
11349 hr =
CoCreateInstance(&CLSID_FreeThreadedDOMDocument,
NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (
void**)&doc);
11354 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
11356 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
11358 IXMLDOMDocument_Release(doc);
11360 hr = IXSLTemplate_createProcessor(
template, &processor);
11362 hr = IXSLProcessor_QueryInterface(processor, &IID_IDispatchEx, (
void**)&dispex);
11364 hr = IDispatchEx_QueryInterface(dispex, &
IID_IUnknown, (
void**)&unk);
11367 IUnknown_Release(unk);
11368 IDispatchEx_Release(dispex);
11370 IXSLProcessor_Release(processor);
11371 IXSLTemplate_Release(
template);
11377 IXMLDOMDocument_Release(doc);
11385 IXMLDOMParseError2 *
error2;
11392 hr = IXMLDOMDocument_get_parseError(doc, &
error);
11404 IXMLDOMParseError_Release(
error);
11405 IXMLDOMDocument_Release(doc);
11410 hr = IXMLDOMDocument_get_parseError(doc, &
error);
11412 hr = IXMLDOMParseError_QueryInterface(
error, &IID_IXMLDOMParseError2, (
void**)&
error2);
11414 IXMLDOMParseError2_Release(
error2);
11415 IXMLDOMParseError_Release(
error);
11416 IXMLDOMDocument_Release(doc);
11433 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
11458 IXMLDOMAttribute_Release(
attr);
11465 IXMLDOMAttribute_Release(
attr);
11467 IXMLDOMElement_Release(
elem);
11468 IXMLDOMDocument_Release(doc);
11485 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
11512 hr = IXMLDOMElement_getAttribute(
elem,
_bstr_(
"non-existent"), &
var );
11517 IXMLDOMElement_Release(
elem);
11518 IXMLDOMDocument_Release(doc);
11529 {
NODE_ELEMENT,
"element", { &IID_IXMLDOMNode, &IID_IXMLDOMElement } },
11530 {
NODE_ATTRIBUTE,
"attribute", { &IID_IXMLDOMNode, &IID_IXMLDOMAttribute } },
11534 {
NODE_COMMENT,
"comment", { &IID_IXMLDOMNode, &IID_IXMLDOMComment } },
11541 static REFIID iids[5] = { &IID_IXMLDOMNode, &IID_IXMLDOMDocument,
11542 &IID_IXMLDOMDocument2, &IID_IXMLDOMDocument3 };
11545 IXMLDOMSchemaCollection *schemacache;
11559 hr = IXMLDOMDocument_QueryInterface(doc, &IID_ISupportErrorInfo, (
void**)&errorinfo);
11562 ISupportErrorInfo_AddRef(errorinfo);
11565 ISupportErrorInfo_Release(errorinfo);
11567 hr = IXMLDOMDocument_QueryInterface(doc, &IID_ISupportErrorInfo, (
void**)&info2);
11569 ok(errorinfo != info2,
"got %p, %p\n", info2, errorinfo);
11572 hr = ISupportErrorInfo_QueryInterface(info2, &IID_IXMLDOMDocument, &
dummy);
11574 hr = ISupportErrorInfo_QueryInterface(info2, &IID_IXMLDOMNode, &
dummy);
11577 ISupportErrorInfo_Release(info2);
11582 hr = IXMLDOMDocument_QueryInterface(doc, *iid, (
void**)&unk);
11586 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, *iid);
11588 IUnknown_Release(unk);
11594 ISupportErrorInfo_Release(errorinfo);
11608 hr = IXMLDOMNode_QueryInterface(
node, &IID_ISupportErrorInfo, (
void**)&errorinfo);
11612 hr = ISupportErrorInfo_QueryInterface(errorinfo, &IID_IXMLDOMNode, &
dummy);
11619 hr = IXMLDOMNode_QueryInterface(
node, *iid, (
void**)&unk);
11622 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, *iid);
11624 IUnknown_Release(unk);
11630 ISupportErrorInfo_Release(errorinfo);
11631 IXMLDOMNode_Release(
node);
11639 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
11641 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
11644 hr = IXMLDOMElement_get_attributes(
elem, &
map);
11648 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_ISupportErrorInfo, (
void**)&errorinfo);
11652 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, &IID_IXMLDOMNamedNodeMap);
11655 hr = ISupportErrorInfo_QueryInterface(errorinfo, &IID_IXMLDOMNamedNodeMap, (
void**)&map2);
11657 ok(
map == map2,
"got %p\n", map2);
11658 IXMLDOMNamedNodeMap_Release(map2);
11661 hr = ISupportErrorInfo_QueryInterface(errorinfo, &
IID_IUnknown, (
void**)&unk);
11665 IUnknown_Release(unk);
11667 ISupportErrorInfo_Release(errorinfo);
11668 IXMLDOMNamedNodeMap_Release(
map);
11669 IXMLDOMElement_Release(
elem);
11671 IXMLDOMDocument_Release(doc);
11674 hr =
CoCreateInstance(&CLSID_XMLSchemaCache,
NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMSchemaCollection, (
void**)&schemacache);
11675 ok(
hr ==
S_OK,
"failed to create schema collection, 0x%08x\n",
hr);
11677 hr = IXMLDOMSchemaCollection_QueryInterface(schemacache, &IID_ISupportErrorInfo, (
void**)&errorinfo);
11680 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, &IID_IXMLDOMSchemaCollection);
11683 ISupportErrorInfo_Release(errorinfo);
11684 IXMLDOMSchemaCollection_Release(schemacache);
11727 ok(
hr ==
S_OK,
"failed to create node type %d\n",
ptr->type);
11734 hr = IXMLDOMNode_put_nodeValue(
node,
v);
11735 ok(
hr ==
ptr->put_hr,
"%d: got 0x%08x\n",
ptr->type,
hr);
11738 hr = IXMLDOMNode_get_nodeValue(
node, &
v);
11739 ok(
hr ==
ptr->get_hr,
"%d: got 0x%08x, expected 0x%08x\n",
ptr->type,
hr,
ptr->get_hr);
11746 IXMLDOMNode_Release(
node);
11751 IXMLDOMDocument_Release(doc);
11766 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
11772 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"xmlns:dt"), &pAttribute);
11776 V_BSTR(&
v) =
_bstr_(
"urn:schemas-microsoft-com:datatypes");
11777 hr = IXMLDOMAttribute_put_nodeValue(pAttribute,
v);
11780 hr = IXMLDOMElement_setAttributeNode(
root, pAttribute,
NULL);
11786 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
11790 hr = IXMLDOMElement_get_xml(
elem, &
str);
11796 IXMLDOMElement_Release(
elem);
11797 IXMLDOMAttribute_Release( pAttribute);
11799 IXMLDOMDocument_Release(doc);
11805"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
11806" <ns1:elem1 xmlns:ns1=\"http://blah.org\" b='1' >"
11807" <ns2:elem2 xmlns:ns2=\"http://blah.org\"/>"
11810" <elem5 xmlns=\"http://blahblah.org\"/>"
11811" <ns1:elem6>true</ns1:elem6>"
11816"<?xml version='1.0'?>"
11817"<schema xmlns='http://www.w3.org/2001/XMLSchema'"
11818" targetNamespace='x-schema:test1.xsd'>"
11819" <element name='root'>"
11821" <sequence maxOccurs='unbounded'>"
11830 IXMLDOMSchemaCollection *
collection, *collection2;
11831 IXMLDOMDocument2 *doc, *doc2;
11845 hr = IXMLDOMDocument2_get_namespaces(doc,
NULL);
11850 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
11854 IXMLDOMDocument2_Release(doc);
11859 collection2 = (
void*)0xdeadbeef;
11860 hr = IXMLDOMDocument2_get_namespaces(doc, &collection2);
11862 ok(
collection == collection2,
"got %p\n", collection2);
11864 IXMLDOMSchemaCollection_Release(
collection);
11870 IXMLDOMSchemaCollection_Release(
collection);
11876 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
11885 node = (
void*)0xdeadbeef;
11890 node = (
void*)0xdeadbeef;
11905 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 0, &
s);
11910 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 1, &
s);
11915 s = (
void*)0xdeadbeef;
11916 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 2, &
s);
11918 ok(
s == (
void*)0xdeadbeef,
"got %p\n",
s);
11921 enumv = (
void*)0xdeadbeef;
11926 ok(enumv !=
NULL,
"got %p\n", enumv);
11930 hr = IEnumVARIANT_QueryInterface(enumv, &
IID_IUnknown, (
void**)&unk2);
11932 ok(
unk1 != unk2,
"got %p, %p\n",
unk1, unk2);
11933 IUnknown_Release(
unk1);
11934 IUnknown_Release(unk2);
11936 hr = IXMLDOMSchemaCollection_QueryInterface(
collection, &IID_IEnumVARIANT, (
void**)&enum2);
11940 hr = IEnumVARIANT_Next(enumv, 1, &
v,
NULL);
11947 hr = IEnumVARIANT_Next(enumv, 1, &
v,
NULL);
11954 hr = IEnumVARIANT_Next(enumv, 1, &
v,
NULL);
11958 IEnumVARIANT_Release(enumv);
11959 IXMLDOMSchemaCollection_Release(
collection);
11961 IXMLDOMDocument2_Release(doc);
11968 hr = IXMLDOMDocument2_get_namespaces(doc,
NULL);
11973 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
11977 IXMLDOMDocument2_Release(doc);
11982 collection2 = (
void*)0xdeadbeef;
11983 hr = IXMLDOMDocument2_get_namespaces(doc, &collection2);
11985 ok(
collection == collection2,
"got %p\n", collection2);
11987 IXMLDOMSchemaCollection_Release(
collection);
11993 IXMLDOMSchemaCollection_Release(
collection);
11999 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
12008 node = (
void*)0xdeadbeef;
12022 IXMLDOMDocument2_Release(doc2);
12024 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 0, &
s);
12029 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 1, &
s);
12034 s = (
void*)0xdeadbeef;
12035 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 2, &
s);
12040 enumv = (
void*)0xdeadbeef;
12043 ok(enumv !=
NULL,
"got %p\n", enumv);
12046 hr = IEnumVARIANT_Next(enumv, 1, &
v,
NULL);
12053 hr = IEnumVARIANT_Next(enumv, 1, &
v,
NULL);
12060 hr = IEnumVARIANT_Next(enumv, 1, &
v,
NULL);
12064 IEnumVARIANT_Release(enumv);
12065 IXMLDOMSchemaCollection_Release(
collection);
12066 IXMLDOMDocument2_Release(doc);
12080 static const WCHAR test_data[] = {
't',
'e',
's',
't',
' ',
'n',
'o',
'd',
'e',
' ',
'd',
'a',
't',
'a',0};
12111 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
12116 hr = IXMLDOMText_get_data(
text, &get_data);
12119 IXMLDOMText_Release(
text);
12126 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
12128 hr = IXMLDOMCDATASection_put_data(cdata,
data);
12131 hr = IXMLDOMCDATASection_get_data(cdata, &get_data);
12134 IXMLDOMCDATASection_Release(cdata);
12141 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMProcessingInstruction, (
void**)&
pi);
12143 hr = IXMLDOMProcessingInstruction_put_data(
pi,
data);
12146 hr = IXMLDOMProcessingInstruction_get_data(
pi, &get_data);
12149 IXMLDOMProcessingInstruction_Release(
pi);
12156 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
12161 hr = IXMLDOMComment_get_data(
comment, &get_data);
12164 IXMLDOMComment_Release(
comment);
12177 IXMLDOMNode_Release(
node);
12181 IXMLDOMDocument_Release(doc);
12200 while (
table->clsid)
12214 IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
12221 hr = IXMLDOMText_get_data(
text, &
s);
12230 hr = IXMLDOMText_get_xml(
text, &
s);
12240 hr = IXMLDOMText_get_data(
text, &
s);
12249 hr = IXMLDOMText_get_xml(
text, &
s);
12256 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<?xml version=\"1.0\"?><root>foo\n\r\n\r\r\nbar</root>"), &
b);
12259 hr = IXMLDOMDocument_get_text(doc, &
s);
12264 hr = IXMLDOMDocument_get_xml(doc, &
s);
12266 ok(!
lstrcmpW(
s,
_bstr_(
"<?xml version=\"1.0\"?>\r\n<root>foo\r\n\r\n\r\n\r\nbar</root>\r\n")),
12272 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<?xml version=\"1.0\"?>"
12273 "<root xml:space=\"preserve\">foo\n\r\n\r\r\nbar</root>"), &
b);
12276 hr = IXMLDOMDocument_get_text(doc, &
s);
12281 hr = IXMLDOMDocument_get_xml(doc, &
s);
12284 "<root xml:space=\"preserve\">foo\r\n\r\n\r\n\r\nbar</root>\r\n")),
12290 hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_TRUE);
12293 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<?xml version=\"1.0\"?><root>foo\n\r\n\r\r\nbar</root>"), &
b);
12296 hr = IXMLDOMDocument_get_text(doc, &
s);
12301 hr = IXMLDOMDocument_get_xml(doc, &
s);
12307 ok(!
lstrcmpW(
s,
_bstr_(
"<?xml version=\"1.0\"?><root>foo\r\n\r\n\r\n\r\nbar</root>")),
12312 ok(!
lstrcmpW(
s,
_bstr_(
"<?xml version=\"1.0\"?>\r\n<root>foo\r\n\r\n\r\n\r\nbar</root>\r\n")),
12317 IXMLDOMText_Release(
text);
12318 IXMLDOMNode_Release(
node);
12319 IXMLDOMDocument_Release(doc);
12327 IXMLDOMSchemaCollection *
cache;
12328 IXMLDOMDocument2 *doc;
12333 if (!
is_clsid_supported(&CLSID_XMLSchemaCache, &IID_IXMLDOMSchemaCollection))
return;
12341 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
12346 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
12352 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
12356 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
12362 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
12367 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
12375 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
12379 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
12385 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
12390 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
12395 IXMLDOMSchemaCollection_Release(
cache);
12396 IXMLDOMDocument2_Release(doc);
12417 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
12420 hr = IXMLDOMElement_get_attributes(
elem, &
map);
12422 IXMLDOMElement_Release(
elem);
12426 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IEnumVARIANT, (
void**)&enum1);
12428 ok(enum1 !=
NULL,
"got %p\n", enum1);
12433 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IEnumVARIANT, (
void**)&enum2);
12435 ok(enum2 == enum1,
"got %p\n", enum2);
12437 IEnumVARIANT_Release(enum2);
12440 hr = IXMLDOMNamedNodeMap__newEnum(
map, (
IUnknown**)&enum2);
12444 ok(enum2 != enum1,
"got %p, %p\n", enum2, enum1);
12446 IEnumVARIANT_Release(enum1);
12451 hr = IEnumVARIANT_QueryInterface(enum2, &
IID_IUnknown, (
void**)&unk2);
12455 ok(
unk1 != unk2,
"got %p, %p\n",
unk1, unk2);
12456 IUnknown_Release(
unk1);
12457 IUnknown_Release(unk2);
12459 hr = IXMLDOMNamedNodeMap__newEnum(
map, (
IUnknown**)&enum3);
12461 ok(enum2 != enum3,
"got %p, %p\n", enum2, enum3);
12462 IEnumVARIANT_Release(enum3);
12465 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &
node);
12467 hr = IXMLDOMNode_get_nodeName(
node, &
str);
12471 IXMLDOMNode_Release(
node);
12473 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node);
12475 hr = IXMLDOMNode_get_nodeName(
node, &
str);
12479 IXMLDOMNode_Release(
node);
12482 hr = IEnumVARIANT_Next(enum2, 1, &
v,
NULL);
12485 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IXMLDOMNode, (
void**)&
node);
12487 hr = IXMLDOMNode_get_nodeName(
node, &
str);
12491 IXMLDOMNode_Release(
node);
12494 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node);
12496 hr = IXMLDOMNode_get_nodeName(
node, &
str);
12500 IXMLDOMNode_Release(
node);
12502 IEnumVARIANT_Release(enum2);
12503 IXMLDOMNamedNodeMap_Release(
map);
12504 IXMLDOMDocument_Release(doc);
12508"<?xml version=\"1.0\"?>"
12509"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >"
12510"<xsl:output method=\"html\" encoding=\"us-ascii\"/>"
12511"<xsl:template match=\"/\">"
12513" <xsl:when test=\"testkey\">"
12514" <xsl:text>testdata</xsl:text>"
12518"</xsl:stylesheet>";
12521"<?xml version=\"1.0\"?>"
12522"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >"
12523"<xsl:output method=\"xml\" omit-xml-declaration=\"yes\"/>"
12524"<xsl:template match=\"/\">"
12525" <xsl:for-each select=\"/a/item\">"
12526" <xsl:element name=\"node\">"
12527" <xsl:value-of select=\"@name\"/>"
12531"</xsl:stylesheet>";
12534"<?xml version=\"1.0\"?>"
12536" <item name=\"item1\"/>"
12537" <item name=\"item2\"/>"
12553 hr = IXMLDOMDocument_loadXML(doc2,
_bstr_(
"<testkey/>"), &
b);
12572 IXMLDOMDocument_Release(doc2);
12573 IXMLDOMDocument_Release(doc);
12585 {
"xmlns",
"http://www.w3.org/2000/xmlns/",
"xmlns",
"xmlns" },
12586 {
"xmlns",
"nondefaulturi",
"xmlns",
"xmlns" },
12587 {
"c",
"http://www.w3.org/2000/xmlns/",
NULL,
"http://www.w3.org/2000/xmlns/" },
12588 {
"c",
"nsref1",
NULL,
"nsref1" },
12589 {
"ns:c",
"nsref1",
"ns",
"nsref1" },
12590 {
"xmlns:c",
"http://www.w3.org/2000/xmlns/",
"xmlns",
"" },
12591 {
"xmlns:c",
"nondefaulturi",
"xmlns",
"" },
12616 hr = IXMLDOMNode_get_prefix(
node, &
str);
12630 hr = IXMLDOMNode_get_namespaceURI(
node, &
str);
12635 IXMLDOMNode_Release(
node);
12644 hr = IXMLDOMDocument_createNode(doc,
var,
_bstr_(
"e"),
NULL, &node2);
12647 hr = IXMLDOMNode_QueryInterface(node2, &IID_IXMLDOMElement, (
void**)&el);
12649 IXMLDOMNode_Release(node2);
12653 hr = IXMLDOMDocument_createNode(doc,
var,
_bstr_(
"xmlns:a"),
_bstr_(
"http://www.w3.org/2000/xmlns/"), &
node);
12660 hr = IXMLDOMNode_get_namespaceURI(
node, &
str);
12665 IXMLDOMNode_Release(
node);
12666 IXMLDOMElement_Release(el);
12667 IXMLDOMDocument_Release(doc);
12679 hr = IXMLDOMDocument_get_url(doc,
NULL);
12682 s = (
void *)0xdeadbeef;
12683 hr = IXMLDOMDocument_get_url(doc, &
s);
12687 IXMLDOMDocument_Release(doc);
12704 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
12711 for (
i = 0;
i < 10;
i++)
12714 hr = IXMLDOMDocument_createTextNode(doc,
str, &nodetext);
12721 ok(nodetext == newtext,
"expected %p, got %p\n", nodetext, newtext);
12723 IXMLDOMText_Release(newtext);
12724 IXMLDOMText_Release(nodetext);
12728 hr = IXMLDOMElement_get_firstChild(
root, &
first);
12732 for (
i = 0;
i < 10;
i++)
12735 hr = IXMLDOMDocument_createTextNode(doc,
str, &nodetext);
12742 ok(nodetext == newtext,
"expected %p, got %p\n", nodetext, newtext);
12744 IXMLDOMText_Release(newtext);
12745 IXMLDOMText_Release(nodetext);
12748 IXMLDOMNode_Release(
first);
12749 IXMLDOMElement_Release(
root);
12750 IXMLDOMDocument_Release(doc);
12800 ok(
hr ==
S_OK,
"Failed to load document, hr %#x.\n",
hr);
12802 ok(
hr ==
S_OK,
"Failed to load document, hr %#x.\n",
hr);
12806 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
12811 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
12816 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
12821 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
12822 ok(
hr ==
S_OK,
"Failed to transform node, hr %#x.\n",
hr);
12824 IXMLDOMDocument_Release(doc3);
12825 IXMLDOMDocument_Release(doc2);
12826 IXMLDOMDocument_Release(doc);
12832 IXMLDOMDocument2 *doc;
12838 win_skip(
"NormalizeAttributeValues is not supported.\n");
12846 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"NormalizeAttributeValues"), &
var);
12848 ok(
hr ==
S_OK,
"Failed to get property value, hr %#x.\n",
hr);
12850 ok(
V_BOOL(&
var) == VARIANT_FALSE,
"Unexpected property value.\n");
12854 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"NormalizeAttributeValues"),
var);
12855 ok(
hr ==
S_OK,
"Failed to set property, hr %#x.\n",
hr);
12859 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"NormalizeAttributeValues"), &
var);
12861 ok(
hr ==
S_OK,
"Failed to get property value, hr %#x.\n",
hr);
12863 ok(
V_BOOL(&
var) == VARIANT_TRUE,
"Unexpected property value.\n");
12865 IXMLDOMDocument2_Release(doc);
12876 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
"" },
12877 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26",
"" },
12878 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"" },
12879 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"" },
12880 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"http://www.w3.org/2000/xmlns/" },
12890 const char *
names[3];
12892 const char *basenames[3];
12893 const char *uris[3];
12894 const char *texts[3];
12898 "<a ns:b=\"b attr\" d=\"d attr\" xmlns:ns=\"nshref\" />", 3,
12899 {
"ns:b",
"d",
"xmlns:ns" },
12900 {
"ns",
NULL,
"xmlns" },
12901 {
"b",
"d",
"ns" },
12902 {
"nshref",
NULL,
"" },
12903 {
"b attr",
"d attr",
"nshref" },
12907 "<a d=\"d attr\" />", 1,
12916 "<a xmlns:ns=\"nshref\" />", 1,
12939 while (
entry->guid)
12948 while (
test->xml) {
12953 ok(
hr ==
S_OK,
"Failed to load xml, hr %#x.\n",
hr);
12956 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"a"), &
node);
12959 hr = IXMLDOMNode_get_attributes(
node, &
map);
12963 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len);
12968 hr = IXMLDOMNamedNodeMap_get_item(
map,
test->explen+1, &
item);
12970 ok(!
item,
"Item should be NULL\n");
12972 for (
i = 0;
i <
len;
i++)
12975 hr = IXMLDOMNamedNodeMap_get_item(
map,
i, &
item);
12979 hr = IXMLDOMNode_get_nodeName(
item, &
str);
12985 hr = IXMLDOMNode_get_prefix(
item, &
str);
12986 if (
test->prefixes[
i])
12988 ok(
hr ==
S_OK,
"Failed to get node name, hr %#x.\n",
hr);
12993 ok(
hr ==
S_FALSE,
"Failed to get node name, hr %#x.\n",
hr);
12996 hr = IXMLDOMNode_get_baseName(
item, &
str);
13002 hr = IXMLDOMNode_get_namespaceURI(
item, &
str);
13005 ok(
hr ==
S_OK,
"Failed to get node name, hr %#x.\n",
hr);
13013 ok(
hr ==
S_FALSE,
"Failed to get node name, hr %#x.\n",
hr);
13021 IXMLDOMNode_Release(
item);
13024 IXMLDOMNamedNodeMap_Release(
map);
13025 IXMLDOMNode_Release(
node);
13026 IXMLDOMDocument_Release(doc);
13041 ok(
hr ==
S_OK,
"failed to init com\n");
13047 win_skip(
"DOMDocument2 is not supported. Skipping all tests.\n");
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]
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#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)
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
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
static const WCHAR bodyW[]
static const WCHAR emptyW[]
static const WCHAR testW[]
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
static struct test_info tests[]
#define sprintf(buf, format,...)
#define comment(fmt, arg1)
#define todo_wine_if(is_todo)
static void get_str_for_type(DOMNodeType type, char *buf)
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 const WCHAR szOpen[]
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 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
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 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 const WCHAR szCommentXML[]
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 WCHAR szAttributeXML[]
static const char * leading_spaces_xmldata[]
static dispevent * impl_from_IDispatch(IDispatch *iface)
struct _namespace_as_attribute_t namespace_as_attribute_t
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[]
#define helper_ole_check_ver(expr)
static const WCHAR szIncomplete[]
#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)
#define EXPECT_HR(hr, hr_exp)
#define create_document_version(v, iid)
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 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)
#define helper_expect_bstr_and_release(bstr, str)
static void test_create(void)
static HRESULT WINAPI response_WriteBlock(IResponse *iface, short iBlockNumber)
static const WCHAR szCData[]
static struct msxmlsupported_data_t domdoc_support_data[]
static void test_domdoc(void)
static void test_domnode(void)
static const WCHAR szComment[]
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 const WCHAR szvr[]
static const WCHAR szEntityRef[]
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 const WCHAR szElementXML3[]
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)
static const WCHAR szComplete2[]
static const WCHAR szstar[]
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 HRESULT WINAPI response_AddHeader(IResponse *iface, BSTR bstrHeaderName, BSTR bstrHeaderValue)
static const WCHAR szDocFragmentText[]
static void test_cloneNode(void)
static void test_insertBefore(void)
static const get_attributes_t get_attributes[]
static void test_supporterrorinfo(void)
static const WCHAR szElementXML[]
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 const WCHAR szAttribute[]
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 const WCHAR szCDataNodeText[]
static void _expect_no_children(IXMLDOMNode *node, int line)
static const WCHAR szCommentNodeText[]
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_doc_load_from_path(IXMLDOMDocument *doc, const char *path)
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)
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 const WCHAR szCDataXML[]
static void * _create_object(const GUID *clsid, const char *name, const IID *iid, int line)
static const WCHAR szfn1_txt[]
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 const WCHAR szComplete6[]
static void test_XPath(void)
static const WCHAR szStrangeChars[]
static const WCHAR szEntityRefXML[]
static ULONG WINAPI istream_AddRef(IStream *iface)
static const WCHAR nonexistent_attrW[]
static void test_xsltext(void)
static const node_type_t get_datatype[]
static const WCHAR szbs[]
static const char omitxmldecl_xsl[]
static const WCHAR szlc[]
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 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 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)
static const WCHAR szstr1[]
#define check_ws_ignored(ver, doc, str)
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)
#define helper_ole_check(expr)
static IStream savestream
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 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 const IUnknownVtbl transformdestvtbl
#define ole_expect(expr, expect)
static const struct queryresult_t elementsbytagname[]
static void test_removeQualifiedItem(void)
static const CHAR szEmailXML_16[]
static const char get_prefix_doc[]
static const WCHAR szdl[]
static const WCHAR szElementXML4[]
static void test_selection(void)
static void test_get_tagName(void)
static const char omitxmldecl_doc[]
static const WCHAR szElementXML2[]
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 * debugstr_msxml_guid(REFIID riid)
static const WCHAR szEmpty[]
static const WCHAR szstr2[]
static const xpath_test_t xpath_test[]
#define test_IObjectSafety_common(s)
static void test_XSLPattern(void)
static const WCHAR szDocument[]
static const char complete4A[]
static const CHAR szBasicTransformOutput[]
static HRESULT WINAPI response_End(IResponse *iface)
static void test_TransformWithLoadingLocalFile(void)
static const IDispatchVtbl dispeventVtbl
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
static const WCHAR xmlW[]
#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_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)
static unsigned __int64 next
static __inline const char * wine_dbgstr_guid(const GUID *id)
IDispatch IDispatch_iface
struct docload_ret_t ret[2]
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)
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
_In_ ULONG _In_ ULONG_PTR ident
_In_ ULONG _In_opt_ PVOID pvData
#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