291 lines
6.4 KiB
C++
291 lines
6.4 KiB
C++
|
/**********************************************************************/
|
||
|
/** Microsoft Windows/NT **/
|
||
|
/** Copyright(c) Microsoft Corp., 1997 **/
|
||
|
/**********************************************************************/
|
||
|
|
||
|
/*
|
||
|
sfmsess.cpp
|
||
|
Implementation for the sessions property page.
|
||
|
|
||
|
FILE HISTORY:
|
||
|
8/20/97 ericdav Code moved into file managemnet snapin
|
||
|
|
||
|
*/
|
||
|
|
||
|
#include "stdafx.h"
|
||
|
#include "sfmcfg.h"
|
||
|
#include "sfmsess.h"
|
||
|
#include "sfmutil.h"
|
||
|
|
||
|
#ifdef _DEBUG
|
||
|
#define new DEBUG_NEW
|
||
|
#undef THIS_FILE
|
||
|
static char THIS_FILE[] = __FILE__;
|
||
|
#endif
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CMacFilesSessions property page
|
||
|
|
||
|
IMPLEMENT_DYNCREATE(CMacFilesSessions, CPropertyPage)
|
||
|
|
||
|
CMacFilesSessions::CMacFilesSessions() : CPropertyPage(CMacFilesSessions::IDD)
|
||
|
{
|
||
|
//{{AFX_DATA_INIT(CMacFilesSessions)
|
||
|
//}}AFX_DATA_INIT
|
||
|
}
|
||
|
|
||
|
CMacFilesSessions::~CMacFilesSessions()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void CMacFilesSessions::DoDataExchange(CDataExchange* pDX)
|
||
|
{
|
||
|
CPropertyPage::DoDataExchange(pDX);
|
||
|
//{{AFX_DATA_MAP(CMacFilesSessions)
|
||
|
DDX_Control(pDX, IDC_EDIT_MESSAGE, m_editMessage);
|
||
|
DDX_Control(pDX, IDC_STATIC_SESSIONS, m_staticSessions);
|
||
|
DDX_Control(pDX, IDC_STATIC_FORKS, m_staticForks);
|
||
|
DDX_Control(pDX, IDC_STATIC_FILE_LOCKS, m_staticFileLocks);
|
||
|
DDX_Control(pDX, IDC_BUTTON_SEND, m_buttonSend);
|
||
|
//}}AFX_DATA_MAP
|
||
|
}
|
||
|
|
||
|
|
||
|
BEGIN_MESSAGE_MAP(CMacFilesSessions, CPropertyPage)
|
||
|
//{{AFX_MSG_MAP(CMacFilesSessions)
|
||
|
ON_BN_CLICKED(IDC_BUTTON_SEND, OnButtonSend)
|
||
|
ON_EN_CHANGE(IDC_EDIT_MESSAGE, OnChangeEditMessage)
|
||
|
ON_WM_HELPINFO()
|
||
|
ON_WM_CONTEXTMENU()
|
||
|
//}}AFX_MSG_MAP
|
||
|
END_MESSAGE_MAP()
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CMacFilesSessions message handlers
|
||
|
|
||
|
BOOL CMacFilesSessions::OnApply()
|
||
|
{
|
||
|
// TODO: Add your specialized code here and/or call the base class
|
||
|
|
||
|
return CPropertyPage::OnApply();
|
||
|
}
|
||
|
|
||
|
BOOL CMacFilesSessions::OnKillActive()
|
||
|
{
|
||
|
// TODO: Add your specialized code here and/or call the base class
|
||
|
|
||
|
return CPropertyPage::OnKillActive();
|
||
|
}
|
||
|
|
||
|
void CMacFilesSessions::OnOK()
|
||
|
{
|
||
|
// TODO: Add your specialized code here and/or call the base class
|
||
|
|
||
|
CPropertyPage::OnOK();
|
||
|
}
|
||
|
|
||
|
BOOL CMacFilesSessions::OnSetActive()
|
||
|
{
|
||
|
// TODO: Add your specialized code here and/or call the base class
|
||
|
|
||
|
return CPropertyPage::OnSetActive();
|
||
|
}
|
||
|
|
||
|
void CMacFilesSessions::OnButtonSend()
|
||
|
{
|
||
|
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
||
|
|
||
|
AFP_MESSAGE_INFO AfpMsg;
|
||
|
CString strMessage;
|
||
|
DWORD err;
|
||
|
|
||
|
if ( !g_SfmDLL.LoadFunctionPointers() )
|
||
|
return;
|
||
|
|
||
|
//
|
||
|
// Message goes to everybody
|
||
|
//
|
||
|
AfpMsg.afpmsg_session_id = 0;
|
||
|
|
||
|
//
|
||
|
// Attempt to send the message
|
||
|
//
|
||
|
m_editMessage.GetWindowText(strMessage);
|
||
|
|
||
|
//
|
||
|
// Was there any text? -- should never happen
|
||
|
//
|
||
|
if (strMessage.IsEmpty())
|
||
|
{
|
||
|
CString strTemp;
|
||
|
strTemp.LoadString(IDS_NEED_TEXT_TO_SEND);
|
||
|
|
||
|
::AfxMessageBox(IDS_NEED_TEXT_TO_SEND);
|
||
|
|
||
|
m_editMessage.SetFocus();
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Message too long? -- should never happen
|
||
|
//
|
||
|
if (strMessage.GetLength() > AFP_MESSAGE_LEN)
|
||
|
{
|
||
|
CString strTemp;
|
||
|
strTemp.LoadString(IDS_MESSAGE_TOO_LONG);
|
||
|
|
||
|
::AfxMessageBox(strTemp);
|
||
|
|
||
|
m_editMessage.SetFocus();
|
||
|
m_editMessage.SetSel(0, -1);
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
AfpMsg.afpmsg_text = (LPWSTR) ((LPCTSTR) strMessage);
|
||
|
|
||
|
err = ((MESSAGESENDPROC) g_SfmDLL[AFP_MESSAGE_SEND])(m_pSheet->m_hAfpServer, &AfpMsg);
|
||
|
|
||
|
CString strTemp;
|
||
|
switch( err )
|
||
|
{
|
||
|
case AFPERR_InvalidId:
|
||
|
strTemp.LoadString(IDS_SESSION_DELETED);
|
||
|
::AfxMessageBox(strTemp);
|
||
|
break;
|
||
|
|
||
|
case NO_ERROR:
|
||
|
strTemp.LoadString(IDS_MESSAGE_SENT);
|
||
|
::AfxMessageBox(strTemp, MB_ICONINFORMATION);
|
||
|
break;
|
||
|
|
||
|
case AFPERR_InvalidSessionType:
|
||
|
strTemp.LoadString(IDS_NOT_RECEIVED);
|
||
|
::AfxMessageBox(strTemp);
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
::SFMMessageBox(err);
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
BOOL CMacFilesSessions::OnInitDialog()
|
||
|
{
|
||
|
CPropertyPage::OnInitDialog();
|
||
|
|
||
|
DWORD err;
|
||
|
|
||
|
if ( !g_SfmDLL.LoadFunctionPointers() )
|
||
|
return S_OK;
|
||
|
|
||
|
//
|
||
|
// This string will contain our "??" string.
|
||
|
//
|
||
|
const TCHAR * pszNotAvail = _T("??");
|
||
|
|
||
|
//
|
||
|
// Retrieve the statitistics server info.
|
||
|
//
|
||
|
PAFP_STATISTICS_INFO pAfpStats;
|
||
|
|
||
|
err = ((STATISTICSGETPROC) g_SfmDLL[AFP_STATISTICS_GET])(m_pSheet->m_hAfpServer, (LPBYTE*)&pAfpStats);
|
||
|
if( err == NO_ERROR )
|
||
|
{
|
||
|
CString strTemp;
|
||
|
|
||
|
strTemp.Format(_T("%u"), pAfpStats->stat_CurrentSessions);
|
||
|
m_staticSessions.EnableWindow(TRUE);
|
||
|
m_staticSessions.SetWindowText(strTemp);
|
||
|
|
||
|
strTemp.Format(_T("%u"), pAfpStats->stat_CurrentFilesOpen);
|
||
|
m_staticForks.EnableWindow(TRUE);
|
||
|
m_staticForks.SetWindowText(strTemp);
|
||
|
|
||
|
strTemp.Format(_T("%u"), pAfpStats->stat_CurrentFileLocks);
|
||
|
m_staticFileLocks.EnableWindow(TRUE);
|
||
|
m_staticFileLocks.SetWindowText(strTemp);
|
||
|
|
||
|
((SFMBUFFERFREEPROC) g_SfmDLL[AFP_BUFFER_FREE])(pAfpStats);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
m_staticSessions.SetWindowText(pszNotAvail);
|
||
|
m_staticSessions.EnableWindow(FALSE);
|
||
|
|
||
|
m_staticForks.SetWindowText(pszNotAvail);
|
||
|
m_staticForks.EnableWindow(FALSE);
|
||
|
|
||
|
m_staticFileLocks.SetWindowText(pszNotAvail);
|
||
|
m_staticFileLocks.EnableWindow(FALSE);
|
||
|
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Setup the message edit box
|
||
|
//
|
||
|
m_editMessage.SetLimitText(AFP_MESSAGE_LEN);
|
||
|
m_editMessage.FmtLines(FALSE);
|
||
|
|
||
|
//
|
||
|
// Set the state of the send button
|
||
|
//
|
||
|
OnChangeEditMessage();
|
||
|
|
||
|
return TRUE; // return TRUE unless you set the focus to a control
|
||
|
// EXCEPTION: OCX Property Pages should return FALSE
|
||
|
}
|
||
|
|
||
|
void CMacFilesSessions::OnChangeEditMessage()
|
||
|
{
|
||
|
CString strTemp;
|
||
|
|
||
|
m_editMessage.GetWindowText(strTemp);
|
||
|
|
||
|
if (strTemp.IsEmpty())
|
||
|
{
|
||
|
//
|
||
|
// Disable the send button
|
||
|
//
|
||
|
m_buttonSend.EnableWindow(FALSE);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
//
|
||
|
// Enable the send button
|
||
|
//
|
||
|
m_buttonSend.EnableWindow(TRUE);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
BOOL CMacFilesSessions::OnHelpInfo(HELPINFO* pHelpInfo)
|
||
|
{
|
||
|
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
||
|
|
||
|
if (pHelpInfo->iContextType == HELPINFO_WINDOW)
|
||
|
{
|
||
|
::WinHelp ((HWND)pHelpInfo->hItemHandle,
|
||
|
m_pSheet->m_strHelpFilePath,
|
||
|
HELP_WM_HELP,
|
||
|
g_aHelpIDs_CONFIGURE_SFM);
|
||
|
}
|
||
|
|
||
|
return TRUE;
|
||
|
}
|
||
|
|
||
|
void CMacFilesSessions::OnContextMenu(CWnd* pWnd, CPoint /*point*/)
|
||
|
{
|
||
|
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
||
|
|
||
|
if (this == pWnd)
|
||
|
return;
|
||
|
|
||
|
::WinHelp (pWnd->m_hWnd,
|
||
|
m_pSheet->m_strHelpFilePath,
|
||
|
HELP_CONTEXTMENU,
|
||
|
g_aHelpIDs_CONFIGURE_SFM);
|
||
|
}
|