|
|
/*++
Copyright (c) 1999 Microsoft Corporation
Module Name:
MessagePage.cpp
Abstract:
Functions for "Message" page of the wizard. Author:
Sergey Kuzin (a-skuzin@microsoft.com) 09-August-1999
Environment:
Revision History:
--*/
#include "tsverui.h"
#include "resource.h"
#define MAX_TITLE_LEN 32
void OnNext(HWND hwndDlg, LPSHAREDWIZDATA pdata);
/*++
Routine Description :
dialog box procedure for the "Message" page.
Arguments :
IN HWND hwndDlg - handle to dialog box. IN UINT uMsg - message to be acted upon. IN WPARAM wParam - value specific to wMsg. IN LPARAM lParam - value specific to wMsg.
Return Value :
TRUE if it processed the message FALSE if it did not.
--*/ INT_PTR CALLBACK MessagePageProc ( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
static HWND hwndFrame=NULL; // IDC_STATIC_FRAME
static HWND hwndStaticTitle=NULL; // IDC_STATIC_TITLE
static HWND hwndEditTitle=NULL; // IDC_EDIT_TITLE
static HWND hwndStaticMsg=NULL; // IDC_STATIC_MSG
static HWND hwndEditMsg=NULL; // IDC_EDIT_MSG
//Retrieve the shared user data from GWL_USERDATA
LPSHAREDWIZDATA pdata = (LPSHAREDWIZDATA) GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
switch (uMsg) { case WM_INITDIALOG : { //Get the shared data from PROPSHEETPAGE lParam value
//and load it into GWL_USERDATA
pdata = (LPSHAREDWIZDATA) ((LPPROPSHEETPAGE) lParam) -> lParam;
SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (DWORD_PTR) pdata);
//get control handlers
hwndFrame = GetDlgItem(hwndDlg, IDC_STATIC_FRAME); hwndStaticTitle = GetDlgItem(hwndDlg, IDC_STATIC_TITLE); hwndEditTitle = GetDlgItem(hwndDlg, IDC_EDIT_TITLE); hwndStaticMsg = GetDlgItem(hwndDlg, IDC_STATIC_MSG); hwndEditMsg = GetDlgItem(hwndDlg, IDC_EDIT_MSG);
// controls for custom message
if (CheckForRegKey(HKEY_USERS, szConstraintsKeyPath,KeyName[USE_MSG])) { EnableWindow(hwndFrame, TRUE); EnableWindow(hwndStaticTitle, TRUE); EnableWindow(hwndEditTitle, TRUE); EnableWindow(hwndStaticMsg, TRUE); EnableWindow(hwndEditMsg, TRUE); CheckDlgButton(hwndDlg, IDC_ENABLE_MSG, TRUE); } else { CheckDlgButton(hwndDlg, IDC_ENABLE_MSG, FALSE); EnableWindow(hwndFrame, FALSE); EnableWindow(hwndStaticTitle, FALSE); EnableWindow(hwndEditTitle, FALSE); EnableWindow(hwndStaticMsg, FALSE); EnableWindow(hwndEditMsg, FALSE); } LPTSTR szBuf=NULL; szBuf=GetRegString(HKEY_USERS, szConstraintsKeyPath, KeyName[MSG]); if(szBuf){ SetWindowText(hwndEditMsg,szBuf); delete szBuf; szBuf=NULL; } szBuf=GetRegString(HKEY_USERS, szConstraintsKeyPath, KeyName[MSG_TITLE]); if(szBuf){ SetWindowText(hwndEditTitle,szBuf); delete szBuf; szBuf=NULL; } break; }
case WM_NOTIFY : { LPNMHDR lpnm = (LPNMHDR) lParam;
switch (lpnm->code) { case PSN_SETACTIVE : //Enable the Next button
PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | PSWIZB_NEXT); if(pdata->pszMessageTitle){ delete pdata->pszMessageTitle; pdata->pszMessageTitle=NULL; } if(pdata->pszMessageText){ delete pdata->pszMessageText; pdata->pszMessageText=NULL; } break;
case PSN_WIZNEXT : //Handle a Next button click here
OnNext(hwndDlg, pdata); break;
case PSN_RESET : //Handle a Cancel button click, if necessary
break;
default : break; } } break;
case WM_COMMAND: switch ( LOWORD(wParam) ) { case IDC_ENABLE_MSG: if (IsDlgButtonChecked(hwndDlg, IDC_ENABLE_MSG)){
EnableWindow(hwndFrame, TRUE); EnableWindow(hwndStaticTitle, TRUE); EnableWindow(hwndEditTitle, TRUE); EnableWindow(hwndStaticMsg, TRUE); EnableWindow(hwndEditMsg, TRUE); } else {
EnableWindow(hwndFrame, FALSE); EnableWindow(hwndStaticTitle, FALSE); EnableWindow(hwndEditTitle, FALSE); EnableWindow(hwndStaticMsg, FALSE); EnableWindow(hwndEditMsg, FALSE); } break;
default: break; } break;
default: break; } return FALSE; }
/*++
Routine Description :
Fills data structure with values from controls.
Arguments :
IN HWND hwndDlg - Page handle. LPSHAREDWIZDATA pdata - pointer to data structure
Return Value :
none
--*/ void OnNext(HWND hwndDlg, LPSHAREDWIZDATA pdata) { if(IsDlgButtonChecked(hwndDlg, IDC_ENABLE_MSG)==BST_CHECKED){ pdata->bMessageEnabled=TRUE; }else{ pdata->bMessageEnabled=FALSE; }
TCHAR szBuf[MAX_LEN+1]; int Size;
Size=GetDlgItemText(hwndDlg, IDC_EDIT_TITLE, szBuf, MAX_LEN); if (Size){ pdata->pszMessageTitle=new TCHAR[Size+1]; if (pdata->pszMessageTitle != NULL) { _tcscpy(pdata->pszMessageTitle,szBuf); } }
Size=GetDlgItemText(hwndDlg, IDC_EDIT_MSG, szBuf, MAX_LEN); if (Size){ pdata->pszMessageText=new TCHAR[Size+1]; if (pdata->pszMessageText) { _tcscpy(pdata->pszMessageText,szBuf); } }
}
|