mirror of https://github.com/lianthony/NT4.0
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.
279 lines
7.4 KiB
279 lines
7.4 KiB
// mosaicga.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "import.h"
|
|
#include "registry.h"
|
|
#include "machine.h"
|
|
#include "base.h"
|
|
#include "mosaicga.h"
|
|
|
|
extern "C"
|
|
{
|
|
#include "uiexport.h"
|
|
}
|
|
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char BASED_CODE THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CMosaicGateway dialog
|
|
|
|
|
|
CMosaicGateway::CMosaicGateway(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CMosaicGateway::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CMosaicGateway)
|
|
m_GatewayServer = _T("");
|
|
m_UseGateway = FALSE;
|
|
m_EmailName = _T("");
|
|
m_UseSpecifiedGW = FALSE;
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_ApplicationGateway = _T("");
|
|
}
|
|
|
|
|
|
void CMosaicGateway::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CMosaicGateway)
|
|
DDX_Control(pDX, IDC_USING_SPECIFIED_GW, m_butUseSpecifiedGW);
|
|
DDX_Control(pDX, IDC_EMAILNAME, m_editEmailName);
|
|
DDX_Control(pDX, IDC_STATIC_GATEWAY_LIST, m_staticGatewayList);
|
|
DDX_Control(pDX, IDC_GATEWAYS_LIST, m_GatewayList);
|
|
DDX_Control(pDX, IDC_REMOVE, m_Remove);
|
|
DDX_Control(pDX, IDC_ADD, m_Add);
|
|
DDX_Control(pDX, IDC_STATIC_GATEWAYSERVER, m_staticGatewayServer);
|
|
DDX_Control(pDX, IDC_USE_GATEWAY, m_butUseGateway);
|
|
DDX_Control(pDX, IDC_GATEWAYSERVER, m_editGatewayServer);
|
|
DDX_Text(pDX, IDC_GATEWAYSERVER, m_GatewayServer);
|
|
DDX_Check(pDX, IDC_USE_GATEWAY, m_UseGateway);
|
|
DDX_Text(pDX, IDC_EMAILNAME, m_EmailName);
|
|
DDX_Check(pDX, IDC_USING_SPECIFIED_GW, m_UseSpecifiedGW);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CMosaicGateway, CDialog)
|
|
//{{AFX_MSG_MAP(CMosaicGateway)
|
|
ON_BN_CLICKED(IDC_USE_GATEWAY, OnUseGateway)
|
|
ON_BN_CLICKED(IDC_ADD, OnAdd)
|
|
ON_BN_CLICKED(IDC_REMOVE, OnRemove)
|
|
ON_EN_CHANGE(IDC_GATEWAYSERVER, OnChangeGatewayserver)
|
|
ON_LBN_SELCHANGE(IDC_GATEWAYS_LIST, OnSelchangeGatewaysList)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CMosaicGateway message handlers
|
|
|
|
#ifdef NEVER
|
|
void CMosaicGateway::OnBrowse()
|
|
{
|
|
UpdateData(TRUE);
|
|
|
|
// i think this is a nt machine
|
|
HINSTANCE hNtLanman;
|
|
LPFNI_SYSTEMFOCUSDIALOG pSystemFocusDlg;
|
|
|
|
if (((hNtLanman = LoadLibraryEx( _T("ntlanman.dll"), NULL, 0 )) != NULL ) &&
|
|
(( pSystemFocusDlg = (LPFNI_SYSTEMFOCUSDIALOG)GetProcAddress( hNtLanman, _T("I_SystemFocusDialog"))) != NULL ))
|
|
{
|
|
// convert machine name to UNICODE
|
|
const int iLength = 2+MAX_COMPUTERNAME_LENGTH+1;
|
|
WCHAR GatewayName[iLength];
|
|
CHAR anziGatewayName[iLength];
|
|
BOOL fReturn;
|
|
|
|
MultiByteToWideChar( CP_ACP, MB_COMPOSITE,
|
|
m_GatewayServer, -1, GatewayName, iLength );
|
|
|
|
(*pSystemFocusDlg)( m_hWnd, FOCUSDLG_SERVERS_ONLY | FOCUSDLG_BROWSE_ALL_DOMAINS, GatewayName,
|
|
iLength, &fReturn, NULL, 0 );
|
|
|
|
if ( fReturn )
|
|
{
|
|
|
|
// use this machine name
|
|
WideCharToMultiByte( CP_ACP, 0, (LPCWSTR)GatewayName,
|
|
-1, anziGatewayName, iLength, NULL, NULL );
|
|
|
|
m_editGatewayServer.SetWindowText( anziGatewayName );
|
|
m_GatewayServer = anziGatewayName;
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
|
|
void CMosaicGateway::InitControls()
|
|
{
|
|
BOOL fCheck = ( m_butUseGateway.GetCheck() == 1 );
|
|
BOOL fEnableAdd;
|
|
BOOL fEnableRemove;
|
|
CString strGatewayServer;
|
|
|
|
m_editGatewayServer.GetWindowText( strGatewayServer );
|
|
fEnableAdd = ( strGatewayServer != _T(""));
|
|
fEnableRemove = ( m_GatewayList.GetCurSel() != LB_ERR );
|
|
|
|
m_butUseSpecifiedGW.EnableWindow( fCheck );
|
|
m_editGatewayServer.EnableWindow( fCheck );
|
|
//m_Browse.EnableWindow( fCheck );
|
|
m_staticGatewayServer.EnableWindow( fCheck );
|
|
m_Add.EnableWindow( fCheck & fEnableAdd );
|
|
m_Remove.EnableWindow( fCheck & fEnableRemove );
|
|
m_staticGatewayList.EnableWindow( fCheck );
|
|
m_butUseSpecifiedGW.EnableWindow( fCheck );
|
|
if ( fCheck )
|
|
{
|
|
m_editGatewayServer.SetFocus();
|
|
}
|
|
}
|
|
|
|
void CMosaicGateway::OnUseGateway()
|
|
{
|
|
InitControls();
|
|
}
|
|
|
|
BOOL CMosaicGateway::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
// add the gateway
|
|
if (strcmp(theApp.m_pszGateway,_T(""))!=0)
|
|
{
|
|
m_UseGateway = TRUE;
|
|
m_butUseGateway.SetCheck(1);
|
|
|
|
TCHAR *pTmp = theApp.m_pszGateway;
|
|
TCHAR pGateway[500];
|
|
TCHAR *pStart = pGateway;
|
|
lstrcpy( pGateway,_T(""));
|
|
while (*pTmp!=_T('\0'))
|
|
{
|
|
if (*pTmp ==_T(' '))
|
|
{
|
|
pTmp++;
|
|
if (strcmp(pGateway,_T(""))!=0)
|
|
{
|
|
m_GatewayList.AddString( pGateway );
|
|
pStart = pGateway;
|
|
lstrcpy( pGateway,_T(""));
|
|
}
|
|
} else
|
|
{
|
|
*pStart++ = *pTmp++;
|
|
*pStart = _T('\0');
|
|
}
|
|
}
|
|
if (strcmp(pGateway,_T(""))!=0)
|
|
{
|
|
m_GatewayList.AddString( pGateway );
|
|
}
|
|
}
|
|
|
|
InitControls();
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CMosaicGateway::OnAdd()
|
|
{
|
|
CString strGateway;
|
|
|
|
m_editGatewayServer.GetWindowText( strGateway );
|
|
if ( strncmp( strGateway, _T("\\\\"), 2 ) != 0 )
|
|
{
|
|
CString strTmp = _T("\\\\");
|
|
strTmp += strGateway;
|
|
strGateway = strTmp;
|
|
}
|
|
m_GatewayList.AddString( strGateway );
|
|
m_editGatewayServer.SetWindowText( _T(""));
|
|
|
|
InitControls();
|
|
}
|
|
|
|
void CMosaicGateway::OnRemove()
|
|
{
|
|
INT nCurSel;
|
|
|
|
nCurSel = m_GatewayList.GetCurSel();
|
|
if ( nCurSel != LB_ERR )
|
|
{
|
|
CString strGateway;
|
|
|
|
m_GatewayList.GetText( nCurSel, strGateway );
|
|
m_editGatewayServer.SetWindowText( strGateway );
|
|
m_GatewayList.DeleteString( nCurSel );
|
|
|
|
InitControls();
|
|
}
|
|
}
|
|
|
|
void CMosaicGateway::OnChangeGatewayserver()
|
|
{
|
|
InitControls();
|
|
}
|
|
|
|
void CMosaicGateway::OnSelchangeGatewaysList()
|
|
{
|
|
InitControls();
|
|
}
|
|
|
|
void CMosaicGateway::OnOK()
|
|
{
|
|
// set up the application gateway string
|
|
CString strEmailName;
|
|
|
|
m_editEmailName.GetWindowText( strEmailName );
|
|
if ( strEmailName == _T(""))
|
|
{
|
|
CString strEmptyEmailName;
|
|
strEmptyEmailName.LoadString( IDS_EMPTY_EMAILNAME );
|
|
|
|
CString strLogo;
|
|
strLogo.LoadString(( theApp.TargetMachine.m_actualProductType == PT_WINNT )?IDS_WINNT_LOGO:IDS_LANMAN_LOGO );
|
|
|
|
MessageBox( strEmptyEmailName, strLogo );
|
|
m_editEmailName.SetFocus();
|
|
return;
|
|
}
|
|
|
|
if ( m_butUseGateway.GetCheck() == 1 )
|
|
{
|
|
INT nCount = m_GatewayList.GetCount();
|
|
if ( nCount == 0 )
|
|
{
|
|
if ( m_butUseSpecifiedGW.GetCheck() != TRUE )
|
|
{
|
|
CString strEmptyEmailName;
|
|
strEmptyEmailName.LoadString( IDS_EMPTY_GATEWAY );
|
|
|
|
CString strLogo;
|
|
strLogo.LoadString(( theApp.TargetMachine.m_actualProductType == PT_WINNT )?IDS_WINNT_LOGO:IDS_LANMAN_LOGO );
|
|
|
|
MessageBox( strEmptyEmailName, strLogo );
|
|
m_editEmailName.SetFocus();
|
|
return;
|
|
}
|
|
}
|
|
for ( INT i=0; i < nCount; i++ )
|
|
{
|
|
CString strGateway;
|
|
|
|
m_GatewayList.GetText( i, strGateway );
|
|
|
|
if ( i != 0 )
|
|
m_ApplicationGateway += _T(" ");
|
|
m_ApplicationGateway += strGateway;
|
|
}
|
|
}
|
|
CDialog::OnOK();
|
|
}
|
|
|