The software "Alldup" uses OLEIVERB_SHOW, but OLEIVERB_SHOW is not implemented in oleobj.c, resulting in errors when running the Alldup via Wine.
-- v5: add test for OLEIVERB_SHOW
From: panhui panhui@uniontech.com
--- dlls/wmp/oleobj.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/dlls/wmp/oleobj.c b/dlls/wmp/oleobj.c index 5309194f289..725ab3dd7e6 100644 --- a/dlls/wmp/oleobj.c +++ b/dlls/wmp/oleobj.c @@ -421,7 +421,14 @@ static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, LPMSG lpms
ShowWindow(This->hwnd, SW_HIDE); return S_OK; + case OLEIVERB_SHOW: + if(!This->hwnd) { + FIXME("No window to show\n"); + return E_UNEXPECTED; + }
+ ShowWindow(This->hwnd, SW_SHOW); + return S_OK; default: FIXME("Unsupported iVerb %ld\n", iVerb); }
From: panhui panhui@uniontech.com
--- dlls/wmp/tests/oleobj.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/dlls/wmp/tests/oleobj.c b/dlls/wmp/tests/oleobj.c index fa593eb3c3f..1be9b1d65cf 100644 --- a/dlls/wmp/tests/oleobj.c +++ b/dlls/wmp/tests/oleobj.c @@ -1328,6 +1328,9 @@ static void test_wmp(void)
test_wmp_ifaces(oleobj);
+ hres = IOleObject_DoVerb(oleobj, OLEIVERB_SHOW, NULL, &ClientSite, 0, container_hwnd, &pos); + ok(hres == S_OK, "DoVerb failed: %08lx\n", hres); + hres = IOleObject_DoVerb(oleobj, OLEIVERB_HIDE, NULL, &ClientSite, 0, container_hwnd, &pos); ok(hres == S_OK, "DoVerb failed: %08lx\n", hres); ok(!IsWindowVisible(hwnd), "Window is visible\n");
From: panhui panhui@uniontech.com
--- dlls/wmp/tests/oleobj.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/wmp/tests/oleobj.c b/dlls/wmp/tests/oleobj.c index 1be9b1d65cf..0ad413f89d0 100644 --- a/dlls/wmp/tests/oleobj.c +++ b/dlls/wmp/tests/oleobj.c @@ -1330,6 +1330,7 @@ static void test_wmp(void)
hres = IOleObject_DoVerb(oleobj, OLEIVERB_SHOW, NULL, &ClientSite, 0, container_hwnd, &pos); ok(hres == S_OK, "DoVerb failed: %08lx\n", hres); + ok(IsWindowVisible(hwnd), "Window is visible\n");
hres = IOleObject_DoVerb(oleobj, OLEIVERB_HIDE, NULL, &ClientSite, 0, container_hwnd, &pos); ok(hres == S_OK, "DoVerb failed: %08lx\n", hres);
From: panhui panhui@uniontech.com
--- dlls/wmp/tests/oleobj.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/wmp/tests/oleobj.c b/dlls/wmp/tests/oleobj.c index 0ad413f89d0..0f1aedc6bae 100644 --- a/dlls/wmp/tests/oleobj.c +++ b/dlls/wmp/tests/oleobj.c @@ -1330,7 +1330,7 @@ static void test_wmp(void)
hres = IOleObject_DoVerb(oleobj, OLEIVERB_SHOW, NULL, &ClientSite, 0, container_hwnd, &pos); ok(hres == S_OK, "DoVerb failed: %08lx\n", hres); - ok(IsWindowVisible(hwnd), "Window is visible\n"); + ok(IsWindowVisible(hwnd), "Window is visible\n");
hres = IOleObject_DoVerb(oleobj, OLEIVERB_HIDE, NULL, &ClientSite, 0, container_hwnd, &pos); ok(hres == S_OK, "DoVerb failed: %08lx\n", hres);
From: panhui panhui@uniontech.com
--- dlls/wmp/tests/oleobj.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/wmp/tests/oleobj.c b/dlls/wmp/tests/oleobj.c index 0f1aedc6bae..f386ffb72a7 100644 --- a/dlls/wmp/tests/oleobj.c +++ b/dlls/wmp/tests/oleobj.c @@ -1330,7 +1330,7 @@ static void test_wmp(void)
hres = IOleObject_DoVerb(oleobj, OLEIVERB_SHOW, NULL, &ClientSite, 0, container_hwnd, &pos); ok(hres == S_OK, "DoVerb failed: %08lx\n", hres); - ok(IsWindowVisible(hwnd), "Window is visible\n"); + ok(IsWindowVisible(hwnd), "Window is invisible\n");
hres = IOleObject_DoVerb(oleobj, OLEIVERB_HIDE, NULL, &ClientSite, 0, container_hwnd, &pos); ok(hres == S_OK, "DoVerb failed: %08lx\n", hres);
This merge request was closed by Elizabeth Figura.
Superseded by !9706.