/*++ Copyright (c) 1997 Microsoft Corporation Module Name: tapi.cpp Abstract: This file implements the welcome and finish pages. Environment: WIN32 User Mode Author: Andrew Ritz (andrewr) 24-July-1998 --*/ #include "ntoc.h" #pragma hdrstop HFONT hBigFont = NULL; HFONT GetBigFont( void ) { LOGFONT LargeFont; NONCLIENTMETRICS ncm = {0}; WCHAR FontName[100]; WCHAR FontSize[30]; int iFontSize; HDC hdc; HFONT hFont = NULL; // // get the large fonts for wizard97 // ncm.cbSize = sizeof(ncm); SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0); CopyMemory((LPVOID* )&LargeFont,(LPVOID *) &ncm.lfMessageFont,sizeof(LargeFont) ); LoadStringW(hInstance,IDS_LARGEFONT_NAME,FontName,sizeof(FontName)/sizeof(WCHAR) ); LoadStringW(hInstance,IDS_LARGEFONT_SIZE,FontSize,sizeof(FontSize)/sizeof(WCHAR) ); iFontSize = wcstoul( FontSize, NULL, 10 ); // make sure we at least have some basic font if (*FontName == 0 || iFontSize == 0) { lstrcpy(FontName,TEXT("MS Shell Dlg") ); iFontSize = 18; } lstrcpy(LargeFont.lfFaceName, FontName); LargeFont.lfWeight = FW_BOLD; if ((hdc = GetDC(NULL))) { LargeFont.lfHeight = 0 - (GetDeviceCaps(hdc,LOGPIXELSY) * iFontSize / 72); hFont = CreateFontIndirect(&LargeFont); ReleaseDC( NULL, hdc); } return hFont; } void WelcomeInit( void ) { if (!hBigFont) { hBigFont = GetBigFont(); } return; } void WelcomeCommit( void ) { return; } #if 0 void ReinstallInit( void ) { if (!hBigFont) { hBigFont = GetBigFont(); } return; } void ReinstallCommit( void ) { return; } #endif void FinishInit( void ) { if (!hBigFont) { hBigFont = GetBigFont(); } return; } void FinishCommit( void ) { return; } LRESULT WelcomeDlgProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { static BOOL FirstTime = TRUE; CommonWizardProc( hwnd, message, wParam, lParam, WizPageWelcome ); switch( message ) { case WM_INITDIALOG: if (hBigFont) { SetWindowFont(GetDlgItem(hwnd,IDT_TITLE), hBigFont, TRUE); } break; case WM_NOTIFY: switch (((NMHDR *) lParam)->code) { case PSN_SETACTIVE: #if 0 if (SetupInitComponent.SetupData.OperationFlags & SETUPOP_BATCH) { PropSheet_PressButton( GetParent(hwnd), PSBTN_NEXT ); return TRUE; } #else if (SetupInitComponent.SetupData.OperationFlags & SETUPOP_BATCH) { PropSheet_PressButton( GetParent(hwnd), PSBTN_NEXT ); return TRUE; } if (FirstTime) { SetWindowLongPtr( hwnd, DWLP_MSGRESULT, -1 ); FirstTime = FALSE; return TRUE; } #endif break; } break; } return FALSE; } LRESULT FinishDlgProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { CommonWizardProc( hwnd, message, wParam, lParam, WizPageFinal ); switch( message ) { case WM_INITDIALOG: //PropSheet_SetWizButtons( GetParent(hwnd), PSWIZB_FINISH ); // // don't allow cancel on the finish page...it's too late // ShowWindow(GetDlgItem(GetParent(hwnd),IDCANCEL),SW_HIDE); if (hBigFont) { SetWindowFont(GetDlgItem(hwnd,IDT_TITLE), hBigFont, TRUE); } break; case WM_NOTIFY: switch (((NMHDR *) lParam)->code) { case PSN_SETACTIVE: if (SetupInitComponent.SetupData.OperationFlags & SETUPOP_BATCH) { PropSheet_PressButton( GetParent(hwnd), PSBTN_FINISH ); return TRUE; } } break; } return FALSE; } #if 0 LRESULT ReinstallDlgProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { CommonWizardProc( hwnd, message, wParam, lParam, WizPageReinstall ); switch( message ) { case WM_INITDIALOG: //PropSheet_SetWizButtons( GetParent(hwnd), PSWIZB_BACK | PSWIZB_NEXT ); break; case WM_NOTIFY: switch (((NMHDR *) lParam)->code) { case PSN_SETACTIVE: //if (!NoChanges) { // SetWindowLong( hDlg, DWL_MSGRESULT, -1 ); //} break; case PSN_WIZNEXT: if (IsDlgButtonChecked(hwnd,IDYES)) { SetupInitComponent.HelperRoutines.SetSetupMode( SetupInitComponent.HelperRoutines.OcManagerContext , SETUPMODE_REINSTALL | SetupInitComponent.HelperRoutines.GetSetupMode( SetupInitComponent.HelperRoutines.OcManagerContext ) ); } break; default: ; }; default: ; }; return FALSE; } #endif