Convert tabs to spaces. No code changes!

svn path=/trunk/; revision=58963
This commit is contained in:
Eric Kohl 2013-05-06 21:43:03 +00:00
parent bfe3492dc4
commit c1d4f2f390
5 changed files with 1111 additions and 1111 deletions

View file

@ -11,222 +11,222 @@ WINE_DEFAULT_DEBUG_CHANNEL(msgina);
typedef struct _DISPLAYSTATUSMSG
{
PGINA_CONTEXT Context;
HDESK hDesktop;
DWORD dwOptions;
PWSTR pTitle;
PWSTR pMessage;
HANDLE StartupEvent;
PGINA_CONTEXT Context;
HDESK hDesktop;
DWORD dwOptions;
PWSTR pTitle;
PWSTR pMessage;
HANDLE StartupEvent;
} DISPLAYSTATUSMSG, *PDISPLAYSTATUSMSG;
static BOOL
GUIInitialize(
IN OUT PGINA_CONTEXT pgContext)
IN OUT PGINA_CONTEXT pgContext)
{
TRACE("GUIInitialize(%p)\n", pgContext);
return TRUE;
TRACE("GUIInitialize(%p)\n", pgContext);
return TRUE;
}
static INT_PTR CALLBACK
StatusMessageWindowProc(
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
{
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(wParam);
switch (uMsg)
{
case WM_INITDIALOG:
{
PDISPLAYSTATUSMSG msg = (PDISPLAYSTATUSMSG)lParam;
if (!msg)
return FALSE;
switch (uMsg)
{
case WM_INITDIALOG:
{
PDISPLAYSTATUSMSG msg = (PDISPLAYSTATUSMSG)lParam;
if (!msg)
return FALSE;
msg->Context->hStatusWindow = hwndDlg;
msg->Context->hStatusWindow = hwndDlg;
if (msg->pTitle)
SetWindowTextW(hwndDlg, msg->pTitle);
SetDlgItemTextW(hwndDlg, IDC_STATUSLABEL, msg->pMessage);
SetEvent(msg->StartupEvent);
return TRUE;
}
}
return FALSE;
if (msg->pTitle)
SetWindowTextW(hwndDlg, msg->pTitle);
SetDlgItemTextW(hwndDlg, IDC_STATUSLABEL, msg->pMessage);
SetEvent(msg->StartupEvent);
return TRUE;
}
}
return FALSE;
}
static DWORD WINAPI
StartupWindowThread(LPVOID lpParam)
{
HDESK hDesk;
PDISPLAYSTATUSMSG msg = (PDISPLAYSTATUSMSG)lpParam;
HDESK hDesk;
PDISPLAYSTATUSMSG msg = (PDISPLAYSTATUSMSG)lpParam;
/* When SetThreadDesktop is called the system closes the desktop handle when needed
so we have to create a new handle because this handle may still be in use by winlogon */
if (!DuplicateHandle ( GetCurrentProcess(),
msg->hDesktop,
GetCurrentProcess(),
(HANDLE*)&hDesk,
0,
FALSE,
DUPLICATE_SAME_ACCESS))
{
HeapFree(GetProcessHeap(), 0, lpParam);
return FALSE;
}
/* When SetThreadDesktop is called the system closes the desktop handle when needed
so we have to create a new handle because this handle may still be in use by winlogon */
if (!DuplicateHandle ( GetCurrentProcess(),
msg->hDesktop,
GetCurrentProcess(),
(HANDLE*)&hDesk,
0,
FALSE,
DUPLICATE_SAME_ACCESS))
{
HeapFree(GetProcessHeap(), 0, lpParam);
return FALSE;
}
if(!SetThreadDesktop(hDesk))
{
HeapFree(GetProcessHeap(), 0, lpParam);
return FALSE;
}
if(!SetThreadDesktop(hDesk))
{
HeapFree(GetProcessHeap(), 0, lpParam);
return FALSE;
}
DialogBoxParam(
hDllInstance,
MAKEINTRESOURCE(IDD_STATUSWINDOW_DLG),
GetDesktopWindow(),
StatusMessageWindowProc,
(LPARAM)lpParam);
DialogBoxParam(
hDllInstance,
MAKEINTRESOURCE(IDD_STATUSWINDOW_DLG),
GetDesktopWindow(),
StatusMessageWindowProc,
(LPARAM)lpParam);
HeapFree(GetProcessHeap(), 0, lpParam);
return TRUE;
HeapFree(GetProcessHeap(), 0, lpParam);
return TRUE;
}
static BOOL
GUIDisplayStatusMessage(
IN PGINA_CONTEXT pgContext,
IN HDESK hDesktop,
IN DWORD dwOptions,
IN PWSTR pTitle,
IN PWSTR pMessage)
IN PGINA_CONTEXT pgContext,
IN HDESK hDesktop,
IN DWORD dwOptions,
IN PWSTR pTitle,
IN PWSTR pMessage)
{
PDISPLAYSTATUSMSG msg;
HANDLE Thread;
DWORD ThreadId;
PDISPLAYSTATUSMSG msg;
HANDLE Thread;
DWORD ThreadId;
TRACE("GUIDisplayStatusMessage(%ws)\n", pMessage);
TRACE("GUIDisplayStatusMessage(%ws)\n", pMessage);
if (!pgContext->hStatusWindow)
{
msg = (PDISPLAYSTATUSMSG)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DISPLAYSTATUSMSG));
if(!msg)
return FALSE;
if (!pgContext->hStatusWindow)
{
msg = (PDISPLAYSTATUSMSG)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DISPLAYSTATUSMSG));
if(!msg)
return FALSE;
msg->Context = pgContext;
msg->dwOptions = dwOptions;
msg->pTitle = pTitle;
msg->pMessage = pMessage;
msg->hDesktop = hDesktop;
msg->Context = pgContext;
msg->dwOptions = dwOptions;
msg->pTitle = pTitle;
msg->pMessage = pMessage;
msg->hDesktop = hDesktop;
msg->StartupEvent = CreateEventW(
NULL,
TRUE,
FALSE,
NULL);
msg->StartupEvent = CreateEventW(
NULL,
TRUE,
FALSE,
NULL);
if (!msg->StartupEvent)
return FALSE;
if (!msg->StartupEvent)
return FALSE;
Thread = CreateThread(
NULL,
0,
StartupWindowThread,
(PVOID)msg,
0,
&ThreadId);
if (Thread)
{
CloseHandle(Thread);
WaitForSingleObject(msg->StartupEvent, INFINITE);
CloseHandle(msg->StartupEvent);
return TRUE;
}
Thread = CreateThread(
NULL,
0,
StartupWindowThread,
(PVOID)msg,
0,
&ThreadId);
if (Thread)
{
CloseHandle(Thread);
WaitForSingleObject(msg->StartupEvent, INFINITE);
CloseHandle(msg->StartupEvent);
return TRUE;
}
return FALSE;
}
return FALSE;
}
if (pTitle)
SetWindowTextW(pgContext->hStatusWindow, pTitle);
if (pTitle)
SetWindowTextW(pgContext->hStatusWindow, pTitle);
SetDlgItemTextW(pgContext->hStatusWindow, IDC_STATUSLABEL, pMessage);
SetDlgItemTextW(pgContext->hStatusWindow, IDC_STATUSLABEL, pMessage);
return TRUE;
return TRUE;
}
static BOOL
GUIRemoveStatusMessage(
IN PGINA_CONTEXT pgContext)
IN PGINA_CONTEXT pgContext)
{
if (pgContext->hStatusWindow)
{
EndDialog(pgContext->hStatusWindow, 0);
pgContext->hStatusWindow = NULL;
}
if (pgContext->hStatusWindow)
{
EndDialog(pgContext->hStatusWindow, 0);
pgContext->hStatusWindow = NULL;
}
return TRUE;
return TRUE;
}
static INT_PTR CALLBACK
EmptyWindowProc(
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
{
UNREFERENCED_PARAMETER(hwndDlg);
UNREFERENCED_PARAMETER(uMsg);
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(lParam);
UNREFERENCED_PARAMETER(hwndDlg);
UNREFERENCED_PARAMETER(uMsg);
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(lParam);
return FALSE;
return FALSE;
}
static VOID
GUIDisplaySASNotice(
IN OUT PGINA_CONTEXT pgContext)
IN OUT PGINA_CONTEXT pgContext)
{
INT result;
INT result;
TRACE("GUIDisplaySASNotice()\n");
TRACE("GUIDisplaySASNotice()\n");
/* Display the notice window */
result = DialogBoxParam(
pgContext->hDllInstance,
MAKEINTRESOURCE(IDD_NOTICE_DLG),
GetDesktopWindow(),
EmptyWindowProc,
(LPARAM)NULL);
if (result == -1)
{
/* Failed to display the window. Do as if the user
* already has pressed CTRL+ALT+DELETE */
pgContext->pWlxFuncs->WlxSasNotify(pgContext->hWlx, WLX_SAS_TYPE_CTRL_ALT_DEL);
}
/* Display the notice window */
result = DialogBoxParam(
pgContext->hDllInstance,
MAKEINTRESOURCE(IDD_NOTICE_DLG),
GetDesktopWindow(),
EmptyWindowProc,
(LPARAM)NULL);
if (result == -1)
{
/* Failed to display the window. Do as if the user
* already has pressed CTRL+ALT+DELETE */
pgContext->pWlxFuncs->WlxSasNotify(pgContext->hWlx, WLX_SAS_TYPE_CTRL_ALT_DEL);
}
}
/* Get the text contained in a textbox. Allocates memory in pText
* to contain the text. Returns TRUE in case of success */
static BOOL
GetTextboxText(
IN HWND hwndDlg,
IN INT TextboxId,
OUT LPWSTR *pText)
IN HWND hwndDlg,
IN INT TextboxId,
OUT LPWSTR *pText)
{
LPWSTR Text;
int Count;
LPWSTR Text;
int Count;
Count = GetWindowTextLength(GetDlgItem(hwndDlg, TextboxId));
Text = HeapAlloc(GetProcessHeap(), 0, (Count + 1) * sizeof(WCHAR));
if (!Text)
return FALSE;
if (Count != GetWindowTextW(GetDlgItem(hwndDlg, TextboxId), Text, Count + 1))
{
HeapFree(GetProcessHeap(), 0, Text);
return FALSE;
}
*pText = Text;
return TRUE;
Count = GetWindowTextLength(GetDlgItem(hwndDlg, TextboxId));
Text = HeapAlloc(GetProcessHeap(), 0, (Count + 1) * sizeof(WCHAR));
if (!Text)
return FALSE;
if (Count != GetWindowTextW(GetDlgItem(hwndDlg, TextboxId), Text, Count + 1))
{
HeapFree(GetProcessHeap(), 0, Text);
return FALSE;
}
*pText = Text;
return TRUE;
}
static VOID
@ -260,209 +260,209 @@ OnInitSecurityDlg(HWND hwnd,
static INT_PTR CALLBACK
LoggedOnWindowProc(
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
{
switch (uMsg)
{
case WM_INITDIALOG:
{
OnInitSecurityDlg(hwndDlg, (PGINA_CONTEXT)lParam);
SetFocus(GetDlgItem(hwndDlg, IDNO));
return TRUE;
}
switch (uMsg)
{
case WM_INITDIALOG:
{
OnInitSecurityDlg(hwndDlg, (PGINA_CONTEXT)lParam);
SetFocus(GetDlgItem(hwndDlg, IDNO));
return TRUE;
}
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDC_LOCK:
EndDialog(hwndDlg, WLX_SAS_ACTION_LOCK_WKSTA);
return TRUE;
case IDC_LOGOFF:
EndDialog(hwndDlg, WLX_SAS_ACTION_LOGOFF);
return TRUE;
case IDC_SHUTDOWN:
EndDialog(hwndDlg, WLX_SAS_ACTION_SHUTDOWN_POWER_OFF);
return TRUE;
case IDC_TASKMGR:
EndDialog(hwndDlg, WLX_SAS_ACTION_TASKLIST);
return TRUE;
case IDCANCEL:
EndDialog(hwndDlg, WLX_SAS_ACTION_NONE);
return TRUE;
}
break;
}
case WM_CLOSE:
{
EndDialog(hwndDlg, WLX_SAS_ACTION_NONE);
return TRUE;
}
}
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDC_LOCK:
EndDialog(hwndDlg, WLX_SAS_ACTION_LOCK_WKSTA);
return TRUE;
case IDC_LOGOFF:
EndDialog(hwndDlg, WLX_SAS_ACTION_LOGOFF);
return TRUE;
case IDC_SHUTDOWN:
EndDialog(hwndDlg, WLX_SAS_ACTION_SHUTDOWN_POWER_OFF);
return TRUE;
case IDC_TASKMGR:
EndDialog(hwndDlg, WLX_SAS_ACTION_TASKLIST);
return TRUE;
case IDCANCEL:
EndDialog(hwndDlg, WLX_SAS_ACTION_NONE);
return TRUE;
}
break;
}
case WM_CLOSE:
{
EndDialog(hwndDlg, WLX_SAS_ACTION_NONE);
return TRUE;
}
}
return FALSE;
return FALSE;
}
static INT
GUILoggedOnSAS(
IN OUT PGINA_CONTEXT pgContext,
IN DWORD dwSasType)
IN OUT PGINA_CONTEXT pgContext,
IN DWORD dwSasType)
{
INT result;
INT result;
TRACE("GUILoggedOnSAS()\n");
TRACE("GUILoggedOnSAS()\n");
if (dwSasType != WLX_SAS_TYPE_CTRL_ALT_DEL)
{
/* Nothing to do for WLX_SAS_TYPE_TIMEOUT ; the dialog will
* close itself thanks to the use of WlxDialogBoxParam */
return WLX_SAS_ACTION_NONE;
}
if (dwSasType != WLX_SAS_TYPE_CTRL_ALT_DEL)
{
/* Nothing to do for WLX_SAS_TYPE_TIMEOUT ; the dialog will
* close itself thanks to the use of WlxDialogBoxParam */
return WLX_SAS_ACTION_NONE;
}
result = pgContext->pWlxFuncs->WlxSwitchDesktopToWinlogon(
pgContext->hWlx);
result = pgContext->pWlxFuncs->WlxSwitchDesktopToWinlogon(
pgContext->hWlx);
result = pgContext->pWlxFuncs->WlxDialogBoxParam(
pgContext->hWlx,
pgContext->hDllInstance,
MAKEINTRESOURCEW(IDD_LOGGEDON_DLG),
GetDesktopWindow(),
LoggedOnWindowProc,
(LPARAM)pgContext);
result = pgContext->pWlxFuncs->WlxDialogBoxParam(
pgContext->hWlx,
pgContext->hDllInstance,
MAKEINTRESOURCEW(IDD_LOGGEDON_DLG),
GetDesktopWindow(),
LoggedOnWindowProc,
(LPARAM)pgContext);
if (result < WLX_SAS_ACTION_LOGON ||
result > WLX_SAS_ACTION_SWITCH_CONSOLE)
{
result = WLX_SAS_ACTION_NONE;
}
if (result < WLX_SAS_ACTION_LOGON ||
result > WLX_SAS_ACTION_SWITCH_CONSOLE)
{
result = WLX_SAS_ACTION_NONE;
}
if (result == WLX_SAS_ACTION_NONE)
{
result = pgContext->pWlxFuncs->WlxSwitchDesktopToUser(
pgContext->hWlx);
}
if (result == WLX_SAS_ACTION_NONE)
{
result = pgContext->pWlxFuncs->WlxSwitchDesktopToUser(
pgContext->hWlx);
}
return result;
return result;
}
static INT_PTR CALLBACK
LoggedOutWindowProc(
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
{
PGINA_CONTEXT pgContext;
PGINA_CONTEXT pgContext;
pgContext = (PGINA_CONTEXT)GetWindowLongPtr(hwndDlg, GWL_USERDATA);
pgContext = (PGINA_CONTEXT)GetWindowLongPtr(hwndDlg, GWL_USERDATA);
switch (uMsg)
{
case WM_INITDIALOG:
{
/* FIXME: take care of DontDisplayLastUserName, NoDomainUI, ShutdownWithoutLogon */
pgContext = (PGINA_CONTEXT)lParam;
SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pgContext);
SetFocus(GetDlgItem(hwndDlg, IDC_USERNAME));
switch (uMsg)
{
case WM_INITDIALOG:
{
/* FIXME: take care of DontDisplayLastUserName, NoDomainUI, ShutdownWithoutLogon */
pgContext = (PGINA_CONTEXT)lParam;
SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pgContext);
SetFocus(GetDlgItem(hwndDlg, IDC_USERNAME));
pgContext->hBitmap = LoadImage(hDllInstance, MAKEINTRESOURCE(IDI_ROSLOGO), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
return TRUE;
}
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc;
if (pgContext->hBitmap)
{
hdc = BeginPaint(hwndDlg, &ps);
DrawStateW(hdc, NULL, NULL, (LPARAM)pgContext->hBitmap, (WPARAM)0, 0, 0, 0, 0, DST_BITMAP);
EndPaint(hwndDlg, &ps);
}
return TRUE;
}
case WM_DESTROY:
{
DeleteObject(pgContext->hBitmap);
return TRUE;
}
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDOK:
{
LPWSTR UserName = NULL, Password = NULL;
INT result = WLX_SAS_ACTION_NONE;
pgContext->hBitmap = LoadImage(hDllInstance, MAKEINTRESOURCE(IDI_ROSLOGO), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
return TRUE;
}
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc;
if (pgContext->hBitmap)
{
hdc = BeginPaint(hwndDlg, &ps);
DrawStateW(hdc, NULL, NULL, (LPARAM)pgContext->hBitmap, (WPARAM)0, 0, 0, 0, 0, DST_BITMAP);
EndPaint(hwndDlg, &ps);
}
return TRUE;
}
case WM_DESTROY:
{
DeleteObject(pgContext->hBitmap);
return TRUE;
}
case WM_COMMAND:
{
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) &&
DoLoginTasks(pgContext, UserName, NULL, Password))
{
result = WLX_SAS_ACTION_LOGON;
}
HeapFree(GetProcessHeap(), 0, UserName);
HeapFree(GetProcessHeap(), 0, Password);
EndDialog(hwndDlg, result);
return TRUE;
}
case IDCANCEL:
{
EndDialog(hwndDlg, WLX_SAS_ACTION_NONE);
return TRUE;
}
case IDC_SHUTDOWN:
{
EndDialog(hwndDlg, WLX_SAS_ACTION_SHUTDOWN);
return TRUE;
}
}
break;
}
}
if (GetTextboxText(hwndDlg, IDC_USERNAME, &UserName) && *UserName == '\0')
break;
if (GetTextboxText(hwndDlg, IDC_PASSWORD, &Password) &&
DoLoginTasks(pgContext, UserName, NULL, Password))
{
result = WLX_SAS_ACTION_LOGON;
}
HeapFree(GetProcessHeap(), 0, UserName);
HeapFree(GetProcessHeap(), 0, Password);
EndDialog(hwndDlg, result);
return TRUE;
}
case IDCANCEL:
{
EndDialog(hwndDlg, WLX_SAS_ACTION_NONE);
return TRUE;
}
case IDC_SHUTDOWN:
{
EndDialog(hwndDlg, WLX_SAS_ACTION_SHUTDOWN);
return TRUE;
}
}
break;
}
}
return FALSE;
return FALSE;
}
static INT
GUILoggedOutSAS(
IN OUT PGINA_CONTEXT pgContext)
IN OUT PGINA_CONTEXT pgContext)
{
int result;
int result;
TRACE("GUILoggedOutSAS()\n");
TRACE("GUILoggedOutSAS()\n");
result = pgContext->pWlxFuncs->WlxDialogBoxParam(
pgContext->hWlx,
pgContext->hDllInstance,
MAKEINTRESOURCEW(IDD_LOGGEDOUT_DLG),
GetDesktopWindow(),
LoggedOutWindowProc,
(LPARAM)pgContext);
if (result >= WLX_SAS_ACTION_LOGON &&
result <= WLX_SAS_ACTION_SWITCH_CONSOLE)
{
WARN("WlxLoggedOutSAS() returns 0x%x\n", result);
return result;
}
result = pgContext->pWlxFuncs->WlxDialogBoxParam(
pgContext->hWlx,
pgContext->hDllInstance,
MAKEINTRESOURCEW(IDD_LOGGEDOUT_DLG),
GetDesktopWindow(),
LoggedOutWindowProc,
(LPARAM)pgContext);
if (result >= WLX_SAS_ACTION_LOGON &&
result <= WLX_SAS_ACTION_SWITCH_CONSOLE)
{
WARN("WlxLoggedOutSAS() returns 0x%x\n", result);
return result;
}
WARN("WlxDialogBoxParam() failed (0x%x)\n", result);
return WLX_SAS_ACTION_NONE;
WARN("WlxDialogBoxParam() failed (0x%x)\n", result);
return WLX_SAS_ACTION_NONE;
}
static INT
GUILockedSAS(
IN OUT PGINA_CONTEXT pgContext)
IN OUT PGINA_CONTEXT pgContext)
{
TRACE("GUILockedSAS()\n");
TRACE("GUILockedSAS()\n");
UNREFERENCED_PARAMETER(pgContext);
UNREFERENCED_PARAMETER(pgContext);
UNIMPLEMENTED;
return WLX_SAS_ACTION_UNLOCK_WKSTA;
UNIMPLEMENTED;
return WLX_SAS_ACTION_UNLOCK_WKSTA;
}
@ -485,71 +485,71 @@ OnInitLockedDlg(HWND hwnd,
static INT_PTR CALLBACK
LockedWindowProc(
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
{
PGINA_CONTEXT pgContext;
PGINA_CONTEXT pgContext;
pgContext = (PGINA_CONTEXT)GetWindowLongPtr(hwndDlg, GWL_USERDATA);
pgContext = (PGINA_CONTEXT)GetWindowLongPtr(hwndDlg, GWL_USERDATA);
switch (uMsg)
{
case WM_INITDIALOG:
{
pgContext = (PGINA_CONTEXT)lParam;
SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pgContext);
switch (uMsg)
{
case WM_INITDIALOG:
{
pgContext = (PGINA_CONTEXT)lParam;
SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pgContext);
pgContext->hBitmap = LoadImage(hDllInstance, MAKEINTRESOURCE(IDI_ROSLOGO), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
OnInitLockedDlg(hwndDlg, pgContext);
return TRUE;
}
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc;
if (pgContext->hBitmap)
{
hdc = BeginPaint(hwndDlg, &ps);
DrawStateW(hdc, NULL, NULL, (LPARAM)pgContext->hBitmap, (WPARAM)0, 0, 0, 0, 0, DST_BITMAP);
EndPaint(hwndDlg, &ps);
}
return TRUE;
}
case WM_DESTROY:
{
DeleteObject(pgContext->hBitmap);
return TRUE;
}
}
pgContext->hBitmap = LoadImage(hDllInstance, MAKEINTRESOURCE(IDI_ROSLOGO), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
OnInitLockedDlg(hwndDlg, pgContext);
return TRUE;
}
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc;
if (pgContext->hBitmap)
{
hdc = BeginPaint(hwndDlg, &ps);
DrawStateW(hdc, NULL, NULL, (LPARAM)pgContext->hBitmap, (WPARAM)0, 0, 0, 0, 0, DST_BITMAP);
EndPaint(hwndDlg, &ps);
}
return TRUE;
}
case WM_DESTROY:
{
DeleteObject(pgContext->hBitmap);
return TRUE;
}
}
return FALSE;
return FALSE;
}
static VOID
GUIDisplayLockedNotice(
IN OUT PGINA_CONTEXT pgContext)
IN OUT PGINA_CONTEXT pgContext)
{
TRACE("GUIdisplayLockedNotice()\n");
TRACE("GUIdisplayLockedNotice()\n");
pgContext->pWlxFuncs->WlxDialogBoxParam(
pgContext->hWlx,
pgContext->hDllInstance,
MAKEINTRESOURCEW(IDD_LOCKED_DLG),
GetDesktopWindow(),
LockedWindowProc,
(LPARAM)pgContext);
pgContext->pWlxFuncs->WlxDialogBoxParam(
pgContext->hWlx,
pgContext->hDllInstance,
MAKEINTRESOURCEW(IDD_LOCKED_DLG),
GetDesktopWindow(),
LockedWindowProc,
(LPARAM)pgContext);
}
GINA_UI GinaGraphicalUI = {
GUIInitialize,
GUIDisplayStatusMessage,
GUIRemoveStatusMessage,
GUIDisplaySASNotice,
GUILoggedOnSAS,
GUILoggedOutSAS,
GUILockedSAS,
GUIDisplayLockedNotice,
GUIInitialize,
GUIDisplayStatusMessage,
GUIRemoveStatusMessage,
GUIDisplaySASNotice,
GUILoggedOnSAS,
GUILoggedOutSAS,
GUILockedSAS,
GUIDisplayLockedNotice,
};

