47 { &CLSID_MXXMLWriter60,
"MXXMLWriter60", &IID_IMXWriter },
48 { &CLSID_SAXAttributes60,
"SAXAttributes60", &IID_IMXAttributes },
62 if (
hr ==
S_OK) IUnknown_Release(unk);
83#define EXPECT_REF(obj,ref) _expect_ref((IUnknown*)obj, ref, __LINE__)
88 rc = IUnknown_Release(
obj);
89 ok_(__FILE__,
line)(rc ==
ref,
"expected refcount %ld, got %ld.\n",
ref, rc);
92#define check_interface(a, b, c) check_interface_(__LINE__, a, b, c)
101 hr = IUnknown_QueryInterface(iface,
iid, (
void **)&unk);
102 ok_(__FILE__,
line)(
hr == expected_hr,
"Got hr %#lx, expected %#lx.\n",
hr, expected_hr);
104 IUnknown_Release(unk);
112 ref = IUnknown_AddRef(unk);
113 IUnknown_Release(unk);
184 ok(0,
"unexpected call\n");
191 const WCHAR **pLocalName,
192 int *pLocalNameLength)
194 ok(0,
"unexpected call\n");
204 static const WCHAR attrqnamesW[][15] = {
L"a:attr1junk",
207 static const int attrqnamelen[] = {7, 5, 5};
212 *QName = attrqnamesW[
index];
213 *QNameLength = attrqnamelen[
index];
227 const WCHAR ** pLocalName,
228 int * pLocalNameSize,
229 const WCHAR ** pQName,
232 ok(0,
"unexpected call\n");
240 const WCHAR * pLocalName,
244 ok(0,
"unexpected call\n");
250 const WCHAR * pQName,
254 ok(0,
"unexpected call\n");
261 const WCHAR ** pType,
264 ok(0,
"unexpected call\n");
272 const WCHAR * pLocalName,
274 const WCHAR ** pType,
277 ok(0,
"unexpected call\n");
283 const WCHAR * pQName,
285 const WCHAR ** pType,
288 ok(0,
"unexpected call\n");
295 static const WCHAR attrvaluesW[][10] = {
L"a1junk",
298 static const int attrvalueslen[] = {2, 2, 5};
304 *nValue = attrvalueslen[
index];
317 const WCHAR * pLocalName,
322 ok(0,
"unexpected call\n");
328 const WCHAR * pQName,
333 ok(0,
"unexpected call\n");
365 static const IID *riids[] =
367 &IID_ISAXContentHandler,
368 &IID_ISAXLexicalHandler,
369 &IID_ISAXDeclHandler,
371 &IID_ISAXErrorHandler,
372 &IID_IVBSAXDeclHandler,
373 &IID_IVBSAXLexicalHandler,
374 &IID_IVBSAXContentHandler,
375 &IID_IVBSAXDTDHandler,
376 &IID_IVBSAXErrorHandler
379 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
390 hr = IMXWriter_QueryInterface(writer, riids[
i], (
void**)&
handler);
395 hr = IUnknown_QueryInterface(
handler, &IID_IMXWriter, (
void**)&writer2);
397 ok(writer2 == writer,
"got %p, expected %p\n", writer2, writer);
399 IMXWriter_Release(writer2);
403 IMXWriter_Release(writer);
413 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
417 hr = IMXWriter_get_byteOrderMark(writer, &
b);
419 ok(
b == VARIANT_TRUE,
"Unexpected value %d.\n",
b);
422 hr = IMXWriter_get_disableOutputEscaping(writer, &
b);
424 ok(
b == VARIANT_FALSE,
"Unexpected value %d.\n",
b);
427 hr = IMXWriter_get_indent(writer, &
b);
429 ok(
b == VARIANT_FALSE,
"Unexpected value %d.\n",
b);
432 hr = IMXWriter_get_omitXMLDeclaration(writer, &
b);
434 ok(
b == VARIANT_FALSE,
"Unexpected value %d.\n",
b);
437 hr = IMXWriter_get_standalone(writer, &
b);
439 ok(
b == VARIANT_FALSE,
"Unexpected value %d.\n",
b);
441 hr = IMXWriter_get_encoding(writer, &encoding);
446 IMXWriter_Release(writer);
460 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
463 hr = IMXWriter_get_disableOutputEscaping(writer,
NULL);
466 hr = IMXWriter_get_byteOrderMark(writer,
NULL);
469 hr = IMXWriter_get_indent(writer,
NULL);
472 hr = IMXWriter_get_omitXMLDeclaration(writer,
NULL);
475 hr = IMXWriter_get_standalone(writer,
NULL);
479 hr = IMXWriter_put_standalone(writer, VARIANT_TRUE);
483 hr = IMXWriter_get_standalone(writer, &
b);
485 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
487 hr = IMXWriter_get_encoding(writer,
NULL);
490 str = (
void*)0xdeadbeef;
491 hr = IMXWriter_get_encoding(writer, &
str);
495 str2 = (
void*)0xdeadbeef;
496 hr = IMXWriter_get_encoding(writer, &
str2);
498 ok(
str !=
str2,
"expected newly allocated, got same %p\n",
str);
505 hr = IMXWriter_put_encoding(writer,
str);
510 str = (
void*)0xdeadbeef;
511 hr = IMXWriter_get_encoding(writer, &
str);
518 hr = IMXWriter_put_encoding(writer,
str);
523 hr = IMXWriter_put_encoding(writer,
_bstr_(
"utf-8"));
525 str = (
void*)0xdeadbeef;
526 hr = IMXWriter_get_encoding(writer, &
str);
531 hr = IMXWriter_put_encoding(writer,
_bstr_(
"uTf-16"));
533 str = (
void*)0xdeadbeef;
534 hr = IMXWriter_get_encoding(writer, &
str);
540 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
543 hr = ISAXContentHandler_startDocument(
content);
545 hr = ISAXContentHandler_endDocument(
content);
549 hr = IMXWriter_get_output(writer, &
dest);
553 ok(!
lstrcmpW(
L"<?xml version=\"1.0\" standalone=\"yes\"?>\r\n",
556 ISAXContentHandler_Release(
content);
558 hr = IMXWriter_get_version(writer,
NULL);
561 hr = IMXWriter_get_version(writer, &
str);
567 hr = IMXWriter_put_version(writer,
NULL);
571 hr = IMXWriter_put_version(writer,
_bstr_(
"1.0"));
574 hr = IMXWriter_put_version(writer,
_bstr_(
""));
576 hr = IMXWriter_get_version(writer, &
str);
582 hr = IMXWriter_put_version(writer,
_bstr_(
"a.b"));
584 hr = IMXWriter_get_version(writer, &
str);
589 hr = IMXWriter_put_version(writer,
_bstr_(
"2.0"));
591 hr = IMXWriter_get_version(writer, &
str);
596 IMXWriter_Release(writer);
613 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
622 hr = IMXWriter_put_output(writer,
dest);
628 hr = IMXWriter_put_output(writer,
dest);
634 hr = IMXWriter_put_output(writer,
dest);
640 hr = IMXWriter_put_output(writer,
dest);
644 hr = IMXWriter_flush(writer);
649 hr = IStream_Seek(
stream,
pos, STREAM_SEEK_CUR, &pos2);
651 ok(pos2.
QuadPart == 0,
"expected stream beginning\n");
653 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
656 hr = ISAXContentHandler_startDocument(
content);
660 hr = IStream_Seek(
stream,
pos, STREAM_SEEK_CUR, &pos2);
662 ok(pos2.
QuadPart != 0,
"expected stream beginning\n");
665 hr = ISAXContentHandler_startDocument(
content);
668 hr = ISAXContentHandler_endDocument(
content);
673 hr = IStream_Seek(
stream,
pos, STREAM_SEEK_CUR, &pos2);
675 ok(pos2.
QuadPart != 0,
"expected stream position moved\n");
686 hr = IMXWriter_put_output(writer,
dest);
689 hr = IMXWriter_put_byteOrderMark(writer, VARIANT_FALSE);
692 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
695 hr = ISAXContentHandler_startDocument(
content);
704 hr = IStream_Seek(
stream,
pos, STREAM_SEEK_CUR, &pos2);
706 ok(pos2.
QuadPart == 0,
"expected stream beginning\n");
717 hr = IStream_Seek(
stream,
pos, STREAM_SEEK_CUR, &pos2);
719 ok(pos2.
QuadPart != 0,
"unexpected stream beginning\n");
721 hr = IMXWriter_get_output(writer,
NULL);
726 hr = IMXWriter_get_output(writer, &
dest);
733 hr = ISAXContentHandler_endDocument(
content);
743 hr = ISAXContentHandler_startDocument(
content);
751 hr = IStream_Seek(
stream,
pos, STREAM_SEEK_CUR, &pos2);
753 ok(pos2.
QuadPart == 0,
"expected stream beginning\n");
762 hr = IStream_Seek(
stream,
pos, STREAM_SEEK_CUR, &pos2);
764 ok(pos2.
QuadPart == 0,
"expected stream beginning\n");
766 hr = ISAXContentHandler_endDocument(
content);
771 hr = IMXWriter_put_output(writer,
dest);
774 hr = ISAXContentHandler_startDocument(
content);
786 hr = IMXWriter_get_output(writer, &
dest);
793 ISAXContentHandler_Release(
content);
795 IMXWriter_Release(writer);
806 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
809 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
812 hr = ISAXContentHandler_startDocument(
content);
815 hr = ISAXContentHandler_endDocument(
content);
819 hr = IMXWriter_get_output(writer, &
dest);
827 hr = ISAXContentHandler_startDocument(
content);
831 hr = IMXWriter_get_output(writer, &
dest);
834 ok(!
lstrcmpW(
_bstr_(
"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n"
835 "<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n"),
V_BSTR(&
dest)),
839 ISAXContentHandler_Release(
content);
840 IMXWriter_Release(writer);
843 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
846 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
849 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
852 hr = ISAXContentHandler_startDocument(
content);
855 hr = ISAXContentHandler_endDocument(
content);
859 hr = IMXWriter_get_output(writer, &
dest);
865 ISAXContentHandler_Release(
content);
866 IMXWriter_Release(writer);
890static const char startelement_xml[] =
"<uri:local a:attr1=\"a1\" attr2=\"a2\" attr3=\"<&">\'\">";
891static const char startendelement_xml[] =
"<uri:local a:attr1=\"a1\" attr2=\"a2\" attr3=\"<&">\'\"/>";
909 {
EndElement,
"uri",
"local",
"uri:local",
"</uri:local>",
S_OK },
910 {
EndElement,
"uri",
"local",
"uri:local2",
"</uri:local2>",
S_OK },
928 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
931 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
934 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
937 hr = ISAXContentHandler_startDocument(
content);
942 hr = IMXWriter_put_disableOutputEscaping(writer, VARIANT_TRUE);
968 hr = IMXWriter_get_output(writer, &
dest);
976 ISAXContentHandler_Release(
content);
977 IMXWriter_Release(writer);
997 {
"a", 1,
"b", 1,
"<a/>",
S_OK },
1011 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1014 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
1017 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
1020 hr = ISAXContentHandler_startDocument(
content);
1037 hr = IMXWriter_get_output(writer, &
dest);
1045 ISAXContentHandler_Release(
content);
1046 IMXWriter_Release(writer);
1055 IVBSAXContentHandler *vb_content;
1058 BSTR bstr_null =
NULL, bstr_empty, bstr_a, bstr_b, bstr_ab;
1064 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1067 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
1070 hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXContentHandler, (
void**)&vb_content);
1073 hr = IVBSAXContentHandler_startDocument(vb_content);
1081 hr = IVBSAXContentHandler_startElement(vb_content, &bstr_null, &bstr_empty, &bstr_b,
NULL);
1085 hr = IVBSAXContentHandler_startElement(vb_content, &bstr_empty, &bstr_b, &bstr_empty,
NULL);
1089 hr = IMXWriter_get_output(writer, &
dest);
1096 hr = IVBSAXContentHandler_startElement(vb_content, &bstr_empty, &bstr_empty, &bstr_b,
NULL);
1100 hr = IMXWriter_get_output(writer, &
dest);
1107 hr = IVBSAXContentHandler_endElement(vb_content, &bstr_null, &bstr_null, &bstr_b);
1110 hr = IVBSAXContentHandler_endElement(vb_content, &bstr_null, &bstr_a, &bstr_b);
1113 hr = IVBSAXContentHandler_endElement(vb_content, &bstr_a, &bstr_b, &bstr_null);
1116 hr = IVBSAXContentHandler_endElement(vb_content, &bstr_empty, &bstr_null, &bstr_b);
1119 hr = IVBSAXContentHandler_endElement(vb_content, &bstr_empty, &bstr_b, &bstr_null);
1122 hr = IVBSAXContentHandler_endElement(vb_content, &bstr_empty, &bstr_empty, &bstr_b);
1126 hr = IMXWriter_get_output(writer, &
dest);
1138 hr = IVBSAXContentHandler_endDocument(vb_content);
1141 IVBSAXContentHandler_Release(vb_content);
1142 IMXWriter_Release(writer);
1144 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1147 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
1150 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
1153 hr = ISAXContentHandler_startDocument(
content);
1161 hr = IMXWriter_get_output(writer, &
dest);
1171 hr = IMXWriter_get_output(writer, &
dest);
1191 hr = IMXWriter_get_output(writer, &
dest);
1197 hr = ISAXContentHandler_endDocument(
content);
1201 hr = IMXWriter_put_output(writer,
dest);
1205 hr = IMXWriter_get_output(writer, &
dest);
1211 hr = ISAXContentHandler_startDocument(
content);
1218 hr = IMXWriter_get_output(writer, &
dest);
1224 hr = ISAXContentHandler_endDocument(
content);
1226 IMXWriter_flush(writer);
1231 hr = IMXWriter_get_output(writer, &
dest);
1238 hr = IMXWriter_put_output(writer,
dest);
1245 ISAXContentHandler_Release(
content);
1246 IMXWriter_Release(writer);
1258 {
"< > & \" \'",
"< > & \" \'" },
1263 static const WCHAR embedded_nullbytes[] =
L"a\0b\0\0\0c";
1264 IVBSAXContentHandler *vb_content;
1272 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1275 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
1278 hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXContentHandler, (
void**)&vb_content);
1281 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
1284 hr = ISAXContentHandler_startDocument(
content);
1291 hr = ISAXContentHandler_characters(
content,
L"TESTCHARDATA .", 0);
1295 hr = IVBSAXContentHandler_characters(vb_content, &
str);
1298 hr = ISAXContentHandler_characters(
content,
L"TESTCHARDATA .", 14);
1302 hr = IMXWriter_get_output(writer, &
dest);
1308 hr = ISAXContentHandler_endDocument(
content);
1311 ISAXContentHandler_Release(
content);
1312 IVBSAXContentHandler_Release(vb_content);
1313 IMXWriter_Release(writer);
1316 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1319 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
1322 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
1325 hr = ISAXContentHandler_startDocument(
content);
1331 hr = ISAXContentHandler_characters(
content,
L"TESTCHARDATA .", 0);
1338 hr = IMXWriter_get_output(writer, &
dest);
1344 ISAXContentHandler_Release(
content);
1345 IMXWriter_Release(writer);
1348 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1351 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
1354 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
1357 hr = ISAXContentHandler_startDocument(
content);
1360 hr = ISAXContentHandler_characters(
content, embedded_nullbytes,
ARRAY_SIZE(embedded_nullbytes));
1364 hr = IMXWriter_get_output(writer, &
dest);
1372 ISAXContentHandler_Release(
content);
1373 IMXWriter_Release(writer);
1375 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1378 hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXContentHandler, (
void**)&vb_content);
1381 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
1384 hr = IVBSAXContentHandler_startDocument(vb_content);
1388 hr = IVBSAXContentHandler_characters(vb_content, &
str);
1393 hr = IMXWriter_get_output(writer, &
dest);
1402 IVBSAXContentHandler_Release(vb_content);
1403 IMXWriter_Release(writer);
1414 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1417 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
1420 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
1423 hr = ISAXContentHandler_startDocument(
content);
1433 hr = IMXWriter_get_output(writer, &
dest);
1443 hr = IMXWriter_put_output(writer,
dest);
1446 hr = IMXWriter_put_disableOutputEscaping(writer, VARIANT_TRUE);
1456 hr = IMXWriter_get_output(writer, &
dest);
1464 ISAXContentHandler_Release(
content);
1465 IMXWriter_Release(writer);
1481 LONG list_length = 0;
1485 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void**)&writer);
1486 ok(
hr ==
S_OK,
"Failed to create a writer, hr %#lx.\n",
hr);
1488 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
1492 ok(
hr ==
S_OK,
"Failed to create a document, hr %#lx.\n",
hr);
1497 hr = IMXWriter_put_output(writer,
dest);
1499 ok(
hr ==
S_OK,
"Failed to set writer output, hr %#lx.\n",
hr);
1502 IXMLDOMDocument_Release(
domdoc);
1503 IMXWriter_Release(writer);
1512 IXMLDOMElement_Release(
root);
1514 hr = IXMLDOMDocument_get_documentElement(
domdoc, &
root);
1516 ok(
root !=
NULL,
"Unexpected document root.\n");
1517 IXMLDOMElement_Release(
root);
1520 hr = ISAXContentHandler_startDocument(
content);
1523 hr = IXMLDOMDocument_get_documentElement(
domdoc, &
root);
1532 hr = ISAXContentHandler_startElement(
content,
L"", 0,
L"", 0,
L"BankAccount", 11,
NULL);
1535 hr = IXMLDOMDocument_get_documentElement(
domdoc, &
root);
1537 ok(
root !=
NULL,
"Unexpected document root.\n");
1539 hr = IXMLDOMElement_get_nodeName(
root, &
str);
1546 hr = ISAXContentHandler_startElement(
content,
L"", 0,
L"", 0,
L"Number", 6,
NULL);
1549 hr = IXMLDOMElement_get_childNodes(
root, &node_list);
1552 hr = IXMLDOMNodeList_get_length(node_list, &list_length);
1555 ok(list_length == 1,
"list length %ld, expected 1\n", list_length);
1557 hr = IXMLDOMNodeList_get_item(node_list, 0, &
node);
1561 hr = IXMLDOMNode_get_nodeName(
node, &
str);
1569 hr = ISAXContentHandler_characters(
content,
L"12345", 5);
1580 hr = ISAXContentHandler_endElement(
content,
L"", 0,
L"", 0,
L"Number", 6);
1590 IXMLDOMNode_Release(
node);
1594 hr = ISAXContentHandler_startElement(
content,
L"", 0,
L"", 0,
L"Name", 4,
NULL);
1597 hr = ISAXContentHandler_characters(
content,
L"Captain Ahab", 12);
1600 hr = ISAXContentHandler_endElement(
content,
L"", 0,
L"", 0,
L"Name", 4);
1603 hr = ISAXContentHandler_endElement(
content,
L"", 0,
L"", 0,
L"BankAccount", 11);
1606 hr = IXMLDOMNodeList_get_length(node_list, &list_length);
1609 ok(2 == list_length,
"list length %ld, expected 2\n", list_length);
1611 hr = IXMLDOMNodeList_get_item(node_list, 1, &
node);
1615 hr = IXMLDOMNode_get_nodeName(
node, &
str);
1630 IXMLDOMNode_Release(
node);
1631 IXMLDOMNodeList_Release(node_list);
1632 IXMLDOMElement_Release(
root);
1636 hr = ISAXContentHandler_endDocument(
content);
1641 IXMLDOMElement_Release(
root);
1649 "<Number>12345</Number>"
1650 "<Name>Captain Ahab</Name>"
1651 "</BankAccount>\r\n",
1657 IXMLDOMDocument_Release(
domdoc);
1658 ISAXContentHandler_Release(
content);
1659 IMXWriter_Release(writer);
1690 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1693 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
1696 hr = IMXWriter_put_encoding(writer,
_bstr_(
"UTF-8"));
1699 hr = ISAXContentHandler_startDocument(
content);
1702 hr = ISAXContentHandler_endDocument(
content);
1709 hr = IMXWriter_get_output(writer, &
dest);
1723 hr = IMXWriter_put_output(writer,
dest);
1726 hr = IMXWriter_put_encoding(writer,
_bstr_(
"UTF-8"));
1737 hr = IMXWriter_put_encoding(writer,
_bstr_(
"UTF-16"));
1740 hr = IMXWriter_flush(writer);
1751 hr = IMXWriter_get_encoding(writer, &
s);
1762 char expectedA[200];
1769 hr = IMXWriter_put_output(writer,
dest);
1772 hr = IMXWriter_put_encoding(writer,
_bstr_(enc));
1774 "%s: encoding not accepted\n", enc);
1782 hr = ISAXContentHandler_startDocument(
content);
1785 hr = ISAXContentHandler_endDocument(
content);
1788 hr = IMXWriter_flush(writer);
1793 strcat(expectedA,
"<?xml version=\"1.0\" encoding=\"");
1795 strcat(expectedA,
"\" standalone=\"no\"?>\r\n");
1801 ok(!
strncmp(
ptr, expectedA,
strlen(expectedA)),
"%s: got %s, expected %.50s\n", enc,
ptr, expectedA);
1805 hr = IMXWriter_put_output(writer,
dest);
1813 ISAXContentHandler_Release(
content);
1814 IMXWriter_Release(writer);
1830 hr = IUnknown_QueryInterface(
obj, &IID_IDispatchEx, (
void**)&dispex);
1835 hr = IDispatchEx_GetTypeInfoCount(dispex, &ticnt);
1837 ok(ticnt == 1,
"ticnt=%u\n", ticnt);
1840 hr = IDispatchEx_DeleteMemberByName(dispex,
name, fdexNameCaseSensitive);
1844 hr = IDispatchEx_DeleteMemberByDispID(dispex, dispid);
1848 hr = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &
props);
1852 hr = IDispatchEx_GetMemberName(dispex, dispid, &
name);
1860 hr = IDispatchEx_GetNameSpaceParent(dispex, &unk);
1862 ok(unk == (
IUnknown*)0xdeadbeef,
"got %p\n", unk);
1865 hr = IDispatchEx_GetDispID(dispex,
name, fdexNameEnsure, &did);
1869 IDispatchEx_Release(dispex);
1879 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1882 hr = IMXWriter_QueryInterface(writer, &IID_IDispatchEx, (
void**)&dispex);
1884 hr = IDispatchEx_QueryInterface(dispex, &
IID_IUnknown, (
void**)&unk);
1886 IUnknown_Release(unk);
1887 IDispatchEx_Release(dispex);
1888 IMXWriter_Release(writer);
1895 IUnknown_Release(unk);
1901 IVBSAXLexicalHandler *vblexical;
1903 ISAXLexicalHandler *lexical;
1908 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1911 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
1914 hr = IMXWriter_QueryInterface(writer, &IID_ISAXLexicalHandler, (
void**)&lexical);
1917 hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXLexicalHandler, (
void**)&vblexical);
1920 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
1923 hr = ISAXContentHandler_startDocument(
content);
1926 hr = ISAXLexicalHandler_comment(lexical,
NULL, 0);
1930 hr = IVBSAXLexicalHandler_comment(vblexical,
NULL);
1934 hr = ISAXLexicalHandler_comment(lexical,
L"comment", 0);
1938 hr = IMXWriter_get_output(writer, &
dest);
1945 hr = ISAXLexicalHandler_comment(lexical,
L"comment", 7);
1949 hr = IMXWriter_get_output(writer, &
dest);
1953 ok(!
lstrcmpW(
L"<!---->\r\n<!---->\r\n<!--comment-->\r\n",
V_BSTR(&
dest)),
"Unexpected content %s.\n",
1957 ISAXContentHandler_Release(
content);
1958 ISAXLexicalHandler_Release(lexical);
1959 IVBSAXLexicalHandler_Release(vblexical);
1960 IMXWriter_Release(writer);
1966 IVBSAXLexicalHandler *vblexical;
1968 ISAXLexicalHandler *lexical;
1973 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
1976 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
1979 hr = IMXWriter_QueryInterface(writer, &IID_ISAXLexicalHandler, (
void**)&lexical);
1982 hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXLexicalHandler, (
void**)&vblexical);
1985 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
1988 hr = ISAXContentHandler_startDocument(
content);
1991 hr = ISAXLexicalHandler_startCDATA(lexical);
1995 hr = IMXWriter_get_output(writer, &
dest);
2001 hr = IVBSAXLexicalHandler_startCDATA(vblexical);
2008 hr = ISAXLexicalHandler_endCDATA(lexical);
2012 hr = IMXWriter_get_output(writer, &
dest);
2018 ISAXContentHandler_Release(
content);
2019 ISAXLexicalHandler_Release(lexical);
2020 IVBSAXLexicalHandler_Release(vblexical);
2021 IMXWriter_Release(writer);
2032 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
2035 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
2042 hr = ISAXContentHandler_processingInstruction(
content,
L"target", 0,
NULL, 0);
2045 hr = ISAXContentHandler_processingInstruction(
content,
L"target", 6,
NULL, 0);
2049 hr = IMXWriter_get_output(writer, &
dest);
2056 hr = ISAXContentHandler_processingInstruction(
content,
L"target", 4,
L"data", 4);
2060 hr = IMXWriter_get_output(writer, &
dest);
2068 hr = IMXWriter_put_output(writer,
dest);
2071 hr = ISAXContentHandler_processingInstruction(
content,
L"target", 6,
L"data", 0);
2075 hr = IMXWriter_get_output(writer, &
dest);
2082 ISAXContentHandler_Release(
content);
2083 IMXWriter_Release(writer);
2093 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
2096 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
2099 hr = ISAXContentHandler_ignorableWhitespace(
content,
NULL, 0);
2103 hr = ISAXContentHandler_ignorableWhitespace(
content,
L"data", 0);
2106 hr = ISAXContentHandler_ignorableWhitespace(
content,
L"data", 4);
2109 hr = ISAXContentHandler_ignorableWhitespace(
content,
L"data", 1);
2113 hr = IMXWriter_get_output(writer, &
dest);
2119 ISAXContentHandler_Release(
content);
2120 IMXWriter_Release(writer);
2125 IVBSAXLexicalHandler *vblexical;
2127 ISAXLexicalHandler *lexical;
2128 IVBSAXDeclHandler *vbdecl;
2130 ISAXDTDHandler *dtd;
2135 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
2138 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
2141 hr = IMXWriter_QueryInterface(writer, &IID_ISAXLexicalHandler, (
void**)&lexical);
2144 hr = IMXWriter_QueryInterface(writer, &IID_ISAXDeclHandler, (
void**)&decl);
2147 hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXDeclHandler, (
void**)&vbdecl);
2150 hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXLexicalHandler, (
void**)&vblexical);
2153 hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
2156 hr = ISAXContentHandler_startDocument(
content);
2159 hr = ISAXLexicalHandler_startDTD(lexical,
NULL, 0,
NULL, 0,
NULL, 0);
2167 hr = ISAXLexicalHandler_startDTD(lexical,
NULL, 0,
L"pub", 3,
NULL, 0);
2170 hr = ISAXLexicalHandler_startDTD(lexical,
NULL, 0,
NULL, 0,
L"sys", 3);
2174 hr = ISAXLexicalHandler_startDTD(lexical,
NULL, 0,
L"pub", 3,
L"sys", 3);
2178 hr = ISAXLexicalHandler_startDTD(lexical,
L"name", 4,
NULL, 0,
NULL, 0);
2182 hr = IMXWriter_get_output(writer, &
dest);
2186 ok(!
lstrcmpW(
L"<!DOCTYPE [\r\n<!DOCTYPE PUBLIC \"pub\"<!DOCTYPE SYSTEM \"sys\" [\r\n"
2191 hr = ISAXLexicalHandler_startDTD(lexical,
L"name", 4,
L"pub", 3,
NULL, 0);
2194 hr = ISAXLexicalHandler_startDTD(lexical,
L"name", 4,
L"pub", 3,
L"sys", 3);
2198 hr = IMXWriter_get_output(writer, &
dest);
2202 ok(!
lstrcmpW(
L"<!DOCTYPE [\r\n<!DOCTYPE PUBLIC \"pub\"<!DOCTYPE SYSTEM \"sys\" [\r\n"
2203 "<!DOCTYPE PUBLIC \"pub\" \"sys\" [\r\n<!DOCTYPE name [\r\n<!DOCTYPE name PUBLIC \"pub\"<!DOCTYPE name PUBLIC \"pub\" \"sys\" [\r\n",
2207 hr = ISAXLexicalHandler_endDTD(lexical);
2210 hr = IVBSAXLexicalHandler_endDTD(vblexical);
2214 hr = IMXWriter_get_output(writer, &
dest);
2218 ok(!
lstrcmpW(
L"<!DOCTYPE [\r\n<!DOCTYPE PUBLIC \"pub\"<!DOCTYPE SYSTEM \"sys\" [\r\n"
2219 "<!DOCTYPE PUBLIC \"pub\" \"sys\" [\r\n<!DOCTYPE name [\r\n<!DOCTYPE name PUBLIC \"pub\"<!DOCTYPE name PUBLIC \"pub\" \"sys\" [\r\n]>\r\n]>\r\n",
2225 hr = IMXWriter_put_output(writer,
dest);
2228 hr = ISAXDeclHandler_elementDecl(decl,
NULL, 0,
NULL, 0);
2232 hr = IVBSAXDeclHandler_elementDecl(vbdecl,
NULL,
NULL);
2236 hr = ISAXDeclHandler_elementDecl(decl,
L"name", 4,
NULL, 0);
2240 hr = ISAXDeclHandler_elementDecl(decl,
L"name", 4,
L"content", 7);
2244 hr = IMXWriter_get_output(writer, &
dest);
2248 ok(!
lstrcmpW(
L"<!ELEMENT >\r\n<!ELEMENT name >\r\n<!ELEMENT name content>\r\n",
2253 hr = IMXWriter_put_output(writer,
dest);
2256 hr = ISAXDeclHandler_elementDecl(decl,
L"name", 4,
L"content", 0);
2260 hr = IMXWriter_get_output(writer, &
dest);
2269 hr = IMXWriter_put_output(writer,
dest);
2272 hr = ISAXDeclHandler_attributeDecl(decl,
_bstr_(
"element"),
strlen(
"element"),
2278 hr = IMXWriter_get_output(writer, &
dest);
2282 ok(!
lstrcmpW(
L"<!ATTLIST element attribute CDATA #REQUIRED>\r\n",
2286 hr = ISAXDeclHandler_attributeDecl(decl,
_bstr_(
"element"),
strlen(
"element"),
2291 hr = ISAXDeclHandler_attributeDecl(decl,
_bstr_(
"element2"),
strlen(
"element2"),
2297 hr = IMXWriter_get_output(writer, &
dest);
2301 ok(!
lstrcmpW(
L"<!ATTLIST element attribute CDATA #REQUIRED>\r\n"
2302 "<!ATTLIST element attribute2 CDATA #REQUIRED>\r\n<!ATTLIST element2 attribute3 CDATA #REQUIRED>\r\n",
2308 hr = IMXWriter_put_output(writer,
dest);
2311 hr = ISAXDeclHandler_internalEntityDecl(decl,
NULL, 0,
NULL, 0);
2315 hr = IVBSAXDeclHandler_internalEntityDecl(vbdecl,
NULL,
NULL);
2319 hr = ISAXDeclHandler_internalEntityDecl(decl,
_bstr_(
"name"), -1,
NULL, 0);
2326 hr = IMXWriter_get_output(writer, &
dest);
2335 hr = IMXWriter_put_output(writer,
dest);
2338 hr = ISAXDeclHandler_externalEntityDecl(decl,
NULL, 0,
NULL, 0,
NULL, 0);
2341 hr = IVBSAXDeclHandler_externalEntityDecl(vbdecl,
NULL,
NULL,
NULL);
2345 hr = ISAXDeclHandler_externalEntityDecl(decl,
_bstr_(
"name"), 0,
NULL, 0,
NULL, 0);
2348 hr = ISAXDeclHandler_externalEntityDecl(decl,
_bstr_(
"name"), -1,
NULL, 0,
NULL, 0);
2363 hr = IMXWriter_get_output(writer, &
dest);
2367 ok(!
lstrcmpW(
L"<!ENTITY <!ENTITY <!ENTITY name PUBLIC \"pubid\" \"sysid\">\r\n"
2368 "<!ENTITY name SYSTEM \"sysid\">\r\n<!ENTITY name PUBLIC \"pubid\"",
2374 hr = IMXWriter_QueryInterface(writer, &IID_ISAXDTDHandler, (
void**)&dtd);
2378 hr = IMXWriter_put_output(writer,
dest);
2381 hr = ISAXDTDHandler_notationDecl(dtd,
NULL, 0,
NULL, 0,
NULL, 0);
2396 hr = IMXWriter_get_output(writer, &
dest);
2400 ok(!
lstrcmpW(
L"<!NOTATION <!NOTATION name<!NOTATION name PUBLIC \"pubid\">\r\n"
2401 "<!NOTATION name PUBLIC \"pubid\" \"sysid\">\r\n"
2402 "<!NOTATION name SYSTEM \"sysid\">\r\n",
2407 ISAXDTDHandler_Release(dtd);
2409 ISAXContentHandler_Release(
content);
2410 ISAXLexicalHandler_Release(lexical);
2411 IVBSAXLexicalHandler_Release(vblexical);
2412 IVBSAXDeclHandler_Release(vbdecl);
2413 ISAXDeclHandler_Release(decl);
2414 IMXWriter_Release(writer);
2432 {
"uri",
"qname",
"ns:qname",
NULL,
"value",
S_OK },
2433 {
"uri",
"qname",
"ns:qname",
"type",
"value",
S_OK },
2444 IMXAttributes *mxattr;
2449 hr =
CoCreateInstance(&CLSID_SAXAttributes60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXAttributes, (
void **)&mxattr);
2452 hr = IMXAttributes_QueryInterface(mxattr, &IID_ISAXAttributes, (
void**)&saxattr);
2456 hr = ISAXAttributes_getLength(saxattr, &
len);
2460 hr = ISAXAttributes_getValue(saxattr, 0, &
value, &
len);
2463 hr = ISAXAttributes_getValue(saxattr, 0,
NULL, &
len);
2466 hr = ISAXAttributes_getValue(saxattr, 0, &
value,
NULL);
2469 hr = ISAXAttributes_getValue(saxattr, 0,
NULL,
NULL);
2472 hr = ISAXAttributes_getType(saxattr, 0, &
value, &
len);
2475 hr = ISAXAttributes_getType(saxattr, 0,
NULL, &
len);
2478 hr = ISAXAttributes_getType(saxattr, 0, &
value,
NULL);
2481 hr = ISAXAttributes_getType(saxattr, 0,
NULL,
NULL);
2493 hr = ISAXAttributes_getValue(saxattr, 0,
NULL, &
len);
2496 hr = ISAXAttributes_getValue(saxattr, 0, &
value,
NULL);
2499 hr = ISAXAttributes_getValue(saxattr, 0,
NULL,
NULL);
2502 hr = ISAXAttributes_getType(saxattr, 0,
NULL, &
len);
2505 hr = ISAXAttributes_getType(saxattr, 0, &
value,
NULL);
2508 hr = ISAXAttributes_getType(saxattr, 0,
NULL,
NULL);
2513 hr = ISAXAttributes_getValue(saxattr, 0, &
value, &
len);
2520 value = (
void*)0xdeadbeef;
2521 hr = ISAXAttributes_getType(saxattr, 0, &
value, &
len);
2533 ok(
len == 0,
"%d: got wrong type value length %d\n",
i,
len);
2536 hr = ISAXAttributes_getIndexFromQName(saxattr,
NULL, 0,
NULL);
2539 hr = ISAXAttributes_getIndexFromQName(saxattr,
NULL, 0, &
index);
2543 hr = ISAXAttributes_getIndexFromQName(saxattr,
_bstr_(
"nonexistent"), 11, &
index);
2562 hr = ISAXAttributes_getValueFromQName(saxattr,
NULL, 0,
NULL,
NULL);
2597 hr = ISAXAttributes_getLength(saxattr, &
len);
2600 ok(
len == 1,
"%d: got %d length, expected 1\n",
i,
len);
2602 ok(
len == 0,
"%d: got %d length, expected 0\n",
i,
len);
2604 ISAXAttributes_Release(saxattr);
2605 IMXAttributes_Release(mxattr);
2614 IMXAttributes *mxattr;
2619 hr =
CoCreateInstance(&CLSID_SAXAttributes60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXAttributes, (
void **)&mxattr);
2622 hr = IMXAttributes_QueryInterface(mxattr, &IID_ISAXAttributes, (
void**)&saxattr);
2625 hr = ISAXAttributes_getQName(saxattr, 0,
NULL,
NULL);
2629 hr = ISAXAttributes_getQName(saxattr, 0, &
ptr, &
len);
2632 hr = IMXAttributes_clear(mxattr);
2635 hr = IMXAttributes_addAttribute(mxattr,
_bstr_(
"uri"),
_bstr_(
"local"),
2640 hr = ISAXAttributes_getLength(saxattr, &
len);
2645 hr = ISAXAttributes_getQName(saxattr, 0,
NULL, &
len);
2649 ptr = (
void*)0xdeadbeef;
2650 hr = ISAXAttributes_getQName(saxattr, 0, &
ptr,
NULL);
2653 ok(!
ptr,
"Unexpected pointer %p.\n",
ptr);
2656 hr = ISAXAttributes_getQName(saxattr, 0, &
ptr, &
len);
2661 hr = IMXAttributes_clear(mxattr);
2665 hr = ISAXAttributes_getLength(saxattr, &
len);
2670 ptr = (
void*)0xdeadbeef;
2671 hr = ISAXAttributes_getQName(saxattr, 0, &
ptr, &
len);
2674 ok(!
len,
"Unexpected length %d.\n",
len);
2676 ok(!
ptr,
"Unexpected pointer %p.\n",
ptr);
2678 IMXAttributes_Release(mxattr);
2679 ISAXAttributes_Release(saxattr);
2685 IMXAttributes *mxattr;
2690 hr =
CoCreateInstance(&CLSID_SAXAttributes60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXAttributes, (
void **)&mxattr);
2693 hr = IMXAttributes_QueryInterface(mxattr, &IID_IDispatchEx, (
void**)&dispex);
2695 hr = IDispatchEx_QueryInterface(dispex, &
IID_IUnknown, (
void**)&unk);
2697 IUnknown_Release(unk);
2698 IDispatchEx_Release(dispex);
2700 IMXAttributes_Release(mxattr);
2705 IMXAttributes *mxattr;
2708 hr =
CoCreateInstance(&CLSID_SAXAttributes60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXAttributes, (
void **)&mxattr);
2717 IMXAttributes_Release(mxattr);
2723 IMXAttributes *mxattr;
2727 hr =
CoCreateInstance(&CLSID_SAXAttributes60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXAttributes, (
void **)&mxattr);
2730 hr = IMXAttributes_QueryInterface(mxattr, &IID_ISAXAttributes, (
void**)&saxattr);
2733 hr = ISAXAttributes_getIndexFromName(saxattr,
NULL, 0,
NULL, 0, &
index);
2737 hr = IMXAttributes_addAttribute(mxattr,
_bstr_(
"uri"),
_bstr_(
"localname"),
2740 hr = IMXAttributes_addAttribute(mxattr,
_bstr_(
"uri"),
_bstr_(
"localname"),
2745 hr = ISAXAttributes_getIndexFromName(saxattr,
L"uri", 3,
L"localname", 9, &
index);
2750 hr = ISAXAttributes_getIndexFromName(saxattr,
L"uri1", 4,
L"localname", 9, &
index);
2755 hr = ISAXAttributes_getIndexFromName(saxattr,
L"uri", 3,
L"localname1", 10, &
index);
2759 hr = ISAXAttributes_getIndexFromName(saxattr,
NULL, 0,
NULL, 0,
NULL);
2762 hr = ISAXAttributes_getIndexFromName(saxattr,
L"uri", 3,
L"localname1", 10,
NULL);
2765 hr = ISAXAttributes_getIndexFromName(saxattr,
L"uri", 3,
NULL, 0, &
index);
2768 hr = ISAXAttributes_getIndexFromName(saxattr,
NULL, 0,
L"localname1", 10, &
index);
2771 ISAXAttributes_Release(saxattr);
2772 IMXAttributes_Release(mxattr);
2783 hr =
CoCreateInstance(&CLSID_MXXMLWriter60,
NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (
void **)&writer);
2786 hr = IMXWriter_put_indent(writer, VARIANT_TRUE);
2789 hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (
void**)&
content);
2792 hr = ISAXContentHandler_startDocument(
content);
2816 hr = ISAXContentHandler_endDocument(
content);
2820 hr = IMXWriter_get_output(writer, &
dest);
2823 ok(!
lstrcmpW(
L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n<a><b>\r\n\t\t<c/>\r\n\t</b>\r\n</a>",
V_BSTR(&
dest)),
2827 ISAXContentHandler_Release(
content);
2828 IMXWriter_Release(writer);
2838 ok(
hr ==
S_OK,
"Failed to initialize COM, hr %#lx.\n",
hr);
#define MultiByteToWideChar
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
UINT(* handler)(MSIPACKAGE *)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP int __cdecl strncmp(const char *, const char *, size_t)
static HRESULT WINAPI isaxattributes_getTypeFromQName(ISAXAttributes *iface, const WCHAR *pQName, int nQName, const WCHAR **pType, int *nType)
static ULONG WINAPI isaxattributes_AddRef(ISAXAttributes *iface)
static HRESULT WINAPI isaxattributes_getLength(ISAXAttributes *iface, int *length)
static ULONG WINAPI isaxattributes_Release(ISAXAttributes *iface)
static HRESULT WINAPI isaxattributes_getName(ISAXAttributes *iface, int index, const WCHAR **uri, int *pUriLength, const WCHAR **localName, int *pLocalNameSize, const WCHAR **QName, int *pQNameLength)
static HRESULT WINAPI isaxattributes_getURI(ISAXAttributes *iface, int index, const WCHAR **url, int *size)
static HRESULT WINAPI isaxattributes_getLocalName(ISAXAttributes *iface, int index, const WCHAR **pLocalName, int *pLocalNameLength)
static HRESULT WINAPI isaxattributes_getQName(ISAXAttributes *iface, int index, const WCHAR **pQName, int *pQNameLength)
static HRESULT WINAPI isaxattributes_getValue(ISAXAttributes *iface, int index, const WCHAR **value, int *nValue)
static HRESULT WINAPI isaxattributes_getValueFromQName(ISAXAttributes *iface, const WCHAR *pQName, int nQName, const WCHAR **pValue, int *nValue)
static HRESULT WINAPI isaxattributes_getValueFromName(ISAXAttributes *iface, const WCHAR *pUri, int nUri, const WCHAR *pLocalName, int nLocalName, const WCHAR **pValue, int *nValue)
static HRESULT WINAPI isaxattributes_getIndexFromName(ISAXAttributes *iface, const WCHAR *pUri, int cUriLength, const WCHAR *pLocalName, int cocalNameLength, int *index)
static HRESULT WINAPI isaxattributes_getType(ISAXAttributes *iface, int nIndex, const WCHAR **pType, int *pTypeLength)
static HRESULT WINAPI isaxattributes_QueryInterface(ISAXAttributes *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI isaxattributes_getIndexFromQName(ISAXAttributes *iface, const WCHAR *pQName, int nQNameLength, int *index)
static HRESULT WINAPI isaxattributes_getTypeFromName(ISAXAttributes *iface, const WCHAR *pUri, int nUri, const WCHAR *pLocalName, int nLocalName, const WCHAR **pType, int *nType)
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)
static unsigned char buff[32768]
GLuint GLuint GLsizei GLenum type
GLboolean GLboolean GLboolean b
GLuint GLsizei GLsizei * length
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
static ERESOURCE GlobalLock
static ISAXAttributes saxattributes
static const struct writer_startendelement2_t writer_startendelement2[]
static BSTR _bstr_(const char *str)
static void test_mxwriter_dispex(void)
static void test_mxattr_qi(void)
static void test_mxwriter_pi(void)
static void test_mxwriter_handlers(void)
static const char * encoding_names[]
static void test_mxwriter_flush(void)
static void check_interface_(unsigned int line, void *iface_ptr, REFIID iid, BOOL supported)
static void test_mxwriter_properties(void)
static void test_mxattr_clear(void)
static BSTR alloc_str_from_narrow(const char *str)
static void test_mxwriter_startenddocument(void)
static const struct writer_characters_t writer_characters[]
static void _expect_ref(IUnknown *obj, ULONG ref, int line)
static void test_mxwriter_comment(void)
static const char startelement_xml[]
static void test_mxattr_localname(void)
static int alloced_bstrs_count
static void free_bstrs(void)
static void test_mxwriter_characters(void)
static void test_mxattr_addAttribute(void)
static const char startendelement_xml[]
static const addattribute_test_t addattribute_data[]
static void test_mxwriter_encoding(void)
static LONG get_refcount(void *iface)
#define EXPECT_REF(obj, ref)
static void test_mxwriter_ignorablespaces(void)
static BSTR alloced_bstrs[512]
static void test_mxwriter_indent(void)
static void test_mxwriter_startendelement(void)
#define check_interface(a, b, c)
static const struct writer_startendelement_t writer_startendelement[]
static void test_mxwriter_dtd(void)
static void test_mxwriter_domdoc(void)
static void test_mxwriter_cdata(void)
static void test_obj_dispex(IUnknown *obj)
static const ISAXAttributesVtbl SAXAttributesVtbl
static void test_mxattr_dispex(void)
static void test_mxwriter_startendelement_batch2(void)
static void get_class_support_data(void)
static void test_mxwriter_default_properties(void)
static void test_mxwriter_startendelement_batch(void)
static BOOL is_class_supported(const CLSID *clsid)
static VARIANTARG static DISPID
#define DISPID_SAX_XMLREADER_GETFEATURE
BSTR WINAPI SysAllocString(LPCOLESTR str)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
#define IsEqualGUID(rguid1, rguid2)
static __inline const char * wine_dbgstr_guid(const GUID *id)
XML_HIDDEN void xmlParserErrors const char const xmlChar const xmlChar * str2
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
static const WCHAR props[]
#define DISP_E_UNKNOWNNAME