mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
256 lines
5.1 KiB
256 lines
5.1 KiB
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
statopts.c
|
|
|
|
Abstract:
|
|
|
|
Functions to handle status monitor options dialog
|
|
|
|
Environment:
|
|
|
|
Fax configuration applet
|
|
|
|
Revision History:
|
|
|
|
12/3/96 -georgeje-
|
|
Created it.
|
|
|
|
mm/dd/yy -author-
|
|
description
|
|
|
|
--*/
|
|
|
|
#include "faxcpl.h"
|
|
|
|
|
|
VOID
|
|
DoInitStatusOptions(
|
|
HWND hDlg
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Initializes the Status Options property sheet page with information from the registry
|
|
|
|
Arguments:
|
|
|
|
hDlg - Handle to the Status Options property sheet page
|
|
|
|
Return Value:
|
|
|
|
NONE
|
|
|
|
--*/
|
|
|
|
|
|
#define InitStatusOptionsCheckBox(id, pValueName, DefaultValue) \
|
|
CheckDlgButton( hDlg, id, GetRegistryDWord( hRegKey, pValueName, DefaultValue ));
|
|
|
|
{
|
|
HKEY hRegKey;
|
|
|
|
|
|
|
|
GetFaxDeviceAndConfigInfo();
|
|
|
|
//
|
|
// Open the user info registry key for reading
|
|
//
|
|
|
|
if (! (hRegKey = GetUserInfoRegKey(REGKEY_FAX_USERINFO, REG_READWRITE)))
|
|
return;
|
|
|
|
//
|
|
// Fill in the edit text fields
|
|
//
|
|
|
|
InitStatusOptionsCheckBox(IDC_STATUS_TASKBAR, REGVAL_TASKBAR, BST_CHECKED);
|
|
InitStatusOptionsCheckBox(IDC_STATUS_ONTOP, REGVAL_ALWAYS_ON_TOP, BST_CHECKED);
|
|
InitStatusOptionsCheckBox(IDC_STATUS_VISUAL, REGVAL_VISUAL_NOTIFICATION, BST_CHECKED);
|
|
InitStatusOptionsCheckBox(IDC_STATUS_SOUND, REGVAL_SOUND_NOTIFICATION, BST_UNCHECKED);
|
|
InitStatusOptionsCheckBox(IDC_STATUS_MANUAL, REGVAL_ENABLE_MANUAL_ANSWER, BST_UNCHECKED);
|
|
|
|
//
|
|
// Close the registry key before returning to the caller
|
|
//
|
|
|
|
RegCloseKey(hRegKey);
|
|
}
|
|
|
|
|
|
VOID
|
|
DoSaveStatusOptions(
|
|
HWND hDlg
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Save the information on the Status Options property sheet page to registry
|
|
|
|
Arguments:
|
|
|
|
hDlg - Handle to the Status Options property sheet page
|
|
|
|
Return Value:
|
|
|
|
NONE
|
|
|
|
--*/
|
|
|
|
#define SaveStatusOptionsCheckBox(id, pValueName) \
|
|
SaveRegistryDWord(hRegKey, pValueName, IsDlgButtonChecked(hDlg, id));
|
|
|
|
{
|
|
HKEY hRegKey;
|
|
HWND hStatWnd;
|
|
BOOL fSaveConfig = FALSE;
|
|
|
|
//
|
|
// Open the user registry key for writing and create it if necessary
|
|
//
|
|
|
|
if (! GetChangedFlag(STATUS_OPTIONS_PAGE) ||
|
|
! (hRegKey = GetUserInfoRegKey(REGKEY_FAX_USERINFO, REG_READWRITE)))
|
|
{
|
|
return;;
|
|
}
|
|
|
|
SaveStatusOptionsCheckBox(IDC_STATUS_TASKBAR, REGVAL_TASKBAR);
|
|
SaveStatusOptionsCheckBox(IDC_STATUS_ONTOP, REGVAL_ALWAYS_ON_TOP);
|
|
SaveStatusOptionsCheckBox(IDC_STATUS_VISUAL, REGVAL_VISUAL_NOTIFICATION);
|
|
SaveStatusOptionsCheckBox(IDC_STATUS_SOUND, REGVAL_SOUND_NOTIFICATION);
|
|
SaveStatusOptionsCheckBox(IDC_STATUS_MANUAL, REGVAL_ENABLE_MANUAL_ANSWER);
|
|
|
|
//
|
|
// Close the registry key before returning to the caller
|
|
//
|
|
|
|
RegCloseKey(hRegKey);
|
|
|
|
if (IsDlgButtonChecked( hDlg, IDC_STATUS_MANUAL ) == BST_CHECKED &&
|
|
gConfigData->pDevInfo[0].Rings != 99) {
|
|
|
|
gConfigData->pDevInfo[0].Rings = 99;
|
|
|
|
fSaveConfig = TRUE;
|
|
|
|
} else if (gConfigData->pDevInfo->Rings == 99) {
|
|
|
|
gConfigData->pDevInfo[0].Rings = 2;
|
|
|
|
fSaveConfig = TRUE;
|
|
}
|
|
|
|
if (fSaveConfig) {
|
|
SaveFaxDeviceAndConfigInfo( hDlg, STATUS_OPTIONS_PAGE );
|
|
}
|
|
|
|
//
|
|
// Notify the status app that the configuration has changed.
|
|
// The Window Class and message in the following two lines
|
|
// are hard coded. If you change them, then they must also
|
|
// be changed in the Fax Status Monitor
|
|
//
|
|
|
|
hStatWnd = FindWindow(FAXSTAT_WINCLASS, NULL);
|
|
if (hStatWnd) {
|
|
PostMessage(hStatWnd, WM_USER + 203, 0, 0);
|
|
}
|
|
}
|
|
|
|
|
|
BOOL
|
|
StatusOptionsProc(
|
|
HWND hDlg,
|
|
UINT message,
|
|
UINT wParam,
|
|
LONG lParam
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Procedure for handling the "Status 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
|
|
|
|
--*/
|
|
|
|
{
|
|
LPNMHDR lpNMHdr = (LPNMHDR) lParam;
|
|
|
|
switch (message) {
|
|
|
|
case WM_INITDIALOG:
|
|
|
|
DoInitStatusOptions( hDlg );
|
|
return TRUE;
|
|
|
|
case WM_COMMAND:
|
|
|
|
switch (GET_WM_COMMAND_ID(wParam, lParam)) {
|
|
|
|
case IDC_STATUS_TASKBAR:
|
|
case IDC_STATUS_ONTOP:
|
|
case IDC_STATUS_VISUAL:
|
|
case IDC_STATUS_SOUND:
|
|
case IDC_STATUS_MANUAL:
|
|
|
|
if (GET_WM_COMMAND_CMD(wParam, lParam) == BN_CLICKED)
|
|
break;
|
|
|
|
default:
|
|
return FALSE;
|
|
}
|
|
|
|
SetChangedFlag(hDlg, STATUS_OPTIONS_PAGE, TRUE);
|
|
return TRUE;
|
|
|
|
case WM_NOTIFY:
|
|
|
|
switch (lpNMHdr->code) {
|
|
|
|
case PSN_SETACTIVE:
|
|
|
|
break;
|
|
|
|
case PSN_APPLY:
|
|
|
|
//
|
|
// User pressed OK or Apply - validate inputs and save changes
|
|
//
|
|
|
|
DoSaveStatusOptions(hDlg);
|
|
SetChangedFlag(hDlg, STATUS_OPTIONS_PAGE, FALSE);
|
|
return PSNRET_NOERROR;
|
|
}
|
|
break;
|
|
|
|
case WM_HELP:
|
|
case WM_CONTEXTMENU:
|
|
|
|
return HandleHelpPopup(hDlg, message, wParam, lParam, STATUS_OPTIONS_PAGE);
|
|
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|