File diff suppressed because it is too large Load diff

View file

@ -23,25 +23,25 @@
typedef struct
{
HANDLE hWlx;
LPWSTR station;
PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
HANDLE hDllInstance;
HWND hStatusWindow;
DWORD AutoLogonState;
HANDLE hWlx;
LPWSTR station;
PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
HANDLE hDllInstance;
HWND hStatusWindow;
DWORD AutoLogonState;
/* Informations to be filled during logon */
WCHAR UserName[256];
WCHAR Domain[256];
SYSTEMTIME LogonTime;
HANDLE UserToken;
PLUID pAuthenticationId;
PDWORD pdwOptions;
PWLX_MPR_NOTIFY_INFO pMprNotifyInfo;
PVOID *pProfile;
/* Informations to be filled during logon */
WCHAR UserName[256];
WCHAR Domain[256];
SYSTEMTIME LogonTime;
HANDLE UserToken;
PLUID pAuthenticationId;
PDWORD pdwOptions;
PWLX_MPR_NOTIFY_INFO pMprNotifyInfo;
PVOID *pProfile;
/* Current logo to display */
HBITMAP hBitmap;
/* Current logo to display */
HBITMAP hBitmap;
} GINA_CONTEXT, *PGINA_CONTEXT;
extern HINSTANCE hDllInstance;
@ -57,23 +57,23 @@ typedef VOID (*PFGINA_DISPLAYLOCKEDNOTICE)(PGINA_CONTEXT);
typedef struct _GINA_UI
{
PFGINA_INITIALIZE Initialize;
PFGINA_DISPLAYSTATUSMESSAGE DisplayStatusMessage;
PFGINA_REMOVESTATUSMESSAGE RemoveStatusMessage;
PFGINA_DISPLAYSASNOTICE DisplaySASNotice;
PFGINA_LOGGEDONSAS LoggedOnSAS;
PFGINA_LOGGEDOUTSAS LoggedOutSAS;
PFGINA_LOCKEDSAS LockedSAS;
PFGINA_DISPLAYLOCKEDNOTICE DisplayLockedNotice;
PFGINA_INITIALIZE Initialize;
PFGINA_DISPLAYSTATUSMESSAGE DisplayStatusMessage;
PFGINA_REMOVESTATUSMESSAGE RemoveStatusMessage;
PFGINA_DISPLAYSASNOTICE DisplaySASNotice;
PFGINA_LOGGEDONSAS LoggedOnSAS;
PFGINA_LOGGEDOUTSAS LoggedOutSAS;
PFGINA_LOCKEDSAS LockedSAS;
PFGINA_DISPLAYLOCKEDNOTICE DisplayLockedNotice;
} GINA_UI, *PGINA_UI;
/* msgina.c */
BOOL
DoLoginTasks(
IN OUT PGINA_CONTEXT pgContext,
IN PWSTR UserName,
IN PWSTR Domain,
IN PWSTR Password);
IN OUT PGINA_CONTEXT pgContext,
IN PWSTR UserName,
IN PWSTR Domain,
IN PWSTR Password);
/* EOF */

