222 lines
5.9 KiB
C
222 lines
5.9 KiB
C
|
//----------------------------------------------------------------------------
|
||
|
//
|
||
|
// Copyright (c) 1997-1999 Microsoft Corporation
|
||
|
// All rights reserved.
|
||
|
//
|
||
|
// File Name:
|
||
|
// stdalone.c
|
||
|
//
|
||
|
// Description:
|
||
|
// This file contains the dlgproc for the IDD_STANDALONE page. This
|
||
|
// is a simple YES/NO flow page. If user says NO, we skip all of the
|
||
|
// pages that edit a distribution folder.
|
||
|
//
|
||
|
// Note the title of this page is "Distribution Folder", but internally,
|
||
|
// it is IDD_STANDALONE.
|
||
|
//
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
#include "pch.h"
|
||
|
#include "resource.h"
|
||
|
|
||
|
VOID
|
||
|
OnInitStandAlone(HWND hwnd)
|
||
|
{
|
||
|
TCHAR *pText1, *pText2, *p;
|
||
|
int nBytes, len;
|
||
|
|
||
|
pText1 = MyLoadString(IDS_STANDALONE_TEXT1);
|
||
|
pText2 = MyLoadString(IDS_STANDALONE_TEXT2);
|
||
|
|
||
|
nBytes = ((len=lstrlen(pText1)) + lstrlen(pText2) + 1) * sizeof(TCHAR);
|
||
|
|
||
|
if ( (p = malloc(nBytes)) == NULL )
|
||
|
return;
|
||
|
|
||
|
lstrcpyn(p, pText1, (nBytes/sizeof(TCHAR)));
|
||
|
lstrcpyn(p+len, pText2, ((nBytes/sizeof(TCHAR))-len));
|
||
|
|
||
|
free(pText1);
|
||
|
free(pText2);
|
||
|
|
||
|
SetDlgItemText(hwnd, IDC_TEXT, p);
|
||
|
}
|
||
|
|
||
|
//----------------------------------------------------------------------------
|
||
|
//
|
||
|
// Function: OnSetActiveStandAlone
|
||
|
//
|
||
|
// Purpose: Called at SETACTIVE time. Init controls.
|
||
|
//
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
VOID OnSetActiveStandAlone(HWND hwnd)
|
||
|
{
|
||
|
int nButtonId = WizGlobals.bStandAloneScript ? IDC_NODISTFOLD
|
||
|
: IDC_DODISTFOLD;
|
||
|
CheckRadioButton(hwnd,
|
||
|
IDC_DODISTFOLD,
|
||
|
IDC_MODDISTFOLD,
|
||
|
nButtonId);
|
||
|
|
||
|
WIZ_BUTTONS(hwnd, PSWIZB_BACK | PSWIZB_NEXT);
|
||
|
}
|
||
|
|
||
|
//----------------------------------------------------------------------------
|
||
|
//
|
||
|
// Function: OnRadioButtonStandAlone
|
||
|
//
|
||
|
// Purpose: Called when one of the radio buttons is pushed.
|
||
|
//
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
VOID OnRadioButtonStandAlone(HWND hwnd, int nButtonId)
|
||
|
{
|
||
|
CheckRadioButton(hwnd,
|
||
|
IDC_DODISTFOLD,
|
||
|
IDC_MODDISTFOLD,
|
||
|
nButtonId);
|
||
|
}
|
||
|
|
||
|
//----------------------------------------------------------------------------
|
||
|
//
|
||
|
// Function: OnWizNextStandAlone
|
||
|
//
|
||
|
// Purpose: Called when NEXT button is pushed.
|
||
|
//
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
BOOL OnWizNextStandAlone(HWND hwnd)
|
||
|
{
|
||
|
|
||
|
WizGlobals.bStandAloneScript = IsDlgButtonChecked( hwnd, IDC_NODISTFOLD );
|
||
|
WizGlobals.bCreateNewDistFolder = IsDlgButtonChecked(hwnd, IDC_DODISTFOLD);
|
||
|
|
||
|
//
|
||
|
// Warn the user that if they have already picked files that need a
|
||
|
// distribution folder but then here have chosen not to create a distrib
|
||
|
// folder.
|
||
|
//
|
||
|
|
||
|
if( WizGlobals.bStandAloneScript )
|
||
|
{
|
||
|
|
||
|
INT iCount = GetNameListSize( &GenSettings.LanguageGroups );
|
||
|
|
||
|
if( ( ( GenSettings.IeCustomizeMethod == IE_USE_BRANDING_FILE ) &&
|
||
|
GenSettings.szInsFile[0] != _T('\0') ) ||
|
||
|
( iCount != 0 ) )
|
||
|
{
|
||
|
|
||
|
INT iRet;
|
||
|
|
||
|
iRet = ReportErrorId( hwnd,
|
||
|
MSGTYPE_YESNO,
|
||
|
IDS_ERR_NEED_DIST_FOLDER_FOR_FILES );
|
||
|
|
||
|
if( iRet == IDNO )
|
||
|
{
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
return TRUE;
|
||
|
|
||
|
}
|
||
|
|
||
|
//----------------------------------------------------------------------------
|
||
|
//
|
||
|
// Function: DlgStandAlonePage
|
||
|
//
|
||
|
// Purpose: This is the dialog procedure the IDD_ADVANCED1 page. It simply
|
||
|
// asks if the user wants to deal with advanced features or not.
|
||
|
//
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
INT_PTR CALLBACK DlgStandAlonePage(
|
||
|
IN HWND hwnd,
|
||
|
IN UINT uMsg,
|
||
|
IN WPARAM wParam,
|
||
|
IN LPARAM lParam)
|
||
|
{
|
||
|
BOOL bStatus = TRUE;
|
||
|
|
||
|
switch (uMsg) {
|
||
|
|
||
|
case WM_INITDIALOG:
|
||
|
OnInitStandAlone(hwnd);
|
||
|
break;
|
||
|
|
||
|
case WM_COMMAND:
|
||
|
{
|
||
|
int nButtonId;
|
||
|
|
||
|
switch ( nButtonId = LOWORD(wParam) ) {
|
||
|
|
||
|
case IDC_DODISTFOLD:
|
||
|
case IDC_MODDISTFOLD:
|
||
|
case IDC_NODISTFOLD:
|
||
|
|
||
|
if ( HIWORD(wParam) == BN_CLICKED )
|
||
|
OnRadioButtonStandAlone(hwnd, LOWORD(wParam));
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
bStatus = FALSE;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case WM_NOTIFY:
|
||
|
{
|
||
|
LPNMHDR pnmh = (LPNMHDR)lParam;
|
||
|
switch( pnmh->code ) {
|
||
|
|
||
|
case PSN_QUERYCANCEL:
|
||
|
WIZ_CANCEL(hwnd);
|
||
|
break;
|
||
|
|
||
|
case PSN_SETACTIVE:
|
||
|
|
||
|
g_App.dwCurrentHelp = IDH_DIST_FLDR;
|
||
|
|
||
|
if ( WizGlobals.iProductInstall != PRODUCT_UNATTENDED_INSTALL )
|
||
|
WIZ_SKIP( hwnd );
|
||
|
else
|
||
|
OnSetActiveStandAlone(hwnd);
|
||
|
break;
|
||
|
|
||
|
case PSN_WIZBACK:
|
||
|
bStatus = FALSE;
|
||
|
break;
|
||
|
|
||
|
case PSN_WIZNEXT:
|
||
|
if ( !OnWizNextStandAlone(hwnd) )
|
||
|
WIZ_FAIL(hwnd);
|
||
|
else
|
||
|
bStatus = FALSE;
|
||
|
break;
|
||
|
|
||
|
case PSN_HELP:
|
||
|
WIZ_HELP();
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
bStatus = FALSE;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
bStatus = FALSE;
|
||
|
break;
|
||
|
}
|
||
|
return bStatus;
|
||
|
}
|
||
|
|