Wine-devel
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
February 2022
- 87 participants
- 926 discussions
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
dlls/t2embed/tests/Makefile.in | 1 -
dlls/t2embed/tests/t2embed.c | 54 ++++++++++++++++++----------------
2 files changed, 28 insertions(+), 27 deletions(-)
diff --git a/dlls/t2embed/tests/Makefile.in b/dlls/t2embed/tests/Makefile.in
index 69d91384869..c4f49a3f6ca 100644
--- a/dlls/t2embed/tests/Makefile.in
+++ b/dlls/t2embed/tests/Makefile.in
@@ -1,4 +1,3 @@
-EXTRADEFS = -DWINE_NO_LONG_TYPES
TESTDLL = t2embed.dll
IMPORTS = user32 gdi32 t2embed
diff --git a/dlls/t2embed/tests/t2embed.c b/dlls/t2embed/tests/t2embed.c
index 4ffc3daed12..130b17cd2c3 100644
--- a/dlls/t2embed/tests/t2embed.c
+++ b/dlls/t2embed/tests/t2embed.c
@@ -43,7 +43,7 @@ static int CALLBACK enum_font_proc(ENUMLOGFONTEXA *enumlf, NEWTEXTMETRICEXA *ntm
UINT fsType = otm.otmfsType & 0xf;
ret = TTGetEmbeddingType(hdc, &status);
- ok(ret == E_NONE || ret == E_NOTATRUETYPEFONT, "Unexpected return value %#x.\n", ret);
+ ok(ret == E_NONE || ret == E_NOTATRUETYPEFONT, "Unexpected return value %#lx.\n", ret);
if (ret == E_NONE)
{
@@ -56,7 +56,7 @@ static int CALLBACK enum_font_proc(ENUMLOGFONTEXA *enumlf, NEWTEXTMETRICEXA *ntm
else if (fsType & LICENSE_NOEMBEDDING)
expected = EMBED_NOEMBEDDING;
- ok(expected == status, "%s: status %d, expected %d, fsType %#x\n", enumlf->elfLogFont.lfFaceName, status,
+ ok(expected == status, "%s: status %ld, expected %ld, fsType %#x\n", enumlf->elfLogFont.lfFaceName, status,
expected, otm.otmfsType);
}
}
@@ -64,8 +64,8 @@ static int CALLBACK enum_font_proc(ENUMLOGFONTEXA *enumlf, NEWTEXTMETRICEXA *ntm
{
status = 0xdeadbeef;
ret = TTGetEmbeddingType(hdc, &status);
- ok(ret == E_NOTATRUETYPEFONT, "%s: got %d\n", enumlf->elfLogFont.lfFaceName, ret);
- ok(status == 0xdeadbeef, "%s: got status %d\n", enumlf->elfLogFont.lfFaceName, status);
+ ok(ret == E_NOTATRUETYPEFONT, "%s: got %ld.\n", enumlf->elfLogFont.lfFaceName, ret);
+ ok(status == 0xdeadbeef, "%s: got status %#lx.\n", enumlf->elfLogFont.lfFaceName, status);
}
SelectObject(hdc, old_font);
@@ -84,27 +84,28 @@ static void test_TTGetEmbeddingType(void)
HDC hdc;
ret = TTGetEmbeddingType(NULL, NULL);
- ok(ret == E_HDCINVALID, "got %d\n", ret);
+ ok(ret == E_HDCINVALID, "Unexpected retval %#lx.\n", ret);
status = 0xdeadbeef;
ret = TTGetEmbeddingType(NULL, &status);
- ok(ret == E_HDCINVALID, "got %#x\n", ret);
- ok(status == 0xdeadbeef, "got %u\n", status);
+ ok(ret == E_HDCINVALID, "Unexpected retval %#lx.\n", ret);
+ ok(status == 0xdeadbeef, "Unexpected status %#lx.\n", status);
status = 0xdeadbeef;
ret = TTGetEmbeddingType((HDC)0xdeadbeef, &status);
- ok(ret == E_NOTATRUETYPEFONT || broken(ret == E_ERRORACCESSINGFONTDATA) /* xp, vista */, "got %#x\n", ret);
- ok(status == 0xdeadbeef, "got %u\n", status);
+ ok(ret == E_NOTATRUETYPEFONT || broken(ret == E_ERRORACCESSINGFONTDATA) /* xp, vista */,
+ "Unexpected retval %#lx.\n", ret);
+ ok(status == 0xdeadbeef, "Unexpected status %#lx.\n", status);
hdc = CreateCompatibleDC(0);
ret = TTGetEmbeddingType(hdc, NULL);
- ok(ret == E_NOTATRUETYPEFONT, "got %#x\n", ret);
+ ok(ret == E_NOTATRUETYPEFONT, "Unexpected retval %#lx.\n", ret);
status = 0xdeadbeef;
ret = TTGetEmbeddingType(hdc, &status);
- ok(ret == E_NOTATRUETYPEFONT, "got %#x\n", ret);
- ok(status == 0xdeadbeef, "got %u\n", status);
+ ok(ret == E_NOTATRUETYPEFONT, "Unexpected retval %#lx.\n", ret);
+ ok(status == 0xdeadbeef, "Unexpected status %#lx.\n", status);
memset(&logfont, 0, sizeof(logfont));
logfont.lfHeight = 12;
@@ -117,11 +118,11 @@ static void test_TTGetEmbeddingType(void)
status = 0;
ret = TTGetEmbeddingType(hdc, &status);
- ok(ret == E_NONE, "got %#x\n", ret);
- ok(status != 0, "got %u\n", status);
+ ok(ret == E_NONE, "Unexpected retval %#lx.\n", ret);
+ ok(status != 0, "Unexpected status %lu.\n", status);
ret = TTGetEmbeddingType(hdc, NULL);
- ok(ret == E_PERMISSIONSINVALID, "got %#x\n", ret);
+ ok(ret == E_PERMISSIONSINVALID, "Unexpected retval %#lx.\n", ret);
SelectObject(hdc, old_font);
DeleteObject(hfont);
@@ -140,36 +141,37 @@ static void test_TTIsEmbeddingEnabledForFacename(void)
LONG ret;
ret = TTIsEmbeddingEnabledForFacename(NULL, NULL);
- ok(ret == E_FACENAMEINVALID, "got %#x\n", ret);
+ ok(ret == E_FACENAMEINVALID, "Unexpected retval %#lx.\n", ret);
status = 123;
ret = TTIsEmbeddingEnabledForFacename(NULL, &status);
- ok(ret == E_FACENAMEINVALID, "got %#x\n", ret);
+ ok(ret == E_FACENAMEINVALID, "Unexpected retval %#lx.\n", ret);
ok(status == 123, "got %d\n", status);
ret = TTIsEmbeddingEnabledForFacename("Arial", NULL);
- ok(ret == E_PBENABLEDINVALID, "got %#x\n", ret);
+ ok(ret == E_PBENABLEDINVALID, "Unexpected retval %#lx.\n", ret);
status = 123;
ret = TTIsEmbeddingEnabledForFacename("Arial", &status);
- ok(ret == E_NONE, "got %#x\n", ret);
+ ok(ret == E_NONE, "Unexpected retval %#lx.\n", ret);
ok(status != 123, "got %d\n", status);
}
static void test_TTIsEmbeddingEnabled(void)
{
HFONT old_font, hfont;
- LONG ret, status;
LOGFONTA logfont;
+ BOOL status;
+ LONG ret;
HDC hdc;
ret = TTIsEmbeddingEnabled(NULL, NULL);
- ok(ret == E_HDCINVALID, "got %#x\n", ret);
+ ok(ret == E_HDCINVALID, "Unexpected retval %#lx.\n", ret);
status = 123;
ret = TTIsEmbeddingEnabled(NULL, &status);
- ok(ret == E_HDCINVALID, "got %#x\n", ret);
- ok(status == 123, "got %d\n", status);
+ ok(ret == E_HDCINVALID, "Unexpected retval %#lx.\n", ret);
+ ok(status != 123, "Unexpected status %d.\n", status);
hdc = CreateCompatibleDC(0);
@@ -183,12 +185,12 @@ static void test_TTIsEmbeddingEnabled(void)
old_font = SelectObject(hdc, hfont);
ret = TTIsEmbeddingEnabled(hdc, NULL);
- ok(ret == E_PBENABLEDINVALID, "Unexpected return value %#x.\n", ret);
+ ok(ret == E_PBENABLEDINVALID, "Unexpected retval %#lx.\n", ret);
status = 123;
ret = TTIsEmbeddingEnabled(hdc, &status);
- ok(ret == E_NONE, "got %#x\n", ret);
- ok(status != 123, "got %u\n", status);
+ ok(ret == E_NONE, "Unexpected retval %#lx.\n", ret);
+ ok(status != 123, "Unexpected status %d.\n", status);
SelectObject(hdc, old_font);
DeleteObject(hfont);
--
2.34.1
2
1
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
dlls/dxva2/tests/Makefile.in | 1 -
dlls/dxva2/tests/dxva2.c | 182 +++++++++++++++++------------------
2 files changed, 91 insertions(+), 92 deletions(-)
diff --git a/dlls/dxva2/tests/Makefile.in b/dlls/dxva2/tests/Makefile.in
index 03e8afa3191..ccd03940a24 100644
--- a/dlls/dxva2/tests/Makefile.in
+++ b/dlls/dxva2/tests/Makefile.in
@@ -1,4 +1,3 @@
-EXTRADEFS = -DWINE_NO_LONG_TYPES
TESTDLL = dxva2.dll
IMPORTS = dxva2 user32 d3d9 ole32
diff --git a/dlls/dxva2/tests/dxva2.c b/dlls/dxva2/tests/dxva2.c
index d94299f0c78..cc5bc3cd76f 100644
--- a/dlls/dxva2/tests/dxva2.c
+++ b/dlls/dxva2/tests/dxva2.c
@@ -66,14 +66,14 @@ static void test_surface_desc(IDirect3DSurface9 *surface)
HRESULT hr;
hr = IDirect3DSurface9_GetDesc(surface, &desc);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(desc.Format == D3DFMT_X8R8G8B8, "Unexpected format %d.\n", desc.Format);
ok(desc.Type == D3DRTYPE_SURFACE, "Unexpected type %d.\n", desc.Type);
- ok(desc.Usage == 0, "Unexpected usage %d.\n", desc.Usage);
+ ok(!desc.Usage, "Unexpected usage %ld.\n", desc.Usage);
ok(desc.Pool == D3DPOOL_DEFAULT, "Unexpected pool %d.\n", desc.Pool);
ok(desc.MultiSampleType == D3DMULTISAMPLE_NONE, "Unexpected multisample type %d.\n", desc.MultiSampleType);
- ok(desc.MultiSampleQuality == 0, "Unexpected multisample quality %d.\n", desc.MultiSampleQuality);
+ ok(!desc.MultiSampleQuality, "Unexpected multisample quality %ld.\n", desc.MultiSampleQuality);
ok(desc.Width == 64, "Unexpected width %u.\n", desc.Width);
ok(desc.Height == 64, "Unexpected height %u.\n", desc.Height);
}
@@ -134,31 +134,31 @@ static void test_device_manager(void)
}
hr = DXVA2CreateDirect3DDeviceManager9(&token, &manager);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle);
- ok(hr == DXVA2_E_NOT_INITIALIZED, "Unexpected hr %#x.\n", hr);
+ ok(hr == DXVA2_E_NOT_INITIALIZED, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_LockDevice(manager, 0, &device2, FALSE);
- ok(hr == DXVA2_E_NOT_INITIALIZED, "Unexpected hr %#x.\n", hr);
+ ok(hr == DXVA2_E_NOT_INITIALIZED, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, 0);
- ok(hr == E_HANDLE, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_HANDLE, "Unexpected hr %#lx.\n", hr);
/* Invalid token. */
hr = IDirect3DDeviceManager9_ResetDevice(manager, device, token + 1);
- ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_ResetDevice(manager, device, token);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
refcount = get_refcount(device);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, 0);
- ok(hr == E_HANDLE, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_HANDLE, "Unexpected hr %#lx.\n", hr);
handle1 = NULL;
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle1);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!!handle1, "Unexpected handle value.\n");
refcount2 = get_refcount(device);
@@ -166,172 +166,172 @@ static void test_device_manager(void)
handle = NULL;
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(handle != handle1, "Unexpected handle.\n");
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* Already closed. */
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle);
- ok(hr == E_HANDLE, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_HANDLE, "Unexpected hr %#lx.\n", hr);
handle = NULL;
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle1);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_TestDevice(manager, handle1);
- ok(hr == E_HANDLE, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_HANDLE, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_TestDevice(manager, 0);
- ok(hr == E_HANDLE, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_HANDLE, "Unexpected hr %#lx.\n", hr);
handle = NULL;
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
handle1 = NULL;
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle1);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_GetVideoService(manager, handle, &IID_IDirectXVideoProcessorService,
(void **)&processor_service);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IDirectXVideoProcessorService_Release(processor_service);
device2 = create_device(d3d, window);
hr = IDirect3DDeviceManager9_ResetDevice(manager, device2, token);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_GetVideoService(manager, handle, &IID_IDirectXVideoProcessorService,
(void **)&processor_service);
- ok(hr == DXVA2_E_NEW_VIDEO_DEVICE, "Unexpected hr %#x.\n", hr);
+ ok(hr == DXVA2_E_NEW_VIDEO_DEVICE, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_TestDevice(manager, handle);
- ok(hr == DXVA2_E_NEW_VIDEO_DEVICE, "Unexpected hr %#x.\n", hr);
+ ok(hr == DXVA2_E_NEW_VIDEO_DEVICE, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* Lock/Unlock. */
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_LockDevice(manager, handle, &device3, FALSE);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(device2 == device3, "Unexpected device pointer.\n");
IDirect3DDevice9_Release(device3);
hr = IDirect3DDeviceManager9_UnlockDevice(manager, handle, FALSE);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_UnlockDevice(manager, handle, FALSE);
- ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_UnlockDevice(manager, (HANDLE)((ULONG_PTR)handle + 100), FALSE);
- ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* Locked with one handle, unlock with another. */
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle1);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_LockDevice(manager, handle, &device3, FALSE);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(device2 == device3, "Unexpected device pointer.\n");
IDirect3DDevice9_Release(device3);
hr = IDirect3DDeviceManager9_UnlockDevice(manager, handle1, FALSE);
- ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* Closing unlocks the device. */
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_LockDevice(manager, handle1, &device3, FALSE);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(device2 == device3, "Unexpected device pointer.\n");
IDirect3DDevice9_Release(device3);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle1);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* Open two handles. */
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle1);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_LockDevice(manager, handle, &device3, FALSE);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(device2 == device3, "Unexpected device pointer.\n");
IDirect3DDevice9_Release(device3);
hr = IDirect3DDeviceManager9_LockDevice(manager, handle1, &device3, FALSE);
- ok(hr == DXVA2_E_VIDEO_DEVICE_LOCKED, "Unexpected hr %#x.\n", hr);
+ ok(hr == DXVA2_E_VIDEO_DEVICE_LOCKED, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle1);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* State saving function. */
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_LockDevice(manager, handle, &device3, FALSE);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(device2 == device3, "Unexpected device pointer.\n");
SetRect(&rect, 50, 60, 70, 80);
hr = IDirect3DDevice9_SetScissorRect(device3, &rect);
- ok(SUCCEEDED(hr), "Failed to set scissor rect, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_UnlockDevice(manager, handle, TRUE);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SetRect(&rect, 30, 60, 70, 80);
hr = IDirect3DDevice9_SetScissorRect(device3, &rect);
- ok(SUCCEEDED(hr), "Failed to set scissor rect, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IDirect3DDevice9_Release(device3);
hr = IDirect3DDeviceManager9_LockDevice(manager, handle, &device3, FALSE);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(device2 == device3, "Unexpected device pointer.\n");
hr = IDirect3DDevice9_GetScissorRect(device3, &rect);
- ok(SUCCEEDED(hr), "Failed to get scissor rect, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(rect.left == 50 && rect.top == 60 && rect.right == 70 && rect.bottom == 80,
"Got unexpected scissor rect %s.\n", wine_dbgstr_rect(&rect));
IDirect3DDevice9_Release(device3);
hr = IDirect3DDeviceManager9_UnlockDevice(manager, handle, TRUE);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* Acceleration service. */
hr = DXVA2CreateVideoService(device, &IID_IDirectXVideoAccelerationService, (void **)&accel_service);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
surfaces[0] = surfaces[1] = NULL;
hr = IDirectXVideoAccelerationService_CreateSurface(accel_service, 64, 64, 0, D3DFMT_X8R8G8B8,
D3DPOOL_DEFAULT, 0, DXVA2_VideoProcessorRenderTarget, surfaces, NULL);
- ok(hr == S_OK, "Failed to create a surface, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!!surfaces[0] && !surfaces[1], "Unexpected surfaces.\n");
IDirect3DSurface9_Release(surfaces[0]);
hr = IDirectXVideoAccelerationService_CreateSurface(accel_service, 64, 64, 1, D3DFMT_X8R8G8B8,
D3DPOOL_DEFAULT, 0, DXVA2_VideoProcessorRenderTarget, surfaces, NULL);
- ok(hr == S_OK, "Failed to create a surface, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!!surfaces[0] && !!surfaces[1], "Unexpected surfaces.\n");
test_surface_desc(surfaces[0]);
IDirect3DSurface9_Release(surfaces[0]);
@@ -341,12 +341,12 @@ static void test_device_manager(void)
/* RT formats. */
hr = DXVA2CreateVideoService(device, &IID_IDirectXVideoProcessorService, (void **)&proc_service);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
init_video_desc(&video_desc, D3DFMT_A8R8G8B8);
hr = IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids(proc_service, &video_desc, &count, &guids);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(count, "Unexpected format count %u.\n", count);
CoTaskMemFree(guids);
@@ -357,7 +357,7 @@ static void test_device_manager(void)
count = 0;
hr = IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids(proc_service, &video_desc, &count, &guids);
todo_wine_if(rt_formats[i] == MAKEFOURCC('A','Y','U','V'))
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (FAILED(hr)) continue;
ok(count > 0, "Unexpected device count.\n");
CoTaskMemFree(guids);
@@ -365,7 +365,7 @@ static void test_device_manager(void)
count = 0;
hr = IDirectXVideoProcessorService_GetVideoProcessorRenderTargets(proc_service, &DXVA2_VideoProcSoftwareDevice,
&video_desc, &count, &formats);
- ok(hr == S_OK, "Unexpected hr %#x, format %d.\n", hr, rt_formats[i]);
+ ok(hr == S_OK, "Unexpected hr %#lx, format %d.\n", hr, rt_formats[i]);
ok(count == 2, "Unexpected format count %u.\n", count);
if (count == 2)
ok(formats[0] == D3DFMT_X8R8G8B8 && formats[1] == D3DFMT_A8R8G8B8, "Unexpected formats %d,%d.\n",
@@ -379,27 +379,27 @@ static void test_device_manager(void)
hr = IDirectXVideoProcessorService_GetVideoProcessorRenderTargets(proc_service, &DXVA2_VideoProcSoftwareDevice,
&video_desc, &count, &formats);
- ok(hr == E_FAIL, "Unexpected hr %#x, format %d.\n", hr, rt_unsupported_formats[i]);
+ ok(hr == E_FAIL, "Unexpected hr %#lx, format %d.\n", hr, rt_unsupported_formats[i]);
}
IDirectXVideoProcessorService_Release(proc_service);
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_GetVideoService(manager, handle, &IID_IDirectXVideoAccelerationService,
(void **)&accel_service);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirectXVideoAccelerationService_CreateSurface(accel_service, 64, 64, 0, D3DFMT_X8R8G8B8,
D3DPOOL_DEFAULT, 0, DXVA2_VideoProcessorRenderTarget, surfaces, NULL);
- ok(hr == S_OK, "Failed to create a surface, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DSurface9_GetDevice(surfaces[0], &device3);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(device2 == device3, "Unexpected device.\n");
IDirect3DDevice9_Release(device3);
@@ -443,24 +443,24 @@ static void test_video_processor(void)
}
hr = DXVA2CreateDirect3DDeviceManager9(&token, &manager);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_ResetDevice(manager, device, token);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
handle = NULL;
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
handle1 = NULL;
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle1);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(get_refcount(manager) == 1, "Unexpected refcount %u.\n", get_refcount(manager));
hr = IDirect3DDeviceManager9_GetVideoService(manager, handle, &IID_IDirectXVideoProcessorService,
(void **)&service);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
memset(&video_desc, 0, sizeof(video_desc));
video_desc.SampleWidth = 64;
@@ -470,24 +470,24 @@ static void test_video_processor(void)
/* Number of substreams does not include reference stream. */
hr = IDirectXVideoProcessorService_CreateVideoProcessor(service, &DXVA2_VideoProcSoftwareDevice, &video_desc,
D3DFMT_A8R8G8B8, 16, &processor);
- ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IDirectXVideoProcessorService_CreateVideoProcessor(service, &DXVA2_VideoProcSoftwareDevice, &video_desc,
D3DFMT_A8R8G8B8, 15, &processor);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IDirectXVideoProcessor_Release(processor);
hr = IDirectXVideoProcessorService_CreateVideoProcessor(service, &DXVA2_VideoProcSoftwareDevice, &video_desc,
D3DFMT_A8R8G8B8, 0, &processor);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IDirectXVideoProcessor_Release(processor);
hr = IDirectXVideoProcessorService_CreateVideoProcessor(service, &DXVA2_VideoProcSoftwareDevice, &video_desc,
D3DFMT_A8R8G8B8, 1, &processor);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirectXVideoProcessor_GetVideoProcessorCaps(processor, &caps);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(caps.DeviceCaps == DXVA2_VPDev_SoftwareDevice, "Unexpected device type %#x.\n", caps.DeviceCaps);
ok(caps.InputPool == D3DPOOL_SYSTEMMEM, "Unexpected input pool %#x.\n", caps.InputPool);
ok(!caps.NumForwardRefSamples, "Unexpected sample count.\n");
@@ -507,18 +507,18 @@ static void test_video_processor(void)
hr = IDirectXVideoProcessorService_CreateVideoProcessor(service, &DXVA2_VideoProcSoftwareDevice, &video_desc,
D3DFMT_A8R8G8B8, 1, &processor2);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(processor2 != processor, "Unexpected instance.\n");
hr = IDirectXVideoProcessor_GetCreationParameters(processor, NULL, NULL, NULL, NULL);
- ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IDirectXVideoProcessor_GetCreationParameters(processor, &guid, NULL, NULL, NULL);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(IsEqualGUID(&guid, &DXVA2_VideoProcSoftwareDevice), "Unexpected device guid.\n");
hr = IDirectXVideoProcessor_GetCreationParameters(processor, NULL, NULL, &format, NULL);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(format == D3DFMT_A8R8G8B8, "Unexpected format %u.\n", format);
IDirectXVideoProcessor_Release(processor);
@@ -526,17 +526,17 @@ static void test_video_processor(void)
hr = IDirect3DDeviceManager9_GetVideoService(manager, handle, &IID_IDirectXVideoProcessorService,
(void **)&service2);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(service == service2, "Unexpected pointer.\n");
IDirectXVideoProcessorService_Release(service2);
IDirectXVideoProcessorService_Release(service);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle1);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IDirect3DDevice9_Release(device);
IDirect3DDeviceManager9_Release(manager);
@@ -597,18 +597,18 @@ static void test_progressive_device(void)
}
hr = DXVA2CreateDirect3DDeviceManager9(&token, &manager);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_ResetDevice(manager, device, token);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
handle = NULL;
hr = IDirect3DDeviceManager9_OpenDeviceHandle(manager, &handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DDeviceManager9_GetVideoService(manager, handle, &IID_IDirectXVideoProcessorService,
(void **)&service);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
memset(&video_desc, 0, sizeof(video_desc));
video_desc.SampleWidth = 64;
@@ -631,7 +631,7 @@ static void test_progressive_device(void)
/* Check that progressive device is returned for given input format. */
count = 0;
hr = IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids(service, &video_desc, &count, &guids);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(count > 0, "Unexpected device count.\n");
for (j = 0; j < count; ++j)
{
@@ -643,7 +643,7 @@ static void test_progressive_device(void)
count = 0;
hr = IDirectXVideoProcessorService_GetVideoProcessorRenderTargets(service, &DXVA2_VideoProcProgressiveDevice,
&video_desc, &count, &rt_formats);
- ok(hr == S_OK, "Unexpected hr %#x, format %d.\n", hr, input_formats[i]);
+ ok(hr == S_OK, "Unexpected hr %#lx, format %d.\n", hr, input_formats[i]);
ok(count > 0, "Unexpected format count %u.\n", count);
for (j = 0; j < count; ++j)
{
@@ -660,10 +660,10 @@ static void test_progressive_device(void)
hr = IDirectXVideoProcessorService_CreateVideoProcessor(service, &DXVA2_VideoProcProgressiveDevice, &video_desc,
D3DFMT_A8R8G8B8, 0, &processor);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirectXVideoProcessor_GetVideoProcessorCaps(processor, &caps);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(caps.DeviceCaps == DXVA2_VPDev_HardwareDevice, "Unexpected device type %#x.\n", caps.DeviceCaps);
ok(!caps.NumForwardRefSamples, "Unexpected sample count.\n");
ok(!caps.NumBackwardRefSamples, "Unexpected sample count.\n");
@@ -672,7 +672,7 @@ static void test_progressive_device(void)
caps.VideoProcessorOperations);
hr = IDirectXVideoProcessor_GetCreationParameters(processor, &guid, NULL, &format, NULL);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(IsEqualGUID(&guid, &DXVA2_VideoProcProgressiveDevice), "Unexpected device guid.\n");
ok(format == D3DFMT_A8R8G8B8, "Unexpected format %u.\n", format);
@@ -682,7 +682,7 @@ unsupported:
IDirectXVideoProcessorService_Release(service);
hr = IDirect3DDeviceManager9_CloseDeviceHandle(manager, handle);
- ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IDirect3DDevice9_Release(device);
IDirect3DDeviceManager9_Release(manager);
--
2.34.1
1
0
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
dlls/shcore/tests/Makefile.in | 1 -
dlls/shcore/tests/shcore.c | 136 +++++++++++++++++-----------------
2 files changed, 68 insertions(+), 69 deletions(-)
diff --git a/dlls/shcore/tests/Makefile.in b/dlls/shcore/tests/Makefile.in
index f20c27aae2d..4f537fa3874 100644
--- a/dlls/shcore/tests/Makefile.in
+++ b/dlls/shcore/tests/Makefile.in
@@ -1,4 +1,3 @@
-EXTRADEFS = -DWINE_NO_LONG_TYPES
TESTDLL = shcore.dll
IMPORTS = advapi32
diff --git a/dlls/shcore/tests/shcore.c b/dlls/shcore/tests/shcore.c
index a75bfd899eb..af6b3b392f3 100644
--- a/dlls/shcore/tests/shcore.c
+++ b/dlls/shcore/tests/shcore.c
@@ -138,30 +138,30 @@ static void test_process_reference(void)
obj = (void *)0xdeadbeef;
hr = pGetProcessReference(&obj);
- ok(hr == E_FAIL, "Unexpected hr %#x.\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(obj == NULL, "Unexpected pointer.\n");
test_unk_init(&test_unk);
test_unk_init(&test_unk2);
pSetProcessReference(&test_unk.IUnknown_iface);
- ok(test_unk.refcount == 1, "Unexpected refcount %u.\n", test_unk.refcount);
+ ok(test_unk.refcount == 1, "Unexpected refcount %lu.\n", test_unk.refcount);
pSetProcessReference(&test_unk2.IUnknown_iface);
- ok(test_unk.refcount == 1, "Unexpected refcount %u.\n", test_unk.refcount);
- ok(test_unk2.refcount == 1, "Unexpected refcount %u.\n", test_unk2.refcount);
+ ok(test_unk.refcount == 1, "Unexpected refcount %lu.\n", test_unk.refcount);
+ ok(test_unk2.refcount == 1, "Unexpected refcount %lu.\n", test_unk2.refcount);
hr = pGetProcessReference(&obj);
- ok(hr == S_OK, "Failed to get reference, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to get reference, hr %#lx.\n", hr);
ok(obj == &test_unk2.IUnknown_iface, "Unexpected pointer.\n");
- ok(test_unk2.refcount == 2, "Unexpected refcount %u.\n", test_unk2.refcount);
+ ok(test_unk2.refcount == 2, "Unexpected refcount %lu.\n", test_unk2.refcount);
hmod = LoadLibraryA("shell32.dll");
pSHGetInstanceExplorer = (void *)GetProcAddress(hmod, "SHGetInstanceExplorer");
hr = pSHGetInstanceExplorer(&obj);
- ok(hr == S_OK, "Failed to get reference, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to get reference, hr %#lx.\n", hr);
ok(obj == &test_unk2.IUnknown_iface, "Unexpected pointer.\n");
- ok(test_unk2.refcount == 3, "Unexpected refcount %u.\n", test_unk2.refcount);
+ ok(test_unk2.refcount == 3, "Unexpected refcount %lu.\n", test_unk2.refcount);
}
static void test_SHUnicodeToAnsi(void)
@@ -334,7 +334,7 @@ static void test_SHRegDuplicateHKey(void)
DWORD ret;
ret = RegCreateKeyA(HKEY_CURRENT_USER, "Software\\Wine\\Test", &hkey);
- ok(!ret, "Failed to create test key, ret %d.\n", ret);
+ ok(!ret, "Failed to create test key, ret %ld.\n", ret);
hkey2 = pSHRegDuplicateHKey(hkey);
ok(hkey2 != NULL && hkey2 != hkey, "Unexpected duplicate key.\n");
@@ -351,20 +351,20 @@ static void test_SHDeleteKey(void)
DWORD ret;
ret = RegCreateKeyA(HKEY_CURRENT_USER, "Software\\Wine\\Test", &hkey);
- ok(!ret, "Failed to create test key, %d.\n", ret);
+ ok(!ret, "Failed to create test key, %ld.\n", ret);
ret = RegCreateKeyA(hkey, "delete_key", &hkey2);
- ok(!ret, "Failed to create test key, %d.\n", ret);
+ ok(!ret, "Failed to create test key, %ld.\n", ret);
RegCloseKey(hkey2);
ret = RegDeleteKeyA(HKEY_CURRENT_USER, "Software\\Wine\\Test");
- ok(ret == ERROR_ACCESS_DENIED, "Unexpected return value %d.\n", ret);
+ ok(ret == ERROR_ACCESS_DENIED, "Unexpected return value %ld.\n", ret);
ret = pSHDeleteKeyA(HKEY_CURRENT_USER, "Software\\Wine\\Test");
- ok(!ret, "Failed to delete a key, %d.\n", ret);
+ ok(!ret, "Unexpected retval %lu.\n", ret);
ret = RegCloseKey(hkey);
- ok(!ret, "Failed to delete a key, %d.\n", ret);
+ ok(!ret, "Unexpected retval %lu.\n", ret);
}
static HKEY create_test_entries(void)
@@ -377,7 +377,7 @@ static HKEY create_test_entries(void)
SetEnvironmentVariableA("FOO", test_envvar2);
ret = RegCreateKeyA(HKEY_CURRENT_USER, REG_TEST_KEY, &hKey);
- ok(!ret, "RegCreateKeyA failed, ret=%u\n", ret);
+ ok(!ret, "Unexpected retval %lu.\n", ret);
if (hKey)
{
@@ -431,18 +431,18 @@ static void test_SHGetValue(void)
size = MAX_PATH;
type = -1;
ret = pSHGetValueA(HKEY_CURRENT_USER, REG_TEST_KEY, "Test1", &type, buf, &size);
- ok(!ret, "Failed to get value, ret %u.\n", ret);
+ ok(!ret, "Failed to get value, ret %lu.\n", ret);
ok(!strcmp(test_exp_path1, buf), "Unexpected value %s.\n", buf);
- ok(type == REG_SZ, "Unexpected value type %d.\n", type);
+ ok(type == REG_SZ, "Unexpected type %ld.\n", type);
strcpy(buf, initial_buffer);
size = MAX_PATH;
type = -1;
ret = pSHGetValueA(HKEY_CURRENT_USER, REG_TEST_KEY, "Test2", &type, buf, &size);
- ok(!ret, "Failed to get value, ret %u.\n", ret);
+ ok(!ret, "Failed to get value, ret %lu.\n", ret);
ok(!strcmp(test_path1, buf), "Unexpected value %s.\n", buf);
- ok(type == REG_SZ, "Unexpected value type %d.\n", type);
+ ok(type == REG_SZ, "Unexpected type %ld.\n", type);
delete_key(hkey, "Software\\Wine", "Test");
}
@@ -457,31 +457,31 @@ static void test_SHRegGetValue(void)
size = MAX_PATH;
ret = pSHRegGetValueA(HKEY_CURRENT_USER, REG_TEST_KEY, "Test1", SRRF_RT_REG_EXPAND_SZ, &type, data, &size);
- ok(ret == ERROR_INVALID_PARAMETER, "SHRegGetValue failed, ret=%u\n", ret);
+ ok(ret == ERROR_INVALID_PARAMETER, "Unexpected retval %lu.\n", ret);
size = MAX_PATH;
ret = pSHRegGetValueA(HKEY_CURRENT_USER, REG_TEST_KEY, "Test1", SRRF_RT_REG_SZ, &type, data, &size);
- ok(ret == ERROR_SUCCESS, "SHRegGetValue failed, ret=%u\n", ret);
+ ok(!ret, "Unexpected retval %lu.\n", ret);
ok(!strcmp(data, test_exp_path1), "data = %s, expected %s\n", data, test_exp_path1);
- ok(type == REG_SZ, "type = %d, expected REG_SZ\n", type);
+ ok(type == REG_SZ, "Unexpected type %ld.\n", type);
size = MAX_PATH;
ret = pSHRegGetValueA(HKEY_CURRENT_USER, REG_TEST_KEY, "Test1", SRRF_RT_REG_DWORD, &type, data, &size);
- ok(ret == ERROR_UNSUPPORTED_TYPE, "SHRegGetValue failed, ret=%u\n", ret);
+ ok(ret == ERROR_UNSUPPORTED_TYPE, "Unexpected retval %lu.\n", ret);
size = MAX_PATH;
ret = pSHRegGetValueA(HKEY_CURRENT_USER, REG_TEST_KEY, "Test2", SRRF_RT_REG_EXPAND_SZ, &type, data, &size);
- ok(ret == ERROR_INVALID_PARAMETER, "SHRegGetValue failed, ret=%u\n", ret);
+ ok(ret == ERROR_INVALID_PARAMETER, "Unexpected retval %lu.\n", ret);
size = MAX_PATH;
ret = pSHRegGetValueA(HKEY_CURRENT_USER, REG_TEST_KEY, "Test2", SRRF_RT_REG_SZ, &type, data, &size);
- ok(ret == ERROR_SUCCESS, "SHRegGetValue failed, ret=%u\n", ret);
+ ok(!ret, "Unexpected retval %lu.\n", ret);
ok(!strcmp(data, test_path1), "data = %s, expected %s\n", data, test_path1);
- ok(type == REG_SZ, "type = %d, expected REG_SZ\n", type);
+ ok(type == REG_SZ, "Unexpected type %ld.\n", type);
size = MAX_PATH;
ret = pSHRegGetValueA(HKEY_CURRENT_USER, REG_TEST_KEY, "Test2", SRRF_RT_REG_QWORD, &type, data, &size);
- ok(ret == ERROR_UNSUPPORTED_TYPE, "SHRegGetValue failed, ret=%u\n", ret);
+ ok(ret == ERROR_UNSUPPORTED_TYPE, "Unexpected retval %lu.\n", ret);
delete_key(hkey, "Software\\Wine", "Test");
}
@@ -496,7 +496,7 @@ static void test_SHQueryValueEx(void)
testkey = create_test_entries();
ret = RegOpenKeyExA(HKEY_CURRENT_USER, REG_TEST_KEY, 0, KEY_QUERY_VALUE, &hKey);
- ok(!ret, "Failed to open a key, ret %u.\n", ret);
+ ok(!ret, "Failed to open a key, ret %lu.\n", ret);
/****** SHQueryValueExA ******/
@@ -507,28 +507,28 @@ static void test_SHQueryValueEx(void)
* Case 1.1 All arguments are NULL
*/
ret = pSHQueryValueExA( hKey, "Test1", NULL, NULL, NULL, NULL);
- ok(!ret, "Failed to query value, ret %u.\n", ret);
+ ok(!ret, "Failed to query value, ret %lu.\n", ret);
/*
* Case 1.2 dwType is set
*/
type = -1;
ret = pSHQueryValueExA( hKey, "Test1", NULL, &type, NULL, NULL);
- ok(!ret, "Failed to query value, ret %u.\n", ret);
- ok(type == REG_SZ, "Expected REG_SZ, got (%u)\n", type);
+ ok(!ret, "Failed to query value, ret %lu.\n", ret);
+ ok(type == REG_SZ, "Unexpected type %ld.\n", type);
size = 6;
ret = pSHQueryValueExA( hKey, "Test1", NULL, NULL, NULL, &size);
- ok(!ret, "Failed to query value, ret %u.\n", ret);
- ok(size == buffer_len1, "Buffer sizes (%u) and (%u) are not equal\n", size, buffer_len1);
+ ok(!ret, "Failed to query value, ret %lu.\n", ret);
+ ok(size == buffer_len1, "Buffer sizes %lu and %lu are not equal\n", size, buffer_len1);
/*
* Expanded > unexpanded
*/
size = 6;
ret = pSHQueryValueExA( hKey, "Test3", NULL, NULL, NULL, &size);
- ok(!ret, "Failed to query value, ret %u.\n", ret);
- ok(size >= buffer_len2, "Buffer size (%u) should be >= (%u)\n", size, buffer_len2);
+ ok(!ret, "Failed to query value, ret %lu.\n", ret);
+ ok(size >= buffer_len2, "Buffer size %lu should be >= %lu.\n", size, buffer_len2);
/*
* Case 1 string shrinks during expanding
@@ -537,10 +537,10 @@ static void test_SHQueryValueEx(void)
size = 6;
type = -1;
ret = pSHQueryValueExA( hKey, "Test1", NULL, &type, buf, &size);
- ok(ret == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got (%u)\n", ret);
+ ok(ret == ERROR_MORE_DATA, "Unexpected retval %ld.\n", ret);
ok(!strcmp(initial_buffer, buf), "Comparing (%s) with (%s) failed\n", buf, initial_buffer);
- ok(size == buffer_len1, "Buffer sizes (%u) and (%u) are not equal\n", size, buffer_len1);
- ok(type == REG_SZ, "Expected REG_SZ, got (%u)\n", type);
+ ok(size == buffer_len1, "Buffer sizes %lu and %lu are not equal\n", size, buffer_len1);
+ ok(type == REG_SZ, "Unexpected type %ld.\n", type);
/*
* string grows during expanding
@@ -550,10 +550,10 @@ static void test_SHQueryValueEx(void)
size = 6;
type = -1;
ret = pSHQueryValueExA( hKey, "Test3", NULL, &type, buf, &size);
- ok(ret == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got (%u)\n", ret);
+ ok(ret == ERROR_MORE_DATA, "Unexpected retval %ld.\n", ret);
ok(!strcmp(initial_buffer, buf), "Comparing (%s) with (%s) failed\n", buf, initial_buffer);
- ok(size >= buffer_len2, "Buffer size (%u) should be >= (%u)\n", size, buffer_len2);
- ok(type == REG_SZ, "Expected REG_SZ, got (%u)\n", type);
+ ok(size >= buffer_len2, "Buffer size %lu should be >= %lu.\n", size, buffer_len2);
+ ok(type == REG_SZ, "Unexpected type %ld.\n", type);
/*
* string grows during expanding
@@ -565,15 +565,15 @@ static void test_SHQueryValueEx(void)
size = strlen(test_envvar2) - 2;
type = -1;
ret = pSHQueryValueExA(hKey, "Test3", NULL, &type, buf, &size);
- ok(ret == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got (%u)\n", ret);
+ ok(ret == ERROR_MORE_DATA, "Unexpected retval %ld.\n", ret);
todo_wine
{
ok(!strcmp("", buf), "Unexpanded string %s.\n", buf);
}
- ok(size >= buffer_len2, "Buffer size (%u) should be >= (%u)\n", size, buffer_len2);
- ok(type == REG_SZ, "Expected REG_SZ, got (%u)\n", type);
+ ok(size >= buffer_len2, "Buffer size %lu should be >= %lu.\n", size, buffer_len2);
+ ok(type == REG_SZ, "Unexpected type %ld.\n", type);
/*
* string grows during expanding
@@ -585,7 +585,7 @@ static void test_SHQueryValueEx(void)
size = exp_len2 - 4;
type = -1;
ret = pSHQueryValueExA( hKey, "Test3", NULL, &type, buf, &size);
- ok(ret == ERROR_MORE_DATA, "Expected ERROR_MORE_DATA, got (%u)\n", ret);
+ ok(ret == ERROR_MORE_DATA, "Unexpected retval %ld.\n", ret);
todo_wine
{
@@ -593,8 +593,8 @@ static void test_SHQueryValueEx(void)
"Expected empty or first part of the string \"%s\", got \"%s\"\n", test_envvar2, buf);
}
- ok(size >= buffer_len2, "Buffer size (%u) should be >= (%u)\n", size, buffer_len2);
- ok(type == REG_SZ, "Expected REG_SZ, got (%u)\n", type);
+ ok(size >= buffer_len2, "Buffer size %lu should be >= %lu.\n", size, buffer_len2);
+ ok(type == REG_SZ, "Unexpected type %ld.\n", type);
/*
* The buffer is NULL but the size is set
@@ -603,9 +603,9 @@ static void test_SHQueryValueEx(void)
size = 6;
type = -1;
ret = pSHQueryValueExA( hKey, "Test3", NULL, &type, NULL, &size);
- ok(!ret, "Failed to query value, ret %u.\n", ret);
- ok(size >= buffer_len2, "Buffer size (%u) should be >= (%u)\n", size, buffer_len2);
- ok(type == REG_SZ, "Expected REG_SZ, got (%u)\n", type);
+ ok(!ret, "Failed to query value, ret %lu.\n", ret);
+ ok(size >= buffer_len2, "Buffer size %lu should be >= %lu.\n", size, buffer_len2);
+ ok(type == REG_SZ, "Unexpected type %ld.\n", type);
RegCloseKey(hKey);
@@ -622,7 +622,7 @@ static void test_SHRegGetPath(void)
strcpy(buf, initial_buffer);
ret = pSHRegGetPathA(HKEY_CURRENT_USER, REG_TEST_KEY, "Test1", buf, 0);
- ok(!ret, "Failed to get path, ret %u.\n", ret);
+ ok(!ret, "Failed to get path, ret %lu.\n", ret);
ok(!strcmp(test_exp_path1, buf), "Unexpected path %s.\n", buf);
delete_key(hkey, "Software\\Wine", "Test");
@@ -645,14 +645,14 @@ static void test_SHCopyKey(void)
hKeyDst = NULL;
ret = RegCreateKeyA(HKEY_CURRENT_USER, REG_TEST_KEY "\\CopyDestination", &hKeyDst);
- ok(!ret, "Failed to create a test key, ret %d.\n", ret);
+ ok(!ret, "Failed to create a test key, ret %ld.\n", ret);
hKeySrc = NULL;
ret = RegOpenKeyA(HKEY_LOCAL_MACHINE, REG_CURRENT_VERSION, &hKeySrc);
- ok(!ret, "Failed to open a test key, ret %d.\n", ret);
+ ok(!ret, "Failed to open a test key, ret %ld.\n", ret);
ret = pSHCopyKeyA(hKeySrc, NULL, hKeyDst, 0);
- ok(!ret, "Copy failed, ret=(%u)\n", ret);
+ ok(!ret, "Copy failed, ret %lu.\n", ret);
RegCloseKey(hKeySrc);
RegCloseKey(hKeyDst);
@@ -660,7 +660,7 @@ static void test_SHCopyKey(void)
/* Check we copied the sub keys, i.e. something that's on every windows system (including Wine) */
hKeyDst = NULL;
ret = RegOpenKeyA(HKEY_CURRENT_USER, REG_TEST_KEY "\\CopyDestination\\Shell Folders", &hKeyDst);
- ok(!ret, "Failed to open a test key, ret %d.\n", ret);
+ ok(!ret, "Failed to open a test key, ret %ld.\n", ret);
/* And the we copied the values too */
ok(!pSHQueryValueExA(hKeyDst, "Common AppData", NULL, NULL, NULL, NULL), "SHQueryValueExA failed\n");
@@ -676,7 +676,7 @@ static void _check_file_size(const CHAR *filename, LONG exp_size, int line)
DWORD file_size = 0xdeadbeef;
handle = CreateFileA(filename, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0);
file_size = GetFileSize(handle, NULL);
- ok_(__FILE__,line)(file_size == exp_size, "got wrong file size: %d.\n", file_size);
+ ok_(__FILE__,line)(file_size == exp_size, "got wrong file size: %ld.\n", file_size);
CloseHandle(handle);
}
@@ -688,11 +688,11 @@ static void _check_stream_size(IStream *obj, LONG exp_size, int line)
HRESULT hr;
stream_size.QuadPart = 0xdeadbeef;
hr = pIStream_Size(obj, &stream_size);
- ok_(__FILE__,line)(hr == S_OK, "IStream_Size failed: 0x%08x.\n", hr);
+ ok_(__FILE__,line)(hr == S_OK, "IStream_Size failed: hr %#lx.\n", hr);
ok_(__FILE__,line)(stream_size.QuadPart == exp_size, "Size(): got wrong size of stream: %s.\n",
wine_dbgstr_longlong(stream_size.QuadPart));
hr = IStream_Stat(obj, &stat, STATFLAG_NONAME);
- ok_(__FILE__,line)(hr == S_OK, "IStream_Stat failed: 0x%08x.\n", hr);
+ ok_(__FILE__,line)(hr == S_OK, "IStream_Stat failed: hr %#lx.\n", hr);
ok_(__FILE__,line)(stat.cbSize.QuadPart == exp_size, "Stat(): got wrong size of stream: %s.\n",
wine_dbgstr_longlong(stat.cbSize.QuadPart));
}
@@ -706,7 +706,7 @@ static void _check_stream_pos(IStream *obj, LONG exp_pos, int line)
move.QuadPart = 0;
pos.QuadPart = 0xdeadbeef;
hr = IStream_Seek(obj, move, STREAM_SEEK_CUR, &pos);
- ok_(__FILE__,line)(hr == S_OK, "IStream_Seek failed: 0x%08x.\n", hr);
+ ok_(__FILE__,line)(hr == S_OK, "IStream_Seek failed: hr %#lx.\n", hr);
ok_(__FILE__,line)(pos.QuadPart == exp_pos, "got wrong position: %s.\n",
wine_dbgstr_longlong(pos.QuadPart));
}
@@ -722,32 +722,32 @@ static void test_stream_size(void)
HRESULT hr;
handle = CreateFileA(filename, GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0);
- ok(handle != INVALID_HANDLE_VALUE, "File creation failed: 0x%08x.\n", GetLastError());
+ ok(handle != INVALID_HANDLE_VALUE, "File creation failed: %lu.\n", GetLastError());
WriteFile(handle, test_data, sizeof(test_data), &written, NULL);
ok(written == sizeof(test_data), "Failed to write data into file.\n");
CloseHandle(handle);
/* in read-only mode, SetSize() will success but it has no effect on Size() and the file */
hr = pSHCreateStreamOnFileA(filename, STGM_FAILIFTHERE|STGM_READ, &stream);
- ok(hr == S_OK, "SHCreateStreamOnFileA failed: 0x%08x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
CHECK_STREAM_SIZE(stream, sizeof(test_data));
stream_size.QuadPart = 0;
hr = IStream_SetSize(stream, stream_size);
- ok(hr == S_OK, "IStream_SetSize failed: 0x%08x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
CHECK_STREAM_SIZE(stream, sizeof(test_data));
CHECK_STREAM_POS(stream, 0);
stream_size.QuadPart = 100;
hr = IStream_SetSize(stream, stream_size);
- ok(hr == S_OK, "IStream_SetSize failed: 0x%08x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
CHECK_STREAM_SIZE(stream, sizeof(test_data));
CHECK_STREAM_POS(stream, 100);
IStream_Release(stream);
CHECK_FILE_SIZE(filename, sizeof(test_data));
hr = pSHCreateStreamOnFileA(filename, STGM_FAILIFTHERE|STGM_WRITE, &stream);
- ok(hr == S_OK, "SHCreateStreamOnFileA failed: 0x%08x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = pSHCreateStreamOnFileA(filename, STGM_FAILIFTHERE|STGM_READ, &stream2);
- ok(hr == S_OK, "SHCreateStreamOnFileA failed: 0x%08x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
CHECK_STREAM_SIZE(stream, sizeof(test_data));
CHECK_STREAM_SIZE(stream2, sizeof(test_data));
CHECK_STREAM_POS(stream, 0);
@@ -755,7 +755,7 @@ static void test_stream_size(void)
stream_size.QuadPart = 0;
hr = IStream_SetSize(stream, stream_size);
- ok(hr == S_OK, "IStream_SetSize failed: 0x%08x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
CHECK_STREAM_SIZE(stream, 0);
CHECK_STREAM_SIZE(stream2, 0);
CHECK_STREAM_POS(stream, 0);
@@ -763,7 +763,7 @@ static void test_stream_size(void)
stream_size.QuadPart = 100;
hr = IStream_SetSize(stream, stream_size);
- ok(hr == S_OK, "IStream_SetSize failed: 0x%08x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
CHECK_STREAM_SIZE(stream, 100);
CHECK_STREAM_SIZE(stream2, 100);
CHECK_STREAM_POS(stream, 0);
@@ -771,7 +771,7 @@ static void test_stream_size(void)
stream_size.QuadPart = 90;
hr = IStream_SetSize(stream2, stream_size);
- ok(hr == S_OK, "IStream_SetSize failed: 0x%08x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
CHECK_STREAM_SIZE(stream, 100);
CHECK_STREAM_SIZE(stream2, 100);
CHECK_STREAM_POS(stream, 0);
--
2.34.1
1
0
[PATCH] user32: Add stubs for RegisterSuspendResumeNotification/UnregisterSuspendResumeNotification.
by Wen Wang 20 Feb '22
by Wen Wang 20 Feb '22
20 Feb '22
These functions are required for some Steam version of The Legend of
Heroes games to launch.
Signed-off-by: Wen Wang <v72807647(a)gmail.com>
---
dlls/user32/misc.c | 19 +++++++++++++++++++
dlls/user32/user32.spec | 2 ++
include/winuser.h | 2 ++
3 files changed, 23 insertions(+)
diff --git a/dlls/user32/misc.c b/dlls/user32/misc.c
index 25d0b676667..e8b63028460 100644
--- a/dlls/user32/misc.c
+++ b/dlls/user32/misc.c
@@ -443,6 +443,25 @@ BOOL WINAPI UnregisterPowerSettingNotification(HPOWERNOTIFY handle)
return TRUE;
}
+/**********************************************************************
+ * RegisterSuspendResumeNotification [USER32.@]
+ */
+HPOWERNOTIFY WINAPI RegisterSuspendResumeNotification(HANDLE recipient, DWORD flags)
+{
+ FIXME("(%p,%x): stub\n", recipient, flags);
+ return (HPOWERNOTIFY)0xdeadbeef;
+}
+
+/**********************************************************************
+ * UnregisterSuspendResumeNotification [USER32.@]
+ */
+BOOL WINAPI UnregisterSuspendResumeNotification(HPOWERNOTIFY handle)
+{
+ FIXME("(%p): stub\n", handle);
+ return TRUE;
+}
+
+
/*****************************************************************************
* GetGestureConfig (USER32.@)
*/
diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec
index 3baa7594e84..432211efb7a 100644
--- a/dlls/user32/user32.spec
+++ b/dlls/user32/user32.spec
@@ -605,6 +605,7 @@
@ stub RegisterNetworkCapabilities
@ stdcall RegisterPointerDeviceNotifications(long long)
@ stdcall RegisterPowerSettingNotification(long ptr long)
+@ stdcall RegisterSuspendResumeNotification(long long)
@ stdcall RegisterRawInputDevices(ptr long long)
@ stdcall RegisterServicesProcess(long)
@ stdcall RegisterShellHookWindow (long)
@@ -783,6 +784,7 @@
@ stdcall UnregisterHotKey(long long) NtUserUnregisterHotKey
# @ stub UnregisterMessagePumpHook
@ stdcall UnregisterPowerSettingNotification(ptr)
+@ stdcall UnregisterSuspendResumeNotification(ptr)
@ stdcall UnregisterTouchWindow(long)
@ stdcall UnregisterUserApiHook()
@ stdcall UpdateLayeredWindow(long long ptr ptr long ptr long ptr long)
diff --git a/include/winuser.h b/include/winuser.h
index 898c9034e33..0197c986033 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -4126,6 +4126,7 @@ WINUSERAPI HDEVNOTIFY WINAPI RegisterDeviceNotificationW(HANDLE,LPVOID,DWORD);
WINUSERAPI BOOL WINAPI RegisterHotKey(HWND,INT,UINT,UINT);
WINUSERAPI BOOL WINAPI RegisterPointerDeviceNotifications(HWND,BOOL);
WINUSERAPI HPOWERNOTIFY WINAPI RegisterPowerSettingNotification(HANDLE,LPCGUID,DWORD);
+WINUSERAPI HPOWERNOTIFY WINAPI RegisterSuspendResumeNotification(HANDLE,DWORD);
WINUSERAPI BOOL WINAPI RegisterRawInputDevices(PRAWINPUTDEVICE,UINT,UINT);
WINUSERAPI BOOL WINAPI RegisterShellHookWindow(HWND);
WINUSERAPI BOOL WINAPI RegisterTouchWindow(HWND,ULONG);
@@ -4300,6 +4301,7 @@ WINUSERAPI BOOL WINAPI UnregisterClassW(LPCWSTR,HINSTANCE);
WINUSERAPI BOOL WINAPI UnregisterDeviceNotification(HDEVNOTIFY);
WINUSERAPI BOOL WINAPI UnregisterHotKey(HWND,INT);
WINUSERAPI BOOL WINAPI UnregisterPowerSettingNotification(HPOWERNOTIFY);
+WINUSERAPI BOOL WINAPI UnregisterSuspendResumeNotification(HPOWERNOTIFY);
WINUSERAPI BOOL WINAPI UnregisterTouchWindow(HWND);
WINUSERAPI BOOL WINAPI UpdateWindow(HWND);
WINUSERAPI BOOL WINAPI UserHandleGrantAccess(HANDLE,HANDLE,BOOL);
--
2.32.0
1
0
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
dlls/mfplat/mfplat_private.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dlls/mfplat/mfplat_private.h b/dlls/mfplat/mfplat_private.h
index dc29545df73..8418c8eb2ef 100644
--- a/dlls/mfplat/mfplat_private.h
+++ b/dlls/mfplat/mfplat_private.h
@@ -133,6 +133,8 @@ static inline const char *debugstr_propvar(const PROPVARIANT *v)
return wine_dbg_sprintf("%p {VT_UI8: %s}", v, wine_dbgstr_longlong(v->uhVal.QuadPart));
case VT_I8:
return wine_dbg_sprintf("%p {VT_I8: %s}", v, wine_dbgstr_longlong(v->hVal.QuadPart));
+ case VT_R4:
+ return wine_dbg_sprintf("%p {VT_R4: %.8e}", v, v->fltVal);
case VT_R8:
return wine_dbg_sprintf("%p {VT_R8: %lf}", v, v->dblVal);
case VT_CLSID:
--
2.34.1
1
0
The first 7 patches have already been sent to wine-devel, but felt into the
void (adding interactive tests framework to cmd, and fixing a couple of
bugs in interactive more handling, including tests). So, resubmitting.
The rest (4) patches implement tab and shift tab completion for filenames
in cmd (trying to mimic native behavior).
NB: I intentionnaly left ioctl 23 unused (as it appears in Roman's patches
about GetConsoleProcessList). Won't resolve the potential merge conflict
though.
A+
---
Eric Pouech (11):
programs/cmd/tests: don't output more data than available
programs/cmd/tests: added ability to run tests in interactive mode
programs/cmd/tests: some interactive test about input echo
programs/cmd/tests: added support for multi-line input
programs/cmd: handle white space only lines within ( ) block
programs/cmd: expand commandline before parsing it (interactive mode)
programs/cmd: detect badly quoted operand in 'if' statement
kernelbase/console, programs/conhost: support CONSOLE_READCONSOLE_CONTROL in ReadConsoleW
dlls/kernelbase, programs/conhost: return key state in ReadConsoleW with completion
programs/cmd: implement filename completion
programs/conhost: handle csi escape sequence for shift tab
dlls/kernelbase/console.c | 36 ++-
include/wine/condrv.h | 1 +
programs/cmd/batch.c | 252 +++++++++++++++++-
programs/cmd/builtins.c | 10 +
programs/cmd/tests/batch.c | 111 ++++++--
programs/cmd/tests/interactive_builtins.cmd | 42 +++
.../cmd/tests/interactive_builtins.cmd.exp | 67 +++++
programs/cmd/tests/rsrc.rc | 10 +
programs/cmd/wcmdmain.c | 34 ++-
programs/conhost/conhost.c | 114 ++++++--
programs/conhost/conhost.h | 2 +
server/console.c | 1 +
12 files changed, 618 insertions(+), 62 deletions(-)
create mode 100644 programs/cmd/tests/interactive_builtins.cmd
create mode 100644 programs/cmd/tests/interactive_builtins.cmd.exp
3
14
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
dlls/scrrun/filesystem.c | 25 +++++++++++--------------
1 file changed, 11 insertions(+), 14 deletions(-)
diff --git a/dlls/scrrun/filesystem.c b/dlls/scrrun/filesystem.c
index 4794437a71d..0e51929ea54 100644
--- a/dlls/scrrun/filesystem.c
+++ b/dlls/scrrun/filesystem.c
@@ -609,11 +609,14 @@ static HRESULT WINAPI textstream_ReadAll(ITextStream *iface, BSTR *text)
return read_from_buffer(This, This->read_buf_size, text, 0) ? S_FALSE : E_OUTOFMEMORY;
}
-static HRESULT textstream_writestr(struct textstream *stream, BSTR text)
+static HRESULT textstream_write(struct textstream *stream, BSTR text)
{
DWORD written = 0;
BOOL ret;
+ if (textstream_check_iomode(stream, IOWrite))
+ return CTL_E_BADFILEMODE;
+
if (stream->unicode) {
ret = WriteFile(stream->file, text, SysStringByteLen(text), &written, NULL);
return (ret && written == SysStringByteLen(text)) ? S_OK : create_error(GetLastError());
@@ -636,14 +639,11 @@ static HRESULT textstream_writestr(struct textstream *stream, BSTR text)
static HRESULT WINAPI textstream_Write(ITextStream *iface, BSTR text)
{
- struct textstream *This = impl_from_ITextStream(iface);
-
- TRACE("(%p)->(%s)\n", This, debugstr_w(text));
+ struct textstream *stream = impl_from_ITextStream(iface);
- if (textstream_check_iomode(This, IOWrite))
- return CTL_E_BADFILEMODE;
+ TRACE("%p, %s.\n", iface, debugstr_w(text));
- return textstream_writestr(This, text);
+ return textstream_write(stream, text);
}
static HRESULT textstream_writecrlf(struct textstream *stream)
@@ -669,17 +669,14 @@ static HRESULT textstream_writecrlf(struct textstream *stream)
static HRESULT WINAPI textstream_WriteLine(ITextStream *iface, BSTR text)
{
- struct textstream *This = impl_from_ITextStream(iface);
+ struct textstream *stream = impl_from_ITextStream(iface);
HRESULT hr;
- TRACE("(%p)->(%s)\n", This, debugstr_w(text));
-
- if (textstream_check_iomode(This, IOWrite))
- return CTL_E_BADFILEMODE;
+ TRACE("%p, %s.\n", iface, debugstr_w(text));
- hr = textstream_writestr(This, text);
+ hr = textstream_write(stream, text);
if (SUCCEEDED(hr))
- hr = textstream_writecrlf(This);
+ hr = textstream_writecrlf(stream);
return hr;
}
--
2.34.1
1
3
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
---
v4:
- move wine_get_wgl_driver() to user driver and add a special case for dibdrv.
dlls/user32/driver.c | 4 ++-
dlls/win32u/dc.c | 58 +++++++++++++++++++++++++------------
dlls/win32u/dibdrv/dc.c | 11 +------
dlls/win32u/driver.c | 36 +++++++++++++++--------
dlls/win32u/emfdrv.c | 1 -
dlls/win32u/font.c | 1 -
dlls/win32u/ntgdi_private.h | 25 ++++++++++++++++
dlls/win32u/path.c | 1 -
dlls/wineandroid.drv/init.c | 13 ++-------
dlls/winemac.drv/gdi.c | 2 +-
dlls/winemac.drv/macdrv.h | 2 +-
dlls/winemac.drv/opengl.c | 2 +-
dlls/wineps.drv/init.c | 1 -
dlls/winex11.drv/init.c | 13 ++-------
dlls/winex11.drv/xrender.c | 1 -
include/wine/gdi_driver.h | 3 +-
16 files changed, 103 insertions(+), 71 deletions(-)
diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c
index 7e9f63ad1c7..2c5497761a0 100644
--- a/dlls/user32/driver.c
+++ b/dlls/user32/driver.c
@@ -394,7 +394,9 @@ static struct user_driver_funcs lazy_load_driver =
/* vulkan support */
NULL,
/* thread management */
- NULL
+ NULL,
+ /* opengl support */
+ NULL,
};
void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version )
diff --git a/dlls/win32u/dc.c b/dlls/win32u/dc.c
index aed2d3684a7..e7ebb57776b 100644
--- a/dlls/win32u/dc.c
+++ b/dlls/win32u/dc.c
@@ -63,25 +63,6 @@ static const struct gdi_obj_funcs dc_funcs =
};
-static inline DC *get_dc_obj( HDC hdc )
-{
- DWORD type;
- DC *dc = get_any_obj_ptr( hdc, &type );
- if (!dc) return NULL;
-
- switch (type)
- {
- case NTGDI_OBJ_DC:
- case NTGDI_OBJ_MEMDC:
- case NTGDI_OBJ_ENHMETADC:
- return dc;
- default:
- GDI_ReleaseObj( hdc );
- SetLastError( ERROR_INVALID_HANDLE );
- return NULL;
- }
-}
-
/* alloc DC_ATTR from a pool of memory accessible from client */
static DC_ATTR *alloc_dc_attr(void)
{
@@ -310,6 +291,43 @@ DC *get_dc_ptr( HDC hdc )
}
+/***********************************************************************
+ * grab_dc
+ *
+ * Retrieve a DC pointer, increase ref count and release the GDI lock.
+ */
+DC *grab_dc( HDC hdc )
+{
+ DC *dc;
+
+ if (!GDI_inc_ref_count( hdc )) return NULL;
+ if (!(dc = get_dc_obj( hdc )))
+ {
+ GDI_dec_ref_count( hdc );
+ return NULL;
+ }
+ if (dc->attr->disabled)
+ {
+ GDI_dec_ref_count( hdc );
+ GDI_ReleaseObj( hdc );
+ return NULL;
+ }
+ GDI_ReleaseObj( hdc );
+ return dc;
+}
+
+
+/***********************************************************************
+ * put_dc
+ *
+ * Decrease ref count previously increased by grab_dc().
+ */
+void put_dc( HDC hdc )
+{
+ GDI_dec_ref_count( hdc );
+}
+
+
/***********************************************************************
* release_dc_ptr
*/
@@ -816,6 +834,8 @@ HDC WINAPI NtGdiCreateCompatibleDC( HDC hdc )
free_dc_ptr( dc );
return 0;
}
+ dc->dibdrv = TRUE;
+
physDev = GET_DC_PHYSDEV( dc, pSelectBitmap );
physDev->funcs->pSelectBitmap( physDev, dc->hBitmap );
diff --git a/dlls/win32u/dibdrv/dc.c b/dlls/win32u/dibdrv/dc.c
index a96b613d0a3..a91cd76f936 100644
--- a/dlls/win32u/dibdrv/dc.c
+++ b/dlls/win32u/dibdrv/dc.c
@@ -605,7 +605,7 @@ static struct opengl_funcs opengl_funcs =
/**********************************************************************
* dibdrv_wine_get_wgl_driver
*/
-static struct opengl_funcs * CDECL dibdrv_wine_get_wgl_driver( PHYSDEV dev, UINT version )
+struct opengl_funcs *dibdrv_wine_get_wgl_driver( UINT version )
{
if (version != WINE_WGL_DRIVER_VERSION)
{
@@ -715,7 +715,6 @@ const struct gdi_dc_funcs dib_driver =
NULL, /* pUnrealizePalette */
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
NULL, /* pD3DKMTSetVidPnSourceOwner */
- dibdrv_wine_get_wgl_driver, /* wine_get_wgl_driver */
GDI_PRIORITY_DIB_DRV /* priority */
};
@@ -1177,13 +1176,6 @@ static INT CDECL windrv_StretchDIBits( PHYSDEV dev, INT x_dst, INT y_dst, INT wi
return ret;
}
-static struct opengl_funcs * CDECL windrv_wine_get_wgl_driver( PHYSDEV dev, UINT version )
-{
- dev = GET_NEXT_PHYSDEV( dev, wine_get_wgl_driver );
- if (dev->funcs == &dib_driver) dev = GET_NEXT_PHYSDEV( dev, wine_get_wgl_driver );
- return dev->funcs->wine_get_wgl_driver( dev, version );
-}
-
static const struct gdi_dc_funcs window_driver =
{
NULL, /* pAbortDoc */
@@ -1277,6 +1269,5 @@ static const struct gdi_dc_funcs window_driver =
NULL, /* pUnrealizePalette */
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
NULL, /* pD3DKMTSetVidPnSourceOwner */
- windrv_wine_get_wgl_driver, /* wine_get_wgl_driver */
GDI_PRIORITY_DIB_DRV + 10 /* priority */
};
diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c
index 5e6cee33bc6..ea7165bc3ae 100644
--- a/dlls/win32u/driver.c
+++ b/dlls/win32u/driver.c
@@ -571,11 +571,6 @@ static NTSTATUS CDECL nulldrv_D3DKMTSetVidPnSourceOwner( const D3DKMT_SETVIDPNSO
return STATUS_PROCEDURE_NOT_FOUND;
}
-static struct opengl_funcs * CDECL nulldrv_wine_get_wgl_driver( PHYSDEV dev, UINT version )
-{
- return (void *)-1;
-}
-
const struct gdi_dc_funcs null_driver =
{
nulldrv_AbortDoc, /* pAbortDoc */
@@ -669,7 +664,6 @@ const struct gdi_dc_funcs null_driver =
nulldrv_UnrealizePalette, /* pUnrealizePalette */
nulldrv_D3DKMTCheckVidPnExclusiveOwnership, /* pD3DKMTCheckVidPnExclusiveOwnership */
nulldrv_D3DKMTSetVidPnSourceOwner, /* pD3DKMTSetVidPnSourceOwner */
- nulldrv_wine_get_wgl_driver, /* wine_get_wgl_driver */
GDI_PRIORITY_NULL_DRV /* priority */
};
@@ -1373,14 +1367,32 @@ NTSTATUS WINAPI NtGdiDdDDICheckVidPnExclusiveOwnership( const D3DKMT_CHECKVIDPNE
*/
struct opengl_funcs * CDECL __wine_get_wgl_driver( HDC hdc, UINT version )
{
- struct opengl_funcs *ret = NULL;
- DC * dc = get_dc_ptr( hdc );
+ struct opengl_funcs *ret;
+ PHYSDEV physdev;
+ BOOL dibdrv;
+ DC * dc;
+
+ if (!(dc = get_dc_obj( hdc ))) return NULL;
+ if (dc->attr->disabled)
+ {
+ GDI_ReleaseObj( hdc );
+ return NULL;
+ }
+ ret = dc->gl_funcs;
+ dibdrv = dc->dibdrv;
+ GDI_ReleaseObj( hdc );
+
+ if (ret) return ret;
- if (dc)
+ if (dibdrv) ret = dibdrv_wine_get_wgl_driver( version );
+ else
{
- PHYSDEV physdev = GET_DC_PHYSDEV( dc, wine_get_wgl_driver );
- ret = physdev->funcs->wine_get_wgl_driver( physdev, version );
- release_dc_ptr( dc );
+ if (user_driver->pwine_get_wgl_driver) ret = user_driver->pwine_get_wgl_driver( version );
+ else ret = (void *)-1;
}
+ if (!(dc = get_dc_obj( hdc ))) return NULL;
+ if (!dc->gl_funcs) dc->gl_funcs = ret;
+ else ret = dc->gl_funcs;
+ GDI_ReleaseObj( hdc );
return ret;
}
diff --git a/dlls/win32u/emfdrv.c b/dlls/win32u/emfdrv.c
index f261a86e392..81481953288 100644
--- a/dlls/win32u/emfdrv.c
+++ b/dlls/win32u/emfdrv.c
@@ -524,7 +524,6 @@ static const struct gdi_dc_funcs emfdrv_driver =
NULL, /* pUnrealizePalette */
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
NULL, /* pD3DKMTSetVidPnSourceOwner */
- NULL, /* wine_get_wgl_driver */
GDI_PRIORITY_GRAPHICS_DRV /* priority */
};
diff --git a/dlls/win32u/font.c b/dlls/win32u/font.c
index b8213ac9e6a..87ef75f04af 100644
--- a/dlls/win32u/font.c
+++ b/dlls/win32u/font.c
@@ -4351,7 +4351,6 @@ const struct gdi_dc_funcs font_driver =
NULL, /* pUnrealizePalette */
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
NULL, /* pD3DKMTSetVidPnSourceOwner */
- NULL, /* wine_get_wgl_driver */
GDI_PRIORITY_FONT_DRV /* priority */
};
diff --git a/dlls/win32u/ntgdi_private.h b/dlls/win32u/ntgdi_private.h
index bfeb4557da7..f256ed36d38 100644
--- a/dlls/win32u/ntgdi_private.h
+++ b/dlls/win32u/ntgdi_private.h
@@ -59,6 +59,7 @@ typedef struct tagDC
DCHOOKPROC hookProc; /* DC hook */
BOOL bounds_enabled:1; /* bounds tracking is enabled */
BOOL path_open:1; /* path is currently open (only for saved DCs) */
+ BOOL dibdrv:1; /* memory DC */
RECT device_rect; /* rectangle for the whole device */
int pixel_format; /* pixel format (for memory DCs) */
@@ -87,6 +88,8 @@ typedef struct tagDC
XFORM xformVport2World; /* Inverse of the above transformation */
BOOL vport2WorldValid; /* Is xformVport2World valid? */
RECT bounds; /* Current bounding rect */
+
+ struct opengl_funcs *gl_funcs; /* Opengl driver functions */
} DC;
/* Certain functions will do no further processing if the driver returns this.
@@ -170,6 +173,8 @@ static inline HRGN get_dc_region( DC *dc )
extern DC *alloc_dc_ptr( DWORD magic ) DECLSPEC_HIDDEN;
extern void free_dc_ptr( DC *dc ) DECLSPEC_HIDDEN;
extern DC *get_dc_ptr( HDC hdc ) DECLSPEC_HIDDEN;
+extern DC *grab_dc( HDC hdc ) DECLSPEC_HIDDEN;
+extern void put_dc( HDC hdc ) DECLSPEC_HIDDEN;
extern void release_dc_ptr( DC *dc ) DECLSPEC_HIDDEN;
extern void update_dc( DC *dc ) DECLSPEC_HIDDEN;
extern void DC_InitDC( DC * dc ) DECLSPEC_HIDDEN;
@@ -206,6 +211,7 @@ extern UINT get_dib_dc_color_table( HDC hdc, UINT startpos, UINT entries,
extern UINT set_dib_dc_color_table( HDC hdc, UINT startpos, UINT entries,
const RGBQUAD *colors ) DECLSPEC_HIDDEN;
extern void dibdrv_set_window_surface( DC *dc, struct window_surface *surface ) DECLSPEC_HIDDEN;
+extern struct opengl_funcs *dibdrv_wine_get_wgl_driver( UINT version ) DECLSPEC_HIDDEN;
/* driver.c */
extern const struct gdi_dc_funcs null_driver DECLSPEC_HIDDEN;
@@ -660,6 +666,25 @@ static inline void copy_bitmapinfo( BITMAPINFO *dst, const BITMAPINFO *src )
memcpy( dst, src, get_dib_info_size( src, DIB_RGB_COLORS ));
}
+static inline DC *get_dc_obj( HDC hdc )
+{
+ DWORD type;
+ DC *dc = get_any_obj_ptr( hdc, &type );
+ if (!dc) return NULL;
+
+ switch (type)
+ {
+ case NTGDI_OBJ_DC:
+ case NTGDI_OBJ_MEMDC:
+ case NTGDI_OBJ_ENHMETADC:
+ return dc;
+ default:
+ GDI_ReleaseObj( hdc );
+ SetLastError( ERROR_INVALID_HANDLE );
+ return NULL;
+ }
+}
+
extern void CDECL free_heap_bits( struct gdi_image_bits *bits ) DECLSPEC_HIDDEN;
void set_gdi_client_ptr( HGDIOBJ handle, void *ptr ) DECLSPEC_HIDDEN;
diff --git a/dlls/win32u/path.c b/dlls/win32u/path.c
index a87a7ab06c2..93a124953af 100644
--- a/dlls/win32u/path.c
+++ b/dlls/win32u/path.c
@@ -2121,6 +2121,5 @@ const struct gdi_dc_funcs path_driver =
NULL, /* pUnrealizePalette */
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
NULL, /* pD3DKMTSetVidPnSourceOwner */
- NULL, /* wine_get_wgl_driver */
GDI_PRIORITY_PATH_DRV /* priority */
};
diff --git a/dlls/wineandroid.drv/init.c b/dlls/wineandroid.drv/init.c
index ed9116eb47e..7c103475e6b 100644
--- a/dlls/wineandroid.drv/init.c
+++ b/dlls/wineandroid.drv/init.c
@@ -261,16 +261,9 @@ BOOL CDECL ANDROID_EnumDisplaySettingsEx( LPCWSTR name, DWORD n, LPDEVMODEW devm
/**********************************************************************
* ANDROID_wine_get_wgl_driver
*/
-static struct opengl_funcs * CDECL ANDROID_wine_get_wgl_driver( PHYSDEV dev, UINT version )
+static struct opengl_funcs * CDECL ANDROID_wine_get_wgl_driver( UINT version )
{
- struct opengl_funcs *ret;
-
- if (!(ret = get_wgl_driver( version )))
- {
- dev = GET_NEXT_PHYSDEV( dev, wine_get_wgl_driver );
- ret = dev->funcs->wine_get_wgl_driver( dev, version );
- }
- return ret;
+ return get_wgl_driver( version );
}
@@ -279,7 +272,6 @@ static const struct user_driver_funcs android_drv_funcs =
.dc_funcs.pCreateCompatibleDC = ANDROID_CreateCompatibleDC,
.dc_funcs.pCreateDC = ANDROID_CreateDC,
.dc_funcs.pDeleteDC = ANDROID_DeleteDC,
- .dc_funcs.wine_get_wgl_driver = ANDROID_wine_get_wgl_driver,
.dc_funcs.priority = GDI_PRIORITY_GRAPHICS_DRV,
.pGetKeyNameText = ANDROID_GetKeyNameText,
@@ -302,6 +294,7 @@ static const struct user_driver_funcs android_drv_funcs =
.pWindowMessage = ANDROID_WindowMessage,
.pWindowPosChanging = ANDROID_WindowPosChanging,
.pWindowPosChanged = ANDROID_WindowPosChanged,
+ .pwine_get_wgl_driver = ANDROID_wine_get_wgl_driver,
};
diff --git a/dlls/winemac.drv/gdi.c b/dlls/winemac.drv/gdi.c
index 40ba4c570c5..264781c6ac1 100644
--- a/dlls/winemac.drv/gdi.c
+++ b/dlls/winemac.drv/gdi.c
@@ -268,7 +268,6 @@ static const struct user_driver_funcs macdrv_funcs =
.dc_funcs.pGetDeviceCaps = macdrv_GetDeviceCaps,
.dc_funcs.pGetDeviceGammaRamp = macdrv_GetDeviceGammaRamp,
.dc_funcs.pSetDeviceGammaRamp = macdrv_SetDeviceGammaRamp,
- .dc_funcs.wine_get_wgl_driver = macdrv_wine_get_wgl_driver,
.dc_funcs.priority = GDI_PRIORITY_GRAPHICS_DRV,
.pActivateKeyboardLayout = macdrv_ActivateKeyboardLayout,
@@ -309,6 +308,7 @@ static const struct user_driver_funcs macdrv_funcs =
.pWindowPosChanged = macdrv_WindowPosChanged,
.pWindowPosChanging = macdrv_WindowPosChanging,
.pwine_get_vulkan_driver = macdrv_wine_get_vulkan_driver,
+ .pwine_get_wgl_driver = macdrv_wine_get_wgl_driver,
};
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index 0bd0a18f111..4e4524722af 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -263,7 +263,7 @@ extern DWORD CDECL macdrv_MsgWaitForMultipleObjectsEx(DWORD count, const HANDLE
extern BOOL query_drag_exited(macdrv_query* query) DECLSPEC_HIDDEN;
extern BOOL query_drag_drop(macdrv_query* query) DECLSPEC_HIDDEN;
-extern struct opengl_funcs * CDECL macdrv_wine_get_wgl_driver(PHYSDEV dev, UINT version) DECLSPEC_HIDDEN;
+extern struct opengl_funcs * CDECL macdrv_wine_get_wgl_driver(UINT version) DECLSPEC_HIDDEN;
extern const struct vulkan_funcs * CDECL macdrv_wine_get_vulkan_driver(UINT version) DECLSPEC_HIDDEN;
extern void sync_gl_view(struct macdrv_win_data* data, const RECT* old_whole_rect, const RECT* old_client_rect) DECLSPEC_HIDDEN;
diff --git a/dlls/winemac.drv/opengl.c b/dlls/winemac.drv/opengl.c
index daf194c2aec..02ac613ddc9 100644
--- a/dlls/winemac.drv/opengl.c
+++ b/dlls/winemac.drv/opengl.c
@@ -4632,7 +4632,7 @@ static struct opengl_funcs opengl_funcs =
/**********************************************************************
* macdrv_wine_get_wgl_driver
*/
-struct opengl_funcs * CDECL macdrv_wine_get_wgl_driver(PHYSDEV dev, UINT version)
+struct opengl_funcs * CDECL macdrv_wine_get_wgl_driver(UINT version)
{
static INIT_ONCE opengl_init = INIT_ONCE_STATIC_INIT;
diff --git a/dlls/wineps.drv/init.c b/dlls/wineps.drv/init.c
index 9e32bf31d1f..5a01a97973f 100644
--- a/dlls/wineps.drv/init.c
+++ b/dlls/wineps.drv/init.c
@@ -858,7 +858,6 @@ static const struct gdi_dc_funcs psdrv_funcs =
NULL, /* pUnrealizePalette */
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
NULL, /* pD3DKMTSetVidPnSourceOwner */
- NULL, /* wine_get_wgl_driver */
GDI_PRIORITY_GRAPHICS_DRV /* priority */
};
diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c
index 5b31c352a23..35bf47c2e74 100644
--- a/dlls/winex11.drv/init.c
+++ b/dlls/winex11.drv/init.c
@@ -312,16 +312,9 @@ static INT CDECL X11DRV_ExtEscape( PHYSDEV dev, INT escape, INT in_count, LPCVOI
/**********************************************************************
* X11DRV_wine_get_wgl_driver
*/
-static struct opengl_funcs * CDECL X11DRV_wine_get_wgl_driver( PHYSDEV dev, UINT version )
+static struct opengl_funcs * CDECL X11DRV_wine_get_wgl_driver( UINT version )
{
- struct opengl_funcs *ret;
-
- if (!(ret = get_glx_driver( version )))
- {
- dev = GET_NEXT_PHYSDEV( dev, wine_get_wgl_driver );
- ret = dev->funcs->wine_get_wgl_driver( dev, version );
- }
- return ret;
+ return get_glx_driver( version );
}
/**********************************************************************
@@ -377,7 +370,6 @@ static const struct user_driver_funcs x11drv_funcs =
.dc_funcs.pUnrealizePalette = X11DRV_UnrealizePalette,
.dc_funcs.pD3DKMTCheckVidPnExclusiveOwnership = X11DRV_D3DKMTCheckVidPnExclusiveOwnership,
.dc_funcs.pD3DKMTSetVidPnSourceOwner = X11DRV_D3DKMTSetVidPnSourceOwner,
- .dc_funcs.wine_get_wgl_driver = X11DRV_wine_get_wgl_driver,
.dc_funcs.priority = GDI_PRIORITY_GRAPHICS_DRV,
.pActivateKeyboardLayout = X11DRV_ActivateKeyboardLayout,
@@ -418,6 +410,7 @@ static const struct user_driver_funcs x11drv_funcs =
.pWindowPosChanging = X11DRV_WindowPosChanging,
.pWindowPosChanged = X11DRV_WindowPosChanged,
.pSystemParametersInfo = X11DRV_SystemParametersInfo,
+ .pwine_get_wgl_driver = X11DRV_wine_get_wgl_driver,
.pwine_get_vulkan_driver = X11DRV_wine_get_vulkan_driver,
.pThreadDetach = X11DRV_ThreadDetach,
};
diff --git a/dlls/winex11.drv/xrender.c b/dlls/winex11.drv/xrender.c
index 92dc35fa9e1..5ede97fb026 100644
--- a/dlls/winex11.drv/xrender.c
+++ b/dlls/winex11.drv/xrender.c
@@ -2246,7 +2246,6 @@ static const struct gdi_dc_funcs xrender_funcs =
NULL, /* pUnrealizePalette */
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
NULL, /* pD3DKMTSetVidPnSourceOwner */
- NULL, /* wine_get_wgl_driver */
GDI_PRIORITY_GRAPHICS_DRV + 10 /* priority */
};
diff --git a/include/wine/gdi_driver.h b/include/wine/gdi_driver.h
index 567a6c21608..24a4bba1c8b 100644
--- a/include/wine/gdi_driver.h
+++ b/include/wine/gdi_driver.h
@@ -159,7 +159,6 @@ struct gdi_dc_funcs
BOOL (CDECL *pUnrealizePalette)(HPALETTE);
NTSTATUS (CDECL *pD3DKMTCheckVidPnExclusiveOwnership)(const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *);
NTSTATUS (CDECL *pD3DKMTSetVidPnSourceOwner)(const D3DKMT_SETVIDPNSOURCEOWNER *);
- struct opengl_funcs * (CDECL *wine_get_wgl_driver)(PHYSDEV,UINT);
/* priority order for the driver on the stack */
UINT priority;
@@ -323,6 +322,8 @@ struct user_driver_funcs
const struct vulkan_funcs * (CDECL *pwine_get_vulkan_driver)(UINT);
/* thread management */
void (CDECL *pThreadDetach)(void);
+ /* opengl support */
+ struct opengl_funcs * (CDECL *pwine_get_wgl_driver)(UINT);
};
extern void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version );
--
2.35.1
2
3
[PATCH] mfreadwrite: Return IMFSourceReaderEx interface for source reader.
by Alistair Leslie-Hughes 20 Feb '22
by Alistair Leslie-Hughes 20 Feb '22
20 Feb '22
Windows 8 and above return an IMFSourceReaderEx interface by default.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com>
---
dlls/mfreadwrite/reader.c | 108 +++++++++++++++++++++-----------
dlls/mfreadwrite/tests/mfplat.c | 6 ++
2 files changed, 78 insertions(+), 36 deletions(-)
diff --git a/dlls/mfreadwrite/reader.c b/dlls/mfreadwrite/reader.c
index bdf2e7f5a6f..133403f77d3 100644
--- a/dlls/mfreadwrite/reader.c
+++ b/dlls/mfreadwrite/reader.c
@@ -150,7 +150,7 @@ enum source_reader_flags
struct source_reader
{
- IMFSourceReader IMFSourceReader_iface;
+ IMFSourceReaderEx IMFSourceReaderEx_iface;
IMFAsyncCallback source_events_callback;
IMFAsyncCallback stream_events_callback;
IMFAsyncCallback async_commands_callback;
@@ -176,9 +176,9 @@ struct source_reader
CONDITION_VARIABLE stop_event;
};
-static inline struct source_reader *impl_from_IMFSourceReader(IMFSourceReader *iface)
+static inline struct source_reader *impl_from_IMFSourceReaderEx(IMFSourceReaderEx *iface)
{
- return CONTAINING_RECORD(iface, struct source_reader, IMFSourceReader_iface);
+ return CONTAINING_RECORD(iface, struct source_reader, IMFSourceReaderEx_iface);
}
static struct source_reader *impl_from_source_callback_IMFAsyncCallback(IMFAsyncCallback *iface)
@@ -1360,16 +1360,17 @@ static const IMFAsyncCallbackVtbl async_commands_callback_vtbl =
source_reader_async_commands_callback_Invoke,
};
-static HRESULT WINAPI src_reader_QueryInterface(IMFSourceReader *iface, REFIID riid, void **out)
+static HRESULT WINAPI src_reader_QueryInterface(IMFSourceReaderEx *iface, REFIID riid, void **out)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
TRACE("%p, %s, %p.\n", iface, debugstr_guid(riid), out);
if(IsEqualGUID(riid, &IID_IUnknown) ||
- IsEqualGUID(riid, &IID_IMFSourceReader))
+ IsEqualGUID(riid, &IID_IMFSourceReader) ||
+ IsEqualGUID(riid, &IID_IMFSourceReaderEx))
{
- *out = &reader->IMFSourceReader_iface;
+ *out = &reader->IMFSourceReaderEx_iface;
}
else
{
@@ -1382,9 +1383,9 @@ static HRESULT WINAPI src_reader_QueryInterface(IMFSourceReader *iface, REFIID r
return S_OK;
}
-static ULONG WINAPI src_reader_AddRef(IMFSourceReader *iface)
+static ULONG WINAPI src_reader_AddRef(IMFSourceReaderEx *iface)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
ULONG refcount = InterlockedIncrement(&reader->public_refcount);
TRACE("%p, refcount %lu.\n", iface, refcount);
@@ -1408,9 +1409,9 @@ static BOOL source_reader_is_source_stopped(const struct source_reader *reader)
return TRUE;
}
-static ULONG WINAPI src_reader_Release(IMFSourceReader *iface)
+static ULONG WINAPI src_reader_Release(IMFSourceReaderEx *iface)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
ULONG refcount = InterlockedDecrement(&reader->public_refcount);
TRACE("%p, refcount %lu.\n", iface, refcount);
@@ -1436,9 +1437,9 @@ static ULONG WINAPI src_reader_Release(IMFSourceReader *iface)
return refcount;
}
-static HRESULT WINAPI src_reader_GetStreamSelection(IMFSourceReader *iface, DWORD index, BOOL *selected)
+static HRESULT WINAPI src_reader_GetStreamSelection(IMFSourceReaderEx *iface, DWORD index, BOOL *selected)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
TRACE("%p, %#lx, %p.\n", iface, index, selected);
@@ -1457,9 +1458,9 @@ static HRESULT WINAPI src_reader_GetStreamSelection(IMFSourceReader *iface, DWOR
return source_reader_get_stream_selection(reader, index, selected);
}
-static HRESULT WINAPI src_reader_SetStreamSelection(IMFSourceReader *iface, DWORD index, BOOL selection)
+static HRESULT WINAPI src_reader_SetStreamSelection(IMFSourceReaderEx *iface, DWORD index, BOOL selection)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
HRESULT hr = S_OK;
BOOL selection_changed = FALSE, selected;
unsigned int i;
@@ -1562,19 +1563,19 @@ static HRESULT source_reader_get_native_media_type(struct source_reader *reader,
return hr;
}
-static HRESULT WINAPI src_reader_GetNativeMediaType(IMFSourceReader *iface, DWORD index, DWORD type_index,
+static HRESULT WINAPI src_reader_GetNativeMediaType(IMFSourceReaderEx *iface, DWORD index, DWORD type_index,
IMFMediaType **type)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
TRACE("%p, %#lx, %#lx, %p.\n", iface, index, type_index, type);
return source_reader_get_native_media_type(reader, index, type_index, type);
}
-static HRESULT WINAPI src_reader_GetCurrentMediaType(IMFSourceReader *iface, DWORD index, IMFMediaType **type)
+static HRESULT WINAPI src_reader_GetCurrentMediaType(IMFSourceReaderEx *iface, DWORD index, IMFMediaType **type)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
HRESULT hr;
TRACE("%p, %#lx, %p.\n", iface, index, type);
@@ -1832,10 +1833,10 @@ static HRESULT source_reader_create_decoder_for_stream(struct source_reader *rea
return MF_E_TOPO_CODEC_NOT_FOUND;
}
-static HRESULT WINAPI src_reader_SetCurrentMediaType(IMFSourceReader *iface, DWORD index, DWORD *reserved,
+static HRESULT WINAPI src_reader_SetCurrentMediaType(IMFSourceReaderEx *iface, DWORD index, DWORD *reserved,
IMFMediaType *type)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
HRESULT hr;
TRACE("%p, %#lx, %p, %p.\n", iface, index, reserved, type);
@@ -1870,9 +1871,9 @@ static HRESULT WINAPI src_reader_SetCurrentMediaType(IMFSourceReader *iface, DWO
return hr;
}
-static HRESULT WINAPI src_reader_SetCurrentPosition(IMFSourceReader *iface, REFGUID format, REFPROPVARIANT position)
+static HRESULT WINAPI src_reader_SetCurrentPosition(IMFSourceReaderEx *iface, REFGUID format, REFPROPVARIANT position)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
struct source_reader_async_command *command;
unsigned int i;
DWORD flags;
@@ -2017,10 +2018,10 @@ static HRESULT source_reader_read_sample_async(struct source_reader *reader, uns
return hr;
}
-static HRESULT WINAPI src_reader_ReadSample(IMFSourceReader *iface, DWORD index, DWORD flags, DWORD *actual_index,
+static HRESULT WINAPI src_reader_ReadSample(IMFSourceReaderEx *iface, DWORD index, DWORD flags, DWORD *actual_index,
DWORD *stream_flags, LONGLONG *timestamp, IMFSample **sample)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
HRESULT hr;
TRACE("%p, %#lx, %#lx, %p, %p, %p, %p\n", iface, index, flags, actual_index, stream_flags, timestamp, sample);
@@ -2079,9 +2080,9 @@ static HRESULT source_reader_flush_async(struct source_reader *reader, unsigned
return hr;
}
-static HRESULT WINAPI src_reader_Flush(IMFSourceReader *iface, DWORD index)
+static HRESULT WINAPI src_reader_Flush(IMFSourceReaderEx *iface, DWORD index)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
HRESULT hr;
TRACE("%p, %#lx.\n", iface, index);
@@ -2098,10 +2099,10 @@ static HRESULT WINAPI src_reader_Flush(IMFSourceReader *iface, DWORD index)
return hr;
}
-static HRESULT WINAPI src_reader_GetServiceForStream(IMFSourceReader *iface, DWORD index, REFGUID service,
+static HRESULT WINAPI src_reader_GetServiceForStream(IMFSourceReaderEx *iface, DWORD index, REFGUID service,
REFIID riid, void **object)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
IUnknown *obj = NULL;
HRESULT hr = S_OK;
@@ -2160,10 +2161,10 @@ static HRESULT WINAPI src_reader_GetServiceForStream(IMFSourceReader *iface, DWO
return hr;
}
-static HRESULT WINAPI src_reader_GetPresentationAttribute(IMFSourceReader *iface, DWORD index,
+static HRESULT WINAPI src_reader_GetPresentationAttribute(IMFSourceReaderEx *iface, DWORD index,
REFGUID guid, PROPVARIANT *value)
{
- struct source_reader *reader = impl_from_IMFSourceReader(iface);
+ struct source_reader *reader = impl_from_IMFSourceReaderEx(iface);
IMFStreamDescriptor *sd;
BOOL selected;
HRESULT hr;
@@ -2208,7 +2209,38 @@ static HRESULT WINAPI src_reader_GetPresentationAttribute(IMFSourceReader *iface
return hr;
}
-static const IMFSourceReaderVtbl srcreader_vtbl =
+static HRESULT WINAPI src_reader_SetNativeMediaType(IMFSourceReaderEx *iface, DWORD stream_index,
+ IMFMediaType *media_type, DWORD *stream_flags)
+{
+ FIXME("%p, %#lx, %p, %p\n", iface, stream_index, media_type, stream_flags);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI src_reader_AddTransformForStream(IMFSourceReaderEx *iface, DWORD stream_index,
+ IUnknown *transform)
+{
+ FIXME("%p, %#lx, %p\n", iface, stream_index, transform);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI src_reader_RemoveAllTransformsForStream(IMFSourceReaderEx *iface, DWORD stream_index)
+{
+ FIXME("%p, %#lx\n", iface, stream_index);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI src_reader_GetTransformForStream(IMFSourceReaderEx *iface, DWORD stream_index,
+ DWORD transform_index, GUID *category, IMFTransform **transform)
+{
+ FIXME("%p, %#lx, %#lx, %p, %p\n", iface, stream_index, transform_index, category, transform);
+
+ return E_NOTIMPL;
+}
+
+static const IMFSourceReaderExVtbl srcreader_vtbl =
{
src_reader_QueryInterface,
src_reader_AddRef,
@@ -2222,7 +2254,11 @@ static const IMFSourceReaderVtbl srcreader_vtbl =
src_reader_ReadSample,
src_reader_Flush,
src_reader_GetServiceForStream,
- src_reader_GetPresentationAttribute
+ src_reader_GetPresentationAttribute,
+ src_reader_SetNativeMediaType,
+ src_reader_AddTransformForStream,
+ src_reader_RemoveAllTransformsForStream,
+ src_reader_GetTransformForStream
};
static DWORD reader_get_first_stream_index(IMFPresentationDescriptor *descriptor, const GUID *major)
@@ -2324,7 +2360,7 @@ static HRESULT create_source_reader_from_source(IMFMediaSource *source, IMFAttri
if (!object)
return E_OUTOFMEMORY;
- object->IMFSourceReader_iface.lpVtbl = &srcreader_vtbl;
+ object->IMFSourceReaderEx_iface.lpVtbl = &srcreader_vtbl;
object->source_events_callback.lpVtbl = &source_events_callback_vtbl;
object->stream_events_callback.lpVtbl = &stream_events_callback_vtbl;
object->async_commands_callback.lpVtbl = &async_commands_callback_vtbl;
@@ -2445,10 +2481,10 @@ static HRESULT create_source_reader_from_source(IMFMediaSource *source, IMFAttri
WARN("Failed to acquired shared queue, hr %#lx.\n", hr);
if (SUCCEEDED(hr))
- hr = IMFSourceReader_QueryInterface(&object->IMFSourceReader_iface, riid, out);
+ hr = IMFSourceReaderEx_QueryInterface(&object->IMFSourceReaderEx_iface, riid, out);
failed:
- IMFSourceReader_Release(&object->IMFSourceReader_iface);
+ IMFSourceReaderEx_Release(&object->IMFSourceReaderEx_iface);
return hr;
}
diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c
index fcf642859d5..01881bcb387 100644
--- a/dlls/mfreadwrite/tests/mfplat.c
+++ b/dlls/mfreadwrite/tests/mfplat.c
@@ -890,6 +890,7 @@ static void test_source_reader_from_media_source(void)
{
struct async_callback *callback;
IMFSourceReader *reader;
+ IMFSourceReaderEx *readerex;
IMFMediaSource *source;
IMFMediaType *media_type;
HRESULT hr;
@@ -907,6 +908,11 @@ static void test_source_reader_from_media_source(void)
hr = MFCreateSourceReaderFromMediaSource(source, NULL, &reader);
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IMFSourceReader_QueryInterface(reader, &IID_IMFSourceReaderEx, (void**)&readerex);
+ ok(hr == S_OK || broken(hr == E_NOINTERFACE) /* Windows 7 and below.*/, "Unexpected hr %#lx.\n", hr);
+ if (readerex)
+ IMFSourceReaderEx_Release(readerex);
+
/* MF_SOURCE_READER_ANY_STREAM */
hr = IMFSourceReader_SetStreamSelection(reader, 0, FALSE);
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
--
2.34.1
2
1
[PATCH 1/2] Add test for RedrawWindow with both validate and internal paint flags.
by Roman Pišl 19 Feb '22
by Roman Pišl 19 Feb '22
19 Feb '22
Signed-off-by: Roman Pišl <rpisl(a)seznam.cz>
---
dlls/user32/tests/msg.c | 32 +++++++++++++++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index f0e0d0fba76..689ad7161f5 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -140,7 +140,8 @@ typedef enum {
hook=0x100,
winevent_hook=0x200,
kbd_hook=0x400,
- winevent_hook_todo=0x800
+ winevent_hook_todo=0x800,
+ has_update=0x1000
} msg_flags_t;
struct message {
@@ -2819,6 +2820,10 @@ static void ok_sequence_(const struct message *expected_list, const char *contex
context, count, expected->message);
if ((expected->flags & kbd_hook) != (actual->flags & kbd_hook)) dump++;
+ todo_wine_if(expected->flags & has_update)
+ ok_( file, line) (!(expected->flags & has_update) || (actual->flags & has_update),
+ "%s: %u: the msg 0x%04x should have update region\n", context, count, expected->message );
+
expected++;
actual++;
}
@@ -8270,6 +8275,11 @@ static const struct message WmPaint[] = {
{ 0 }
};
+static const struct message WmPaintUpdate[] = {
+ { WM_PAINT, sent|has_update },
+ { 0 }
+};
+
static const struct message WmParentOnlyPaint[] = {
{ WM_PAINT, sent|parent },
{ 0 }
@@ -8585,6 +8595,13 @@ static void test_paint_messages(void)
RedrawWindow( hwnd, NULL, hrgn, RDW_VALIDATE | RDW_NOERASE | RDW_UPDATENOW );
ok_sequence( WmPaint, "Paint", FALSE );
+ flush_sequence();
+ SetRectRgn( hrgn, 0, 0, 100, 100 );
+ RedrawWindow( hwnd, NULL, hrgn, RDW_INVALIDATE | RDW_ERASE );
+ SetRectRgn( hrgn, 0, 0, 50, 50 );
+ RedrawWindow( hwnd, NULL, hrgn, RDW_VALIDATE | RDW_NOERASE | RDW_UPDATENOW | RDW_NOFRAME );
+ ok_sequence( WmPaint, "Paint", FALSE );
+
flush_sequence();
SetRectRgn( hrgn, -4, -4, -2, -2 );
RedrawWindow( hwnd, NULL, hrgn, RDW_INVALIDATE | RDW_FRAME );
@@ -8629,6 +8646,16 @@ static void test_paint_messages(void)
}
ok_sequence( WmGetUpdateRect, "GetUpdateRect", FALSE );
+ /* RedrawWindow with both RDW_VALIDATE and RDW_INTERNALPAINT triggers WM_PAINT with non-empty update region */
+ flush_sequence();
+ InvalidateRect( hwnd, NULL, FALSE );
+ GetClientRect( hwnd, &rect );
+ SetRectRgn(hrgn, rect.left, rect.top, rect.right, rect.bottom );
+ check_update_rgn( hwnd, hrgn );
+ RedrawWindow( hwnd, &rect, NULL, RDW_VALIDATE | RDW_NOERASE | RDW_UPDATENOW | RDW_NOFRAME | RDW_INTERNALPAINT );
+ check_update_rgn( hwnd, 0 );
+ ok_sequence( WmPaintUpdate, "PaintUpdate", FALSE );
+
DestroyWindow( hwnd );
/* now test with a child window */
@@ -9949,6 +9976,9 @@ static LRESULT MsgCheckProc (BOOL unicode, HWND hwnd, UINT message,
msg.flags = sent|wparam|lparam;
if (defwndproc_counter) msg.flags |= defwinproc;
if (beginpaint_counter) msg.flags |= beginpaint;
+
+ if (message == WM_PAINT && GetUpdateRect(hwnd, NULL, FALSE)) msg.flags |= has_update;
+
msg.wParam = wParam;
msg.lParam = lParam;
msg.descr = "MsgCheckProc";
--
2.30.2
3
5