https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2ae45852502a588f9a3b1…
commit 2ae45852502a588f9a3b1be69da388bbc587567e
Author: Eric Kohl <eric.kohl(a)reactos.org>
AuthorDate: Mon Apr 2 12:47:15 2018 +0200
Commit: Eric Kohl <eric.kohl(a)reactos.org>
CommitDate: Mon Apr 2 12:47:15 2018 +0200
[WINLOGON] Clean up part 2
- Replace the UNICODE_STRING usMessage by a PWSTR pszMessage.
- Use the "%02d:%02d:%02d" time format and get rid of the safe string printf
because the string will NEVER be longer than 8 characters.
- Rename the timer id constant because it is NOT a resource id.
- Rename variables according to the coding style.
---
base/system/winlogon/shutdown.c | 68 +++++++++++++++++++++++------------------
1 file changed, 38 insertions(+), 30 deletions(-)
diff --git a/base/system/winlogon/shutdown.c b/base/system/winlogon/shutdown.c
index 71b1f6052b..8a8a0c9fbd 100644
--- a/base/system/winlogon/shutdown.c
+++ b/base/system/winlogon/shutdown.c
@@ -10,19 +10,19 @@
#include "winlogon.h"
-#include <ntstrsafe.h>
#include <rpc.h>
#include <winreg_s.h>
/* DEFINES *******************************************************************/
-#define IDT_SYSSHUTDOWN 2000
+#define SHUTDOWN_TIMER_ID 2000
+
/* STRUCTS *******************************************************************/
typedef struct _SYS_SHUTDOWN_PARAMS
{
- UNICODE_STRING usMessage;
+ PWSTR pszMessage;
ULONG dwTimeout;
BOOLEAN bRebootAfterShutdown;
BOOLEAN bForceAppsClosed;
@@ -32,10 +32,12 @@ typedef struct _SYS_SHUTDOWN_PARAMS
BOOLEAN bShuttingDown;
} SYS_SHUTDOWN_PARAMS, *PSYS_SHUTDOWN_PARAMS;
+
/* GLOBALS *******************************************************************/
SYS_SHUTDOWN_PARAMS g_ShutdownParams;
+
/* FUNCTIONS *****************************************************************/
static
@@ -44,17 +46,17 @@ OnTimer(
HWND hwndDlg,
PSYS_SHUTDOWN_PARAMS pShutdownParams)
{
- WCHAR strbuf[34];
- INT seconds, minutes, hours;
+ WCHAR szBuffer[10];
+ INT iSeconds, iMinutes, iHours;
- seconds = (INT)pShutdownParams->dwTimeout;
- hours = seconds / 3600;
- seconds -= hours * 3600;
- minutes = seconds / 60;
- seconds -= minutes * 60;
+ iSeconds = (INT)pShutdownParams->dwTimeout;
+ iHours = iSeconds / 3600;
+ iSeconds -= iHours * 3600;
+ iMinutes = iSeconds / 60;
+ iSeconds -= iMinutes * 60;
- RtlStringCbPrintfW(strbuf, sizeof(strbuf), L"%d:%d:%d", hours, minutes,
seconds);
- SetDlgItemTextW(hwndDlg, IDC_SHUTDOWNTIMELEFT, strbuf);
+ swprintf(szBuffer, L"%02d:%02d:%02d", iHours, iMinutes, iSeconds);
+ SetDlgItemTextW(hwndDlg, IDC_SHUTDOWNTIMELEFT, szBuffer);
if (pShutdownParams->dwTimeout == 0)
{
@@ -89,28 +91,30 @@ ShutdownDialogProc(
pShutdownParams->hShutdownDialog = hwndDlg;
- if (pShutdownParams->usMessage.Length)
+ if (pShutdownParams->pszMessage)
{
SetDlgItemTextW(hwndDlg,
IDC_SHUTDOWNCOMMENT,
- pShutdownParams->usMessage.Buffer);
+ pShutdownParams->pszMessage);
}
+
RemoveMenu(GetSystemMenu(hwndDlg, FALSE), SC_CLOSE, MF_BYCOMMAND);
SetWindowPos(hwndDlg, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
+
PostMessage(hwndDlg, WM_TIMER, 0, 0);
- SetTimer(hwndDlg, IDT_SYSSHUTDOWN, 1000, NULL);
+ SetTimer(hwndDlg, SHUTDOWN_TIMER_ID, 1000, NULL);
break;
case WM_CLOSE:
pShutdownParams->hShutdownDialog = NULL;
pShutdownParams->bShuttingDown = FALSE;
- KillTimer(hwndDlg, IDT_SYSSHUTDOWN);
+ KillTimer(hwndDlg, SHUTDOWN_TIMER_ID);
- if (pShutdownParams->usMessage.Buffer)
+ if (pShutdownParams->pszMessage)
{
- HeapFree(GetProcessHeap(), 0, pShutdownParams->usMessage.Buffer);
- RtlInitEmptyUnicodeString(&pShutdownParams->usMessage, NULL, 0);
+ HeapFree(GetProcessHeap(), 0, pShutdownParams->pszMessage);
+ pShutdownParams->pszMessage = NULL;
}
EndDialog(hwndDlg, 0);
@@ -149,11 +153,12 @@ InitiateSystemShutdownThread(
return ERROR_SUCCESS;
}
- if (pShutdownParams->usMessage.Buffer)
+ if (pShutdownParams->pszMessage)
{
- HeapFree(GetProcessHeap(), 0, pShutdownParams->usMessage.Buffer);
- RtlInitEmptyUnicodeString(&pShutdownParams->usMessage, NULL, 0);
+ HeapFree(GetProcessHeap(), 0, pShutdownParams->pszMessage);
+ pShutdownParams->pszMessage = NULL;
}
+
pShutdownParams->bShuttingDown = FALSE;
return GetLastError();
@@ -185,19 +190,22 @@ StartSystemShutdown(
if (lpMessage && lpMessage->Length && lpMessage->Buffer)
{
- g_ShutdownParams.usMessage.Buffer = HeapAlloc(GetProcessHeap(), 0,
lpMessage->Length + sizeof(UNICODE_NULL));
- if (g_ShutdownParams.usMessage.Buffer == NULL)
+ g_ShutdownParams.pszMessage = HeapAlloc(GetProcessHeap(),
+ HEAP_ZERO_MEMORY,
+ lpMessage->Length +
sizeof(UNICODE_NULL));
+ if (g_ShutdownParams.pszMessage == NULL)
{
g_ShutdownParams.bShuttingDown = FALSE;
return GetLastError();
}
- RtlInitEmptyUnicodeString(&g_ShutdownParams.usMessage,
g_ShutdownParams.usMessage.Buffer, lpMessage->Length + sizeof(UNICODE_NULL));
- RtlCopyUnicodeString(&(g_ShutdownParams.usMessage),
(PUNICODE_STRING)lpMessage);
+ wcsncpy(g_ShutdownParams.pszMessage,
+ lpMessage->Buffer,
+ lpMessage->Length / sizeof(WCHAR));
}
else
{
- RtlInitEmptyUnicodeString(&g_ShutdownParams.usMessage, NULL, 0);
+ g_ShutdownParams.pszMessage = NULL;
}
g_ShutdownParams.dwTimeout = dwTimeout;
@@ -212,10 +220,10 @@ StartSystemShutdown(
return ERROR_SUCCESS;
}
- if (g_ShutdownParams.usMessage.Buffer)
+ if (g_ShutdownParams.pszMessage)
{
- HeapFree(GetProcessHeap(), 0, g_ShutdownParams.usMessage.Buffer);
- RtlInitEmptyUnicodeString(&g_ShutdownParams.usMessage, NULL, 0);
+ HeapFree(GetProcessHeap(), 0, g_ShutdownParams.pszMessage);
+ g_ShutdownParams.pszMessage = NULL;
}
g_ShutdownParams.bShuttingDown = FALSE;