From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/opcservices/package.c | 6 +++--- dlls/opcservices/tests/opcservices.c | 6 ------ 2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/dlls/opcservices/package.c b/dlls/opcservices/package.c index bdd06ded69d..17175006433 100644 --- a/dlls/opcservices/package.c +++ b/dlls/opcservices/package.c @@ -260,10 +260,10 @@ static HRESULT WINAPI opc_part_enum_MovePrevious(IOpcPartEnumerator *iface, BOOL if (has_part_collection_changed(part_enum)) return OPC_E_ENUM_COLLECTION_CHANGED;
- if (part_enum->pos != ~(size_t)0) - part_enum->pos--; + if (part_enum->pos == ~(size_t)0) + return OPC_E_ENUM_CANNOT_MOVE_PREVIOUS;
- *has_previous = part_enum->pos != ~(size_t)0; + *has_previous = --part_enum->pos != ~(size_t)0;
return S_OK; } diff --git a/dlls/opcservices/tests/opcservices.c b/dlls/opcservices/tests/opcservices.c index 94f977f8228..396364037b8 100644 --- a/dlls/opcservices/tests/opcservices.c +++ b/dlls/opcservices/tests/opcservices.c @@ -674,9 +674,7 @@ static void test_part_enumerator(void)
ret = 123; hr = IOpcPartEnumerator_MovePrevious(partenum, &ret); - todo_wine ok(hr == OPC_E_ENUM_CANNOT_MOVE_PREVIOUS, "Unexpected hr %#lx.\n", hr); - todo_wine ok(ret == 123, "Unexpected result %d.\n", ret);
ret = TRUE; @@ -696,9 +694,7 @@ static void test_part_enumerator(void)
ret = 123; hr = IOpcPartEnumerator_MovePrevious(partenum, &ret); - todo_wine ok(hr == OPC_E_ENUM_CANNOT_MOVE_PREVIOUS, "Unexpected hr %#lx.\n", hr); - todo_wine ok(ret == 123, "Unexpected result %d.\n", ret);
hr = IOpcFactory_CreatePartUri(factory, L"/uri", &part_uri); @@ -788,9 +784,7 @@ static void test_part_enumerator(void)
ret = 123; hr = IOpcPartEnumerator_MovePrevious(partenum, &ret); - todo_wine ok(hr == OPC_E_ENUM_CANNOT_MOVE_PREVIOUS, "Unexpected hr %#lx.\n", hr); - todo_wine ok(ret == 123, "Unexpected result %d.\n", ret);
hr = IOpcPartEnumerator_Clone(partenum, &partenum2);