From e713cb85340d8b014221f79321eeb8d38009bd4e Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Tue, 28 Jan 2014 19:32:53 +0000 Subject: [PATCH] [MSGINA] Implement the change password dialog. svn path=/trunk/; revision=61864 --- reactos/dll/win32/msgina/CMakeLists.txt | 2 +- reactos/dll/win32/msgina/gui.c | 195 +++++++++++++++++++++++- reactos/dll/win32/msgina/lang/bg-BG.rc | 3 + reactos/dll/win32/msgina/lang/cs-CZ.rc | 3 + reactos/dll/win32/msgina/lang/de-DE.rc | 7 +- reactos/dll/win32/msgina/lang/en-US.rc | 3 + reactos/dll/win32/msgina/lang/es-ES.rc | 3 + reactos/dll/win32/msgina/lang/fr-FR.rc | 3 + reactos/dll/win32/msgina/lang/he-IL.rc | 3 + reactos/dll/win32/msgina/lang/id-ID.rc | 3 + reactos/dll/win32/msgina/lang/it-IT.rc | 3 + reactos/dll/win32/msgina/lang/ja-JP.rc | 3 + reactos/dll/win32/msgina/lang/no-NO.rc | 3 + reactos/dll/win32/msgina/lang/pl-PL.rc | 3 + reactos/dll/win32/msgina/lang/ro-RO.rc | 3 + reactos/dll/win32/msgina/lang/ru-RU.rc | 3 + reactos/dll/win32/msgina/lang/sk-SK.rc | 3 + reactos/dll/win32/msgina/lang/tr-TR.rc | 3 + reactos/dll/win32/msgina/lang/uk-UA.rc | 3 + reactos/dll/win32/msgina/msgina.h | 3 + reactos/dll/win32/msgina/resource.h | 27 ++-- 21 files changed, 261 insertions(+), 21 deletions(-) diff --git a/reactos/dll/win32/msgina/CMakeLists.txt b/reactos/dll/win32/msgina/CMakeLists.txt index 9524d6d64f1..08b8fb483bc 100644 --- a/reactos/dll/win32/msgina/CMakeLists.txt +++ b/reactos/dll/win32/msgina/CMakeLists.txt @@ -17,6 +17,6 @@ list(APPEND SOURCE add_library(msgina SHARED ${SOURCE}) set_module_type(msgina win32dll) target_link_libraries(msgina wine) -add_importlibs(msgina advapi32 user32 gdi32 userenv msvcrt kernel32 ntdll) +add_importlibs(msgina advapi32 user32 gdi32 secur32 userenv msvcrt kernel32 ntdll) add_pch(msgina msgina.h) add_cd_file(TARGET msgina DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msgina/gui.c b/reactos/dll/win32/msgina/gui.c index 07b6d514c89..06c589427b9 100644 --- a/reactos/dll/win32/msgina/gui.c +++ b/reactos/dll/win32/msgina/gui.c @@ -221,10 +221,193 @@ GetTextboxText( static -BOOL -DoChangePassword(HWND hwndDlg) +INT +ResourceMessageBox( + IN PGINA_CONTEXT pgContext, + IN HWND hwnd, + IN UINT uType, + IN UINT uCaption, + IN UINT uText) { - return FALSE; + WCHAR szCaption[256]; + WCHAR szText[256]; + + LoadStringW(pgContext->hDllInstance, uCaption, szCaption, 256); + LoadStringW(pgContext->hDllInstance, uText, szText, 256); + + return pgContext->pWlxFuncs->WlxMessageBox(pgContext->hWlx, + hwnd, + szText, + szCaption, + uType); +} + + +static +BOOL +DoChangePassword( + IN PGINA_CONTEXT pgContext, + IN HWND hwndDlg) +{ + WCHAR UserName[256]; + WCHAR DomainName[256]; + WCHAR OldPassword[256]; + WCHAR NewPassword1[256]; + WCHAR NewPassword2[256]; + PMSV1_0_CHANGEPASSWORD_REQUEST RequestBuffer = NULL; + PMSV1_0_CHANGEPASSWORD_RESPONSE ResponseBuffer = NULL; + ULONG RequestBufferSize; + ULONG ResponseBufferSize = 0; + LPWSTR Ptr; + LSA_STRING PackageName; + HANDLE LsaHandle = NULL; + ULONG AuthenticationPackage = 0; + BOOL res = FALSE; + NTSTATUS ProtocolStatus; + NTSTATUS Status; + + GetDlgItemTextW(hwndDlg, IDC_CHANGEPWD_USERNAME, UserName, 256); + GetDlgItemTextW(hwndDlg, IDC_CHANGEPWD_DOMAIN, DomainName, 256); + GetDlgItemTextW(hwndDlg, IDC_CHANGEPWD_OLDPWD, OldPassword, 256); + GetDlgItemTextW(hwndDlg, IDC_CHANGEPWD_NEWPWD1, NewPassword1, 256); + GetDlgItemTextW(hwndDlg, IDC_CHANGEPWD_NEWPWD2, NewPassword2, 256); + + /* Compare the two passwords and fail if they do not match */ + if (wcscmp(NewPassword1, NewPassword2) != 0) + { + ResourceMessageBox(pgContext, + hwndDlg, + MB_OK | MB_ICONEXCLAMATION, + IDS_CHANGEPWDTITLE, + IDS_NONMATCHINGPASSWORDS); + return FALSE; + } + + /* Calculate the request buffer size */ + RequestBufferSize = sizeof(MSV1_0_CHANGEPASSWORD_REQUEST) + + ((wcslen(DomainName) + 1) * sizeof(WCHAR)) + + ((wcslen(UserName) + 1) * sizeof(WCHAR)) + + ((wcslen(OldPassword) + 1) * sizeof(WCHAR)) + + ((wcslen(NewPassword1) + 1) * sizeof(WCHAR)); + + /* Allocate the request buffer */ + RequestBuffer = HeapAlloc(GetProcessHeap(), + HEAP_ZERO_MEMORY, + RequestBufferSize); + if (RequestBuffer == NULL) + { + ERR("HeapAlloc failed\n"); + return FALSE; + } + + /* Initialize the request buffer */ + RequestBuffer->MessageType = MsV1_0ChangePassword; + RequestBuffer->Impersonating = TRUE; + + Ptr = (LPWSTR)((ULONG_PTR)RequestBuffer + sizeof(MSV1_0_CHANGEPASSWORD_REQUEST)); + + /* Pack the domain name */ + RequestBuffer->DomainName.Length = wcslen(DomainName) * sizeof(WCHAR); + RequestBuffer->DomainName.MaximumLength = RequestBuffer->DomainName.Length + sizeof(WCHAR); + RequestBuffer->DomainName.Buffer = Ptr; + + RtlCopyMemory(RequestBuffer->DomainName.Buffer, + DomainName, + RequestBuffer->DomainName.MaximumLength); + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + RequestBuffer->DomainName.MaximumLength); + + /* Pack the user name */ + RequestBuffer->AccountName.Length = wcslen(UserName) * sizeof(WCHAR); + RequestBuffer->AccountName.MaximumLength = RequestBuffer->AccountName.Length + sizeof(WCHAR); + RequestBuffer->AccountName.Buffer = Ptr; + + RtlCopyMemory(RequestBuffer->AccountName.Buffer, + UserName, + RequestBuffer->AccountName.MaximumLength); + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + RequestBuffer->AccountName.MaximumLength); + + /* Pack the old password */ + RequestBuffer->OldPassword.Length = wcslen(OldPassword) * sizeof(WCHAR); + RequestBuffer->OldPassword.MaximumLength = RequestBuffer->OldPassword.Length + sizeof(WCHAR); + RequestBuffer->OldPassword.Buffer = Ptr; + + RtlCopyMemory(RequestBuffer->OldPassword.Buffer, + OldPassword, + RequestBuffer->OldPassword.MaximumLength); + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + RequestBuffer->OldPassword.MaximumLength); + + /* Pack the new password */ + RequestBuffer->NewPassword.Length = wcslen(NewPassword1) * sizeof(WCHAR); + RequestBuffer->NewPassword.MaximumLength = RequestBuffer->NewPassword.Length + sizeof(WCHAR); + RequestBuffer->NewPassword.Buffer = Ptr; + + RtlCopyMemory(RequestBuffer->NewPassword.Buffer, + NewPassword1, + RequestBuffer->NewPassword.MaximumLength); + + /* Connect to the LSA server */ + Status = LsaConnectUntrusted(&LsaHandle); + if (!NT_SUCCESS(Status)) + { + ERR("LsaConnectUntrusted failed (Status 0x%08lx)\n", Status); + goto done; + } + + /* Get the authentication package */ + RtlInitAnsiString((PANSI_STRING)&PackageName, + MSV1_0_PACKAGE_NAME); + + Status = LsaLookupAuthenticationPackage(LsaHandle, + &PackageName, + &AuthenticationPackage); + if (!NT_SUCCESS(Status)) + { + ERR("LsaLookupAuthenticationPackage failed (Status 0x%08lx)\n", Status); + goto done; + } + + /* Call the authentication package */ + Status = LsaCallAuthenticationPackage(LsaHandle, + AuthenticationPackage, + RequestBuffer, + RequestBufferSize, + (PVOID*)&ResponseBuffer, + &ResponseBufferSize, + &ProtocolStatus); + if (!NT_SUCCESS(Status)) + { + ERR("LsaCallAuthenticationPackage failed (Status 0x%08lx)\n", Status); + goto done; + } + + if (!NT_SUCCESS(ProtocolStatus)) + { + TRACE("LsaCallAuthenticationPackage failed (ProtocolStatus 0x%08lx)\n", ProtocolStatus); + goto done; + } + + res = TRUE; + + ResourceMessageBox(pgContext, + hwndDlg, + MB_OK | MB_ICONINFORMATION, + IDS_CHANGEPWDTITLE, + IDS_PASSWORDCHANGED); + +done: + if (RequestBuffer != NULL) + HeapFree(GetProcessHeap(), 0, RequestBuffer); + + if (ResponseBuffer != NULL) + LsaFreeReturnBuffer(ResponseBuffer); + + if (LsaHandle != NULL) + NtClose(LsaHandle); + + return res; } @@ -255,7 +438,7 @@ ChangePasswordDialogProc( switch (LOWORD(wParam)) { case IDOK: - if (DoChangePassword(hwndDlg)) + if (DoChangePassword(pgContext, hwndDlg)) { EndDialog(hwndDlg, TRUE); } @@ -322,7 +505,7 @@ OnChangePassword( { INT res; - FIXME("OnChangePassword()\n"); + TRACE("OnChangePassword()\n"); res = pgContext->pWlxFuncs->WlxDialogBoxParam( pgContext->hWlx, @@ -332,7 +515,7 @@ OnChangePassword( ChangePasswordDialogProc, (LPARAM)pgContext); - FIXME("Result: %x\n", res); + TRACE("Result: %x\n", res); return FALSE; } diff --git a/reactos/dll/win32/msgina/lang/bg-BG.rc b/reactos/dll/win32/msgina/lang/bg-BG.rc index e88e000f7c1..c0b011f9855 100644 --- a/reactos/dll/win32/msgina/lang/bg-BG.rc +++ b/reactos/dll/win32/msgina/lang/bg-BG.rc @@ -125,4 +125,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/cs-CZ.rc b/reactos/dll/win32/msgina/lang/cs-CZ.rc index 3d25f68e1e8..64b43dfed2b 100644 --- a/reactos/dll/win32/msgina/lang/cs-CZ.rc +++ b/reactos/dll/win32/msgina/lang/cs-CZ.rc @@ -130,4 +130,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/de-DE.rc b/reactos/dll/win32/msgina/lang/de-DE.rc index 28185199612..c8d9ec9a310 100644 --- a/reactos/dll/win32/msgina/lang/de-DE.rc +++ b/reactos/dll/win32/msgina/lang/de-DE.rc @@ -46,7 +46,7 @@ BEGIN PUSHBUTTON "Computer sperren", IDC_LOCK, 10, 135, 76, 14 PUSHBUTTON "Abmelden...", IDC_LOGOFF, 100, 135, 75, 14 PUSHBUTTON "Herunterfahren", IDC_SHUTDOWN, 189, 135, 76, 14 - PUSHBUTTON "Password ändern", IDC_CHANGEPWD, 10, 154, 76, 14 + PUSHBUTTON "Passwort ändern", IDC_CHANGEPWD, 10, 154, 76, 14 PUSHBUTTON "Task-Manager", IDC_TASKMGR, 100, 154, 75, 14 PUSHBUTTON "Abbrechen", IDCANCEL, 189, 154, 76, 14 END @@ -123,6 +123,9 @@ BEGIN IDS_LOGONMSG "Sie sind angemeldet als %s." IDS_LOGONDATE "Anmeldedatum: %s %s" IDS_COMPUTERLOCKED "Computer ist gesperrt" - IDS_LOCKEDWRONGPASSWORD "Das Kennwort ist falsch. Bitte geben Sie das Kennwort erneut ein. Bei Buchstaben des Kennworts wird Groß- und Kleinschreibung unterschieden." + IDS_LOCKEDWRONGPASSWORD "Das Passwort ist falsch. Bitte geben Sie das Passwort erneut ein. Bei Buchstaben des Passworts wird Groß- und Kleinschreibung unterschieden." IDS_LOCKEDWRONGUSER "Der Computer ist gesperrt. Nur %s\\%s oder ein Administrator kann den Computer entsperren." + IDS_CHANGEPWDTITLE "Passwort ändern" + IDS_NONMATCHINGPASSWORDS "Die eingegebenen Passworte stimmen nicht überein. Geben Sie das neue Passwort in beide Textfelder ein." + IDS_PASSWORDCHANGED "Ihr Passwort wurde geändert." END diff --git a/reactos/dll/win32/msgina/lang/en-US.rc b/reactos/dll/win32/msgina/lang/en-US.rc index b94d71f53e5..ae6e781f6c1 100644 --- a/reactos/dll/win32/msgina/lang/en-US.rc +++ b/reactos/dll/win32/msgina/lang/en-US.rc @@ -125,4 +125,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/es-ES.rc b/reactos/dll/win32/msgina/lang/es-ES.rc index f740ffdb4fc..6af8138f9d1 100644 --- a/reactos/dll/win32/msgina/lang/es-ES.rc +++ b/reactos/dll/win32/msgina/lang/es-ES.rc @@ -127,4 +127,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/fr-FR.rc b/reactos/dll/win32/msgina/lang/fr-FR.rc index 5732f52d09d..754756d4df4 100644 --- a/reactos/dll/win32/msgina/lang/fr-FR.rc +++ b/reactos/dll/win32/msgina/lang/fr-FR.rc @@ -125,4 +125,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/he-IL.rc b/reactos/dll/win32/msgina/lang/he-IL.rc index bf778f02a5d..470426de437 100644 --- a/reactos/dll/win32/msgina/lang/he-IL.rc +++ b/reactos/dll/win32/msgina/lang/he-IL.rc @@ -125,4 +125,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/id-ID.rc b/reactos/dll/win32/msgina/lang/id-ID.rc index ec30a7271bc..1d149821b2e 100644 --- a/reactos/dll/win32/msgina/lang/id-ID.rc +++ b/reactos/dll/win32/msgina/lang/id-ID.rc @@ -124,4 +124,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/it-IT.rc b/reactos/dll/win32/msgina/lang/it-IT.rc index e6b1a3ed90b..a9df14e2cfa 100644 --- a/reactos/dll/win32/msgina/lang/it-IT.rc +++ b/reactos/dll/win32/msgina/lang/it-IT.rc @@ -133,4 +133,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/ja-JP.rc b/reactos/dll/win32/msgina/lang/ja-JP.rc index 65ad7386c0f..de1857de1aa 100644 --- a/reactos/dll/win32/msgina/lang/ja-JP.rc +++ b/reactos/dll/win32/msgina/lang/ja-JP.rc @@ -125,4 +125,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/no-NO.rc b/reactos/dll/win32/msgina/lang/no-NO.rc index a7cde1ea879..681a2c2ffa4 100644 --- a/reactos/dll/win32/msgina/lang/no-NO.rc +++ b/reactos/dll/win32/msgina/lang/no-NO.rc @@ -125,4 +125,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/pl-PL.rc b/reactos/dll/win32/msgina/lang/pl-PL.rc index 531104efb86..8afcdcb9c37 100644 --- a/reactos/dll/win32/msgina/lang/pl-PL.rc +++ b/reactos/dll/win32/msgina/lang/pl-PL.rc @@ -134,4 +134,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/ro-RO.rc b/reactos/dll/win32/msgina/lang/ro-RO.rc index 19f83f5842a..455ac91d5ad 100644 --- a/reactos/dll/win32/msgina/lang/ro-RO.rc +++ b/reactos/dll/win32/msgina/lang/ro-RO.rc @@ -127,4 +127,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/ru-RU.rc b/reactos/dll/win32/msgina/lang/ru-RU.rc index 6ba97fc1b26..830658430fa 100644 --- a/reactos/dll/win32/msgina/lang/ru-RU.rc +++ b/reactos/dll/win32/msgina/lang/ru-RU.rc @@ -127,4 +127,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/sk-SK.rc b/reactos/dll/win32/msgina/lang/sk-SK.rc index 38ee9257d05..8b1bf56184c 100644 --- a/reactos/dll/win32/msgina/lang/sk-SK.rc +++ b/reactos/dll/win32/msgina/lang/sk-SK.rc @@ -130,4 +130,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/tr-TR.rc b/reactos/dll/win32/msgina/lang/tr-TR.rc index 267a080e0a9..c197bce43e4 100644 --- a/reactos/dll/win32/msgina/lang/tr-TR.rc +++ b/reactos/dll/win32/msgina/lang/tr-TR.rc @@ -127,4 +127,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/lang/uk-UA.rc b/reactos/dll/win32/msgina/lang/uk-UA.rc index 1b4d3249072..75baefa3598 100644 --- a/reactos/dll/win32/msgina/lang/uk-UA.rc +++ b/reactos/dll/win32/msgina/lang/uk-UA.rc @@ -133,4 +133,7 @@ BEGIN IDS_COMPUTERLOCKED "Computer locked" IDS_LOCKEDWRONGPASSWORD "The password is wrong. Please enter your password again. Letters in passwords must be typed using the correct case." IDS_LOCKEDWRONGUSER "This computer is locked. Only %s\\%s or an Administrator can unlock this computer." + IDS_CHANGEPWDTITLE "Change Password" + IDS_NONMATCHINGPASSWORDS "The passwords you typed do not match. Type the same password in both text boxes." + IDS_PASSWORDCHANGED "Your password has been changed." END diff --git a/reactos/dll/win32/msgina/msgina.h b/reactos/dll/win32/msgina/msgina.h index a8d1432adbe..48d3f360b3b 100644 --- a/reactos/dll/win32/msgina/msgina.h +++ b/reactos/dll/win32/msgina/msgina.h @@ -15,8 +15,11 @@ #include #include #include +#include #include #include +#include +#include #include WINE_DEFAULT_DEBUG_CHANNEL(msgina); diff --git a/reactos/dll/win32/msgina/resource.h b/reactos/dll/win32/msgina/resource.h index 148c8dc66ea..b430a7d8cfa 100644 --- a/reactos/dll/win32/msgina/resource.h +++ b/reactos/dll/win32/msgina/resource.h @@ -34,15 +34,18 @@ #define IDI_LOCKICON 21 -#define IDS_LOGGEDOUTSAS 40000 -#define IDS_LOCKEDSAS 40001 -#define IDS_PRESSCTRLALTDELETE 40002 -#define IDS_ASKFORUSER 40003 -#define IDS_ASKFORPASSWORD 40004 -#define IDS_FORCELOGOFF 40005 -#define IDS_LOCKMSG 40006 -#define IDS_LOGONMSG 40007 -#define IDS_LOGONDATE 40008 -#define IDS_COMPUTERLOCKED 40009 -#define IDS_LOCKEDWRONGPASSWORD 40010 -#define IDS_LOCKEDWRONGUSER 40011 +#define IDS_LOGGEDOUTSAS 40000 +#define IDS_LOCKEDSAS 40001 +#define IDS_PRESSCTRLALTDELETE 40002 +#define IDS_ASKFORUSER 40003 +#define IDS_ASKFORPASSWORD 40004 +#define IDS_FORCELOGOFF 40005 +#define IDS_LOCKMSG 40006 +#define IDS_LOGONMSG 40007 +#define IDS_LOGONDATE 40008 +#define IDS_COMPUTERLOCKED 40009 +#define IDS_LOCKEDWRONGPASSWORD 40010 +#define IDS_LOCKEDWRONGUSER 40011 +#define IDS_CHANGEPWDTITLE 40012 +#define IDS_NONMATCHINGPASSWORDS 40013 +#define IDS_PASSWORDCHANGED 40014