//---------------------------------------------------------------------------- // // Copyright (c) 1997-1999 Microsoft Corporation // All rights reserved. // // File Name: // maindlgs.c // // Description: // This file has dialog procedures for welcome and finish pages. // //---------------------------------------------------------------------------- #include "pch.h" #include "resource.h" //---------------------------------------------------------------------------- // // Function: OnWelcomeInitDialog // // Purpose: // // Arguments: IN HWND hwnd - handle to the dialog box // // Returns: VOID // //---------------------------------------------------------------------------- VOID OnWelcomeInitDialog( IN HWND hwnd ) { LPWSTR szCommandLineArguments; INT argc; LPWSTR *argv; RECT rc; LPTSTR lpWelcomeText = NULL; SetWindowFont( GetDlgItem(hwnd, IDC_BIGBOLDTITLE), FixedGlobals.hBigBoldFont, TRUE ); // Set the welcome text // if (lpWelcomeText = AllocateString(NULL, IDS_WELCOME_TEXT_CORP)) { SetDlgItemText(hwnd, IDC_WELCOME_TEXT, lpWelcomeText); FREE(lpWelcomeText); } FixedGlobals.ScriptName[0] = _T('\0'); szCommandLineArguments = GetCommandLine(); argv = CommandLineToArgvW( szCommandLineArguments, &argc ); if( argv == NULL ) { // // If I can't get the command line, then do nothing // return; } // // If they passed an answerfile on the command line, then jump to the // load wizard page // if( argc > 1 ) { lstrcpyn( FixedGlobals.ScriptName, argv[1], AS(FixedGlobals.ScriptName) ); PostMessage( GetParent( hwnd ), PSM_SETCURSELID, (WPARAM) 0, (LPARAM) IDD_NEWOREDIT ); } // Center the wizard. // if ( GetWindowRect(GetParent(hwnd), &rc) ) SetWindowPos(GetParent(hwnd), NULL, ((GetSystemMetrics(SM_CXSCREEN) - (rc.right - rc.left)) / 2), ((GetSystemMetrics(SM_CYSCREEN) - (rc.bottom - rc.top)) / 2), 0, 0, SWP_NOSIZE | SWP_NOACTIVATE); } //---------------------------------------------------------------------------- // // Function: DlgWelcomePage // // Purpose: Dialog procedure for the welcome page. // //---------------------------------------------------------------------------- INT_PTR CALLBACK DlgWelcomePage( IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam) { BOOL bStatus = TRUE; switch (uMsg) { case WM_INITDIALOG: // Not sure how to enable this on corp mode w/o the setupmgr.ini file, // so just don't give the option for now. // ShowWindow(GetDlgItem(hwnd, IDC_HIDE), SW_HIDE); if ( GET_FLAG(OPK_WELCOME) ) WIZ_PRESS(hwnd, PSBTN_NEXT); else { SET_FLAG(OPK_WELCOME, TRUE); OnWelcomeInitDialog( hwnd ); } break; case WM_NOTIFY: { LPNMHDR pnmh = (LPNMHDR)lParam; switch( pnmh->code ) { case PSN_QUERYCANCEL: WIZ_CANCEL(hwnd); break; case PSN_SETACTIVE: WIZ_BUTTONS(hwnd, PSWIZB_NEXT); break; case PSN_WIZNEXT: bStatus = FALSE; break; default: bStatus = FALSE; break; } } break; default: bStatus = FALSE; break; } return bStatus; } #define NTEXTFIELDS 3 VOID OnInitFinishPage(IN HWND hwnd) { TCHAR *FileNames[NTEXTFIELDS], *p; int i,j; SetWindowFont(GetDlgItem(hwnd, IDC_BIGBOLDTITLE), FixedGlobals.hBigBoldFont, TRUE); // // Put the filenames we want to display into an array and squish out // the null strings // FileNames[0] = FixedGlobals.ScriptName; FileNames[1] = FixedGlobals.UdfFileName; FileNames[2] = FixedGlobals.BatchFileName; for ( i=0; icode ) { // // ISSUE-2002/02/28-stelo- A cancel button on the successful completion // page doesn't make alot of sense either. // What do other good wizards do??? // case PSN_QUERYCANCEL: CancelTheWizard(hwnd); break; case PSN_SETACTIVE: break; case PSN_WIZBACK: break; case PSN_WIZFINISH: break; default: bStatus = FALSE; break; } } break; default: bStatus = FALSE; break; } return bStatus; } //---------------------------------------------------------------------------- // // Function: DlgFinish2Page // // Purpose: Unsuccessful completion page // //---------------------------------------------------------------------------- INT_PTR CALLBACK DlgFinish2Page( IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam) { BOOL bStatus = TRUE; switch (uMsg) { case WM_INITDIALOG: SetWindowFont(GetDlgItem(hwnd, IDC_BIGBOLDTITLE), FixedGlobals.hBigBoldFont, TRUE); break; case WM_NOTIFY: { LPNMHDR pnmh = (LPNMHDR)lParam; switch( pnmh->code ) { // // ISSUE-2002/02/28-stelo- What is the proper thing to do here? // Disable the cancel button? // Find out what other wizards do on the // unsuccessful completion page. // case PSN_QUERYCANCEL: break; case PSN_SETACTIVE: PropSheet_SetWizButtons( GetParent(hwnd), PSWIZB_FINISH ); break; case PSN_WIZFINISH: break; default: bStatus = FALSE; break; } } break; default: bStatus = FALSE; break; } return bStatus; }