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);
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);
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);
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);
549 hr = IXMLDocument_createElement(doc, vType, vName, &
child);
550 ok(
hr ==
S_OK,
"Expected S_OK, got %08x\n",
hr);
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);
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);
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);
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 void test_xmldoc(void)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
static const WCHAR szName[]
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
static unsigned int file_size
char * wine_dbgstr_w(const wchar_t *wstr)
static const WCHAR rootW[]
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
#define DISPID_XMLELEMENT_TAGNAME
#define INVALID_HANDLE_VALUE
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
static void create_stream_on_file(IStream **stream, LPCSTR path)
static void test_persiststreaminit(void)
#define DISP_E_PARAMNOTFOUND
DWORD WINAPI GetFullPathNameA(IN LPCSTR lpFileName, IN DWORD nBufferLength, OUT LPSTR lpBuffer, OUT LPSTR *lpFilePart)
#define XML_E_INVALIDATROOTLEVEL
static BOOL test_try_xmldoc(void)
GLenum GLuint GLenum GLsizei length
static void test_xmlelem_collection(void)
BSTR WINAPI SysAllocString(LPCOLESTR str)
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
static void create_xml_file(LPCSTR filename)
const struct _GUID CLSID_XMLDocument
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define FILE_ATTRIBUTE_NORMAL
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
static void test_xmlelem_children(void)
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
#define EXPECT_HR(hr, hr_exp)
const GUID IID_IPersistStreamInit
MSXML::enum XMLELEMTYPE_OTHER
static void test_createElement(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
_CRTIMP int __cdecl stat(const char *_Filename, struct stat *_Stat)
static void test_xmlelem(void)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
static ICollection collection
#define ReadFile(a, b, c, d, e)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
#define MultiByteToWideChar
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
char * cleanup(char *str)
MSXML::enum XMLELEMTYPE_TEXT
GLuint GLuint GLsizei GLenum type
#define CreateFileA(a, b, c, d, e, f, g)
#define DISPID_XMLDOCUMENT_ROOT
#define IsEqualCLSID(rclsid1, rclsid2)
static const WCHAR testW[]
_CRTIMP int __cdecl read(_In_ int _FileHandle, _Out_writes_bytes_(_MaxCharCount) void *_DstBuf, _In_ unsigned int _MaxCharCount)
GLuint const GLchar * name