Author: hbelusca
Date: Mon Sep 26 22:42:56 2016
New Revision: 72821
URL:
http://svn.reactos.org/svn/reactos?rev=72821&view=rev
Log:
[USERINIT]
- Use explicit unicode functions where possible.
- Use ARRAYSIZE(foo) instead of sizeof(foo)/sizeof(foo[0]).
- Don't hardcode some buffer sizes.
- Try reducing level of code indentation in some functions.
- Make StartShell and StartInstaller return a boolean (TRUE: success; FALSE: failure).
Will be needed in the next commit.
- Remove a useless "#pragma warning".
Modified:
trunk/reactos/base/system/userinit/livecd.c
trunk/reactos/base/system/userinit/userinit.c
Modified: trunk/reactos/base/system/userinit/livecd.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/userinit/livec…
==============================================================================
--- trunk/reactos/base/system/userinit/livecd.c [iso-8859-1] (original)
+++ trunk/reactos/base/system/userinit/livecd.c [iso-8859-1] Mon Sep 26 22:42:56 2016
@@ -18,16 +18,16 @@
ZeroMemory(ImgInfo, sizeof(*ImgInfo));
- ImgInfo->hBitmap = LoadImage(hInstance,
- MAKEINTRESOURCE(IDB_ROSLOGO),
- IMAGE_BITMAP,
- 0,
- 0,
- LR_DEFAULTCOLOR);
+ ImgInfo->hBitmap = LoadImageW(hInstance,
+ MAKEINTRESOURCEW(IDB_ROSLOGO),
+ IMAGE_BITMAP,
+ 0,
+ 0,
+ LR_DEFAULTCOLOR);
if (ImgInfo->hBitmap != NULL)
{
- GetObject(ImgInfo->hBitmap, sizeof(BITMAP), &bitmap);
+ GetObject(ImgInfo->hBitmap, sizeof(bitmap), &bitmap);
ImgInfo->cxSource = bitmap.bmWidth;
ImgInfo->cySource = bitmap.bmHeight;
@@ -46,11 +46,11 @@
TRACE("IsLiveCD()\n");
- rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- REGSTR_PATH_CURRENT_CONTROL_SET,
- 0,
- KEY_QUERY_VALUE,
- &ControlKey);
+ rc = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+ REGSTR_PATH_CURRENT_CONTROL_SET,
+ 0,
+ KEY_QUERY_VALUE,
+ &ControlKey);
if (rc != ERROR_SUCCESS)
{
WARN("RegOpenKeyEx() failed with error %lu\n", rc);
@@ -110,7 +110,7 @@
{
if (bSpain == FALSE)
{
- LoadStringW(hInstance, IDS_SPAIN, lang, 255);
+ LoadStringW(hInstance, IDS_SPAIN, lang, ARRAYSIZE(lang));
bSpain = TRUE;
}
else
@@ -120,7 +120,7 @@
}
else
{
- GetLocaleInfoW(lcid, LOCALE_SLANGUAGE, lang, sizeof(lang)/sizeof(WCHAR));
+ GetLocaleInfoW(lcid, LOCALE_SLANGUAGE, lang, ARRAYSIZE(lang));
}
if (bNoShow == FALSE)
@@ -151,7 +151,7 @@
/* Select current locale */
/* or should it be System and not user? */
- GetLocaleInfoW(GetUserDefaultLCID(), LOCALE_SLANGUAGE, langSel,
sizeof(langSel)/sizeof(WCHAR));
+ GetLocaleInfoW(GetUserDefaultLCID(), LOCALE_SLANGUAGE, langSel, ARRAYSIZE(langSel));
SendMessageW(hList,
CB_SELECTSTRING,
@@ -170,13 +170,13 @@
DWORD dwBufLen;
WCHAR szBuf[MAX_PATH], szDispName[MAX_PATH], szIndex[MAX_PATH], szPath[MAX_PATH];
HANDLE hLib;
- unsigned i, j, k;
+ UINT i, j, k;
wsprintf(szBuf, L"SYSTEM\\CurrentControlSet\\Control\\Keyboard
Layouts\\%s", szLCID);
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, (LPCTSTR)szBuf, 0, KEY_QUERY_VALUE, &hKey)
== ERROR_SUCCESS)
{
- dwBufLen = sizeof(szBuf);
+ dwBufLen = sizeof(szDispName);
if (RegQueryValueExW(hKey, L"Layout Display Name", NULL, NULL,
(LPBYTE)szDispName, &dwBufLen) == ERROR_SUCCESS)
{
@@ -197,12 +197,12 @@
szDispName[i] = szDispName[i + 1];
}
- if (ExpandEnvironmentStringsW(szDispName, szPath, MAX_PATH))
+ if (ExpandEnvironmentStringsW(szDispName, szPath, ARRAYSIZE(szPath)))
{
hLib = LoadLibraryW(szPath);
if (hLib)
{
- if (LoadStringW(hLib, _wtoi(szIndex), szPath, sizeof(szPath) /
sizeof(WCHAR)) != 0)
+ if (LoadStringW(hLib, _wtoi(szIndex), szPath, ARRAYSIZE(szPath))
!= 0)
{
wcscpy(szName, szPath);
RegCloseKey(hKey);
@@ -323,7 +323,7 @@
while (TRUE)
{
- dwSize = sizeof(szLayoutId) / sizeof(WCHAR);
+ dwSize = ARRAYSIZE(szLayoutId);
lError = RegEnumKeyExW(hKey,
dwIndex,
@@ -458,10 +458,10 @@
i = 0;
while (LocaleData[i].pValue != NULL)
{
- if (GetLocaleInfo(lcid,
- LocaleData[i].LCType | LOCALE_NOUSEROVERRIDE,
- szBuffer,
- sizeof(szBuffer) / sizeof(WCHAR)))
+ if (GetLocaleInfoW(lcid,
+ LocaleData[i].LCType | LOCALE_NOUSEROVERRIDE,
+ szBuffer,
+ ARRAYSIZE(szBuffer)))
{
RegSetValueExW(hLocaleKey,
LocaleData[i].pValue,
@@ -515,7 +515,7 @@
if (lpDrawItem->CtlID == uCtlID)
{
- /* position image in centre of dialog */
+ /* Position image in centre of dialog */
left = (lpDrawItem->rcItem.right - pState->ImageInfo.cxSource) / 2;
hdcMem = CreateCompatibleDC(lpDrawItem->hDC);
@@ -549,17 +549,17 @@
PSTATE pState;
/* Retrieve pointer to the state */
- pState = (PSTATE)GetWindowLongPtr (hwndDlg, GWL_USERDATA);
+ pState = (PSTATE)GetWindowLongPtrW(hwndDlg, GWLP_USERDATA);
switch (uMsg)
{
case WM_INITDIALOG:
/* Save pointer to the global state */
pState = (PSTATE)lParam;
- SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pState);
+ SetWindowLongPtrW(hwndDlg, GWLP_USERDATA, (DWORD_PTR)pState);
/* Center the dialog window */
- CenterWindow (hwndDlg);
+ CenterWindow(hwndDlg);
/* Fill the language and keyboard layout lists */
CreateLanguagesList(GetDlgItem(hwndDlg, IDC_LANGUAGELIST));
@@ -666,14 +666,14 @@
PSTATE pState;
/* Retrieve pointer to the state */
- pState = (PSTATE)GetWindowLongPtr (hwndDlg, GWL_USERDATA);
+ pState = (PSTATE)GetWindowLongPtrW(hwndDlg, GWLP_USERDATA);
switch (uMsg)
{
case WM_INITDIALOG:
/* Save pointer to the state */
pState = (PSTATE)lParam;
- SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pState);
+ SetWindowLongPtrW(hwndDlg, GWLP_USERDATA, (DWORD_PTR)pState);
/* Center the dialog window */
CenterWindow(hwndDlg);
@@ -734,19 +734,19 @@
switch (pState->NextPage)
{
case LOCALEPAGE:
- DialogBoxParam(hInstance,
- MAKEINTRESOURCE(IDD_LOCALEPAGE),
- NULL,
- LocaleDlgProc,
- (LPARAM)pState);
+ DialogBoxParamW(hInstance,
+ MAKEINTRESOURCEW(IDD_LOCALEPAGE),
+ NULL,
+ LocaleDlgProc,
+ (LPARAM)pState);
break;
case STARTPAGE:
- DialogBoxParam(hInstance,
- MAKEINTRESOURCE(IDD_STARTPAGE),
- NULL,
- StartDlgProc,
- (LPARAM)pState);
+ DialogBoxParamW(hInstance,
+ MAKEINTRESOURCEW(IDD_STARTPAGE),
+ NULL,
+ StartDlgProc,
+ (LPARAM)pState);
break;
default:
Modified: trunk/reactos/base/system/userinit/userinit.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/userinit/useri…
==============================================================================
--- trunk/reactos/base/system/userinit/userinit.c [iso-8859-1] (original)
+++ trunk/reactos/base/system/userinit/userinit.c [iso-8859-1] Mon Sep 26 22:42:56 2016
@@ -73,14 +73,14 @@
return rc;
}
/* NULL-terminate the string */
- Value[cbData / sizeof(WCHAR)] = '\0';
+ Value[cbData / sizeof(WCHAR)] = L'\0';
*pValue = Value;
return ERROR_SUCCESS;
}
-static
-BOOL IsConsoleShell(VOID)
+static BOOL
+IsConsoleShell(VOID)
{
HKEY ControlKey = NULL;
LPWSTR SystemStartOptions = NULL;
@@ -133,15 +133,14 @@
return ret;
}
-static
-BOOL GetShell(
+static BOOL
+GetShell(
OUT WCHAR *CommandLine, /* must be at least MAX_PATH long */
IN HKEY hRootKey)
{
HKEY hKey;
DWORD Type, Size;
WCHAR Shell[MAX_PATH];
- BOOL Ret = FALSE;
BOOL ConsoleShell = IsConsoleShell();
LONG rc;
@@ -149,34 +148,38 @@
rc = RegOpenKeyExW(hRootKey, L"Software\\Microsoft\\Windows
NT\\CurrentVersion\\Winlogon",
0, KEY_QUERY_VALUE, &hKey);
- if (rc == ERROR_SUCCESS)
- {
- Size = MAX_PATH * sizeof(WCHAR);
- rc = RegQueryValueExW(hKey,
- ConsoleShell ? L"ConsoleShell" :
L"Shell",
- NULL,
- &Type,
- (LPBYTE)Shell,
- &Size);
- if (rc == ERROR_SUCCESS)
- {
- if ((Type == REG_SZ) || (Type == REG_EXPAND_SZ))
- {
- TRACE("Found command line %s\n", debugstr_w(Shell));
- wcscpy(CommandLine, Shell);
- Ret = TRUE;
- }
- else
- WARN("Wrong type %lu (expected %u or %u)\n", Type, REG_SZ,
REG_EXPAND_SZ);
- }
- else
- WARN("RegQueryValueEx() failed with error %lu\n", rc);
- RegCloseKey(hKey);
+ if (rc != ERROR_SUCCESS)
+ {
+ WARN("RegOpenKeyEx() failed with error %lu\n", rc);
+ return FALSE;
+ }
+
+ Size = sizeof(Shell);
+ rc = RegQueryValueExW(hKey,
+ ConsoleShell ? L"ConsoleShell" : L"Shell",
+ NULL,
+ &Type,
+ (LPBYTE)Shell,
+ &Size);
+ RegCloseKey(hKey);
+
+ if (rc != ERROR_SUCCESS)
+ {
+ WARN("RegQueryValueEx() failed with error %lu\n", rc);
+ return FALSE;
+ }
+
+ if ((Type == REG_SZ) || (Type == REG_EXPAND_SZ))
+ {
+ TRACE("Found command line %s\n", debugstr_w(Shell));
+ wcscpy(CommandLine, Shell);
+ return TRUE;
}
else
- WARN("RegOpenKeyEx() failed with error %lu\n", rc);
-
- return Ret;
+ {
+ WARN("Wrong type %lu (expected %u or %u)\n", Type, REG_SZ,
REG_EXPAND_SZ);
+ return FALSE;
+ }
}
static VOID
@@ -212,7 +215,7 @@
{
if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&
(findData.nFileSizeHigh || findData.nFileSizeLow))
{
- ZeroMemory(&ExecInfo, sizeof(SHELLEXECUTEINFOW));
+ ZeroMemory(&ExecInfo, sizeof(ExecInfo));
ExecInfo.cbSize = sizeof(ExecInfo);
wcscpy(&szPath[len+1], findData.cFileName);
ExecInfo.lpVerb = L"open";
@@ -242,18 +245,18 @@
si.wShowWindow = SW_SHOWNORMAL;
ZeroMemory(&pi, sizeof(pi));
- ExpandEnvironmentStrings(Shell, ExpandedShell, MAX_PATH);
-
- if (!CreateProcess(NULL,
- ExpandedShell,
- NULL,
- NULL,
- FALSE,
- NORMAL_PRIORITY_CLASS,
- NULL,
- NULL,
- &si,
- &pi))
+ ExpandEnvironmentStringsW(Shell, ExpandedShell, ARRAYSIZE(ExpandedShell));
+
+ if (!CreateProcessW(NULL,
+ ExpandedShell,
+ NULL,
+ NULL,
+ FALSE,
+ NORMAL_PRIORITY_CLASS,
+ NULL,
+ NULL,
+ &si,
+ &pi))
{
WARN("CreateProcess() failed with error %lu\n", GetLastError());
return FALSE;
@@ -266,8 +269,8 @@
return TRUE;
}
-static
-VOID StartShell(VOID)
+static BOOL
+StartShell(VOID)
{
WCHAR Shell[MAX_PATH];
TCHAR szMsg[RC_STRING_MAX_SIZE];
@@ -282,38 +285,41 @@
rc = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
L"SYSTEM\\CurrentControlSet\\Control\\SafeBoot\\Option",
0, KEY_QUERY_VALUE, &hKey);
- if(rc == ERROR_SUCCESS)
+ if (rc == ERROR_SUCCESS)
{
Size = sizeof(Value);
rc = RegQueryValueExW(hKey, L"UseAlternateShell", NULL,
&Type, (LPBYTE)&Value, &Size);
- if(rc == ERROR_SUCCESS)
+ RegCloseKey(hKey);
+
+ if (rc == ERROR_SUCCESS)
{
- RegCloseKey(hKey);
- if(Type == REG_DWORD)
+ if (Type == REG_DWORD)
{
- if(Value)
+ if (Value)
{
/* Safe Mode Alternate Shell required */
rc = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
L"SYSTEM\\CurrentControlSet\\Control\\SafeBoot",
0, KEY_READ, &hKey);
- if(rc == ERROR_SUCCESS)
+ if (rc == ERROR_SUCCESS)
{
- Size = MAX_PATH * sizeof(WCHAR);
+ Size = sizeof(Shell);
rc = RegQueryValueExW(hKey, L"AlternateShell", NULL,
&Type, (LPBYTE)Shell, &Size);
- if(rc == ERROR_SUCCESS)
+ RegCloseKey(hKey);
+
+ if (rc == ERROR_SUCCESS)
{
- RegCloseKey(hKey);
if ((Type == REG_SZ) || (Type == REG_EXPAND_SZ))
{
TRACE("Key located - %s\n",
debugstr_w(Shell));
+
/* Try to run alternate shell */
if (TryToStartShell(Shell))
{
TRACE("Alternate shell started (Safe
Mode)\n");
- return;
+ return TRUE;
}
}
else
@@ -335,41 +341,45 @@
}
}
}
+
/* Try to run shell in user key */
if (GetShell(Shell, HKEY_CURRENT_USER) && TryToStartShell(Shell))
{
TRACE("Started shell from HKEY_CURRENT_USER\n");
- return;
+ return TRUE;
}
/* Try to run shell in local machine key */
if (GetShell(Shell, HKEY_LOCAL_MACHINE) && TryToStartShell(Shell))
{
TRACE("Started shell from HKEY_LOCAL_MACHINE\n");
- return;
+ return TRUE;
}
/* Try default shell */
if (IsConsoleShell())
{
- if (GetSystemDirectory(Shell, MAX_PATH - 8))
+ if (GetSystemDirectoryW(Shell, ARRAYSIZE(Shell) - 8))
wcscat(Shell, L"\\cmd.exe");
else
wcscpy(Shell, L"cmd.exe");
}
else
{
- if (GetWindowsDirectory(Shell, MAX_PATH - 13))
+ if (GetWindowsDirectoryW(Shell, ARRAYSIZE(Shell) - 13))
wcscat(Shell, L"\\explorer.exe");
else
wcscpy(Shell, L"explorer.exe");
}
+
if (!TryToStartShell(Shell))
{
WARN("Failed to start default shell %s\n", debugstr_w(Shell));
- LoadString( GetModuleHandle(NULL), IDS_SHELL_FAIL, szMsg, sizeof(szMsg) /
sizeof(szMsg[0]));
- MessageBox(0, szMsg, NULL, 0);
- }
+ LoadString( GetModuleHandle(NULL), IDS_SHELL_FAIL, szMsg, ARRAYSIZE(szMsg));
+ MessageBox(NULL, szMsg, NULL, MB_OK);
+ return FALSE;
+ }
+ return TRUE;
}
const WCHAR g_RegColorNames[][32] = {
@@ -405,10 +415,9 @@
L"MenuHilight", /* 29 = COLOR_MENUHILIGHT */
L"MenuBar" /* 30 = COLOR_MENUBAR */
};
-#define NUM_SYSCOLORS (sizeof(g_RegColorNames) / sizeof(g_RegColorNames[0]))
-
-static
-COLORREF StrToColorref(
+
+static COLORREF
+StrToColorref(
IN LPWSTR lpszCol)
{
BYTE rgb[3];
@@ -421,8 +430,8 @@
return RGB(rgb[0], rgb[1], rgb[2]);
}
-static
-VOID SetUserSysColors(VOID)
+static VOID
+SetUserSysColors(VOID)
{
HKEY hKey;
INT i;
@@ -433,32 +442,36 @@
TRACE("()\n");
- rc = RegOpenKeyEx(HKEY_CURRENT_USER, REGSTR_PATH_COLORS,
- 0, KEY_QUERY_VALUE, &hKey);
+ rc = RegOpenKeyExW(HKEY_CURRENT_USER, REGSTR_PATH_COLORS,
+ 0, KEY_QUERY_VALUE, &hKey);
if (rc != ERROR_SUCCESS)
{
WARN("RegOpenKeyEx() failed with error %lu\n", rc);
return;
}
- for(i = 0; i < NUM_SYSCOLORS; i++)
+
+ for (i = 0; i < ARRAYSIZE(g_RegColorNames); i++)
{
Size = sizeof(szColor);
- rc = RegQueryValueEx(hKey, g_RegColorNames[i], NULL, &Type,
- (LPBYTE)szColor, &Size);
+ rc = RegQueryValueExW(hKey, g_RegColorNames[i], NULL, &Type,
+ (LPBYTE)szColor, &Size);
if (rc == ERROR_SUCCESS && Type == REG_SZ)
{
crColor = StrToColorref(szColor);
SetSysColors(1, &i, &crColor);
}
else
+ {
WARN("RegQueryValueEx(%s) failed with error %lu\n",
debugstr_w(g_RegColorNames[i]), rc);
- }
+ }
+ }
+
RegCloseKey(hKey);
}
-static
-VOID SetUserWallpaper(VOID)
+static VOID
+SetUserWallpaper(VOID)
{
HKEY hKey;
DWORD Type, Size;
@@ -467,39 +480,41 @@
TRACE("()\n");
- rc = RegOpenKeyEx(HKEY_CURRENT_USER, REGSTR_PATH_DESKTOP,
- 0, KEY_QUERY_VALUE, &hKey);
- if (rc == ERROR_SUCCESS)
- {
- Size = sizeof(szWallpaper);
- rc = RegQueryValueEx(hKey,
- L"Wallpaper",
- NULL,
- &Type,
- (LPBYTE)szWallpaper,
- &Size);
- if (rc == ERROR_SUCCESS && Type == REG_SZ)
- {
- ExpandEnvironmentStrings(szWallpaper, szWallpaper, MAX_PATH);
- TRACE("Using wallpaper %s\n", debugstr_w(szWallpaper));
-
- /* Load and change the wallpaper */
- SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, szWallpaper, SPIF_SENDCHANGE);
- }
- else
- {
- /* remove the wallpaper */
- TRACE("No wallpaper set in registry (error %lu)\n", rc);
- SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, NULL, SPIF_SENDCHANGE);
- }
- RegCloseKey(hKey);
+ rc = RegOpenKeyExW(HKEY_CURRENT_USER, REGSTR_PATH_DESKTOP,
+ 0, KEY_QUERY_VALUE, &hKey);
+ if (rc != ERROR_SUCCESS)
+ {
+ WARN("RegOpenKeyEx() failed with error %lu\n", rc);
+ return;
+ }
+
+ Size = sizeof(szWallpaper);
+ rc = RegQueryValueExW(hKey,
+ L"Wallpaper",
+ NULL,
+ &Type,
+ (LPBYTE)szWallpaper,
+ &Size);
+ RegCloseKey(hKey);
+
+ if (rc == ERROR_SUCCESS && Type == REG_SZ)
+ {
+ ExpandEnvironmentStringsW(szWallpaper, szWallpaper, ARRAYSIZE(szWallpaper));
+ TRACE("Using wallpaper %s\n", debugstr_w(szWallpaper));
+
+ /* Load and change the wallpaper */
+ SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, szWallpaper, SPIF_SENDCHANGE);
}
else
- WARN("RegOpenKeyEx() failed with error %lu\n", rc);
-}
-
-static
-VOID SetUserSettings(VOID)
+ {
+ /* Remove the wallpaper */
+ TRACE("No wallpaper set in registry (error %lu)\n", rc);
+ SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, NULL, SPIF_SENDCHANGE);
+ }
+}
+
+static VOID
+SetUserSettings(VOID)
{
TRACE("()\n");
@@ -518,29 +533,29 @@
TRACE("()\n");
- hModule = LoadLibrary(L"setupapi.dll");
- if (hModule)
- {
- CMP_Report_LogOn = (PCMP_REPORT_LOGON)GetProcAddress(hModule,
"CMP_Report_LogOn");
- if (CMP_Report_LogOn)
- CMP_Report_LogOn(CMP_MAGIC, GetCurrentProcessId());
- else
- WARN("GetProcAddress() failed\n");
-
- FreeLibrary(hModule);
- }
+ hModule = LoadLibraryW(L"setupapi.dll");
+ if (!hModule)
+ {
+ WARN("LoadLibrary() failed with error %lu\n", GetLastError());
+ return;
+ }
+
+ CMP_Report_LogOn = (PCMP_REPORT_LOGON)GetProcAddress(hModule,
"CMP_Report_LogOn");
+ if (CMP_Report_LogOn)
+ CMP_Report_LogOn(CMP_MAGIC, GetCurrentProcessId());
else
- WARN("LoadLibrary() failed with error %lu\n", GetLastError());
-}
-
-static
-VOID
+ WARN("GetProcAddress() failed\n");
+
+ FreeLibrary(hModule);
+}
+
+static BOOL
StartInstaller(VOID)
{
WCHAR Shell[MAX_PATH];
WCHAR szMsg[RC_STRING_MAX_SIZE];
- if (GetWindowsDirectory(Shell, MAX_PATH - 12))
+ if (GetWindowsDirectoryW(Shell, ARRAYSIZE(Shell) - 12))
wcscat(Shell, L"\\reactos.exe");
else
wcscpy(Shell, L"reactos.exe");
@@ -548,15 +563,13 @@
if (!TryToStartShell(Shell))
{
ERR("Failed to start the installer: %s\n", debugstr_w(Shell));
- LoadStringW(GetModuleHandle(NULL), IDS_INSTALLER_FAIL, szMsg, sizeof(szMsg) /
sizeof(szMsg[0]));
- MessageBoxW(0, szMsg, NULL, 0);
- }
-}
-
-
-#ifdef _MSC_VER
-#pragma warning(disable : 4100)
-#endif /* _MSC_VER */
+ LoadStringW(GetModuleHandle(NULL), IDS_INSTALLER_FAIL, szMsg, ARRAYSIZE(szMsg));
+ MessageBoxW(NULL, szMsg, NULL, MB_OK);
+ return FALSE;
+ }
+ return TRUE;
+}
+
int WINAPI
wWinMain(IN HINSTANCE hInst,