[MSGINA]
authorEric Kohl <eric.kohl@reactos.org>
Tue, 21 Jan 2014 23:31:13 +0000 (23:31 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Tue, 21 Jan 2014 23:31:13 +0000 (23:31 +0000)
Move the unlock code to a separate function and display error messages if user name or password do not match.

svn path=/trunk/; revision=61750

19 files changed:
reactos/dll/win32/msgina/gui.c
reactos/dll/win32/msgina/lang/bg-BG.rc
reactos/dll/win32/msgina/lang/cs-CZ.rc
reactos/dll/win32/msgina/lang/de-DE.rc
reactos/dll/win32/msgina/lang/en-US.rc
reactos/dll/win32/msgina/lang/es-ES.rc
reactos/dll/win32/msgina/lang/fr-FR.rc
reactos/dll/win32/msgina/lang/he-IL.rc
reactos/dll/win32/msgina/lang/id-ID.rc
reactos/dll/win32/msgina/lang/it-IT.rc
reactos/dll/win32/msgina/lang/ja-JP.rc
reactos/dll/win32/msgina/lang/no-NO.rc
reactos/dll/win32/msgina/lang/pl-PL.rc
reactos/dll/win32/msgina/lang/ro-RO.rc
reactos/dll/win32/msgina/lang/ru-RU.rc
reactos/dll/win32/msgina/lang/sk-SK.rc
reactos/dll/win32/msgina/lang/tr-TR.rc
reactos/dll/win32/msgina/lang/uk-UA.rc
reactos/dll/win32/msgina/resource.h

index 32d08fb..1f05ae2 100644 (file)
@@ -603,6 +603,59 @@ SetLockMessage(HWND hwnd,
 }
 
 
+static
+BOOL
+DoUnlock(
+    IN HWND hwndDlg,
+    IN PGINA_CONTEXT pgContext,
+    OUT LPINT Action)
+{
+    WCHAR Buffer1[256];
+    WCHAR Buffer2[256];
+    LPWSTR UserName = NULL;
+    LPWSTR Password = NULL;
+    BOOL res = FALSE;
+
+    if (GetTextboxText(hwndDlg, IDC_USERNAME, &UserName) && *UserName == '\0')
+        return FALSE;
+
+    if (GetTextboxText(hwndDlg, IDC_PASSWORD, &Password))
+    {
+        if (UserName != NULL && Password != NULL &&
+            wcscmp(UserName, pgContext->UserName) == 0 &&
+            wcscmp(Password, pgContext->Password) == 0)
+        {
+            *Action = WLX_SAS_ACTION_UNLOCK_WKSTA;
+            res = TRUE;
+        }
+        else if (wcscmp(UserName, pgContext->UserName) == 0 &&
+                 wcscmp(Password, pgContext->Password) != 0)
+        {
+            /* Wrong Password */
+            LoadStringW(pgContext->hDllInstance, IDS_LOCKEDWRONGPASSWORD, Buffer2, 256);
+            LoadStringW(pgContext->hDllInstance, IDS_COMPUTERLOCKED, Buffer1, 256);
+            MessageBoxW(hwndDlg, Buffer2, Buffer1, MB_OK | MB_ICONERROR);
+        }
+        else
+        {
+            /* Wrong user name */
+            LoadStringW(pgContext->hDllInstance, IDS_LOCKEDWRONGUSER, Buffer1, 256);
+            wsprintfW(Buffer2, Buffer1, pgContext->Domain, pgContext->UserName);
+            LoadStringW(pgContext->hDllInstance, IDS_COMPUTERLOCKED, Buffer1, 256);
+            MessageBoxW(hwndDlg, Buffer2, Buffer1, MB_OK | MB_ICONERROR);
+        }
+    }
+
+    if (UserName != NULL)
+        HeapFree(GetProcessHeap(), 0, UserName);
+
+    if (Password != NULL)
+        HeapFree(GetProcessHeap(), 0, Password);
+
+    return res;
+}
+
+
 static
 INT_PTR
 CALLBACK
@@ -613,6 +666,7 @@ UnlockWindowProc(
     IN LPARAM lParam)
 {
     PGINA_CONTEXT pgContext;
+    INT result = WLX_SAS_ACTION_NONE;
 
     pgContext = (PGINA_CONTEXT)GetWindowLongPtr(hwndDlg, GWL_USERDATA);
 
@@ -653,26 +707,9 @@ UnlockWindowProc(
             switch (LOWORD(wParam))
             {
                 case IDOK:
-                {
-                    LPWSTR UserName = NULL, Password = NULL;
-                    INT result = WLX_SAS_ACTION_NONE;
-
-                    if (GetTextboxText(hwndDlg, IDC_USERNAME, &UserName) && *UserName == '\0')
-                        break;
-                    if (GetTextboxText(hwndDlg, IDC_PASSWORD, &Password))
-                    {
-                        if (UserName != NULL && Password != NULL &&
-                            wcscmp(UserName, pgContext->UserName) == 0 &&
-                            wcscmp(Password, pgContext->Password) == 0)
-                        {
-                            result = WLX_SAS_ACTION_UNLOCK_WKSTA;
-                        }
-                    }
-                    HeapFree(GetProcessHeap(), 0, UserName);
-                    HeapFree(GetProcessHeap(), 0, Password);
-                    EndDialog(hwndDlg, result);
+                    if (DoUnlock(hwndDlg, pgContext, &result))
+                        EndDialog(hwndDlg, result);
                     return TRUE;
-                }
 
                 case IDCANCEL:
                     EndDialog(hwndDlg, WLX_SAS_ACTION_NONE);
index 34b52d7..2a048c8 100644 (file)
@@ -122,4 +122,7 @@ BEGIN
     IDS_LOCKMSG "Only %s or an Administrator can unlock this computer."
     IDS_LOGONMSG "You are logged on as %s."
     IDS_LOGONDATE "Logon date: %s %s"
+    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."
 END
index 0a0acd1..54a2468 100644 (file)
@@ -127,4 +127,7 @@ BEGIN
     IDS_LOCKMSG "Pouze %s nebo Administrátor může odemknout tento počítač."
     IDS_LOGONMSG "Jste přihlášeni jako %s."
     IDS_LOGONDATE "Datum přihlášení: %s %s"
+    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."
 END
index 9114eec..f540fff 100644 (file)
@@ -122,4 +122,7 @@ BEGIN
     IDS_LOCKMSG "Nur %s oder ein Administrator kann den Computer entsperren."
     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_LOCKEDWRONGUSER "Der Computer ist gesperrt.  Nur %s\\%s oder ein Administrator kann den Computer entsperren."
 END
index 453ad6c..b94d71f 100644 (file)
@@ -46,7 +46,7 @@ BEGIN
     PUSHBUTTON "Lock computer", IDC_LOCK, 10, 135, 76, 14
     PUSHBUTTON "Log off...", IDC_LOGOFF, 100, 135, 75, 14
     PUSHBUTTON "Shutdown", IDC_SHUTDOWN, 189, 135, 76, 14
-    PUSHBUTTON "Change Password", IDC_CHANGEPWD, 10, 154, 76, 14, WS_DISABLED
+    PUSHBUTTON "Change Password", IDC_CHANGEPWD, 10, 154, 76, 14
     PUSHBUTTON "Task manager", IDC_TASKMGR, 100, 154, 75, 14
     PUSHBUTTON "Cancel", IDCANCEL, 189, 154, 76, 14
 END
@@ -122,4 +122,7 @@ BEGIN
     IDS_LOCKMSG "Only %s or an Administrator can unlock this computer."
     IDS_LOGONMSG "You are logged on as %s."
     IDS_LOGONDATE "Logon date: %s %s"
+    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."
 END
index ab0d4f3..929ebee 100644 (file)
@@ -124,4 +124,7 @@ BEGIN
     IDS_LOCKMSG "Only %s or an Administrator can unlock this computer."
     IDS_LOGONMSG "You are logged on as %s."
     IDS_LOGONDATE "Logon date: %s %s"
+    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."
 END
index b2fbc42..f0e09b2 100644 (file)
@@ -122,4 +122,7 @@ BEGIN
     IDS_LOCKMSG "Seulement %s ou bien un Administrateur peut déverrouiller cet ordinateur."
     IDS_LOGONMSG "You are logged on as %s."
     IDS_LOGONDATE "Logon date: %s %s"
+    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."
 END
index 33b2290..5f59f13 100644 (file)
@@ -122,4 +122,7 @@ BEGIN
     IDS_LOCKMSG "רק %s או מנהל יכולים לשחרר את המחשב הזה."
     IDS_LOGONMSG "You are logged on as %s."
     IDS_LOGONDATE "תאריך כניסה: %s %s"
+    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."
 END
index 5e851b8..924a0ae 100644 (file)
@@ -121,4 +121,7 @@ BEGIN
     IDS_FORCELOGOFF "Ini akan mengeluarkan pengguna saat ini dan kehilangan data yang belum disimpan.  Lanjutkan?"
     IDS_LOCKMSG "Only %s or an Administrator can unlock this computer."
     IDS_LOGONDATE "Logon date: %s %s"
+    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."
 END
index 9bead5a..19596a1 100644 (file)
@@ -130,4 +130,7 @@ BEGIN
     IDS_LOCKMSG "Solo %s o un Amministratore possono sbloccare questo computer."
     IDS_LOGONMSG "You are logged on as %s."
     IDS_LOGONDATE "Dati di accesso: %s %s"
+    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."
 END
index e235775..023ed6c 100644 (file)
@@ -122,4 +122,7 @@ BEGIN
     IDS_LOCKMSG "Only %s or an Administrator can unlock this computer."
     IDS_LOGONMSG "You are logged on as %s."
     IDS_LOGONDATE "Logon date: %s %s"
+    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."
 END
index 03e37f4..1bf1865 100644 (file)
@@ -122,4 +122,7 @@ BEGIN
     IDS_LOCKMSG "Only %s or an Administrator can unlock this computer."
     IDS_LOGONMSG "You are logged on as %s."
     IDS_LOGONDATE "Logon date: %s %s"
+    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."
 END
index bbb5379..1722f85 100644 (file)
@@ -131,4 +131,7 @@ BEGIN
     IDS_LOCKMSG "Tylko %s lub Administrator może odblokować ten komputer."
     IDS_LOGONMSG "Jesteś zalogowany jako %s."
     IDS_LOGONDATE "Data logowania: %s %s"
+    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."
 END
index b3c9c17..2624eeb 100644 (file)
@@ -124,4 +124,7 @@ BEGIN
     IDS_LOCKMSG "Doar %s sau un Administrator poate debloca acest calculator."
     IDS_LOGONMSG "Sunteți autentificat ca %s."
     IDS_LOGONDATE "Data autentificării: %s %s"
+    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."
 END
index e362a30..eaba616 100644 (file)
@@ -124,4 +124,7 @@ BEGIN
     IDS_LOCKMSG "Только %s или Администратор могут разблокировать этот компьютер."
     IDS_LOGONMSG "You are logged on as %s."
     IDS_LOGONDATE "Дата входа: %s %s"
+    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."
 END
index 77dd4dd..6956d1b 100644 (file)
@@ -127,4 +127,7 @@ BEGIN
     IDS_LOCKMSG "Only %s or an Administrator can unlock this computer."
     IDS_LOGONMSG "You are logged on as %s."
     IDS_LOGONDATE "Logon date: %s %s"
+    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."
 END
index a6a0ffb..ba61e27 100644 (file)
@@ -124,4 +124,7 @@ BEGIN
     IDS_LOCKMSG "Yalnızca %s ve bir yönetici bu bilgisayarı kilitleyebilir."
     IDS_LOGONMSG "%s olarak oturum açtınız."
     IDS_LOGONDATE "Oturum Açma Zamânı: %s %s"
+    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."
 END
index fca62ab..2d38634 100644 (file)
@@ -130,4 +130,7 @@ BEGIN
     IDS_LOCKMSG "Only %s or an Administrator can unlock this computer."
     IDS_LOGONMSG "You are logged on as %s."
     IDS_LOGONDATE "Logon date: %s %s"
+    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."
 END
index bc4ab5a..148c8dc 100644 (file)
 
 #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_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