windows-nt/Source/XPSP1/NT/termsrv/clcreator/confsett.c
2020-09-26 16:20:57 +08:00

454 lines
11 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
CONFSETT.C
Abstract:
Setting Confirmation screen
Author:
Bob Watson (a-robw)
Revision History:
17 Feb 94 Written
--*/
//
// Windows Include Files
//
#include <windows.h>
#include <stdio.h>
#include <malloc.h>
#include <tchar.h> // unicode macros
//
// app include files
//
#include "otnboot.h"
#include "otnbtdlg.h"
static
VOID
SetConfirmDiskString (
IN HWND hwndDlg
)
/*++
Routine Description:
Formats and outputs information for display in confirmation dialog box
Arguments:
IN HWND hwndDlg
handle to dialog box that will display the information.
Return Value:
None
--*/
{
LPTSTR szTextString;
szTextString = GlobalAlloc (GPTR, SMALL_BUFFER_SIZE);
if (szTextString != NULL) {
#ifdef JAPAN
// fixed kkntbug #12382
// NCAdmin:"[] Make Japanese startup disks" is not functioning.
if (bJpnDisk)
_stprintf (szTextString,
GetStringResource (FMT_LOAD_NET_CLIENT1),
GetStringResource (
(pAppInfo->mtBootDriveType == F3_1Pt44_512) ?
CSZ_35_HD : CSZ_525_HD),
pAppInfo->szBootFilesPath);
else
#endif
_stprintf (szTextString,
GetStringResource (FMT_LOAD_NET_CLIENT),
GetStringResource (
(pAppInfo->mtBootDriveType == F3_1Pt44_512) ?
CSZ_35_HD : CSZ_525_HD),
pAppInfo->szBootFilesPath);
SetDlgItemText (hwndDlg, NCDU_CONFIRM_DISK_FORMAT, szTextString);
FREE_IF_ALLOC (szTextString);
}
}
static
VOID
SetConfirmTargetString (
IN HWND hwndDlg
)
/*++
Routine Description:
Formats and outputs information for display in confirmation dialog box
Arguments:
IN HWND hwndDlg
handle to dialog box that will display the information.
Return Value:
None
--*/
{
LPTSTR szTextString;
LPTSTR szTempString;
szTextString = GlobalAlloc (GPTR, SMALL_BUFFER_SIZE);
szTempString = GlobalAlloc (GPTR, SMALL_BUFFER_SIZE);
if ((szTextString != NULL) && (szTempString != NULL)) {
_stprintf (szTextString,
GetStringResource (FMT_CONFIRM_TARGET),
pAppInfo->piFloppyProtocol.szName,
pAppInfo->niNetCard.szName);
if (_tcsnicmp(pAppInfo->piFloppyProtocol.szName, cszTCP, lstrlen(cszTCP)) == 0) {
if (pAppInfo->bUseDhcp) {
lstrcat (szTextString, GetStringResource(FMT_USING_DHCP));
} else {
// display TCP/IP information.
_stprintf (szTempString,
GetStringResource (FMT_CONFIRM_FLOPPY_IP),
pAppInfo->tiTcpIpInfo.IpAddr[0],
pAppInfo->tiTcpIpInfo.IpAddr[1],
pAppInfo->tiTcpIpInfo.IpAddr[2],
pAppInfo->tiTcpIpInfo.IpAddr[3],
pAppInfo->tiTcpIpInfo.SubNetMask[0],
pAppInfo->tiTcpIpInfo.SubNetMask[1],
pAppInfo->tiTcpIpInfo.SubNetMask[2],
pAppInfo->tiTcpIpInfo.SubNetMask[3],
pAppInfo->tiTcpIpInfo.DefaultGateway[0],
pAppInfo->tiTcpIpInfo.DefaultGateway[1],
pAppInfo->tiTcpIpInfo.DefaultGateway[2],
pAppInfo->tiTcpIpInfo.DefaultGateway[3]);
lstrcat (szTextString, szTempString);
}
}
_stprintf (szTempString,
GetStringResource (FMT_INSTALL_TARGET_CLIENT),
pAppInfo->piTargetProtocol.szName);
lstrcat (szTextString, szTempString);
SetDlgItemText (hwndDlg, NCDU_CONFIRM_TARGET_NET, szTextString);
}
FREE_IF_ALLOC (szTextString);
FREE_IF_ALLOC (szTempString);
}
static
VOID
SetConfirmProtocolString (
IN HWND hwndDlg
)
/*++
Routine Description:
Formats and outputs information for display in confirmation dialog box
Arguments:
IN HWND hwndDlg
handle to dialog box that will display the information.
Return Value:
None
--*/
{
LPTSTR szTextString;
szTextString = GlobalAlloc (GPTR, SMALL_BUFFER_SIZE);
if (szTextString != NULL) {
if (pAppInfo->szUsername[0] != 0) {
_stprintf (szTextString,
GetStringResource (FMT_LOGON_USERNAME),
pAppInfo->szUsername,
pAppInfo->szDomain);
} else {
_stprintf (szTextString,
GetStringResource (FMT_PROMPT_USERNAME),
pAppInfo->szDomain);
}
SetDlgItemText (hwndDlg, NCDU_CONFIRM_PROTOCOL, szTextString);
FREE_IF_ALLOC (szTextString);
}
}
static
BOOL
ConfirmSettingsDlg_WM_INITDIALOG (
IN HWND hwndDlg,
IN WPARAM wParam,
IN LPARAM lParam
)
/*++
Routine Description:
Dialog Box initialization routine:
calls routines that format the currently selected options
for display in the static text fields of the dialog box
Arguments:
IN HWND hwndDlg
Handle to dialog box window
IN WPARAM wParam
Not Used
IN LPARAM lParam
Not Used
Return Value:
FALSE because focus is set in this routin to the OK button
--*/
{
// prepare menu and locate window
RemoveMaximizeFromSysMenu (hwndDlg);
PositionWindow (hwndDlg);
//build display strings
SetConfirmDiskString(hwndDlg);
SetConfirmTargetString(hwndDlg);
SetConfirmProtocolString(hwndDlg);
// clear old Dialog and register current
PostMessage (GetParent(hwndDlg), NCDU_CLEAR_DLG, (WPARAM)hwndDlg, IDOK);
PostMessage (GetParent(hwndDlg), NCDU_REGISTER_DLG,
NCDU_CONFIRM_BOOTDISK_DLG, (LPARAM)hwndDlg);
// set cursor & focus
SetCursor (LoadCursor(NULL, IDC_ARROW));
SetFocus (GetDlgItem(hwndDlg, IDOK));
return FALSE;
}
static
BOOL
ConfirmSettingsDlg_IDOK (
IN HWND hwndDlg
)
/*++
Routine Description:
Called when user selects the OK button in the dialog box.
Validates the destination path is a bootable floppy and
presents message box to user if it's not.
if all tests are succeessful, then the copy file dialog is
called next. If not, the user is returned to this dialog box
(mainly so they can press the cancel button and return to
a previous screen and make corrections.)
Arguments:
IN HWND hwndDlg
handle to dialog box window
Return Value:
TRUE, always.
--*/
{
int nMbResult;
MEDIA_TYPE mtDest;
// make sure the target media is present
if (!MediaPresent (pAppInfo->szBootFilesPath, TRUE)) {
// media is NOT present so display message and return to dialog message
DisplayMessageBox (
hwndDlg,
NCDU_NO_MEDIA,
0,
MB_OK_TASK_EXCL);
return TRUE; // message processed and return to dialog
}
// check destination boot disk one last time before copying files
if (!IsBootDisk (pAppInfo->szBootFilesPath)) {
nMbResult = DisplayMessageBox (
hwndDlg,
NCDU_DRIVE_NOT_BOOTDISK,
0,
MB_OKCANCEL_TASK_EXCL);
if (nMbResult == IDOK) {
// the message prompts them to insert a bootable disk
// then press OK. see if they did...
if (!IsBootDisk (pAppInfo->szBootFilesPath)) {
// they still have a "regular" disk so add a message
// to the exit list
AddMessageToExitList (pAppInfo, NCDU_COPY_TO_FLOPPY);
} // else they put in the correct disk so continue
} else {
return TRUE; // return now so they can change floppys
}
}
// check destination drive against boot type
mtDest = GetDriveTypeFromPath (pAppInfo->szBootFilesPath);
if (mtDest == Unknown) {
AddMessageToExitList (pAppInfo, NCDU_CONFIRM_FLOPPY);
} else if (mtDest != pAppInfo->mtBootDriveType) {
AddMessageToExitList (pAppInfo, NCDU_COPY_TO_FLOPPY);
}
if (pAppInfo->itInstall == OverTheNetInstall) {
AddMessageToExitList (pAppInfo, NCDU_USERNAME_ACCESS);
AddMessageToExitList (pAppInfo, NCDU_MAKE_COMP_NAME);
if (GetBootDiskDosVersion (pAppInfo->szBootFilesPath) < 5) {
AddMessageToExitList (pAppInfo, NCDU_INSUF_MEM_AT_BOOT);
}
}
PostMessage (GetParent(hwndDlg), NCDU_SHOW_COPYING_DLG, 0, 0);
SetCursor(LoadCursor(NULL, IDC_WAIT));
return TRUE;
}
static
BOOL
ConfirmSettingsDlg_WM_COMMAND (
IN HWND hwndDlg,
IN WPARAM wParam,
IN LPARAM lParam
)
/*++
Routine Description:
WM_COMMAND message dispatching routine.
Dispatches IDCANCEL and IDOK button messages, sends all others
to the DefDlgProc.
Arguments:
IN HWND hwndDlg
Handle to dialog box window
IN WPARAM wParam
windows message wParam arg
IN LPARAM lParam
windows message lParam arg
Return Value:
TRUE if message is not dispatched (i.e. not processed)
othewise the value returned by the called routine.
--*/
{
switch (LOWORD(wParam)) {
case IDCANCEL:
switch (HIWORD(wParam)) {
case BN_CLICKED:
PostMessage (GetParent(hwndDlg), NCDU_SHOW_SERVER_CFG_DLG, 0, 0);
SetCursor(LoadCursor(NULL, IDC_WAIT));
return TRUE;
default:
return FALSE;
}
case IDOK:
switch (HIWORD(wParam)) {
case BN_CLICKED:
return ConfirmSettingsDlg_IDOK (hwndDlg);
default:
return FALSE;
}
default:
return FALSE;
}
}
INT_PTR CALLBACK
ConfirmSettingsDlgProc (
IN HWND hwndDlg,
IN UINT message,
IN WPARAM wParam,
IN LPARAM lParam
)
/*++
Routine Description:
main dialog proc for this dialog box.
Processes the following messages:
WM_INITDIALOG: dialog box initialization
WM_COMMAND: command button/item selected
WM_PAINT: for painting icon when minimized
WM_MOVE: for saving the new location of the window
WM_SYSCOMMAND: for processing menu messages
Arguments:
IN HWND hwndDlg
handle to dialog box window
IN UINT message
message id
IN WPARAM wParam
message wParam arg
IN LPARAM lParam
message lParam arg
Return Value:
FALSE if message not processed by this module, otherwise the
value returned by the message processing routine.
--*/
{
switch (message) {
case WM_INITDIALOG: return (ConfirmSettingsDlg_WM_INITDIALOG (hwndDlg, wParam, lParam));
case WM_COMMAND: return (ConfirmSettingsDlg_WM_COMMAND (hwndDlg, wParam, lParam));
case WM_PAINT: return (Dlg_WM_PAINT (hwndDlg, wParam, lParam));
case WM_MOVE: return (Dlg_WM_MOVE (hwndDlg, wParam, lParam));
case WM_SYSCOMMAND: return (Dlg_WM_SYSCOMMAND (hwndDlg, wParam, lParam));
default: return FALSE;
}
}