winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
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
List overview
wine-commits
February 2019
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
1 participants
672 discussions
Start a n
N
ew thread
Zebediah Figura : user32: Correctly calculate the client size of a minimized window.
by Alexandre Julliard
19 Feb '19
19 Feb '19
Module: wine Branch: master Commit: ed0eaecf178a811a83b70c79891a98eedcfe0291 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=ed0eaecf178a811a83b70c79…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Tue Feb 19 12:17:37 2019 -0600 user32: Correctly calculate the client size of a minimized window. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user32/nonclient.c | 5 +++++ dlls/user32/tests/win.c | 39 ++++++++++++++++++++++++++++----------- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/dlls/user32/nonclient.c b/dlls/user32/nonclient.c index 4444a2c..26bb0a0 100644 --- a/dlls/user32/nonclient.c +++ b/dlls/user32/nonclient.c @@ -414,6 +414,11 @@ LRESULT NC_HandleNCCalcSize( HWND hwnd, WPARAM wparam, RECT *winRect ) if (winRect->left > winRect->right) winRect->right = winRect->left; } + else + { + winRect->right = winRect->left; + winRect->bottom = winRect->top; + } return result; } diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c index ceb4b82..308e243 100644 --- a/dlls/user32/tests/win.c +++ b/dlls/user32/tests/win.c @@ -6469,7 +6469,7 @@ static void test_ShowWindow(void) { HWND hwnd; DWORD style; - RECT rcMain, rc, rcMinimized, rcClient, rcEmpty, rcMaximized, rcResized; + RECT rcMain, rc, rcMinimized, rcClient, rcEmpty, rcMaximized, rcResized, rcNonClient; LPARAM ret; MONITORINFO mon_info; @@ -6533,7 +6533,6 @@ static void test_ShowWindow(void) ok(EqualRect(&rcMinimized, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcMinimized), wine_dbgstr_rect(&rc)); GetClientRect(hwnd, &rc); - todo_wine ok(EqualRect(&rcEmpty, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcEmpty), wine_dbgstr_rect(&rc)); /* shouldn't be able to resize minimized windows */ @@ -6547,7 +6546,6 @@ static void test_ShowWindow(void) ok(EqualRect(&rcMinimized, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcMinimized), wine_dbgstr_rect(&rc)); GetClientRect(hwnd, &rc); - todo_wine ok(EqualRect(&rcEmpty, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcEmpty), wine_dbgstr_rect(&rc)); /* SetWindowPos shouldn't affect the client rect */ @@ -6559,9 +6557,14 @@ static void test_ShowWindow(void) ok(EqualRect(&rcMinimized, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcMinimized), wine_dbgstr_rect(&rc)); GetClientRect(hwnd, &rc); - todo_wine ok(EqualRect(&rcEmpty, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcEmpty), wine_dbgstr_rect(&rc)); + /* test NC area */ + GetWindowRect(hwnd, &rc); + SetRect(&rcNonClient, rc.left, rc.top, rc.left, rc.top); + DefWindowProcA(hwnd, WM_NCCALCSIZE, 0, (LPARAM)&rc); + ok(EqualRect(&rc, &rcNonClient), "expected %s, got %s\n", + wine_dbgstr_rect(&rcNonClient), wine_dbgstr_rect(&rc)); ShowWindow(hwnd, SW_RESTORE); ok(ret, "not expected ret: %lu\n", ret); @@ -6651,7 +6654,6 @@ static void test_ShowWindow(void) ok(EqualRect(&rcMinimized, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcMinimized), wine_dbgstr_rect(&rc)); GetClientRect(hwnd, &rc); - todo_wine ok(EqualRect(&rcEmpty, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcEmpty), wine_dbgstr_rect(&rc)); @@ -6667,7 +6669,6 @@ static void test_ShowWindow(void) ok(EqualRect(&rcMinimized, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcMinimized), wine_dbgstr_rect(&rc)); GetClientRect(hwnd, &rc); - todo_wine ok(EqualRect(&rcEmpty, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcEmpty), wine_dbgstr_rect(&rc)); @@ -6710,7 +6711,6 @@ static void test_ShowWindow(void) ok(EqualRect(&rcMinimized, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcMinimized), wine_dbgstr_rect(&rc)); GetClientRect(hwnd, &rc); - todo_wine ok(EqualRect(&rcEmpty, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcEmpty), wine_dbgstr_rect(&rc)); DestroyWindow(hwnd); @@ -6729,7 +6729,6 @@ static void test_ShowWindow(void) ok(EqualRect(&rcMinimized, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcMinimized), wine_dbgstr_rect(&rc)); GetClientRect(hwnd, &rc); - todo_wine ok(EqualRect(&rcEmpty, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcEmpty), wine_dbgstr_rect(&rc)); DestroyWindow(hwnd); @@ -6740,7 +6739,7 @@ static void test_ShowWindow(void) static void test_ShowWindow_owned(HWND hwndMain) { MONITORINFO mon_info = {sizeof(mon_info)}; - RECT rect, orig, expect; + RECT rect, orig, expect, nc; BOOL ret; HWND hwnd, hwnd2; LONG style; @@ -6798,6 +6797,12 @@ static void test_ShowWindow_owned(HWND hwndMain) todo_wine ok(EqualRect(&expect, &rect), "expected %s, got %s\n", wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + /* test NC area */ + GetWindowRect(hwnd, &rect); + SetRect(&nc, rect.left, rect.top, rect.left, rect.top); + DefWindowProcA(hwnd, WM_NCCALCSIZE, 0, (LPARAM)&rect); + ok(EqualRect(&rect, &nc), "expected %s, got %s\n", + wine_dbgstr_rect(&nc), wine_dbgstr_rect(&rect)); /* multiple minimized owned windows stack next to each other (and eventually * on top of each other) */ @@ -6863,7 +6868,7 @@ static void test_ShowWindow_owned(HWND hwndMain) static void test_ShowWindow_child(HWND hwndMain) { - RECT rect, orig, expect; + RECT rect, orig, expect, nc; BOOL ret; HWND hwnd, hwnd2; LONG style; @@ -6926,6 +6931,12 @@ static void test_ShowWindow_child(HWND hwndMain) todo_wine ok(EqualRect(&expect, &rect), "expected %s, got %s\n", wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + /* test NC area */ + GetWindowRect(hwnd, &rect); + SetRect(&nc, rect.left, rect.top, rect.left, rect.top); + DefWindowProcA(hwnd, WM_NCCALCSIZE, 0, (LPARAM)&rect); + ok(EqualRect(&rect, &nc), "expected %s, got %s\n", + wine_dbgstr_rect(&nc), wine_dbgstr_rect(&rect)); /* multiple minimized children also stack; here the parent is too small to * fit more than one per row */ @@ -6993,7 +7004,7 @@ static void test_ShowWindow_child(HWND hwndMain) static void test_ShowWindow_mdichild(HWND hwndMain) { - RECT rect, orig, expect; + RECT rect, orig, expect, nc; BOOL ret; HWND mdiclient, hwnd, hwnd2; LONG style; @@ -7051,6 +7062,12 @@ static void test_ShowWindow_mdichild(HWND hwndMain) todo_wine ok(EqualRect(&expect, &rect), "expected %s, got %s\n", wine_dbgstr_rect(&expect), wine_dbgstr_rect(&rect)); + /* test NC area */ + GetWindowRect(hwnd, &rect); + SetRect(&nc, rect.left, rect.top, rect.left, rect.top); + DefWindowProcA(hwnd, WM_NCCALCSIZE, 0, (LPARAM)&rect); + ok(EqualRect(&rect, &nc), "expected %s, got %s\n", + wine_dbgstr_rect(&nc), wine_dbgstr_rect(&rect)); /* multiple minimized children also stack; here the parent is too small to * fit more than one per row */
1
0
0
0
Zebediah Figura : user32: SetWindowPos() shouldn' t change the client rect of a minimized window.
by Alexandre Julliard
19 Feb '19
19 Feb '19
Module: wine Branch: master Commit: 119e215e3ea7ff4396245f70a9fa3322625a3c99 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=119e215e3ea7ff4396245f70…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Tue Feb 19 12:17:36 2019 -0600 user32: SetWindowPos() shouldn't change the client rect of a minimized window. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user32/tests/win.c | 12 ++++++++++++ dlls/user32/winpos.c | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c index 50dbf49..ceb4b82 100644 --- a/dlls/user32/tests/win.c +++ b/dlls/user32/tests/win.c @@ -6550,6 +6550,18 @@ static void test_ShowWindow(void) todo_wine ok(EqualRect(&rcEmpty, &rc), "expected %s, got %s\n", wine_dbgstr_rect(&rcEmpty), wine_dbgstr_rect(&rc)); + /* SetWindowPos shouldn't affect the client rect */ + ret = SetWindowPos(hwnd, 0, 0, 0, 0, 0, + SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER); + ok(ret, "not expected ret: %lu\n", ret); + GetWindowRect(hwnd, &rc); + todo_wine + ok(EqualRect(&rcMinimized, &rc), "expected %s, got %s\n", + wine_dbgstr_rect(&rcMinimized), wine_dbgstr_rect(&rc)); + GetClientRect(hwnd, &rc); + todo_wine + ok(EqualRect(&rcEmpty, &rc), "expected %s, got %s\n", + wine_dbgstr_rect(&rcEmpty), wine_dbgstr_rect(&rc)); ShowWindow(hwnd, SW_RESTORE); ok(ret, "not expected ret: %lu\n", ret); diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c index 4b39d0a..38444b2 100644 --- a/dlls/user32/winpos.c +++ b/dlls/user32/winpos.c @@ -1699,7 +1699,7 @@ static BOOL SWP_DoWinPosChanging( WINDOWPOS *pWinpos, RECT *old_window_rect, REC WIN_GetRectangles( pWinpos->hwnd, COORDS_PARENT, old_window_rect, old_client_rect ); *new_window_rect = *old_window_rect; - *new_client_rect = (wndPtr->dwStyle & WS_MINIMIZE) ? *old_window_rect : *old_client_rect; + *new_client_rect = *old_client_rect; if (!(pWinpos->flags & SWP_NOSIZE)) {
1
0
0
0
Nikolay Sivov : mfplat: Add trivial implementation of MFCopyImage().
by Alexandre Julliard
19 Feb '19
19 Feb '19
Module: wine Branch: master Commit: 9fdb1fd96e6165f806f2a400cf1586387c0ff614 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=9fdb1fd96e6165f806f2a400…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Tue Feb 19 16:20:06 2019 +0300 mfplat: Add trivial implementation of MFCopyImage(). Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mfplat/main.c | 15 +++++++++++++-- dlls/mfplat/tests/mfplat.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c index 94d5ab0..21240df 100644 --- a/dlls/mfplat/main.c +++ b/dlls/mfplat/main.c @@ -476,10 +476,21 @@ HRESULT WINAPI MFUnlockPlatform(void) return S_OK; } +/*********************************************************************** + * MFCopyImage (mfplat.@) + */ HRESULT WINAPI MFCopyImage(BYTE *dest, LONG deststride, const BYTE *src, LONG srcstride, DWORD width, DWORD lines) { - FIXME("(%p, %d, %p, %d, %d, %d) stub\n", dest, deststride, src, srcstride, width, lines); - return E_NOTIMPL; + TRACE("(%p, %d, %p, %d, %u, %u)\n", dest, deststride, src, srcstride, width, lines); + + while (lines--) + { + memcpy(dest, src, width); + dest += deststride; + src += srcstride; + } + + return S_OK; } typedef struct _mfattributes diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index 8b06e23..a7b5620 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -36,6 +36,8 @@ #include "wine/test.h" +static HRESULT (WINAPI *pMFCopyImage)(BYTE *dest, LONG deststride, const BYTE *src, LONG srcstride, + DWORD width, DWORD lines); static HRESULT (WINAPI *pMFCreateSourceResolver)(IMFSourceResolver **resolver); static HRESULT (WINAPI *pMFCreateMFByteStreamOnStream)(IStream *stream, IMFByteStream **bytestream); static HRESULT (WINAPI *pMFCreateMemoryBuffer)(DWORD max_length, IMFMediaBuffer **buffer); @@ -308,6 +310,7 @@ static void init_functions(void) HMODULE mod = GetModuleHandleA("mfplat.dll"); #define X(f) if (!(p##f = (void*)GetProcAddress(mod, #f))) return; + X(MFCopyImage); X(MFCreateSourceResolver); X(MFCreateMFByteStreamOnStream); X(MFCreateMemoryBuffer); @@ -877,6 +880,39 @@ static void test_allocate_queue(void) ok(hr == S_OK, "Failed to shutdown, hr %#x.\n", hr); } +static void test_MFCopyImage(void) +{ + BYTE dest[16], src[16]; + HRESULT hr; + + if (!pMFCopyImage) + { + win_skip("MFCopyImage() is not available.\n"); + return; + } + + memset(dest, 0xaa, sizeof(dest)); + memset(src, 0x11, sizeof(src)); + + hr = pMFCopyImage(dest, 8, src, 8, 4, 1); + ok(hr == S_OK, "Failed to copy image %#x.\n", hr); + ok(!memcmp(dest, src, 4) && dest[4] == 0xaa, "Unexpected buffer contents.\n"); + + memset(dest, 0xaa, sizeof(dest)); + memset(src, 0x11, sizeof(src)); + + hr = pMFCopyImage(dest, 8, src, 8, 16, 1); + ok(hr == S_OK, "Failed to copy image %#x.\n", hr); + ok(!memcmp(dest, src, 16), "Unexpected buffer contents.\n"); + + memset(dest, 0xaa, sizeof(dest)); + memset(src, 0x11, sizeof(src)); + + hr = pMFCopyImage(dest, 8, src, 8, 8, 2); + ok(hr == S_OK, "Failed to copy image %#x.\n", hr); + ok(!memcmp(dest, src, 16), "Unexpected buffer contents.\n"); +} + START_TEST(mfplat) { CoInitialize(NULL); @@ -895,6 +931,7 @@ START_TEST(mfplat) test_source_resolver(); test_MFCreateAsyncResult(); test_allocate_queue(); + test_MFCopyImage(); CoUninitialize(); }
1
0
0
0
Nikolay Sivov : mfplat: Add basic support for user queue object lifetime management.
by Alexandre Julliard
19 Feb '19
19 Feb '19
Module: wine Branch: master Commit: 1fb58ab2fb08498b68d753de5456d2a1a0d6cb59 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=1fb58ab2fb08498b68d753de…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Tue Feb 19 16:20:05 2019 +0300 mfplat: Add basic support for user queue object lifetime management. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mfplat/mfplat.spec | 6 +- dlls/mfplat/queue.c | 139 +++++++++++++++++++++++++++++++++++++++++++++ dlls/mfplat/tests/mfplat.c | 40 +++++++++++++ include/mfapi.h | 3 + include/mferror.h | 2 + 5 files changed, 187 insertions(+), 3 deletions(-) diff --git a/dlls/mfplat/mfplat.spec b/dlls/mfplat/mfplat.spec index 9813789..8f5ee77 100644 --- a/dlls/mfplat/mfplat.spec +++ b/dlls/mfplat/mfplat.spec @@ -16,7 +16,7 @@ @ stub GetD3DFormatFromMFSubtype @ stub LFGetGlobalPool @ stub MFAddPeriodicCallback -@ stub MFAllocateWorkQueue +@ stdcall MFAllocateWorkQueue(ptr) @ stub MFAllocateWorkQueueEx @ stub MFAppendCollection @ stub MFAverageTimePerFrameToFrameRate @@ -119,7 +119,7 @@ @ stub MFInvokeCallback @ stub MFJoinIoPort @ stdcall MFLockPlatform() -@ stub MFLockWorkQueue +@ stdcall MFLockWorkQueue(long) @ stub MFPutWorkItem @ stub MFPutWorkItemEx @ stub MFRecordError @@ -147,7 +147,7 @@ @ stub MFTraceFuncEnter @ stub MFUnblockThread @ stdcall MFUnlockPlatform() -@ stub MFUnlockWorkQueue +@ stdcall MFUnlockWorkQueue(long) @ stub MFUnwrapMediaType @ stub MFValidateMediaTypeSize @ stub MFWrapMediaType diff --git a/dlls/mfplat/queue.c b/dlls/mfplat/queue.c index 32c7a6c..65f111b 100644 --- a/dlls/mfplat/queue.c +++ b/dlls/mfplat/queue.c @@ -21,12 +21,121 @@ #define COBJMACROS #include "mfapi.h" +#include "mferror.h" #include "wine/debug.h" #include "wine/heap.h" WINE_DEFAULT_DEBUG_CHANNEL(mfplat); +#define FIRST_USER_QUEUE_HANDLE 5 +#define MAX_USER_QUEUE_HANDLES 124 + +struct queue +{ + void *obj; + LONG refcount; + WORD generation; +}; + +static struct queue user_queues[MAX_USER_QUEUE_HANDLES]; +static struct queue *next_free_user_queue; +static struct queue *next_unused_user_queue = user_queues; +static WORD queue_generation; + +static CRITICAL_SECTION user_queues_section; +static CRITICAL_SECTION_DEBUG user_queues_critsect_debug = +{ + 0, 0, &user_queues_section, + { &user_queues_critsect_debug.ProcessLocksList, &user_queues_critsect_debug.ProcessLocksList }, + 0, 0, { (DWORD_PTR)(__FILE__ ": user_queues_section") } +}; +static CRITICAL_SECTION user_queues_section = { &user_queues_critsect_debug, -1, 0, 0, 0, 0 }; + +static struct queue *get_queue_obj(DWORD handle) +{ + unsigned int idx = HIWORD(handle) - FIRST_USER_QUEUE_HANDLE; + + if (idx < MAX_USER_QUEUE_HANDLES && user_queues[idx].refcount) + { + if (LOWORD(handle) == user_queues[idx].generation) + return &user_queues[idx]; + } + + return NULL; +} + +static HRESULT alloc_user_queue(DWORD *queue) +{ + struct queue *entry; + unsigned int idx; + + EnterCriticalSection(&user_queues_section); + + entry = next_free_user_queue; + if (entry) + next_free_user_queue = entry->obj; + else if (next_unused_user_queue < user_queues + MAX_USER_QUEUE_HANDLES) + entry = next_unused_user_queue++; + else + { + LeaveCriticalSection(&user_queues_section); + return E_OUTOFMEMORY; + } + + entry->refcount = 1; + entry->obj = NULL; + if (++queue_generation == 0xffff) queue_generation = 1; + entry->generation = queue_generation; + idx = entry - user_queues + FIRST_USER_QUEUE_HANDLE; + *queue = (idx << 16) | entry->generation; + LeaveCriticalSection(&user_queues_section); + + return S_OK; +} + +static HRESULT lock_user_queue(DWORD queue) +{ + HRESULT hr = MF_E_INVALID_WORKQUEUE; + struct queue *entry; + + if (!(queue & MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK)) + return S_OK; + + EnterCriticalSection(&user_queues_section); + entry = get_queue_obj(queue); + if (entry && entry->refcount) + { + entry->refcount++; + hr = S_OK; + } + LeaveCriticalSection(&user_queues_section); + return hr; +} + +static HRESULT unlock_user_queue(DWORD queue) +{ + HRESULT hr = MF_E_INVALID_WORKQUEUE; + struct queue *entry; + + if (!(queue & MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK)) + return S_OK; + + EnterCriticalSection(&user_queues_section); + entry = get_queue_obj(queue); + if (entry && entry->refcount) + { + if (--entry->refcount == 0) + { + entry->obj = next_free_user_queue; + next_free_user_queue = entry; + } + hr = S_OK; + } + LeaveCriticalSection(&user_queues_section); + return hr; +} + struct async_result { MFASYNCRESULT result; @@ -192,3 +301,33 @@ HRESULT WINAPI MFCreateAsyncResult(IUnknown *object, IMFAsyncCallback *callback, return S_OK; } + +/*********************************************************************** + * MFAllocateWorkQueue (mfplat.@) + */ +HRESULT WINAPI MFAllocateWorkQueue(DWORD *queue) +{ + TRACE("%p.\n", queue); + + return alloc_user_queue(queue); +} + +/*********************************************************************** + * MFLockWorkQueue (mfplat.@) + */ +HRESULT WINAPI MFLockWorkQueue(DWORD queue) +{ + TRACE("%#x.\n", queue); + + return lock_user_queue(queue); +} + +/*********************************************************************** + * MFUnlockWorkQueue (mfplat.@) + */ +HRESULT WINAPI MFUnlockWorkQueue(DWORD queue) +{ + TRACE("%#x.\n", queue); + + return unlock_user_queue(queue); +} diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index 7d202bc..8b06e23 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -838,6 +838,45 @@ static void test_startup(void) ok(hr == S_OK, "Failed to shutdown, hr %#x.\n", hr); } +static void test_allocate_queue(void) +{ + DWORD queue, queue2; + HRESULT hr; + + hr = MFStartup(MF_VERSION, MFSTARTUP_FULL); + ok(hr == S_OK, "Failed to start up, hr %#x.\n", hr); + + hr = MFAllocateWorkQueue(&queue); + ok(hr == S_OK, "Failed to allocate a queue, hr %#x.\n", hr); + ok(queue & MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK, "Unexpected queue id.\n"); + + hr = MFUnlockWorkQueue(queue); + ok(hr == S_OK, "Failed to unlock the queue, hr %#x.\n", hr); + + hr = MFUnlockWorkQueue(queue); + ok(FAILED(hr), "Unexpected hr %#x.\n", hr); + + hr = MFAllocateWorkQueue(&queue2); + ok(hr == S_OK, "Failed to allocate a queue, hr %#x.\n", hr); + ok(queue2 & MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK, "Unexpected queue id.\n"); + + hr = MFUnlockWorkQueue(queue2); + ok(hr == S_OK, "Failed to unlock the queue, hr %#x.\n", hr); + + /* Unlock in system queue range. */ + hr = MFUnlockWorkQueue(MFASYNC_CALLBACK_QUEUE_STANDARD); + ok(hr == S_OK, "Unexpected hr %#x.\n", hr); + + hr = MFUnlockWorkQueue(MFASYNC_CALLBACK_QUEUE_UNDEFINED); + ok(hr == S_OK, "Unexpected hr %#x.\n", hr); + + hr = MFUnlockWorkQueue(0x20); + ok(hr == S_OK, "Unexpected hr %#x.\n", hr); + + hr = MFShutdown(); + ok(hr == S_OK, "Failed to shutdown, hr %#x.\n", hr); +} + START_TEST(mfplat) { CoInitialize(NULL); @@ -855,6 +894,7 @@ START_TEST(mfplat) test_MFCreateMemoryBuffer(); test_source_resolver(); test_MFCreateAsyncResult(); + test_allocate_queue(); CoUninitialize(); } diff --git a/include/mfapi.h b/include/mfapi.h index 1575cc3..d70a300 100644 --- a/include/mfapi.h +++ b/include/mfapi.h @@ -80,6 +80,7 @@ DEFINE_GUID(MFMediaType_Video, 0x73646976, 0x0000, 0x0010, 0x80, 0x00, 0 typedef unsigned __int64 MFWORKITEM_KEY; +HRESULT WINAPI MFAllocateWorkQueue(DWORD *queue); HRESULT WINAPI MFCancelWorkItem(MFWORKITEM_KEY key); HRESULT WINAPI MFCopyImage(BYTE *dest, LONG deststride, const BYTE *src, LONG srcstride, DWORD width, DWORD lines); HRESULT WINAPI MFCreateAttributes(IMFAttributes **attributes, UINT32 size); @@ -99,6 +100,7 @@ HRESULT WINAPI MFTEnum(GUID category, UINT32 flags, MFT_REGISTER_TYPE_INFO *inpu HRESULT WINAPI MFTEnumEx(GUID category, UINT32 flags, const MFT_REGISTER_TYPE_INFO *input_type, const MFT_REGISTER_TYPE_INFO *output_type, IMFActivate ***activate, UINT32 *pcount); +HRESULT WINAPI MFInvokeCallback(IMFAsyncResult *result); HRESULT WINAPI MFLockPlatform(void); HRESULT WINAPI MFTRegister(CLSID clsid, GUID category, LPWSTR name, UINT32 flags, UINT32 cinput, MFT_REGISTER_TYPE_INFO *input_types, UINT32 coutput, @@ -109,6 +111,7 @@ HRESULT WINAPI MFTRegisterLocal(IClassFactory *factory, REFGUID category, LPCWST HRESULT WINAPI MFShutdown(void); HRESULT WINAPI MFStartup(ULONG version, DWORD flags); HRESULT WINAPI MFUnlockPlatform(void); +HRESULT WINAPI MFUnlockWorkQueue(DWORD queue); HRESULT WINAPI MFTUnregister(CLSID clsid); HRESULT WINAPI MFTUnregisterLocal(IClassFactory *factory); HRESULT WINAPI MFGetPluginControl(IMFPluginControl**); diff --git a/include/mferror.h b/include/mferror.h index 1f5ae98..53024ca 100644 --- a/include/mferror.h +++ b/include/mferror.h @@ -65,6 +65,8 @@ #define MF_E_INVALID_POSITION _HRESULT_TYPEDEF_(0xc00d36e5) #define MF_E_ATTRIBUTENOTFOUND _HRESULT_TYPEDEF_(0xc00d36e6) #define MF_E_PROPERTY_TYPE_NOT_ALLOWED _HRESULT_TYPEDEF_(0xc00d36e7) +#define MF_E_INVALID_WORKQUEUE _HRESULT_TYPEDEF_(0xc00d36ff) +#define MF_E_SHUTDOWN _HRESULT_TYPEDEF_(0xc00d3e85) #define MF_E_TOPO_INVALID_OPTIONAL_NODE _HRESULT_TYPEDEF_(0xc00d520e) #define MF_E_TOPO_CANNOT_FIND_DECRYPTOR _HRESULT_TYPEDEF_(0xc00d5211)
1
0
0
0
Nikolay Sivov : mfplat: Hold platform lock for async results lifetime.
by Alexandre Julliard
19 Feb '19
19 Feb '19
Module: wine Branch: master Commit: 3d463b8ff581aa6348b84471fa32448127b7bb5c URL:
https://source.winehq.org/git/wine.git/?a=commit;h=3d463b8ff581aa6348b84471…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Tue Feb 19 16:20:04 2019 +0300 mfplat: Hold platform lock for async results lifetime. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mfplat/main.c | 23 +++++++++++++++++++++++ dlls/mfplat/mfplat.spec | 4 ++-- dlls/mfplat/queue.c | 4 ++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c index 7e1736c..94d5ab0 100644 --- a/dlls/mfplat/main.c +++ b/dlls/mfplat/main.c @@ -38,6 +38,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(mfplat); +static LONG platform_lock; + static const WCHAR transform_keyW[] = {'M','e','d','i','a','F','o','u','n','d','a','t','i','o','n','\\', 'T','r','a','n','s','f','o','r','m','s',0}; static const WCHAR categories_keyW[] = {'M','e','d','i','a','F','o','u','n','d','a','t','i','o','n','\\', @@ -450,6 +452,27 @@ HRESULT WINAPI MFStartup(ULONG version, DWORD flags) HRESULT WINAPI MFShutdown(void) { FIXME("(): stub\n"); + + return S_OK; +} + +/*********************************************************************** + * MFLockPlatform (mfplat.@) + */ +HRESULT WINAPI MFLockPlatform(void) +{ + InterlockedIncrement(&platform_lock); + + return S_OK; +} + +/*********************************************************************** + * MFUnlockPlatform (mfplat.@) + */ +HRESULT WINAPI MFUnlockPlatform(void) +{ + InterlockedDecrement(&platform_lock); + return S_OK; } diff --git a/dlls/mfplat/mfplat.spec b/dlls/mfplat/mfplat.spec index b4e6c77..9813789 100644 --- a/dlls/mfplat/mfplat.spec +++ b/dlls/mfplat/mfplat.spec @@ -118,7 +118,7 @@ @ stub MFInitVideoFormat_RGB @ stub MFInvokeCallback @ stub MFJoinIoPort -@ stub MFLockPlatform +@ stdcall MFLockPlatform() @ stub MFLockWorkQueue @ stub MFPutWorkItem @ stub MFPutWorkItemEx @@ -146,7 +146,7 @@ @ stub MFTraceError @ stub MFTraceFuncEnter @ stub MFUnblockThread -@ stub MFUnlockPlatform +@ stdcall MFUnlockPlatform() @ stub MFUnlockWorkQueue @ stub MFUnwrapMediaType @ stub MFValidateMediaTypeSize diff --git a/dlls/mfplat/queue.c b/dlls/mfplat/queue.c index 762af24..32c7a6c 100644 --- a/dlls/mfplat/queue.c +++ b/dlls/mfplat/queue.c @@ -83,6 +83,8 @@ static ULONG WINAPI async_result_Release(IMFAsyncResult *iface) if (result->state) IUnknown_Release(result->state); heap_free(result); + + MFUnlockPlatform(); } return refcount; @@ -172,6 +174,8 @@ HRESULT WINAPI MFCreateAsyncResult(IUnknown *object, IMFAsyncCallback *callback, if (!result) return E_OUTOFMEMORY; + MFLockPlatform(); + result->result.AsyncResult.lpVtbl = &async_result_vtbl; result->refcount = 1; result->object = object;
1
0
0
0
Nikolay Sivov : mfplat/tests: Remove initialization from tests that don' t need it.
by Alexandre Julliard
19 Feb '19
19 Feb '19
Module: wine Branch: master Commit: e87faa1ad2d11dd1db8c2194bf6d350ca9840bd5 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=e87faa1ad2d11dd1db8c2194…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Tue Feb 19 16:20:03 2019 +0300 mfplat/tests: Remove initialization from tests that don't need it. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mfplat/tests/mfplat.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index 395fde4..7d202bc 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -319,12 +319,6 @@ static void test_MFCreateMediaType(void) HRESULT hr; IMFMediaType *mediatype; - hr = MFStartup(MAKELONG( MF_API_VERSION, 0xdead ), MFSTARTUP_FULL); - ok(hr == MF_E_BAD_STARTUP_VERSION, "got 0x%08x\n", hr); - - hr = MFStartup(MF_VERSION, MFSTARTUP_FULL); - ok(hr == S_OK, "got 0x%08x\n", hr); - if(0) { /* Crash on Windows Vista/7 */ @@ -339,8 +333,6 @@ if(0) todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); IMFMediaType_Release(mediatype); - - MFShutdown(); } static void test_MFCreateMediaEvent(void) @@ -832,12 +824,27 @@ static void test_MFCreateAsyncResult(void) ok(!refcount, "Unexpected refcount %u\n.", refcount); } +static void test_startup(void) +{ + HRESULT hr; + + hr = MFStartup(MAKELONG(MF_API_VERSION, 0xdead), MFSTARTUP_FULL); + ok(hr == MF_E_BAD_STARTUP_VERSION, "Unexpected hr %#x.\n", hr); + + hr = MFStartup(MF_VERSION, MFSTARTUP_FULL); + ok(hr == S_OK, "Failed to start up, hr %#x.\n", hr); + + hr = MFShutdown(); + ok(hr == S_OK, "Failed to shutdown, hr %#x.\n", hr); +} + START_TEST(mfplat) { CoInitialize(NULL); init_functions(); + test_startup(); test_register(); test_MFCreateMediaType(); test_MFCreateMediaEvent();
1
0
0
0
Andrey Gusev : ext-ms-win-gdi-font-l1-1-1: Add dll.
by Alexandre Julliard
19 Feb '19
19 Feb '19
Module: wine Branch: master Commit: a21448a663dea82a6200587d8e5983d941d9f974 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=a21448a663dea82a6200587d…
Author: Andrey Gusev <andrey.goosev(a)gmail.com> Date: Tue Feb 19 14:29:53 2019 +0200 ext-ms-win-gdi-font-l1-1-1: Add dll. Signed-off-by: Andrey Gusev <andrey.goosev(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- configure | 2 ++ configure.ac | 1 + dlls/ext-ms-win-gdi-font-l1-1-1/Makefile.in | 1 + .../ext-ms-win-gdi-font-l1-1-1.spec | 30 ++++++++++++++++++++++ tools/make_specfiles | 1 + 5 files changed, 35 insertions(+) diff --git a/configure b/configure index 9f9f438..2dded71 100755 --- a/configure +++ b/configure @@ -1269,6 +1269,7 @@ enable_ext_ms_win_gdi_devcaps_l1_1_0 enable_ext_ms_win_gdi_draw_l1_1_0 enable_ext_ms_win_gdi_draw_l1_1_1 enable_ext_ms_win_gdi_font_l1_1_0 +enable_ext_ms_win_gdi_font_l1_1_1 enable_ext_ms_win_gdi_render_l1_1_0 enable_ext_ms_win_kernel32_package_current_l1_1_0 enable_ext_ms_win_kernel32_package_l1_1_1 @@ -19575,6 +19576,7 @@ wine_fn_config_makefile dlls/ext-ms-win-gdi-devcaps-l1-1-0 enable_ext_ms_win_gdi wine_fn_config_makefile dlls/ext-ms-win-gdi-draw-l1-1-0 enable_ext_ms_win_gdi_draw_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-gdi-draw-l1-1-1 enable_ext_ms_win_gdi_draw_l1_1_1 wine_fn_config_makefile dlls/ext-ms-win-gdi-font-l1-1-0 enable_ext_ms_win_gdi_font_l1_1_0 +wine_fn_config_makefile dlls/ext-ms-win-gdi-font-l1-1-1 enable_ext_ms_win_gdi_font_l1_1_1 wine_fn_config_makefile dlls/ext-ms-win-gdi-render-l1-1-0 enable_ext_ms_win_gdi_render_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-kernel32-package-current-l1-1-0 enable_ext_ms_win_kernel32_package_current_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-kernel32-package-l1-1-1 enable_ext_ms_win_kernel32_package_l1_1_1 diff --git a/configure.ac b/configure.ac index f8cce37..29be1d0 100644 --- a/configure.ac +++ b/configure.ac @@ -3307,6 +3307,7 @@ WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-devcaps-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-draw-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-draw-l1-1-1) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-font-l1-1-0) +WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-font-l1-1-1) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-render-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-kernel32-package-current-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-kernel32-package-l1-1-1) diff --git a/dlls/ext-ms-win-gdi-font-l1-1-1/Makefile.in b/dlls/ext-ms-win-gdi-font-l1-1-1/Makefile.in new file mode 100644 index 0000000..eb60e7a --- /dev/null +++ b/dlls/ext-ms-win-gdi-font-l1-1-1/Makefile.in @@ -0,0 +1 @@ +MODULE = ext-ms-win-gdi-font-l1-1-1.dll diff --git a/dlls/ext-ms-win-gdi-font-l1-1-1/ext-ms-win-gdi-font-l1-1-1.spec b/dlls/ext-ms-win-gdi-font-l1-1-1/ext-ms-win-gdi-font-l1-1-1.spec new file mode 100644 index 0000000..c1b0679 --- /dev/null +++ b/dlls/ext-ms-win-gdi-font-l1-1-1/ext-ms-win-gdi-font-l1-1-1.spec @@ -0,0 +1,30 @@ +@ stdcall CreateFontIndirectA(ptr) gdi32.CreateFontIndirectA +@ stdcall CreateFontIndirectW(ptr) gdi32.CreateFontIndirectW +@ stdcall EnumFontFamiliesA(long str ptr long) gdi32.EnumFontFamiliesA +@ stdcall EnumFontFamiliesExA(long ptr ptr long long) gdi32.EnumFontFamiliesExA +@ stdcall EnumFontFamiliesExW(long ptr ptr long long) gdi32.EnumFontFamiliesExW +@ stdcall ExtTextOutA(long long long long ptr str long ptr) gdi32.ExtTextOutA +@ stdcall ExtTextOutW(long long long long ptr wstr long ptr) gdi32.ExtTextOutW +@ stdcall GetCharABCWidthsW(long long long ptr) gdi32.GetCharABCWidthsW +@ stdcall GetCharWidth32A(long long long long) gdi32.GetCharWidth32A +@ stdcall GetCharWidthA(long long long long) gdi32.GetCharWidthA +@ stdcall GetCharWidthW(long long long long) gdi32.GetCharWidthW +@ stdcall GetFontData(long long long ptr long) gdi32.GetFontData +@ stdcall GetFontFileData(long long int64 ptr long) gdi32.GetFontFileData +@ stdcall GetFontFileInfo(long long ptr long ptr) gdi32.GetFontFileInfo +@ stdcall GetFontRealizationInfo(long ptr) gdi32.GetFontRealizationInfo +@ stdcall GetGlyphIndicesW(long ptr long ptr long) gdi32.GetGlyphIndicesW +@ stdcall GetGlyphOutlineW(long long long ptr long ptr ptr) gdi32.GetGlyphOutlineW +@ stdcall GetKerningPairsA(long long ptr) gdi32.GetKerningPairsA +@ stdcall GetKerningPairsW(long long ptr) gdi32.GetKerningPairsW +@ stdcall GetOutlineTextMetricsA(long long ptr) gdi32.GetOutlineTextMetricsA +@ stdcall GetOutlineTextMetricsW(long long ptr) gdi32.GetOutlineTextMetricsW +@ stdcall GetTextCharsetInfo(long ptr long) gdi32.GetTextCharsetInfo +@ stdcall GetTextExtentExPointW(long wstr long long ptr ptr ptr) gdi32.GetTextExtentExPointW +@ stdcall GetTextFaceA(long long ptr) gdi32.GetTextFaceA +@ stdcall GetTextFaceW(long long ptr) gdi32.GetTextFaceW +@ stdcall GetTextMetricsW(long ptr) gdi32.GetTextMetricsW +@ stdcall SetTextAlign(long long) gdi32.SetTextAlign +@ stdcall SetTextColor(long long) gdi32.SetTextColor +@ stdcall TextOutW(long long long wstr long) gdi32.TextOutW +@ stdcall TranslateCharsetInfo(ptr ptr long) gdi32.TranslateCharsetInfo diff --git a/tools/make_specfiles b/tools/make_specfiles index 9201be4..8933ae4 100755 --- a/tools/make_specfiles +++ b/tools/make_specfiles @@ -439,6 +439,7 @@ my @dll_groups = "ext-ms-win-gdi-draw-l1-1-0", "ext-ms-win-gdi-draw-l1-1-1", "ext-ms-win-gdi-font-l1-1-0", + "ext-ms-win-gdi-font-l1-1-1", "ext-ms-win-gdi-render-l1-1-0", "ext-ms-win-rtcore-gdi-devcaps-l1-1-0", "ext-ms-win-rtcore-gdi-object-l1-1-0",
1
0
0
0
Andrey Gusev : ext-ms-win-gdi-font-l1-1-0: Add dll.
by Alexandre Julliard
19 Feb '19
19 Feb '19
Module: wine Branch: master Commit: 5de4a5bc2ff0001680521863ef0c3200137bee04 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=5de4a5bc2ff0001680521863…
Author: Andrey Gusev <andrey.goosev(a)gmail.com> Date: Tue Feb 19 14:29:52 2019 +0200 ext-ms-win-gdi-font-l1-1-0: Add dll. Signed-off-by: Andrey Gusev <andrey.goosev(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- configure | 2 ++ configure.ac | 1 + dlls/ext-ms-win-gdi-font-l1-1-0/Makefile.in | 1 + .../ext-ms-win-gdi-font-l1-1-0.spec | 12 ++++++++++++ tools/make_specfiles | 1 + 5 files changed, 17 insertions(+) diff --git a/configure b/configure index 2217ebd..9f9f438 100755 --- a/configure +++ b/configure @@ -1268,6 +1268,7 @@ enable_ext_ms_win_gdi_dc_l1_2_0 enable_ext_ms_win_gdi_devcaps_l1_1_0 enable_ext_ms_win_gdi_draw_l1_1_0 enable_ext_ms_win_gdi_draw_l1_1_1 +enable_ext_ms_win_gdi_font_l1_1_0 enable_ext_ms_win_gdi_render_l1_1_0 enable_ext_ms_win_kernel32_package_current_l1_1_0 enable_ext_ms_win_kernel32_package_l1_1_1 @@ -19573,6 +19574,7 @@ wine_fn_config_makefile dlls/ext-ms-win-gdi-dc-l1-2-0 enable_ext_ms_win_gdi_dc_l wine_fn_config_makefile dlls/ext-ms-win-gdi-devcaps-l1-1-0 enable_ext_ms_win_gdi_devcaps_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-gdi-draw-l1-1-0 enable_ext_ms_win_gdi_draw_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-gdi-draw-l1-1-1 enable_ext_ms_win_gdi_draw_l1_1_1 +wine_fn_config_makefile dlls/ext-ms-win-gdi-font-l1-1-0 enable_ext_ms_win_gdi_font_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-gdi-render-l1-1-0 enable_ext_ms_win_gdi_render_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-kernel32-package-current-l1-1-0 enable_ext_ms_win_kernel32_package_current_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-kernel32-package-l1-1-1 enable_ext_ms_win_kernel32_package_l1_1_1 diff --git a/configure.ac b/configure.ac index 6c6e708..f8cce37 100644 --- a/configure.ac +++ b/configure.ac @@ -3306,6 +3306,7 @@ WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-dc-l1-2-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-devcaps-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-draw-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-draw-l1-1-1) +WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-font-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-render-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-kernel32-package-current-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-kernel32-package-l1-1-1) diff --git a/dlls/ext-ms-win-gdi-font-l1-1-0/Makefile.in b/dlls/ext-ms-win-gdi-font-l1-1-0/Makefile.in new file mode 100644 index 0000000..2361294 --- /dev/null +++ b/dlls/ext-ms-win-gdi-font-l1-1-0/Makefile.in @@ -0,0 +1 @@ +MODULE = ext-ms-win-gdi-font-l1-1-0.dll diff --git a/dlls/ext-ms-win-gdi-font-l1-1-0/ext-ms-win-gdi-font-l1-1-0.spec b/dlls/ext-ms-win-gdi-font-l1-1-0/ext-ms-win-gdi-font-l1-1-0.spec new file mode 100644 index 0000000..8b7c518 --- /dev/null +++ b/dlls/ext-ms-win-gdi-font-l1-1-0/ext-ms-win-gdi-font-l1-1-0.spec @@ -0,0 +1,12 @@ +@ stdcall CreateFontIndirectA(ptr) gdi32.CreateFontIndirectA +@ stdcall CreateFontIndirectW(ptr) gdi32.CreateFontIndirectW +@ stdcall EnumFontFamiliesA(long str ptr long) gdi32.EnumFontFamiliesA +@ stdcall EnumFontFamiliesExA(long ptr ptr long long) gdi32.EnumFontFamiliesExA +@ stdcall EnumFontFamiliesExW(long ptr ptr long long) gdi32.EnumFontFamiliesExW +@ stdcall GetFontData(long long long ptr long) gdi32.GetFontData +@ stdcall GetFontFileData(long long int64 ptr long) gdi32.GetFontFileData +@ stdcall GetFontFileInfo(long long ptr long ptr) gdi32.GetFontFileInfo +@ stdcall GetFontRealizationInfo(long ptr) gdi32.GetFontRealizationInfo +@ stdcall GetTextFaceA(long long ptr) gdi32.GetTextFaceA +@ stdcall GetTextMetricsW(long ptr) gdi32.GetTextMetricsW +@ stdcall TranslateCharsetInfo(ptr ptr long) gdi32.TranslateCharsetInfo diff --git a/tools/make_specfiles b/tools/make_specfiles index 9fe4dd1..9201be4 100755 --- a/tools/make_specfiles +++ b/tools/make_specfiles @@ -438,6 +438,7 @@ my @dll_groups = "ext-ms-win-gdi-devcaps-l1-1-0", "ext-ms-win-gdi-draw-l1-1-0", "ext-ms-win-gdi-draw-l1-1-1", + "ext-ms-win-gdi-font-l1-1-0", "ext-ms-win-gdi-render-l1-1-0", "ext-ms-win-rtcore-gdi-devcaps-l1-1-0", "ext-ms-win-rtcore-gdi-object-l1-1-0",
1
0
0
0
Andrey Gusev : ext-ms-win-ntuser-gui-l1-1-0: Add dll.
by Alexandre Julliard
19 Feb '19
19 Feb '19
Module: wine Branch: master Commit: 2764f8c12bc8873bca0b1ed5fd598ea94cc6249e URL:
https://source.winehq.org/git/wine.git/?a=commit;h=2764f8c12bc8873bca0b1ed5…
Author: Andrey Gusev <andrey.goosev(a)gmail.com> Date: Tue Feb 19 14:29:51 2019 +0200 ext-ms-win-ntuser-gui-l1-1-0: Add dll. Signed-off-by: Andrey Gusev <andrey.goosev(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- configure | 2 ++ configure.ac | 1 + dlls/ext-ms-win-ntuser-gui-l1-1-0/Makefile.in | 1 + .../ext-ms-win-ntuser-gui-l1-1-0.spec | 16 ++++++++++++++++ tools/make_specfiles | 1 + 5 files changed, 21 insertions(+) diff --git a/configure b/configure index 2161c57..2217ebd 100755 --- a/configure +++ b/configure @@ -1272,6 +1272,7 @@ enable_ext_ms_win_gdi_render_l1_1_0 enable_ext_ms_win_kernel32_package_current_l1_1_0 enable_ext_ms_win_kernel32_package_l1_1_1 enable_ext_ms_win_ntuser_draw_l1_1_0 +enable_ext_ms_win_ntuser_gui_l1_1_0 enable_ext_ms_win_ntuser_gui_l1_3_0 enable_ext_ms_win_ntuser_keyboard_l1_3_0 enable_ext_ms_win_ntuser_message_l1_1_1 @@ -19576,6 +19577,7 @@ wine_fn_config_makefile dlls/ext-ms-win-gdi-render-l1-1-0 enable_ext_ms_win_gdi_ wine_fn_config_makefile dlls/ext-ms-win-kernel32-package-current-l1-1-0 enable_ext_ms_win_kernel32_package_current_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-kernel32-package-l1-1-1 enable_ext_ms_win_kernel32_package_l1_1_1 wine_fn_config_makefile dlls/ext-ms-win-ntuser-draw-l1-1-0 enable_ext_ms_win_ntuser_draw_l1_1_0 +wine_fn_config_makefile dlls/ext-ms-win-ntuser-gui-l1-1-0 enable_ext_ms_win_ntuser_gui_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-ntuser-gui-l1-3-0 enable_ext_ms_win_ntuser_gui_l1_3_0 wine_fn_config_makefile dlls/ext-ms-win-ntuser-keyboard-l1-3-0 enable_ext_ms_win_ntuser_keyboard_l1_3_0 wine_fn_config_makefile dlls/ext-ms-win-ntuser-message-l1-1-1 enable_ext_ms_win_ntuser_message_l1_1_1 diff --git a/configure.ac b/configure.ac index 300c4e2..6c6e708 100644 --- a/configure.ac +++ b/configure.ac @@ -3310,6 +3310,7 @@ WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-render-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-kernel32-package-current-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-kernel32-package-l1-1-1) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-ntuser-draw-l1-1-0) +WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-ntuser-gui-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-ntuser-gui-l1-3-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-ntuser-keyboard-l1-3-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-ntuser-message-l1-1-1) diff --git a/dlls/ext-ms-win-ntuser-gui-l1-1-0/Makefile.in b/dlls/ext-ms-win-ntuser-gui-l1-1-0/Makefile.in new file mode 100644 index 0000000..919be10 --- /dev/null +++ b/dlls/ext-ms-win-ntuser-gui-l1-1-0/Makefile.in @@ -0,0 +1 @@ +MODULE = ext-ms-win-ntuser-gui-l1-1-0.dll diff --git a/dlls/ext-ms-win-ntuser-gui-l1-1-0/ext-ms-win-ntuser-gui-l1-1-0.spec b/dlls/ext-ms-win-ntuser-gui-l1-1-0/ext-ms-win-ntuser-gui-l1-1-0.spec new file mode 100644 index 0000000..212f509 --- /dev/null +++ b/dlls/ext-ms-win-ntuser-gui-l1-1-0/ext-ms-win-ntuser-gui-l1-1-0.spec @@ -0,0 +1,16 @@ +@ stdcall ClientToScreen(long ptr) user32.ClientToScreen +@ stdcall DestroyCursor(long) user32.DestroyCursor +@ stdcall DestroyIcon(long) user32.DestroyIcon +@ stdcall DrawIconEx(long long long long long long long long long) user32.DrawIconEx +@ stdcall FillRect(long ptr long) user32.FillRect +@ stdcall GetCursor() user32.GetCursor +@ stdcall GetCursorInfo(ptr) user32.GetCursorInfo +@ stdcall GetIconInfo(long ptr) user32.GetIconInfo +@ stdcall LoadCursorW(long wstr) user32.LoadCursorW +@ stdcall LoadIconA(long str) user32.LoadIconA +@ stdcall LoadIconW(long wstr) user32.LoadIconW +@ stdcall LoadImageA(long str long long long long) user32.LoadImageA +@ stdcall LoadImageW(long wstr long long long long) user32.LoadImageW +@ stdcall MapWindowPoints(long long ptr long) user32.MapWindowPoints +@ stdcall ScreenToClient(long ptr) user32.ScreenToClient +@ stdcall SetCursor(long) user32.SetCursor diff --git a/tools/make_specfiles b/tools/make_specfiles index c00f3bf..9fe4dd1 100755 --- a/tools/make_specfiles +++ b/tools/make_specfiles @@ -377,6 +377,7 @@ my @dll_groups = "api-ms-win-rtcore-ntuser-wmpointer-l1-1-0", "api-ms-win-rtcore-ntuser-wmpointer-l1-1-3", "ext-ms-win-ntuser-draw-l1-1-0", + "ext-ms-win-ntuser-gui-l1-1-0", "ext-ms-win-ntuser-gui-l1-3-0", "ext-ms-win-ntuser-keyboard-l1-3-0", "ext-ms-win-ntuser-message-l1-1-1",
1
0
0
0
Andrey Gusev : ext-ms-win-gdi-draw-l1-1-0: Add dll.
by Alexandre Julliard
19 Feb '19
19 Feb '19
Module: wine Branch: master Commit: c62db16787d62cf38af79aee8646ee18b902f737 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=c62db16787d62cf38af79aee…
Author: Andrey Gusev <andrey.goosev(a)gmail.com> Date: Tue Feb 19 14:29:50 2019 +0200 ext-ms-win-gdi-draw-l1-1-0: Add dll. Signed-off-by: Andrey Gusev <andrey.goosev(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- configure | 2 ++ configure.ac | 1 + dlls/ext-ms-win-gdi-draw-l1-1-0/Makefile.in | 1 + .../ext-ms-win-gdi-draw-l1-1-0.spec | 18 ++++++++++++++++++ tools/make_specfiles | 1 + 5 files changed, 23 insertions(+) diff --git a/configure b/configure index f3739a4..2161c57 100755 --- a/configure +++ b/configure @@ -1266,6 +1266,7 @@ enable_ext_ms_win_gdi_dc_create_l1_1_0 enable_ext_ms_win_gdi_dc_create_l1_1_1 enable_ext_ms_win_gdi_dc_l1_2_0 enable_ext_ms_win_gdi_devcaps_l1_1_0 +enable_ext_ms_win_gdi_draw_l1_1_0 enable_ext_ms_win_gdi_draw_l1_1_1 enable_ext_ms_win_gdi_render_l1_1_0 enable_ext_ms_win_kernel32_package_current_l1_1_0 @@ -19569,6 +19570,7 @@ wine_fn_config_makefile dlls/ext-ms-win-gdi-dc-create-l1-1-0 enable_ext_ms_win_g wine_fn_config_makefile dlls/ext-ms-win-gdi-dc-create-l1-1-1 enable_ext_ms_win_gdi_dc_create_l1_1_1 wine_fn_config_makefile dlls/ext-ms-win-gdi-dc-l1-2-0 enable_ext_ms_win_gdi_dc_l1_2_0 wine_fn_config_makefile dlls/ext-ms-win-gdi-devcaps-l1-1-0 enable_ext_ms_win_gdi_devcaps_l1_1_0 +wine_fn_config_makefile dlls/ext-ms-win-gdi-draw-l1-1-0 enable_ext_ms_win_gdi_draw_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-gdi-draw-l1-1-1 enable_ext_ms_win_gdi_draw_l1_1_1 wine_fn_config_makefile dlls/ext-ms-win-gdi-render-l1-1-0 enable_ext_ms_win_gdi_render_l1_1_0 wine_fn_config_makefile dlls/ext-ms-win-kernel32-package-current-l1-1-0 enable_ext_ms_win_kernel32_package_current_l1_1_0 diff --git a/configure.ac b/configure.ac index f7eb42b..300c4e2 100644 --- a/configure.ac +++ b/configure.ac @@ -3304,6 +3304,7 @@ WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-dc-create-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-dc-create-l1-1-1) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-dc-l1-2-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-devcaps-l1-1-0) +WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-draw-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-draw-l1-1-1) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-render-l1-1-0) WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-kernel32-package-current-l1-1-0) diff --git a/dlls/ext-ms-win-gdi-draw-l1-1-0/Makefile.in b/dlls/ext-ms-win-gdi-draw-l1-1-0/Makefile.in new file mode 100644 index 0000000..1a0efdf --- /dev/null +++ b/dlls/ext-ms-win-gdi-draw-l1-1-0/Makefile.in @@ -0,0 +1 @@ +MODULE = ext-ms-win-gdi-draw-l1-1-0.dll diff --git a/dlls/ext-ms-win-gdi-draw-l1-1-0/ext-ms-win-gdi-draw-l1-1-0.spec b/dlls/ext-ms-win-gdi-draw-l1-1-0/ext-ms-win-gdi-draw-l1-1-0.spec new file mode 100644 index 0000000..6f1f587 --- /dev/null +++ b/dlls/ext-ms-win-gdi-draw-l1-1-0/ext-ms-win-gdi-draw-l1-1-0.spec @@ -0,0 +1,18 @@ +@ stdcall BitBlt(long long long long long long long long long) gdi32.BitBlt +@ stdcall CreateBitmap(long long long long ptr) gdi32.CreateBitmap +@ stdcall CreateCompatibleBitmap(long long long) gdi32.CreateCompatibleBitmap +@ stdcall CreateDIBSection(long ptr long ptr long long) gdi32.CreateDIBSection +@ stdcall CreateSolidBrush(long) gdi32.CreateSolidBrush +@ stdcall GdiFlush() gdi32.GdiFlush +@ stdcall GetBitmapBits(long long ptr) gdi32.GetBitmapBits +@ stdcall GetDIBits(long long long long ptr ptr long) gdi32.GetDIBits +@ stdcall GetWorldTransform(long ptr) gdi32.GetWorldTransform +@ stdcall LineTo(long long long) gdi32.LineTo +@ stdcall MoveToEx(long long long ptr) gdi32.MoveToEx +@ stdcall PolyBezierTo(long ptr long) gdi32.PolyBezierTo +@ stdcall SetDIBits(long long long long ptr ptr long) gdi32.SetDIBits +@ stdcall SetGraphicsMode(long long) gdi32.SetGraphicsMode +@ stdcall SetLayout(long long) gdi32.SetLayout +@ stdcall SetWorldTransform(long ptr) gdi32.SetWorldTransform +@ stdcall StretchBlt(long long long long long long long long long long long) gdi32.StretchBlt +@ stdcall StretchDIBits(long long long long long long long long long ptr ptr long long) gdi32.StretchDIBits diff --git a/tools/make_specfiles b/tools/make_specfiles index d93723d..c00f3bf 100755 --- a/tools/make_specfiles +++ b/tools/make_specfiles @@ -435,6 +435,7 @@ my @dll_groups = "ext-ms-win-gdi-dc-create-l1-1-1", "ext-ms-win-gdi-dc-l1-2-0", "ext-ms-win-gdi-devcaps-l1-1-0", + "ext-ms-win-gdi-draw-l1-1-0", "ext-ms-win-gdi-draw-l1-1-1", "ext-ms-win-gdi-render-l1-1-0", "ext-ms-win-rtcore-gdi-devcaps-l1-1-0",
1
0
0
0
← Newer
1
...
25
26
27
28
29
30
31
...
68
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Results per page:
10
25
50
100
200