- Implement the legal notice dialog.
- Rename ReadRegSzKey to ReadRegSzValue.
- Rename ReadRegDwordKey to ReadRegDwordValue.

svn path=/trunk/; revision=63745
This commit is contained in:
Eric Kohl 2014-07-27 21:05:42 +00:00
parent f637c9716a
commit b665986eb6
22 changed files with 283 additions and 27 deletions

View file

@ -9,6 +9,7 @@
#include <wingdi.h>
#include <winnls.h>
#include <winreg.h>
typedef struct _DISPLAYSTATUSMSG
{
@ -20,6 +21,13 @@ typedef struct _DISPLAYSTATUSMSG
HANDLE StartupEvent;
} DISPLAYSTATUSMSG, *PDISPLAYSTATUSMSG;
typedef struct _LEGALNOTICEDATA
{
LPWSTR pszCaption;
LPWSTR pszText;
} LEGALNOTICEDATA, *PLEGALNOTICEDATA;
static BOOL
GUIInitialize(
IN OUT PGINA_CONTEXT pgContext)
@ -1162,14 +1170,90 @@ LoggedOutWindowProc(
return FALSE;
}
static
INT_PTR
CALLBACK
LegalNoticeDialogProc(
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
{
PLEGALNOTICEDATA pLegalNotice;
switch (uMsg)
{
case WM_INITDIALOG:
pLegalNotice = (PLEGALNOTICEDATA)lParam;
SetWindowTextW(hwndDlg, pLegalNotice->pszCaption);
SetDlgItemTextW(hwndDlg, IDC_LEGALNOTICE_TEXT, pLegalNotice->pszText);
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
EndDialog(hwndDlg, 0);
return TRUE;
case IDCANCEL:
EndDialog(hwndDlg, 0);
return TRUE;
}
break;
}
return FALSE;
}
static INT
GUILoggedOutSAS(
IN OUT PGINA_CONTEXT pgContext)
{
LEGALNOTICEDATA LegalNotice = {NULL, NULL};
HKEY hKey = NULL;
LONG rc;
int result;
TRACE("GUILoggedOutSAS()\n");
rc = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",
0,
KEY_QUERY_VALUE,
&hKey);
if (rc == ERROR_SUCCESS)
{
ReadRegSzValue(hKey,
L"LegalNoticeCaption",
&LegalNotice.pszCaption);
ReadRegSzValue(hKey,
L"LegalNoticeText",
&LegalNotice.pszText);
RegCloseKey(hKey);
}
if (LegalNotice.pszCaption != NULL && wcslen(LegalNotice.pszCaption) != 0 &&
LegalNotice.pszText != NULL && wcslen(LegalNotice.pszText) != 0)
{
pgContext->pWlxFuncs->WlxDialogBoxParam(pgContext->hWlx,
pgContext->hDllInstance,
MAKEINTRESOURCEW(IDD_LEGALNOTICE_DLG),
GetDesktopWindow(),
LegalNoticeDialogProc,
(LPARAM)&LegalNotice);
}
if (LegalNotice.pszCaption != NULL)
HeapFree(GetProcessHeap(), 0, LegalNotice.pszCaption);
if (LegalNotice.pszText != NULL)
HeapFree(GetProcessHeap(), 0, LegalNotice.pszText);
result = pgContext->pWlxFuncs->WlxDialogBoxParam(
pgContext->hWlx,
pgContext->hDllInstance,

View file

@ -128,6 +128,15 @@ BEGIN
PUSHBUTTON "Отказ", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Здравейте!"

View file

@ -133,6 +133,15 @@ BEGIN
PUSHBUTTON "Storno", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Vítejte!"

View file

@ -128,6 +128,15 @@ BEGIN
PUSHBUTTON "Abbrechen", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Willkommen!"

View file

@ -128,6 +128,15 @@ BEGIN
PUSHBUTTON "Cancel", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Welcome!"

View file

@ -130,6 +130,15 @@ BEGIN
PUSHBUTTON "Cancelar", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "¡Bienvenido!"

View file

@ -128,6 +128,15 @@ BEGIN
PUSHBUTTON "Annuler", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Bienvenue!"

View file

@ -128,6 +128,15 @@ BEGIN
PUSHBUTTON "Cancel", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "ברוכים הבאים!"

View file

@ -128,6 +128,15 @@ BEGIN
PUSHBUTTON "Cancel", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Selamat datang!"

View file

@ -137,6 +137,15 @@ BEGIN
PUSHBUTTON "Annulla", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Benvenuti!"

View file

@ -128,6 +128,15 @@ BEGIN
PUSHBUTTON "キャンセル", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "ようこそ!"

View file

@ -128,6 +128,15 @@ BEGIN
PUSHBUTTON "Avbryt", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Velkommen!"

View file

@ -138,6 +138,15 @@ BEGIN
PUSHBUTTON "Anuluj", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Witaj!"

View file

@ -130,6 +130,15 @@ BEGIN
PUSHBUTTON "A&nulează", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Bun venit!"

View file

@ -130,6 +130,15 @@ BEGIN
PUSHBUTTON "Отмена", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Добро пожаловать!"

View file

@ -133,6 +133,15 @@ BEGIN
PUSHBUTTON "Zrušiť", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Vitajte!"

View file

@ -131,6 +131,15 @@ BEGIN
PUSHBUTTON "Cancel", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Mirëseerdhët!"

View file

@ -130,6 +130,15 @@ BEGIN
PUSHBUTTON "İptal", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Hoşgeldiniz!"

View file

@ -136,6 +136,15 @@ BEGIN
PUSHBUTTON "Скасувати", IDCANCEL, 204, 122, 55, 14
END
IDD_LEGALNOTICE_DLG DIALOGEX 0, 0, 280, 200
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_LEGALNOTICE_TEXT, 7, 7, 266, 165, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 115, 179, 50, 14
END
STRINGTABLE
BEGIN
IDS_LOGGEDOUTSAS "Ласкаво просимо!"

View file

@ -57,10 +57,10 @@ WlxNegotiate(
return TRUE;
}
static LONG
ReadRegSzKey(
LONG
ReadRegSzValue(
IN HKEY hKey,
IN LPCWSTR pszKey,
IN LPCWSTR pszValue,
OUT LPWSTR* pValue)
{
LONG rc;
@ -72,7 +72,7 @@ ReadRegSzKey(
return ERROR_INVALID_PARAMETER;
*pValue = NULL;
rc = RegQueryValueExW(hKey, pszKey, NULL, &dwType, NULL, &cbData);
rc = RegQueryValueExW(hKey, pszValue, NULL, &dwType, NULL, &cbData);
if (rc != ERROR_SUCCESS)
return rc;
if (dwType != REG_SZ)
@ -80,7 +80,7 @@ ReadRegSzKey(
Value = HeapAlloc(GetProcessHeap(), 0, cbData + sizeof(WCHAR));
if (!Value)
return ERROR_NOT_ENOUGH_MEMORY;
rc = RegQueryValueExW(hKey, pszKey, NULL, NULL, (LPBYTE)Value, &cbData);
rc = RegQueryValueExW(hKey, pszValue, NULL, NULL, (LPBYTE)Value, &cbData);
if (rc != ERROR_SUCCESS)
{
HeapFree(GetProcessHeap(), 0, Value);
@ -94,9 +94,9 @@ ReadRegSzKey(
}
static LONG
ReadRegDwordKey(
ReadRegDwordValue(
IN HKEY hKey,
IN LPCWSTR pszKey,
IN LPCWSTR pszValue,
OUT LPDWORD pValue)
{
LONG rc;
@ -108,7 +108,7 @@ ReadRegDwordKey(
return ERROR_INVALID_PARAMETER;
cbData = sizeof(DWORD);
rc = RegQueryValueExW(hKey, pszKey, NULL, &dwType, (LPBYTE)&dwValue, &cbData);
rc = RegQueryValueExW(hKey, pszValue, NULL, &dwType, (LPBYTE)&dwValue, &cbData);
if (rc == ERROR_SUCCESS && dwType == REG_DWORD)
*pValue = dwValue;
@ -131,7 +131,7 @@ ChooseGinaUI(VOID)
KEY_QUERY_VALUE,
&ControlKey);
rc = ReadRegSzKey(ControlKey, L"SystemStartOptions", &SystemStartOptions);
rc = ReadRegSzValue(ControlKey, L"SystemStartOptions", &SystemStartOptions);
if (rc != ERROR_SUCCESS)
goto cleanup;
@ -186,9 +186,9 @@ GetRegistrySettings(PGINA_CONTEXT pgContext)
return FALSE;
}
rc = ReadRegSzKey(hKey,
L"AutoAdminLogon",
&lpAutoAdminLogon);
rc = ReadRegSzValue(hKey,
L"AutoAdminLogon",
&lpAutoAdminLogon);
if (rc == ERROR_SUCCESS)
{
if (wcscmp(lpAutoAdminLogon, L"1") == 0)
@ -197,9 +197,9 @@ GetRegistrySettings(PGINA_CONTEXT pgContext)
TRACE("bAutoAdminLogon: %s\n", pgContext->bAutoAdminLogon ? "TRUE" : "FALSE");
rc = ReadRegDwordKey(hKey,
L"DisableCAD",
&dwDisableCAD);
rc = ReadRegDwordValue(hKey,
L"DisableCAD",
&dwDisableCAD);
if (rc == ERROR_SUCCESS)
{
if (dwDisableCAD != 0)
@ -209,18 +209,18 @@ GetRegistrySettings(PGINA_CONTEXT pgContext)
TRACE("bDisableCAD: %s\n", pgContext->bDisableCAD ? "TRUE" : "FALSE");
pgContext->bShutdownWithoutLogon = TRUE;
rc = ReadRegSzKey(hKey,
L"ShutdownWithoutLogon",
&lpShutdownWithoutLogon);
rc = ReadRegSzValue(hKey,
L"ShutdownWithoutLogon",
&lpShutdownWithoutLogon);
if (rc == ERROR_SUCCESS)
{
if (wcscmp(lpShutdownWithoutLogon, L"0") == 0)
pgContext->bShutdownWithoutLogon = FALSE;
}
rc = ReadRegSzKey(hKey,
L"DontDisplayLastUserName",
&lpDontDisplayLastUserName);
rc = ReadRegSzValue(hKey,
L"DontDisplayLastUserName",
&lpDontDisplayLastUserName);
if (rc == ERROR_SUCCESS)
{
if (wcscmp(lpDontDisplayLastUserName, L"1") == 0)
@ -856,19 +856,19 @@ DoAutoLogon(
/* Set it by default to disabled, we might reenable it again later */
pgContext->AutoLogonState = AUTOLOGON_DISABLED;
rc = ReadRegSzKey(WinLogonKey, L"AutoAdminLogon", &AutoLogon);
rc = ReadRegSzValue(WinLogonKey, L"AutoAdminLogon", &AutoLogon);
if (rc != ERROR_SUCCESS)
goto cleanup;
if (wcscmp(AutoLogon, L"1") != 0)
goto cleanup;
rc = ReadRegSzKey(WinLogonKey, L"AutoLogonCount", &AutoCount);
rc = ReadRegSzValue(WinLogonKey, L"AutoLogonCount", &AutoCount);
if (rc == ERROR_SUCCESS && wcscmp(AutoCount, L"0") == 0)
goto cleanup;
else if (rc != ERROR_FILE_NOT_FOUND)
goto cleanup;
rc = ReadRegSzKey(WinLogonKey, L"IgnoreShiftOverride", &UserName);
rc = ReadRegSzValue(WinLogonKey, L"IgnoreShiftOverride", &UserName);
if (rc == ERROR_SUCCESS)
{
if (wcscmp(AutoLogon, L"1") != 0 && GetKeyState(VK_SHIFT) < 0)
@ -887,13 +887,13 @@ DoAutoLogon(
{
pgContext->AutoLogonState = AUTOLOGON_DISABLED;
rc = ReadRegSzKey(WinLogonKey, L"DefaultUserName", &UserName);
rc = ReadRegSzValue(WinLogonKey, L"DefaultUserName", &UserName);
if (rc != ERROR_SUCCESS)
goto cleanup;
rc = ReadRegSzKey(WinLogonKey, L"DefaultDomain", &Domain);
rc = ReadRegSzValue(WinLogonKey, L"DefaultDomain", &Domain);
if (rc != ERROR_SUCCESS && rc != ERROR_FILE_NOT_FOUND)
goto cleanup;
rc = ReadRegSzKey(WinLogonKey, L"DefaultPassword", &Password);
rc = ReadRegSzValue(WinLogonKey, L"DefaultPassword", &Password);
if (rc != ERROR_SUCCESS)
goto cleanup;

View file

@ -97,6 +97,12 @@ MyLogonUser(
/* msgina.c */
LONG
ReadRegSzValue(
IN HKEY hKey,
IN LPCWSTR pszValue,
OUT LPWSTR *pValue);
BOOL
DoAdminUnlock(
IN PGINA_CONTEXT pgContext,

View file

@ -34,6 +34,10 @@
#define IDD_LOGOFF_DLG 107
#define IDD_LEGALNOTICE_DLG 1018
#define IDC_LEGALNOTICE_TEXT 1019
#define IDI_ROSLOGO 20000
#define IDI_SHELL_SHUTDOWN 20001