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
April 2018
----- 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
26 participants
247 discussions
Start a n
N
ew thread
01/01: [NET] Reorganize and improve the help texts (2/X) - Add missing help texts for HELP, HELPMSG and PAUSE commands.
by Eric Kohl
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=fdc236c65d358f181a9da…
commit fdc236c65d358f181a9dacc5b93249937b7e8ea3 Author: Eric Kohl <eric.kohl(a)reactos.org> AuthorDate: Sun Apr 1 16:51:44 2018 +0200 Commit: Eric Kohl <eric.kohl(a)reactos.org> CommitDate: Sun Apr 1 16:51:44 2018 +0200 [NET] Reorganize and improve the help texts (2/X) - Add missing help texts for HELP, HELPMSG and PAUSE commands. --- base/applications/network/net/cmdHelpMsg.c | 6 +- base/applications/network/net/cmdPause.c | 5 +- base/applications/network/net/help.c | 24 +++++++- base/applications/network/net/lang/en-US.rc | 91 +++++++++++++++------------- base/applications/network/net/lang/es-ES.rc | 91 +++++++++++++++------------- base/applications/network/net/lang/ro-RO.rc | 93 +++++++++++++++-------------- base/applications/network/net/lang/ru-RU.rc | 93 +++++++++++++++-------------- base/applications/network/net/lang/tr-TR.rc | 93 +++++++++++++++-------------- base/applications/network/net/lang/zh-CN.rc | 93 +++++++++++++++-------------- base/applications/network/net/lang/zh-TW.rc | 91 +++++++++++++++------------- base/applications/network/net/resource.h | 78 ++++++++++++------------ 11 files changed, 412 insertions(+), 346 deletions(-) diff --git a/base/applications/network/net/cmdHelpMsg.c b/base/applications/network/net/cmdHelpMsg.c index e95da9cc19..57b9b7a61a 100644 --- a/base/applications/network/net/cmdHelpMsg.c +++ b/base/applications/network/net/cmdHelpMsg.c @@ -30,7 +30,10 @@ INT cmdHelpMsg(INT argc, WCHAR **argv) { if (_wcsicmp(argv[i], L"/help") == 0) { - ConResPuts(StdOut, IDS_HELPMSG_HELP); + ConResPuts(StdOut, IDS_GENERIC_SYNTAX); + ConResPuts(StdOut, IDS_HELPMSG_SYNTAX); + ConResPuts(StdOut, IDS_HELPMSG_HELP_1); + ConResPuts(StdOut, IDS_HELPMSG_HELP_2); return 1; } } @@ -38,6 +41,7 @@ INT cmdHelpMsg(INT argc, WCHAR **argv) errNum = wcstol(argv[2], &endptr, 10); if (*endptr != 0) { + ConResPuts(StdOut, IDS_GENERIC_SYNTAX); ConResPuts(StdOut, IDS_HELPMSG_SYNTAX); return 1; } diff --git a/base/applications/network/net/cmdPause.c b/base/applications/network/net/cmdPause.c index eb8056ce13..05e07b884f 100644 --- a/base/applications/network/net/cmdPause.c +++ b/base/applications/network/net/cmdPause.c @@ -28,7 +28,10 @@ INT cmdPause(INT argc, WCHAR **argv) { if (_wcsicmp(argv[i], L"/help") == 0) { - ConResPuts(StdOut, IDS_PAUSE_HELP); + ConResPuts(StdOut, IDS_GENERIC_SYNTAX); + ConResPuts(StdOut, IDS_PAUSE_SYNTAX); + ConResPuts(StdOut, IDS_PAUSE_HELP_1); + ConResPuts(StdOut, IDS_PAUSE_HELP_2); return 1; } } diff --git a/base/applications/network/net/help.c b/base/applications/network/net/help.c index f054c0efab..9a2bb471b7 100644 --- a/base/applications/network/net/help.c +++ b/base/applications/network/net/help.c @@ -87,12 +87,15 @@ INT cmdHelp(INT argc, WCHAR **argv) { ConResPuts(StdOut, IDS_GROUP_SYNTAX); ConResPuts(StdOut, IDS_GROUP_HELP); + ConResPuts(StdOut, IDS_GENERIC_PAGE); return 0; } if (_wcsicmp(argv[2], L"HELPMSG") == 0) { - ConResPuts(StdOut, IDS_HELPMSG_HELP); + ConResPuts(StdOut, IDS_HELPMSG_SYNTAX); + ConResPuts(StdOut, IDS_HELPMSG_HELP_1); + ConResPuts(StdOut, IDS_HELPMSG_HELP_2); return 0; } @@ -100,83 +103,98 @@ INT cmdHelp(INT argc, WCHAR **argv) { ConResPuts(StdOut, IDS_LOCALGROUP_SYNTAX); ConResPuts(StdOut, IDS_LOCALGROUP_HELP); + ConResPuts(StdOut, IDS_GENERIC_PAGE); return 0; } if (_wcsicmp(argv[2], L"NAME") == 0) { + ConResPuts(StdOut, IDS_NAME_SYNTAX); ConResPuts(StdOut, IDS_NAME_HELP); return 0; } if (_wcsicmp(argv[2], L"PAUSE") == 0) { - ConResPuts(StdOut, IDS_PAUSE_HELP); + ConResPuts(StdOut, IDS_PAUSE_SYNTAX); + ConResPuts(StdOut, IDS_PAUSE_HELP_1); + ConResPuts(StdOut, IDS_PAUSE_HELP_2); return 0; } if (_wcsicmp(argv[2], L"PRINT") == 0) { + ConResPuts(StdOut, IDS_PRINT_SYNTAX); ConResPuts(StdOut, IDS_PRINT_HELP); return 0; } if (_wcsicmp(argv[2], L"SEND") == 0) { + ConResPuts(StdOut, IDS_SEND_SYNTAX); ConResPuts(StdOut, IDS_SEND_HELP); return 0; } if (_wcsicmp(argv[2], L"SESSION") == 0) { + ConResPuts(StdOut, IDS_SESSION_SYNTAX); ConResPuts(StdOut, IDS_SESSION_HELP); return 0; } if (_wcsicmp(argv[2], L"SHARE") == 0) { + ConResPuts(StdOut, IDS_SHARE_SYNTAX); ConResPuts(StdOut, IDS_SHARE_HELP); return 0; } if (_wcsicmp(argv[2], L"START") == 0) { + ConResPuts(StdOut, IDS_START_SYNTAX); ConResPuts(StdOut, IDS_START_HELP); return 0; } if (_wcsicmp(argv[2], L"STATISTICS") == 0) { + ConResPuts(StdOut, IDS_STATISTICS_SYNTAX); ConResPuts(StdOut, IDS_STATISTICS_HELP); return 0; } if (_wcsicmp(argv[2], L"STOP") == 0) { + ConResPuts(StdOut, IDS_STOP_SYNTAX); ConResPuts(StdOut, IDS_STOP_HELP); return 0; } if (_wcsicmp(argv[2], L"TIME") == 0) { + ConResPuts(StdOut, IDS_TIME_SYNTAX); ConResPuts(StdOut, IDS_TIME_HELP); return 0; } if (_wcsicmp(argv[2], L"USE") == 0) { + ConResPuts(StdOut, IDS_USE_SYNTAX); ConResPuts(StdOut, IDS_USE_HELP); return 0; } if (_wcsicmp(argv[2], L"USER") == 0) { + ConResPuts(StdOut, IDS_USER_SYNTAX); ConResPuts(StdOut, IDS_USER_HELP); return 0; } if (_wcsicmp(argv[2], L"VIEW") == 0) { + ConResPuts(StdOut, IDS_VIEW_SYNTAX); ConResPuts(StdOut, IDS_VIEW_HELP); return 0; } @@ -194,6 +212,8 @@ INT cmdHelp(INT argc, WCHAR **argv) #endif ConResPuts(StdOut, IDS_HELP_SYNTAX); + ConResPuts(StdOut, IDS_HELP_HELP_1); + ConResPuts(StdOut, IDS_HELP_HELP_2); return 0; } diff --git a/base/applications/network/net/lang/en-US.rc b/base/applications/network/net/lang/en-US.rc index c2160d6867..36ed77f2c9 100644 --- a/base/applications/network/net/lang/en-US.rc +++ b/base/applications/network/net/lang/en-US.rc @@ -81,46 +81,12 @@ type NET CONFIG SERVER without parameters.\n\n" SCHEDULE\n\ SERVER\n\ WORKSTATION\n\n" - IDS_FILE_SYNTAX "NET FILE ..." - IDS_FILE_HELP "FILE\n..." - IDS_GROUP_SYNTAX "NET GROUP ..." - IDS_GROUP_HELP "GROUP\n..." - IDS_HELPMSG_SYNTAX "NET HELPMSG <Error Code>" - IDS_HELPMSG_HELP "HELPMSG\n..." - IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [groupname [/COMMENT:""text""]] [/DOMAIN]\n\ - groupname {/ADD [/COMMENT:""text""] | /DELETE} [/DOMAIN]\n\ - groupname name [...] {/ADD | /DELETE} [/DOMAIN]" - IDS_LOCALGROUP_HELP "LOCALGROUP\n..." - IDS_NAME_SYNTAX "NET NAME ..." - IDS_NAME_HELP "NAME\n..." - IDS_PRINT_SYNTAX "NET PRINT ..." - IDS_PRINT_HELP "PRINT\n..." - IDS_PAUSE_SYNTAX "NET PAUSE <Service Name>" - IDS_PAUSE_HELP "PAUSE\n..." - IDS_SEND_SYNTAX "NET SEND ..." - IDS_SEND_HELP "SEND\n..." - IDS_SESSION_SYNTAX "NET SESSION ..." - IDS_SESSION_HELP "SESSION\n..." - IDS_SHARE_SYNTAX "NET SHARE ..." - IDS_SHARE_HELP "SHARE\n..." - IDS_START_SYNTAX "NET START <Service name>" - IDS_START_HELP "START\n..." - IDS_STATISTICS_SYNTAX "NET STATISTICS ..." - IDS_STATISTICS_HELP "STATISTICS\n..." - IDS_STOP_SYNTAX "NET STOP <Service name>" - IDS_STOP_HELP "STOP\n..." - IDS_TIME_SYNTAX "NET TIME ..." - IDS_TIME_HELP "TIME\n..." - IDS_USE_SYNTAX "NET USE ..." - IDS_USE_HELP "USE\n..." - IDS_USER_SYNTAX "NET USER [username [password | *] [options]] [/DOMAIN]\n\ - username {password | *} /ADD [options] [/DOMAIN]\n\ - username [/DELETE] [/DOMAIN]" - IDS_USER_HELP "USER\n..." - IDS_VIEW_SYNTAX "NET VIEW ..." - IDS_VIEW_HELP "VIEW\n..." - IDS_HELP_SYNTAX "NET HELP <Command>\n - or -\nNET <Command> /HELP\n\n\ - The following commands are available:\n\n\ + IDS_FILE_SYNTAX "NET FILE [id [/CLOSE]]\n\n" + IDS_FILE_HELP "FILE\n...\n\n" + IDS_GROUP_SYNTAX "NET GROUP ...\n\n" + IDS_GROUP_HELP "GROUP\n...\n\n" + IDS_HELP_SYNTAX "NET HELP command\n - or -\nNET command /HELP\n\n" + IDS_HELP_HELP_1 " The following commands are available:\n\n\ NET ACCOUNTS NET HELP NET SHARE\n\ NET COMPUTER NET HELPMSG NET START\n\ NET CONFIG NET LOCALGROUP NET STATISTICS\n\ @@ -128,8 +94,49 @@ type NET CONFIG SERVER without parameters.\n\n" NET CONFIG WORKSTATION NET PAUSE NET TIME\n\ NET CONTINUE NET PRINT NET USE\n\ NET FILE NET SEND NET USER\n\ - NET GROUP NET SESSION NET VIEW\n\n\ - ..." + NET GROUP NET SESSION NET VIEW\n\n" + IDS_HELP_HELP_2 " ...\n\n" + IDS_HELPMSG_SYNTAX "NET HELPMSG message#\n\n" + IDS_HELPMSG_HELP_1 "NET HELPMSG displays information about network messages (such as\n\ +error, warning and alert messages). When you type NET HELPMSG and the numeric\n\ +error (for example, ""net helpmsg 2182""), you will get information about the\n\ +message and suggested actions you can take to solve the problem.\n\n" + IDS_HELPMSG_HELP_2 "message# Is the numerical error with which you need help.\n\n" + IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [groupname [/COMMENT:""text""]] [/DOMAIN]\n\ + groupname {/ADD [/COMMENT:""text""] | /DELETE} [/DOMAIN]\n\ + groupname name [...] {/ADD | /DELETE} [/DOMAIN]\n\n" + IDS_LOCALGROUP_HELP "LOCALGROUP\n...\n\n" + IDS_NAME_SYNTAX "NET NAME ...\n\n" + IDS_NAME_HELP "NAME\n...\n\n" + IDS_PRINT_SYNTAX "NET PRINT ...\n\n" + IDS_PRINT_HELP "PRINT\n...\n\n" + IDS_PAUSE_SYNTAX "NET PAUSE service\n\n" + IDS_PAUSE_HELP_1 "NET PAUSE suspends a service. Pausing a service puts it on hold.\n\n" + IDS_PAUSE_HELP_2 "service The name of the service to be paused.\n\n" + + IDS_SEND_SYNTAX "NET SEND ...\n\n" + IDS_SEND_HELP "SEND\n...\n\n" + IDS_SESSION_SYNTAX "NET SESSION ...\n\n" + IDS_SESSION_HELP "SESSION\n...\n\n" + IDS_SHARE_SYNTAX "NET SHARE ...\n\n" + IDS_SHARE_HELP "SHARE\n...\n\n" + IDS_START_SYNTAX "NET START <Service name>\n\n" + IDS_START_HELP "START\n...\n\n" + IDS_STATISTICS_SYNTAX "NET STATISTICS ...\n\n" + IDS_STATISTICS_HELP "STATISTICS\n...\n\n" + IDS_STOP_SYNTAX "NET STOP <Service name>\n\n" + IDS_STOP_HELP "STOP\n...\n\n" + IDS_TIME_SYNTAX "NET TIME ...\n\n" + IDS_TIME_HELP "TIME\n...\n\n" + IDS_USE_SYNTAX "NET USE ...\n\n" + IDS_USE_HELP "USE\n...\n\n" + IDS_USER_SYNTAX "NET USER [username [password | *] [options]] [/DOMAIN]\n\ + username {password | *} /ADD [options] [/DOMAIN]\n\ + username [/DELETE] [/DOMAIN]\n\n" + IDS_USER_HELP "USER\n...\n\n" + IDS_VIEW_SYNTAX "NET VIEW ...\n\n" + IDS_VIEW_HELP "VIEW\n...\n\n" + IDS_NET_SYNTAX "NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |\n\ HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]\n" diff --git a/base/applications/network/net/lang/es-ES.rc b/base/applications/network/net/lang/es-ES.rc index 8c59b5f712..05365d29fc 100644 --- a/base/applications/network/net/lang/es-ES.rc +++ b/base/applications/network/net/lang/es-ES.rc @@ -75,7 +75,7 @@ WORKSTATION Displays information about the configuration of the\n\ on that server. The default is NO.\n\n" IDS_CONFIG_SERVER_HELP_5 "To display the current configuration for the Servr service,\n\ type NET CONFIG SERVER without parameters.\n\n" - IDS_CONTINUE_SYNTAX "NET CONTINUE <nombre del servicio>" + IDS_CONTINUE_SYNTAX "NET CONTINUE <nombre del servicio>\n\n" IDS_CONTINUE_HELP_1 "NET CONTINUE reactivates a service that has been suspended by NET PAUSE.\n\n" IDS_CONTINUE_HELP_2 "service Is the paused service\n\ For example, one of the following:\n\ @@ -84,46 +84,12 @@ type NET CONFIG SERVER without parameters.\n\n" SCHEDULE\n\ SERVER\n\ WORKSTATION\n\n" - IDS_FILE_SYNTAX "NET FILE ..." - IDS_FILE_HELP "FILE\n..." - IDS_GROUP_SYNTAX "NET GROUP ..." - IDS_GROUP_HELP "GROUP\n..." - IDS_HELPMSG_SYNTAX "NET HELPMSG <código de error>" - IDS_HELPMSG_HELP "HELPMSG\n..." - IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [grupo [/COMMENT:""texto""]] [/DOMAIN]\n\ - grupo {/ADD [/COMMENT:""texto""] | /DELETE} [/DOMAIN]\n\ - grupo nombre [...] {/ADD | /DELETE} [/DOMAIN]" - IDS_LOCALGROUP_HELP "LOCALGROUP\n..." - IDS_NAME_SYNTAX "NET NAME ..." - IDS_NAME_HELP "NAME\n..." - IDS_PRINT_SYNTAX "NET PRINT ..." - IDS_PRINT_HELP "PRINT\n..." - IDS_PAUSE_SYNTAX "NET PAUSE <nombre del servicio>" - IDS_PAUSE_HELP "PAUSE\n..." - IDS_SEND_SYNTAX "NET SEND ..." - IDS_SEND_HELP "SEND\n..." - IDS_SESSION_SYNTAX "NET SESSION ..." - IDS_SESSION_HELP "SESSION\n..." - IDS_SHARE_SYNTAX "NET SHARE ..." - IDS_SHARE_HELP "SHARE\n..." - IDS_START_SYNTAX "NET START ..." - IDS_START_HELP "START\n..." - IDS_STATISTICS_SYNTAX "NET STATISTICS ..." - IDS_STATISTICS_HELP "STATISTICS\n..." - IDS_STOP_SYNTAX "NET STOP <nombre del servicio>" - IDS_STOP_HELP "STOP\n..." - IDS_TIME_SYNTAX "NET TIME ..." - IDS_TIME_HELP "TIME\n..." - IDS_USE_SYNTAX "NET USE ..." - IDS_USE_HELP "USE\n..." - IDS_USER_SYNTAX "NET USER [usuario [contraseña | *] [opciones]] [/DOMAIN]\n\ - usuario {contraseña | *} /ADD [opciones] [/DOMAIN]\n\ - usuario [/DELETE] [/DOMAIN]" - IDS_USER_HELP "USER\n..." - IDS_VIEW_SYNTAX "NET VIEW ..." - IDS_VIEW_HELP "VIEW\n..." - IDS_HELP_SYNTAX "NET HELP <comando>\n - o -\nNET <comando> /HELP\n\n\ - Éstos son los argumentos de línea de comandos disponibles:\n\n\ + IDS_FILE_SYNTAX "NET FILE [id [/CLOSE]]\n\n" + IDS_FILE_HELP "NET FILE\n...\n\n" + IDS_GROUP_SYNTAX "NET GROUP ...\n\n" + IDS_GROUP_HELP "GROUP\n...\n\n" + IDS_HELP_SYNTAX "NET HELP <comando>\n - o -\nNET <comando> /HELP\n\n" + IDS_HELP_HELP_1 " Éstos son los argumentos de línea de comandos disponibles:\n\n\ NET ACCOUNTS NET HELP NET SHARE\n\ NET COMPUTER NET HELPMSG NET START\n\ NET CONFIG NET LOCALGROUP NET STATISTICS\n\ @@ -131,8 +97,47 @@ type NET CONFIG SERVER without parameters.\n\n" NET CONFIG WORKSTATION NET PAUSE NET TIME\n\ NET CONTINUE NET PRINT NET USE\n\ NET FILE NET SEND NET USER\n\ - NET GROUP NET SESSION NET VIEW\n\n\ - ..." + NET GROUP NET SESSION NET VIEW\n\n" + IDS_HELP_HELP_2 " ...\n\n" + IDS_HELPMSG_SYNTAX "NET HELPMSG <código de error>\n\n" + IDS_HELPMSG_HELP_1 "NET HELPMSG displays information about network messages (such as\n\ +error, warning and alert messages). When you type NET HELPMSG and the numeric\n\ +error (for example, ""net helpmsg 2182""), you will get information about the\n\ +message and suggested actions you can take to solve the problem.\n\n" + IDS_HELPMSG_HELP_2 "message# Is the numerical error with which you need help.\n\n" + IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [grupo [/COMMENT:""texto""]] [/DOMAIN]\n\ + grupo {/ADD [/COMMENT:""texto""] | /DELETE} [/DOMAIN]\n\ + grupo nombre [...] {/ADD | /DELETE} [/DOMAIN]\n\n" + IDS_LOCALGROUP_HELP "LOCALGROUP\n...\n\n" + IDS_NAME_SYNTAX "NET NAME ...\n\n" + IDS_NAME_HELP "NAME\n...\n\n" + IDS_PRINT_SYNTAX "NET PRINT ...\n\n" + IDS_PRINT_HELP "PRINT\n...\n\n" + IDS_PAUSE_SYNTAX "NET PAUSE <nombre del servicio>\n\n" + IDS_PAUSE_HELP_1 "NET PAUSE suspends a service. Pausing a service puts it on hold.\n\n" + IDS_PAUSE_HELP_2 "service The name of the service to be paused.\n\n" + IDS_SEND_SYNTAX "NET SEND ...\n\n" + IDS_SEND_HELP "SEND\n...\n\n" + IDS_SESSION_SYNTAX "NET SESSION ...\n\n" + IDS_SESSION_HELP "SESSION\n...\n\n" + IDS_SHARE_SYNTAX "NET SHARE ...\n\n" + IDS_SHARE_HELP "SHARE\n...\n\n" + IDS_START_SYNTAX "NET START ...\n\n" + IDS_START_HELP "START\n...\n\n" + IDS_STATISTICS_SYNTAX "NET STATISTICS ...\n\n" + IDS_STATISTICS_HELP "STATISTICS\n...\n\n" + IDS_STOP_SYNTAX "NET STOP <nombre del servicio>\n\n" + IDS_STOP_HELP "STOP\n...\n\n" + IDS_TIME_SYNTAX "NET TIME ...\n\n" + IDS_TIME_HELP "TIME\n...\n\n" + IDS_USE_SYNTAX "NET USE ...\n\n" + IDS_USE_HELP "USE\n...\n\n" + IDS_USER_SYNTAX "NET USER [usuario [contraseña | *] [opciones]] [/DOMAIN]\n\ + usuario {contraseña | *} /ADD [opciones] [/DOMAIN]\n\ + usuario [/DELETE] [/DOMAIN]\n\n" + IDS_USER_HELP "USER\n...\n\n" + IDS_VIEW_SYNTAX "NET VIEW ...\n\n" + IDS_VIEW_HELP "VIEW\n...\n\n" IDS_NET_SYNTAX "NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |\n\ HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]\n" diff --git a/base/applications/network/net/lang/ro-RO.rc b/base/applications/network/net/lang/ro-RO.rc index ed6b98b40f..129e2c7de4 100644 --- a/base/applications/network/net/lang/ro-RO.rc +++ b/base/applications/network/net/lang/ro-RO.rc @@ -10,7 +10,7 @@ STRINGTABLE BEGIN IDS_ACCOUNTS_SYNTAX "NET ACCOUNTS [/FORCELOGOFF:{Minute|NO}] [/MINPWLEN:Lungime]\n\ [/MAXPWAGE:{Zile|UNLIMITED}] [/MINPWAGE:Zile]\n\ - [/UNIQUEPW:Număr] [/DOMAIN]\n" + [/UNIQUEPW:Număr] [/DOMAIN]\n\n" IDS_ACCOUNTS_HELP_1 "NET ACCOUNTS updates the user accounts database and modifies password\n\ and logon requirements for all accounts.\n\ When used without parameters, NET ACCOUNTS displays the current settings for\n\ @@ -78,7 +78,7 @@ WORKSTATION Displays information about the configuration of the\n\ on that server. The default is NO.\n\n" IDS_CONFIG_SERVER_HELP_5 "To display the current configuration for the Servr service,\n\ type NET CONFIG SERVER without parameters.\n\n" - IDS_CONTINUE_SYNTAX "NET CONTINUE <nume serviciu>" + IDS_CONTINUE_SYNTAX "NET CONTINUE <nume serviciu>\n\n" IDS_CONTINUE_HELP_1 "NET CONTINUE reactivates a service that has been suspended by NET PAUSE.\n\n" IDS_CONTINUE_HELP_2 "service Is the paused service\n\ For example, one of the following:\n\ @@ -87,46 +87,12 @@ type NET CONFIG SERVER without parameters.\n\n" SCHEDULE\n\ SERVER\n\ WORKSTATION\n\n" - IDS_FILE_SYNTAX "NET FILE ..." - IDS_FILE_HELP "FILE\n..." - IDS_GROUP_SYNTAX "NET GROUP ..." - IDS_GROUP_HELP "GROUP\n..." - IDS_HELPMSG_SYNTAX "NET HELPMSG <Error Code>" - IDS_HELPMSG_HELP "HELPMSG\n..." - IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [nume-de-grup [/COMMENT:""text""]] [/DOMAIN]\n\ - nume-de-grup {/ADD [/COMMENT:""text""] | /DELETE} [/DOMAIN]\n\ - nume-de-grup nume [...] {/ADD | /DELETE} [/DOMAIN]" - IDS_LOCALGROUP_HELP "LOCALGROUP\n..." - IDS_NAME_SYNTAX "NET NAME ..." - IDS_NAME_HELP "NAME\n..." - IDS_PRINT_SYNTAX "NET PRINT ..." - IDS_PRINT_HELP "PRINT\n..." - IDS_PAUSE_SYNTAX "NET PAUSE <nume serviciu>" - IDS_PAUSE_HELP "PAUSE\n..." - IDS_SEND_SYNTAX "NET SEND ..." - IDS_SEND_HELP "SEND\n..." - IDS_SESSION_SYNTAX "NET SESSION ..." - IDS_SESSION_HELP "SESSION\n..." - IDS_SHARE_SYNTAX "NET SHARE ..." - IDS_SHARE_HELP "SHARE\n..." - IDS_START_SYNTAX "NET START ..." - IDS_START_HELP "START\n..." - IDS_STATISTICS_SYNTAX "NET STATISTICS ..." - IDS_STATISTICS_HELP "STATISTICS\n..." - IDS_STOP_SYNTAX "NET STOP <nume serviciu>" - IDS_STOP_HELP "STOP\n..." - IDS_TIME_SYNTAX "NET TIME ..." - IDS_TIME_HELP "TIME\n..." - IDS_USE_SYNTAX "NET USE ..." - IDS_USE_HELP "USE\n..." - IDS_USER_SYNTAX "NET USER [nume-utilizator [parolă | *] [opțiuni]] [/DOMAIN]\n\ - nume-utilizator {parolă | *} /ADD [opțiuni] [/DOMAIN]\n\ - nume-utilizator [/DELETE] [/DOMAIN]" - IDS_USER_HELP "USER\n..." - IDS_VIEW_SYNTAX "NET VIEW ..." - IDS_VIEW_HELP "VIEW\n..." - IDS_HELP_SYNTAX "NET HELP <comandă>\n - sau -\nNET <comandă> /HELP\n\n\ - Sunt disponibile următoarele comenzi:\n\n\ + IDS_FILE_SYNTAX "NET FILE [id [/CLOSE]]\n\n" + IDS_FILE_HELP "NET FILE\n...\n\n" + IDS_GROUP_SYNTAX "NET GROUP ...\n\n" + IDS_GROUP_HELP "GROUP\n...\n\n" + IDS_HELP_SYNTAX "NET HELP <comandă>\n - sau -\nNET <comandă> /HELP\n\n" + IDS_HELP_HELP_1 " Sunt disponibile următoarele comenzi:\n\n\ NET ACCOUNTS NET HELP NET SHARE\n\ NET COMPUTER NET HELPMSG NET START\n\ NET CONFIG NET LOCALGROUP NET STATISTICS\n\ @@ -134,8 +100,47 @@ type NET CONFIG SERVER without parameters.\n\n" NET CONFIG WORKSTATION NET PAUSE NET TIME\n\ NET CONTINUE NET PRINT NET USE\n\ NET FILE NET SEND NET USER\n\ - NET GROUP NET SESSION NET VIEW\n\n\ - ..." + NET GROUP NET SESSION NET VIEW\n\n" + IDS_HELP_HELP_2 " ...\n\n" + IDS_HELPMSG_SYNTAX "NET HELPMSG <Error Code>\n\n" + IDS_HELPMSG_HELP_1 "NET HELPMSG displays information about network messages (such as\n\ +error, warning and alert messages). When you type NET HELPMSG and the numeric\n\ +error (for example, ""net helpmsg 2182""), you will get information about the\n\ +message and suggested actions you can take to solve the problem.\n\n" + IDS_HELPMSG_HELP_2 "message# Is the numerical error with which you need help.\n\n" + IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [nume-de-grup [/COMMENT:""text""]] [/DOMAIN]\n\ + nume-de-grup {/ADD [/COMMENT:""text""] | /DELETE} [/DOMAIN]\n\ + nume-de-grup nume [...] {/ADD | /DELETE} [/DOMAIN]\n\n" + IDS_LOCALGROUP_HELP "LOCALGROUP\n...\n\n" + IDS_NAME_SYNTAX "NET NAME ...\n\n" + IDS_NAME_HELP "NAME\n...\n\n" + IDS_PRINT_SYNTAX "NET PRINT ...\n\n" + IDS_PRINT_HELP "PRINT\n...\n\n" + IDS_PAUSE_SYNTAX "NET PAUSE <nume serviciu>\n\n" + IDS_PAUSE_HELP_1 "NET PAUSE suspends a service. Pausing a service puts it on hold.\n\n" + IDS_PAUSE_HELP_2 "service The name of the service to be paused.\n\n" + IDS_SEND_SYNTAX "NET SEND ...\n\n" + IDS_SEND_HELP "SEND\n...\n\n" + IDS_SESSION_SYNTAX "NET SESSION ...\n\n" + IDS_SESSION_HELP "SESSION\n...\n\n" + IDS_SHARE_SYNTAX "NET SHARE ...\n\n" + IDS_SHARE_HELP "SHARE\n...\n\n" + IDS_START_SYNTAX "NET START ...\n\n" + IDS_START_HELP "START\n...\n\n" + IDS_STATISTICS_SYNTAX "NET STATISTICS ...\n\n" + IDS_STATISTICS_HELP "STATISTICS\n...\n\n" + IDS_STOP_SYNTAX "NET STOP <nume serviciu>\n\n" + IDS_STOP_HELP "STOP\n...\n\n" + IDS_TIME_SYNTAX "NET TIME ...\n\n" + IDS_TIME_HELP "TIME\n...\n\n" + IDS_USE_SYNTAX "NET USE ...\n\n" + IDS_USE_HELP "USE\n...\n\n" + IDS_USER_SYNTAX "NET USER [nume-utilizator [parolă | *] [opțiuni]] [/DOMAIN]\n\ + nume-utilizator {parolă | *} /ADD [opțiuni] [/DOMAIN]\n\ + nume-utilizator [/DELETE] [/DOMAIN]\n\n" + IDS_USER_HELP "USER\n...\n\n" + IDS_VIEW_SYNTAX "NET VIEW ...\n\n" + IDS_VIEW_HELP "VIEW\n...\n\n" IDS_NET_SYNTAX "NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |\n\ HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]\n" diff --git a/base/applications/network/net/lang/ru-RU.rc b/base/applications/network/net/lang/ru-RU.rc index 98db6e612b..c76a6b9e93 100644 --- a/base/applications/network/net/lang/ru-RU.rc +++ b/base/applications/network/net/lang/ru-RU.rc @@ -6,7 +6,7 @@ STRINGTABLE BEGIN IDS_ACCOUNTS_SYNTAX "NET ACCOUNTS [/FORCELOGOFF:{минуты | NO}] [/MINPWLEN:длина]\n\ [/MAXPWAGE:{дни | UNLIMITED}] [/MINPWAGE:дни]\n\ - [/UNIQUEPW:число] [/DOMAIN]\n" + [/UNIQUEPW:число] [/DOMAIN]\n\n" IDS_ACCOUNTS_HELP_1 "NET ACCOUNTS updates the user accounts database and modifies password\n\ and logon requirements for all accounts.\n\ When used without parameters, NET ACCOUNTS displays the current settings for\n\ @@ -74,7 +74,7 @@ WORKSTATION Displays information about the configuration of the\n\ on that server. The default is NO.\n\n" IDS_CONFIG_SERVER_HELP_5 "To display the current configuration for the Servr service,\n\ type NET CONFIG SERVER without parameters.\n\n" - IDS_CONTINUE_SYNTAX "NET CONTINUE <имя_службы>" + IDS_CONTINUE_SYNTAX "NET CONTINUE <имя_службы>\n\n" IDS_CONTINUE_HELP_1 "NET CONTINUE reactivates a service that has been suspended by NET PAUSE.\n\n" IDS_CONTINUE_HELP_2 "service Is the paused service\n\ For example, one of the following:\n\ @@ -83,46 +83,12 @@ type NET CONFIG SERVER without parameters.\n\n" SCHEDULE\n\ SERVER\n\ WORKSTATION\n\n" - IDS_FILE_SYNTAX "NET FILE ..." - IDS_FILE_HELP "FILE\n..." - IDS_GROUP_SYNTAX "NET GROUP ..." - IDS_GROUP_HELP "GROUP\n..." - IDS_HELPMSG_SYNTAX "NET HELPMSG <Код ошибки>" - IDS_HELPMSG_HELP "HELPMSG\n..." - IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [имя_группы [/COMMENT:""текст""]] [/DOMAIN]\n\ - имя_группы {/ADD [/COMMENT:""текст""] | /DELETE} [/DOMAIN]\n\ - имя_группы имя [...] {/ADD | /DELETE} [/DOMAIN]" - IDS_LOCALGROUP_HELP "LOCALGROUP\n..." - IDS_NAME_SYNTAX "NET NAME ..." - IDS_NAME_HELP "NAME\n..." - IDS_PRINT_SYNTAX "NET PRINT ..." - IDS_PRINT_HELP "PRINT\n..." - IDS_PAUSE_SYNTAX "NET PAUSE <имя_службы>" - IDS_PAUSE_HELP "PAUSE\n..." - IDS_SEND_SYNTAX "NET SEND ..." - IDS_SEND_HELP "SEND\n..." - IDS_SESSION_SYNTAX "NET SESSION ..." - IDS_SESSION_HELP "SESSION\n..." - IDS_SHARE_SYNTAX "NET SHARE ..." - IDS_SHARE_HELP "SHARE\n..." - IDS_START_SYNTAX "NET START ..." - IDS_START_HELP "START\n..." - IDS_STATISTICS_SYNTAX "NET STATISTICS ..." - IDS_STATISTICS_HELP "STATISTICS\n..." - IDS_STOP_SYNTAX "NET STOP <имя_службы>" - IDS_STOP_HELP "STOP\n..." - IDS_TIME_SYNTAX "NET TIME ..." - IDS_TIME_HELP "TIME\n..." - IDS_USE_SYNTAX "NET USE ..." - IDS_USE_HELP "USE\n..." - IDS_USER_SYNTAX "NET USER [имя_пользователя [пароль | *] [параметры]] [/DOMAIN]\n\ - имя_пользователя {пароль | *} /ADD [параметры] [/DOMAIN]\n\ - имя_пользователя [/DELETE] [/DOMAIN]" - IDS_USER_HELP "USER\n..." - IDS_VIEW_SYNTAX "NET VIEW ..." - IDS_VIEW_HELP "VIEW\n..." - IDS_HELP_SYNTAX "NET HELP <Команда>\n - или -\nNET <Команда> /HELP\n\n\ - Доступны следующие команды:\n\n\ + IDS_FILE_SYNTAX "NET FILE [id [/CLOSE]]\n\n" + IDS_FILE_HELP "NET FILE\n...\n\n" + IDS_GROUP_SYNTAX "NET GROUP ...\n\n" + IDS_GROUP_HELP "GROUP\n...\n\n" + IDS_HELP_SYNTAX "NET HELP <Команда>\n - или -\nNET <Команда> /HELP\n\n" + IDS_HELP_HELP_1 " Доступны следующие команды:\n\n\ NET ACCOUNTS NET HELP NET SHARE\n\ NET COMPUTER NET HELPMSG NET START\n\ NET CONFIG NET LOCALGROUP NET STATISTICS\n\ @@ -130,8 +96,47 @@ type NET CONFIG SERVER without parameters.\n\n" NET CONFIG WORKSTATION NET PAUSE NET TIME\n\ NET CONTINUE NET PRINT NET USE\n\ NET FILE NET SEND NET USER\n\ - NET GROUP NET SESSION NET VIEW\n\n\ - ..." + NET GROUP NET SESSION NET VIEW\n\n" + IDS_HELP_HELP_2 " ...\n\n" + IDS_HELPMSG_SYNTAX "NET HELPMSG <Код ошибки>\n\n" + IDS_HELPMSG_HELP_1 "NET HELPMSG displays information about network messages (such as\n\ +error, warning and alert messages). When you type NET HELPMSG and the numeric\n\ +error (for example, ""net helpmsg 2182""), you will get information about the\n\ +message and suggested actions you can take to solve the problem.\n\n" + IDS_HELPMSG_HELP_2 "message# Is the numerical error with which you need help.\n\n" + IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [имя_группы [/COMMENT:""текст""]] [/DOMAIN]\n\ + имя_группы {/ADD [/COMMENT:""текст""] | /DELETE} [/DOMAIN]\n\ + имя_группы имя [...] {/ADD | /DELETE} [/DOMAIN]\n\n" + IDS_LOCALGROUP_HELP "LOCALGROUP\n...\n\n" + IDS_NAME_SYNTAX "NET NAME ...\n\n" + IDS_NAME_HELP "NAME\n...\n\n" + IDS_PRINT_SYNTAX "NET PRINT ...\n\n" + IDS_PRINT_HELP "PRINT\n...\n\n" + IDS_PAUSE_SYNTAX "NET PAUSE <имя_службы>\n\n" + IDS_PAUSE_HELP_1 "NET PAUSE suspends a service. Pausing a service puts it on hold.\n\n" + IDS_PAUSE_HELP_2 "service The name of the service to be paused.\n\n" + IDS_SEND_SYNTAX "NET SEND ...\n\n" + IDS_SEND_HELP "SEND\n...\n\n" + IDS_SESSION_SYNTAX "NET SESSION ...\n\n" + IDS_SESSION_HELP "SESSION\n...\n\n" + IDS_SHARE_SYNTAX "NET SHARE ...\n\n" + IDS_SHARE_HELP "SHARE\n...\n\n" + IDS_START_SYNTAX "NET START ...\n\n" + IDS_START_HELP "START\n...\n\n" + IDS_STATISTICS_SYNTAX "NET STATISTICS ...\n\n" + IDS_STATISTICS_HELP "STATISTICS\n...\n\n" + IDS_STOP_SYNTAX "NET STOP <имя_службы>\n\n" + IDS_STOP_HELP "STOP\n...\n\n" + IDS_TIME_SYNTAX "NET TIME ...\n\n" + IDS_TIME_HELP "TIME\n...\n\n" + IDS_USE_SYNTAX "NET USE ...\n\n" + IDS_USE_HELP "USE\n...\n\n" + IDS_USER_SYNTAX "NET USER [имя_пользователя [пароль | *] [параметры]] [/DOMAIN]\n\ + имя_пользователя {пароль | *} /ADD [параметры] [/DOMAIN]\n\ + имя_пользователя [/DELETE] [/DOMAIN]\n\n" + IDS_USER_HELP "USER\n...\n\n" + IDS_VIEW_SYNTAX "NET VIEW ...\n\n" + IDS_VIEW_HELP "VIEW\n...\n\n" IDS_NET_SYNTAX "NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |\n\ HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]\n" diff --git a/base/applications/network/net/lang/tr-TR.rc b/base/applications/network/net/lang/tr-TR.rc index ec3ddebc7f..aa38090751 100644 --- a/base/applications/network/net/lang/tr-TR.rc +++ b/base/applications/network/net/lang/tr-TR.rc @@ -6,7 +6,7 @@ STRINGTABLE BEGIN IDS_ACCOUNTS_SYNTAX "NET ACCOUNTS [/FORCELOGOFF:{Dakîka|NO}] [/MINPWLEN:Uzunluk]\n\ [/MAXPWAGE:{Gün|UNLIMITED}] [/MINPWAGE:Gün]\n\ - [/UNIQUEPW:Sayı] [/DOMAIN]\n" + [/UNIQUEPW:Sayı] [/DOMAIN]\n\n" IDS_ACCOUNTS_HELP_1 "NET ACCOUNTS updates the user accounts database and modifies password\n\ and logon requirements for all accounts.\n\ When used without parameters, NET ACCOUNTS displays the current settings for\n\ @@ -74,7 +74,7 @@ WORKSTATION Displays information about the configuration of the\n\ on that server. The default is NO.\n\n" IDS_CONFIG_SERVER_HELP_5 "To display the current configuration for the Servr service,\n\ type NET CONFIG SERVER without parameters.\n\n" - IDS_CONTINUE_SYNTAX "NET CONTINUE <Hizmet Adı>" + IDS_CONTINUE_SYNTAX "NET CONTINUE <Hizmet Adı>\n\n" IDS_CONTINUE_HELP_1 "NET CONTINUE reactivates a service that has been suspended by NET PAUSE.\n\n" IDS_CONTINUE_HELP_2 "service Is the paused service\n\ For example, one of the following:\n\ @@ -83,46 +83,12 @@ type NET CONFIG SERVER without parameters.\n\n" SCHEDULE\n\ SERVER\n\ WORKSTATION\n\n" - IDS_FILE_SYNTAX "NET FILE ..." - IDS_FILE_HELP "FILE\n..." - IDS_GROUP_SYNTAX "NET GROUP ..." - IDS_GROUP_HELP "GROUP\n..." - IDS_HELPMSG_SYNTAX "NET HELPMSG <Yanlışlık Kodu>" - IDS_HELPMSG_HELP "HELPMSG\n..." - IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [takım adı [/COMMENT:""metin""]] [/DOMAIN]\n\ - takım adı {/ADD [/COMMENT:""metin""] | /DELETE} [/DOMAIN]\n\ - takım adı ad [...] {/ADD | /DELETE} [/DOMAIN]" - IDS_LOCALGROUP_HELP "LOCALGROUP\n..." - IDS_NAME_SYNTAX "NET NAME ..." - IDS_NAME_HELP "NAME\n..." - IDS_PRINT_SYNTAX "NET PRINT ..." - IDS_PRINT_HELP "PRINT\n..." - IDS_PAUSE_SYNTAX "NET PAUSE <Hizmet Adı>" - IDS_PAUSE_HELP "PAUSE\n..." - IDS_SEND_SYNTAX "NET SEND ..." - IDS_SEND_HELP "SEND\n..." - IDS_SESSION_SYNTAX "NET SESSION ..." - IDS_SESSION_HELP "SESSION\n..." - IDS_SHARE_SYNTAX "NET SHARE ..." - IDS_SHARE_HELP "SHARE\n..." - IDS_START_SYNTAX "NET START <Hizmet Adı>" - IDS_START_HELP "START\n..." - IDS_STATISTICS_SYNTAX "NET STATISTICS ..." - IDS_STATISTICS_HELP "STATISTICS\n..." - IDS_STOP_SYNTAX "NET STOP <Hizmet Adı>" - IDS_STOP_HELP "STOP\n..." - IDS_TIME_SYNTAX "NET TIME ..." - IDS_TIME_HELP "TIME\n..." - IDS_USE_SYNTAX "NET USE ..." - IDS_USE_HELP "USE\n..." - IDS_USER_SYNTAX "NET USER [kullanıcı adı [şifre | *] [seçenekler]] [/DOMAIN]\n\ - kullanıcı adı {şifre | *} /ADD [seçenekler] [/DOMAIN]\n\ - kullanıcı adı [/DELETE] [/DOMAIN]" - IDS_USER_HELP "USER\n..." - IDS_VIEW_SYNTAX "NET VIEW ..." - IDS_VIEW_HELP "VIEW\n..." - IDS_HELP_SYNTAX "NET HELP <Komut>\n - ya da -\nNET <Komut> /HELP\n\n\ - Aşağıdaki komutlar kullanılabilir:\n\n\ + IDS_FILE_SYNTAX "NET FILE [id [/CLOSE]]\n\n" + IDS_FILE_HELP "NET FILE\n...\n\n" + IDS_GROUP_SYNTAX "NET GROUP ...\n\n" + IDS_GROUP_HELP "GROUP\n...\n\n" + IDS_HELP_SYNTAX "NET HELP <Komut>\n - ya da -\nNET <Komut> /HELP\n\n" + IDS_HELP_HELP_1 " Aşağıdaki komutlar kullanılabilir:\n\n\ NET ACCOUNTS NET HELP NET SHARE\n\ NET COMPUTER NET HELPMSG NET START\n\ NET CONFIG NET LOCALGROUP NET STATISTICS\n\ @@ -130,8 +96,47 @@ type NET CONFIG SERVER without parameters.\n\n" NET CONFIG WORKSTATION NET PAUSE NET TIME\n\ NET CONTINUE NET PRINT NET USE\n\ NET FILE NET SEND NET USER\n\ - NET GROUP NET SESSION NET VIEW\n\n\ - ..." + NET GROUP NET SESSION NET VIEW\n\n" + IDS_HELP_HELP_2 " ...\n\n" + IDS_HELPMSG_SYNTAX "NET HELPMSG <Yanlışlık Kodu>\n\n" + IDS_HELPMSG_HELP_1 "NET HELPMSG displays information about network messages (such as\n\ +error, warning and alert messages). When you type NET HELPMSG and the numeric\n\ +error (for example, ""net helpmsg 2182""), you will get information about the\n\ +message and suggested actions you can take to solve the problem.\n\n" + IDS_HELPMSG_HELP_2 "message# Is the numerical error with which you need help.\n\n" + IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [takım adı [/COMMENT:""metin""]] [/DOMAIN]\n\ + takım adı {/ADD [/COMMENT:""metin""] | /DELETE} [/DOMAIN]\n\ + takım adı ad [...] {/ADD | /DELETE} [/DOMAIN]\n\n" + IDS_LOCALGROUP_HELP "LOCALGROUP\n...\n\n" + IDS_NAME_SYNTAX "NET NAME ...\n\n" + IDS_NAME_HELP "NAME\n...\n\n" + IDS_PRINT_SYNTAX "NET PRINT ...\n\n" + IDS_PRINT_HELP "PRINT\n...\n\n" + IDS_PAUSE_SYNTAX "NET PAUSE <Hizmet Adı>\n\n" + IDS_PAUSE_HELP_1 "NET PAUSE suspends a service. Pausing a service puts it on hold.\n\n" + IDS_PAUSE_HELP_2 "service The name of the service to be paused.\n\n" + IDS_SEND_SYNTAX "NET SEND ...\n\n" + IDS_SEND_HELP "SEND\n...\n\n" + IDS_SESSION_SYNTAX "NET SESSION ...\n\n" + IDS_SESSION_HELP "SESSION\n...\n\n" + IDS_SHARE_SYNTAX "NET SHARE ...\n\n" + IDS_SHARE_HELP "SHARE\n...\n\n" + IDS_START_SYNTAX "NET START <Hizmet Adı>\n\n" + IDS_START_HELP "START\n...\n\n" + IDS_STATISTICS_SYNTAX "NET STATISTICS ...\n\n" + IDS_STATISTICS_HELP "STATISTICS\n...\n\n" + IDS_STOP_SYNTAX "NET STOP <Hizmet Adı>\n\n" + IDS_STOP_HELP "STOP\n...\n\n" + IDS_TIME_SYNTAX "NET TIME ...\n\n" + IDS_TIME_HELP "TIME\n...\n\n" + IDS_USE_SYNTAX "NET USE ...\n\n" + IDS_USE_HELP "USE\n...\n\n" + IDS_USER_SYNTAX "NET USER [kullanıcı adı [şifre | *] [seçenekler]] [/DOMAIN]\n\ + kullanıcı adı {şifre | *} /ADD [seçenekler] [/DOMAIN]\n\ + kullanıcı adı [/DELETE] [/DOMAIN]\n\n" + IDS_USER_HELP "USER\n...\n\n" + IDS_VIEW_SYNTAX "NET VIEW ...\n\n" + IDS_VIEW_HELP "VIEW\n...\n\n" IDS_NET_SYNTAX "NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |\n\ HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]\n" diff --git a/base/applications/network/net/lang/zh-CN.rc b/base/applications/network/net/lang/zh-CN.rc index 6b6adab3e2..2adbfd68e0 100644 --- a/base/applications/network/net/lang/zh-CN.rc +++ b/base/applications/network/net/lang/zh-CN.rc @@ -6,7 +6,7 @@ STRINGTABLE BEGIN IDS_ACCOUNTS_SYNTAX "NET ACCOUNTS [/FORCELOGOFF:{Minutes|NO}] [/MINPWLEN:Length]\n\ [/MAXPWAGE:{Days|UNLIMITED}] [/MINPWAGE:Days]\n\ - [/UNIQUEPW:Count] [/DOMAIN]\n" + [/UNIQUEPW:Count] [/DOMAIN]\n\n" IDS_ACCOUNTS_HELP_1 "NET ACCOUNTS updates the user accounts database and modifies password\n\ and logon requirements for all accounts.\n\ When used without parameters, NET ACCOUNTS displays the current settings for\n\ @@ -74,7 +74,7 @@ WORKSTATION Displays information about the configuration of the\n\ on that server. The default is NO.\n\n" IDS_CONFIG_SERVER_HELP_5 "To display the current configuration for the Servr service,\n\ type NET CONFIG SERVER without parameters.\n\n" - IDS_CONTINUE_SYNTAX "NET CONTINUE <Service Name>" + IDS_CONTINUE_SYNTAX "NET CONTINUE <Service Name>\n\n" IDS_CONTINUE_HELP_1 "NET CONTINUE reactivates a service that has been suspended by NET PAUSE.\n\n" IDS_CONTINUE_HELP_2 "service Is the paused service\n\ For example, one of the following:\n\ @@ -83,46 +83,12 @@ type NET CONFIG SERVER without parameters.\n\n" SCHEDULE\n\ SERVER\n\ WORKSTATION\n\n" - IDS_FILE_SYNTAX "NET FILE ..." - IDS_FILE_HELP "FILE\n..." - IDS_GROUP_SYNTAX "NET GROUP ..." - IDS_GROUP_HELP "GROUP\n..." - IDS_HELPMSG_SYNTAX "NET HELPMSG <Error Code>" - IDS_HELPMSG_HELP "HELPMSG\n..." - IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [groupname [/COMMENT:""text""]] [/DOMAIN]\n\ - groupname {/ADD [/COMMENT:""text""] | /DELETE} [/DOMAIN]\n\ - groupname name [...] {/ADD | /DELETE} [/DOMAIN]" - IDS_LOCALGROUP_HELP "LOCALGROUP\n..." - IDS_NAME_SYNTAX "NET NAME ..." - IDS_NAME_HELP "NAME\n..." - IDS_PRINT_SYNTAX "NET PRINT ..." - IDS_PRINT_HELP "PRINT\n..." - IDS_PAUSE_SYNTAX "NET PAUSE <Service Name>" - IDS_PAUSE_HELP "PAUSE\n..." - IDS_SEND_SYNTAX "NET SEND ..." - IDS_SEND_HELP "SEND\n..." - IDS_SESSION_SYNTAX "NET SESSION ..." - IDS_SESSION_HELP "SESSION\n..." - IDS_SHARE_SYNTAX "NET SHARE ..." - IDS_SHARE_HELP "SHARE\n..." - IDS_START_SYNTAX "NET START <Service name>" - IDS_START_HELP "START\n..." - IDS_STATISTICS_SYNTAX "NET STATISTICS ..." - IDS_STATISTICS_HELP "STATISTICS\n..." - IDS_STOP_SYNTAX "NET STOP <Service name>" - IDS_STOP_HELP "STOP\n..." - IDS_TIME_SYNTAX "NET TIME ..." - IDS_TIME_HELP "TIME\n..." - IDS_USE_SYNTAX "NET USE ..." - IDS_USE_HELP "USE\n..." - IDS_USER_SYNTAX "NET USER [username [password | *] [options]] [/DOMAIN]\n\ - username {password | *} /ADD [options] [/DOMAIN]\n\ - username [/DELETE] [/DOMAIN]" - IDS_USER_HELP "USER\n..." - IDS_VIEW_SYNTAX "NET VIEW ..." - IDS_VIEW_HELP "VIEW\n..." - IDS_HELP_SYNTAX "NET HELP <Command>\n - or -\nNET <Command> /HELP\n\n\ - 以下命令可用:\n\n\ + IDS_FILE_SYNTAX "NET FILE [id [/CLOSE]]\n\n" + IDS_FILE_HELP "NET FILE\n...\n\n" + IDS_GROUP_SYNTAX "NET GROUP ...\n\n" + IDS_GROUP_HELP "NET GROUP\n...\n\n" + IDS_HELP_SYNTAX "NET HELP <Command>\n - or -\nNET <Command> /HELP\n\n" + IDS_HELP_HELP_1 " 以下命令可用:\n\n\ NET ACCOUNTS NET HELP NET SHARE\n\ NET COMPUTER NET HELPMSG NET START\n\ NET CONFIG NET LOCALGROUP NET STATISTICS\n\ @@ -130,8 +96,47 @@ type NET CONFIG SERVER without parameters.\n\n" NET CONFIG WORKSTATION NET PAUSE NET TIME\n\ NET CONTINUE NET PRINT NET USE\n\ NET FILE NET SEND NET USER\n\ - NET GROUP NET SESSION NET VIEW\n\n\ - ..." + NET GROUP NET SESSION NET VIEW\n\n" + IDS_HELP_HELP_2 " ...\n\n" + IDS_HELPMSG_SYNTAX "NET HELPMSG message#\n\n" + IDS_HELPMSG_HELP_1 "NET HELPMSG displays information about network messages (such as\n\ +error, warning and alert messages). When you type NET HELPMSG and the numeric\n\ +error (for example, ""net helpmsg 2182""), you will get information about the\n\ +message and suggested actions you can take to solve the problem.\n\n" + IDS_HELPMSG_HELP_2 "message# Is the numerical error with which you need help.\n\n" + IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [groupname [/COMMENT:""text""]] [/DOMAIN]\n\ + groupname {/ADD [/COMMENT:""text""] | /DELETE} [/DOMAIN]\n\ + groupname name [...] {/ADD | /DELETE} [/DOMAIN]\n\n" + IDS_LOCALGROUP_HELP "LOCALGROUP\n...\n\n" + IDS_NAME_SYNTAX "NET NAME ...\n\n" + IDS_NAME_HELP "NAME\n...\n\n" + IDS_PRINT_SYNTAX "NET PRINT ...\n\n" + IDS_PRINT_HELP "PRINT\n...\n\n" + IDS_PAUSE_SYNTAX "NET PAUSE <Service Name>\n\n" + IDS_PAUSE_HELP_1 "NET PAUSE suspends a service. Pausing a service puts it on hold.\n\n" + IDS_PAUSE_HELP_2 "service The name of the service to be paused.\n\n" + IDS_SEND_SYNTAX "NET SEND ...\n\n" + IDS_SEND_HELP "SEND\n...\n\n" + IDS_SESSION_SYNTAX "NET SESSION ...\n\n" + IDS_SESSION_HELP "SESSION\n...\n\n" + IDS_SHARE_SYNTAX "NET SHARE ...\n\n" + IDS_SHARE_HELP "SHARE\n...\n\n" + IDS_START_SYNTAX "NET START <Service name>\n\n" + IDS_START_HELP "START\n...\n\n" + IDS_STATISTICS_SYNTAX "NET STATISTICS ...\n\n" + IDS_STATISTICS_HELP "STATISTICS\n...\n\n" + IDS_STOP_SYNTAX "NET STOP <Service name>\n\n" + IDS_STOP_HELP "STOP\n...\n\n" + IDS_TIME_SYNTAX "NET TIME ...\n\n" + IDS_TIME_HELP "TIME\n...\n\n" + IDS_USE_SYNTAX "NET USE ...\n\n" + IDS_USE_HELP "USE\n...\n\n" + IDS_USER_SYNTAX "NET USER [username [password | *] [options]] [/DOMAIN]\n\ + username {password | *} /ADD [options] [/DOMAIN]\n\ + username [/DELETE] [/DOMAIN]\n\n" + IDS_USER_HELP "USER\n...\n\n" + IDS_VIEW_SYNTAX "NET VIEW ...\n\n" + IDS_VIEW_HELP "VIEW\n...\n\n" IDS_NET_SYNTAX "NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |\n\ HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]\n" diff --git a/base/applications/network/net/lang/zh-TW.rc b/base/applications/network/net/lang/zh-TW.rc index df68b2e34c..1d53ee6636 100644 --- a/base/applications/network/net/lang/zh-TW.rc +++ b/base/applications/network/net/lang/zh-TW.rc @@ -74,7 +74,7 @@ WORKSTATION Displays information about the configuration of the\n\ on that server. The default is NO.\n\n" IDS_CONFIG_SERVER_HELP_5 "To display the current configuration for the Servr service,\n\ type NET CONFIG SERVER without parameters.\n\n" - IDS_CONTINUE_SYNTAX "NET CONTINUE <服務名稱>" + IDS_CONTINUE_SYNTAX "NET CONTINUE <服務名稱>\n\n" IDS_CONTINUE_HELP_1 "NET CONTINUE reactivates a service that has been suspended by NET PAUSE.\n\n" IDS_CONTINUE_HELP_2 "service Is the paused service\n\ For example, one of the following:\n\ @@ -83,46 +83,12 @@ type NET CONFIG SERVER without parameters.\n\n" SCHEDULE\n\ SERVER\n\ WORKSTATION\n\n" - IDS_FILE_SYNTAX "NET FILE ..." - IDS_FILE_HELP "FILE\n..." - IDS_GROUP_SYNTAX "NET GROUP ..." - IDS_GROUP_HELP "GROUP\n..." - IDS_HELPMSG_SYNTAX "NET HELPMSG <錯誤程式碼>" - IDS_HELPMSG_HELP "HELPMSG\n..." - IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [組名 [/COMMENT:""文字""]] [/DOMAIN]\n\ - 組名 {/ADD [/COMMENT:""文字""] | /DELETE} [/DOMAIN]\n\ - 組名稱 [...] {/ADD | /DELETE} [/DOMAIN]" - IDS_LOCALGROUP_HELP "LOCALGROUP\n..." - IDS_NAME_SYNTAX "NET NAME ..." - IDS_NAME_HELP "NAME\n..." - IDS_PRINT_SYNTAX "NET PRINT ..." - IDS_PRINT_HELP "PRINT\n..." - IDS_PAUSE_SYNTAX "NET PAUSE <服務名稱>" - IDS_PAUSE_HELP "PAUSE\n..." - IDS_SEND_SYNTAX "NET SEND ..." - IDS_SEND_HELP "SEND\n..." - IDS_SESSION_SYNTAX "NET SESSION ..." - IDS_SESSION_HELP "SESSION\n..." - IDS_SHARE_SYNTAX "NET SHARE ..." - IDS_SHARE_HELP "SHARE\n..." - IDS_START_SYNTAX "NET START <服務名稱>" - IDS_START_HELP "START\n..." - IDS_STATISTICS_SYNTAX "NET STATISTICS ..." - IDS_STATISTICS_HELP "STATISTICS\n..." - IDS_STOP_SYNTAX "NET STOP <服務名稱>" - IDS_STOP_HELP "STOP\n..." - IDS_TIME_SYNTAX "NET TIME ..." - IDS_TIME_HELP "TIME\n..." - IDS_USE_SYNTAX "NET USE ..." - IDS_USE_HELP "USE\n..." - IDS_USER_SYNTAX "NET USER [使用者名 [密碼 | *] [選項]] [/DOMAIN]\n\ - 使用者名 {密碼 | *} /ADD [選項] [/DOMAIN]\n\ - 使用者名 [/DELETE] [/DOMAIN]" - IDS_USER_HELP "USER\n..." - IDS_VIEW_SYNTAX "NET VIEW ..." - IDS_VIEW_HELP "VIEW\n..." - IDS_HELP_SYNTAX "NET HELP <命令>\n - 或 -\nNET <命令> /HELP\n\n\ - 以下命令是可用的:\n\n\ + IDS_FILE_SYNTAX "NET FILE [id [/CLOSE]]\n\n" + IDS_FILE_HELP "NET FILE\n...\n\n" + IDS_GROUP_SYNTAX "NET GROUP ...\n\n" + IDS_GROUP_HELP "GROUP\n...\n\n" + IDS_HELP_SYNTAX "NET HELP <命令>\n - 或 -\nNET <命令> /HELP\n\n" + IDS_HELP_HELP_1 " 以下命令是可用的:\n\n\ NET ACCOUNTS NET HELP NET SHARE\n\ NET COMPUTER NET HELPMSG NET START\n\ NET CONFIG NET LOCALGROUP NET STATISTICS\n\ @@ -130,8 +96,47 @@ type NET CONFIG SERVER without parameters.\n\n" NET CONFIG WORKSTATION NET PAUSE NET TIME\n\ NET CONTINUE NET PRINT NET USE\n\ NET FILE NET SEND NET USER\n\ - NET GROUP NET SESSION NET VIEW\n\n\ - ..." + NET GROUP NET SESSION NET VIEW\n\n" + IDS_HELP_HELP_2 " ...\n\n" + IDS_HELPMSG_SYNTAX "NET HELPMSG <錯誤程式碼>\n\n" + IDS_HELPMSG_HELP_1 "NET HELPMSG displays information about network messages (such as\n\ +error, warning and alert messages). When you type NET HELPMSG and the numeric\n\ +error (for example, ""net helpmsg 2182""), you will get information about the\n\ +message and suggested actions you can take to solve the problem.\n\n" + IDS_HELPMSG_HELP_2 "message# Is the numerical error with which you need help.\n\n" + IDS_LOCALGROUP_SYNTAX "NET LOCALGROUP [組名 [/COMMENT:""文字""]] [/DOMAIN]\n\ + 組名 {/ADD [/COMMENT:""文字""] | /DELETE} [/DOMAIN]\n\ + 組名稱 [...] {/ADD | /DELETE} [/DOMAIN]\n\n" + IDS_LOCALGROUP_HELP "LOCALGROUP\n...\n\n" + IDS_NAME_SYNTAX "NET NAME ...\n\n" + IDS_NAME_HELP "NAME\n...\n\n" + IDS_PRINT_SYNTAX "NET PRINT ...\n\n" + IDS_PRINT_HELP "PRINT\n...\n\n" + IDS_PAUSE_SYNTAX "NET PAUSE <服務名稱>\n\n" + IDS_PAUSE_HELP_1 "NET PAUSE suspends a service. Pausing a service puts it on hold.\n\n" + IDS_PAUSE_HELP_2 "service The name of the service to be paused.\n\n" + IDS_SEND_SYNTAX "NET SEND ...\n\n" + IDS_SEND_HELP "SEND\n...\n\n" + IDS_SESSION_SYNTAX "NET SESSION ...\n\n" + IDS_SESSION_HELP "SESSION\n...\n\n" + IDS_SHARE_SYNTAX "NET SHARE ...\n\n" + IDS_SHARE_HELP "SHARE\n...\n\n" + IDS_START_SYNTAX "NET START <服務名稱>\n\n" + IDS_START_HELP "START\n...\n\n" + IDS_STATISTICS_SYNTAX "NET STATISTICS ...\n\n" + IDS_STATISTICS_HELP "STATISTICS\n...\n\n" + IDS_STOP_SYNTAX "NET STOP <服務名稱>\n\n" + IDS_STOP_HELP "STOP\n...\n\n" + IDS_TIME_SYNTAX "NET TIME ...\n\n" + IDS_TIME_HELP "TIME\n...\n\n" + IDS_USE_SYNTAX "NET USE ...\n\n" + IDS_USE_HELP "USE\n...\n\n" + IDS_USER_SYNTAX "NET USER [使用者名 [密碼 | *] [選項]] [/DOMAIN]\n\ + 使用者名 {密碼 | *} /ADD [選項] [/DOMAIN]\n\ + 使用者名 [/DELETE] [/DOMAIN]\n\n" + IDS_USER_HELP "USER\n...\n\n" + IDS_VIEW_SYNTAX "NET VIEW ...\n\n" + IDS_VIEW_HELP "VIEW\n...\n\n" IDS_NET_SYNTAX "NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |\n\ HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]\n" diff --git a/base/applications/network/net/resource.h b/base/applications/network/net/resource.h index 3d00b0da60..5b37dac376 100644 --- a/base/applications/network/net/resource.h +++ b/base/applications/network/net/resource.h @@ -26,44 +26,46 @@ #define IDS_CONTINUE_SYNTAX 123 #define IDS_CONTINUE_HELP_1 124 #define IDS_CONTINUE_HELP_2 125 - -#define IDS_FILE_SYNTAX 126 -#define IDS_FILE_HELP 127 - -#define IDS_GROUP_SYNTAX 132 -#define IDS_GROUP_HELP 133 -#define IDS_HELPMSG_SYNTAX 134 -#define IDS_HELPMSG_HELP 135 -#define IDS_LOCALGROUP_SYNTAX 136 -#define IDS_LOCALGROUP_HELP 137 -#define IDS_NAME_SYNTAX 138 -#define IDS_NAME_HELP 139 -#define IDS_PAUSE_SYNTAX 140 -#define IDS_PAUSE_HELP 141 -#define IDS_PRINT_SYNTAX 142 -#define IDS_PRINT_HELP 143 -#define IDS_SEND_SYNTAX 144 -#define IDS_SEND_HELP 145 -#define IDS_SESSION_SYNTAX 146 -#define IDS_SESSION_HELP 147 -#define IDS_SHARE_SYNTAX 148 -#define IDS_SHARE_HELP 149 -#define IDS_START_SYNTAX 150 -#define IDS_START_HELP 151 -#define IDS_STATISTICS_SYNTAX 152 -#define IDS_STATISTICS_HELP 153 -#define IDS_STOP_SYNTAX 154 -#define IDS_STOP_HELP 155 -#define IDS_TIME_SYNTAX 156 -#define IDS_TIME_HELP 157 -#define IDS_USE_SYNTAX 158 -#define IDS_USE_HELP 159 -#define IDS_USER_SYNTAX 160 -#define IDS_USER_HELP 161 -#define IDS_VIEW_SYNTAX 162 -#define IDS_VIEW_HELP 163 -#define IDS_HELP_SYNTAX 164 -#define IDS_NET_SYNTAX 165 +#define IDS_FILE_SYNTAX 126 +#define IDS_FILE_HELP 127 +#define IDS_GROUP_SYNTAX 128 +#define IDS_GROUP_HELP 129 +#define IDS_HELP_SYNTAX 130 +#define IDS_HELP_HELP_1 131 +#define IDS_HELP_HELP_2 132 +#define IDS_HELPMSG_SYNTAX 133 +#define IDS_HELPMSG_HELP_1 134 +#define IDS_HELPMSG_HELP_2 135 +#define IDS_LOCALGROUP_SYNTAX 136 +#define IDS_LOCALGROUP_HELP 137 +#define IDS_NAME_SYNTAX 138 +#define IDS_NAME_HELP 139 +#define IDS_PAUSE_SYNTAX 140 +#define IDS_PAUSE_HELP_1 141 +#define IDS_PAUSE_HELP_2 142 +#define IDS_PRINT_SYNTAX 143 +#define IDS_PRINT_HELP 144 +#define IDS_SEND_SYNTAX 145 +#define IDS_SEND_HELP 146 +#define IDS_SESSION_SYNTAX 147 +#define IDS_SESSION_HELP 148 +#define IDS_SHARE_SYNTAX 149 +#define IDS_SHARE_HELP 150 +#define IDS_START_SYNTAX 151 +#define IDS_START_HELP 152 +#define IDS_STATISTICS_SYNTAX 153 +#define IDS_STATISTICS_HELP 154 +#define IDS_STOP_SYNTAX 155 +#define IDS_STOP_HELP 156 +#define IDS_TIME_SYNTAX 157 +#define IDS_TIME_HELP 158 +#define IDS_USE_SYNTAX 159 +#define IDS_USE_HELP 160 +#define IDS_USER_SYNTAX 161 +#define IDS_USER_HELP 162 +#define IDS_VIEW_SYNTAX 163 +#define IDS_VIEW_HELP 164 +#define IDS_NET_SYNTAX 165 #define IDS_ACCOUNTS_FORCE_LOGOFF 200 #define IDS_ACCOUNTS_LOGOFF_SECONDS 201
6 years, 8 months
1
0
0
0
01/01: [CMD_WINETEST] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=bae2bac6130364bb658d9…
commit bae2bac6130364bb658d932cba40159245d7336e Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sun Apr 1 13:20:50 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sun Apr 1 13:20:50 2018 +0100 [CMD_WINETEST] Sync with Wine Staging 3.3. CORE-14434 --- modules/rostests/winetests/cmd/batch.c | 5 ++--- modules/rostests/winetests/cmd/test_builtins.cmd | 10 ++++++++++ modules/rostests/winetests/cmd/test_builtins.cmd.exp | 7 +++++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/modules/rostests/winetests/cmd/batch.c b/modules/rostests/winetests/cmd/batch.c index 01c55d74a1..71966090e9 100644 --- a/modules/rostests/winetests/cmd/batch.c +++ b/modules/rostests/winetests/cmd/batch.c @@ -17,11 +17,10 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -//#include <windows.h> +#include <windows.h> #include <stdio.h> -#include <wine/test.h> -#include <winnls.h> +#include "wine/test.h" static char workdir[MAX_PATH]; static DWORD workdir_len; diff --git a/modules/rostests/winetests/cmd/test_builtins.cmd b/modules/rostests/winetests/cmd/test_builtins.cmd index 62334b17b6..f6846283c7 100644 --- a/modules/rostests/winetests/cmd/test_builtins.cmd +++ b/modules/rostests/winetests/cmd/test_builtins.cmd @@ -1696,6 +1696,16 @@ for /f "tokens=2,2,3*" %%i in ("a b c d e f g") do echo h=%%h i=%%i j=%%j k=%%k for /f "tokens=3,2,3*" %%i in ("a b c d e f g") do echo h=%%h i=%%i j=%%j k=%%k l=%%l m=%%m n=%%n o=%%o cd .. rd /s/q foobar +echo ------ parameter splitting +echo forFParameterSplittingFunc "myparam1=myvalue1 myparam2=myparam2" mytest> foo +for /f "tokens=1 delims=;" %%i in (foo) do (call :%%i) +del foo +for /f "tokens=1 delims=;" %%i in ("forFParameterSplittingFunc "myparam1^=myvalue1 myparam2^=myparam2" mytest") do (call :%%i) +goto :forFParameterSplittingEnd +:forFParameterSplittingFunc +echo %~0 %~1 %~2 %~3 %~4 %~5 +goto :eof +:forFParameterSplittingEnd echo ------------ Testing del ------------ echo abc > file diff --git a/modules/rostests/winetests/cmd/test_builtins.cmd.exp b/modules/rostests/winetests/cmd/test_builtins.cmd.exp index 796550e57e..5512fee072 100644 --- a/modules/rostests/winetests/cmd/test_builtins.cmd.exp +++ b/modules/rostests/winetests/cmd/test_builtins.cmd.exp @@ -1222,6 +1222,9 @@ h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o@or_broken@h=%h i=a j=b k=c l=d e f g m h=%h i=a j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=a j=c k= l= m= n=%n o=%o h=%h i=b j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=b j=c k= l= m= n=%n o=%o h=%h i=b j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=b j=c k= l= m= n=%n o=%o +------ parameter splitting +:forFParameterSplittingFunc myparam1=myvalue1 myparam2=myparam2 mytest@space@@space@@space@ +:forFParameterSplittingFunc myparam1=myvalue1 myparam2=myparam2 mytest@space@@space@@space@ ------------ Testing del ------------ deleting 'file' errorlevel is 0, good @@ -1258,8 +1261,8 @@ file move succeeded @todo_wine@bar@or_broken@baz read-only files are moveable file moved in subdirectory -@todo_wine@moving a file to itself is a no-op@or_broken@moving a file to itself should be a no-op! -@todo_wine@ErrorLevel: 0@or_broken@ErrorLevel: 1 +moving a file to itself is a no-op@or_broken@moving a file to itself should be a no-op! +ErrorLevel: 0@or_broken@ErrorLevel: 1 --- directory move simple directory move succeeded moving a directory to itself gives error; errlevel 1
6 years, 8 months
1
0
0
0
01/01: [BROWSEUI_WINETEST] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d5b576b271da77175449e…
commit d5b576b271da77175449ebc2139b7b51e8419e65 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sun Apr 1 13:20:15 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sun Apr 1 13:20:15 2018 +0100 [BROWSEUI_WINETEST] Sync with Wine Staging 3.3. CORE-14434 --- modules/rostests/winetests/browseui/autocomplete.c | 18 +++++++----------- modules/rostests/winetests/browseui/progressdlg.c | 11 ++++------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/modules/rostests/winetests/browseui/autocomplete.c b/modules/rostests/winetests/browseui/autocomplete.c index e50e9c2f2e..0b04ab2d96 100644 --- a/modules/rostests/winetests/browseui/autocomplete.c +++ b/modules/rostests/winetests/browseui/autocomplete.c @@ -17,22 +17,18 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H #define COBJMACROS -#include <wine/test.h> +#include <stdarg.h> -//#include <stdarg.h> -#include <winnls.h> -//#include <initguid.h> +#include <initguid.h> +#include <windows.h> #include <shlobj.h> -//#include <shldisp.h> -//#include <shlwapi.h> -//#include <shlguid.h> - +#include <shldisp.h> +#include <shlwapi.h> +#include <shlguid.h> +#include "wine/test.h" #define ole_ok(exp) \ { \ diff --git a/modules/rostests/winetests/browseui/progressdlg.c b/modules/rostests/winetests/browseui/progressdlg.c index ccb5cdbbcf..22037141d6 100644 --- a/modules/rostests/winetests/browseui/progressdlg.c +++ b/modules/rostests/winetests/browseui/progressdlg.c @@ -17,17 +17,14 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - #define COBJMACROS -#include <wine/test.h> - -//#include <stdarg.h> +#include <stdarg.h> #include <shlobj.h> +#include "wine/test.h" + + static void test_IProgressDialog_QueryInterface(void) { IProgressDialog *dlg;
6 years, 8 months
1
0
0
0
01/01: [ADVAPI32_WINETEST] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3c1b7834e15b652076c21…
commit 3c1b7834e15b652076c21d2d4ed8232d522b971a Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sun Apr 1 13:19:24 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sun Apr 1 13:19:24 2018 +0100 [ADVAPI32_WINETEST] Sync with Wine Staging 3.3. CORE-14434 --- modules/rostests/winetests/advapi32/cred.c | 9 +- modules/rostests/winetests/advapi32/crypt.c | 10 +- modules/rostests/winetests/advapi32/crypt_lmhash.c | 9 +- modules/rostests/winetests/advapi32/crypt_md4.c | 10 +- modules/rostests/winetests/advapi32/crypt_md5.c | 7 +- modules/rostests/winetests/advapi32/crypt_sha.c | 8 +- modules/rostests/winetests/advapi32/eventlog.c | 18 +- modules/rostests/winetests/advapi32/lsa.c | 216 ++++++++++---------- modules/rostests/winetests/advapi32/precomp.h | 11 +- modules/rostests/winetests/advapi32/registry.c | 20 +- modules/rostests/winetests/advapi32/security.c | 138 ++++++++++++- modules/rostests/winetests/advapi32/service.c | 219 +++++++++++++++++---- 12 files changed, 496 insertions(+), 179 deletions(-) diff --git a/modules/rostests/winetests/advapi32/cred.c b/modules/rostests/winetests/advapi32/cred.c index 38b23bc667..bb5fb4eace 100644 --- a/modules/rostests/winetests/advapi32/cred.c +++ b/modules/rostests/winetests/advapi32/cred.c @@ -18,9 +18,14 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdarg.h> +#include <stdio.h> -#include <wincred.h> +#include "windef.h" +#include "winbase.h" +#include "wincred.h" + +#include "wine/test.h" static BOOL (WINAPI *pCredDeleteA)(LPCSTR,DWORD,DWORD); static BOOL (WINAPI *pCredEnumerateA)(LPCSTR,DWORD,DWORD *,PCREDENTIALA **); diff --git a/modules/rostests/winetests/advapi32/crypt.c b/modules/rostests/winetests/advapi32/crypt.c index 4e05a8a15f..13671eb0c2 100644 --- a/modules/rostests/winetests/advapi32/crypt.c +++ b/modules/rostests/winetests/advapi32/crypt.c @@ -18,9 +18,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdarg.h> -#include <wincrypt.h> +#include "windef.h" +#include "winbase.h" +#include "wincrypt.h" +#include "winerror.h" +#include "winreg.h" + +#include "wine/test.h" static const char szRsaBaseProv[] = MS_DEF_PROV_A; static const char szNonExistentProv[] = "Wine Nonexistent Cryptographic Provider v11.2"; diff --git a/modules/rostests/winetests/advapi32/crypt_lmhash.c b/modules/rostests/winetests/advapi32/crypt_lmhash.c index 4a5ca15dde..a6e812e54a 100644 --- a/modules/rostests/winetests/advapi32/crypt_lmhash.c +++ b/modules/rostests/winetests/advapi32/crypt_lmhash.c @@ -19,7 +19,14 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdio.h> + +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include "wine/test.h" +#include "windef.h" +#include "winbase.h" +#include "winternl.h" struct ustring { DWORD Length; diff --git a/modules/rostests/winetests/advapi32/crypt_md4.c b/modules/rostests/winetests/advapi32/crypt_md4.c index 2b9d2412d3..e67becb1f0 100644 --- a/modules/rostests/winetests/advapi32/crypt_md4.c +++ b/modules/rostests/winetests/advapi32/crypt_md4.c @@ -18,7 +18,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdio.h> + +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include "wine/test.h" +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "winternl.h" typedef struct { diff --git a/modules/rostests/winetests/advapi32/crypt_md5.c b/modules/rostests/winetests/advapi32/crypt_md5.c index cae4fc5229..4cf88688ea 100644 --- a/modules/rostests/winetests/advapi32/crypt_md5.c +++ b/modules/rostests/winetests/advapi32/crypt_md5.c @@ -18,7 +18,12 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdio.h> + +#include "wine/test.h" +#include "windef.h" +#include "winbase.h" +#include "winerror.h" typedef struct { diff --git a/modules/rostests/winetests/advapi32/crypt_sha.c b/modules/rostests/winetests/advapi32/crypt_sha.c index f0350204b6..2737ee7c0c 100644 --- a/modules/rostests/winetests/advapi32/crypt_sha.c +++ b/modules/rostests/winetests/advapi32/crypt_sha.c @@ -18,7 +18,13 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" + +#include "wine/test.h" typedef struct { ULONG Unknown[6]; diff --git a/modules/rostests/winetests/advapi32/eventlog.c b/modules/rostests/winetests/advapi32/eventlog.c index 0b8484f17c..e6b2de5edb 100644 --- a/modules/rostests/winetests/advapi32/eventlog.c +++ b/modules/rostests/winetests/advapi32/eventlog.c @@ -18,11 +18,19 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdarg.h> -#include <wmistr.h> -#include <initguid.h> -#include <evntrace.h> +#include "initguid.h" +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "winnt.h" +#include "winreg.h" +#include "sddl.h" +#include "wmistr.h" +#include "evntrace.h" + +#include "wine/test.h" static BOOL (WINAPI *pCreateWellKnownSid)(WELL_KNOWN_SID_TYPE,PSID,PSID,DWORD*); static BOOL (WINAPI *pGetEventLogInformation)(HANDLE,DWORD,LPVOID,DWORD,LPDWORD); @@ -1149,7 +1157,7 @@ static void test_start_trace(void) LONG ret; buffersize = sizeof(EVENT_TRACE_PROPERTIES) + sizeof(sessionname) + sizeof(filepath); - properties = (EVENT_TRACE_PROPERTIES *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, buffersize); + properties = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, buffersize); properties->Wnode.BufferSize = buffersize; properties->Wnode.Flags = WNODE_FLAG_TRACED_GUID; properties->LogFileMode = EVENT_TRACE_FILE_MODE_NONE; diff --git a/modules/rostests/winetests/advapi32/lsa.c b/modules/rostests/winetests/advapi32/lsa.c index 0ce93c678d..dcdcdc8b1e 100644 --- a/modules/rostests/winetests/advapi32/lsa.c +++ b/modules/rostests/winetests/advapi32/lsa.c @@ -18,47 +18,30 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" - -#include <winnls.h> -#include <objbase.h> -#include <initguid.h> +#include <stdarg.h> +#include <stdio.h> + +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include "windef.h" +#include "winbase.h" +#include "winreg.h" +#ifndef __REACTOS__ +#include "ntsecapi.h" +#endif +#include "sddl.h" +#include "winnls.h" +#include "objbase.h" +#include "initguid.h" +#include "wine/test.h" +#include "winternl.h" +#ifdef __REACTOS__ +#include <ntsecapi.h> +#endif +#include "ntlsa.h" DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); -static HMODULE hadvapi32; -static NTSTATUS (WINAPI *pLsaClose)(LSA_HANDLE); -static NTSTATUS (WINAPI *pLsaEnumerateAccountRights)(LSA_HANDLE,PSID,PLSA_UNICODE_STRING*,PULONG); -static NTSTATUS (WINAPI *pLsaFreeMemory)(PVOID); -static NTSTATUS (WINAPI *pLsaOpenPolicy)(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE); -static NTSTATUS (WINAPI *pLsaQueryInformationPolicy)(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*); -static BOOL (WINAPI *pConvertSidToStringSidA)(PSID,LPSTR*); -static BOOL (WINAPI *pConvertStringSidToSidA)(LPCSTR,PSID*); -static NTSTATUS (WINAPI *pLsaLookupNames2)(LSA_HANDLE,ULONG,ULONG,PLSA_UNICODE_STRING,PLSA_REFERENCED_DOMAIN_LIST*,PLSA_TRANSLATED_SID2*); -static NTSTATUS (WINAPI *pLsaLookupSids)(LSA_HANDLE,ULONG,PSID*,LSA_REFERENCED_DOMAIN_LIST**,LSA_TRANSLATED_NAME**); -static PVOID (WINAPI *pFreeSid)(PSID); - -static BOOL init(void) -{ - hadvapi32 = GetModuleHandleA("advapi32.dll"); - - pLsaClose = (void*)GetProcAddress(hadvapi32, "LsaClose"); - pLsaEnumerateAccountRights = (void*)GetProcAddress(hadvapi32, "LsaEnumerateAccountRights"); - pLsaFreeMemory = (void*)GetProcAddress(hadvapi32, "LsaFreeMemory"); - pLsaOpenPolicy = (void*)GetProcAddress(hadvapi32, "LsaOpenPolicy"); - pLsaQueryInformationPolicy = (void*)GetProcAddress(hadvapi32, "LsaQueryInformationPolicy"); - pConvertSidToStringSidA = (void*)GetProcAddress(hadvapi32, "ConvertSidToStringSidA"); - pConvertStringSidToSidA = (void*)GetProcAddress(hadvapi32, "ConvertStringSidToSidA"); - pLsaLookupNames2 = (void*)GetProcAddress(hadvapi32, "LsaLookupNames2"); - pLsaLookupSids = (void*)GetProcAddress(hadvapi32, "LsaLookupSids"); - pFreeSid = (void*)GetProcAddress(hadvapi32, "FreeSid"); - - if (pLsaClose && pLsaEnumerateAccountRights && pLsaFreeMemory && pLsaOpenPolicy && pLsaQueryInformationPolicy && pConvertSidToStringSidA && pConvertStringSidToSidA && pFreeSid) - return TRUE; - - return FALSE; -} - static void test_lsa(void) { static WCHAR machineW[] = {'W','i','n','e','N','o','M','a','c','h','i','n','e',0}; @@ -74,18 +57,18 @@ static void test_lsa(void) machine.Length = sizeof(machineW) - 2; machine.MaximumLength = sizeof(machineW); - status = pLsaOpenPolicy( &machine, &object_attributes, POLICY_LOOKUP_NAMES, &handle); + status = LsaOpenPolicy( &machine, &object_attributes, POLICY_LOOKUP_NAMES, &handle); ok(status == RPC_NT_SERVER_UNAVAILABLE, "LsaOpenPolicy(POLICY_LOOKUP_NAMES) for invalid machine returned 0x%08x\n", status); - status = pLsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle); + status = LsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle); ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED, "LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08x\n", status); /* try a more restricted access mask if necessary */ if (status == STATUS_ACCESS_DENIED) { trace("LsaOpenPolicy(POLICY_ALL_ACCESS) failed, trying POLICY_VIEW_LOCAL_INFORMATION|POLICY_LOOKUP_NAMES\n"); - status = pLsaOpenPolicy( NULL, &object_attributes, POLICY_VIEW_LOCAL_INFORMATION|POLICY_LOOKUP_NAMES, &handle); + status = LsaOpenPolicy( NULL, &object_attributes, POLICY_VIEW_LOCAL_INFORMATION|POLICY_LOOKUP_NAMES, &handle); ok(status == STATUS_SUCCESS, "LsaOpenPolicy(POLICY_VIEW_LOCAL_INFORMATION|POLICY_LOOKUP_NAMES) returned 0x%08x\n", status); } @@ -97,21 +80,20 @@ static void test_lsa(void) HANDLE token; BOOL ret; - status = pLsaQueryInformationPolicy(handle, PolicyAuditEventsInformation, (PVOID*)&audit_events_info); + status = LsaQueryInformationPolicy(handle, PolicyAuditEventsInformation, (void **)&audit_events_info); if (status == STATUS_ACCESS_DENIED) skip("Not enough rights to retrieve PolicyAuditEventsInformation\n"); else ok(status == STATUS_SUCCESS, "LsaQueryInformationPolicy(PolicyAuditEventsInformation) failed, returned 0x%08x\n", status); - if (status == STATUS_SUCCESS) { - pLsaFreeMemory((LPVOID)audit_events_info); - } + if (status == STATUS_SUCCESS) + LsaFreeMemory(audit_events_info); - status = pLsaQueryInformationPolicy(handle, PolicyPrimaryDomainInformation, (PVOID*)&primary_domain_info); + status = LsaQueryInformationPolicy(handle, PolicyPrimaryDomainInformation, (void **)&primary_domain_info); ok(status == STATUS_SUCCESS, "LsaQueryInformationPolicy(PolicyPrimaryDomainInformation) failed, returned 0x%08x\n", status); if (status == STATUS_SUCCESS) { if (primary_domain_info->Sid) { LPSTR strsid; - if (pConvertSidToStringSidA(primary_domain_info->Sid, &strsid)) + if (ConvertSidToStringSidA(primary_domain_info->Sid, &strsid)) { if (primary_domain_info->Name.Buffer) { LPSTR name = NULL; @@ -130,17 +112,16 @@ static void test_lsa(void) } else trace("Running on a standalone system.\n"); - pLsaFreeMemory((LPVOID)primary_domain_info); + LsaFreeMemory(primary_domain_info); } - status = pLsaQueryInformationPolicy(handle, PolicyAccountDomainInformation, (PVOID*)&account_domain_info); + status = LsaQueryInformationPolicy(handle, PolicyAccountDomainInformation, (void **)&account_domain_info); ok(status == STATUS_SUCCESS, "LsaQueryInformationPolicy(PolicyAccountDomainInformation) failed, returned 0x%08x\n", status); - if (status == STATUS_SUCCESS) { - pLsaFreeMemory((LPVOID)account_domain_info); - } + if (status == STATUS_SUCCESS) + LsaFreeMemory(account_domain_info); /* This isn't supported in NT4 */ - status = pLsaQueryInformationPolicy(handle, PolicyDnsDomainInformation, (PVOID*)&dns_domain_info); + status = LsaQueryInformationPolicy(handle, PolicyDnsDomainInformation, (void **)&dns_domain_info); ok(status == STATUS_SUCCESS || status == STATUS_INVALID_PARAMETER, "LsaQueryInformationPolicy(PolicyDnsDomainInformation) failed, returned 0x%08x\n", status); if (status == STATUS_SUCCESS) { @@ -153,7 +134,7 @@ static void test_lsa(void) WCHAR guidstrW[64]; UINT len; guidstrW[0] = '\0'; - pConvertSidToStringSidA(dns_domain_info->Sid, &strsid); + ConvertSidToStringSidA(dns_domain_info->Sid, &strsid); StringFromGUID2(&dns_domain_info->DomainGuid, guidstrW, sizeof(guidstrW)/sizeof(WCHAR)); len = WideCharToMultiByte( CP_ACP, 0, guidstrW, -1, NULL, 0, NULL, NULL ); guidstr = LocalAlloc( 0, len ); @@ -184,7 +165,7 @@ static void test_lsa(void) } else trace("Running on a standalone system.\n"); - pLsaFreeMemory((LPVOID)dns_domain_info); + LsaFreeMemory(dns_domain_info); } /* We need a valid SID to pass to LsaEnumerateAccountRights */ @@ -208,10 +189,10 @@ static void test_lsa(void) ULONG rights_count; rights = (PLSA_UNICODE_STRING) 0xdeadbeaf; rights_count = 0xcafecafe; - status = pLsaEnumerateAccountRights(handle, token_user->User.Sid, &rights, &rights_count); + status = LsaEnumerateAccountRights(handle, token_user->User.Sid, &rights, &rights_count); ok(status == STATUS_SUCCESS || status == STATUS_OBJECT_NAME_NOT_FOUND, "Unexpected status 0x%x\n", status); if (status == STATUS_SUCCESS) - pLsaFreeMemory( rights ); + LsaFreeMemory( rights ); else ok(rights == NULL && rights_count == 0, "Expected rights and rights_count to be set to 0 on failure\n"); } @@ -220,7 +201,7 @@ static void test_lsa(void) CloseHandle( token ); } - status = pLsaClose(handle); + status = LsaClose(handle); ok(status == STATUS_SUCCESS, "LsaClose() failed, returned 0x%08x\n", status); } } @@ -254,12 +235,6 @@ static void test_LsaLookupNames2(void) LSA_UNICODE_STRING name[3]; LPSTR account, sid_dom; - if (!pLsaLookupNames2) - { - win_skip("LsaLookupNames2 not available\n"); - return; - } - if ((PRIMARYLANGID(LANGIDFROMLCID(GetSystemDefaultLCID())) != LANG_ENGLISH) || (PRIMARYLANGID(LANGIDFROMLCID(GetThreadLocale())) != LANG_ENGLISH)) { @@ -270,7 +245,7 @@ static void test_LsaLookupNames2(void) memset(&attrs, 0, sizeof(attrs)); attrs.Length = sizeof(attrs); - status = pLsaOpenPolicy(NULL, &attrs, POLICY_ALL_ACCESS, &handle); + status = LsaOpenPolicy(NULL, &attrs, POLICY_ALL_ACCESS, &handle); ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED, "LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08x\n", status); @@ -278,7 +253,7 @@ static void test_LsaLookupNames2(void) if (status == STATUS_ACCESS_DENIED) { trace("LsaOpenPolicy(POLICY_ALL_ACCESS) failed, trying POLICY_VIEW_LOCAL_INFORMATION\n"); - status = pLsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &handle); + status = LsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &handle); ok(status == STATUS_SUCCESS, "LsaOpenPolicy(POLICY_VIEW_LOCAL_INFORMATION) returned 0x%08x\n", status); } if (status != STATUS_SUCCESS) @@ -302,7 +277,7 @@ static void test_LsaLookupNames2(void) /* account name only */ sids = NULL; domains = NULL; - status = pLsaLookupNames2(handle, 0, 1, &name[0], &domains, &sids); + status = LsaLookupNames2(handle, 0, 1, &name[0], &domains, &sids); ok(status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %x)\n", status); ok(sids[0].Use == SidTypeWellKnownGroup, "expected SidTypeWellKnownGroup, got %u\n", sids[0].Use); ok(sids[0].Flags == 0, "expected 0, got 0x%08x\n", sids[0].Flags); @@ -310,24 +285,24 @@ static void test_LsaLookupNames2(void) get_sid_info(sids[0].Sid, &account, &sid_dom); ok(!strcmp(account, "LOCAL SERVICE"), "expected \"LOCAL SERVICE\", got \"%s\"\n", account); ok(!strcmp(sid_dom, "NT AUTHORITY"), "expected \"NT AUTHORITY\", got \"%s\"\n", sid_dom); - pLsaFreeMemory(sids); - pLsaFreeMemory(domains); + LsaFreeMemory(sids); + LsaFreeMemory(domains); /* unknown account name */ sids = NULL; domains = NULL; - status = pLsaLookupNames2(handle, 0, 1, &name[1], &domains, &sids); + status = LsaLookupNames2(handle, 0, 1, &name[1], &domains, &sids); ok(status == STATUS_NONE_MAPPED, "expected STATUS_NONE_MAPPED, got %x)\n", status); ok(sids[0].Use == SidTypeUnknown, "expected SidTypeUnknown, got %u\n", sids[0].Use); ok(sids[0].Flags == 0, "expected 0, got 0x%08x\n", sids[0].Flags); ok(domains->Entries == 0, "expected 0, got %u\n", domains->Entries); - pLsaFreeMemory(sids); - pLsaFreeMemory(domains); + LsaFreeMemory(sids); + LsaFreeMemory(domains); /* account + domain */ sids = NULL; domains = NULL; - status = pLsaLookupNames2(handle, 0, 1, &name[2], &domains, &sids); + status = LsaLookupNames2(handle, 0, 1, &name[2], &domains, &sids); ok(status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %x)\n", status); ok(sids[0].Use == SidTypeWellKnownGroup, "expected SidTypeWellKnownGroup, got %u\n", sids[0].Use); ok(sids[0].Flags == 0, "expected 0, got 0x%08x\n", sids[0].Flags); @@ -335,27 +310,27 @@ static void test_LsaLookupNames2(void) get_sid_info(sids[0].Sid, &account, &sid_dom); ok(!strcmp(account, "LOCAL SERVICE"), "expected \"LOCAL SERVICE\", got \"%s\"\n", account); ok(!strcmp(sid_dom, "NT AUTHORITY"), "expected \"NT AUTHORITY\", got \"%s\"\n", sid_dom); - pLsaFreeMemory(sids); - pLsaFreeMemory(domains); + LsaFreeMemory(sids); + LsaFreeMemory(domains); /* all three */ sids = NULL; domains = NULL; - status = pLsaLookupNames2(handle, 0, 3, name, &domains, &sids); + status = LsaLookupNames2(handle, 0, 3, name, &domains, &sids); ok(status == STATUS_SOME_NOT_MAPPED, "expected STATUS_SOME_NOT_MAPPED, got %x)\n", status); ok(sids[0].Use == SidTypeWellKnownGroup, "expected SidTypeWellKnownGroup, got %u\n", sids[0].Use); ok(sids[1].Use == SidTypeUnknown, "expected SidTypeUnknown, got %u\n", sids[1].Use); ok(sids[2].Use == SidTypeWellKnownGroup, "expected SidTypeWellKnownGroup, got %u\n", sids[2].Use); ok(sids[0].DomainIndex == 0, "expected 0, got %u\n", sids[0].DomainIndex); ok(domains->Entries == 1, "expected 1, got %u\n", domains->Entries); - pLsaFreeMemory(sids); - pLsaFreeMemory(domains); + LsaFreeMemory(sids); + LsaFreeMemory(domains); HeapFree(GetProcessHeap(), 0, name[0].Buffer); HeapFree(GetProcessHeap(), 0, name[1].Buffer); HeapFree(GetProcessHeap(), 0, name[2].Buffer); - status = pLsaClose(handle); + status = LsaClose(handle); ok(status == STATUS_SUCCESS, "LsaClose() failed, returned 0x%08x\n", status); } @@ -370,11 +345,12 @@ static void test_LsaLookupSids(void) HANDLE token; DWORD size; BOOL ret; + PSID sid; memset(&attrs, 0, sizeof(attrs)); attrs.Length = sizeof(attrs); - status = pLsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &policy); + status = LsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &policy); ok(status == STATUS_SUCCESS, "got 0x%08x\n", status); ret = OpenProcessToken(GetCurrentProcess(), MAXIMUM_ALLOWED, &token); @@ -387,7 +363,7 @@ static void test_LsaLookupSids(void) ret = GetTokenInformation(token, TokenUser, user, size, &size); ok(ret, "got %d\n", ret); - status = pLsaLookupSids(policy, 1, &user->User.Sid, &list, &names); + status = LsaLookupSids(policy, 1, &user->User.Sid, &list, &names); ok(status == STATUS_SUCCESS, "got 0x%08x\n", status); ok(list->Entries > 0, "got %d\n", list->Entries); @@ -399,37 +375,17 @@ static void test_LsaLookupSids(void) list->Domains[0].Name.Length); } - pLsaFreeMemory(names); - pLsaFreeMemory(list); + LsaFreeMemory(names); + LsaFreeMemory(list); HeapFree(GetProcessHeap(), 0, user); CloseHandle(token); - status = pLsaClose(policy); - ok(status == STATUS_SUCCESS, "got 0x%08x\n", status); -} + ret = ConvertStringSidToSidA("S-1-1-0", &sid); + ok(ret == TRUE, "ConvertStringSidToSidA returned false\n"); -static void test_LsaLookupSids_NullBuffers(void) -{ - LSA_REFERENCED_DOMAIN_LIST *list; - LSA_OBJECT_ATTRIBUTES attrs; - LSA_TRANSLATED_NAME *names; - LSA_HANDLE policy; - NTSTATUS status; - BOOL ret; - PSID sid; - - memset(&attrs, 0, sizeof(attrs)); - attrs.Length = sizeof(attrs); - - status = pLsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &policy); - ok(status == STATUS_SUCCESS, "got 0x%08x\n", status); - - ret = pConvertStringSidToSidA("S-1-1-0", &sid); - ok(ret == TRUE, "pConvertStringSidToSidA returned false\n"); - - status = pLsaLookupSids(policy, 1, &sid, &list, &names); + status = LsaLookupSids(policy, 1, &sid, &list, &names); ok(status == STATUS_SUCCESS, "got 0x%08x\n", status); ok(list->Entries > 0, "got %d\n", list->Entries); @@ -443,24 +399,52 @@ static void test_LsaLookupSids_NullBuffers(void) ok(list->Domains[0].Name.Buffer != NULL, "domain[0] name buffer is null\n"); } - pLsaFreeMemory(names); - pLsaFreeMemory(list); + LsaFreeMemory(names); + LsaFreeMemory(list); - pFreeSid(sid); + FreeSid(sid); - status = pLsaClose(policy); + status = LsaClose(policy); ok(status == STATUS_SUCCESS, "got 0x%08x\n", status); } -START_TEST(lsa) +static void test_LsaLookupPrivilegeName(void) { - if (!init()) { - win_skip("Needed functions are not available\n"); - return; - } + LSA_OBJECT_ATTRIBUTES attrs; + LSA_UNICODE_STRING *name; + LSA_HANDLE policy; + NTSTATUS status; + LUID luid; + + memset(&attrs, 0, sizeof(attrs)); + attrs.Length = sizeof(attrs); + + status = LsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &policy); + ok(status == STATUS_SUCCESS, "Failed to open policy, %#x.\n", status); + + name = (void *)0xdeadbeef; + status = LsaLookupPrivilegeName(policy, NULL, &name); + ok(status != STATUS_SUCCESS, "Unexpected status %#x.\n", status); + ok(name == (void *)0xdeadbeef, "Unexpected name pointer.\n"); + + name = (void *)0xdeadbeef; + luid.HighPart = 1; + luid.LowPart = SE_CREATE_TOKEN_PRIVILEGE; + status = LsaLookupPrivilegeName(policy, &luid, &name); + ok(status == STATUS_NO_SUCH_PRIVILEGE, "Unexpected status %#x.\n", status); + ok(name == NULL, "Unexpected name pointer.\n"); + + luid.HighPart = 0; + luid.LowPart = SE_CREATE_TOKEN_PRIVILEGE; + status = LsaLookupPrivilegeName(policy, &luid, &name); + ok(status == 0, "got %#x.\n", status); + LsaFreeMemory(name); +} +START_TEST(lsa) +{ test_lsa(); test_LsaLookupNames2(); test_LsaLookupSids(); - test_LsaLookupSids_NullBuffers(); + test_LsaLookupPrivilegeName(); } diff --git a/modules/rostests/winetests/advapi32/precomp.h b/modules/rostests/winetests/advapi32/precomp.h index 21bf46d9f3..18f6d38e97 100644 --- a/modules/rostests/winetests/advapi32/precomp.h +++ b/modules/rostests/winetests/advapi32/precomp.h @@ -1,12 +1,16 @@ + #ifndef _ADVAPI32_WINETEST_PRECOMP_H_ #define _ADVAPI32_WINETEST_PRECOMP_H_ #include <stdio.h> -#include <ntstatus.h> -#define WIN32_NO_STATUS + #define WIN32_LEAN_AND_MEAN #define _INC_WINDOWS #define COM_NO_WINDOWS_H + +#include <ntstatus.h> +#define WIN32_NO_STATUS + #include <wine/test.h> #include <winreg.h> #include <wine/winternl.h> @@ -15,5 +19,4 @@ #include <lmcons.h> #include <aclapi.h> - -#endif /* !_ADVAPI32_WINETEST_PRECOMP_H_ */ \ No newline at end of file +#endif /* !_ADVAPI32_WINETEST_PRECOMP_H_ */ diff --git a/modules/rostests/winetests/advapi32/registry.c b/modules/rostests/winetests/advapi32/registry.c index 4b99099b65..716edac42e 100644 --- a/modules/rostests/winetests/advapi32/registry.c +++ b/modules/rostests/winetests/advapi32/registry.c @@ -19,10 +19,18 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" - #include <assert.h> -#include <winperf.h> +#include <stdarg.h> +#include <stdio.h> +#include "wine/test.h" +#include "windef.h" +#include "winbase.h" +#include "winternl.h" +#include "winreg.h" +#include "winperf.h" +#include "winsvc.h" +#include "winerror.h" +#include "aclapi.h" #define IS_HKCR(hk) ((UINT_PTR)hk > 0 && ((UINT_PTR)hk & 3) == 2) @@ -2506,6 +2514,12 @@ static void test_redirection(void) } } + if (limited_user) + { + skip("not enough privileges to modify HKLM\n"); + return; + } + err = RegCreateKeyExA( HKEY_LOCAL_MACHINE, "Software\\Wine", 0, NULL, 0, KEY_WOW64_64KEY | KEY_ALL_ACCESS, NULL, &root64, NULL ); ok( err == ERROR_SUCCESS, "RegCreateKeyExA failed: %u\n", err ); diff --git a/modules/rostests/winetests/advapi32/security.c b/modules/rostests/winetests/advapi32/security.c index c64b1d99e9..fdd657d6a0 100644 --- a/modules/rostests/winetests/advapi32/security.c +++ b/modules/rostests/winetests/advapi32/security.c @@ -19,7 +19,22 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdarg.h> +#include <stdio.h> + +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "winternl.h" +#include "aclapi.h" +#include "winnt.h" +#include "sddl.h" +#include "ntsecapi.h" +#include "lmcons.h" + +#include "wine/test.h" /* FIXME: Inspect */ #define GetCurrentProcessToken() ((HANDLE)~(ULONG_PTR)3) @@ -1872,6 +1887,36 @@ static void test_token_attr(void) LocalFree(SidString); HeapFree(GetProcessHeap(), 0, User); + /* logon */ + ret = GetTokenInformation(Token, TokenLogonSid, NULL, 0, &Size); + if (!ret && (GetLastError() == ERROR_INVALID_PARAMETER)) + todo_wine win_skip("TokenLogonSid not supported. Skipping tests\n"); + else + { + ok(!ret && (GetLastError() == ERROR_INSUFFICIENT_BUFFER), + "GetTokenInformation(TokenLogonSid) failed with error %d\n", GetLastError()); + Groups = HeapAlloc(GetProcessHeap(), 0, Size); + ret = GetTokenInformation(Token, TokenLogonSid, Groups, Size, &Size); + ok(ret, + "GetTokenInformation(TokenLogonSid) failed with error %d\n", GetLastError()); + if (ret) + { + ok(Groups->GroupCount == 1, "got %d\n", Groups->GroupCount); + if(Groups->GroupCount == 1) + { + ConvertSidToStringSidA(Groups->Groups[0].Sid, &SidString); + trace("TokenLogon: %s\n", SidString); + LocalFree(SidString); + + /* S-1-5-5-0-XXXXXX */ + ret = IsWellKnownSid(Groups->Groups[0].Sid, WinLogonIdsSid); + ok(ret, "Unknown SID\n"); + } + } + + HeapFree(GetProcessHeap(), 0, Groups); + } + /* privileges */ ret = GetTokenInformation(Token, TokenPrivileges, NULL, 0, &Size); ok(!ret && (GetLastError() == ERROR_INSUFFICIENT_BUFFER), @@ -2541,7 +2586,7 @@ static void test_LookupAccountName(void) "Expected ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError()); ok(sid_size != 0, "Expected non-zero sid size\n"); ok(domain_size != 0, "Expected non-zero domain size\n"); - ok(sid_use == 0xcafebabe, "Expected 0xcafebabe, got %d\n", sid_use); + ok(sid_use == (SID_NAME_USE)0xcafebabe, "Expected 0xcafebabe, got %d\n", sid_use); sid_save = sid_size; domain_save = domain_size; @@ -2628,7 +2673,7 @@ static void test_LookupAccountName(void) "Expected ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError()); ok(sid_size != 0, "Expected non-zero sid size\n"); ok(domain_size != 0, "Expected non-zero domain size\n"); - ok(sid_use == 0xcafebabe, "Expected 0xcafebabe, got %d\n", sid_use); + ok(sid_use == (SID_NAME_USE)0xcafebabe, "Expected 0xcafebabe, got %d\n", sid_use); psid = HeapAlloc(GetProcessHeap(), 0, sid_size); domain = HeapAlloc(GetProcessHeap(), 0, domain_size); @@ -2736,12 +2781,12 @@ static void test_LookupAccountName(void) static void test_security_descriptor(void) { - SECURITY_DESCRIPTOR sd; + SECURITY_DESCRIPTOR sd, *sd_rel, *sd_rel2, *sd_abs; char buf[8192]; - DWORD size; + DWORD size, size_dacl, size_sacl, size_owner, size_group; BOOL isDefault, isPresent, ret; - PACL pacl; - PSID psid; + PACL pacl, dacl, sacl; + PSID psid, owner, group; SetLastError(0xdeadbeef); ret = InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION); @@ -2779,6 +2824,46 @@ static void test_security_descriptor(void) expect_eq(psid, NULL, PSID, "%p"); expect_eq(isDefault, FALSE, BOOL, "%d"); } + + ret = pConvertStringSecurityDescriptorToSecurityDescriptorA( + "O:SYG:S-1-5-21-93476-23408-4576D:(A;NP;GAGXGWGR;;;SU)(A;IOID;CCDC;;;SU)" + "(D;OICI;0xffffffff;;;S-1-5-21-93476-23408-4576)S:(AU;OICINPIOIDSAFA;CCDCLCSWRPRC;;;SU)" + "(AU;NPSA;0x12019f;;;SU)", SDDL_REVISION_1, (void **)&sd_rel, NULL); + ok(ret, "got %u\n", GetLastError()); + + size = 0; + ret = MakeSelfRelativeSD(sd_rel, NULL, &size); + todo_wine ok(!ret && GetLastError() == ERROR_BAD_DESCRIPTOR_FORMAT, "got %u\n", GetLastError()); + + /* convert to absolute form */ + size = size_dacl = size_sacl = size_owner = size_group = 0; + ret = MakeAbsoluteSD(sd_rel, NULL, &size, NULL, &size_dacl, NULL, &size_sacl, NULL, &size_owner, NULL, + &size_group); + ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "got %u\n", GetLastError()); + + sd_abs = HeapAlloc(GetProcessHeap(), 0, size + size_dacl + size_sacl + size_owner + size_group); + dacl = (PACL)(sd_abs + 1); + sacl = (PACL)((char *)dacl + size_dacl); + owner = (PSID)((char *)sacl + size_sacl); + group = (PSID)((char *)owner + size_owner); + ret = MakeAbsoluteSD(sd_rel, sd_abs, &size, dacl, &size_dacl, sacl, &size_sacl, owner, &size_owner, + group, &size_group); + ok(ret, "got %u\n", GetLastError()); + + size = 0; + ret = MakeSelfRelativeSD(sd_abs, NULL, &size); + ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "got %u\n", GetLastError()); + ok(size == 184, "got %u\n", size); + + size += 4; + sd_rel2 = HeapAlloc(GetProcessHeap(), 0, size); + ret = MakeSelfRelativeSD(sd_abs, sd_rel2, &size); + ok(ret, "got %u\n", GetLastError()); + ok(size == 188, "got %u\n", size); + + HeapFree(GetProcessHeap(), 0, sd_abs); + HeapFree(GetProcessHeap(), 0, sd_rel2); + LocalFree(sd_rel); } #define TEST_GRANTED_ACCESS(a,b) test_granted_access(a,b,0,__LINE__) @@ -3582,7 +3667,7 @@ static void test_CreateDirectoryA(void) sa.bInheritHandle = TRUE; InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION); pCreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, admin_sid, &sid_size); - pDacl = HeapAlloc(GetProcessHeap(), 0, 100); + pDacl = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 100); bret = InitializeAcl(pDacl, 100, ACL_REVISION); ok(bret, "Failed to initialize ACL.\n"); bret = pAddAccessAllowedAceEx(pDacl, ACL_REVISION, OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE, @@ -3732,7 +3817,6 @@ static void test_CreateDirectoryA(void) ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %d\n", error); bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation); ok(bret, "GetAclInformation failed\n"); - todo_wine ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%d != 0).\n", acl_size.AceCount); LocalFree(pSD); @@ -3743,6 +3827,7 @@ static void test_CreateDirectoryA(void) ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %d\n", error); bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation); ok(bret, "GetAclInformation failed\n"); + todo_wine ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%d != 0).\n", acl_size.AceCount); LocalFree(pSD); @@ -4298,6 +4383,8 @@ static void test_ConvertStringSecurityDescriptor(void) PSECURITY_DESCRIPTOR pSD; static const WCHAR Blank[] = { 0 }; unsigned int i; + ULONG size; + ACL *acl; static const struct { const char *sidstring; @@ -4408,6 +4495,33 @@ static void test_ConvertStringSecurityDescriptor(void) ok(ret || broken(!ret && GetLastError() == ERROR_INVALID_DATATYPE) /* win2k */, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %u\n", GetLastError()); if (ret) LocalFree(pSD); + + /* empty DACL */ + size = 0; + SetLastError(0xdeadbeef); + ret = pConvertStringSecurityDescriptorToSecurityDescriptorA("D:", SDDL_REVISION_1, &pSD, &size); + ok(ret, "unexpected error %u\n", GetLastError()); + ok(size == sizeof(SECURITY_DESCRIPTOR_RELATIVE) + sizeof(ACL), "got %u\n", size); + acl = (ACL *)((char *)pSD + sizeof(SECURITY_DESCRIPTOR_RELATIVE)); + ok(acl->AclRevision == ACL_REVISION, "got %u\n", acl->AclRevision); + ok(!acl->Sbz1, "got %u\n", acl->Sbz1); + ok(acl->AclSize == sizeof(*acl), "got %u\n", acl->AclSize); + ok(!acl->AceCount, "got %u\n", acl->AceCount); + ok(!acl->Sbz2, "got %u\n", acl->Sbz2); + LocalFree(pSD); + + /* empty SACL */ + size = 0; + SetLastError(0xdeadbeef); + ret = pConvertStringSecurityDescriptorToSecurityDescriptorA("S:", SDDL_REVISION_1, &pSD, &size); + ok(ret, "unexpected error %u\n", GetLastError()); + ok(size == sizeof(SECURITY_DESCRIPTOR_RELATIVE) + sizeof(ACL), "got %u\n", size); + acl = (ACL *)((char *)pSD + sizeof(SECURITY_DESCRIPTOR_RELATIVE)); + ok(!acl->Sbz1, "got %u\n", acl->Sbz1); + ok(acl->AclSize == sizeof(*acl), "got %u\n", acl->AclSize); + ok(!acl->AceCount, "got %u\n", acl->AceCount); + ok(!acl->Sbz2, "got %u\n", acl->Sbz2); + LocalFree(pSD); } static void test_ConvertSecurityDescriptorToString(void) @@ -6594,6 +6708,7 @@ static void test_AddMandatoryAce(void) HeapFree(GetProcessHeap(), 0, sd2); CloseHandle(handle); + memset(buffer_acl, 0, sizeof(buffer_acl)); ret = InitializeAcl(acl, 256, ACL_REVISION); ok(ret, "InitializeAcl failed with %u\n", GetLastError()); @@ -6858,6 +6973,8 @@ static void test_system_security_access(void) /* privilege is checked on access */ err = GetSecurityInfo( hkey, SE_REGISTRY_KEY, SACL_SECURITY_INFORMATION, NULL, NULL, NULL, &sacl, &sd ); todo_wine ok( err == ERROR_PRIVILEGE_NOT_HELD, "got %u\n", err ); + if (err == ERROR_SUCCESS) + LocalFree( sd ); priv.PrivilegeCount = 1; priv.Privileges[0].Luid = luid; @@ -7080,6 +7197,7 @@ static void test_maximum_allowed(void) ret = InitializeSecurityDescriptor(sd, SECURITY_DESCRIPTOR_REVISION); ok(ret, "InitializeSecurityDescriptor failed with %u\n", GetLastError()); + memset(buffer_acl, 0, sizeof(buffer_acl)); ret = InitializeAcl(acl, 256, ACL_REVISION); ok(ret, "InitializeAcl failed with %u\n", GetLastError()); ret = SetSecurityDescriptorDacl(sd, TRUE, acl, FALSE); @@ -7215,6 +7333,7 @@ static void test_token_security_descriptor(void) ret = InitializeSecurityDescriptor(sd, SECURITY_DESCRIPTOR_REVISION); ok(ret, "InitializeSecurityDescriptor failed with error %u\n", GetLastError()); + memset(buffer_acl, 0, sizeof(buffer_acl)); ret = InitializeAcl(acl, 256, ACL_REVISION); ok(ret, "InitializeAcl failed with error %u\n", GetLastError()); @@ -7638,6 +7757,7 @@ static void test_token_security_descriptor(void) CloseHandle(info.hThread); LocalFree(acl_child); + HeapFree(GetProcessHeap(), 0, sd2); LocalFree(psid); CloseHandle(token3); diff --git a/modules/rostests/winetests/advapi32/service.c b/modules/rostests/winetests/advapi32/service.c index 7d62a08359..8c13fbb2c6 100644 --- a/modules/rostests/winetests/advapi32/service.c +++ b/modules/rostests/winetests/advapi32/service.c @@ -18,12 +18,25 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include <stdarg.h> +#include <stdio.h> + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "winreg.h" +#include "winsvc.h" +#include "winnls.h" +#include "lmcons.h" +#include "aclapi.h" + +#include "wine/test.h" static const CHAR spooler[] = "Spooler"; /* Should be available on all platforms */ static CHAR selfname[MAX_PATH]; static BOOL (WINAPI *pChangeServiceConfig2A)(SC_HANDLE,DWORD,LPVOID); +static BOOL (WINAPI *pChangeServiceConfig2W)(SC_HANDLE,DWORD,LPVOID); static BOOL (WINAPI *pEnumServicesStatusExA)(SC_HANDLE, SC_ENUM_TYPE, DWORD, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD, LPDWORD, LPCSTR); @@ -45,6 +58,7 @@ static void init_function_pointers(void) HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll"); pChangeServiceConfig2A = (void*)GetProcAddress(hadvapi32, "ChangeServiceConfig2A"); + pChangeServiceConfig2W = (void*)GetProcAddress(hadvapi32, "ChangeServiceConfig2W"); pEnumServicesStatusExA= (void*)GetProcAddress(hadvapi32, "EnumServicesStatusExA"); pEnumServicesStatusExW= (void*)GetProcAddress(hadvapi32, "EnumServicesStatusExW"); pGetSecurityInfo = (void *)GetProcAddress(hadvapi32, "GetSecurityInfo"); @@ -1942,6 +1956,7 @@ static void test_queryconfig2(void) DWORD expected, needed; BYTE buffer[MAX_PATH]; LPSERVICE_DESCRIPTIONA pConfig = (LPSERVICE_DESCRIPTIONA)buffer; + LPSERVICE_DESCRIPTIONW pConfigW = (LPSERVICE_DESCRIPTIONW)buffer; SERVICE_PRESHUTDOWN_INFO preshutdown_info; static const CHAR servicename [] = "Winetest"; static const CHAR displayname [] = "Winetest dummy service"; @@ -1949,6 +1964,9 @@ static void test_queryconfig2(void) static const CHAR dependencies[] = "Master1\0Master2\0+MasterGroup1\0"; static const CHAR password [] = ""; static const CHAR description [] = "Description"; + static const CHAR description_empty[] = ""; + static const WCHAR descriptionW [] = {'D','e','s','c','r','i','p','t','i','o','n','W',0}; + static const WCHAR descriptionW_empty[] = {0}; if(!pQueryServiceConfig2A) { @@ -2109,6 +2127,66 @@ static void test_queryconfig2(void) ret = pQueryServiceConfig2W(svc_handle, SERVICE_CONFIG_DESCRIPTION,buffer, needed,&needed); ok(ret, "expected QueryServiceConfig2W to succeed\n"); + pConfig->lpDescription = (LPSTR)description; + ret = pChangeServiceConfig2A(svc_handle, SERVICE_CONFIG_DESCRIPTION, &buffer); + ok(ret, "expected ChangeServiceConfig2A to succeed\n"); + + pConfig->lpDescription = NULL; + ret = pQueryServiceConfig2A(svc_handle, SERVICE_CONFIG_DESCRIPTION, buffer, sizeof(buffer), &needed); + ok(ret, "expected QueryServiceConfig2A to succeed\n"); + ok(pConfig->lpDescription && !strcmp(description, pConfig->lpDescription), + "expected lpDescription to be %s, got %s\n", description, pConfig->lpDescription); + + pConfig->lpDescription = NULL; + ret = pChangeServiceConfig2A(svc_handle, SERVICE_CONFIG_DESCRIPTION, &buffer); + ok(ret, "expected ChangeServiceConfig2A to succeed\n"); + + pConfig->lpDescription = NULL; + ret = pQueryServiceConfig2A(svc_handle, SERVICE_CONFIG_DESCRIPTION, buffer, sizeof(buffer), &needed); + ok(ret, "expected QueryServiceConfig2A to succeed\n"); + ok(pConfig->lpDescription && !strcmp(description, pConfig->lpDescription), + "expected lpDescription to be %s, got %s\n", description, pConfig->lpDescription); + + pConfig->lpDescription = (LPSTR)description_empty; + ret = pChangeServiceConfig2A(svc_handle, SERVICE_CONFIG_DESCRIPTION, &buffer); + ok(ret, "expected ChangeServiceConfig2A to succeed\n"); + + pConfig->lpDescription = (void*)0xdeadbeef; + ret = pQueryServiceConfig2A(svc_handle, SERVICE_CONFIG_DESCRIPTION, buffer, sizeof(buffer), &needed); + ok(ret, "expected QueryServiceConfig2A to succeed\n"); + ok(!pConfig->lpDescription, + "expected lpDescription to be null, got %s\n", pConfig->lpDescription); + + pConfigW->lpDescription = (LPWSTR)descriptionW; + ret = pChangeServiceConfig2W(svc_handle, SERVICE_CONFIG_DESCRIPTION, &buffer); + ok(ret, "expected ChangeServiceConfig2W to succeed\n"); + + pConfigW->lpDescription = NULL; + ret = pQueryServiceConfig2W(svc_handle, SERVICE_CONFIG_DESCRIPTION, buffer, sizeof(buffer), &needed); + ok(ret, "expected QueryServiceConfig2A to succeed\n"); + ok(pConfigW->lpDescription && !lstrcmpW(descriptionW, pConfigW->lpDescription), + "expected lpDescription to be %s, got %s\n", wine_dbgstr_w(descriptionW), wine_dbgstr_w(pConfigW->lpDescription)); + + pConfigW->lpDescription = NULL; + ret = pChangeServiceConfig2W(svc_handle, SERVICE_CONFIG_DESCRIPTION, &buffer); + ok(ret, "expected ChangeServiceConfig2W to succeed\n"); + + pConfigW->lpDescription = NULL; + ret = pQueryServiceConfig2W(svc_handle, SERVICE_CONFIG_DESCRIPTION, buffer, sizeof(buffer), &needed); + ok(ret, "expected QueryServiceConfig2A to succeed\n"); + ok(pConfigW->lpDescription && !lstrcmpW(descriptionW, pConfigW->lpDescription), + "expected lpDescription to be %s, got %s\n", wine_dbgstr_w(descriptionW), wine_dbgstr_w(pConfigW->lpDescription)); + + pConfigW->lpDescription = (LPWSTR)descriptionW_empty; + ret = pChangeServiceConfig2W(svc_handle, SERVICE_CONFIG_DESCRIPTION, &buffer); + ok(ret, "expected ChangeServiceConfig2W to succeed\n"); + + pConfigW->lpDescription = (void*)0xdeadbeef; + ret = pQueryServiceConfig2W(svc_handle, SERVICE_CONFIG_DESCRIPTION, buffer, sizeof(buffer), &needed); + ok(ret, "expected QueryServiceConfig2A to succeed\n"); + ok(!pConfigW->lpDescription, + "expected lpDescription to be null, got %s\n", wine_dbgstr_w(pConfigW->lpDescription)); + SetLastError(0xdeadbeef); ret = pQueryServiceConfig2W(svc_handle, SERVICE_CONFIG_PRESHUTDOWN_INFO, (LPBYTE)&preshutdown_info, sizeof(preshutdown_info), &needed); @@ -2188,73 +2266,146 @@ static DWORD try_start_stop(SC_HANDLE svc_handle, const char* name, DWORD is_nt4 return le1; } +#define PHASE_STOPPED 1 +#define PHASE_RUNNING 2 + struct notify_data { SERVICE_NOTIFYW notify; SC_HANDLE svc; + BOOL was_called; + DWORD phase; }; -static void CALLBACK cb_stopped(void *user) +static void CALLBACK notify_cb(void *user) { struct notify_data *data = user; - BOOL br; + switch (data->phase) + { + case PHASE_STOPPED: + ok(data->notify.dwNotificationStatus == ERROR_SUCCESS, + "Got wrong notification status: %u\n", data->notify.dwNotificationStatus); + ok(data->notify.ServiceStatus.dwCurrentState == SERVICE_STOPPED, + "Got wrong service state: 0x%x\n", data->notify.ServiceStatus.dwCurrentState); + ok(data->notify.dwNotificationTriggered == SERVICE_NOTIFY_STOPPED, + "Got wrong notification triggered: 0x%x\n", data->notify.dwNotificationTriggered); + break; - ok(data->notify.dwNotificationStatus == ERROR_SUCCESS, - "Got wrong notification status: %u\n", data->notify.dwNotificationStatus); - ok(data->notify.ServiceStatus.dwCurrentState == SERVICE_STOPPED, - "Got wrong service state: 0x%x\n", data->notify.ServiceStatus.dwCurrentState); - ok(data->notify.dwNotificationTriggered == SERVICE_NOTIFY_STOPPED, - "Got wrong notification triggered: 0x%x\n", data->notify.dwNotificationTriggered); + case PHASE_RUNNING: + ok(data->notify.dwNotificationStatus == ERROR_SUCCESS, + "Got wrong notification status: %u\n", data->notify.dwNotificationStatus); + ok(data->notify.ServiceStatus.dwCurrentState == SERVICE_RUNNING, + "Got wrong service state: 0x%x\n", data->notify.ServiceStatus.dwCurrentState); + ok(data->notify.dwNotificationTriggered == SERVICE_NOTIFY_RUNNING, + "Got wrong notification triggered: 0x%x\n", data->notify.dwNotificationTriggered); + break; + } - br = StartServiceA(data->svc, 0, NULL); - ok(br, "StartService failed: %u\n", GetLastError()); + data->was_called = TRUE; } -static void CALLBACK cb_running(void *user) +static void test_servicenotify(SC_HANDLE scm_handle, const char *servicename) { - struct notify_data *data = user; + DWORD dr, dr2; + struct notify_data data; + struct notify_data data2; BOOL br; SERVICE_STATUS status; - - ok(data->notify.dwNotificationStatus == ERROR_SUCCESS, - "Got wrong notification status: %u\n", data->notify.dwNotificationStatus); - ok(data->notify.ServiceStatus.dwCurrentState == SERVICE_RUNNING, - "Got wrong service state: 0x%x\n", data->notify.ServiceStatus.dwCurrentState); - ok(data->notify.dwNotificationTriggered == SERVICE_NOTIFY_RUNNING, - "Got wrong notification triggered: 0x%x\n", data->notify.dwNotificationTriggered); - - br = ControlService(data->svc, SERVICE_CONTROL_STOP, &status); - ok(br, "ControlService failed: %u\n", GetLastError()); -} - -static void test_servicenotify(SC_HANDLE svc) -{ - DWORD dr; - struct notify_data data; + HANDLE svc, svc2; if(!pNotifyServiceStatusChangeW){ win_skip("No NotifyServiceStatusChangeW\n"); return; } + svc = OpenServiceA(scm_handle, servicename, GENERIC_ALL); + svc2 = OpenServiceA(scm_handle, servicename, GENERIC_ALL); + ok(svc != NULL && svc2 != NULL, "Failed to open service\n"); + if(!svc || !svc2) + return; + + /* receive stopped notification, then start service */ memset(&data.notify, 0, sizeof(data.notify)); data.notify.dwVersion = SERVICE_NOTIFY_STATUS_CHANGE; - data.notify.pfnNotifyCallback = &cb_stopped; + data.notify.pfnNotifyCallback = ¬ify_cb; data.notify.pContext = &data; data.svc = svc; + data.phase = PHASE_STOPPED; + data.was_called = FALSE; dr = pNotifyServiceStatusChangeW(svc, SERVICE_NOTIFY_STOPPED | SERVICE_NOTIFY_RUNNING, &data.notify); ok(dr == ERROR_SUCCESS, "NotifyServiceStatusChangeW failed: %u\n", dr); dr = SleepEx(100, TRUE); - ok(dr == WAIT_IO_COMPLETION, "APC wasn't called\n"); + ok(dr == WAIT_IO_COMPLETION, "Got wrong SleepEx result: %u\n", dr); + ok(data.was_called == TRUE, "APC wasn't called\n"); + + br = StartServiceA(svc, 0, NULL); + ok(br, "StartService failed: %u\n", GetLastError()); - data.notify.pfnNotifyCallback = &cb_running; + /* receive running notification */ + data.phase = PHASE_RUNNING; + data.was_called = FALSE; dr = pNotifyServiceStatusChangeW(svc, SERVICE_NOTIFY_STOPPED | SERVICE_NOTIFY_RUNNING, &data.notify); ok(dr == ERROR_SUCCESS, "NotifyServiceStatusChangeW failed: %u\n", dr); dr = SleepEx(100, TRUE); - ok(dr == WAIT_IO_COMPLETION, "APC wasn't called\n"); + ok(dr == WAIT_IO_COMPLETION, "Got wrong SleepEx result: %u\n", dr); + ok(data.was_called == TRUE, "APC wasn't called\n"); + + /* cannot register two notifications */ + data.phase = PHASE_STOPPED; + data.was_called = FALSE; + + dr = pNotifyServiceStatusChangeW(svc, SERVICE_NOTIFY_STOPPED | SERVICE_NOTIFY_RUNNING, &data.notify); + ok(dr == ERROR_SUCCESS, "NotifyServiceStatusChangeW failed: %u\n", dr); + + memset(&data2.notify, 0, sizeof(data2.notify)); + data2.notify.dwVersion = SERVICE_NOTIFY_STATUS_CHANGE; + data2.notify.pfnNotifyCallback = ¬ify_cb; + data2.notify.pContext = &data2; + + dr = pNotifyServiceStatusChangeW(svc, SERVICE_NOTIFY_STOPPED | SERVICE_NOTIFY_RUNNING, &data2.notify); + ok(dr == ERROR_SUCCESS || /* win8+ */ + dr == ERROR_ALREADY_REGISTERED, "NotifyServiceStatusChangeW gave wrong result: %u\n", dr); + + /* should receive no notification because status has not changed. + * on win8+, SleepEx quits early but the callback is still not invoked. */ + dr2 = SleepEx(100, TRUE); + ok((dr == ERROR_SUCCESS && dr2 == WAIT_IO_COMPLETION) || /* win8+ */ + (dr == ERROR_ALREADY_REGISTERED && dr2 == 0), "Got wrong SleepEx result: %u\n", dr); + ok(data.was_called == FALSE, "APC should not have been called\n"); + + /* stop service and receive notifiction */ + br = ControlService(svc, SERVICE_CONTROL_STOP, &status); + ok(br, "ControlService failed: %u\n", GetLastError()); + + dr = SleepEx(100, TRUE); + ok(dr == WAIT_IO_COMPLETION, "Got wrong SleepEx result: %u\n", dr); + ok(data.was_called == TRUE, "APC wasn't called\n"); + + /* test cancelation: create notify on svc that will block until service + * start; close svc; start service on svc2; verify that notification does + * not happen */ + + data.phase = PHASE_RUNNING; + data.was_called = FALSE; + dr = pNotifyServiceStatusChangeW(svc, SERVICE_NOTIFY_STOPPED | SERVICE_NOTIFY_RUNNING, &data.notify); + ok(dr == ERROR_SUCCESS, "NotifyServiceStatusChangeW failed: %u\n", dr); + + CloseServiceHandle(svc); + + br = StartServiceA(svc2, 0, NULL); + ok(br, "StartService failed: %u\n", GetLastError()); + + dr = SleepEx(100, TRUE); + ok(dr == 0, "Got wrong SleepEx result: %u\n", dr); + ok(data.was_called == FALSE, "APC should not have been called\n"); + + br = ControlService(svc2, SERVICE_CONTROL_STOP, &status); + ok(br, "ControlService failed: %u\n", GetLastError()); + + CloseServiceHandle(svc2); } static void test_start_stop(void) @@ -2340,7 +2491,7 @@ static void test_start_stop(void) displayname = "Winetest Service"; ret = ChangeServiceConfigA(svc_handle, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, cmd, NULL, NULL, NULL, NULL, NULL, displayname); ok(ret, "ChangeServiceConfig() failed le=%u\n", GetLastError()); - test_servicenotify(svc_handle); + test_servicenotify(scm_handle, servicename); cleanup: if (svc_handle)
6 years, 8 months
1
0
0
0
01/01: [ADVAPI32] Sync crypt_lmhash.c with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8da9b8d169c43915fbaba…
commit 8da9b8d169c43915fbabae52c23297a333a1c31c Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sun Apr 1 13:18:23 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sun Apr 1 13:18:23 2018 +0100 [ADVAPI32] Sync crypt_lmhash.c with Wine Staging 3.3. CORE-14434 --- dll/win32/advapi32/wine/crypt_lmhash.c | 11 +++++++++++ media/doc/README.WINE | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/dll/win32/advapi32/wine/crypt_lmhash.c b/dll/win32/advapi32/wine/crypt_lmhash.c index e5d04b110a..1e2d77bfb2 100644 --- a/dll/win32/advapi32/wine/crypt_lmhash.c +++ b/dll/win32/advapi32/wine/crypt_lmhash.c @@ -20,7 +20,18 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#ifdef __REACTOS__ #include <advapi32.h> +#else +#include <stdarg.h> + +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include "windef.h" +#include "winternl.h" + +#include "crypt.h" +#endif static const unsigned char CRYPT_LMhash_Magic[8] = { 'K', 'G', 'S', '!', '@', '#', '$', '%' }; diff --git a/media/doc/README.WINE b/media/doc/README.WINE index ed36751105..6a8ed462f1 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -260,7 +260,7 @@ advapi32 - reactos/dll/win32/advapi32/wine/cred.c # Synced to WineStaging-3.3 reactos/dll/win32/advapi32/wine/crypt.c # Synced to WineStaging-3.3 reactos/dll/win32/advapi32/wine/crypt_des.c # Synced to WineStaging-3.3 - reactos/dll/win32/advapi32/wine/crypt_lmhash.c # Synced to WineStaging-1.7.55 + reactos/dll/win32/advapi32/wine/crypt_lmhash.c # Synced to WineStaging-3.3 reactos/dll/win32/advapi32/wine/security.c # Out of Sync gdi32 -
6 years, 8 months
1
0
0
0
01/01: [ADVAPI32] Sync crypt_des.c with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a3ff25c1d5f1f93b99613…
commit a3ff25c1d5f1f93b996139ebe4bd39f5bbe063a5 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sun Apr 1 13:17:45 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sun Apr 1 13:17:45 2018 +0100 [ADVAPI32] Sync crypt_des.c with Wine Staging 3.3. CORE-14434 --- dll/win32/advapi32/wine/crypt_des.c | 5 +++++ media/doc/README.WINE | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dll/win32/advapi32/wine/crypt_des.c b/dll/win32/advapi32/wine/crypt_des.c index f568082c1d..4d0ad69954 100644 --- a/dll/win32/advapi32/wine/crypt_des.c +++ b/dll/win32/advapi32/wine/crypt_des.c @@ -21,7 +21,12 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#ifdef __REACTOS__ #include <advapi32.h> +#else +#include "windef.h" +#include "crypt.h" +#endif static const unsigned char InitialPermuteMap[64] = { diff --git a/media/doc/README.WINE b/media/doc/README.WINE index ec73f7df22..ed36751105 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -259,7 +259,7 @@ reactos/sdk/lib/rtl/wait.c # Partly synced with WineStaging-1.7 advapi32 - reactos/dll/win32/advapi32/wine/cred.c # Synced to WineStaging-3.3 reactos/dll/win32/advapi32/wine/crypt.c # Synced to WineStaging-3.3 - reactos/dll/win32/advapi32/wine/crypt_des.c # Synced to WineStaging-1.7.55 + reactos/dll/win32/advapi32/wine/crypt_des.c # Synced to WineStaging-3.3 reactos/dll/win32/advapi32/wine/crypt_lmhash.c # Synced to WineStaging-1.7.55 reactos/dll/win32/advapi32/wine/security.c # Out of Sync
6 years, 8 months
1
0
0
0
01/01: [ADVAPI32] Sync crypt.c with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d4a89f6ccaf19953acf0d…
commit d4a89f6ccaf19953acf0d218e9e0f985c5d6004b Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sun Apr 1 13:17:00 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sun Apr 1 13:17:00 2018 +0100 [ADVAPI32] Sync crypt.c with Wine Staging 3.3. CORE-14434 --- dll/win32/advapi32/advapi32.spec | 6 +-- dll/win32/advapi32/wine/crypt.c | 86 +++++++++++++++++++++++++++++++++++++++- media/doc/README.WINE | 2 +- 3 files changed, 88 insertions(+), 6 deletions(-) diff --git a/dll/win32/advapi32/advapi32.spec b/dll/win32/advapi32/advapi32.spec index 19193f0d25..d30aa734fb 100644 --- a/dll/win32/advapi32/advapi32.spec +++ b/dll/win32/advapi32/advapi32.spec @@ -422,8 +422,8 @@ 422 stdcall ObjectPrivilegeAuditAlarmW(wstr ptr long long ptr long) 423 stdcall OpenBackupEventLogA(str str) 424 stdcall OpenBackupEventLogW(wstr wstr) -425 stub OpenEncryptedFileRawA -426 stub OpenEncryptedFileRawW +425 stdcall OpenEncryptedFileRawA(str long ptr) +426 stdcall OpenEncryptedFileRawW(wstr long ptr) 427 stdcall OpenEventLogA(str str) 428 stdcall OpenEventLogW(wstr wstr) 429 stdcall OpenProcessToken(long long ptr) @@ -454,7 +454,7 @@ 454 stdcall QueryTraceA(double str ptr) ntdll.EtwQueryTraceA 455 stdcall QueryTraceW(double str ptr) ntdll.EtwQueryTraceA 456 stdcall QueryUsersOnEncryptedFile(wstr ptr) -457 stub ReadEncryptedFileRaw +457 stdcall ReadEncryptedFileRaw(ptr ptr ptr) 458 stdcall ReadEventLogA(long long long ptr long ptr ptr) 459 stdcall ReadEventLogW(long long long ptr long ptr ptr) 460 stdcall RegCloseKey(long) diff --git a/dll/win32/advapi32/wine/crypt.c b/dll/win32/advapi32/wine/crypt.c index ec4f8b01da..25cf65e837 100644 --- a/dll/win32/advapi32/wine/crypt.c +++ b/dll/win32/advapi32/wine/crypt.c @@ -22,9 +22,38 @@ * TODO: * - Reference counting * - Thread-safing - */ + */ +#ifdef __REACTOS__ #include <advapi32.h> +#else +#include "config.h" +#include "wine/port.h" + +#include <limits.h> +#include <time.h> +#include <stdlib.h> +#include <stdio.h> +#include <sys/types.h> +#ifdef HAVE_SYS_STAT_H +# include <sys/stat.h> +#endif +#include <fcntl.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif + +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include "crypt.h" +#include "winnls.h" +#include "winreg.h" +#include "rpc.h" +#include "wine/debug.h" +#include "wine/unicode.h" +#include "winternl.h" +#endif /* __REACTOS__ */ + WINE_DEFAULT_DEBUG_CHANNEL(crypt); static HWND crypt_hWindow; @@ -616,7 +645,11 @@ BOOL WINAPI CryptContextAddRef (HCRYPTPROV hProv, DWORD *pdwReserved, DWORD dwFl * Success: TRUE * Failure: FALSE */ +#ifdef __REACTOS__ BOOL WINAPI CryptReleaseContext (HCRYPTPROV hProv, DWORD dwFlags) +#else +BOOL WINAPI CryptReleaseContext (HCRYPTPROV hProv, ULONG_PTR dwFlags) +#endif { PCRYPTPROV pProv = (PCRYPTPROV)hProv; BOOL ret = TRUE; @@ -2251,6 +2284,55 @@ BOOL WINAPI CryptVerifySignatureA (HCRYPTHASH hHash, const BYTE *pbSignature, DW return result; } +/****************************************************************************** + * OpenEncryptedFileRawA (ADVAPI32.@) + * + * See OpenEncryptedFileRawW + */ +DWORD WINAPI OpenEncryptedFileRawA(LPCSTR filename, ULONG flags, PVOID *context) +{ + FIXME("(%s, %x, %p): stub\n", debugstr_a(filename), flags, context); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +/****************************************************************************** + * OpenEncryptedFileRawW (ADVAPI32.@) + * + * Opens an EFS encrypted file for backup/restore + * + * PARAMS + * filename [I] Filename to operate on + * flags [I] Operation to perform + * context [I] Handle to the context (out) + * RETURNS + * Success: ERROR_SUCCESS + * Failure: NTSTATUS error code + */ +DWORD WINAPI OpenEncryptedFileRawW(LPCWSTR filename, ULONG flags, PVOID *context) +{ + FIXME("(%s, %x, %p): stub\n", debugstr_w(filename), flags, context); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +/****************************************************************************** + * ReadEncryptedFileRaw (ADVAPI32.@) + * + * Export encrypted files + * + * PARAMS + * export [I] pointer to the export callback function + * callback [I] pointer to the application defined context + * context [I] pointer to the system context + * RETURNS + * Success: ERROR_SUCCESS + * Failure: NTSTATUS error code + */ +DWORD WINAPI ReadEncryptedFileRaw(PFE_EXPORT_FUNC export, PVOID callback, PVOID context) +{ + FIXME("(%p, %p, %p): stub\n", export, callback, context); + return ERROR_CALL_NOT_IMPLEMENTED; +} + #ifndef __REACTOS__ /****************************************************************************** * SystemFunction030 (ADVAPI32.@) @@ -2290,7 +2372,7 @@ BOOL WINAPI SystemFunction035(LPCSTR lpszDllFilePath) * MSDN documents this function as RtlGenRandom and declares it in ntsecapi.h * * PARAMS - * pbBufer [O] Pointer to memory to receive random bytes. + * pbBuffer [O] Pointer to memory to receive random bytes. * dwLen [I] Number of random bytes to fetch. * * RETURNS diff --git a/media/doc/README.WINE b/media/doc/README.WINE index e13a4a8f6b..ec73f7df22 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -258,7 +258,7 @@ reactos/sdk/lib/rtl/wait.c # Partly synced with WineStaging-1.7 advapi32 - reactos/dll/win32/advapi32/wine/cred.c # Synced to WineStaging-3.3 - reactos/dll/win32/advapi32/wine/crypt.c # Synced to WineStaging-1.7.55 + reactos/dll/win32/advapi32/wine/crypt.c # Synced to WineStaging-3.3 reactos/dll/win32/advapi32/wine/crypt_des.c # Synced to WineStaging-1.7.55 reactos/dll/win32/advapi32/wine/crypt_lmhash.c # Synced to WineStaging-1.7.55 reactos/dll/win32/advapi32/wine/security.c # Out of Sync
6 years, 8 months
1
0
0
0
01/01: [ADVAPI32] Sync cred.c with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=abc90fa5a6d3d17e89ad1…
commit abc90fa5a6d3d17e89ad12b8abae16649973ab3f Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sun Apr 1 13:16:11 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sun Apr 1 13:16:11 2018 +0100 [ADVAPI32] Sync cred.c with Wine Staging 3.3. CORE-14434 --- dll/win32/advapi32/wine/cred.c | 86 +++++++++++++++++++++++++++++++++++------- media/doc/README.WINE | 2 +- 2 files changed, 74 insertions(+), 14 deletions(-) diff --git a/dll/win32/advapi32/wine/cred.c b/dll/win32/advapi32/wine/cred.c index 69639a4ffb..da2149d83d 100644 --- a/dll/win32/advapi32/wine/cred.c +++ b/dll/win32/advapi32/wine/cred.c @@ -18,9 +18,34 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#ifdef __REACTOS__ #include <advapi32.h> #include <wincred.h> +#else +#include <stdarg.h> +#include <time.h> +#include <limits.h> + +#ifdef __APPLE__ +# include <Security/SecKeychain.h> +# include <Security/SecKeychainItem.h> +# include <Security/SecKeychainSearch.h> +#endif + +#include "windef.h" +#include "winbase.h" +#include "winreg.h" +#include "wincred.h" +#include "winternl.h" + +#include "crypt.h" + +#include "wine/unicode.h" +#include "wine/debug.h" + +#include "advapi32_misc.h" +#endif /* __REACTOS__ */ WINE_DEFAULT_DEBUG_CHANNEL(cred); @@ -94,14 +119,19 @@ static DWORD registry_read_credential(HKEY hkey, PCREDENTIALW credential, credential->TargetName = (LPWSTR)buffer; ret = RegQueryValueExW(hkey, NULL, 0, &type, (LPVOID)credential->TargetName, &count); +#ifdef __REACTOS__ if (ret != ERROR_SUCCESS) return ret; else if (type != REG_SZ) return ERROR_REGISTRY_CORRUPT; +#else + if (ret != ERROR_SUCCESS || type != REG_SZ) return ret; +#endif buffer += count; } ret = RegQueryValueExW(hkey, wszCommentValue, 0, &type, NULL, &count); +#ifdef __REACTOS__ if (ret != ERROR_FILE_NOT_FOUND) { if (ret != ERROR_SUCCESS) @@ -110,6 +140,13 @@ static DWORD registry_read_credential(HKEY hkey, PCREDENTIALW credential, return ERROR_REGISTRY_CORRUPT; *len += count; } +#else + if (ret != ERROR_FILE_NOT_FOUND && ret != ERROR_SUCCESS) + return ret; + else if (type != REG_SZ) + return ERROR_REGISTRY_CORRUPT; + *len += count; +#endif if (credential) { credential->Comment = (LPWSTR)buffer; @@ -126,6 +163,7 @@ static DWORD registry_read_credential(HKEY hkey, PCREDENTIALW credential, } ret = RegQueryValueExW(hkey, wszTargetAliasValue, 0, &type, NULL, &count); +#ifdef __REACTOS__ if (ret != ERROR_FILE_NOT_FOUND) { if (ret != ERROR_SUCCESS) @@ -134,6 +172,13 @@ static DWORD registry_read_credential(HKEY hkey, PCREDENTIALW credential, return ERROR_REGISTRY_CORRUPT; *len += count; } +#else + if (ret != ERROR_FILE_NOT_FOUND && ret != ERROR_SUCCESS) + return ret; + else if (type != REG_SZ) + return ERROR_REGISTRY_CORRUPT; + *len += count; +#endif if (credential) { credential->TargetAlias = (LPWSTR)buffer; @@ -150,6 +195,7 @@ static DWORD registry_read_credential(HKEY hkey, PCREDENTIALW credential, } ret = RegQueryValueExW(hkey, wszUserNameValue, 0, &type, NULL, &count); +#ifdef __REACTOS__ if (ret != ERROR_FILE_NOT_FOUND) { if (ret != ERROR_SUCCESS) @@ -158,6 +204,13 @@ static DWORD registry_read_credential(HKEY hkey, PCREDENTIALW credential, return ERROR_REGISTRY_CORRUPT; *len += count; } +#else + if (ret != ERROR_FILE_NOT_FOUND && ret != ERROR_SUCCESS) + return ret; + else if (type != REG_SZ) + return ERROR_REGISTRY_CORRUPT; + *len += count; +#endif if (credential) { credential->UserName = (LPWSTR)buffer; @@ -174,12 +227,18 @@ static DWORD registry_read_credential(HKEY hkey, PCREDENTIALW credential, } ret = read_credential_blob(hkey, key_data, NULL, &count); +#ifdef __REACTOS__ if (ret != ERROR_FILE_NOT_FOUND) { if (ret != ERROR_SUCCESS) return ret; *len += count; } +#else + if (ret != ERROR_FILE_NOT_FOUND && ret != ERROR_SUCCESS) + return ret; + *len += count; +#endif if (credential) { credential->CredentialBlob = (LPBYTE)buffer; @@ -235,7 +294,7 @@ static DWORD mac_read_credential_from_item(SecKeychainItemRef item, BOOL require PCREDENTIALW credential, char *buffer, DWORD *len) { - OSStatus status; + int status; UInt32 i, cred_blob_len; void *cred_blob; WCHAR *user = NULL; @@ -256,7 +315,7 @@ static DWORD mac_read_credential_from_item(SecKeychainItemRef item, BOOL require } if (status != noErr) { - WARN("SecKeychainItemCopyAttributesAndData returned status %ld\n", status); + WARN("SecKeychainItemCopyAttributesAndData returned status %d\n", status); return ERROR_NOT_FOUND; } @@ -353,6 +412,7 @@ static DWORD mac_read_credential_from_item(SecKeychainItemRef item, BOOL require case kSecCreationDateItemAttr: TRACE("kSecCreationDateItemAttr: %.*s\n", (int)attr_list->attr[i].length, (char *)attr_list->attr[i].data); + if (!attr_list->attr[i].data) continue; if (buffer) { LARGE_INTEGER win_time; @@ -367,7 +427,7 @@ static DWORD mac_read_credential_from_item(SecKeychainItemRef item, BOOL require } break; default: - FIXME("unhandled attribute %lu\n", attr_list->attr[i].tag); + FIXME("unhandled attribute %u\n", (unsigned)attr_list->attr[i].tag); break; } } @@ -492,7 +552,7 @@ static DWORD registry_write_credential(HKEY hkey, const CREDENTIALW *credential, #ifdef __APPLE__ static DWORD mac_write_credential(const CREDENTIALW *credential, BOOL preserve_blob) { - OSStatus status; + int status; SecKeychainItemRef keychain_item; char *username, *password, *servername; UInt32 userlen, pwlen, serverlen; @@ -525,13 +585,13 @@ static DWORD mac_write_credential(const CREDENTIALW *credential, BOOL preserve_b status = SecKeychainAddGenericPassword(NULL, strlen(servername), servername, strlen(username), username, strlen(password), password, &keychain_item); if (status != noErr) - ERR("SecKeychainAddGenericPassword returned %ld\n", status); + ERR("SecKeychainAddGenericPassword returned %d\n", status); if (status == errSecDuplicateItem) { status = SecKeychainFindGenericPassword(NULL, strlen(servername), servername, strlen(username), username, NULL, NULL, &keychain_item); if (status != noErr) - ERR("SecKeychainFindGenericPassword returned %ld\n", status); + ERR("SecKeychainFindGenericPassword returned %d\n", status); } heap_free(username); heap_free(servername); @@ -770,7 +830,7 @@ static DWORD mac_enumerate_credentials(LPCWSTR filter, PCREDENTIALW *credentials { SecKeychainSearchRef search; SecKeychainItemRef item; - OSStatus status; + int status; Boolean saved_user_interaction_allowed; DWORD ret; @@ -793,7 +853,7 @@ static DWORD mac_enumerate_credentials(LPCWSTR filter, PCREDENTIALW *credentials status = SecKeychainItemCopyAttributesAndData(item, &info, NULL, &attr_list, NULL, NULL); if (status != noErr) { - WARN("SecKeychainItemCopyAttributesAndData returned status %ld\n", status); + WARN("SecKeychainItemCopyAttributesAndData returned status %d\n", status); continue; } if (buffer) @@ -826,14 +886,14 @@ static DWORD mac_enumerate_credentials(LPCWSTR filter, PCREDENTIALW *credentials CFRelease(search); } else - ERR("SecKeychainSearchCreateFromAttributes returned status %ld\n", status); + ERR("SecKeychainSearchCreateFromAttributes returned status %d\n", status); SecKeychainSetUserInteractionAllowed(saved_user_interaction_allowed); return ERROR_SUCCESS; } static DWORD mac_delete_credential(LPCWSTR TargetName) { - OSStatus status; + int status; SecKeychainSearchRef search; status = SecKeychainSearchCreateFromAttributes(NULL, kSecGenericPasswordItemClass, NULL, &search); if (status == noErr) @@ -852,7 +912,7 @@ static DWORD mac_delete_credential(LPCWSTR TargetName) status = SecKeychainItemCopyAttributesAndData(item, &info, NULL, &attr_list, NULL, NULL); if (status != noErr) { - WARN("SecKeychainItemCopyAttributesAndData returned status %ld\n", status); + WARN("SecKeychainItemCopyAttributesAndData returned status %d\n", status); continue; } if (attr_list->count != 1 || attr_list->attr[0].tag != kSecServiceItemAttr) @@ -1421,7 +1481,7 @@ BOOL WINAPI CredReadW(LPCWSTR TargetName, DWORD Type, DWORD Flags, PCREDENTIALW #ifdef __APPLE__ if (Type == CRED_TYPE_DOMAIN_PASSWORD) { - OSStatus status; + int status; SecKeychainSearchRef search; status = SecKeychainSearchCreateFromAttributes(NULL, kSecGenericPasswordItemClass, NULL, &search); if (status == noErr) @@ -1441,7 +1501,7 @@ BOOL WINAPI CredReadW(LPCWSTR TargetName, DWORD Type, DWORD Flags, PCREDENTIALW len = sizeof(**Credential); if (status != noErr) { - WARN("SecKeychainItemCopyAttributesAndData returned status %ld\n", status); + WARN("SecKeychainItemCopyAttributesAndData returned status %d\n", status); continue; } if (attr_list->count != 1 || attr_list->attr[0].tag != kSecServiceItemAttr) diff --git a/media/doc/README.WINE b/media/doc/README.WINE index b0022d0190..e13a4a8f6b 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -257,7 +257,7 @@ reactos/sdk/lib/rtl/timerqueue.c # Partly synced with WineStaging-1.7 reactos/sdk/lib/rtl/wait.c # Partly synced with WineStaging-1.7.55 advapi32 - - reactos/dll/win32/advapi32/wine/cred.c # Synced to WineStaging-1.7.55 + reactos/dll/win32/advapi32/wine/cred.c # Synced to WineStaging-3.3 reactos/dll/win32/advapi32/wine/crypt.c # Synced to WineStaging-1.7.55 reactos/dll/win32/advapi32/wine/crypt_des.c # Synced to WineStaging-1.7.55 reactos/dll/win32/advapi32/wine/crypt_lmhash.c # Synced to WineStaging-1.7.55
6 years, 8 months
1
0
0
0
01/01: [STRMBASE] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=10517de5e670f621a09a1…
commit 10517de5e670f621a09a15c074dc5c6337f6540f Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sun Apr 1 13:15:06 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sun Apr 1 13:15:06 2018 +0100 [STRMBASE] Sync with Wine Staging 3.3. CORE-14434 --- media/doc/README.WINE | 2 +- sdk/lib/3rdparty/strmbase/CMakeLists.txt | 4 ++-- sdk/lib/3rdparty/strmbase/audio.c | 10 +++++++++- sdk/lib/3rdparty/strmbase/dispatch.c | 9 +++++++-- sdk/lib/3rdparty/strmbase/dllfunc.c | 27 +++++++++++++++++++------ sdk/lib/3rdparty/strmbase/enumpins.c | 8 +++++++- sdk/lib/3rdparty/strmbase/filter.c | 11 +++++++++- sdk/lib/3rdparty/strmbase/mediatype.c | 9 ++++++++- sdk/lib/3rdparty/strmbase/outputqueue.c | 15 +++++++++++--- sdk/lib/3rdparty/strmbase/pin.c | 12 ++++++++++- sdk/lib/3rdparty/strmbase/pospass.c | 18 ++++++++++++++--- sdk/lib/3rdparty/strmbase/precomp.h | 20 +++++++++++++++++++ sdk/lib/3rdparty/strmbase/qualitycontrol.c | 11 ++++++++++ sdk/lib/3rdparty/strmbase/renderer.c | 10 ++++++++++ sdk/lib/3rdparty/strmbase/seeking.c | 12 ++++++++++- sdk/lib/3rdparty/strmbase/strmbase_private.h | 30 +--------------------------- sdk/lib/3rdparty/strmbase/transform.c | 18 +++++++++++++++++ sdk/lib/3rdparty/strmbase/video.c | 12 ++++++++++- sdk/lib/3rdparty/strmbase/window.c | 12 ++++++++++- 19 files changed, 196 insertions(+), 54 deletions(-) diff --git a/media/doc/README.WINE b/media/doc/README.WINE index b138db4425..b0022d0190 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -250,7 +250,7 @@ In addition the following libs, dlls and source files are mostly based on code p from Winehq CVS. If you are looking to update something in these files check Wine current sources first as it may already be fixed. -reactos/sdk/lib/3rdparty/strmbase # Synced to Wine-3.0 +reactos/sdk/lib/3rdparty/strmbase # Synced to WineStaging-3.3 reactos/sdk/lib/rtl/actctx.c # Partly synced with WineStaging-1.9.16 reactos/sdk/lib/rtl/timerqueue.c # Partly synced with WineStaging-1.7.55 diff --git a/sdk/lib/3rdparty/strmbase/CMakeLists.txt b/sdk/lib/3rdparty/strmbase/CMakeLists.txt index 2580b39e29..efc95b8ba9 100644 --- a/sdk/lib/3rdparty/strmbase/CMakeLists.txt +++ b/sdk/lib/3rdparty/strmbase/CMakeLists.txt @@ -21,8 +21,8 @@ list(APPEND SOURCE transform.c video.c window.c - strmbase_private.h) + precomp.h) add_library(strmbase ${SOURCE}) -add_pch(strmbase strmbase_private.h SOURCE) +add_pch(strmbase precomp.h SOURCE) add_dependencies(strmbase psdk dxsdk) diff --git a/sdk/lib/3rdparty/strmbase/audio.c b/sdk/lib/3rdparty/strmbase/audio.c index 6ad64610f0..1b79ec5a90 100644 --- a/sdk/lib/3rdparty/strmbase/audio.c +++ b/sdk/lib/3rdparty/strmbase/audio.c @@ -18,7 +18,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "strmbase_private.h" +#define COBJMACROS + +#include <assert.h> +#include "dshow.h" +#include "uuids.h" +#include "vfwmsgs.h" +#include "wine/unicode.h" +#include "wine/strmbase.h" + static inline BasicAudio *impl_from_IBasicAudio(IBasicAudio *iface) { diff --git a/sdk/lib/3rdparty/strmbase/dispatch.c b/sdk/lib/3rdparty/strmbase/dispatch.c index cd0287c94d..62bc397dcd 100644 --- a/sdk/lib/3rdparty/strmbase/dispatch.c +++ b/sdk/lib/3rdparty/strmbase/dispatch.c @@ -18,9 +18,14 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "strmbase_private.h" +#define COBJMACROS -#include <oleauto.h> +#include "dshow.h" +#include "wine/unicode.h" +#include "wine/strmbase.h" +#include "uuids.h" +#include "vfwmsgs.h" +#include <assert.h> HRESULT WINAPI BaseDispatch_Init(BaseDispatch *This, REFIID riid) { diff --git a/sdk/lib/3rdparty/strmbase/dllfunc.c b/sdk/lib/3rdparty/strmbase/dllfunc.c index 5d52173000..195a4097ee 100644 --- a/sdk/lib/3rdparty/strmbase/dllfunc.c +++ b/sdk/lib/3rdparty/strmbase/dllfunc.c @@ -18,14 +18,29 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "config.h" -#include "strmbase_private.h" +#include <stdarg.h> +#include <assert.h> -#define NO_SHLWAPI_PATH -#define NO_SHLWAPI_STRFCNS -#define NO_SHLWAPI_GDI -#define NO_SHLWAPI_STREAM -#include <shlwapi.h> +#define COBJMACROS +#define NONAMELESSSTRUCT +#define NONAMELESSUNION + +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winerror.h" +#include "winreg.h" +#include "objbase.h" +#include "uuids.h" +#include "strmif.h" + +#include "wine/unicode.h" +#include "wine/debug.h" +#include "wine/strmbase.h" + +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); extern const int g_cTemplates; extern const FactoryTemplate g_Templates[]; diff --git a/sdk/lib/3rdparty/strmbase/enumpins.c b/sdk/lib/3rdparty/strmbase/enumpins.c index c6ed4469e6..55fa7ece62 100644 --- a/sdk/lib/3rdparty/strmbase/enumpins.c +++ b/sdk/lib/3rdparty/strmbase/enumpins.c @@ -19,7 +19,13 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "strmbase_private.h" +#define COBJMACROS + +#include "dshow.h" +#include "wine/strmbase.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); typedef struct IEnumPinsImpl { diff --git a/sdk/lib/3rdparty/strmbase/filter.c b/sdk/lib/3rdparty/strmbase/filter.c index 3ef67b5b0c..f1b2d49864 100644 --- a/sdk/lib/3rdparty/strmbase/filter.c +++ b/sdk/lib/3rdparty/strmbase/filter.c @@ -18,7 +18,16 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "strmbase_private.h" +#define COBJMACROS + +#include "dshow.h" +#include "wine/debug.h" +#include "wine/unicode.h" +#include "wine/strmbase.h" +#include "uuids.h" +#include <assert.h> + +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); static inline BaseFilter *impl_from_IBaseFilter(IBaseFilter *iface) { diff --git a/sdk/lib/3rdparty/strmbase/mediatype.c b/sdk/lib/3rdparty/strmbase/mediatype.c index 71e29b9430..91c0ddc60a 100644 --- a/sdk/lib/3rdparty/strmbase/mediatype.c +++ b/sdk/lib/3rdparty/strmbase/mediatype.c @@ -18,8 +18,15 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include <stdarg.h> -#include "strmbase_private.h" +#define COBJMACROS +#include "dshow.h" + +#include "wine/strmbase.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); HRESULT WINAPI CopyMediaType(AM_MEDIA_TYPE *dest, const AM_MEDIA_TYPE *src) { diff --git a/sdk/lib/3rdparty/strmbase/outputqueue.c b/sdk/lib/3rdparty/strmbase/outputqueue.c index c071599b45..5513193989 100644 --- a/sdk/lib/3rdparty/strmbase/outputqueue.c +++ b/sdk/lib/3rdparty/strmbase/outputqueue.c @@ -18,9 +18,18 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "strmbase_private.h" - -#include <wine/list.h> +#define COBJMACROS + +#include "dshow.h" +#include "wine/debug.h" +#include "wine/unicode.h" +#include "wine/list.h" +#include "wine/strmbase.h" +#include "uuids.h" +#include "vfwmsgs.h" +#include <assert.h> + +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); enum {SAMPLE_PACKET, EOS_PACKET}; diff --git a/sdk/lib/3rdparty/strmbase/pin.c b/sdk/lib/3rdparty/strmbase/pin.c index 447d6f7467..48f24973d6 100644 --- a/sdk/lib/3rdparty/strmbase/pin.c +++ b/sdk/lib/3rdparty/strmbase/pin.c @@ -19,7 +19,17 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "strmbase_private.h" +#define COBJMACROS + +#include "dshow.h" +#include "wine/debug.h" +#include "wine/unicode.h" +#include "wine/strmbase.h" +#include "uuids.h" +#include "vfwmsgs.h" +#include <assert.h> + +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); static const IMemInputPinVtbl MemInputPin_Vtbl; diff --git a/sdk/lib/3rdparty/strmbase/pospass.c b/sdk/lib/3rdparty/strmbase/pospass.c index 9e33d7639b..37c9827df3 100644 --- a/sdk/lib/3rdparty/strmbase/pospass.c +++ b/sdk/lib/3rdparty/strmbase/pospass.c @@ -20,7 +20,17 @@ */ /* FIXME: critical sections */ -#include "strmbase_private.h" +#define COBJMACROS + +#include "dshow.h" +#include "uuids.h" + +#include "wine/debug.h" +#include "wine/strmbase.h" + +#include <assert.h> + +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); static const IMediaSeekingVtbl IMediaSeekingPassThru_Vtbl; static const IMediaPositionVtbl IMediaPositionPassThru_Vtbl; @@ -516,9 +526,11 @@ static HRESULT WINAPI MediaSeekingPassThru_GetPositions(IMediaSeeking * iface, L if (SUCCEEDED(hr)) { hr = IMediaSeeking_GetPositions(seek, pCurrent, pStop); IMediaSeeking_Release(seek); + } else if (hr == VFW_E_NOT_CONNECTED) { + *pCurrent = 0; + *pStop = 0; + hr = S_OK; } - else - return E_NOTIMPL; return hr; } diff --git a/sdk/lib/3rdparty/strmbase/precomp.h b/sdk/lib/3rdparty/strmbase/precomp.h new file mode 100644 index 0000000000..489541e540 --- /dev/null +++ b/sdk/lib/3rdparty/strmbase/precomp.h @@ -0,0 +1,20 @@ + +#ifndef _STRMBASE_PCH_ +#define _STRMBASE_PCH_ + +#include <wine/config.h> + +#include <assert.h> + +#define COBJMACROS +#define NONAMELESSSTRUCT +#define NONAMELESSUNION + +#include <dshow.h> +#include <wine/debug.h> +#include <wine/strmbase.h> +#include <wine/unicode.h> + +#include "strmbase_private.h" + +#endif /* !_STRMBASE_PCH_ */ diff --git a/sdk/lib/3rdparty/strmbase/qualitycontrol.c b/sdk/lib/3rdparty/strmbase/qualitycontrol.c index 1905dbcc85..970164e0eb 100644 --- a/sdk/lib/3rdparty/strmbase/qualitycontrol.c +++ b/sdk/lib/3rdparty/strmbase/qualitycontrol.c @@ -23,8 +23,19 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "dshow.h" +#include "wine/strmbase.h" #include "strmbase_private.h" +#include "uuids.h" +#include "wine/debug.h" + +#include <assert.h> + +WINE_DEFAULT_DEBUG_CHANNEL(strmbase_qc); + #define XTIME_FMT "%u.%03u" #define XTIME(u) (int)(u/10000000), (int)((u / 10000)%1000) diff --git a/sdk/lib/3rdparty/strmbase/renderer.c b/sdk/lib/3rdparty/strmbase/renderer.c index 2da801ce43..366e6d6116 100644 --- a/sdk/lib/3rdparty/strmbase/renderer.c +++ b/sdk/lib/3rdparty/strmbase/renderer.c @@ -18,8 +18,18 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "dshow.h" +#include "wine/debug.h" +#include "wine/unicode.h" +#include "wine/strmbase.h" +#include "uuids.h" +#include "vfwmsgs.h" #include "strmbase_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); + static const WCHAR wcsInputPinName[] = {'i','n','p','u','t',' ','p','i','n',0}; static const WCHAR wcsAltInputPinName[] = {'I','n',0}; diff --git a/sdk/lib/3rdparty/strmbase/seeking.c b/sdk/lib/3rdparty/strmbase/seeking.c index a9f760d31f..c31699c209 100644 --- a/sdk/lib/3rdparty/strmbase/seeking.c +++ b/sdk/lib/3rdparty/strmbase/seeking.c @@ -20,7 +20,17 @@ */ /* FIXME: critical sections */ -#include "strmbase_private.h" +#define COBJMACROS + +#include "dshow.h" +#include "wine/strmbase.h" + +#include "uuids.h" +#include "wine/debug.h" + +#include <assert.h> + +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); static inline SourceSeeking *impl_from_IMediaSeeking(IMediaSeeking *iface) { diff --git a/sdk/lib/3rdparty/strmbase/strmbase_private.h b/sdk/lib/3rdparty/strmbase/strmbase_private.h index 2438877dae..7adf7bbad6 100644 --- a/sdk/lib/3rdparty/strmbase/strmbase_private.h +++ b/sdk/lib/3rdparty/strmbase/strmbase_private.h @@ -18,33 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#ifndef _STRMBASE_PCH_ -#define _STRMBASE_PCH_ - -#include <wine/config.h> - -#include <assert.h> -#include <stdarg.h> - -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H -#define WIN32_LEAN_AND_MEAN - -#define COBJMACROS -#define NONAMELESSSTRUCT -#define NONAMELESSUNION - -#include <windef.h> -#include <winbase.h> -#include <objbase.h> -#include <dshow.h> - -#include <wine/debug.h> -#include <wine/strmbase.h> -#include <wine/unicode.h> - -WINE_DEFAULT_DEBUG_CHANNEL(strmbase); +#pragma once /* Quality Control */ typedef struct QualityControlImpl { @@ -76,5 +50,3 @@ HRESULT QualityControlRender_WaitFor(QualityControlImpl *This, IMediaSample *sam void QualityControlRender_DoQOS(QualityControlImpl *priv); void QualityControlRender_BeginRender(QualityControlImpl *This); void QualityControlRender_EndRender(QualityControlImpl *This); - -#endif /* _STRMBASE_PCH_ */ diff --git a/sdk/lib/3rdparty/strmbase/transform.c b/sdk/lib/3rdparty/strmbase/transform.c index fd7534b4af..accb4f1702 100644 --- a/sdk/lib/3rdparty/strmbase/transform.c +++ b/sdk/lib/3rdparty/strmbase/transform.c @@ -18,9 +18,27 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "config.h" +#include <stdarg.h> +#define COBJMACROS + +#include "windef.h" +#include "winbase.h" +#include "dshow.h" +#include "amvideo.h" +#include "strmif.h" +#include "vfw.h" + +#include <assert.h> + +#include "wine/unicode.h" +#include "wine/debug.h" +#include "wine/strmbase.h" #include "strmbase_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); + static const WCHAR wcsInputPinName[] = {'i','n','p','u','t',' ','p','i','n',0}; static const WCHAR wcsOutputPinName[] = {'o','u','t','p','u','t',' ','p','i','n',0}; diff --git a/sdk/lib/3rdparty/strmbase/video.c b/sdk/lib/3rdparty/strmbase/video.c index dd6426d11e..a03ba55a89 100644 --- a/sdk/lib/3rdparty/strmbase/video.c +++ b/sdk/lib/3rdparty/strmbase/video.c @@ -18,7 +18,17 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "strmbase_private.h" +#define COBJMACROS + +#include <assert.h> +#include "dshow.h" +#include "uuids.h" +#include "vfwmsgs.h" +#include "wine/debug.h" +#include "wine/unicode.h" +#include "wine/strmbase.h" + +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); static inline BaseControlVideo *impl_from_IBasicVideo(IBasicVideo *iface) { diff --git a/sdk/lib/3rdparty/strmbase/window.c b/sdk/lib/3rdparty/strmbase/window.c index e35dc138fc..b08608e65d 100644 --- a/sdk/lib/3rdparty/strmbase/window.c +++ b/sdk/lib/3rdparty/strmbase/window.c @@ -18,7 +18,17 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "strmbase_private.h" +#define COBJMACROS + +#include "dshow.h" +#include "wine/debug.h" +#include "wine/unicode.h" +#include "wine/strmbase.h" +#include "uuids.h" +#include "vfwmsgs.h" +#include <assert.h> + +WINE_DEFAULT_DEBUG_CHANNEL(strmbase); static inline BaseControlWindow *impl_from_IVideoWindow( IVideoWindow *iface) {
6 years, 8 months
1
0
0
0
01/01: [MSIEXEC] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6e4ff4348afca770123f2…
commit 6e4ff4348afca770123f226c635a8bbf467c0e36 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sun Apr 1 13:13:47 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sun Apr 1 13:13:47 2018 +0100 [MSIEXEC] Sync with Wine Staging 3.3. CORE-14434 --- base/system/msiexec/msiexec.c | 12 ++++++++---- base/system/msiexec/precomp.h | 13 +++---------- base/system/msiexec/rsrc.rc | 2 +- base/system/msiexec/service.c | 10 +++++++++- media/doc/README.WINE | 2 +- 5 files changed, 22 insertions(+), 17 deletions(-) diff --git a/base/system/msiexec/msiexec.c b/base/system/msiexec/msiexec.c index f2155622de..8dcd216380 100644 --- a/base/system/msiexec/msiexec.c +++ b/base/system/msiexec/msiexec.c @@ -19,14 +19,18 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#define WIN32_LEAN_AND_MEAN -#include <winreg.h> -#include <winuser.h> +#include <windows.h> #include <msi.h> +#include <winsvc.h> #include <objbase.h> +#include <stdio.h> -#include <wine/unicode.h> +#include "wine/debug.h" +#include "wine/unicode.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msiexec); typedef HRESULT (WINAPI *DLLREGISTERSERVER)(void); typedef HRESULT (WINAPI *DLLUNREGISTERSERVER)(void); diff --git a/base/system/msiexec/precomp.h b/base/system/msiexec/precomp.h index cc81d63bfa..3026f19c1f 100644 --- a/base/system/msiexec/precomp.h +++ b/base/system/msiexec/precomp.h @@ -1,17 +1,10 @@ + #ifndef _MSIEXEC_PCH_ #define _MSIEXEC_PCH_ #include <stdio.h> -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - -#include <windef.h> -#include <winbase.h> -#include <winsvc.h> - +#include <windows.h> #include <wine/debug.h> -WINE_DEFAULT_DEBUG_CHANNEL(msiexec); -#endif /* _MSIEXEC_PCH_ */ +#endif /* !_MSIEXEC_PCH_ */ diff --git a/base/system/msiexec/rsrc.rc b/base/system/msiexec/rsrc.rc index 2060fe16e0..91c3df8d7e 100644 --- a/base/system/msiexec/rsrc.rc +++ b/base/system/msiexec/rsrc.rc @@ -16,7 +16,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -//#include <windows.h> +#include <windows.h> #define WINE_FILEDESCRIPTION_STR "Wine Installer" #define WINE_FILENAME_STR "msiexec.exe" diff --git a/base/system/msiexec/service.c b/base/system/msiexec/service.c index 3c8b690bf7..d48912a8e5 100644 --- a/base/system/msiexec/service.c +++ b/base/system/msiexec/service.c @@ -18,7 +18,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#define WIN32_LEAN_AND_MEAN + +#include <stdio.h> +#include <windows.h> +#include <winsvc.h> + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msiexec); static SERVICE_STATUS_HANDLE hstatus; diff --git a/media/doc/README.WINE b/media/doc/README.WINE index e9b7d7e492..b138db4425 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -243,7 +243,7 @@ reactos/base/applications/wordpad # Synced to WineStaging-1.9.16 reactos/base/applications/write # Synced to WineStaging-3.3 reactos/base/services/rpcss # Synced to WineStaging-3.3 reactos/base/system/expand # Synced to WineStaging-3.3 -reactos/base/system/msiexec # Synced to WineStaging-2.16 +reactos/base/system/msiexec # Synced to WineStaging-3.3 reactos/modules/rosapps/winfile # Autosync In addition the following libs, dlls and source files are mostly based on code ported
6 years, 8 months
1
0
0
0
← Newer
1
...
21
22
23
24
25
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
Results per page:
10
25
50
100
200