Nikolay Sivov : opcservices: Implement PartExists().

Alexandre Julliard julliard at winehq.org
Wed Sep 19 16:28:13 CDT 2018


Module: wine
Branch: master
Commit: c009967baeb44cfce39a45737f14f4bd88c7a946
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=c009967baeb44cfce39a45737f14f4bd88c7a946

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Sep 19 14:19:37 2018 +0300

opcservices: Implement PartExists().

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/opcservices/package.c           | 11 +++++++++--
 dlls/opcservices/tests/opcservices.c | 11 +++++++++--
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/dlls/opcservices/package.c b/dlls/opcservices/package.c
index 6e1a024..ae610ac 100644
--- a/dlls/opcservices/package.c
+++ b/dlls/opcservices/package.c
@@ -1011,9 +1011,16 @@ static HRESULT WINAPI opc_part_set_DeletePart(IOpcPartSet *iface, IOpcPartUri *n
 
 static HRESULT WINAPI opc_part_set_PartExists(IOpcPartSet *iface, IOpcPartUri *name, BOOL *exists)
 {
-    FIXME("iface %p, name %p, exists %p stub!\n", iface, name, exists);
+    struct opc_part_set *part_set = impl_from_IOpcPartSet(iface);
 
-    return E_NOTIMPL;
+    TRACE("iface %p, name %p, exists %p.\n", iface, name, exists);
+
+    if (!name || !exists)
+        return E_POINTER;
+
+    *exists = opc_part_set_get_part(part_set, name) != NULL;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI opc_part_set_GetEnumerator(IOpcPartSet *iface, IOpcPartEnumerator **enumerator)
diff --git a/dlls/opcservices/tests/opcservices.c b/dlls/opcservices/tests/opcservices.c
index 2bcf46f..8bcd914 100644
--- a/dlls/opcservices/tests/opcservices.c
+++ b/dlls/opcservices/tests/opcservices.c
@@ -187,12 +187,19 @@ static void test_package(void)
     IOpcRelationshipSet_Release(relset);
     IOpcRelationshipSet_Release(relset2);
 
+    ret = 123;
+    hr = IOpcPartSet_PartExists(partset, NULL, &ret);
+    ok(hr == E_POINTER, "Unexpected hr %#x.\n", hr);
+    ok(ret == 123, "Unexpected return value.\n");
+
+    hr = IOpcPartSet_PartExists(partset, part_uri, NULL);
+    ok(hr == E_POINTER, "Unexpected hr %#x.\n", hr);
+
     ret = FALSE;
     hr = IOpcPartSet_PartExists(partset, part_uri, &ret);
-todo_wine {
     ok(SUCCEEDED(hr), "Unexpected hr %#x.\n", hr);
     ok(ret, "Expected part to exist.\n");
-}
+
     IOpcPartUri_Release(part_uri);
     IOpcPart_Release(part);
 




More information about the wine-cvs mailing list