Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

209 lines
7.0 KiB

//-----------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997.
//
// File: D L G A T M . H
//
// Contents: CTcpArpcPage and CATMAddressDialog declaration
//
// Notes: The "ATM ARP Client" page and dialog
//
// Author: tongl 1 July 1997 Created
//
//-----------------------------------------------------------------------
#pragma once
#include <ncxbase.h>
#include <ncatlps.h>
// maximum number of characters in the ARPS and MARS edit control
const int MAX_MTU_LENGTH = 5;
const int MAX_TITLE_LENGTH = 12;
const int NUM_ATMSERVER_LIMIT = 12;
const int MAX_MTU = 65527;
const int MIN_MTU = 9180;
const WCHAR c_szArpServer[] = L"ARP Server:";
const WCHAR c_szMarServer[] = L"MAR Server:";
class CAtmArpcPage : public CPropSheetPage
{
public:
// Declare the message map
BEGIN_MSG_MAP(CAtmArpcPage)
// Initialize dialog
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu)
MESSAGE_HANDLER(WM_HELP, OnHelp)
// Property page notification message handlers
NOTIFY_CODE_HANDLER(PSN_APPLY, OnApply)
NOTIFY_CODE_HANDLER(PSN_KILLACTIVE, OnKillActive)
NOTIFY_CODE_HANDLER(PSN_SETACTIVE, OnActive)
NOTIFY_CODE_HANDLER(PSN_RESET, OnCancel)
NOTIFY_CODE_HANDLER(PSN_QUERYCANCEL, OnQueryCancel)
// Control message handlers
COMMAND_ID_HANDLER(IDC_CHK_ATM_PVCONLY, OnPVCOnly)
COMMAND_ID_HANDLER(IDC_LBX_ATM_ArpsAddrs, OnArpServer)
COMMAND_ID_HANDLER(IDC_PSB_ATM_ArpsAdd, OnAddArps)
COMMAND_ID_HANDLER(IDC_PSB_ATM_ArpsEdt, OnEditArps)
COMMAND_ID_HANDLER(IDC_PSB_ATM_ArpsRmv, OnRemoveArps)
COMMAND_ID_HANDLER(IDC_PSB_ATM_ArpsUp, OnArpsUp)
COMMAND_ID_HANDLER(IDC_PSB_ATM_ArpsDown, OnArpsDown)
COMMAND_ID_HANDLER(IDC_LBX_ATM_MarsAddrs, OnMarServer)
COMMAND_ID_HANDLER(IDC_PSB_ATM_MarsAdd, OnAddMars)
COMMAND_ID_HANDLER(IDC_PSB_ATM_MarsEdt, OnEditMars)
COMMAND_ID_HANDLER(IDC_PSB_ATM_MarsRmv, OnRemoveMars)
COMMAND_ID_HANDLER(IDC_PSB_ATM_MarsUp, OnMarsUp)
COMMAND_ID_HANDLER(IDC_PSB_ATM_MarsDown, OnMarsDown)
COMMAND_ID_HANDLER(IDC_EDT_ATM_MaxTU, OnMaxTU)
END_MSG_MAP()
// Constructors/Destructors
public:
CAtmArpcPage(CTcpAddrPage * pTcpAddrPage,
ADAPTER_INFO * pAdapterDlg,
const DWORD * adwHelpIDs = NULL)
{
AssertH(pTcpAddrPage);
AssertH(pAdapterDlg);
m_pParentDlg = pTcpAddrPage;
m_pAdapterInfo = pAdapterDlg;
m_adwHelpIDs = adwHelpIDs;
m_fModified = FALSE;
}
~CAtmArpcPage(){};
// Interface
public:
// message map functions
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
LRESULT OnHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
// notify handlers for the property page
LRESULT OnActive(int idCtrl, LPNMHDR pnmh, BOOL& fHandled);
LRESULT OnKillActive(int idCtrl, LPNMHDR pnmh, BOOL& fHandled);
LRESULT OnApply(int idCtrl, LPNMHDR pnmh, BOOL& fHandled);
LRESULT OnCancel(int idCtrl, LPNMHDR pnmh, BOOL& fHandled);
LRESULT OnQueryCancel(int idCtrl, LPNMHDR pnmh, BOOL& fHandled);
// Control message handlers
LRESULT OnPVCOnly(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnArpServer(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnAddArps(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnEditArps(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnRemoveArps(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnArpsUp(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnArpsDown(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnMarServer(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnAddMars(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnEditMars(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnRemoveMars(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnMarsUp(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnMarsDown(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnMaxTU(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
friend class CAtmAddressDialog;
private:
// Inlines
BOOL IsModified() {return m_fModified;}
void SetModifiedTo(BOOL bState) {m_fModified = bState;}
void PageModified() { m_fModified = TRUE;
PropSheet_Changed(GetParent(), m_hWnd);
}
// Update the server addresses and MTU of the deselected card
void UpdateInfo();
void SetInfo();
void EnableGroup(BOOL fEnable);
void OnServerAdd(HANDLES hwndGroup, PCWSTR szTitle);
void OnServerEdit(HANDLES hwndGroup, PCWSTR szTitle);
void OnServerRemove(HANDLES hwndGroup, BOOL fRemoveArps);
void OnServerUp(HANDLES hwndGroup);
void OnServerDown(HANDLES hwndGroup);
// data members
CTcpAddrPage * m_pParentDlg;
ADAPTER_INFO * m_pAdapterInfo;
const DWORD * m_adwHelpIDs;
BOOL m_fModified;
BOOL m_fEditState;
HWND m_hAddressList;
tstring m_strNewArpsAddress; // either the one added, or edited
tstring m_strNewMarsAddress;
tstring m_strMovingEntry;
HWND m_hMTUEditBox;
HANDLES m_hArps;
HANDLES m_hMars;
};
class CAtmAddressDialog : public CDialogImpl<CAtmAddressDialog>
{
public:
enum { IDD = IDD_ATM_ADDR };
BEGIN_MSG_MAP(CServerDialog)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog);
MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu);
MESSAGE_HANDLER(WM_HELP, OnHelp);
COMMAND_ID_HANDLER(IDOK, OnOk);
COMMAND_ID_HANDLER(IDCANCEL, OnCancel);
COMMAND_ID_HANDLER(IDC_EDT_ATM_Address, OnChange);
END_MSG_MAP()
public:
CAtmAddressDialog(CAtmArpcPage * pAtmArpcPage, const DWORD* pamhidsHelp = NULL);
~CAtmAddressDialog();
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
LRESULT OnHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
LRESULT OnOk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
LRESULT OnChange(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
void SetTitle(PCWSTR szTitle);
private:
HWND m_hOkButton; // this is the IDOK button, the text of the button changes
// with the context.
HWND m_hEditBox; // this is the edit box for the ATM address
CAtmArpcPage * m_pParentDlg;
WCHAR m_szTitle[MAX_TITLE_LENGTH];
const DWORD * m_adwHelpIDs;
};