274 lines
5.5 KiB
C
274 lines
5.5 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1996 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
srvopts.c
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
Functions for handling events in the "Server Options" tab of
|
|||
|
the fax server configuration property sheet
|
|||
|
|
|||
|
Environment:
|
|||
|
|
|||
|
Fax configuration applet
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
03/13/96 -davidx-
|
|||
|
Created it.
|
|||
|
|
|||
|
mm/dd/yy -author-
|
|||
|
description
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#include "faxcpl.h"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
DoInitServerOptions(
|
|||
|
HWND hDlg
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Perform one-time initialization of "Server Options" property page
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
hDlg - Window handle to the "Server Options" property page
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
NONE
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
PFAX_CONFIGURATION pFaxConfig;
|
|||
|
|
|||
|
//
|
|||
|
// Connect to the fax service and retrieve the list of fax devices
|
|||
|
//
|
|||
|
|
|||
|
GetFaxDeviceAndConfigInfo();
|
|||
|
|
|||
|
//
|
|||
|
// Initialize retries characteristics and toll prefix list boxes
|
|||
|
//
|
|||
|
|
|||
|
if (pFaxConfig = gConfigData->pFaxConfig) {
|
|||
|
|
|||
|
insideSetDlgItemText = TRUE;
|
|||
|
|
|||
|
SetDlgItemInt(hDlg, IDC_NUMRETRIES, pFaxConfig->Retries, FALSE);
|
|||
|
SetDlgItemInt(hDlg, IDC_RETRY_INTERVAL, pFaxConfig->RetryDelay, FALSE);
|
|||
|
SetDlgItemInt(hDlg, IDC_MAXJOBLIFE, pFaxConfig->DirtyDays, FALSE);
|
|||
|
|
|||
|
insideSetDlgItemText = FALSE;
|
|||
|
|
|||
|
CheckDlgButton(hDlg, IDC_PRINT_BANNER, pFaxConfig->Branding);
|
|||
|
CheckDlgButton(hDlg, IDC_USE_DEVICE_TSID, pFaxConfig->UseDeviceTsid);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
BOOL
|
|||
|
DoSaveServerOptions(
|
|||
|
HWND hDlg
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Save the information on the "Server Options" property page
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
hDlg - Handle to the "Server Options" property page
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
TRUE if successful, FALSE if there is an error
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
PFAX_CONFIGURATION pFaxConfig;
|
|||
|
BOOL success;
|
|||
|
DWORD value;
|
|||
|
|
|||
|
//
|
|||
|
// Check if anything on this page was changed
|
|||
|
//
|
|||
|
|
|||
|
Verbose(("Saving 'Server Options' page ...\n"));
|
|||
|
|
|||
|
if (! GetChangedFlag(SERVER_OPTIONS_PAGE))
|
|||
|
return TRUE;
|
|||
|
|
|||
|
if (pFaxConfig = gConfigData->pFaxConfig) {
|
|||
|
|
|||
|
//
|
|||
|
// Retrieve the information in the text fields
|
|||
|
//
|
|||
|
|
|||
|
value = GetDlgItemInt(hDlg, IDC_NUMRETRIES, &success, FALSE);
|
|||
|
|
|||
|
if (success)
|
|||
|
pFaxConfig->Retries = value;
|
|||
|
|
|||
|
value = GetDlgItemInt(hDlg, IDC_RETRY_INTERVAL, &success, FALSE);
|
|||
|
|
|||
|
if (success)
|
|||
|
pFaxConfig->RetryDelay = value;
|
|||
|
|
|||
|
value = GetDlgItemInt(hDlg, IDC_MAXJOBLIFE, &success, FALSE);
|
|||
|
|
|||
|
if (success)
|
|||
|
pFaxConfig->DirtyDays = value;
|
|||
|
|
|||
|
pFaxConfig->Branding = IsDlgButtonChecked(hDlg, IDC_PRINT_BANNER);
|
|||
|
pFaxConfig->UseDeviceTsid = IsDlgButtonChecked(hDlg, IDC_USE_DEVICE_TSID);
|
|||
|
}
|
|||
|
|
|||
|
//
|
|||
|
// Save the fax device information if this is the last modified page
|
|||
|
//
|
|||
|
|
|||
|
return SaveFaxDeviceAndConfigInfo(hDlg, SERVER_OPTIONS_PAGE);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
BOOL
|
|||
|
ServerOptionsProc(
|
|||
|
HWND hDlg,
|
|||
|
UINT message,
|
|||
|
UINT wParam,
|
|||
|
LONG lParam
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Procedure for handling the "Server Options" tab
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
hDlg - Identifies the property sheet page
|
|||
|
message - Specifies the message
|
|||
|
wParam - Specifies additional message-specific information
|
|||
|
lParam - Specifies additional message-specific information
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
Depends on the value of message parameter
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#define MAX_RETRIES 15
|
|||
|
#define MAX_RETRY_INTERVAL 1440
|
|||
|
#define MAX_JOBLIFE 365
|
|||
|
|
|||
|
{
|
|||
|
INT cmdId;
|
|||
|
|
|||
|
switch (message) {
|
|||
|
|
|||
|
case WM_INITDIALOG:
|
|||
|
|
|||
|
DoInitServerOptions(hDlg);
|
|||
|
return TRUE;
|
|||
|
|
|||
|
case WM_COMMAND:
|
|||
|
|
|||
|
switch (cmdId = GET_WM_COMMAND_ID(wParam, lParam)) {
|
|||
|
|
|||
|
case IDC_PRINT_BANNER:
|
|||
|
case IDC_USE_DEVICE_TSID:
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case IDC_NUMRETRIES:
|
|||
|
case IDC_RETRY_INTERVAL:
|
|||
|
case IDC_MAXJOBLIFE:
|
|||
|
|
|||
|
if (GET_WM_COMMAND_CMD(wParam, lParam) == EN_CHANGE && !insideSetDlgItemText) {
|
|||
|
|
|||
|
INT maxVal, curVal;
|
|||
|
BOOL valid;
|
|||
|
HWND hwndText;
|
|||
|
|
|||
|
maxVal = (cmdId == IDC_NUMRETRIES) ? MAX_RETRIES :
|
|||
|
(cmdId == IDC_RETRY_INTERVAL) ? MAX_RETRY_INTERVAL : MAX_JOBLIFE;
|
|||
|
|
|||
|
hwndText = GetDlgItem(hDlg, cmdId);
|
|||
|
curVal = GetDlgItemInt(hDlg, cmdId, &valid, FALSE);
|
|||
|
|
|||
|
if (curVal > maxVal) {
|
|||
|
|
|||
|
valid = FALSE;
|
|||
|
curVal = maxVal;
|
|||
|
}
|
|||
|
|
|||
|
if (! valid) {
|
|||
|
|
|||
|
MessageBeep(MB_OK);
|
|||
|
insideSetDlgItemText = TRUE;
|
|||
|
SetDlgItemInt(hDlg, cmdId, curVal, FALSE);
|
|||
|
SendMessage(hwndText, EM_SETSEL, 0, -1);
|
|||
|
insideSetDlgItemText = FALSE;
|
|||
|
}
|
|||
|
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
return TRUE;
|
|||
|
|
|||
|
default:
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
|
|||
|
SetChangedFlag(hDlg, SERVER_OPTIONS_PAGE, TRUE);
|
|||
|
return TRUE;
|
|||
|
|
|||
|
case WM_NOTIFY:
|
|||
|
|
|||
|
if (((NMHDR *) lParam)->code == PSN_APPLY) {
|
|||
|
|
|||
|
//
|
|||
|
// User pressed OK or Apply - validate inputs and save changes
|
|||
|
//
|
|||
|
|
|||
|
if (! DoSaveServerOptions(hDlg)) {
|
|||
|
|
|||
|
SetWindowLong(hDlg, DWL_MSGRESULT, -1);
|
|||
|
return PSNRET_INVALID_NOCHANGEPAGE;
|
|||
|
|
|||
|
} else {
|
|||
|
|
|||
|
SetChangedFlag(hDlg, SERVER_OPTIONS_PAGE, FALSE);
|
|||
|
return PSNRET_NOERROR;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case WM_HELP:
|
|||
|
case WM_CONTEXTMENU:
|
|||
|
|
|||
|
return HandleHelpPopup(hDlg, message, wParam, lParam, SERVER_OPTIONS_PAGE);
|
|||
|
}
|
|||
|
|
|||
|
return FALSE;
|
|||
|
}
|