From: Zebediah Figura zfigura@codeweavers.com
Ferro CCTV calls this. --- dlls/quartz/tests/videorenderer.c | 3 +++ dlls/quartz/tests/vmr7.c | 3 +++ dlls/quartz/tests/vmr9.c | 3 +++ dlls/quartz/window.c | 3 +++ 4 files changed, 12 insertions(+)
diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c index 7771c467a13..4b8bd4e7c2c 100644 --- a/dlls/quartz/tests/videorenderer.c +++ b/dlls/quartz/tests/videorenderer.c @@ -2396,6 +2396,9 @@ static void test_video_window(void) hr = IVideoWindow_put_AutoShow(window, OAFALSE); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_put_Owner(window, (OAHWND)our_hwnd); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/tests/vmr7.c b/dlls/quartz/tests/vmr7.c index cbab6eb077d..73e7ff5ffe9 100644 --- a/dlls/quartz/tests/vmr7.c +++ b/dlls/quartz/tests/vmr7.c @@ -2395,6 +2395,9 @@ static void test_video_window(void) hr = IVideoWindow_put_AutoShow(window, OAFALSE); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_put_Owner(window, (OAHWND)our_hwnd); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/tests/vmr9.c b/dlls/quartz/tests/vmr9.c index 9c5ec2129a3..27117db9f02 100644 --- a/dlls/quartz/tests/vmr9.c +++ b/dlls/quartz/tests/vmr9.c @@ -2621,6 +2621,9 @@ static void test_video_window(void) hr = IVideoWindow_put_AutoShow(window, OAFALSE); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_put_Owner(window, (OAHWND)our_hwnd); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/window.c b/dlls/quartz/window.c index 617d45b74e0..f09dd5aea56 100644 --- a/dlls/quartz/window.c +++ b/dlls/quartz/window.c @@ -482,6 +482,9 @@ HRESULT WINAPI BaseControlWindowImpl_put_Owner(IVideoWindow *iface, OAHWND owner
TRACE("window %p, owner %#Ix.\n", window, owner);
+ if (!window->pPin->peer) + return VFW_E_NOT_CONNECTED; + /* Make sure we are marked as WS_CHILD before reparenting ourselves, so that * we do not steal focus. LEGO Island depends on this. */
From: Zebediah Figura zfigura@codeweavers.com
Ferro CCTV calls this. --- dlls/quartz/tests/videorenderer.c | 3 +++ dlls/quartz/tests/vmr7.c | 3 +++ dlls/quartz/tests/vmr9.c | 3 +++ dlls/quartz/window.c | 9 ++++++--- 4 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c index 4b8bd4e7c2c..76088534924 100644 --- a/dlls/quartz/tests/videorenderer.c +++ b/dlls/quartz/tests/videorenderer.c @@ -2399,6 +2399,9 @@ static void test_video_window(void) hr = IVideoWindow_put_Owner(window, (OAHWND)our_hwnd); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_put_MessageDrain(window, (OAHWND)our_hwnd); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/tests/vmr7.c b/dlls/quartz/tests/vmr7.c index 73e7ff5ffe9..04bf7c1ba1b 100644 --- a/dlls/quartz/tests/vmr7.c +++ b/dlls/quartz/tests/vmr7.c @@ -2398,6 +2398,9 @@ static void test_video_window(void) hr = IVideoWindow_put_Owner(window, (OAHWND)our_hwnd); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_put_MessageDrain(window, (OAHWND)our_hwnd); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/tests/vmr9.c b/dlls/quartz/tests/vmr9.c index 27117db9f02..299b0de22d5 100644 --- a/dlls/quartz/tests/vmr9.c +++ b/dlls/quartz/tests/vmr9.c @@ -2624,6 +2624,9 @@ static void test_video_window(void) hr = IVideoWindow_put_Owner(window, (OAHWND)our_hwnd); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_put_MessageDrain(window, (OAHWND)our_hwnd); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/window.c b/dlls/quartz/window.c index f09dd5aea56..1b6d2664a10 100644 --- a/dlls/quartz/window.c +++ b/dlls/quartz/window.c @@ -511,11 +511,14 @@ HRESULT WINAPI BaseControlWindowImpl_get_Owner(IVideoWindow *iface, OAHWND *Owne
HRESULT WINAPI BaseControlWindowImpl_put_MessageDrain(IVideoWindow *iface, OAHWND Drain) { - struct video_window *This = impl_from_IVideoWindow(iface); + struct video_window *window = impl_from_IVideoWindow(iface); + + TRACE("window %p, drain %#Ix.\n", window, Drain);
- TRACE("window %p, drain %#Ix.\n", This, Drain); + if (!window->pPin->peer) + return VFW_E_NOT_CONNECTED;
- This->hwndDrain = (HWND)Drain; + window->hwndDrain = (HWND)Drain;
return S_OK; }
From: Zebediah Figura zfigura@codeweavers.com
Ferro CCTV calls this. --- dlls/quartz/tests/videorenderer.c | 3 +++ dlls/quartz/tests/vmr7.c | 3 +++ dlls/quartz/tests/vmr9.c | 3 +++ dlls/quartz/window.c | 3 +++ 4 files changed, 12 insertions(+)
diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c index 76088534924..edc4d40f19d 100644 --- a/dlls/quartz/tests/videorenderer.c +++ b/dlls/quartz/tests/videorenderer.c @@ -2402,6 +2402,9 @@ static void test_video_window(void) hr = IVideoWindow_put_MessageDrain(window, (OAHWND)our_hwnd); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_put_Visible(window, OATRUE); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/tests/vmr7.c b/dlls/quartz/tests/vmr7.c index 04bf7c1ba1b..7282458dc33 100644 --- a/dlls/quartz/tests/vmr7.c +++ b/dlls/quartz/tests/vmr7.c @@ -2401,6 +2401,9 @@ static void test_video_window(void) hr = IVideoWindow_put_MessageDrain(window, (OAHWND)our_hwnd); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_put_Visible(window, OATRUE); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/tests/vmr9.c b/dlls/quartz/tests/vmr9.c index 299b0de22d5..c201d316bab 100644 --- a/dlls/quartz/tests/vmr9.c +++ b/dlls/quartz/tests/vmr9.c @@ -2627,6 +2627,9 @@ static void test_video_window(void) hr = IVideoWindow_put_MessageDrain(window, (OAHWND)our_hwnd); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_put_Visible(window, OATRUE); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/window.c b/dlls/quartz/window.c index 1b6d2664a10..130194bcc29 100644 --- a/dlls/quartz/window.c +++ b/dlls/quartz/window.c @@ -350,6 +350,9 @@ HRESULT WINAPI BaseControlWindowImpl_put_Visible(IVideoWindow *iface, LONG visib
TRACE("window %p, visible %ld.\n", window, visible);
+ if (!window->pPin->peer) + return VFW_E_NOT_CONNECTED; + ShowWindow(window->hwnd, visible ? SW_SHOW : SW_HIDE); return S_OK; }
From: Zebediah Figura zfigura@codeweavers.com
Ferro CCTV calls this. --- dlls/quartz/tests/videorenderer.c | 3 +++ dlls/quartz/tests/vmr7.c | 3 +++ dlls/quartz/tests/vmr9.c | 3 +++ dlls/quartz/window.c | 3 +++ 4 files changed, 12 insertions(+)
diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c index edc4d40f19d..ea54ec87a8e 100644 --- a/dlls/quartz/tests/videorenderer.c +++ b/dlls/quartz/tests/videorenderer.c @@ -2405,6 +2405,9 @@ static void test_video_window(void) hr = IVideoWindow_put_Visible(window, OATRUE); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_SetWindowPosition(window, 100, 200, 300, 400); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/tests/vmr7.c b/dlls/quartz/tests/vmr7.c index 7282458dc33..c30fefbd3ab 100644 --- a/dlls/quartz/tests/vmr7.c +++ b/dlls/quartz/tests/vmr7.c @@ -2404,6 +2404,9 @@ static void test_video_window(void) hr = IVideoWindow_put_Visible(window, OATRUE); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_SetWindowPosition(window, 100, 200, 300, 400); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/tests/vmr9.c b/dlls/quartz/tests/vmr9.c index c201d316bab..9d88afb295d 100644 --- a/dlls/quartz/tests/vmr9.c +++ b/dlls/quartz/tests/vmr9.c @@ -2630,6 +2630,9 @@ static void test_video_window(void) hr = IVideoWindow_put_Visible(window, OATRUE); ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr);
+ hr = IVideoWindow_SetWindowPosition(window, 100, 200, 300, 400); + ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#lx.\n", hr); + testfilter_init(&source); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); diff --git a/dlls/quartz/window.c b/dlls/quartz/window.c index 130194bcc29..4a9c4aed8f7 100644 --- a/dlls/quartz/window.c +++ b/dlls/quartz/window.c @@ -598,6 +598,9 @@ HRESULT WINAPI BaseControlWindowImpl_SetWindowPosition(IVideoWindow *iface,
TRACE("window %p, left %ld, top %ld, width %ld, height %ld.\n", window, left, top, width, height);
+ if (!window->pPin->peer) + return VFW_E_NOT_CONNECTED; + if (!SetWindowPos(window->hwnd, NULL, left, top, width, height, SWP_NOACTIVATE | SWP_NOZORDER)) return E_FAIL; return S_OK;
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=132481
Your paranoid android.
=== build (build log) ===
error: patch failed: dlls/quartz/tests/videorenderer.c:2396 error: patch failed: dlls/quartz/tests/vmr7.c:2395 error: patch failed: dlls/quartz/tests/vmr9.c:2621 error: patch failed: dlls/quartz/tests/videorenderer.c:2399 error: patch failed: dlls/quartz/tests/vmr7.c:2398 error: patch failed: dlls/quartz/tests/vmr9.c:2624 error: patch failed: dlls/quartz/tests/videorenderer.c:2402 error: patch failed: dlls/quartz/tests/vmr7.c:2401 error: patch failed: dlls/quartz/tests/vmr9.c:2627 error: patch failed: dlls/quartz/tests/videorenderer.c:2405 error: patch failed: dlls/quartz/tests/vmr7.c:2404 error: patch failed: dlls/quartz/tests/vmr9.c:2630 Task: Patch failed to apply
=== debian11 (build log) ===
error: patch failed: dlls/quartz/tests/videorenderer.c:2396 error: patch failed: dlls/quartz/tests/vmr7.c:2395 error: patch failed: dlls/quartz/tests/vmr9.c:2621 error: patch failed: dlls/quartz/tests/videorenderer.c:2399 error: patch failed: dlls/quartz/tests/vmr7.c:2398 error: patch failed: dlls/quartz/tests/vmr9.c:2624 error: patch failed: dlls/quartz/tests/videorenderer.c:2402 error: patch failed: dlls/quartz/tests/vmr7.c:2401 error: patch failed: dlls/quartz/tests/vmr9.c:2627 error: patch failed: dlls/quartz/tests/videorenderer.c:2405 error: patch failed: dlls/quartz/tests/vmr7.c:2404 error: patch failed: dlls/quartz/tests/vmr9.c:2630 Task: Patch failed to apply
=== debian11b (build log) ===
error: patch failed: dlls/quartz/tests/videorenderer.c:2396 error: patch failed: dlls/quartz/tests/vmr7.c:2395 error: patch failed: dlls/quartz/tests/vmr9.c:2621 error: patch failed: dlls/quartz/tests/videorenderer.c:2399 error: patch failed: dlls/quartz/tests/vmr7.c:2398 error: patch failed: dlls/quartz/tests/vmr9.c:2624 error: patch failed: dlls/quartz/tests/videorenderer.c:2402 error: patch failed: dlls/quartz/tests/vmr7.c:2401 error: patch failed: dlls/quartz/tests/vmr9.c:2627 error: patch failed: dlls/quartz/tests/videorenderer.c:2405 error: patch failed: dlls/quartz/tests/vmr7.c:2404 error: patch failed: dlls/quartz/tests/vmr9.c:2630 Task: Patch failed to apply