285 lines
6.1 KiB
C
285 lines
6.1 KiB
C
/*++
|
||
|
||
Copyright (c) 1996 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
userinfo.c
|
||
|
||
Abstract:
|
||
|
||
Functions for handling events in the "User Info" tab of
|
||
the fax client configuration property sheet
|
||
|
||
Environment:
|
||
|
||
Fax configuration applet
|
||
|
||
Revision History:
|
||
|
||
03/13/96 -davidx-
|
||
Created it.
|
||
|
||
mm/dd/yy -author-
|
||
description
|
||
|
||
--*/
|
||
|
||
#include "faxcpl.h"
|
||
#include "tapiutil.h"
|
||
|
||
|
||
|
||
VOID
|
||
DoInitUserInfo(
|
||
HWND hDlg
|
||
)
|
||
|
||
/*++
|
||
|
||
Routine Description:
|
||
|
||
Initializes the User Info property sheet page with information from the registry
|
||
|
||
Arguments:
|
||
|
||
hDlg - Handle to the User Info property sheet page
|
||
|
||
Return Value:
|
||
|
||
NONE
|
||
|
||
--*/
|
||
|
||
#define InitUserInfoTextField(id, pValueName) \
|
||
SetDlgItemText(hDlg, id, GetRegistryString(hRegKey, pValueName, buffer, MAX_STRING_LEN))
|
||
|
||
{
|
||
TCHAR buffer[MAX_STRING_LEN];
|
||
HKEY hRegKey;
|
||
|
||
//
|
||
// Maximum length for various text fields in the dialog
|
||
//
|
||
|
||
static INT textLimits[] = {
|
||
|
||
IDC_SENDER_NAME, 128,
|
||
IDC_SENDER_FAX_NUMBER, 64,
|
||
IDC_SENDER_MAILBOX, 64,
|
||
IDC_SENDER_COMPANY, 128,
|
||
IDC_SENDER_ADDRESS, 256,
|
||
IDC_SENDER_TITLE, 64,
|
||
IDC_SENDER_DEPT, 64,
|
||
IDC_SENDER_OFFICE_LOC, 64,
|
||
IDC_SENDER_OFFICE_TL, 64,
|
||
IDC_SENDER_HOME_TL, 64,
|
||
IDC_BILLING_CODE, 64,
|
||
0,
|
||
};
|
||
|
||
LimitTextFields(hDlg, textLimits);
|
||
|
||
//
|
||
// Open the user info registry key for reading
|
||
//
|
||
|
||
if (! (hRegKey = GetUserInfoRegKey(REGKEY_FAX_USERINFO, REG_READWRITE)))
|
||
return;
|
||
|
||
//
|
||
// Initialize the list of countries
|
||
//
|
||
|
||
insideSetDlgItemText = TRUE;
|
||
|
||
//
|
||
// Fill in the edit text fields
|
||
//
|
||
|
||
InitUserInfoTextField(IDC_SENDER_NAME, REGVAL_FULLNAME);
|
||
InitUserInfoTextField(IDC_SENDER_FAX_NUMBER, REGVAL_FAX_NUMBER);
|
||
InitUserInfoTextField(IDC_SENDER_MAILBOX, REGVAL_MAILBOX);
|
||
InitUserInfoTextField(IDC_SENDER_COMPANY, REGVAL_COMPANY);
|
||
InitUserInfoTextField(IDC_SENDER_TITLE, REGVAL_TITLE);
|
||
InitUserInfoTextField(IDC_SENDER_ADDRESS, REGVAL_ADDRESS);
|
||
InitUserInfoTextField(IDC_SENDER_DEPT, REGVAL_DEPT);
|
||
InitUserInfoTextField(IDC_SENDER_OFFICE_LOC, REGVAL_OFFICE);
|
||
InitUserInfoTextField(IDC_SENDER_HOME_TL, REGVAL_HOME_PHONE);
|
||
InitUserInfoTextField(IDC_SENDER_OFFICE_TL, REGVAL_OFFICE_PHONE);
|
||
InitUserInfoTextField(IDC_SENDER_BILLING_CODE, REGVAL_BILLING_CODE);
|
||
|
||
insideSetDlgItemText = FALSE;
|
||
|
||
//
|
||
// Close the registry key before returning to the caller
|
||
//
|
||
|
||
RegCloseKey(hRegKey);
|
||
}
|
||
|
||
|
||
|
||
VOID
|
||
DoSaveUserInfo(
|
||
HWND hDlg
|
||
)
|
||
|
||
/*++
|
||
|
||
Routine Description:
|
||
|
||
Save the information on the User Info property sheet page to registry
|
||
|
||
Arguments:
|
||
|
||
hDlg - Handle to the User Info property sheet page
|
||
|
||
Return Value:
|
||
|
||
NONE
|
||
|
||
--*/
|
||
|
||
#define SaveUserInfoTextField(id, pValueName) { \
|
||
if (! GetDlgItemText(hDlg, id, buffer, MAX_STRING_LEN)) \
|
||
buffer[0] = NUL; \
|
||
SaveRegistryString(hRegKey, pValueName, buffer); \
|
||
}
|
||
|
||
{
|
||
TCHAR buffer[MAX_STRING_LEN];
|
||
HKEY hRegKey;
|
||
|
||
//
|
||
// Open the user registry key for writing and create it if necessary
|
||
//
|
||
|
||
if (! GetChangedFlag(USER_INFO_PAGE) ||
|
||
! (hRegKey = GetUserInfoRegKey(REGKEY_FAX_USERINFO, REG_READWRITE)))
|
||
{
|
||
return;
|
||
}
|
||
|
||
SaveUserInfoTextField(IDC_SENDER_NAME, REGVAL_FULLNAME);
|
||
SaveUserInfoTextField(IDC_SENDER_FAX_NUMBER, REGVAL_FAX_NUMBER);
|
||
SaveUserInfoTextField(IDC_SENDER_MAILBOX, REGVAL_MAILBOX);
|
||
SaveUserInfoTextField(IDC_SENDER_COMPANY, REGVAL_COMPANY);
|
||
SaveUserInfoTextField(IDC_SENDER_TITLE, REGVAL_TITLE);
|
||
SaveUserInfoTextField(IDC_SENDER_ADDRESS, REGVAL_ADDRESS);
|
||
SaveUserInfoTextField(IDC_SENDER_DEPT, REGVAL_DEPT);
|
||
SaveUserInfoTextField(IDC_SENDER_OFFICE_LOC, REGVAL_OFFICE);
|
||
SaveUserInfoTextField(IDC_SENDER_HOME_TL, REGVAL_HOME_PHONE);
|
||
SaveUserInfoTextField(IDC_SENDER_OFFICE_TL, REGVAL_OFFICE_PHONE);
|
||
SaveUserInfoTextField(IDC_SENDER_BILLING_CODE, REGVAL_BILLING_CODE);
|
||
|
||
//
|
||
// Close the registry key before returning to the caller
|
||
//
|
||
|
||
RegCloseKey(hRegKey);
|
||
}
|
||
|
||
|
||
|
||
BOOL
|
||
UserInfoProc(
|
||
HWND hDlg,
|
||
UINT message,
|
||
UINT wParam,
|
||
LONG lParam
|
||
)
|
||
|
||
/*++
|
||
|
||
Routine Description:
|
||
|
||
Procedure for handling the "User Info" 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
|
||
|
||
--*/
|
||
|
||
{
|
||
switch (message) {
|
||
|
||
case WM_INITDIALOG:
|
||
|
||
//
|
||
// Perform any necessary TAPI initialization
|
||
//
|
||
|
||
InitTapiService();
|
||
|
||
//
|
||
// Initialize the text fields with information from the registry
|
||
//
|
||
|
||
DoInitUserInfo(hDlg);
|
||
return TRUE;
|
||
|
||
case WM_COMMAND:
|
||
|
||
switch (GET_WM_COMMAND_ID(wParam, lParam)) {
|
||
|
||
case IDC_SENDER_NAME:
|
||
case IDC_SENDER_FAX_NUMBER:
|
||
case IDC_SENDER_MAILBOX:
|
||
case IDC_SENDER_COMPANY:
|
||
case IDC_SENDER_ADDRESS:
|
||
case IDC_SENDER_TITLE:
|
||
case IDC_SENDER_DEPT:
|
||
case IDC_SENDER_OFFICE_LOC:
|
||
case IDC_SENDER_OFFICE_TL:
|
||
case IDC_SENDER_HOME_TL:
|
||
case IDC_SENDER_BILLING_CODE:
|
||
|
||
if (GET_WM_COMMAND_CMD(wParam, lParam) == EN_CHANGE && !insideSetDlgItemText)
|
||
break;
|
||
|
||
default:
|
||
return FALSE;
|
||
}
|
||
|
||
SetChangedFlag(hDlg, USER_INFO_PAGE, TRUE);
|
||
return TRUE;
|
||
|
||
case WM_NOTIFY:
|
||
|
||
switch (((NMHDR *) lParam)->code) {
|
||
|
||
case PSN_SETACTIVE:
|
||
|
||
break;
|
||
|
||
case PSN_APPLY:
|
||
|
||
//
|
||
// User pressed OK or Apply - validate inputs and save changes
|
||
//
|
||
|
||
DoSaveUserInfo(hDlg);
|
||
SetChangedFlag(hDlg, USER_INFO_PAGE, FALSE);
|
||
return PSNRET_NOERROR;
|
||
}
|
||
break;
|
||
|
||
case WM_HELP:
|
||
case WM_CONTEXTMENU:
|
||
|
||
return HandleHelpPopup(hDlg, message, wParam, lParam, USER_INFO_PAGE);
|
||
}
|
||
|
||
return FALSE;
|
||
}
|
||
|