Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

154 lines
3.5 KiB

//
// gssessio.cpp : implementation file
//
#include "stdafx.h"
#include "gscfg.h"
#include "gssessio.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
//
// CGopherSessionsPage dialog
//
IMPLEMENT_DYNCREATE(CGopherSessionsPage, INetPropertyPage)
CGopherSessionsPage::CGopherSessionsPage(
INetPropertySheet * pSheet
)
: INetPropertyPage(CGopherSessionsPage::IDD, pSheet,
::GetModuleHandle(GSCFG_DLL_NAME)),
m_fRegisterChange(FALSE)
{
#ifdef _DEBUG
afxMemDF |= checkAlwaysMemDF;
#endif // _DEBUG
#if 0 // Keep class wizard happy
//{{AFX_DATA_INIT(CGopherSessionsPage)
m_strPassword = _T("");
m_strUserName = _T("");
//}}AFX_DATA_INIT
m_nMaxConnections = 50;
m_nConnectionTimeOut = 600;
#else
if ( SingleServerSelected()
&& QueryConfigError() == NO_ERROR )
{
m_strUserName = GetInetConfigData()->lpszAnonUserName;
m_strPassword = GetInetConfigData()->szAnonPassword;
m_nMaxConnections = GetInetConfigData()->dwMaxConnections;
m_nConnectionTimeOut = GetInetConfigData()->dwConnectionTimeout;
}
#endif // 0
}
void
CGopherSessionsPage::DoDataExchange(
CDataExchange* pDX
)
{
INetPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CGopherSessionsPage)
DDX_Control(pDX, IDC_SPIN_MAX_CONNECTIONS, m_spin_MaxConnections);
DDX_Control(pDX, IDC_SPIN_CONNECTION_TIMEOUT, m_spin_ConnectionTimeOut);
DDX_Text(pDX, IDC_EDIT_PASSWORD, m_strPassword);
DDV_MaxChars(pDX, m_strPassword, 256);
DDX_Text(pDX, IDC_EDIT_USERNAME, m_strUserName);
//}}AFX_DATA_MAP
if (pDX->m_bSaveAndValidate)
{
m_nMaxConnections = m_spin_MaxConnections.GetPos();
m_nConnectionTimeOut = m_spin_ConnectionTimeOut.GetPos();
}
}
BEGIN_MESSAGE_MAP(CGopherSessionsPage, INetPropertyPage)
//{{AFX_MSG_MAP(CGopherSessionsPage)
//}}AFX_MSG_MAP
ON_EN_CHANGE(IDC_EDIT_CONNECTION_TIMEOUT, OnItemChanged)
ON_EN_CHANGE(IDC_EDIT_MAX_CONNECTIONS, OnItemChanged)
ON_EN_CHANGE(IDC_EDIT_PASSWORD, OnItemChanged)
ON_EN_CHANGE(IDC_EDIT_USERNAME, OnItemChanged)
END_MESSAGE_MAP()
//
// CGopherSessionsPage message handlers
//
BOOL
CGopherSessionsPage::OnInitDialog()
{
INetPropertyPage::OnInitDialog();
m_fRegisterChange = FALSE;
m_spin_MaxConnections.SetRange(0, UD_MAXVAL);
m_spin_ConnectionTimeOut.SetRange(0, UD_MAXVAL);
m_spin_MaxConnections.SetPos(m_nMaxConnections );
m_spin_ConnectionTimeOut.SetPos(m_nConnectionTimeOut);
m_fRegisterChange = TRUE;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
NET_API_STATUS
CGopherSessionsPage::SaveInfo(
BOOL fUpdateData
)
{
if (!IsDirty() || (fUpdateData && !UpdateData(TRUE)))
{
return NO_ERROR;
}
TRACEEOLID(_T("Saving Gopher sessions page now..."));
NET_API_STATUS err = 0;
LPTSTR lpszAnonUserName = new TCHAR[m_strUserName.GetLength()+1];
::_tcscpy(lpszAnonUserName, m_strUserName);
CInetAConfigInfo config(GetConfig());
config.SetValues(
m_nMaxConnections,
m_nConnectionTimeOut,
lpszAnonUserName,
m_strPassword
);
err = config.SetInfo(FALSE);
delete lpszAnonUserName;
SetModified(FALSE);
return err;
}
//
// All EN_CHANGE and BN_CLICKED messages map to
// this function.
//
void
CGopherSessionsPage::OnItemChanged()
{
if (m_fRegisterChange)
{
SetModified(TRUE);
}
}