|
|
//----------------------------------------------------------------------------
//
// Copyright (c) 1997-1999 Microsoft Corporation
// All rights reserved.
//
// File Name:
// appletlk.c
//
// Description:
// This file contains the property sheet and page procedures for the
// Appletalk protocol property sheet.
//
//----------------------------------------------------------------------------
#include "pch.h"
#include "resource.h"
#define MAX_NETWORKNUMBER_LENGTH 8
PROPSHEETHEADER AppleTalk_pshead; PROPSHEETPAGE AppleTalk_pspage;
UINT CALLBACK Appletalk_PropertiesPageProc( HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp );
int CALLBACK Appletalk_PropertySheetProc( IN HWND hwndDlg, IN UINT uMsg, IN LPARAM lParam );
INT_PTR CALLBACK Appletalk_PropertiesDlgProc( IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam);
//----------------------------------------------------------------------------
//
// Function: Appletalk_PropertySheetProc
//
// Purpose:
//
// Arguments:
//
// Returns:
//
//----------------------------------------------------------------------------
int CALLBACK Appletalk_PropertySheetProc( IN HWND hwndDlg, IN UINT uMsg, IN LPARAM lParam ) {
switch( uMsg ) {
case PSCB_INITIALIZED: // Process PSCB_INITIALIZED
break;
case PSCB_PRECREATE: // Process PSCB_PRECREATE
break;
default: // Unknown message
break;
}
return( 0 );
}
//----------------------------------------------------------------------------
//
// Function: Create_Appletalk_PropertySheet
//
// Purpose:
//
// Arguments:
//
// Returns:
//
//----------------------------------------------------------------------------
BOOL Create_Appletalk_PropertySheet( IN HWND hwndParent ) {
// Initialize property sheet HEADER data
ZeroMemory( &AppleTalk_pshead, sizeof( PROPSHEETHEADER ) ); AppleTalk_pshead.dwSize = sizeof( PROPSHEETHEADER ); AppleTalk_pshead.dwFlags = PSH_PROPSHEETPAGE | PSH_USECALLBACK | PSH_USEHICON | PSH_NOAPPLYNOW; AppleTalk_pshead.hwndParent = hwndParent; AppleTalk_pshead.hInstance = FixedGlobals.hInstance; AppleTalk_pshead.pszCaption = g_StrAppletalkProtocolTitle; AppleTalk_pshead.nPages = 1; AppleTalk_pshead.nStartPage = 0; AppleTalk_pshead.ppsp = &AppleTalk_pspage; AppleTalk_pshead.pfnCallback = Appletalk_PropertySheetProc;
// Zero out property PAGE data
ZeroMemory (&AppleTalk_pspage, 1 * sizeof( PROPSHEETPAGE) );
AppleTalk_pspage.dwSize = sizeof( PROPSHEETPAGE ); AppleTalk_pspage.dwFlags = PSP_USECALLBACK; AppleTalk_pspage.hInstance = FixedGlobals.hInstance; AppleTalk_pspage.pszTemplate = MAKEINTRESOURCE(IDD_APPLETALK_GENERAL); AppleTalk_pspage.pfnDlgProc = Appletalk_PropertiesDlgProc; AppleTalk_pspage.pfnCallback = Appletalk_PropertiesPageProc;
// --------- Create & display property sheet ---------
return PropertySheet( &AppleTalk_pshead ) ? TRUE : FALSE; }
//----------------------------------------------------------------------------
//
// Function: Appletalk_PropertiesPageProc
//
// Purpose:
//
// Arguments:
//
// Returns:
//
//----------------------------------------------------------------------------
UINT CALLBACK Appletalk_PropertiesPageProc( HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp ) {
switch( uMsg ) {
case PSPCB_CREATE: return( 1 );
case PSPCB_RELEASE: return( 0 ); }
return( 0 );
}
//----------------------------------------------------------------------------
//
// Function: OnAppleTalkInitDialog
//
// Purpose:
//
// Arguments: IN HWND hwnd - handle to the dialog box
//
// Returns: VOID
//
//----------------------------------------------------------------------------
static VOID OnAppleTalkInitDialog( IN HWND hwnd ) {
INT i; INT iZoneCount; INT_PTR iDefaultZoneIndex; TCHAR *pszZone;
//
// Set the text limit on the edit boxes
//
SendDlgItemMessage( hwnd, IDC_EB_NETWORKRANGE_FROM, EM_LIMITTEXT, (WPARAM) MAX_NETRANGE_LEN, (LPARAM) 0 );
SendDlgItemMessage( hwnd, IDC_EB_NETWORKRANGE_TO, EM_LIMITTEXT, (WPARAM) MAX_NETRANGE_LEN, (LPARAM) 0 );
if( NetSettings.pCurrentAdapter->bEnableSeedRouting ) { CheckDlgButton( hwnd, IDC_CB_ENABLESEEDING, BST_CHECKED ); } else { CheckDlgButton( hwnd, IDC_CB_ENABLESEEDING, BST_UNCHECKED ); }
SetWindowText( GetDlgItem( hwnd, IDC_EB_NETWORKRANGE_FROM ), NetSettings.pCurrentAdapter->szNetworkRangeFrom );
SetWindowText( GetDlgItem( hwnd, IDC_EB_NETWORKRANGE_TO ), NetSettings.pCurrentAdapter->szNetworkRangeTo );
iZoneCount = GetNameListSize( &(NetSettings.pCurrentAdapter->ZoneList) );
for( i = 0; i < iZoneCount; i++ ) {
pszZone = GetNameListName( &(NetSettings.pCurrentAdapter->ZoneList), i );
SendDlgItemMessage( hwnd, IDC_CB_DEFAULTZONE, CB_INSERTSTRING, (WPARAM) -1, (LPARAM) pszZone );
SendDlgItemMessage( hwnd, IDC_LB_ZONELIST, LB_INSERTSTRING, (WPARAM) -1, (LPARAM) pszZone ); }
iDefaultZoneIndex = SendDlgItemMessage( hwnd, IDC_CB_DEFAULTZONE, CB_FINDSTRING, (WPARAM) -1, (LPARAM) NetSettings.szDefaultZone );
if( iDefaultZoneIndex != CB_ERR ) {
SendDlgItemMessage( hwnd, IDC_CB_DEFAULTZONE, CB_SETCURSEL, iDefaultZoneIndex, 0 );
}
}
//----------------------------------------------------------------------------
//
// Function: OnAppleTalkApply
//
// Purpose:
//
// Arguments: IN HWND hwnd - handle to the dialog box
//
// Returns: VOID
//
//----------------------------------------------------------------------------
static VOID OnAppleTalkApply( IN HWND hwnd ) {
INT i; INT_PTR iEntries; INT_PTR iDefaultZoneIndex; TCHAR szZone[MAX_ZONE_LEN + 1];
if( IsDlgButtonChecked( hwnd, IDC_CB_ENABLESEEDING ) ) { NetSettings.pCurrentAdapter->bEnableSeedRouting = TRUE; } else { NetSettings.pCurrentAdapter->bEnableSeedRouting = FALSE; }
GetWindowText( GetDlgItem( hwnd, IDC_EB_NETWORKRANGE_FROM ), NetSettings.pCurrentAdapter->szNetworkRangeFrom, MAX_NETRANGE_LEN + 1 );
GetWindowText( GetDlgItem( hwnd, IDC_EB_NETWORKRANGE_TO ), NetSettings.pCurrentAdapter->szNetworkRangeTo, MAX_NETRANGE_LEN + 1 );
iDefaultZoneIndex = SendDlgItemMessage( hwnd, IDC_CB_DEFAULTZONE, CB_GETCURSEL, 0, 0 );
if( iDefaultZoneIndex != LB_ERR ) {
SendDlgItemMessage( hwnd, IDC_CB_DEFAULTZONE, CB_GETLBTEXT, (WPARAM) iDefaultZoneIndex, (LPARAM) NetSettings.szDefaultZone );
}
iEntries = SendDlgItemMessage( hwnd, IDC_LB_ZONELIST, LB_GETCOUNT, 0, 0 );
if( iEntries == LB_ERR ) { return; }
for( i = 0; i < iEntries; i++ ) { SendDlgItemMessage( hwnd, IDC_LB_ZONELIST, LB_GETTEXT, (WPARAM) i, (LPARAM) szZone );
AddNameToNameList( &(NetSettings.pCurrentAdapter->ZoneList), szZone ); }
}
//----------------------------------------------------------------------------
//
// Function: Appletalk_PropertiesDlgProc
//
// Purpose:
//
// Arguments:
//
// Returns:
//
//----------------------------------------------------------------------------
INT_PTR CALLBACK Appletalk_PropertiesDlgProc( IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam) {
BOOL bStatus = TRUE;
switch( uMsg ) {
case WM_INITDIALOG: {
OnAppleTalkInitDialog( hwnd );
break; }
case WM_NOTIFY: {
LPNMHDR pnmh = (LPNMHDR) lParam;
switch( pnmh->code ) {
case PSN_APPLY: {
OnAppleTalkApply( hwnd );
}
}
break;
} // end case WM_NOTIFY
case WM_COMMAND: {
WORD wNotifyCode = HIWORD( wParam ) ; WORD wButtonId = LOWORD( wParam ) ;
break;
}
default:
bStatus = FALSE; break;
}
return( bStatus );
}
|