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.
 
 
 
 
 
 

169 lines
4.4 KiB

#include "pch.h"
#pragma hdrstop
#include "tapihdr.h"
#include "dialsht.h"
extern "C"
{
BOOL FAR PASCAL DoDialUpPage(HWND hParent, LPCTSTR lpszHelpFile);
};
BOOL CreateDialupSheet(HWND hParent, LPCTSTR lpszHelpFile)
{
if (IsWindow(hParent) == FALSE)
hParent = GetActiveWindow();
CDialUpSheet dialSheet(hParent, hInstance, lpszHelpFile);
dialSheet.Create(_T("Dial Up Server Configuration"),PSH_PROPTITLE);
// try to initialize TAPI first
if (dialSheet.m_tapiDevices.Initialize() == FALSE)
{
String fmt;
fmt.LoadString(hInstance, IDS_TAPI_INITIALIZE_FAILED);
String mess;
mess.Format(fmt, dialSheet.m_tapiDevices.GetLastTapiError());
dialSheet.MessageBox(mess, MB_ICONSTOP|MB_OK|MB_APPLMODAL);
return FALSE;
}
if (dialSheet.m_tapiDevices.GetNumberOfDevices() == 0)
{
dialSheet.MessageBox(IDS_TAPI_NO_DEVICES);
return FALSE;
}
dialSheet.m_rsrcPage.Create(IDD_DIALUP_RESOURCE, PSP_DEFAULT | PSP_HASHELP);
dialSheet.m_secPage.Create(IDD_DIALUP_SECURITY, PSP_DEFAULT | PSP_HASHELP);
dialSheet.DoModal();
return dialSheet.IsModified();
}
BOOL FAR PASCAL DoDialUpPage(HWND hParent, LPCTSTR lpszHelpFile)
{
if (IsWindow(hParent) == FALSE)
hParent = GetActiveWindow();
return CreateDialupSheet(hParent,lpszHelpFile);
}
CResourcePage::CResourcePage(CDialUpSheet* pSheet) : PropertyPage(pSheet), m_pSheet(pSheet)
{
}
CResourcePage::~CResourcePage()
{
}
BOOL CResourcePage::OnInitDialog()
{
CDialUpSheet* pSheet = GetParentObject(CDialUpSheet, m_rsrcPage);
pSheet->m_tapiDevices.EnumerateDevices();
return TRUE;
}
BOOL CResourcePage::OnCommand(WPARAM wParam, LPARAM lParam)
{
BOOL bResult = FALSE;
WORD nID = LOWORD(wParam);
WORD notify = HIWORD(wParam);
CDialUpSheet* pSheet = GetParentObject(CDialUpSheet, m_rsrcPage);
return PropertyPage::OnCommand(wParam, lParam);
}
int CResourcePage::OnApply()
{
BOOL nResult = PSNRET_NOERROR;
CDialUpSheet* pSheet = GetParentObject(CDialUpSheet, m_rsrcPage);
WinHelp((HWND)*this, pSheet->m_helpFile, HELP_QUIT, 0);
if (!IsModified())
return nResult;
// SaveRegistry(&pSheet->m_globalInfo, pSheet->m_pAdapterInfo);
SetModifiedTo(FALSE); // this page is no longer modified
pSheet->SetSheetModifiedTo(TRUE);
return nResult;
}
void CResourcePage::OnHelp()
{
CDialUpSheet* pSheet = GetParentObject(CDialUpSheet, m_rsrcPage);
// pSheet->DisplayHelp(::GetParent((HWND)*this), HC_IPX_HELP);
}
BOOL TapiAddDialog::OnInitDialog()
{
CResourcePage* pParent = GetParentObject(CResourcePage, m_addDlg);
ASSERT(pParent->m_pSheet);
// fill the combo-box with the tapi devices
if (pParent->m_pSheet->m_tapiDevices.m_deviceList.GetCount())
{
HWND hComboBox = GetDlgItem(*this, IDC_TAPI_LIST);
POSITION pos = pParent->m_pSheet->m_tapiDevices.m_deviceList.GetHeadPosition();
TapiDevice* device;
while (pos)
{
device = (TapiDevice*)pParent->m_pSheet->m_tapiDevices.m_deviceList.GetAt(pos);
ASSERT(_IsValidAddress(device, sizeof(device)));
if (device->IsSelected() == FALSE)
{
int nItem;
nItem = ComboBox_AddString(hComboBox, (LPCTSTR)device->m_displayName);
if (nItem != CB_ERR && nItem != CB_ERRSPACE)
ComboBox_SetItemData(hComboBox, nItem, device);
}
}
ComboBox_SetCurSel(hComboBox, 0);
}
return TRUE;
}
void TapiAddDialog::OnOk()
{
CResourcePage* pParent = GetParentObject(CResourcePage, m_addDlg);
HWND hDialInList = GetDlgItem(GetParent(*this), IDC_TAPI_DIALIN_LIST);
HWND hComboBox = GetDlgItem(*this, IDC_TAPI_LIST);
int nSel = ComboBox_GetCurSel(hComboBox);
if (nSel != CB_ERR)
{
TCHAR buf[256];
int nLen = ComboBox_GetLBTextLen(hComboBox, nSel);
if (nLen < _countof(buf))
{
ComboBox_GetLBText(hComboBox, nSel, buf);
int nItem = ListBox_AddString(hDialInList, buf);
TapiDevice* pDevice = (TapiDevice*)ComboBox_GetItemData(hComboBox, nSel);
ListBox_SetItemData(hComboBox, nItem, pDevice);
ASSERT((int)pDevice != CB_ERR);
ASSERT(_IsValidAddress(pDevice, sizeof(TapiDevice)));
pDevice->SetSelectStateTo(TRUE);
}
}
CDialog::OnOk();
}