[MSXML3_WINETEST]
[reactos.git] / rostests / winetests / msxml3 / xmldoc.c
index 834d021..5a46beb 100644 (file)
@@ -43,8 +43,8 @@
 static void create_xml_file(LPCSTR filename)
 {
     DWORD dwNumberOfBytesWritten;
-    HANDLE hf = CreateFile(filename, GENERIC_WRITE, 0, NULL,
-                           CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+    HANDLE hf = CreateFileA(filename, GENERIC_WRITE, 0, NULL,
+                            CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
 
     static const char data[] =
         "<?xml version=\"1.0\" ?>\n"
@@ -66,8 +66,8 @@ static void create_stream_on_file(IStream **stream, LPCSTR path)
     HRESULT hr;
     DWORD file_size, read;
 
-    hfile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL,
-                       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+    hfile = CreateFileA(path, GENERIC_READ, FILE_SHARE_READ, NULL,
+                        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
     ok(hfile != INVALID_HANDLE_VALUE, "Expected a valid file handle\n");
     file_size = GetFileSize(hfile, NULL);
 
@@ -661,7 +661,7 @@ static void test_xmlelem_collection(void)
     WCHAR path[MAX_PATH];
     LONG length, type;
     ULONG num_vars;
-    VARIANT var, vIndex, vName;
+    VARIANT var, dummy, vIndex, vName;
     BSTR url, str;
     static const CHAR szBankXML[] = "bank.xml";
     static const WCHAR szNumber[] = {'N','U','M','B','E','R',0};
@@ -732,6 +732,11 @@ static void test_xmlelem_collection(void)
     ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
     ok(unk != NULL, "Expected non-NULL unk\n");
 
+    enumVar = (void *)0xdeadbeef;
+    hr = IUnknown_QueryInterface(unk, &IID_IXMLElementCollection, (LPVOID *)&enumVar);
+    ok(hr == E_NOINTERFACE, "Expected E_NOINTERFACE, got %08x\n", hr);
+    ok(enumVar == NULL || broken(enumVar == (void *)0xdeadbeef) /* XP */, "Expected NULL, got %p\n", enumVar);
+
     hr = IUnknown_QueryInterface(unk, &IID_IEnumVARIANT, (LPVOID *)&enumVar);
     ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
     ok(enumVar != NULL, "Expected non-NULL enumVar\n");
@@ -766,14 +771,16 @@ static void test_xmlelem_collection(void)
     ok(num_vars == 1, "Expected 1, got %d\n", num_vars);
 
     /* try advance further, no children left */
-    hr = IEnumVARIANT_Next(enumVar, 1, &var, &num_vars);
+    V_VT(&dummy) = VT_I4;
+    hr = IEnumVARIANT_Next(enumVar, 1, &dummy, &num_vars);
     ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr);
-    ok(V_VT(&var) == 0, "Expected 0, got %d\n", V_VT(&var));
+    ok(V_VT(&dummy) == VT_EMPTY, "Expected 0, got %d\n", V_VT(&dummy));
     ok(num_vars == 0, "Expected 0, got %d\n", num_vars);
 
-    hr = IEnumVARIANT_Next(enumVar, 1, &var, NULL);
+    V_VT(&dummy) = VT_I4;
+    hr = IEnumVARIANT_Next(enumVar, 1, &dummy, NULL);
     ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr);
-    ok(V_VT(&var) == 0, "Expected 0, got %d\n", V_VT(&var));
+    ok(V_VT(&dummy) == VT_EMPTY, "Expected 0, got %d\n", V_VT(&dummy));
 
     hr = IDispatch_QueryInterface(V_DISPATCH(&var), &IID_IXMLElement, (LPVOID *)&child);
     ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
@@ -898,7 +905,7 @@ static void test_xmlelem(void)
 
     hr = IXMLElement_get_tagName(element, &str);
     EXPECT_HR(hr, S_OK);
-    ok(lstrlenW(str) == 0, "Expected empty tag name\n");
+    ok(!str, "Expected empty tag name, got %s\n", wine_dbgstr_w(str));
     SysFreeString(str);
 
     parent = (IXMLElement *)0xdeadbeef;