#define NDEBUG
#include <debug.h>
-#define VMWINST
+#undef VMWINST
#define PM_REGISTRATION_NOTIFY (WM_APP + 1)
/* Private Message used to communicate progress from the background
static BOOL
RunControlPanelApplet(HWND hwnd, PCWSTR pwszCPLParameters)
{
+ MSG msg;
if (pwszCPLParameters)
{
STARTUPINFOW StartupInfo;
return FALSE;
}
- WaitForSingleObject(ProcessInformation.hProcess, INFINITE);
+ while((MsgWaitForMultipleObjects(1, ProcessInformation.hProcess, FALSE, INFINITE, QS_ALLINPUT|QS_ALLPOSTMESSAGE )) != WAIT_OBJECT_0)
+ {
+ while(PeekMessageW(&msg, NULL, 0, 0, PM_REMOVE))
+ {
+ TranslateMessage(&msg);
+ DispatchMessageW(&msg);
+ }
+ }
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
return TRUE;
BOOL bFound = FALSE;
unsigned long iLanguageID;
- if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
- L"SYSTEM\\CurrentControlSet\\Control\\NLS\\Language",
- 0,
- KEY_ALL_ACCESS,
- &hKey))
- return FALSE;
-
- dwValueSize = 9 * sizeof(WCHAR);
- if (RegQueryValueExW(hKey,
- L"Default",
- NULL,
- NULL,
- (LPBYTE)szLanguageIdString,
- &dwValueSize))
+ if (*lpIndex == -1)
{
+ *lpIndex = 85; /* fallback to GMT time zone */
+
+ if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+ L"SYSTEM\\CurrentControlSet\\Control\\NLS\\Language",
+ 0,
+ KEY_ALL_ACCESS,
+ &hKey))
+ return FALSE;
+
+ dwValueSize = 9 * sizeof(WCHAR);
+ if (RegQueryValueExW(hKey,
+ L"Default",
+ NULL,
+ NULL,
+ (LPBYTE)szLanguageIdString,
+ &dwValueSize))
+ {
+ RegCloseKey(hKey);
+ return FALSE;
+ }
+
+ iLanguageID = wcstoul(szLanguageIdString, NULL, 16);
RegCloseKey(hKey);
- return FALSE;
}
-
- iLanguageID = wcstoul(szLanguageIdString, NULL, 16);
- RegCloseKey(hKey);
+ else
+ {
+ iLanguageID = *lpIndex;
+ }
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones",
else
{
ShowTimeZoneList(GetDlgItem(hwndDlg, IDC_TIMEZONELIST),
- SetupData, 85 /* GMT time zone */);
+ SetupData, -1);
SendDlgItemMessage(hwndDlg, IDC_AUTODAYLIGHT, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
}
RegistrationData->hwndDlg = hwndDlg;
RegistrationData->DllCount = DllCount;
RegistrationThread = CreateThread(NULL, 0, RegistrationProc,
- (LPVOID) RegistrationData, 0, NULL);
+ RegistrationData, 0, NULL);
if (RegistrationThread != NULL)
{
CloseHandle(RegistrationThread);
/* Get pointer to the global setup data */
PSETUPDATA SetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam;
- /* Run the Wine Gecko prompt */
- Control_RunDLLW(GetDesktopWindow(), 0, L"appwiz.cpl install_gecko", SW_SHOW);
+ if (!SetupData->UnattendSetup || !SetupData->DisableGeckoInst)
+ {
+ /* Run the Wine Gecko prompt */
+ Control_RunDLLW(hwndDlg, 0, L"appwiz.cpl install_gecko", SW_SHOW);
+ }
/* Set title font */
SendDlgItemMessage(hwndDlg,
else
SetupData.DisableVmwInst = 0;
}
+ else if (!wcscmp(szName, L"DisableGeckoInst"))
+ {
+ if(!wcscmp(szValue, L"yes"))
+ SetupData.DisableGeckoInst = 1;
+ else
+ SetupData.DisableGeckoInst = 0;
+ }
}
while (SetupFindNextLine(&InfContext, &InfContext));
-
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce",
0,
while (GetMessage(&msg, NULL, 0, 0))
{
- if(!IsDialogMessage(hWnd, &msg))
+ if (!IsDialogMessage(hWnd, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);