From: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- dlls/opcservices/package.c | 5 ++++- dlls/opcservices/tests/opcservices.c | 4 ---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/dlls/opcservices/package.c b/dlls/opcservices/package.c index e080b386c61..bdd06ded69d 100644 --- a/dlls/opcservices/package.c +++ b/dlls/opcservices/package.c @@ -237,7 +237,10 @@ static HRESULT WINAPI opc_part_enum_MoveNext(IOpcPartEnumerator *iface, BOOL *ha if (has_part_collection_changed(part_enum)) return OPC_E_ENUM_COLLECTION_CHANGED; - if (part_enum->part_set->count && (part_enum->pos == ~(size_t)0 || part_enum->pos < part_enum->part_set->count)) + if (part_enum->pos == part_enum->part_set->count) + return OPC_E_ENUM_CANNOT_MOVE_NEXT; + + if (part_enum->pos == ~(size_t)0 || part_enum->pos < part_enum->part_set->count) part_enum->pos++; *has_next = part_enum->pos < part_enum->part_set->count; diff --git a/dlls/opcservices/tests/opcservices.c b/dlls/opcservices/tests/opcservices.c index b4569cd8302..3359fc9c4dc 100644 --- a/dlls/opcservices/tests/opcservices.c +++ b/dlls/opcservices/tests/opcservices.c @@ -679,9 +679,7 @@ static void test_part_enumerator(void) ret = 123; hr = IOpcPartEnumerator_MoveNext(partenum, &ret); - todo_wine ok(hr == OPC_E_ENUM_CANNOT_MOVE_NEXT, "Unexpected hr %#lx.\n", hr); - todo_wine ok(ret == 123, "Unexpected result %d.\n", ret); ret = TRUE; @@ -750,9 +748,7 @@ static void test_part_enumerator(void) ret = 123; hr = IOpcPartEnumerator_MoveNext(partenum, &ret); - todo_wine ok(hr == OPC_E_ENUM_CANNOT_MOVE_NEXT, "Unexpected hr %#lx.\n", hr); - todo_wine ok(ret == 123, "Unexpected result %d.\n", ret); part2 = (void *)0xdeadbeef; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8856