Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

147 lines
3.4 KiB

/*++
Microsoft Windows
Copyright (C) Microsoft Corporation, 1981 - 1999
Module Name:
multdevices.cpp
Abstract:
Author:
Rahul Thombre (RahulTh) 4/30/1998
Revision History:
4/30/1998 RahulTh
Created this module.
--*/
// MultDevices.cpp : implementation file
//
#include "precomp.hxx"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//the array used for context sensitive help
const DWORD g_aHelpIDs_IDD_DEVICECHOOSER[]=
{
IDC_CHOOSERDESC, IDH_DISABLEHELP,
IDC_DEVICELIST, IDH_DEVICELIST,
0, 0
};
/////////////////////////////////////////////////////////////////////////////
// CMultDevices dialog
CMultDevices::CMultDevices(CWnd* pParent /*=NULL*/, CDeviceList* pDevList /* = NULL*/)
: CDialog(CMultDevices::IDD, pParent), m_pDevList (pDevList)
{
m_pParentWnd = (CSendProgress*)pParent;
//{{AFX_DATA_INIT(CMultDevices)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CMultDevices::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMultDevices)
DDX_Control(pDX, IDC_DEVICELIST, m_lstDevices);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMultDevices, CDialog)
//{{AFX_MSG_MAP(CMultDevices)
ON_MESSAGE (WM_HELP, OnHelp)
ON_MESSAGE (WM_CONTEXTMENU, OnContextMenu)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMultDevices message handlers
BOOL CMultDevices::OnInitDialog()
{
CDialog::OnInitDialog();
int len, i;
int index;
TCHAR devName[MAX_PATH];
EnterCriticalSection(&(m_pDevList->m_criticalSection));
for (i = 0; i < m_pDevList->m_lNumDevices; i++)
{
wcscpy (devName, m_pDevList->m_pDeviceInfo[i].DeviceName);
index = m_lstDevices.AddString(devName);
if (m_pDevList->m_pDeviceInfo[i].DeviceType == TYPE_IRDA) {
m_lstDevices.SetItemData (index, (DWORD)m_pDevList->m_pDeviceInfo[i].DeviceSpecific.s.Irda.DeviceId);
} else {
m_lstDevices.SetItemData (index, (DWORD)m_pDevList->m_pDeviceInfo[i].DeviceSpecific.s.Ip.IpAddress);
}
}
LeaveCriticalSection(&(m_pDevList->m_criticalSection));
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CMultDevices::OnOK()
{
int iSel;
iSel = m_lstDevices.GetCurSel();
m_pParentWnd->m_lSelectedDeviceID = (LONG) m_lstDevices.GetItemData(iSel);
m_lstDevices.GetText(iSel, m_pParentWnd->m_lpszSelectedDeviceName);
CDialog::OnOK();
}
LONG CMultDevices::OnHelp (WPARAM wParam, LPARAM lParam)
{
AFX_MANAGE_STATE (AfxGetStaticModuleState());
LONG lResult = 0;
CString szHelpFile;
szHelpFile.LoadString (IDS_HELP_FILE);
::WinHelp((HWND)(((LPHELPINFO)lParam)->hItemHandle),
(LPCTSTR) szHelpFile,
HELP_WM_HELP,
(ULONG_PTR)(LPTSTR)g_aHelpIDs_IDD_DEVICECHOOSER);
return lResult;
}
LONG CMultDevices::OnContextMenu (WPARAM wParam, LPARAM lParam)
{
AFX_MANAGE_STATE (AfxGetStaticModuleState());
LONG lResult = 0;
CString szHelpFile;
szHelpFile.LoadString (IDS_HELP_FILE);
::WinHelp((HWND)wParam,
(LPCTSTR)szHelpFile,
HELP_CONTEXTMENU,
(ULONG_PTR)(LPVOID)g_aHelpIDs_IDD_DEVICECHOOSER);
return lResult;
}