/*++ Copyright (c) 1996 Microsoft Corporation Module Name: general.c Abstract: Functions for handling events in the "General" tab of the fax server configuration property sheet Environment: Fax configuration applet Revision History: 10/29/96 -wesw- Created it. mm/dd/yy -author- description --*/ #include "faxcpl.h" VOID EnumMapiProfiles( HWND hwnd ); BOOL GeneralProc( HWND hDlg, UINT message, UINT wParam, LONG lParam ) /*++ Routine Description: Procedure for handling the "General" 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 --*/ { static HWND hwndProfileList; switch (message) { case WM_INITDIALOG: GetFaxDeviceAndConfigInfo(); GetMapiProfiles(); if (gConfigData->pMapiProfiles) { hwndProfileList = GetDlgItem(hDlg,IDC_DEST_PROFILENAME); EnumMapiProfiles(hwndProfileList); } if (gConfigData->pFaxConfig && gConfigData->pFaxConfig->InboundProfile) { if (SendMessage(hwndProfileList, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) gConfigData->pFaxConfig->InboundProfile) == CB_ERR) { SendMessage(hwndProfileList, CB_SETCURSEL, 0, 0); } CheckDlgButton( hDlg, IDC_ALLOW_EMAIL, BST_CHECKED ); } else { SendMessage(hwndProfileList, CB_SETCURSEL, 0, 0); CheckDlgButton( hDlg, IDC_ALLOW_EMAIL, BST_UNCHECKED ); EnableWindow( GetDlgItem( hDlg, IDC_DEST_PROFILENAME_STATIC ), FALSE ); EnableWindow( GetDlgItem( hDlg, IDC_DEST_PROFILENAME ), FALSE ); } return TRUE; case WM_COMMAND: if (HIWORD(wParam) == CBN_SELCHANGE && lParam == (LPARAM)hwndProfileList) { SetChangedFlag(hDlg, GENERAL_PAGE, TRUE); } if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_ALLOW_EMAIL) { if (IsDlgButtonChecked( hDlg, IDC_ALLOW_EMAIL )) { EnableWindow( GetDlgItem( hDlg, IDC_DEST_PROFILENAME_STATIC ), TRUE ); EnableWindow( GetDlgItem( hDlg, IDC_DEST_PROFILENAME ), TRUE ); } else { EnableWindow( GetDlgItem( hDlg, IDC_DEST_PROFILENAME_STATIC ), FALSE ); EnableWindow( GetDlgItem( hDlg, IDC_DEST_PROFILENAME ), FALSE ); } SetChangedFlag(hDlg, GENERAL_PAGE, TRUE); } return TRUE; case WM_NOTIFY: if (((LPNMHDR) lParam)->code == PSN_APPLY && GetChangedFlag(GENERAL_PAGE)) { LPTSTR pInboundProfile; BOOL success = FALSE; INT index; TCHAR buffer[MAX_STRING_LEN]; if ((index = SendMessage(hwndProfileList, CB_GETCURSEL, 0, 0)) != CB_ERR) { if (IsDlgButtonChecked( hDlg, IDC_ALLOW_EMAIL )) { SendMessage(hwndProfileList, CB_GETLBTEXT, index, (LPARAM) buffer); } else { buffer[0] = 0; } pInboundProfile = gConfigData->pFaxConfig->InboundProfile; gConfigData->pFaxConfig->InboundProfile = buffer; success = SaveFaxDeviceAndConfigInfo(hDlg, GENERAL_PAGE); gConfigData->pFaxConfig->InboundProfile = pInboundProfile; } if (success) { SetChangedFlag(hDlg, GENERAL_PAGE, FALSE); return PSNRET_NOERROR; } else { SetWindowLong(hDlg, DWL_MSGRESULT, -1); return PSNRET_INVALID_NOCHANGEPAGE; } } break; case WM_HELP: case WM_CONTEXTMENU: return HandleHelpPopup(hDlg, message, wParam, lParam, RECEIVE_OPTIONS_PAGE); } return FALSE; }