300 lines
5.6 KiB
C++
300 lines
5.6 KiB
C++
/*++
|
|
|
|
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
|