View file

@ -22,20 +22,20 @@ ShellShutdownDialog(
DWORD Unknown,
BOOL bHideLogoff)
{
UNREFERENCED_PARAMETER(hParent);
UNREFERENCED_PARAMETER(Unknown);
UNREFERENCED_PARAMETER(bHideLogoff);
UNREFERENCED_PARAMETER(hParent);
UNREFERENCED_PARAMETER(Unknown);
UNREFERENCED_PARAMETER(bHideLogoff);
/* Return values:
* 0x00: Cancelled/Help
* 0x01: Log off user
* 0x02: Shutdown
* 0x04: Reboot
* 0x10: Standby
* 0x40: Hibernate
*/
UNIMPLEMENTED;
return FALSE;
/* Return values:
* 0x00: Cancelled/Help
* 0x01: Log off user
* 0x02: Shutdown
* 0x04: Reboot
* 0x10: Standby
* 0x40: Hibernate
*/
UNIMPLEMENTED;
return FALSE;
}
@ -44,12 +44,12 @@ ShellShutdownDialog(
*/
BOOL WINAPI
WlxIsLockOk(
PVOID pWlxContext)
PVOID pWlxContext)
{
UNREFERENCED_PARAMETER(pWlxContext);
UNREFERENCED_PARAMETER(pWlxContext);
UNIMPLEMENTED;
return TRUE;
UNIMPLEMENTED;
return TRUE;
}
@ -58,11 +58,11 @@ WlxIsLockOk(
*/
VOID WINAPI
WlxLogoff(
PVOID pWlxContext)
PVOID pWlxContext)
{
UNREFERENCED_PARAMETER(pWlxContext);
UNREFERENCED_PARAMETER(pWlxContext);
UNIMPLEMENTED;
UNIMPLEMENTED;
}
@ -71,13 +71,13 @@ WlxLogoff(
*/
VOID WINAPI
WlxShutdown(
PVOID pWlxContext,
DWORD ShutdownType)
PVOID pWlxContext,
DWORD ShutdownType)
{
UNREFERENCED_PARAMETER(pWlxContext);
UNREFERENCED_PARAMETER(ShutdownType);
UNREFERENCED_PARAMETER(pWlxContext);
UNREFERENCED_PARAMETER(ShutdownType);
UNIMPLEMENTED;
UNIMPLEMENTED;
}
@ -86,18 +86,18 @@ WlxShutdown(
*/
BOOL WINAPI
WlxGetStatusMessage(
PVOID pWlxContext,
DWORD *pdwOptions,
PWSTR pMessage,
DWORD dwBufferSize)
PVOID pWlxContext,
DWORD *pdwOptions,
PWSTR pMessage,
DWORD dwBufferSize)
{
UNREFERENCED_PARAMETER(pWlxContext);
UNREFERENCED_PARAMETER(pdwOptions);
UNREFERENCED_PARAMETER(pMessage);
UNREFERENCED_PARAMETER(dwBufferSize);
UNREFERENCED_PARAMETER(pWlxContext);
UNREFERENCED_PARAMETER(pdwOptions);
UNREFERENCED_PARAMETER(pMessage);
UNREFERENCED_PARAMETER(dwBufferSize);
UNIMPLEMENTED;
return FALSE;
UNIMPLEMENTED;
return FALSE;
}
@ -106,14 +106,14 @@ WlxGetStatusMessage(
*/
BOOL WINAPI
WlxNetworkProviderLoad(
PVOID pWlxContext,
PWLX_MPR_NOTIFY_INFO pNprNotifyInfo)
PVOID pWlxContext,
PWLX_MPR_NOTIFY_INFO pNprNotifyInfo)
{
UNREFERENCED_PARAMETER(pWlxContext);
UNREFERENCED_PARAMETER(pNprNotifyInfo);
UNREFERENCED_PARAMETER(pWlxContext);
UNREFERENCED_PARAMETER(pNprNotifyInfo);
UNIMPLEMENTED;
return FALSE;
UNIMPLEMENTED;
return FALSE;
}
@ -122,11 +122,11 @@ WlxNetworkProviderLoad(
*/
VOID WINAPI
WlxDisconnectNotify(
PVOID pWlxContext)
PVOID pWlxContext)
{
UNREFERENCED_PARAMETER(pWlxContext);
UNREFERENCED_PARAMETER(pWlxContext);
UNIMPLEMENTED;
UNIMPLEMENTED;
}
@ -135,13 +135,13 @@ WlxDisconnectNotify(
*/
BOOL WINAPI
WlxGetConsoleSwitchCredentials(
PVOID pWlxContext,
PVOID pCredInfo)
PVOID pWlxContext,
PVOID pCredInfo)
{
UNREFERENCED_PARAMETER(pWlxContext);
UNREFERENCED_PARAMETER(pCredInfo);
UNREFERENCED_PARAMETER(pWlxContext);
UNREFERENCED_PARAMETER(pCredInfo);
UNIMPLEMENTED;
return FALSE;
UNIMPLEMENTED;
return FALSE;
}

