mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Updated patches 7 and 10, added patch 11 to prevent problems with Silverlight
This commit is contained in:
parent
574b5e7cb9
commit
3c0f6ef05f
@ -0,0 +1,253 @@
|
||||
From 8c8c8c24a8c90c292c6af2c83fd2587a04492a4f Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 22 Nov 2013 18:40:59 +0100
|
||||
Subject: quartz/tests: Add tests for IVMRMonitorConfig and IVMRMonitorConfig9
|
||||
interface
|
||||
|
||||
---
|
||||
dlls/quartz/tests/videorenderer.c | 210 ++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 205 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c
|
||||
index ce1ac29..df45e1e 100644
|
||||
--- a/dlls/quartz/tests/videorenderer.c
|
||||
+++ b/dlls/quartz/tests/videorenderer.c
|
||||
@@ -22,6 +22,9 @@
|
||||
|
||||
#include "wine/test.h"
|
||||
#include "dshow.h"
|
||||
+#include "initguid.h"
|
||||
+#include "d3d9.h"
|
||||
+#include "vmr9.h"
|
||||
|
||||
#define QI_SUCCEED(iface, riid, ppv) hr = IUnknown_QueryInterface(iface, &riid, (LPVOID*)&ppv); \
|
||||
ok(hr == S_OK, "IUnknown_QueryInterface returned %x\n", hr); \
|
||||
@@ -33,6 +36,8 @@
|
||||
}
|
||||
|
||||
static IUnknown *pVideoRenderer = NULL;
|
||||
+static IUnknown *pVMR7 = NULL;
|
||||
+static IUnknown *pVMR9 = NULL;
|
||||
|
||||
static int create_video_renderer(void)
|
||||
{
|
||||
@@ -150,16 +155,211 @@ static void test_basefilter(void)
|
||||
IBaseFilter_Release(base);
|
||||
}
|
||||
|
||||
+static int create_vmr7(void)
|
||||
+{
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ hr = CoCreateInstance(&CLSID_VideoMixingRenderer, NULL, CLSCTX_INPROC_SERVER,
|
||||
+ &IID_IUnknown, (LPVOID*)&pVMR7);
|
||||
+ return (hr == S_OK && pVMR7 != NULL);
|
||||
+}
|
||||
+
|
||||
+static void release_vmr7(void)
|
||||
+{
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ hr = IUnknown_Release(pVMR7);
|
||||
+ ok(hr == 0, "IUnknown_Release failed with %x\n", hr);
|
||||
+}
|
||||
+
|
||||
+static void test_monitorconfig7(void)
|
||||
+{
|
||||
+ HRESULT hr;
|
||||
+ IVMRMonitorConfig *pMonitorConfig = NULL;
|
||||
+ VMRGUID guid;
|
||||
+ VMRMONITORINFO info[8];
|
||||
+ DWORD numdev_total, numdev;
|
||||
+
|
||||
+ hr = IUnknown_QueryInterface(pVMR7, &IID_IVMRMonitorConfig, (LPVOID*)&pMonitorConfig);
|
||||
+ ok(hr == S_OK, "IUnknown_QueryInterface returned %x.\n", hr);
|
||||
+ ok(pMonitorConfig != NULL, "pMonitorConfig is NULL.\n");
|
||||
+ if (!pMonitorConfig) goto out;
|
||||
+
|
||||
+ hr = IVMRMonitorConfig_SetMonitor(pMonitorConfig, NULL);
|
||||
+ ok(hr == E_POINTER, "SetMonitor returned %x, expected E_POINTER.\n", hr);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig_GetMonitor(pMonitorConfig, NULL);
|
||||
+ ok(hr == E_POINTER, "GetMonitor returned %x, expected E_POINTER.\n", hr);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig_SetDefaultMonitor(pMonitorConfig, NULL);
|
||||
+ ok(hr == E_POINTER, "SetDefaultMonitor returned %x, expected E_POINTER.\n", hr);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig_GetDefaultMonitor(pMonitorConfig, NULL);
|
||||
+ ok(hr == E_POINTER, "GetDefaultMonitor returned %x, expected E_POINTER.\n", hr);
|
||||
+
|
||||
+ memset(&guid, 0, sizeof(guid));
|
||||
+ guid.pGUID = NULL; /* default DirectDraw device */
|
||||
+ hr = IVMRMonitorConfig_SetMonitor(pMonitorConfig, &guid);
|
||||
+ ok(hr == S_OK, "SetMonitor failed with %x.\n", hr);
|
||||
+
|
||||
+ memset(&guid, 255, sizeof(guid));
|
||||
+ hr = IVMRMonitorConfig_GetMonitor(pMonitorConfig, &guid);
|
||||
+ ok(hr == S_OK, "GetMonitor failed with %x.\n", hr);
|
||||
+ ok(guid.pGUID == NULL, "GetMonitor returned guid.pGUID = %p, expected NULL.\n", guid.pGUID);
|
||||
+
|
||||
+ memset(&guid, 0, sizeof(guid));
|
||||
+ guid.pGUID = NULL; /* default DirectDraw device */
|
||||
+ hr = IVMRMonitorConfig_SetDefaultMonitor(pMonitorConfig, &guid);
|
||||
+ ok(hr == S_OK, "SetDefaultMonitor failed with %x.\n", hr);
|
||||
+
|
||||
+ memset(&guid, 255, sizeof(guid));
|
||||
+ hr = IVMRMonitorConfig_GetDefaultMonitor(pMonitorConfig, &guid);
|
||||
+ ok(hr == S_OK, "GetDefaultMonitor failed with %x.\n", hr);
|
||||
+ ok(guid.pGUID == NULL, "GetDefaultMonitor returned guid.pGUID = %p, expected NULL.\n", guid.pGUID);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig_GetAvailableMonitors(pMonitorConfig, NULL, 0, NULL);
|
||||
+ ok(hr == E_POINTER, "GetAvailableMonitors returned %x, expected E_POINTER.\n", hr);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig_GetAvailableMonitors(pMonitorConfig, info, 0, &numdev_total);
|
||||
+ ok(hr == E_INVALIDARG, "GetAvailableMonitors returned %x, expected E_INVALIDARG.\n", hr);
|
||||
+
|
||||
+ numdev_total = 0;
|
||||
+ hr = IVMRMonitorConfig_GetAvailableMonitors(pMonitorConfig, NULL, 0, &numdev_total);
|
||||
+ ok(hr == S_OK, "GetAvailableMonitors failed with %x.\n", hr);
|
||||
+ ok(numdev_total > 0, "GetAvailableMonitors returned numdev_total = %d, expected > 0.\n", numdev_total);
|
||||
+
|
||||
+ /* check if its possible to provide a buffer which is too small for all entries */
|
||||
+ if (numdev_total > 1)
|
||||
+ {
|
||||
+ hr = IVMRMonitorConfig_GetAvailableMonitors(pMonitorConfig, info, 1, &numdev);
|
||||
+ ok(hr == S_OK, "GetAvailableMonitors failed with %x.\n", hr);
|
||||
+ ok(numdev == 1, "GetAvailableMonitors returned numdev = %d, expected 1.\n", numdev);
|
||||
+ }
|
||||
+
|
||||
+ /* don't request information for more monitors than memory available */
|
||||
+ if (numdev_total > sizeof(info)/sizeof(info[0]))
|
||||
+ numdev_total = sizeof(info)/sizeof(info[0]);
|
||||
+ hr = IVMRMonitorConfig_GetAvailableMonitors(pMonitorConfig, info, numdev_total, &numdev);
|
||||
+ ok(hr == S_OK, "GetAvailableMonitors failed with %x.\n", hr);
|
||||
+ ok(numdev == numdev_total, "GetAvailableMonitors returned numdev = %d, expected %d.\n", numdev, numdev_total);
|
||||
+
|
||||
+ /* TODO: Add more tests for content of info */
|
||||
+
|
||||
+out:
|
||||
+ if (pMonitorConfig) IVMRMonitorConfig_Release(pMonitorConfig);
|
||||
+}
|
||||
+
|
||||
+static int create_vmr9(void)
|
||||
+{
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ hr = CoCreateInstance(&CLSID_VideoMixingRenderer9, NULL, CLSCTX_INPROC_SERVER,
|
||||
+ &IID_IUnknown, (LPVOID*)&pVMR9);
|
||||
+ return (hr == S_OK && pVMR7 != NULL);
|
||||
+}
|
||||
+
|
||||
+static void release_vmr9(void)
|
||||
+{
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ hr = IUnknown_Release(pVMR9);
|
||||
+ ok(hr == 0, "IUnknown_Release failed with %x\n", hr);
|
||||
+}
|
||||
+
|
||||
+static void test_monitorconfig9(void)
|
||||
+{
|
||||
+ HRESULT hr;
|
||||
+ IVMRMonitorConfig9 *pMonitorConfig = NULL;
|
||||
+ UINT uDev;
|
||||
+ VMR9MonitorInfo info[8];
|
||||
+ DWORD numdev_total, numdev;
|
||||
+
|
||||
+ hr = IUnknown_QueryInterface(pVMR9, &IID_IVMRMonitorConfig9, (LPVOID*)&pMonitorConfig);
|
||||
+ ok(hr == S_OK, "IUnknown_QueryInterface returned %x.\n", hr);
|
||||
+ ok(pMonitorConfig != NULL, "pMonitorConfig is NULL.\n");
|
||||
+ if (!pMonitorConfig) goto out;
|
||||
+
|
||||
+ hr = IVMRMonitorConfig9_GetMonitor(pMonitorConfig, NULL);
|
||||
+ ok(hr == E_POINTER, "GetMonitor returned %x, expected E_POINTER.\n", hr);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig9_GetDefaultMonitor(pMonitorConfig, NULL);
|
||||
+ ok(hr == E_POINTER, "GetDefaultMonitor returned %x, expected E_POINTER.\n", hr);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig9_SetMonitor(pMonitorConfig, 0);
|
||||
+ ok(hr == S_OK, "SetMonitor failed with %x.\n", hr);
|
||||
+
|
||||
+ uDev = 0xdeadbeef;
|
||||
+ hr = IVMRMonitorConfig9_GetMonitor(pMonitorConfig, &uDev);
|
||||
+ ok(hr == S_OK, "GetMonitor failed with %x.\n", hr);
|
||||
+ ok(uDev == 0, "GetMonitor returned uDev = %d, expected 0.\n", uDev);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig9_SetDefaultMonitor(pMonitorConfig, 0);
|
||||
+ ok(hr == S_OK, "SetDefaultMonitor failed with %x.\n", hr);
|
||||
+
|
||||
+ uDev = 0xdeadbeef;
|
||||
+ hr = IVMRMonitorConfig9_GetDefaultMonitor(pMonitorConfig, &uDev);
|
||||
+ ok(hr == S_OK, "GetDefaultMonitor failed with %x.\n", hr);
|
||||
+ ok(uDev == 0, "GetDefaultMonitor returned uDev = %d, expected 0.\n", uDev);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig9_GetAvailableMonitors(pMonitorConfig, NULL, 0, NULL);
|
||||
+ ok(hr == E_POINTER, "GetAvailableMonitors returned %x, expected E_POINTER.\n", hr);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig9_GetAvailableMonitors(pMonitorConfig, info, 0, &numdev_total);
|
||||
+ ok(hr == E_INVALIDARG, "GetAvailableMonitors returned %x, expected E_INVALIDARG.\n", hr);
|
||||
+
|
||||
+ numdev_total = 0;
|
||||
+ hr = IVMRMonitorConfig9_GetAvailableMonitors(pMonitorConfig, NULL, 0, &numdev_total);
|
||||
+ ok(hr == S_OK, "GetAvailableMonitors failed with %x.\n", hr);
|
||||
+ ok(numdev_total > 0, "GetAvailableMonitors returned numdev_total = %d, expected > 0.\n", numdev_total);
|
||||
+
|
||||
+ /* check if its possible to provide a buffer which is too small for all entries */
|
||||
+ if (numdev_total > 1)
|
||||
+ {
|
||||
+ hr = IVMRMonitorConfig9_GetAvailableMonitors(pMonitorConfig, info, 1, &numdev);
|
||||
+ ok(hr == S_OK, "GetAvailableMonitors failed with %x.\n", hr);
|
||||
+ ok(numdev == 1, "GetAvailableMonitors returned numdev = %d, expected 1.\n", numdev);
|
||||
+ }
|
||||
+
|
||||
+ if (numdev_total > sizeof(info)/sizeof(info[0]))
|
||||
+ numdev_total = sizeof(info)/sizeof(info[0]);
|
||||
+ hr = IVMRMonitorConfig9_GetAvailableMonitors(pMonitorConfig, info, numdev_total, &numdev);
|
||||
+ ok(hr == S_OK, "GetAvailableMonitors failed with %x.\n", hr);
|
||||
+ ok(numdev == numdev_total, "GetAvailableMonitors returned numdev = %d, expected %d.\n", numdev, numdev_total);
|
||||
+
|
||||
+ /* TODO: Add more tests for content of info */
|
||||
+
|
||||
+out:
|
||||
+ if (pMonitorConfig) IVMRMonitorConfig9_Release(pMonitorConfig);
|
||||
+}
|
||||
+
|
||||
START_TEST(videorenderer)
|
||||
{
|
||||
CoInitialize(NULL);
|
||||
- if (!create_video_renderer())
|
||||
- return;
|
||||
|
||||
- test_query_interface();
|
||||
- test_basefilter();
|
||||
+ /* Video Renderer tests */
|
||||
+ if (create_video_renderer())
|
||||
+ {
|
||||
+ test_query_interface();
|
||||
+ test_basefilter();
|
||||
+ release_video_renderer();
|
||||
+ }else
|
||||
+ skip("VideoRenderer is not available.\n");
|
||||
+
|
||||
+ /* Video Mixing Renderer 7 tests */
|
||||
+ if (create_vmr7())
|
||||
+ {
|
||||
+ test_monitorconfig7();
|
||||
+ release_vmr7();
|
||||
+ }else
|
||||
+ skip("VideoMixingRenderer7 is not available.\n");
|
||||
|
||||
- release_video_renderer();
|
||||
+ /* Video Mixing Renderer 9 tests */
|
||||
+ if (create_vmr9())
|
||||
+ {
|
||||
+ test_monitorconfig9();
|
||||
+ release_vmr9();
|
||||
+ }else
|
||||
+ skip("VideoMixingRenderer9 is not available.\n");
|
||||
|
||||
CoUninitialize();
|
||||
}
|
||||
--
|
||||
1.7.9.5
|
||||
|
@ -1,163 +0,0 @@
|
||||
From 4c261ca7ce6d73f0820106804797dcc7f0912b62 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 11 Nov 2013 00:18:31 +0100
|
||||
Subject: quartz/tests: Add tests for IVMRMonitorConfig
|
||||
|
||||
---
|
||||
dlls/quartz/tests/Makefile.in | 1 +
|
||||
dlls/quartz/tests/monitorconfig.c | 131 +++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 132 insertions(+)
|
||||
create mode 100644 dlls/quartz/tests/monitorconfig.c
|
||||
|
||||
diff --git a/dlls/quartz/tests/Makefile.in b/dlls/quartz/tests/Makefile.in
|
||||
index ae5fbac..94b2f44 100644
|
||||
--- a/dlls/quartz/tests/Makefile.in
|
||||
+++ b/dlls/quartz/tests/Makefile.in
|
||||
@@ -8,6 +8,7 @@ C_SRCS = \
|
||||
filtermapper.c \
|
||||
memallocator.c \
|
||||
misc.c \
|
||||
+ monitorconfig.c \
|
||||
referenceclock.c \
|
||||
videorenderer.c
|
||||
|
||||
diff --git a/dlls/quartz/tests/monitorconfig.c b/dlls/quartz/tests/monitorconfig.c
|
||||
new file mode 100644
|
||||
index 0000000..3a18460
|
||||
--- /dev/null
|
||||
+++ b/dlls/quartz/tests/monitorconfig.c
|
||||
@@ -0,0 +1,131 @@
|
||||
+/*
|
||||
+ * MonitorConfig unit tests for Quartz
|
||||
+ *
|
||||
+ * Copyright (C) 2013 Sebastian Lackner
|
||||
+ *
|
||||
+ * This library is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU Lesser General Public
|
||||
+ * License as published by the Free Software Foundation; either
|
||||
+ * version 2.1 of the License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * This library is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ * Lesser General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU Lesser General Public
|
||||
+ * License along with this library; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
+ */
|
||||
+
|
||||
+#define COBJMACROS
|
||||
+
|
||||
+#include "wine/test.h"
|
||||
+#include "dshow.h"
|
||||
+
|
||||
+static void test_monitorconfig_setmonitor(void)
|
||||
+{
|
||||
+ HRESULT hr;
|
||||
+ IUnknown *pVMR = NULL;
|
||||
+ IVMRMonitorConfig *pMonitorConfig = NULL;
|
||||
+ VMRGUID guid;
|
||||
+
|
||||
+ hr = CoCreateInstance(&CLSID_VideoMixingRenderer, NULL, CLSCTX_INPROC_SERVER,
|
||||
+ &IID_IUnknown, (LPVOID*)&pVMR);
|
||||
+ ok(hr == S_OK, "CoCreateInstance failed with %x.\n", hr);
|
||||
+ ok(pVMR != NULL, "pVMR is NULL.\n");
|
||||
+ if (!pVMR) goto out;
|
||||
+
|
||||
+ hr = IUnknown_QueryInterface(pVMR, &IID_IVMRMonitorConfig, (LPVOID*)&pMonitorConfig);
|
||||
+ ok(hr == S_OK, "IUnknown_QueryInterface returned %x.\n", hr);
|
||||
+ ok(pMonitorConfig != NULL, "pMonitorConfig is NULL.\n");
|
||||
+ if (!pMonitorConfig) goto out;
|
||||
+
|
||||
+ memset(&guid, 0, sizeof(guid));
|
||||
+ guid.pGUID = NULL; /* default DirectDraw device */
|
||||
+ hr = IVMRMonitorConfig_SetMonitor(pMonitorConfig, &guid);
|
||||
+ ok(hr == S_OK, "SetMonitor failed with %x.\n", hr);
|
||||
+
|
||||
+ memset(&guid, 255, sizeof(guid));
|
||||
+ hr = IVMRMonitorConfig_GetMonitor(pMonitorConfig, &guid);
|
||||
+ ok(hr == S_OK, "GetMonitor failed with %x.\n", hr);
|
||||
+ ok(guid.pGUID == NULL, "GetMonitor returned guid.pGUID = %p, expected NULL.\n", guid.pGUID);
|
||||
+
|
||||
+ memset(&guid, 0, sizeof(guid));
|
||||
+ guid.pGUID = NULL; /* default DirectDraw device */
|
||||
+ hr = IVMRMonitorConfig_SetDefaultMonitor(pMonitorConfig, &guid);
|
||||
+ ok(hr == S_OK, "SetDefaultMonitor failed with %x.\n", hr);
|
||||
+
|
||||
+ memset(&guid, 255, sizeof(guid));
|
||||
+ hr = IVMRMonitorConfig_GetDefaultMonitor(pMonitorConfig, &guid);
|
||||
+ ok(hr == S_OK, "GetDefaultMonitor failed with %x.\n", hr);
|
||||
+ ok(guid.pGUID == NULL, "GetDefaultMonitor returned guid.pGUID = %p, expected NULL.\n", guid.pGUID);
|
||||
+
|
||||
+out:
|
||||
+ if (pMonitorConfig) IVMRMonitorConfig_Release(pMonitorConfig);
|
||||
+ if (pVMR) IUnknown_Release(pVMR);
|
||||
+}
|
||||
+
|
||||
+static void test_monitorconfig_getavailablemonitors(void)
|
||||
+{
|
||||
+ HRESULT hr;
|
||||
+ IUnknown *pVMR = NULL;
|
||||
+ IVMRMonitorConfig *pMonitorConfig = NULL;
|
||||
+ VMRMONITORINFO info[8];
|
||||
+ DWORD numdev_total, numdev;
|
||||
+
|
||||
+ hr = CoCreateInstance(&CLSID_VideoMixingRenderer, NULL, CLSCTX_INPROC_SERVER,
|
||||
+ &IID_IUnknown, (LPVOID*)&pVMR);
|
||||
+ ok(hr == S_OK, "CoCreateInstance failed with %x.\n", hr);
|
||||
+ ok(pVMR != NULL, "pVMR is NULL.\n");
|
||||
+ if (!pVMR) goto out;
|
||||
+
|
||||
+ hr = IUnknown_QueryInterface(pVMR, &IID_IVMRMonitorConfig, (LPVOID*)&pMonitorConfig);
|
||||
+ ok(hr == S_OK, "IUnknown_QueryInterface returned %x.\n", hr);
|
||||
+ ok(pMonitorConfig != NULL, "pMonitorConfig is NULL.\n");
|
||||
+ if (!pMonitorConfig) goto out;
|
||||
+
|
||||
+ /* call without any arguments */
|
||||
+ hr = IVMRMonitorConfig_GetAvailableMonitors(pMonitorConfig, NULL, 0, NULL);
|
||||
+ ok(hr == E_POINTER, "GetAvailableMonitors returned %x, expected E_POINTER.\n", hr);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig_GetAvailableMonitors(pMonitorConfig, info, 0, &numdev_total);
|
||||
+ ok(hr == E_INVALIDARG, "GetAvailableMonitors returned %x, expected E_INVALIDARG.\n", hr);
|
||||
+
|
||||
+ numdev_total = 0;
|
||||
+ hr = IVMRMonitorConfig_GetAvailableMonitors(pMonitorConfig, NULL, 0, &numdev_total);
|
||||
+ ok(hr == S_OK, "GetAvailableMonitors failed with %x.\n", hr);
|
||||
+ ok(numdev_total > 0, "GetAvailableMonitors returned numdev_total = %d, expected > 0.\n", numdev_total);
|
||||
+
|
||||
+ if (numdev_total > 1)
|
||||
+ {
|
||||
+ /* return just the first monitor */
|
||||
+ hr = IVMRMonitorConfig_GetAvailableMonitors(pMonitorConfig, info, 1, &numdev);
|
||||
+ ok(hr == S_OK, "GetAvailableMonitors failed with %x.\n", hr);
|
||||
+ ok(numdev == 1, "GetAvailableMonitors returned numdev = %d, expected 1.\n", numdev);
|
||||
+ }
|
||||
+
|
||||
+ /* don't request information for more monitors than memory available */
|
||||
+ if (numdev_total > sizeof(info)/sizeof(VMRMONITORINFO))
|
||||
+ numdev_total = sizeof(info)/sizeof(VMRMONITORINFO);
|
||||
+
|
||||
+ hr = IVMRMonitorConfig_GetAvailableMonitors(pMonitorConfig, info, numdev_total, &numdev);
|
||||
+ ok(hr == S_OK, "GetAvailableMonitors failed with %x.\n", hr);
|
||||
+ ok(numdev == numdev_total, "GetAvailableMonitors returned numdev = %d, expected %d.\n", numdev, numdev_total);
|
||||
+
|
||||
+ /* TODO: Add test for content of info */
|
||||
+
|
||||
+out:
|
||||
+ if (pMonitorConfig) IVMRMonitorConfig_Release(pMonitorConfig);
|
||||
+ if (pVMR) IUnknown_Release(pVMR);
|
||||
+}
|
||||
+
|
||||
+START_TEST(monitorconfig)
|
||||
+{
|
||||
+ CoInitialize(NULL);
|
||||
+
|
||||
+ test_monitorconfig_setmonitor();
|
||||
+ test_monitorconfig_getavailablemonitors();
|
||||
+
|
||||
+ CoUninitialize();
|
||||
+}
|
||||
--
|
||||
1.7.9.5
|
||||
|
@ -1,7 +1,7 @@
|
||||
From c80b095c919dcc976955f258fe177a2b24fd8dea Mon Sep 17 00:00:00 2001
|
||||
From 90f7d78cf1ee2bf4329b298cb24e0e5145637557 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 28 Oct 2013 00:39:17 +0100
|
||||
Subject: winex11: Enable/disable windows when they are (un)mapped by foreign
|
||||
Date: Fri, 22 Nov 2013 18:54:18 +0100
|
||||
Subject: winex11: Enable/disable windows when they are (un)mapped by foreign
|
||||
applications
|
||||
|
||||
---
|
||||
@ -9,10 +9,10 @@ Subject: winex11: Enable/disable windows when they are (un)mapped by foreign
|
||||
1 file changed, 17 insertions(+)
|
||||
|
||||
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
|
||||
index df27468..9d958c0 100644
|
||||
index 767c003..f39b922 100644
|
||||
--- a/dlls/winex11.drv/event.c
|
||||
+++ b/dlls/winex11.drv/event.c
|
||||
@@ -929,6 +929,7 @@ static void X11DRV_Expose( HWND hwnd, XEvent *xev )
|
||||
@@ -922,6 +922,7 @@ static void X11DRV_Expose( HWND hwnd, XEvent *xev )
|
||||
static void X11DRV_MapNotify( HWND hwnd, XEvent *event )
|
||||
{
|
||||
struct x11drv_win_data *data;
|
||||
@ -20,9 +20,9 @@ index df27468..9d958c0 100644
|
||||
|
||||
if (event->xany.window == x11drv_thread_data()->clip_window)
|
||||
{
|
||||
@@ -943,7 +944,12 @@ static void X11DRV_MapNotify( HWND hwnd, XEvent *event )
|
||||
@@ -936,7 +937,12 @@ static void X11DRV_MapNotify( HWND hwnd, XEvent *event )
|
||||
if (hwndFocus && IsChild( hwnd, hwndFocus ))
|
||||
set_input_focus( hwnd );
|
||||
set_input_focus( data );
|
||||
}
|
||||
+
|
||||
+ is_embedded = data->embedded;
|
||||
@ -33,7 +33,7 @@ index df27468..9d958c0 100644
|
||||
}
|
||||
|
||||
|
||||
@@ -952,7 +958,18 @@ static void X11DRV_MapNotify( HWND hwnd, XEvent *event )
|
||||
@@ -945,7 +951,18 @@ static void X11DRV_MapNotify( HWND hwnd, XEvent *event )
|
||||
*/
|
||||
static void X11DRV_UnmapNotify( HWND hwnd, XEvent *event )
|
||||
{
|
||||
@ -46,7 +46,7 @@ index df27468..9d958c0 100644
|
||||
+
|
||||
+ is_embedded = data->embedded;
|
||||
+ release_win_data( data );
|
||||
+
|
||||
+
|
||||
+ if (is_embedded)
|
||||
+ EnableWindow( hwnd, FALSE );
|
||||
}
|
||||
|
@ -0,0 +1,35 @@
|
||||
From c586d47aabf8741b8526579868c691e77ff5f7c8 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 21 Nov 2013 03:37:31 +0100
|
||||
Subject: quartz: Workaround Silverlight problems when multiple monitors are
|
||||
found
|
||||
|
||||
---
|
||||
dlls/quartz/vmr9.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c
|
||||
index 31f3f8e..20da5b9 100644
|
||||
--- a/dlls/quartz/vmr9.c
|
||||
+++ b/dlls/quartz/vmr9.c
|
||||
@@ -1440,7 +1440,7 @@ static HRESULT WINAPI VMR7MonitorConfig_GetAvailableMonitors(IVMRMonitorConfig *
|
||||
|
||||
args.info7 = info;
|
||||
args.info9 = NULL;
|
||||
- args.arraysize = arraysize;
|
||||
+ args.arraysize = 1; /* only return first entry */
|
||||
args.numdev = 0;
|
||||
EnumDisplayMonitors(NULL, NULL, get_available_monitors_proc, (LPARAM)&args);
|
||||
|
||||
@@ -1540,7 +1540,7 @@ static HRESULT WINAPI VMR9MonitorConfig_GetAvailableMonitors(IVMRMonitorConfig9
|
||||
|
||||
args.info7 = NULL;
|
||||
args.info9 = info;
|
||||
- args.arraysize = arraysize;
|
||||
+ args.arraysize = 1; /* only return first entry */
|
||||
args.numdev = 0;
|
||||
EnumDisplayMonitors(NULL, NULL, get_available_monitors_proc, (LPARAM)&args);
|
||||
|
||||
--
|
||||
1.7.9.5
|
||||
|
Loading…
Reference in New Issue
Block a user