32#define EXPECT_HR(hr,hr_exp) \
33 ok(hr == hr_exp, "got 0x%08x, expected 0x%08x\n", hr, hr_exp)
36#define XML_E_INVALIDATROOTLEVEL 0xc00ce556
40 DWORD dwNumberOfBytesWritten;
44 static const char data[] =
45 "<?xml version=\"1.0\" ?>\n"
46 "<!DOCTYPE BankAccount>\n"
48 " <Number>1234</Number>\n"
49 " <Name>Captain Ahab</Name>\n"
76 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
88 IXMLDocument *doc =
NULL;
98 static const WCHAR szBankAccount[] = {
'B',
'A',
'N',
'K',
'A',
'C',
'C',
'O',
'U',
'N',
'T',0};
99 static const WCHAR szNumber[] = {
'N',
'U',
'M',
'B',
'E',
'R',0};
100 static const WCHAR szNumVal[] = {
'1',
'2',
'3',
'4',0};
102 static const WCHAR szNameVal[] = {
'C',
'a',
'p',
't',
'a',
'i',
'n',
' ',
'A',
'h',
'a',
'b',0};
104 static const WCHAR rootW[] = {
'r',
'o',
'o',
't',0};
107 &IID_IXMLDocument, (
void**)&doc);
115 hr = IDispatch_GetTypeInfo(disp, 0, 0, &ti);
123 ITypeInfo_Release(ti);
124 IDispatch_Release(disp);
126 hr = IXMLDocument_QueryInterface(doc, &IID_IXMLDOMDocument, (
void**)&disp);
134 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
135 ok(psi !=
NULL,
"Expected non-NULL psi\n");
137 hr = IXMLDocument_get_root(doc, &
element);
141 hr = IPersistStreamInit_Load(psi,
stream);
149 hr = IXMLDocument_get_version(doc,
NULL);
153 hr = IXMLDocument_get_version(doc, &
name);
154 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
159 hr = IXMLDocument_get_doctype(doc,
NULL);
162 hr = IXMLDocument_get_doctype(doc, &
name);
163 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
167 hr = IXMLDocument_get_root(doc, &
element);
168 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
172 hr = IXMLDocument_get_root(doc, &
child);
173 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
176 IXMLElement_Release(
child);
179 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
180 ok(
type == XMLELEMTYPE_ELEMENT,
"Expected XMLELEMTYPE_ELEMENT, got %d\n",
type);
183 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
188 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
191 hr = IXMLElementCollection_get_length(
collection, &num_child);
192 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
193 ok(num_child == 2,
"Expected 2, got %d\n", num_child);
200 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
204 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
205 ok(
type == XMLELEMTYPE_ELEMENT,
"Expected XMLELEMTYPE_ELEMENT, got %d\n",
type);
208 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
212 hr = IXMLElement_get_children(
child, &inner);
213 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
214 ok(inner !=
NULL,
"Expected non-NULL inner\n");
216 hr = IXMLElementCollection_get_length(inner, &num_child);
217 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
218 ok(num_child == 1,
"Expected 1, got %d\n", num_child);
220 hr = IXMLElementCollection_item(inner, vIndex, vName, (
IDispatch **)&
value);
221 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
225 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
226 ok(
type == XMLELEMTYPE_TEXT,
"Expected XMLELEMTYPE_TEXT, got %d\n",
type);
229 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
233 IXMLElementCollection_Release(inner);
235 inner = (IXMLElementCollection *)0xdeadbeef;
236 hr = IXMLElement_get_children(
value, &inner);
237 ok(
hr == 1,
"Expected 1, got %08x\n",
hr);
238 ok(inner ==
NULL,
"Expected NULL inner, got %p\n", inner);
240 IXMLElement_Release(
value);
241 IXMLElement_Release(
child);
247 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
251 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
252 ok(
type == XMLELEMTYPE_ELEMENT,
"Expected XMLELEMTYPE_ELEMENT, got %d\n",
type);
255 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
259 hr = IXMLElement_get_children(
child, &inner);
260 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
261 ok(inner !=
NULL,
"Expected non-NULL inner\n");
263 hr = IXMLElementCollection_get_length(inner, &num_child);
264 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
265 ok(num_child == 1,
"Expected 1, got %d\n", num_child);
268 hr = IXMLElementCollection_item(inner, vIndex, vName, (
IDispatch **)&
value);
269 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
273 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
274 ok(
type == XMLELEMTYPE_TEXT,
"Expected XMLELEMTYPE_TEXT, got %d\n",
type);
277 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
281 IXMLElementCollection_Release(inner);
283 inner = (IXMLElementCollection *)0xdeadbeef;
284 hr = IXMLElement_get_children(
value, &inner);
285 ok(
hr == 1,
"Expected 1, got %08x\n",
hr);
286 ok(inner ==
NULL,
"Expected NULL inner, got %p\n", inner);
288 IXMLElement_Release(
value);
289 IXMLElement_Release(
child);
294 IPersistStreamInit_Release(psi);
295 IXMLDocument_Release(doc);
303 IXMLDocument *doc =
NULL;
309 &IID_IXMLDocument, (
LPVOID*)&doc);
310 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
315 element = (IXMLElement *)0xdeadbeef;
316 hr = IXMLDocument_createElement(doc, vType, vName, &
element);
324 hr = IXMLDocument_createElement(doc, vType, vName, &
element);
332 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
334 ok(
type == XMLELEMTYPE_OTHER ||
type == XMLELEMTYPE_ELEMENT,
335 "Expected XMLELEMTYPE_OTHER || XMLELEMTYPE_ELEMENT, got %d\n",
type);
348 V_I4(&vType) = XMLELEMTYPE_ELEMENT;
350 hr = IXMLDocument_createElement(doc, vType, vName, &
element);
351 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
355 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
356 ok(
type == XMLELEMTYPE_ELEMENT,
"Expected XMLELEMTYPE_ELEMENT, got %d\n",
type);
362 V_I4(&vType) = XMLELEMTYPE_ELEMENT;
364 hr = IXMLDocument_createElement(doc, vType, vName,
NULL);
367 root = (IXMLElement *)0xdeadbeef;
368 hr = IXMLDocument_get_root(doc, &
root);
373 V_I4(&vType) = XMLELEMTYPE_ELEMENT;
375 hr = IXMLDocument_createElement(doc, vType, vName, &
element);
376 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
380 root = (IXMLElement *)0xdeadbeef;
381 hr = IXMLDocument_get_root(doc, &
root);
386 IXMLDocument_Release(doc);
391 IXMLDocument *doc =
NULL;
401 static const WCHAR testW[] = {
't',
'e',
's',
't',0};
404 &IID_IXMLDocument, (
LPVOID*)&doc);
405 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
408 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
409 ok(psi !=
NULL,
"Expected non-NULL psi\n");
412 hr = IPersistStreamInit_GetSizeMax(psi,
NULL);
415 hr = IPersistStreamInit_Load(psi,
NULL);
421 hr = IPersistStreamInit_GetClassID(psi,
NULL);
424 hr = IPersistStreamInit_IsDirty(psi);
433 hr = IPersistStreamInit_GetSizeMax(psi, &
size);
435 ok(
size.QuadPart == 0,
"Expected 0\n");
437 hr = IPersistStreamInit_Load(psi,
stream);
443 hr = IPersistStreamInit_IsDirty(psi);
449 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
453 stat.cbSize.QuadPart = 0;
455 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
460 hr = IXMLDocument_get_root(doc, &
element);
461 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
467 hr = IPersistStreamInit_IsDirty(psi);
471 hr = IPersistStreamInit_Load(psi,
stream);
472 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
475 hr = IPersistStreamInit_IsDirty(psi);
479 hr = IPersistStreamInit_InitNew(psi);
480 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
482 hr = IPersistStreamInit_IsDirty(psi);
487 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
492 stat.cbSize.QuadPart = 0;
494 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
498 memset(&
id, 0,
sizeof(
id));
499 hr = IPersistStreamInit_GetClassID(psi, &
id);
500 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
504 IPersistStreamInit_Release(psi);
505 IXMLDocument_Release(doc);
511 IXMLDocument *doc =
NULL;
515 &IID_IXMLDocument, (
LPVOID*)&doc);
518 win_skip(
"Failed to create XMLDocument instance\n");
522 IXMLDocument_Release(doc);
528 IXMLDocument *doc =
NULL;
536 &IID_IXMLDocument, (
LPVOID*)&doc);
537 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
540 V_I4(&vType) = XMLELEMTYPE_ELEMENT;
542 hr = IXMLDocument_createElement(doc, vType, vName, &
element);
543 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
547 V_I4(&vType) = XMLELEMTYPE_TEXT;
549 hr = IXMLDocument_createElement(doc, vType, vName, &
child);
550 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
554 V_I4(&vType) = XMLELEMTYPE_TEXT;
556 hr = IXMLDocument_createElement(doc, vType, vName, &child2);
557 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
558 ok(child2 !=
NULL,
"Expected non-NULL child\n");
561 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
564 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
569 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
574 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
578 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
582 hr = IXMLElement_AddRef(
child);
583 ok(
hr == 2,
"Expected 2, got %08x\n",
hr);
584 IXMLElement_Release(
child);
586 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
587 hr = IXMLElement_AddRef(
child);
588 ok(
hr == 2,
"Expected 2, got %08x\n",
hr);
589 IXMLElement_Release(
child);
590 hr = IXMLElement_addChild(
element, child2, 0, -1);
591 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
594 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
597 hr = IXMLElement_AddRef(
child);
598 ok(
hr == 2,
"Expected 2, got %08x\n",
hr);
599 IXMLElement_Release(
child);
603 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
606 IXMLElement_Release(child2);
610 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
616 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
617 ok(child2 !=
NULL,
"Expected not NULL child\n");
619 IXMLElement_Release(child2);
623 V_I4(&vType) = XMLELEMTYPE_TEXT;
625 hr = IXMLDocument_createElement(doc, vType, vName, &child2);
626 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
627 ok(child2 !=
NULL,
"Expected non-NULL child\n");
629 hr = IXMLElement_addChild(
child, child2, 0, -1);
630 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
632 hr = IXMLElement_removeChild(
element, child2);
635 hr = IXMLElement_removeChild(
child, child2);
636 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
642 IXMLElement_Release(
child);
643 IXMLElement_Release(child2);
644 IXMLDocument_Release(doc);
651 IXMLDocument *doc =
NULL;
661 static const CHAR szBankXML[] =
"bank.xml";
662 static const WCHAR szNumber[] = {
'N',
'U',
'M',
'B',
'E',
'R',0};
666 &IID_IXMLDocument, (
LPVOID*)&doc);
667 ok(
hr ==
S_OK,
"Expected S_OK, got 0x%08x\n",
hr);
674 hr = IXMLDocument_put_URL(doc,
url);
675 ok(
hr ==
S_OK,
"Expected S_OK, got 0x%08x\n",
hr);
681 hr = IXMLDocument_get_root(doc, &
element);
682 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
686 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
693 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
717 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
721 hr = IXMLElementCollection_QueryInterface(
collection, &IID_IEnumVARIANT, (
LPVOID *)&enumVar);
722 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
723 ok(enumVar !=
NULL,
"Expected non-NULL enumVar\n");
724 IEnumVARIANT_Release(enumVar);
726 hr = IXMLElementCollection_get__newEnum(
collection, &unk);
727 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
728 ok(unk !=
NULL,
"Expected non-NULL unk\n");
730 enumVar = (
void *)0xdeadbeef;
731 hr = IUnknown_QueryInterface(unk, &IID_IXMLElementCollection, (
LPVOID *)&enumVar);
733 ok(enumVar ==
NULL ||
broken(enumVar == (
void *)0xdeadbeef) ,
"Expected NULL, got %p\n", enumVar);
735 hr = IUnknown_QueryInterface(unk, &IID_IEnumVARIANT, (
LPVOID *)&enumVar);
736 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
737 ok(enumVar !=
NULL,
"Expected non-NULL enumVar\n");
738 IUnknown_Release(unk);
741 hr = IEnumVARIANT_Next(enumVar, 1, &
var, &num_vars);
742 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
744 ok(num_vars == 1,
"Expected 1, got %d\n", num_vars);
747 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
753 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
754 ok(
type == XMLELEMTYPE_ELEMENT,
"Expected XMLELEMTYPE_ELEMENT, got %d\n",
type);
757 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
760 IXMLElement_Release(
child);
763 hr = IEnumVARIANT_Next(enumVar, 1, &
var, &num_vars);
764 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
766 ok(num_vars == 1,
"Expected 1, got %d\n", num_vars);
770 hr = IEnumVARIANT_Next(enumVar, 1, &
dummy, &num_vars);
773 ok(num_vars == 0,
"Expected 0, got %d\n", num_vars);
781 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
787 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
788 ok(
type == XMLELEMTYPE_ELEMENT,
"Expected XMLELEMTYPE_ELEMENT, got %d\n",
type);
791 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
794 IXMLElement_Release(
child);
802 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
806 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
807 ok(
type == XMLELEMTYPE_ELEMENT,
"Expected XMLELEMTYPE_ELEMENT, got %d\n",
type);
810 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
813 IXMLElement_Release(
child);
821 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
825 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
826 ok(
type == XMLELEMTYPE_ELEMENT,
"Expected XMLELEMTYPE_ELEMENT, got %d\n",
type);
829 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
832 IXMLElement_Release(
child);
840 child = (IXMLElement *)0xdeadbeef;
845 IEnumVARIANT_Release(enumVar);
849 IXMLDocument_Release(doc);
856 IXMLDocument *doc =
NULL;
858 IXMLElement *
child, *child2;
859 IXMLElementCollection *children;
867 static const WCHAR propName[] = {
'p',
'r',
'o',
'p',0};
868 static const WCHAR propVal[] = {
'v',
'a',
'l',0};
869 static const WCHAR nextVal[] = {
'n',
'e',
'x',
't',0};
870 static const WCHAR noexist[] = {
'n',
'o',
'e',
'x',
'i',
's',
't',0};
871 static const WCHAR crazyCase1[] = {
'C',
'R',
'a',
'z',
'Y',
'c',
'A',
'S',
'E',0};
872 static const WCHAR crazyCase2[] = {
'C',
'R',
'A',
'Z',
'Y',
'C',
'A',
'S',
'E',0};
875 &IID_IXMLDocument, (
LPVOID*)&doc);
879 V_I4(&vType) = XMLELEMTYPE_ELEMENT;
881 hr = IXMLDocument_createElement(doc, vType, vName, &
element);
890 hr = IDispatch_GetTypeInfo(disp, 0, 0, &ti);
898 ITypeInfo_Release(ti);
899 IDispatch_Release(disp);
906 parent = (IXMLElement *)0xdeadbeef;
908 ok(
hr == 1,
"Expected 1, got %08x\n",
hr);
924 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
930 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
941 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
945 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
951 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
958 ok(
hr == 1,
"Expected 1, got %08x\n",
hr);
964 children = (IXMLElementCollection *)0xdeadbeef;
965 hr = IXMLElement_get_children(
element, &children);
966 ok(
hr == 1,
"Expected 1, got %08x\n",
hr);
967 ok(children ==
NULL,
"Expected NULL collection\n");
970 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
971 ok(
type == XMLELEMTYPE_ELEMENT,
"Expected XMLELEMTYPE_ELEMENT, got %d\n",
type);
974 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
985 V_I4(&vType) = XMLELEMTYPE_TEXT;
987 hr = IXMLDocument_createElement(doc, vType, vName, &
child);
988 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
992 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
996 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
999 parent = (IXMLElement *)0xdeadbeef;
1001 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1005 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1006 ok(
type == XMLELEMTYPE_ELEMENT,
"Expected XMLELEMTYPE_ELEMENT, got %d\n",
type);
1008 children = (IXMLElementCollection *)0xdeadbeef;
1009 hr = IXMLElement_get_children(
element, &children);
1010 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1011 ok(children !=
NULL,
"Expected non-NULL collection\n");
1013 hr = IXMLElementCollection_get_length(children, &num_child);
1014 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1015 ok(num_child == 1,
"Expected 1, got %d\n", num_child);
1021 hr = IXMLElementCollection_item(children, vIndex, vName, (
IDispatch **)&child2);
1022 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1023 ok(child2 !=
NULL,
"Expected non-NULL child\n");
1025 hr = IXMLElement_get_type(child2, &
type);
1026 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1027 ok(
type == XMLELEMTYPE_TEXT,
"Expected XMLELEMTYPE_TEXT, got %d\n",
type);
1030 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1034 hr = IXMLElement_get_text(child2, &
str);
1035 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1046 hr = IXMLElement_put_text(child2,
str);
1047 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1051 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
1055 IXMLElement_Release(child2);
1056 IXMLElementCollection_Release(children);
1057 IXMLElement_Release(
parent);
1058 IXMLElement_Release(
child);
1060 IXMLDocument_Release(doc);
1068 ok(
hr ==
S_OK,
"failed to init com\n");
static const WCHAR rootW[]
#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
static void cleanup(void)
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
DWORD WINAPI GetFullPathNameA(IN LPCSTR lpFileName, IN DWORD nBufferLength, OUT LPSTR lpBuffer, OUT LPSTR *lpFilePart)
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 CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLuint GLsizei GLsizei * length
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
static const WCHAR testW[]
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
static void create_stream_on_file(IStream **stream, LPCSTR path)
static void test_xmlelem_collection(void)
#define EXPECT_HR(hr, hr_exp)
static void test_xmlelem_children(void)
static void test_xmldoc(void)
static void create_xml_file(LPCSTR filename)
static void test_createElement(void)
static BOOL test_try_xmldoc(void)
static void test_xmlelem(void)
#define XML_E_INVALIDATROOTLEVEL
static void test_persiststreaminit(void)
static ICollection collection
#define DISPID_XMLELEMENT_TAGNAME
#define DISPID_XMLDOCUMENT_ROOT
const struct _GUID CLSID_XMLDocument
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IPersistStreamInit
static const WCHAR szName[]
#define IsEqualCLSID(rclsid1, rclsid2)
static unsigned int file_size
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
#define DISP_E_PARAMNOTFOUND