View file

@ -11,255 +11,255 @@ WINE_DEFAULT_DEBUG_CHANNEL(msgina);
static BOOL
TUIInitialize(
IN OUT PGINA_CONTEXT pgContext)
IN OUT PGINA_CONTEXT pgContext)
{
TRACE("TUIInitialize(%p)\n", pgContext);
TRACE("TUIInitialize(%p)\n", pgContext);
return AllocConsole();
return AllocConsole();
}
static BOOL
TUIDisplayStatusMessage(
IN PGINA_CONTEXT pgContext,
IN HDESK hDesktop,
IN DWORD dwOptions,
IN PWSTR pTitle,
IN PWSTR pMessage)
IN PGINA_CONTEXT pgContext,
IN HDESK hDesktop,
IN DWORD dwOptions,
IN PWSTR pTitle,
IN PWSTR pMessage)
{
static LPCWSTR newLine = L"\n";
DWORD result;
static LPCWSTR newLine = L"\n";
DWORD result;
TRACE("TUIDisplayStatusMessage(%ws)\n", pMessage);
TRACE("TUIDisplayStatusMessage(%ws)\n", pMessage);
UNREFERENCED_PARAMETER(pgContext);
UNREFERENCED_PARAMETER(hDesktop);
UNREFERENCED_PARAMETER(dwOptions);
UNREFERENCED_PARAMETER(pTitle);
UNREFERENCED_PARAMETER(pgContext);
UNREFERENCED_PARAMETER(hDesktop);
UNREFERENCED_PARAMETER(dwOptions);
UNREFERENCED_PARAMETER(pTitle);
return
WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
pMessage,
wcslen(pMessage),
&result,
NULL) &&
WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
newLine,
wcslen(newLine),
&result,
NULL);
return
WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
pMessage,
wcslen(pMessage),
&result,
NULL) &&
WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
newLine,
wcslen(newLine),
&result,
NULL);
}
static BOOL
TUIRemoveStatusMessage(
IN PGINA_CONTEXT pgContext)
IN PGINA_CONTEXT pgContext)
{
UNREFERENCED_PARAMETER(pgContext);
UNREFERENCED_PARAMETER(pgContext);
/* Nothing to do */
return TRUE;
/* Nothing to do */
return TRUE;
}
static BOOL
DisplayResourceText(
IN UINT uIdResourceText,
IN BOOL AddNewLine)
IN UINT uIdResourceText,
IN BOOL AddNewLine)
{
WCHAR Prompt[256];
static LPCWSTR newLine = L"\n";
DWORD count;
WCHAR Prompt[256];
static LPCWSTR newLine = L"\n";
DWORD count;
if (0 == LoadStringW(hDllInstance, uIdResourceText, Prompt, 256))
return FALSE;
if (!WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
Prompt, wcslen(Prompt),
&count, NULL))
{
return FALSE;
}
if (AddNewLine)
{
if (!WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
newLine, wcslen(newLine),
&count, NULL))
{
return FALSE;
}
}
return TRUE;
if (0 == LoadStringW(hDllInstance, uIdResourceText, Prompt, 256))
return FALSE;
if (!WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
Prompt, wcslen(Prompt),
&count, NULL))
{
return FALSE;
}
if (AddNewLine)
{
if (!WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
newLine, wcslen(newLine),
&count, NULL))
{
return FALSE;
}
}
return TRUE;
}
static VOID
TUIDisplaySASNotice(
IN OUT PGINA_CONTEXT pgContext)
IN OUT PGINA_CONTEXT pgContext)
{
TRACE("TUIDisplaySASNotice()\n");
TRACE("TUIDisplaySASNotice()\n");
UNREFERENCED_PARAMETER(pgContext);
UNREFERENCED_PARAMETER(pgContext);
DisplayResourceText(IDS_LOGGEDOUTSAS, TRUE);
DisplayResourceText(IDS_PRESSCTRLALTDELETE, TRUE);
DisplayResourceText(IDS_LOGGEDOUTSAS, TRUE);
DisplayResourceText(IDS_PRESSCTRLALTDELETE, TRUE);
}
static INT
TUILoggedOnSAS(
IN OUT PGINA_CONTEXT pgContext,
IN DWORD dwSasType)
IN OUT PGINA_CONTEXT pgContext,
IN DWORD dwSasType)
{
TRACE("TUILoggedOnSAS()\n");
TRACE("TUILoggedOnSAS()\n");
UNREFERENCED_PARAMETER(pgContext);
UNREFERENCED_PARAMETER(pgContext);
if (dwSasType != WLX_SAS_TYPE_CTRL_ALT_DEL)
{
/* Nothing to do for WLX_SAS_TYPE_TIMEOUT */
return WLX_SAS_ACTION_NONE;
}
if (dwSasType != WLX_SAS_TYPE_CTRL_ALT_DEL)
{
/* Nothing to do for WLX_SAS_TYPE_TIMEOUT */
return WLX_SAS_ACTION_NONE;
}
FIXME("FIXME: TUILoggedOnSAS(): Let's suppose the user wants to log off...\n");
return WLX_SAS_ACTION_LOGOFF;
FIXME("FIXME: TUILoggedOnSAS(): Let's suppose the user wants to log off...\n");
return WLX_SAS_ACTION_LOGOFF;
}
static BOOL
ReadString(
IN UINT uIdResourcePrompt,
IN OUT PWSTR Buffer,
IN DWORD BufferLength,
IN BOOL ShowString)
IN UINT uIdResourcePrompt,
IN OUT PWSTR Buffer,
IN DWORD BufferLength,
IN BOOL ShowString)
{
DWORD count, i;
WCHAR charToDisplay[] = { 0, UNICODE_NULL };
DWORD count, i;
WCHAR charToDisplay[] = { 0, UNICODE_NULL };
if (!SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), 0))
return FALSE;
if (!SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), 0))
return FALSE;
if (!FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)))
return FALSE;
if (!FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)))
return FALSE;
if (!DisplayResourceText(uIdResourcePrompt, FALSE))
return FALSE;
if (!DisplayResourceText(uIdResourcePrompt, FALSE))
return FALSE;
i = 0;
for (;;)
{
WCHAR readChar;
if (!ReadConsoleW(GetStdHandle(STD_INPUT_HANDLE), &readChar, 1, &count, NULL))
return FALSE;
if (readChar == '\r' || readChar == '\n')
{
/* End of string */
charToDisplay[0] = L'\n';
WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
charToDisplay,
wcslen(charToDisplay),
&count,
NULL);
break;
}
if (ShowString)
{
/* Display the char */
charToDisplay[0] = readChar;
WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
charToDisplay,
wcslen(charToDisplay),
&count,
NULL);
}
Buffer[i++] = readChar;
/* FIXME: buffer overflow if the user writes too many chars! */
UNREFERENCED_PARAMETER(BufferLength);
/* FIXME: handle backspace */
}
Buffer[i] = UNICODE_NULL;
i = 0;
for (;;)
{
WCHAR readChar;
if (!ReadConsoleW(GetStdHandle(STD_INPUT_HANDLE), &readChar, 1, &count, NULL))
return FALSE;
if (readChar == '\r' || readChar == '\n')
{
/* End of string */
charToDisplay[0] = L'\n';
WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
charToDisplay,
wcslen(charToDisplay),
&count,
NULL);
break;
}
if (ShowString)
{
/* Display the char */
charToDisplay[0] = readChar;
WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
charToDisplay,
wcslen(charToDisplay),
&count,
NULL);
}
Buffer[i++] = readChar;
/* FIXME: buffer overflow if the user writes too many chars! */
UNREFERENCED_PARAMETER(BufferLength);
/* FIXME: handle backspace */
}
Buffer[i] = UNICODE_NULL;
if (!ShowString)
{
/* Still display the \n */
static LPCWSTR newLine = L"\n";
DWORD result;
WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
newLine,
wcslen(newLine),
&result,
NULL);
}
return TRUE;
if (!ShowString)
{
/* Still display the \n */
static LPCWSTR newLine = L"\n";
DWORD result;
WriteConsoleW(
GetStdHandle(STD_OUTPUT_HANDLE),
newLine,
wcslen(newLine),
&result,
NULL);
}
return TRUE;
}
static INT
TUILoggedOutSAS(
IN OUT PGINA_CONTEXT pgContext)
IN OUT PGINA_CONTEXT pgContext)
{
WCHAR UserName[256];
WCHAR Password[256];
WCHAR UserName[256];
WCHAR Password[256];
TRACE("TUILoggedOutSAS()\n");
TRACE("TUILoggedOutSAS()\n");
/* Ask the user for credentials */
if (!ReadString(IDS_ASKFORUSER, UserName, 256, TRUE))
return WLX_SAS_ACTION_NONE;
if (!ReadString(IDS_ASKFORPASSWORD, Password, 256, FALSE))
return WLX_SAS_ACTION_NONE;
/* Ask the user for credentials */
if (!ReadString(IDS_ASKFORUSER, UserName, 256, TRUE))
return WLX_SAS_ACTION_NONE;
if (!ReadString(IDS_ASKFORPASSWORD, Password, 256, FALSE))
return WLX_SAS_ACTION_NONE;
if (DoLoginTasks(pgContext, UserName, NULL, Password))
return WLX_SAS_ACTION_LOGON;
else
return WLX_SAS_ACTION_NONE;
if (DoLoginTasks(pgContext, UserName, NULL, Password))
return WLX_SAS_ACTION_LOGON;
else
return WLX_SAS_ACTION_NONE;
}
static INT
TUILockedSAS(
IN OUT PGINA_CONTEXT pgContext)
IN OUT PGINA_CONTEXT pgContext)
{
HANDLE hToken;
WCHAR UserName[256];
WCHAR Password[256];
HANDLE hToken;
WCHAR UserName[256];
WCHAR Password[256];
TRACE("TUILockedSAS()\n");
TRACE("TUILockedSAS()\n");
UNREFERENCED_PARAMETER(pgContext);
UNREFERENCED_PARAMETER(pgContext);
if (!DisplayResourceText(IDS_LOGGEDOUTSAS, TRUE))
return WLX_SAS_ACTION_UNLOCK_WKSTA;
if (!DisplayResourceText(IDS_LOGGEDOUTSAS, TRUE))
return WLX_SAS_ACTION_UNLOCK_WKSTA;
/* Ask the user for credentials */
if (!ReadString(IDS_ASKFORUSER, UserName, 256, TRUE))
return WLX_SAS_ACTION_NONE;
if (!ReadString(IDS_ASKFORPASSWORD, Password, 256, FALSE))
return WLX_SAS_ACTION_NONE;
/* Ask the user for credentials */
if (!ReadString(IDS_ASKFORUSER, UserName, 256, TRUE))
return WLX_SAS_ACTION_NONE;
if (!ReadString(IDS_ASKFORPASSWORD, Password, 256, FALSE))
return WLX_SAS_ACTION_NONE;
if (!LogonUserW(UserName, NULL, Password,
LOGON32_LOGON_UNLOCK,
LOGON32_PROVIDER_DEFAULT,
&hToken))
{
TRACE("LogonUserW() failed\n");
return WLX_SAS_ACTION_NONE;
}
CloseHandle(hToken);
return WLX_SAS_ACTION_UNLOCK_WKSTA;
if (!LogonUserW(UserName, NULL, Password,
LOGON32_LOGON_UNLOCK,
LOGON32_PROVIDER_DEFAULT,
&hToken))
{
TRACE("LogonUserW() failed\n");
return WLX_SAS_ACTION_NONE;
}
CloseHandle(hToken);
return WLX_SAS_ACTION_UNLOCK_WKSTA;
}
static VOID
TUIDisplayLockedNotice(
IN OUT PGINA_CONTEXT pgContext)
IN OUT PGINA_CONTEXT pgContext)
{
}
GINA_UI GinaTextUI = {
TUIInitialize,
TUIDisplayStatusMessage,
TUIRemoveStatusMessage,
TUIDisplaySASNotice,
TUILoggedOnSAS,
TUILoggedOutSAS,
TUILockedSAS,
TUIDisplayLockedNotice,
TUIInitialize,
TUIDisplayStatusMessage,
TUIRemoveStatusMessage,
TUIDisplaySASNotice,
TUILoggedOnSAS,
TUILoggedOutSAS,
TUILockedSAS,
TUIDisplayLockedNotice,
};