windows-nt/Source/XPSP1/NT/base/ntsetup/opktools/setupmgr/oc/spfolder.c

206 lines
4.7 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
//----------------------------------------------------------------------------
//
// Copyright (c) 1997-1999 Microsoft Corporation
// All rights reserved.
//
// File Name:
// spfolder.c
//
// Description:
// This file contains the dialog procedure for the page that asks if the
// user wants a sysprep folder. (IDD_CREATESYSPREPFOLDER).
//
//----------------------------------------------------------------------------
#include "pch.h"
#include "resource.h"
INT_PTR CALLBACK DlgSysprepFolderPage( IN HWND hwnd,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam);
//----------------------------------------------------------------------------
//
// Function: OnSysprepFolderInitDialog
//
// Purpose:
//
// Arguments: IN HWND hwnd - handle to the dialog box
//
// Returns: VOID
//
//----------------------------------------------------------------------------
VOID
OnSysprepInitDialog( IN HWND hwnd ) {
//
// Default to making the Sysprep folder
//
CheckRadioButton( hwnd,
IDC_YES_SYSPREP_FOLDER,
IDC_NO_SYSPREP_FOLDER,
IDC_YES_SYSPREP_FOLDER );
}
//----------------------------------------------------------------------------
//
// Function: OnWizNextSysprepFolder
//
// Purpose:
//
// Arguments: IN HWND hwnd - handle to the dialog box
//
// Returns: VOID
//
//----------------------------------------------------------------------------
static BOOL
OnWizNextSysprepFolder( IN HWND hwnd )
{
BOOL bStayHere = FALSE;
if( IsDlgButtonChecked( hwnd, IDC_YES_SYSPREP_FOLDER ) )
{
GenSettings.bCreateSysprepFolder = TRUE;
}
else
{
GenSettings.bCreateSysprepFolder = FALSE;
}
//
// Warn the user that if they have already picked files that need a
// sysprep folder but then here have chosen not to create a sysprep
// folder.
//
if( ! GenSettings.bCreateSysprepFolder )
{
if( GenSettings.iRegionalSettings == REGIONAL_SETTINGS_SKIP ||
GenSettings.iRegionalSettings == REGIONAL_SETTINGS_NOT_SPECIFIED )
{
INT iRet;
iRet = ReportErrorId( hwnd,
MSGTYPE_YESNO,
IDS_ERR_MIGHT_NEED_SYSPREP_FOLDER_FOR_FILES );
if( iRet == IDNO )
{
bStayHere = TRUE;
}
}
else if( GenSettings.iRegionalSettings == REGIONAL_SETTINGS_SPECIFY )
{
INT iCount = GetNameListSize( &GenSettings.LanguageGroups );
if( iCount != 0 )
{
INT iRet;
iRet = ReportErrorId( hwnd,
MSGTYPE_YESNO,
IDS_ERR_NEED_SYSPREP_FOLDER_FOR_FILES );
if( iRet == IDNO )
{
bStayHere = TRUE;
}
}
}
}
return ( !bStayHere );
}
//----------------------------------------------------------------------------
//
// Function: DlgSysprepFolderPage
//
// Purpose:
//
// Arguments: standard Win32 dialog proc arguments
//
// Returns: standard Win32 dialog proc return value -- whether the message
// was handled or not
//
//----------------------------------------------------------------------------
INT_PTR CALLBACK
DlgSysprepFolderPage( IN HWND hwnd,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam) {
BOOL bStatus = TRUE;
switch( uMsg ) {
case WM_INITDIALOG: {
OnSysprepInitDialog( hwnd );
break;
}
case WM_NOTIFY: {
LPNMHDR pnmh = (LPNMHDR)lParam;
switch( pnmh->code ) {
case PSN_QUERYCANCEL:
CancelTheWizard(hwnd); break;
case PSN_SETACTIVE: {
PropSheet_SetWizButtons( GetParent(hwnd),
PSWIZB_BACK | PSWIZB_NEXT );
break;
}
case PSN_WIZBACK:
break;
case PSN_WIZNEXT:
if (!OnWizNextSysprepFolder( hwnd ))
WIZ_FAIL(hwnd);
break;
default:
break;
}
break;
}
default:
bStatus = FALSE;
break;
}
return( bStatus );
}