From b557c395556a9d2a6b62c7be3b79968e9dc78e80 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Thu, 30 Sep 2021 11:26:47 +0300 Subject: [PATCH] ole32/composite: Disable cloning of enumerator instances. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/ole32/compositemoniker.c | 6 +++--- dlls/ole32/tests/moniker.c | 12 ++++-------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/dlls/ole32/compositemoniker.c b/dlls/ole32/compositemoniker.c index cde3f1762f0..652962e1a87 100644 --- a/dlls/ole32/compositemoniker.c +++ b/dlls/ole32/compositemoniker.c @@ -1363,14 +1363,14 @@ EnumMonikerImpl_Reset(IEnumMoniker* iface) static HRESULT WINAPI EnumMonikerImpl_Clone(IEnumMoniker *iface, IEnumMoniker **ret) { - EnumMonikerImpl *This = impl_from_IEnumMoniker(iface); - TRACE("%p, %p.\n", iface, ret); if (!ret) return E_INVALIDARG; - return EnumMonikerImpl_CreateEnumMoniker(This->tabMoniker,This->tabSize,This->currentPos,TRUE,ret); + *ret = NULL; + + return E_NOTIMPL; } static const IEnumMonikerVtbl VT_EnumMonikerImpl = diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c index a60472951f7..abd17c9961f 100644 --- a/dlls/ole32/tests/moniker.c +++ b/dlls/ole32/tests/moniker.c @@ -3699,10 +3699,9 @@ todo_wine { enummoniker2 = (void *)0xdeadbeef; hr = IEnumMoniker_Clone(enummoniker, &enummoniker2); -todo_wine { ok(hr == E_NOTIMPL, "Unexpected hr %#x.\n", hr); ok(!enummoniker2, "Unexpected pointer.\n"); -} + hr = IEnumMoniker_Reset(enummoniker); ok(hr == S_OK, "Unexpected hr %#x.\n", hr); @@ -3718,10 +3717,9 @@ todo_wine { enummoniker2 = (void *)0xdeadbeef; hr = IEnumMoniker_Clone(enummoniker, &enummoniker2); -todo_wine { ok(hr == E_NOTIMPL, "Unexpected hr %#x.\n", hr); ok(!enummoniker2, "Unexpected pointer.\n"); -} + IEnumMoniker_Release(enummoniker); /* Backward direction */ @@ -3783,10 +3781,9 @@ todo_wine { enummoniker2 = (void *)0xdeadbeef; hr = IEnumMoniker_Clone(enummoniker, &enummoniker2); -todo_wine { ok(hr == E_NOTIMPL, "Unexpected hr %#x.\n", hr); ok(!enummoniker2, "Unexpected pointer.\n"); -} + hr = IEnumMoniker_Reset(enummoniker); ok(hr == S_OK, "Unexpected hr %#x.\n", hr); @@ -3802,10 +3799,9 @@ todo_wine { enummoniker2 = (void *)0xdeadbeef; hr = IEnumMoniker_Clone(enummoniker, &enummoniker2); -todo_wine { ok(hr == E_NOTIMPL, "Unexpected hr %#x.\n", hr); ok(!enummoniker2, "Unexpected pointer.\n"); -} + IEnumMoniker_Release(enummoniker); IMoniker_Release(moniker);