|
|
//----------------------------------------------------------------------------
//
// 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; }
|