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.
 
 
 
 
 
 

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();
}