ReactOS.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
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
List overview
Download
Ros-diffs
January 2022
----- 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
ros-diffs@reactos.org
28 participants
173 discussions
Start a n
N
ew thread
[reactos] 01/01: [SAMSRV] Return correct status for existing groups and users
by Stanislav Motylkov
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=cde633915563bf2c4a937…
commit cde633915563bf2c4a93726f7025baa268ea6c8a Author: Stanislav Motylkov <x86corez(a)gmail.com> AuthorDate: Thu Jan 13 16:38:04 2022 +0300 Commit: Stanislav Motylkov <x86corez(a)gmail.com> CommitDate: Thu Jan 13 16:38:04 2022 +0300 [SAMSRV] Return correct status for existing groups and users [NETAPI32] NetpNtStatusToApiStatus: Update accordingly This fixes net command output in PR #4096. --- dll/win32/netapi32/misc.c | 8 ++++++++ dll/win32/samsrv/domain.c | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/dll/win32/netapi32/misc.c b/dll/win32/netapi32/misc.c index 8fa84a07c6b..8ad2f566513 100644 --- a/dll/win32/netapi32/misc.c +++ b/dll/win32/netapi32/misc.c @@ -301,6 +301,14 @@ NetpNtStatusToApiStatus( ApiStatus = NERR_BadUsername; break; + case STATUS_USER_EXISTS: + ApiStatus = NERR_UserExists; + break; + + case STATUS_GROUP_EXISTS: + ApiStatus = NERR_GroupExists; + break; + case STATUS_PASSWORD_RESTRICTION: ApiStatus = NERR_PasswordTooShort; break; diff --git a/dll/win32/samsrv/domain.c b/dll/win32/samsrv/domain.c index 95080af777e..3e1e507f0c0 100644 --- a/dll/win32/samsrv/domain.c +++ b/dll/win32/samsrv/domain.c @@ -157,7 +157,7 @@ SampCheckAccountNameInDomain(IN PSAM_DB_OBJECT DomainObject, if (Status == STATUS_SUCCESS) { SampRegCloseKey(&NamesKey); - Status = STATUS_ALIAS_EXISTS; + Status = STATUS_GROUP_EXISTS; } else if (Status == STATUS_OBJECT_NAME_NOT_FOUND) Status = STATUS_SUCCESS; @@ -192,7 +192,7 @@ SampCheckAccountNameInDomain(IN PSAM_DB_OBJECT DomainObject, if (Status == STATUS_SUCCESS) { SampRegCloseKey(&NamesKey); - Status = STATUS_ALIAS_EXISTS; + Status = STATUS_USER_EXISTS; } else if (Status == STATUS_OBJECT_NAME_NOT_FOUND) Status = STATUS_SUCCESS;
2 years, 11 months
1
0
0
0
[reactos] 01/01: [USERSRV][TRANSLATION] Improve Japanese (ja-JP.rc)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2ea30b2ed3d863a920e6e…
commit 2ea30b2ed3d863a920e6e3fe81d243882eefbc1a Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Thu Jan 13 14:09:03 2022 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Thu Jan 13 14:09:03 2022 +0900 [USERSRV][TRANSLATION] Improve Japanese (ja-JP.rc) --- win32ss/user/winsrv/usersrv/lang/ja-JP.rc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/win32ss/user/winsrv/usersrv/lang/ja-JP.rc b/win32ss/user/winsrv/usersrv/lang/ja-JP.rc index 8bb5252d13b..2c395f57c57 100644 --- a/win32ss/user/winsrv/usersrv/lang/ja-JP.rc +++ b/win32ss/user/winsrv/usersrv/lang/ja-JP.rc @@ -26,16 +26,16 @@ END STRINGTABLE BEGIN - IDS_SEVERITY_SUCCESS "Success" - IDS_SEVERITY_INFORMATIONAL "System Information" - IDS_SEVERITY_WARNING "System Warning" - IDS_SEVERITY_ERROR "System Error" + IDS_SEVERITY_SUCCESS "成功" + IDS_SEVERITY_INFORMATIONAL "システムの情報" + IDS_SEVERITY_WARNING "システムの警告" + IDS_SEVERITY_ERROR "システムのエラー" END STRINGTABLE BEGIN - IDS_SYSTEM_PROCESS "System Process" - IDS_UNKNOWN_SOFTWARE_EXCEPT "unknown software exception" - IDS_OK_TERMINATE_PROGRAM "Click on OK to terminate the program." - IDS_CANCEL_DEBUG_PROGRAM "Click on CANCEL to debug the program." + IDS_SYSTEM_PROCESS "システムのプロセス" + IDS_UNKNOWN_SOFTWARE_EXCEPT "未知のソフトウェア例外" + IDS_OK_TERMINATE_PROGRAM "プログラムを終了するには OK をクリックしてください。" + IDS_CANCEL_DEBUG_PROGRAM "プログラムをデバッグするにはキャンセルをクリックしてください。" END
2 years, 11 months
1
0
0
0
[reactos] 01/01: [POWERCFG][TRANSLATION] Improve Japanese (ja-JP.rc)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1a5005679c9e21cbe5a2b…
commit 1a5005679c9e21cbe5a2b83c1342236de88814c8 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Thu Jan 13 11:44:02 2022 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Thu Jan 13 11:44:02 2022 +0900 [POWERCFG][TRANSLATION] Improve Japanese (ja-JP.rc) --- dll/cpl/powercfg/lang/ja-JP.rc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dll/cpl/powercfg/lang/ja-JP.rc b/dll/cpl/powercfg/lang/ja-JP.rc index d5c88fdac0e..eadcfdcb6bc 100644 --- a/dll/cpl/powercfg/lang/ja-JP.rc +++ b/dll/cpl/powercfg/lang/ja-JP.rc @@ -127,13 +127,13 @@ END IDD_SAVEPOWERSCHEME DIALOGEX 0, 0, 190, 62 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Save Scheme" -FONT 8, "MS Shell Dlg" +CAPTION "設定の保存" +FONT 9, "MS UI Gothic" BEGIN - LTEXT "Save this power scheme as:", -1, 7, 7, 104, 8 + LTEXT "この電源設定を次の名前で保存:", -1, 7, 7, 104, 8 EDITTEXT IDC_SCHEMENAME, 7, 18, 176, 14, ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 79, 40, 50, 14 - PUSHBUTTON "Cancel", IDCANCEL, 133, 40, 50, 14 + PUSHBUTTON "キャンセル", IDCANCEL, 133, 40, 50, 14 END STRINGTABLE @@ -173,5 +173,5 @@ BEGIN IDS_TIMEOUT16 "なし" IDS_DEL_SCHEME "この電源設定を削除しますか: ""%s""?" IDS_DEL_SCHEME_TITLE "電源設定の削除" - IDS_DEL_SCHEME_ERROR "Unable to delete power scheme" + IDS_DEL_SCHEME_ERROR "電源設定を削除できません" END
2 years, 11 months
1
0
0
0
[reactos] 01/01: [WINLOGON][TRANSLATION] Improve Japanese translation (ja-JP.rc)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=dafac2131b057d3812c2b…
commit dafac2131b057d3812c2b6d2925ca6a95b507cb1 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Thu Jan 13 11:40:05 2022 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Thu Jan 13 11:40:05 2022 +0900 [WINLOGON][TRANSLATION] Improve Japanese translation (ja-JP.rc) --- base/system/winlogon/lang/ja-JP.rc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/base/system/winlogon/lang/ja-JP.rc b/base/system/winlogon/lang/ja-JP.rc index 9924da1b349..a5015d40f5e 100644 --- a/base/system/winlogon/lang/ja-JP.rc +++ b/base/system/winlogon/lang/ja-JP.rc @@ -22,14 +22,14 @@ END IDD_SYSSHUTDOWN DIALOGEX 50, 50, 180, 140 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_CAPTION | WS_POPUP -CAPTION "System Shutdown" -FONT 8, "MS Shell Dlg" +CAPTION "システムのシャットダウン" +FONT 9, "MS UI Gothic" BEGIN ICON IDI_WARNING, IDC_SYSSHUTDOWNICON, 6, 7, 18, 20 - LTEXT "A system shutdown has been initiated. Please save all your work and terminate your session. All unsaved work will be lost when the system shuts down.", -1, 38, 7, 135, 40 - LTEXT "The system shuts down in:", -1, 38, 50, 90, 8 + LTEXT "システムのシャットダウンが開始されました。あなたの作業をすべて保存し、セッションを終了して下さい。シャットダウン時に保存していない作業は失われます。", -1, 38, 7, 135, 40 + LTEXT "シャットダウンまで:", -1, 38, 50, 90, 8 LTEXT "00:00:00", IDC_SYSSHUTDOWNTIMELEFT, 132, 50, 41, 8 - LTEXT "Message:", -1, 38, 65, 135, 8 + LTEXT "メッセージ:", -1, 38, 65, 135, 8 EDITTEXT IDC_SYSSHUTDOWNMESSAGE, 34, 75, 139, 58, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP, WS_EX_STATICEDGE END @@ -44,14 +44,14 @@ BEGIN IDS_RUNNINGLOGONSCRIPTS "ログオン スクリプトを実行しています..." IDS_LOADINGYOURPERSONALSETTINGS "個人の設定を読み込んでいます..." IDS_CLOSINGNETWORKCONNECTIONS "ネットワーク接続を切断しています..." - IDS_REACTOSISRESTARTING "Restarting..." - IDS_REACTOSISSHUTTINGDOWN "Shutting down..." + IDS_REACTOSISRESTARTING "再起動中..." + IDS_REACTOSISSHUTTINGDOWN "シャットダウン中..." IDS_PREPARETOSTANDBY "スタンバイの準備をしています..." IDS_PREPARETOHIBERNATE "休止状態の準備をしています..." IDS_SAVEYOURSETTINGS "設定を保存しています..." IDS_REACTOSISSTARTINGUP "ReactOS を起動しています..." IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d" - IDS_TIMEOUTLONGFORMAT "%d days" + IDS_TIMEOUTLONGFORMAT "%d 日" END STRINGTABLE
2 years, 11 months
1
0
0
0
[reactos] 01/01: [NTUSER] Follow-up of #4277 (ea1353e)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=48827cf6c500c5797e493…
commit 48827cf6c500c5797e493922abe59bf1df800bed Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Thu Jan 13 10:41:03 2022 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Thu Jan 13 10:41:03 2022 +0900 [NTUSER] Follow-up of #4277 (ea1353e) According to ThFabba, NtUserSetThreadLayoutHandles returns zero. CORE-11700 --- win32ss/include/ntuser.h | 2 +- win32ss/user/ntuser/ntstubs.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/win32ss/include/ntuser.h b/win32ss/include/ntuser.h index 3770d2761b9..e6db897fa4b 100644 --- a/win32ss/include/ntuser.h +++ b/win32ss/include/ntuser.h @@ -3313,7 +3313,7 @@ NtUserSetSystemTimer( UINT uElapse, TIMERPROC lpTimerFunc); -VOID +DWORD NTAPI NtUserSetThreadLayoutHandles(HKL hNewKL, HKL hOldKL); diff --git a/win32ss/user/ntuser/ntstubs.c b/win32ss/user/ntuser/ntstubs.c index 000fd2bdf5d..226ad3980c5 100644 --- a/win32ss/user/ntuser/ntstubs.c +++ b/win32ss/user/ntuser/ntstubs.c @@ -1023,7 +1023,7 @@ Quit: return Status; } -VOID +DWORD APIENTRY NtUserSetThreadLayoutHandles(HKL hNewKL, HKL hOldKL) { @@ -1048,6 +1048,7 @@ NtUserSetThreadLayoutHandles(HKL hNewKL, HKL hOldKL) Quit: UserLeave(); + return 0; } BOOL
2 years, 11 months
1
0
0
0
[reactos] 01/01: [NTUSER] Implement NtUserSetThreadLayoutHandles (#4277)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ea1353e4beb2e820bf1c7…
commit ea1353e4beb2e820bf1c76de2a12d64739376df9 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Wed Jan 12 14:48:20 2022 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Wed Jan 12 14:48:20 2022 +0900 [NTUSER] Implement NtUserSetThreadLayoutHandles (#4277) - Modify NtUserSetThreadLayoutHandles prototype. - Implement NtUserSetThreadLayoutHandles function. CORE-11700 --- win32ss/include/ntuser.h | 2 +- win32ss/user/ntuser/ntstubs.c | 25 ++++++++++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/win32ss/include/ntuser.h b/win32ss/include/ntuser.h index e6db897fa4b..3770d2761b9 100644 --- a/win32ss/include/ntuser.h +++ b/win32ss/include/ntuser.h @@ -3313,7 +3313,7 @@ NtUserSetSystemTimer( UINT uElapse, TIMERPROC lpTimerFunc); -DWORD +VOID NTAPI NtUserSetThreadLayoutHandles(HKL hNewKL, HKL hOldKL); diff --git a/win32ss/user/ntuser/ntstubs.c b/win32ss/user/ntuser/ntstubs.c index 09b9473756a..000fd2bdf5d 100644 --- a/win32ss/user/ntuser/ntstubs.c +++ b/win32ss/user/ntuser/ntstubs.c @@ -1023,12 +1023,31 @@ Quit: return Status; } -DWORD +VOID APIENTRY NtUserSetThreadLayoutHandles(HKL hNewKL, HKL hOldKL) { - STUB; - return 0; + PTHREADINFO pti; + PKL pOldKL, pNewKL; + + UserEnterExclusive(); + + pti = GetW32ThreadInfo(); + pOldKL = pti->KeyboardLayout; + if (pOldKL && pOldKL->hkl != hOldKL) + goto Quit; + + pNewKL = UserHklToKbl(hNewKL); + if (!pNewKL) + goto Quit; + + if (IS_IME_HKL(hNewKL) != IS_IME_HKL(hOldKL)) + pti->hklPrev = hOldKL; + + pti->KeyboardLayout = pNewKL; + +Quit: + UserLeave(); } BOOL
2 years, 11 months
1
0
0
0
[reactos] 01/01: [NTUSER] Follow-up of #4271 (36740ca)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=28959a2dfd96671e7f5dd…
commit 28959a2dfd96671e7f5dd3fb3917720ee95ed8a4 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Wed Jan 12 14:08:10 2022 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Wed Jan 12 14:08:10 2022 +0900 [NTUSER] Follow-up of #4271 (36740ca) - Delete the excessive comments. - Delete the debugging leftover. CORE-11700 --- win32ss/include/ntuser.h | 2 -- win32ss/user/ntuser/ime.c | 14 +++++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/win32ss/include/ntuser.h b/win32ss/include/ntuser.h index a53f7012838..e6db897fa4b 100644 --- a/win32ss/include/ntuser.h +++ b/win32ss/include/ntuser.h @@ -1186,9 +1186,7 @@ typedef struct tagIMEINFOEX typedef enum IMEINFOEXCLASS { ImeInfoExKeyboardLayout, -#if 1 ImeInfoExKeyboardLayoutTFS, -#endif ImeInfoExImeWindow, ImeInfoExImeFileName } IMEINFOEXCLASS; diff --git a/win32ss/user/ntuser/ime.c b/win32ss/user/ntuser/ime.c index e6c6ff150c2..48faba31700 100644 --- a/win32ss/user/ntuser/ime.c +++ b/win32ss/user/ntuser/ime.c @@ -171,13 +171,13 @@ BOOL FASTCALL UserGetImeInfoEx(LPVOID pUnknown, PIMEINFOEX pInfoEx, IMEINFOEXCLA { do { - if (pInfoEx->hkl == pkl->hkl) /* Matched */ + if (pInfoEx->hkl == pkl->hkl) { if (!pkl->piiex) break; - *pInfoEx = *pkl->piiex; /* Get */ - return TRUE; /* Found */ + *pInfoEx = *pkl->piiex; + return TRUE; } pkl = pkl->pklNext; @@ -189,10 +189,10 @@ BOOL FASTCALL UserGetImeInfoEx(LPVOID pUnknown, PIMEINFOEX pInfoEx, IMEINFOEXCLA { if (pkl->piiex && _wcsnicmp(pkl->piiex->wszImeFile, pInfoEx->wszImeFile, - RTL_NUMBER_OF(pkl->piiex->wszImeFile)) == 0) /* Matched */ + RTL_NUMBER_OF(pkl->piiex->wszImeFile)) == 0) { - *pInfoEx = *pkl->piiex; /* Get */ - return TRUE; /* Found */ + *pInfoEx = *pkl->piiex; + return TRUE; } pkl = pkl->pklNext; @@ -203,7 +203,7 @@ BOOL FASTCALL UserGetImeInfoEx(LPVOID pUnknown, PIMEINFOEX pInfoEx, IMEINFOEXCLA /* Do nothing */ } - return FALSE; /* Not found */ + return FALSE; } BOOL
2 years, 11 months
1
0
0
0
[reactos] 01/01: [NTUSER] Implement NtUserSetImeInfoEx (#4276)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1f446936572780cfb3d44…
commit 1f446936572780cfb3d44a6142c44fd104d148d5 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Wed Jan 12 12:07:31 2022 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Wed Jan 12 12:07:31 2022 +0900 [NTUSER] Implement NtUserSetImeInfoEx (#4276) - Modify NtUserSetImeInfoEx prototype. - Add UserSetImeInfoEx helper function. - Implement NtUserSetImeInfoEx function. CORE-11700 --- win32ss/include/ntuser.h | 2 +- win32ss/user/ntuser/ime.c | 57 ++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 53 insertions(+), 6 deletions(-) diff --git a/win32ss/include/ntuser.h b/win32ss/include/ntuser.h index 4519b3a35aa..a53f7012838 100644 --- a/win32ss/include/ntuser.h +++ b/win32ss/include/ntuser.h @@ -3186,7 +3186,7 @@ NtUserSetImeHotKey( DWORD Unknown3, DWORD Unknown4); -DWORD +BOOL NTAPI NtUserSetImeInfoEx( PIMEINFOEX pImeInfoEx); diff --git a/win32ss/user/ntuser/ime.c b/win32ss/user/ntuser/ime.c index ee79b14d60f..e6c6ff150c2 100644 --- a/win32ss/user/ntuser/ime.c +++ b/win32ss/user/ntuser/ime.c @@ -260,13 +260,60 @@ NtUserSetAppImeLevel( return 0; } -DWORD +BOOL FASTCALL UserSetImeInfoEx(LPVOID pUnknown, PIMEINFOEX pImeInfoEx) +{ + PKL pklHead, pkl; + + pkl = pklHead = gspklBaseLayout; + + do + { + if (pkl->hkl != pImeInfoEx->hkl) + { + pkl = pkl->pklNext; + continue; + } + + if (!pkl->piiex) + return FALSE; + + if (!pkl->piiex->fLoadFlag) + *pkl->piiex = *pImeInfoEx; + + return TRUE; + } while (pkl != pklHead); + + return FALSE; +} + +BOOL APIENTRY -NtUserSetImeInfoEx( - PIMEINFOEX pImeInfoEx) +NtUserSetImeInfoEx(PIMEINFOEX pImeInfoEx) { - STUB; - return 0; + BOOL ret = FALSE; + IMEINFOEX ImeInfoEx; + + UserEnterExclusive(); + + if (!IS_IMM_MODE()) + goto Quit; + + _SEH2_TRY + { + ProbeForRead(pImeInfoEx, sizeof(*pImeInfoEx), 1); + ImeInfoEx = *pImeInfoEx; + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + goto Quit; + } + _SEH2_END; + + ret = UserSetImeInfoEx(NULL, &ImeInfoEx); + +Quit: + UserLeave(); + return ret; } DWORD APIENTRY
2 years, 11 months
1
0
0
0
[reactos] 01/01: [NTUSER][IMM32] Implement NtUserGetImeInfoEx (#4271)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=36740ca98142cd96a7c3f…
commit 36740ca98142cd96a7c3facc3a901dc81f486ef9 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Wed Jan 12 12:06:24 2022 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Wed Jan 12 12:06:24 2022 +0900 [NTUSER][IMM32] Implement NtUserGetImeInfoEx (#4271) - Add UserGetImeInfoEx helper function. - Implement NtUserGetImeInfoEx function by using UserGetImeInfoEx. - Fix imm32.ImmGetImeInfoEx. - Modify enum IMEINFOEXCLASS. CORE-11700 --- dll/win32/imm32/ime.c | 57 +++++++++++++++--------------- win32ss/include/ntuser.h | 5 ++- win32ss/user/ntuser/ime.c | 88 +++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 116 insertions(+), 34 deletions(-) diff --git a/dll/win32/imm32/ime.c b/dll/win32/imm32/ime.c index 7da1ea09fec..4866bd00f5f 100644 --- a/dll/win32/imm32/ime.c +++ b/dll/win32/imm32/ime.c @@ -574,8 +574,7 @@ HKL WINAPI ImmInstallIMEW(LPCWSTR lpszIMEFileName, LPCWSTR lpszLayoutText) } /* If the IME for the specified filename is valid, then unload it now */ - /* FIXME: ImmGetImeInfoEx is broken */ - if (ImmGetImeInfoEx(&InfoEx, 3, pchFilePart) && + if (ImmGetImeInfoEx(&InfoEx, ImeInfoExImeFileName, pchFilePart) && !UnloadKeyboardLayout(InfoEx.hkl)) { hNewKL = NULL; @@ -623,8 +622,7 @@ BOOL WINAPI ImmIsIME(HKL hKL) { IMEINFOEX info; TRACE("(%p)\n", hKL); - /* FIXME: ImmGetImeInfoEx is broken */ - return !!ImmGetImeInfoEx(&info, 1, &hKL); + return !!ImmGetImeInfoEx(&info, ImeInfoExKeyboardLayoutTFS, &hKL); } /*********************************************************************** @@ -681,42 +679,41 @@ BOOL WINAPI ImmDisableLegacyIME(void) BOOL WINAPI ImmGetImeInfoEx(PIMEINFOEX pImeInfoEx, IMEINFOEXCLASS SearchType, PVOID pvSearchKey) { - BOOL bDisabled = FALSE; HKL hKL; - - /* FIXME: broken */ - switch (SearchType) + if (SearchType == ImeInfoExKeyboardLayout || SearchType == ImeInfoExKeyboardLayoutTFS) { - case ImeInfoExKeyboardLayout: - break; - - case ImeInfoExImeWindow: - bDisabled = CtfImmIsTextFrameServiceDisabled(); - SearchType = ImeInfoExKeyboardLayout; - break; - - case ImeInfoExImeFileName: - StringCchCopyW(pImeInfoEx->wszImeFile, _countof(pImeInfoEx->wszImeFile), - pvSearchKey); - goto Quit; - } + hKL = *(HKL*)pvSearchKey; + pImeInfoEx->hkl = hKL; - hKL = *(HKL*)pvSearchKey; - pImeInfoEx->hkl = hKL; + if (SearchType == ImeInfoExKeyboardLayoutTFS) + { + if (!IS_IME_HKL(hKL)) + { + if (!CtfImmIsTextFrameServiceDisabled() || + !Imm32IsCiceroMode() || Imm32Is16BitMode()) + { + return FALSE; + } + } - if (!IS_IME_HKL(hKL)) - { - if (Imm32IsCiceroMode()) + SearchType = ImeInfoExKeyboardLayout; + } + else { - if (Imm32Is16BitMode()) + if (!IS_IME_HKL(hKL)) return FALSE; - if (!bDisabled) - goto Quit; } + } + else if (SearchType == ImeInfoExImeFileName) + { + StringCchCopyW(pImeInfoEx->wszImeFile, _countof(pImeInfoEx->wszImeFile), + pvSearchKey); + } + else + { return FALSE; } -Quit: return NtUserGetImeInfoEx(pImeInfoEx, SearchType); } diff --git a/win32ss/include/ntuser.h b/win32ss/include/ntuser.h index 4618c99af76..4519b3a35aa 100644 --- a/win32ss/include/ntuser.h +++ b/win32ss/include/ntuser.h @@ -1183,9 +1183,12 @@ typedef struct tagIMEINFOEX }; } IMEINFOEX, *PIMEINFOEX; -typedef enum IMEINFOEXCLASS /* unconfirmed: buggy */ +typedef enum IMEINFOEXCLASS { ImeInfoExKeyboardLayout, +#if 1 + ImeInfoExKeyboardLayoutTFS, +#endif ImeInfoExImeWindow, ImeInfoExImeFileName } IMEINFOEXCLASS; diff --git a/win32ss/user/ntuser/ime.c b/win32ss/user/ntuser/ime.c index 81c4e330243..ee79b14d60f 100644 --- a/win32ss/user/ntuser/ime.c +++ b/win32ss/user/ntuser/ime.c @@ -157,16 +157,98 @@ NtUserGetAppImeLevel(HWND hWnd) return 0; } +BOOL FASTCALL UserGetImeInfoEx(LPVOID pUnknown, PIMEINFOEX pInfoEx, IMEINFOEXCLASS SearchType) +{ + PKL pkl, pklHead; + + if (!gspklBaseLayout) + return FALSE; + + pkl = pklHead = gspklBaseLayout; + + /* Find the matching entry from the list and get info */ + if (SearchType == ImeInfoExKeyboardLayout) + { + do + { + if (pInfoEx->hkl == pkl->hkl) /* Matched */ + { + if (!pkl->piiex) + break; + + *pInfoEx = *pkl->piiex; /* Get */ + return TRUE; /* Found */ + } + + pkl = pkl->pklNext; + } while (pkl != pklHead); + } + else if (SearchType == ImeInfoExImeFileName) + { + do + { + if (pkl->piiex && + _wcsnicmp(pkl->piiex->wszImeFile, pInfoEx->wszImeFile, + RTL_NUMBER_OF(pkl->piiex->wszImeFile)) == 0) /* Matched */ + { + *pInfoEx = *pkl->piiex; /* Get */ + return TRUE; /* Found */ + } + + pkl = pkl->pklNext; + } while (pkl != pklHead); + } + else + { + /* Do nothing */ + } + + return FALSE; /* Not found */ +} + BOOL APIENTRY NtUserGetImeInfoEx( PIMEINFOEX pImeInfoEx, IMEINFOEXCLASS SearchType) { - STUB; - return FALSE; -} + IMEINFOEX ImeInfoEx; + BOOL ret = FALSE; + + UserEnterShared(); + + if (!IS_IMM_MODE()) + goto Quit; + + _SEH2_TRY + { + ProbeForWrite(pImeInfoEx, sizeof(*pImeInfoEx), 1); + ImeInfoEx = *pImeInfoEx; + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + goto Quit; + } + _SEH2_END; + + ret = UserGetImeInfoEx(NULL, &ImeInfoEx, SearchType); + if (ret) + { + _SEH2_TRY + { + *pImeInfoEx = ImeInfoEx; + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + ret = FALSE; + } + _SEH2_END; + } +Quit: + UserLeave(); + return ret; +} DWORD APIENTRY
2 years, 11 months
1
0
0
0
[reactos] 01/01: [USER32] Improve icon extraction to handle RIFF formats and Fix crash (#4262)
by Doug Lyons
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a47590c9cf6ec9988bcee…
commit a47590c9cf6ec9988bceebe6bf509d3864a6fcec Author: Doug Lyons <douglyons(a)douglyons.com> AuthorDate: Tue Jan 11 17:03:44 2022 -0600 Commit: GitHub <noreply(a)github.com> CommitDate: Wed Jan 12 08:03:44 2022 +0900 [USER32] Improve icon extraction to handle RIFF formats and Fix crash (#4262) - Add handling for 'RIFF' formats (for animated cursors). This makes explorer able to display animated cursors. - Fix crash in extracting icons/cursors. CORE-16287 --- win32ss/user/user32/misc/exticon.c | 89 ++++++++++++++++++++++++++++++++ win32ss/user/user32/windows/cursoricon.c | 4 ++ 2 files changed, 93 insertions(+) diff --git a/win32ss/user/user32/misc/exticon.c b/win32ss/user/user32/misc/exticon.c index ba2bd6d6b2c..d4143054dc7 100644 --- a/win32ss/user/user32/misc/exticon.c +++ b/win32ss/user/user32/misc/exticon.c @@ -71,6 +71,21 @@ typedef struct DWORD resloader; } NE_TYPEINFO; +// From: James Houghtaling +//
https://www.moon-soft.com/program/FORMAT/windows/ani.htm
+typedef struct taganiheader +{ + DWORD cbsizeof; // num bytes in aniheader (36 bytes) + DWORD cframes; // number of unique icons in this cursor + DWORD csteps; // number of blits before the animation cycles + DWORD cx; // reserved, must be zero. + DWORD cy; // reserved, must be zero. + DWORD cbitcount; // reserved, must be zero. + DWORD cplanes; // reserved, must be zero. + DWORD jifrate; // default jiffies (1/60th sec) if rate chunk not present. + DWORD flags; // animation flag +} aniheader; + #define NE_RSCTYPE_ICON 0x8003 #define NE_RSCTYPE_GROUP_ICON 0x800e @@ -323,6 +338,49 @@ static UINT ICO_ExtractIconExW( } CloseHandle(fmapping); +#ifdef __REACTOS__ + /* Check if we have a min size of 2 headers RIFF & 'icon' + * at 8 chars each plus an anih header of 36 byptes. + * Also, is this resource an animjated icon/cursor (RIFF) */ + if ((fsizel >= 52) && !memcmp(peimage, "RIFF", 4)) + { + UINT anihOffset; + UINT anihMax; + /* Get size of the animation data */ + ULONG uSize = MAKEWORD(peimage[4], peimage[5]); + + /* Check if uSize is reasonable with respect to fsizel */ + if ((uSize < strlen("anih")) || (uSize > fsizel)) + goto end; + + /* Look though the reported size less search string length */ + anihMax = uSize - strlen("anih"); + /* Search for 'anih' indicating animation header */ + for (anihOffset = 0; anihOffset < anihMax; anihOffset++) + { + if (memcmp(&peimage[anihOffset], "anih", 4) == 0) + break; + } + + if (anihOffset + sizeof(aniheader) > fsizel) + goto end; + + /* Get count of images for return value */ + ret = MAKEWORD(peimage[anihOffset + 12], peimage[anihOffset + 13]); + + TRACE("RIFF File with '%u' images at Offset '%u'.\n", ret, anihOffset); + + cx1 = LOWORD(cxDesired); + cy1 = LOWORD(cyDesired); + + if (RetPtr) + { + RetPtr[0] = CreateIconFromResourceEx(peimage, uSize, TRUE, 0x00030000, cx1, cy1, flags); + } + goto end; + } +#endif + cx1 = LOWORD(cxDesired); cx2 = HIWORD(cxDesired); cy1 = LOWORD(cyDesired); @@ -439,7 +497,9 @@ static UINT ICO_ExtractIconExW( DWORD dataOffset; LPBYTE imageData; POINT hotSpot; +#ifndef __REACTOS__ LPICONIMAGE entry; +#endif dataOffset = get_best_icon_file_offset(peimage, fsizel, cx[index], cy[index], sig == 1, flags, sig == 1 ? NULL : &hotSpot); @@ -447,14 +507,35 @@ static UINT ICO_ExtractIconExW( { HICON icon; WORD *cursorData = NULL; +#ifdef __REACTOS__ + BITMAPINFOHEADER bmih; +#endif imageData = peimage + dataOffset; +#ifdef __REACTOS__ + memcpy(&bmih, imageData, sizeof(BITMAPINFOHEADER)); +#else entry = (LPICONIMAGE)(imageData); +#endif if(sig == 2) { +#ifdef __REACTOS__ + /* biSizeImage is the size of the raw bitmap data. + * A dummy 0 can be given for BI_RGB bitmaps. + *
https://en.wikipedia.org/wiki/BMP_file_format
*/ + if ((bmih.biCompression == BI_RGB) && (bmih.biSizeImage == 0)) + { + bmih.biSizeImage = ((bmih.biWidth * bmih.biBitCount + 31) / 32) * 4 * + (bmih.biHeight / 2); + } +#endif /* we need to prepend the bitmap data with hot spots for CreateIconFromResourceEx */ +#ifdef __REACTOS__ + cursorData = HeapAlloc(GetProcessHeap(), 0, bmih.biSizeImage + 2 * sizeof(WORD)); +#else cursorData = HeapAlloc(GetProcessHeap(), 0, entry->icHeader.biSizeImage + 2 * sizeof(WORD)); +#endif if(!cursorData) continue; @@ -462,12 +543,20 @@ static UINT ICO_ExtractIconExW( cursorData[0] = hotSpot.x; cursorData[1] = hotSpot.y; +#ifdef __REACTOS__ + memcpy(cursorData + 2, imageData, bmih.biSizeImage); +#else memcpy(cursorData + 2, imageData, entry->icHeader.biSizeImage); +#endif imageData = (LPBYTE)cursorData; } +#ifdef __REACTOS__ + icon = CreateIconFromResourceEx(imageData, bmih.biSizeImage, sig == 1, 0x00030000, cx[index], cy[index], flags); +#else icon = CreateIconFromResourceEx(imageData, entry->icHeader.biSizeImage, sig == 1, 0x00030000, cx[index], cy[index], flags); +#endif HeapFree(GetProcessHeap(), 0, cursorData); diff --git a/win32ss/user/user32/windows/cursoricon.c b/win32ss/user/user32/windows/cursoricon.c index 6299c839006..cdca65767c6 100644 --- a/win32ss/user/user32/windows/cursoricon.c +++ b/win32ss/user/user32/windows/cursoricon.c @@ -2451,7 +2451,11 @@ HICON WINAPI CreateIconFromResourceEx( /* It is possible to pass Icon Directories to this API */ int wResId = LookupIconIdFromDirectoryEx(pbIconBits, fIcon, cxDesired, cyDesired, uFlags); HANDLE ResHandle = NULL; +#ifdef __REACTOS__ + if (wResId && (pbIconBits[4] != sizeof(BITMAPINFOHEADER))) +#else if(wResId) +#endif { HINSTANCE hinst; HRSRC hrsrc;
2 years, 11 months
1
0
0
0
← Newer
1
...
7
8
9
10
11
12
13
...
18
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Results per page:
10
25
50
100
200