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
April 2022
----- 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
2 participants
1024 discussions
Start a n
N
ew thread
Mohamad Al-Jaf : wusa: Support wow64 architecture identifier.
by Alexandre Julliard
06 Apr '22
06 Apr '22
Module: wine Branch: master Commit: 3b851296026e63d33ee7cec38eed4bc24abeeade URL:
https://source.winehq.org/git/wine.git/?a=commit;h=3b851296026e63d33ee7cec3…
Author: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com> Date: Wed Apr 6 13:18:07 2022 +0200 wusa: Support wow64 architecture identifier. Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com> Signed-off-by: Hans Leidekker <hans(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- programs/wusa/main.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/programs/wusa/main.c b/programs/wusa/main.c index 74dfeb68d5f..53534628c31 100644 --- a/programs/wusa/main.c +++ b/programs/wusa/main.c @@ -477,6 +477,14 @@ static BOOL strbuf_append(struct strbuf *buf, const WCHAR *str, DWORD len) return TRUE; } +static BOOL assembly_is_wow64(const struct assembly_entry *assembly) +{ +#ifdef __x86_64__ + return !wcsicmp(assembly->identity.architecture, L"x86") || !wcsicmp(assembly->identity.architecture, L"wow64"); +#endif + return FALSE; +} + static WCHAR *lookup_expression(struct assembly_entry *assembly, const WCHAR *key) { WCHAR path[MAX_PATH]; @@ -484,25 +492,19 @@ static WCHAR *lookup_expression(struct assembly_entry *assembly, const WCHAR *ke if (!wcsicmp(key, L"runtime.system32") || !wcsicmp(key, L"runtime.drivers") || !wcsicmp(key, L"runtime.wbem")) { -#ifdef __x86_64__ - if (!wcsicmp(assembly->identity.architecture, L"x86")) csidl = CSIDL_SYSTEMX86; -#endif - if (!csidl) csidl = CSIDL_SYSTEM; + if (assembly_is_wow64(assembly)) csidl = CSIDL_SYSTEMX86; + else csidl = CSIDL_SYSTEM; } else if (!wcsicmp(key, L"runtime.windows") || !wcsicmp(key, L"runtime.inf")) csidl = CSIDL_WINDOWS; else if (!wcsicmp(key, L"runtime.programfiles")) { -#ifdef __x86_64__ - if (!wcsicmp(assembly->identity.architecture, L"x86")) csidl = CSIDL_PROGRAM_FILESX86; -#endif - if (!csidl) csidl = CSIDL_PROGRAM_FILES; + if (assembly_is_wow64(assembly)) csidl = CSIDL_PROGRAM_FILESX86; + else csidl = CSIDL_PROGRAM_FILES; } else if (!wcsicmp(key, L"runtime.commonfiles")) { -#ifdef __x86_64__ - if (!wcsicmp(assembly->identity.architecture, L"x86")) csidl = CSIDL_PROGRAM_FILES_COMMONX86; -#endif - if (!csidl) csidl = CSIDL_PROGRAM_FILES_COMMON; + if (assembly_is_wow64(assembly)) csidl = CSIDL_PROGRAM_FILES_COMMONX86; + else csidl = CSIDL_PROGRAM_FILES_COMMON; } #ifdef __x86_64__ else if (!wcsicmp(key, L"runtime.programfilesx86")) csidl = CSIDL_PROGRAM_FILESX86;
1
0
0
0
Jacek Caban : win32u: Move NtUserCloseClipboard implementation from user32.
by Alexandre Julliard
06 Apr '22
06 Apr '22
Module: wine Branch: master Commit: 22de82978eafef97b84248203503e284ca557783 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=22de82978eafef97b8424820…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Apr 6 11:11:25 2022 +0200 win32u: Move NtUserCloseClipboard implementation from user32. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user32/clipboard.c | 25 ------------------------- dlls/user32/edit.c | 4 ++-- dlls/user32/user32.spec | 2 +- dlls/win32u/clipboard.c | 25 +++++++++++++++++++++++++ dlls/win32u/gdiobj.c | 1 + dlls/win32u/win32u.spec | 2 +- dlls/win32u/win32u_private.h | 1 + dlls/win32u/wrappers.c | 6 ++++++ include/ntuser.h | 1 + 9 files changed, 38 insertions(+), 29 deletions(-) diff --git a/dlls/user32/clipboard.c b/dlls/user32/clipboard.c index b45ddf9c7c0..64b1ba2fe17 100644 --- a/dlls/user32/clipboard.c +++ b/dlls/user32/clipboard.c @@ -674,31 +674,6 @@ BOOL WINAPI OpenClipboard( HWND hwnd ) } -/************************************************************************** - * CloseClipboard (USER32.@) - */ -BOOL WINAPI CloseClipboard(void) -{ - HWND viewer = 0, owner = 0; - BOOL ret; - - TRACE( "\n" ); - - SERVER_START_REQ( close_clipboard ) - { - if ((ret = !wine_server_call_err( req ))) - { - viewer = wine_server_ptr_handle( reply->viewer ); - owner = wine_server_ptr_handle( reply->owner ); - } - } - SERVER_END_REQ; - - if (viewer) SendNotifyMessageW( viewer, WM_DRAWCLIPBOARD, (WPARAM)owner, 0 ); - return ret; -} - - /************************************************************************** * EmptyClipboard (USER32.@) * Empties and acquires ownership of the clipboard diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c index 02ed19dffd5..4037ea7b1c1 100644 --- a/dlls/user32/edit.c +++ b/dlls/user32/edit.c @@ -3107,7 +3107,7 @@ static void EDIT_WM_Paste(EDITSTATE *es) /* clear selected text in password edit box even with empty clipboard */ EDIT_EM_ReplaceSel(es, TRUE, NULL, 0, TRUE, TRUE); } - CloseClipboard(); + NtUserCloseClipboard(); } @@ -3136,7 +3136,7 @@ static void EDIT_WM_Copy(EDITSTATE *es) OpenClipboard(es->hwndSelf); EmptyClipboard(); SetClipboardData(CF_UNICODETEXT, hdst); - CloseClipboard(); + NtUserCloseClipboard(); } diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec index 2c4dba5cd86..b8b27ff49ba 100644 --- a/dlls/user32/user32.spec +++ b/dlls/user32/user32.spec @@ -73,7 +73,7 @@ @ stub ClientThreadSetup @ stdcall ClientToScreen(long ptr) @ stdcall -import ClipCursor(ptr) NtUserClipCursor -@ stdcall CloseClipboard() +@ stdcall CloseClipboard() NtUserCloseClipboard @ stdcall CloseDesktop(long) NtUserCloseDesktop @ stdcall CloseTouchInputHandle(long) @ stdcall CloseWindow(long) diff --git a/dlls/win32u/clipboard.c b/dlls/win32u/clipboard.c index 585a2aae631..8ab915d5931 100644 --- a/dlls/win32u/clipboard.c +++ b/dlls/win32u/clipboard.c @@ -76,6 +76,31 @@ static const char *debugstr_format( UINT id ) } } +/************************************************************************** + * NtUserCloseClipboard (win32u.@) + */ +BOOL WINAPI NtUserCloseClipboard(void) +{ + HWND viewer = 0, owner = 0; + BOOL ret; + + TRACE( "\n" ); + + SERVER_START_REQ( close_clipboard ) + { + if ((ret = !wine_server_call_err( req ))) + { + viewer = wine_server_ptr_handle( reply->viewer ); + owner = wine_server_ptr_handle( reply->owner ); + } + } + SERVER_END_REQ; + + if (viewer) NtUserMessageCall( viewer, WM_DRAWCLIPBOARD, (WPARAM)owner, 0, + 0, FNID_SENDNOTIFYMESSAGE, FALSE ); + return ret; +} + /************************************************************************** * NtUserCountClipboardFormats (win32u.@) */ diff --git a/dlls/win32u/gdiobj.c b/dlls/win32u/gdiobj.c index 1a569048f69..0679715c8fd 100644 --- a/dlls/win32u/gdiobj.c +++ b/dlls/win32u/gdiobj.c @@ -1159,6 +1159,7 @@ static struct unix_funcs unix_funcs = NtUserCallTwoParam, NtUserChangeDisplaySettings, NtUserClipCursor, + NtUserCloseClipboard, NtUserCountClipboardFormats, NtUserCreateWindowEx, NtUserDeferWindowPosAndBand, diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index 295f4780d71..6f75b802a51 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -793,7 +793,7 @@ @ stub NtUserChildWindowFromPointEx @ stub NtUserClearForeground @ stdcall NtUserClipCursor(ptr) -@ stub NtUserCloseClipboard +@ stdcall NtUserCloseClipboard() @ stdcall -syscall NtUserCloseDesktop(long) @ stdcall -syscall NtUserCloseWindowStation(long) @ stub NtUserCompositionInputSinkLuidFromPoint diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index 7677747b6f0..874cc92f4d4 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -194,6 +194,7 @@ struct unix_funcs LONG (WINAPI *pNtUserChangeDisplaySettings)( UNICODE_STRING *devname, DEVMODEW *devmode, HWND hwnd, DWORD flags, void *lparam ); BOOL (WINAPI *pNtUserClipCursor)( const RECT *rect ); + BOOL (WINAPI *pNtUserCloseClipboard)(void); INT (WINAPI *pNtUserCountClipboardFormats)(void); HWND (WINAPI *pNtUserCreateWindowEx)( DWORD ex_style, UNICODE_STRING *class_name, UNICODE_STRING *version, UNICODE_STRING *window_name, diff --git a/dlls/win32u/wrappers.c b/dlls/win32u/wrappers.c index 63018dcb063..4a4ed00ef58 100644 --- a/dlls/win32u/wrappers.c +++ b/dlls/win32u/wrappers.c @@ -749,6 +749,12 @@ ULONG_PTR WINAPI NtUserCallHwndParam( HWND hwnd, DWORD_PTR param, DWORD code ) return unix_funcs->pNtUserCallHwndParam( hwnd, param, code ); } +BOOL WINAPI NtUserCloseClipboard(void) +{ + if (!unix_funcs) return FALSE; + return unix_funcs->pNtUserCloseClipboard(); +} + LONG WINAPI NtUserChangeDisplaySettings( UNICODE_STRING *devname, DEVMODEW *devmode, HWND hwnd, DWORD flags, void *lparam ) { diff --git a/include/ntuser.h b/include/ntuser.h index 3de271a7174..53c8fb17139 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -507,6 +507,7 @@ ULONG_PTR WINAPI NtUserCallTwoParam( ULONG_PTR arg1, ULONG_PTR arg2, ULONG code LONG WINAPI NtUserChangeDisplaySettings( UNICODE_STRING *devname, DEVMODEW *devmode, HWND hwnd, DWORD flags, void *lparam ); BOOL WINAPI NtUserClipCursor( const RECT *rect ); +BOOL WINAPI NtUserCloseClipboard(void); BOOL WINAPI NtUserCloseDesktop( HDESK handle ); BOOL WINAPI NtUserCloseWindowStation( HWINSTA handle ); INT WINAPI NtUserCopyAcceleratorTable( HACCEL src, ACCEL *dst, INT count );
1
0
0
0
Jacek Caban : user.exe: Remove no longer used wait_message16.
by Alexandre Julliard
06 Apr '22
06 Apr '22
Module: wine Branch: master Commit: d513eee3ee4e9107c0b433bf9182155022fdf8ee URL:
https://source.winehq.org/git/wine.git/?a=commit;h=d513eee3ee4e9107c0b433bf…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Apr 6 11:11:07 2022 +0200 user.exe: Remove no longer used wait_message16. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user.exe16/message.c | 15 --------------- dlls/user.exe16/user_private.h | 2 -- dlls/user32/controls.h | 2 -- dlls/user32/driver.c | 11 +---------- dlls/user32/winproc.c | 10 ---------- 5 files changed, 1 insertion(+), 39 deletions(-) diff --git a/dlls/user.exe16/message.c b/dlls/user.exe16/message.c index 05285d55eb5..f6730fcee7b 100644 --- a/dlls/user.exe16/message.c +++ b/dlls/user.exe16/message.c @@ -2563,20 +2563,6 @@ static LRESULT static_proc16( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, } -/*********************************************************************** - * wait_message16 - */ -static DWORD wait_message16( DWORD count, const HANDLE *handles, DWORD timeout, DWORD mask, DWORD flags ) -{ - DWORD lock, ret; - - ReleaseThunkLock( &lock ); - ret = wow_handlers32.wait_message( count, handles, timeout, mask, flags ); - RestoreThunkLock( lock ); - return ret; -} - - /*********************************************************************** * create_window16 */ @@ -2621,7 +2607,6 @@ void register_wow_handlers(void) mdiclient_proc16, scrollbar_proc16, static_proc16, - wait_message16, create_window16, call_window_proc_Ato16, call_dialog_proc_Ato16, diff --git a/dlls/user.exe16/user_private.h b/dlls/user.exe16/user_private.h index 83c57379d35..8a325cf9fb2 100644 --- a/dlls/user.exe16/user_private.h +++ b/dlls/user.exe16/user_private.h @@ -41,7 +41,6 @@ struct wow_handlers16 LRESULT (*mdiclient_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); LRESULT (*scrollbar_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); LRESULT (*static_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); - DWORD (*wait_message)(DWORD,const HANDLE*,DWORD,DWORD,DWORD); HWND (*create_window)(CREATESTRUCTW*,LPCWSTR,HINSTANCE,BOOL); LRESULT (*call_window_proc)(HWND,UINT,WPARAM,LPARAM,LRESULT*,void*); LRESULT (*call_dialog_proc)(HWND,UINT,WPARAM,LPARAM,LRESULT*,void*); @@ -56,7 +55,6 @@ struct wow_handlers32 LRESULT (*mdiclient_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); LRESULT (*scrollbar_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); LRESULT (*static_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); - DWORD (*wait_message)(DWORD,const HANDLE*,DWORD,DWORD,DWORD); HWND (*create_window)(CREATESTRUCTW*,LPCWSTR,HINSTANCE,BOOL); HWND (*get_win_handle)(HWND); WNDPROC (*alloc_winproc)(WNDPROC,BOOL); diff --git a/dlls/user32/controls.h b/dlls/user32/controls.h index ffa131e9d63..5e762e10a7c 100644 --- a/dlls/user32/controls.h +++ b/dlls/user32/controls.h @@ -69,7 +69,6 @@ struct wow_handlers16 LRESULT (*mdiclient_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); LRESULT (*scrollbar_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); LRESULT (*static_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); - DWORD (*wait_message)(DWORD,const HANDLE*,DWORD,DWORD,DWORD); HWND (*create_window)(CREATESTRUCTW*,LPCWSTR,HINSTANCE,BOOL); LRESULT (*call_window_proc)(HWND,UINT,WPARAM,LPARAM,LRESULT*,void*); LRESULT (*call_dialog_proc)(HWND,UINT,WPARAM,LPARAM,LRESULT*,void*); @@ -84,7 +83,6 @@ struct wow_handlers32 LRESULT (*mdiclient_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); LRESULT (*scrollbar_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); LRESULT (*static_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); - DWORD (*wait_message)(DWORD,const HANDLE*,DWORD,DWORD,DWORD); HWND (*create_window)(CREATESTRUCTW*,LPCWSTR,HINSTANCE,BOOL); HWND (*get_win_handle)(HWND); WNDPROC (*alloc_winproc)(WNDPROC,BOOL); diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c index 0c3a1b62575..f4516a2f9da 100644 --- a/dlls/user32/driver.c +++ b/dlls/user32/driver.c @@ -69,14 +69,6 @@ static void CDECL nulldrv_UpdateClipboard(void) { } -static DWORD CDECL nulldrv_MsgWaitForMultipleObjectsEx( DWORD count, const HANDLE *handles, DWORD timeout, - DWORD mask, DWORD flags ) -{ - if (!count && !timeout) return WAIT_TIMEOUT; - return WaitForMultipleObjectsEx( count, handles, flags & MWMO_WAITALL, - timeout, flags & MWMO_ALERTABLE ); -} - static void CDECL nulldrv_SetWindowIcon( HWND hwnd, UINT type, HICON icon ) { } @@ -134,7 +126,7 @@ static struct user_driver_funcs lazy_load_driver = NULL, NULL, NULL, - nulldrv_MsgWaitForMultipleObjectsEx, + NULL, NULL, NULL, NULL, @@ -178,7 +170,6 @@ void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT v do { if (!driver->p##name) driver->p##name = nulldrv_##name; } while(0) SET_USER_FUNC(UpdateClipboard); - SET_USER_FUNC(MsgWaitForMultipleObjectsEx); SET_USER_FUNC(SetWindowIcon); SET_USER_FUNC(SetWindowText); SET_USER_FUNC(SysCommand); diff --git a/dlls/user32/winproc.c b/dlls/user32/winproc.c index 51c89111202..ebbb25e92dc 100644 --- a/dlls/user32/winproc.c +++ b/dlls/user32/winproc.c @@ -1482,14 +1482,6 @@ static LRESULT WINAPI StaticWndProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM return wow_handlers.static_proc( hwnd, msg, wParam, lParam, TRUE ); } -static DWORD wait_message( DWORD count, const HANDLE *handles, DWORD timeout, DWORD mask, DWORD flags ) -{ - DWORD ret = USER_Driver->pMsgWaitForMultipleObjectsEx( count, handles, timeout, mask, flags ); - if (ret == WAIT_TIMEOUT && !count && !timeout) NtYieldExecution(); - if ((mask & QS_INPUT) == QS_INPUT) get_user_thread_info()->message_count = 0; - return ret; -} - /********************************************************************** * UserRegisterWowHandlers (USER32.@) * @@ -1505,7 +1497,6 @@ void WINAPI UserRegisterWowHandlers( const struct wow_handlers16 *new, struct wo orig->mdiclient_proc = MDIClientWndProc_common; orig->scrollbar_proc = ScrollBarWndProc_common; orig->static_proc = StaticWndProc_common; - orig->wait_message = wait_message; orig->create_window = WIN_CreateWindowEx; orig->get_win_handle = WIN_GetFullHandle; orig->alloc_winproc = WINPROC_AllocProc; @@ -1524,7 +1515,6 @@ struct wow_handlers16 wow_handlers = MDIClientWndProc_common, ScrollBarWndProc_common, StaticWndProc_common, - wait_message, WIN_CreateWindowEx, NULL, /* call_window_proc */ NULL, /* call_dialog_proc */
1
0
0
0
Jacek Caban : win32u: Move process_hardware_message implementation from user32.
by Alexandre Julliard
06 Apr '22
06 Apr '22
Module: wine Branch: master Commit: 5bcb9d12631769e9d980151399f059805dc37dc3 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=5bcb9d12631769e9d9801513…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Apr 6 11:10:45 2022 +0200 win32u: Move process_hardware_message implementation from user32. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user32/message.c | 395 +------------------------------------------ dlls/user32/user_main.c | 3 +- dlls/user32/user_private.h | 4 +- dlls/win32u/message.c | 393 +++++++++++++++++++++++++++++++++++++++++- dlls/win32u/ntuser_private.h | 4 +- dlls/win32u/win32u_private.h | 4 + dlls/win32u/window.c | 8 +- 7 files changed, 405 insertions(+), 406 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=5bcb9d12631769e9d980…
1
0
0
0
Jacek Caban : win32u: Move NtUserPostMessage implementation from user32.
by Alexandre Julliard
06 Apr '22
06 Apr '22
Module: wine Branch: master Commit: 4072ba5d8a893df73cc1f3ce48f290d07643a109 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=4072ba5d8a893df73cc1f3ce…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Apr 6 11:05:31 2022 +0200 win32u: Move NtUserPostMessage implementation from user32. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user32/message.c | 673 +------------------------------------------ dlls/user32/user_main.c | 1 - dlls/win32u/gdiobj.c | 1 + dlls/win32u/message.c | 30 +- dlls/win32u/ntuser_private.h | 1 - dlls/win32u/win32u.spec | 2 +- dlls/win32u/win32u_private.h | 1 + dlls/win32u/wrappers.c | 6 + 8 files changed, 37 insertions(+), 678 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=4072ba5d8a893df73cc1…
1
0
0
0
Jacek Caban : win32u: Move NtUserPostThreadMessage implementation from user32.
by Alexandre Julliard
06 Apr '22
06 Apr '22
Module: wine Branch: master Commit: e1db9fef05154f59f21d199a6a9691ae9c81144c URL:
https://source.winehq.org/git/wine.git/?a=commit;h=e1db9fef05154f59f21d199a…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Apr 6 11:05:19 2022 +0200 win32u: Move NtUserPostThreadMessage implementation from user32. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user32/message.c | 29 ++--------------------------- dlls/user32/user32.spec | 2 +- dlls/win32u/gdiobj.c | 1 + dlls/win32u/message.c | 24 ++++++++++++++++++++++++ dlls/win32u/win32u.spec | 2 +- dlls/win32u/win32u_private.h | 1 + dlls/win32u/wrappers.c | 6 ++++++ 7 files changed, 36 insertions(+), 29 deletions(-) diff --git a/dlls/user32/message.c b/dlls/user32/message.c index 2255e0ee4ba..dff7ca24786 100644 --- a/dlls/user32/message.c +++ b/dlls/user32/message.c @@ -1807,7 +1807,7 @@ BOOL WINAPI PostMessageW( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) return TRUE; } - if (!hwnd) return PostThreadMessageW( GetCurrentThreadId(), msg, wparam, lparam ); + if (!hwnd) return NtUserPostThreadMessage( GetCurrentThreadId(), msg, wparam, lparam ); if (!(info.dest_tid = GetWindowThreadProcessId( hwnd, NULL ))) return FALSE; @@ -1823,32 +1823,7 @@ BOOL WINAPI PostMessageW( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) BOOL WINAPI PostThreadMessageA( DWORD thread, UINT msg, WPARAM wparam, LPARAM lparam ) { if (!map_wparam_AtoW( msg, &wparam, WMCHAR_MAP_POSTMESSAGE )) return TRUE; - return PostThreadMessageW( thread, msg, wparam, lparam ); -} - - -/********************************************************************** - * PostThreadMessageW (USER32.@) - */ -BOOL WINAPI PostThreadMessageW( DWORD thread, UINT msg, WPARAM wparam, LPARAM lparam ) -{ - struct send_message_info info; - - if (is_pointer_message( msg, wparam )) - { - SetLastError( ERROR_MESSAGE_SYNC_ONLY ); - return FALSE; - } - if (USER_IsExitingThread( thread )) return TRUE; - - info.type = MSG_POSTED; - info.dest_tid = thread; - info.hwnd = 0; - info.msg = msg; - info.wparam = wparam; - info.lparam = lparam; - info.flags = 0; - return put_message_in_queue( &info, NULL ); + return NtUserPostThreadMessage( thread, msg, wparam, lparam ); } diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec index 89c9d76f568..2c4dba5cd86 100644 --- a/dlls/user32/user32.spec +++ b/dlls/user32/user32.spec @@ -571,7 +571,7 @@ @ stdcall PostMessageW(long long long long) @ stdcall PostQuitMessage(long) @ stdcall PostThreadMessageA(long long long long) -@ stdcall PostThreadMessageW(long long long long) +@ stdcall PostThreadMessageW(long long long long) NtUserPostThreadMessage @ stdcall PrintWindow(long long long) @ stdcall PrivateExtractIconExA(str long ptr ptr long) @ stdcall PrivateExtractIconExW(wstr long ptr ptr long) diff --git a/dlls/win32u/gdiobj.c b/dlls/win32u/gdiobj.c index 4d78c99bbc7..645e29305e8 100644 --- a/dlls/win32u/gdiobj.c +++ b/dlls/win32u/gdiobj.c @@ -1193,6 +1193,7 @@ static struct unix_funcs unix_funcs = NtUserMoveWindow, NtUserMsgWaitForMultipleObjectsEx, NtUserPeekMessage, + NtUserPostThreadMessage, NtUserRedrawWindow, NtUserRegisterClassExWOW, NtUserRegisterHotKey, diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c index 73312424283..f3e695ea16a 100644 --- a/dlls/win32u/message.c +++ b/dlls/win32u/message.c @@ -2407,6 +2407,30 @@ BOOL WINAPI NtUserPostMessage( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam return user_callbacks->pPostMessageW( hwnd, msg, wparam, lparam ); } +/********************************************************************** + * NtUserPostThreadMessage (win32u.@) + */ +BOOL WINAPI NtUserPostThreadMessage( DWORD thread, UINT msg, WPARAM wparam, LPARAM lparam ) +{ + struct send_message_info info; + + if (is_pointer_message( msg, wparam )) + { + SetLastError( ERROR_MESSAGE_SYNC_ONLY ); + return FALSE; + } + if (is_exiting_thread( thread )) return TRUE; + + info.type = MSG_POSTED; + info.dest_tid = thread; + info.hwnd = 0; + info.msg = msg; + info.wparam = wparam; + info.lparam = lparam; + info.flags = 0; + return put_message_in_queue( &info, NULL ); +} + LRESULT WINAPI NtUserMessageCall( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, void *result_info, DWORD type, BOOL ansi ) { diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index 31561cb3a1c..7670e1a5310 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -1104,7 +1104,7 @@ @ stub NtUserPhysicalToLogicalPoint @ stub NtUserPostKeyboardInputMessage @ stub NtUserPostMessage -@ stub NtUserPostThreadMessage +@ stdcall NtUserPostThreadMessage(long long long long) @ stub NtUserPrintWindow @ stub NtUserProcessConnect @ stub NtUserProcessInkFeedbackCommand diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index c844603640e..ffd050adbcf 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -242,6 +242,7 @@ struct unix_funcs DWORD (WINAPI *pNtUserMsgWaitForMultipleObjectsEx)( DWORD count, const HANDLE *handles, DWORD timeout, DWORD mask, DWORD flags ); BOOL (WINAPI *pNtUserPeekMessage)( MSG *msg_out, HWND hwnd, UINT first, UINT last, UINT flags ); + BOOL (WINAPI *pNtUserPostThreadMessage)( DWORD thread, UINT msg, WPARAM wparam, LPARAM lparam ); BOOL (WINAPI *pNtUserRedrawWindow)( HWND hwnd, const RECT *rect, HRGN hrgn, UINT flags ); ATOM (WINAPI *pNtUserRegisterClassExWOW)( const WNDCLASSEXW *wc, UNICODE_STRING *name, UNICODE_STRING *version, diff --git a/dlls/win32u/wrappers.c b/dlls/win32u/wrappers.c index 4f7c6191df8..159cade9aea 100644 --- a/dlls/win32u/wrappers.c +++ b/dlls/win32u/wrappers.c @@ -977,6 +977,12 @@ BOOL WINAPI NtUserPeekMessage( MSG *msg_out, HWND hwnd, UINT first, UINT last, U return unix_funcs->pNtUserPeekMessage( msg_out, hwnd, first, last, flags ); } +BOOL WINAPI NtUserPostThreadMessage( DWORD thread, UINT msg, WPARAM wparam, LPARAM lparam ) +{ + if (!unix_funcs) return FALSE; + return unix_funcs->pNtUserPostThreadMessage( thread, msg, wparam, lparam ); +} + BOOL WINAPI NtUserRedrawWindow( HWND hwnd, const RECT *rect, HRGN hrgn, UINT flags ) { if (!unix_funcs) return FALSE;
1
0
0
0
Jacek Caban : win32u: Add missing return in NtUserExitingThread implementation.
by Alexandre Julliard
06 Apr '22
06 Apr '22
Module: wine Branch: master Commit: 6062065723c0d1f964ed1569a17cbe8fba01d9f4 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=6062065723c0d1f964ed1569…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Apr 6 11:05:01 2022 +0200 win32u: Add missing return in NtUserExitingThread implementation. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/win32u/sysparams.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c index 2d63158935d..b4e1a699451 100644 --- a/dlls/win32u/sysparams.c +++ b/dlls/win32u/sysparams.c @@ -4643,6 +4643,7 @@ ULONG_PTR WINAPI NtUserCallNoParam( ULONG code ) /* temporary exports */ case NtUserExitingThread: exiting_thread_id = GetCurrentThreadId(); + return 0; case NtUserThreadDetach: thread_detach(); return 0;
1
0
0
0
Hans Leidekker : bcrypt: Implement BCryptFreeBuffer().
by Alexandre Julliard
06 Apr '22
06 Apr '22
Module: wine Branch: master Commit: 2ad18d3992832de1762a1599bcaae79ed35c9259 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=2ad18d3992832de1762a1599…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Wed Apr 6 10:38:39 2022 +0200 bcrypt: Implement BCryptFreeBuffer(). Signed-off-by: Hans Leidekker <hans(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/bcrypt/bcrypt_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c index 98ae8c97e3a..2c0d2f8f965 100644 --- a/dlls/bcrypt/bcrypt_main.c +++ b/dlls/bcrypt/bcrypt_main.c @@ -75,7 +75,7 @@ NTSTATUS WINAPI BCryptEnumContextFunctions( ULONG table, const WCHAR *ctx, ULONG void WINAPI BCryptFreeBuffer( void *buffer ) { - FIXME( "%p\n", buffer ); + free( buffer ); } NTSTATUS WINAPI BCryptRegisterProvider( const WCHAR *provider, ULONG flags, CRYPT_PROVIDER_REG *reg )
1
0
0
0
Hans Leidekker : bcrypt: Fix array index in BCryptEnumAlgorithms().
by Alexandre Julliard
06 Apr '22
06 Apr '22
Module: wine Branch: master Commit: 40306db34145bc46c650dc56df37144dc7aee4b8 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=40306db34145bc46c650dc56…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Wed Apr 6 10:38:38 2022 +0200 bcrypt: Fix array index in BCryptEnumAlgorithms(). Signed-off-by: Hans Leidekker <hans(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/bcrypt/bcrypt_main.c | 11 ++++++----- dlls/bcrypt/tests/bcrypt.c | 12 +++++++++++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c index 2ffeff66d7b..98ae8c97e3a 100644 --- a/dlls/bcrypt/bcrypt_main.c +++ b/dlls/bcrypt/bcrypt_main.c @@ -147,7 +147,7 @@ NTSTATUS WINAPI BCryptEnumAlgorithms( ULONG type, ULONG *ret_count, BCRYPT_ALGOR BCRYPT_SIGNATURE_OPERATION |\ BCRYPT_RNG_OPERATION; BCRYPT_ALGORITHM_IDENTIFIER *list; - ULONG i, count = 0; + ULONG i, j, count = 0; TRACE( "%#lx, %p, %p, %#lx\n", type, ret_count, ret_list, flags ); @@ -160,12 +160,13 @@ NTSTATUS WINAPI BCryptEnumAlgorithms( ULONG type, ULONG *ret_count, BCRYPT_ALGOR if (!(list = malloc( count * sizeof(*list) ))) return STATUS_NO_MEMORY; - for (i = 0; i < ARRAY_SIZE( builtin_algorithms ); i++) + for (i = 0, j = 0; i < ARRAY_SIZE( builtin_algorithms ); i++) { if (!match_operation_type( type, builtin_algorithms[i].class )) continue; - list[i].pszName = (WCHAR *)builtin_algorithms[i].name; - list[i].dwClass = builtin_algorithms[i].class; - list[i].dwFlags = 0; + list[j].pszName = (WCHAR *)builtin_algorithms[i].name; + list[j].dwClass = builtin_algorithms[i].class; + list[j].dwFlags = 0; + j++; } *ret_count = count; diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c index df650379cfb..08ce360cac0 100644 --- a/dlls/bcrypt/tests/bcrypt.c +++ b/dlls/bcrypt/tests/bcrypt.c @@ -2668,7 +2668,7 @@ static void test_BCryptEnumAlgorithms(void) { BCRYPT_ALGORITHM_IDENTIFIER *list; NTSTATUS ret; - ULONG count; + ULONG count, op; ret = BCryptEnumAlgorithms(0, NULL, NULL, 0); ok(ret == STATUS_INVALID_PARAMETER, "got %#lx\n", ret); @@ -2689,6 +2689,16 @@ static void test_BCryptEnumAlgorithms(void) ok(list != NULL, "NULL list\n"); ok(count, "got %lu\n", count); BCryptFreeBuffer( list ); + + op = BCRYPT_CIPHER_OPERATION | BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION | BCRYPT_SIGNATURE_OPERATION | + BCRYPT_SECRET_AGREEMENT_OPERATION; + count = 0; + list = NULL; + ret = BCryptEnumAlgorithms(op, &count, &list, 0); + ok(!ret, "got %#lx\n", ret); + ok(list != NULL, "NULL list\n"); + ok(count, "got %lu\n", count); + BCryptFreeBuffer( list ); } static void test_aes_vector(void)
1
0
0
0
Mohamad Al-Jaf : ncrypt: Warn on invalid flags in NCryptImportKey.
by Alexandre Julliard
06 Apr '22
06 Apr '22
Module: wine Branch: master Commit: 807d368f1d3707ccc4682c7fcd1e871ec34aafe6 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=807d368f1d3707ccc4682c7f…
Author: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com> Date: Wed Apr 6 03:19:53 2022 -0400 ncrypt: Warn on invalid flags in NCryptImportKey. Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com> Signed-off-by: Hans Leidekker <hans(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/ncrypt/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/ncrypt/main.c b/dlls/ncrypt/main.c index 13909a2dd9e..e12284e0867 100644 --- a/dlls/ncrypt/main.c +++ b/dlls/ncrypt/main.c @@ -374,7 +374,7 @@ SECURITY_STATUS WINAPI NCryptImportKey(NCRYPT_PROV_HANDLE provider, NCRYPT_KEY_H } else if (flags) { - ERR("Invalid flags %#lx\n", flags); + WARN("Invalid flags %#lx\n", flags); return NTE_BAD_FLAGS; }
1
0
0
0
← Newer
1
...
85
86
87
88
89
90
91
...
103
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
Results per page:
10
25
50
100
200