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.
 
 
 
 
 
 

196 lines
5.6 KiB

//=============================================================================
// (c) Copyright Wang Laboratories, Inc. 1995 All rights reserved.
//-----------------------------------------------------------------------------
//
// Project: Norway
//
// Component: ScanOCX
//
// File Name: Selscanr.cpp
//
// Class: CSelectScanner
//
// Description:
// Implementation of the CSelectScanner dialog class.
//
//-----------------------------------------------------------------------------
// Maintenance Log:
/*
$Header: S:\products\wangview\norway\scanocx\selscanr.cpv 1.6 08 Apr 1996 11:12:26 PXJ53677 $
$Log: S:\products\wangview\norway\scanocx\selscanr.cpv $
Rev 1.6 08 Apr 1996 11:12:26 PXJ53677
Force focus to listbox. Bug#6209
Rev 1.5 29 Mar 1996 13:18:28 PXJ53677
Fixed problems with '?' context help.
Rev 1.4 26 Mar 1996 12:43:04 PXJ53677
Added double click and wait cursor.
Rev 1.3 28 Sep 1995 13:47:24 PAJ
Change scanner strint size to 34.
Rev 1.2 15 Sep 1995 15:54:56 PAJ
Change seletsting calls in listbox to findexact.
Rev 1.1 10 Sep 1995 10:47:40 PAJ
Added support for data source list.
Rev 1.0 04 May 1995 08:56:00 PAJ
Initial entry
*/
// ----------------------------> Includes <-------------------------------
#include "stdafx.h"
#include <afxpriv.h>
#include <afxext.h>
#include "imagscan.h"
#include "imagsctl.h"
#include "selscanr.h"
#include "ctlhids.h"
extern "C" {
#include <oiadm.h>
#include <engadm.h>
#include <oierror.h>
#include <oiscan.h>
}
extern char szNameBuffer[MAXSCANNERLENGTH][MAXSCANNERLENGTH];
static const DWORD MenuHelpIDs[ ] =
{
IDC_LIST1, HIDC_SCAN_SCANPROMPT_TEXT_SCANNER,
0,0
};
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSelectScanner dialog
CSelectScanner::CSelectScanner(CWnd* pParent /*=NULL*/)
: CDialog(CSelectScanner::IDD, pParent)
{
//{{AFX_DATA_INIT(CSelectScanner)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
BEGIN_MESSAGE_MAP(CSelectScanner, CDialog)
//{{AFX_MSG_MAP(CSelectScanner)
ON_LBN_SELCHANGE(IDC_LIST1, OnSelchangeList)
ON_LBN_DBLCLK(IDC_LIST1, OnDblclkList)
ON_WM_HELPINFO()
ON_WM_CONTEXTMENU()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSelectScanner message handlers
/////////////////////////////////////////////////////////////////////////////
// CSelectScanner::OnInitDialog
// Initialize the dialog
BOOL CSelectScanner::OnInitDialog()
{
CDialog::OnInitDialog();
CString szTemp;
CWinApp* pApp = AfxGetApp();
pApp->DoWaitCursor(1);
// Add no selection as a default entry
szTemp.LoadString(IDS_SCANDLG_NOSCANNER);
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(szTemp);
// Get list of scanners
HANDLE hScanner;
_TCHAR* lpszScannerName = szTemp.GetBuffer(MAXSCANNERLENGTH);
memset((LPSTR)szNameBuffer, 0, sizeof(szNameBuffer));
IMGOpenScanner(m_hWnd, lpszScannerName, &(hScanner), &szNameBuffer[0][0]);
szTemp.ReleaseBuffer();
// Get all data sources and put in combo box
int i;
for (i=0; i<MAXSCANNERLENGTH; i++)
{
szTemp = szNameBuffer[i];
if ( szTemp.IsEmpty() ) break;
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(szTemp);
}
if ( !m_szSelectedScanner.CompareNoCase(SCANOCX_TWAIN) )
((CListBox*)GetDlgItem(IDC_LIST1))->SetCurSel(0);
else
{
int nIndex = ((CListBox*)GetDlgItem(IDC_LIST1))->FindStringExact(-1, m_szSelectedScanner);
if ( LB_ERR == nIndex )
((CListBox*)GetDlgItem(IDC_LIST1))->SetCurSel(0);
else
((CListBox*)GetDlgItem(IDC_LIST1))->SetCurSel(nIndex);
}
pApp->DoWaitCursor(0);
GetDlgItem(IDC_LIST1)->SetFocus();
return FALSE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
/////////////////////////////////////////////////////////////////////////////
// CSelectScanner::OnSelchangeList
// User has clicked on a scanner
void CSelectScanner::OnSelchangeList()
{
int nCurSel = ((CListBox*)GetDlgItem(IDC_LIST1))->GetCurSel();
if ( nCurSel == LB_ERR )
{
m_szSelectedScanner.LoadString(IDS_SCANDLG_NOSCANNER);
((CListBox*)GetDlgItem(IDC_LIST1))->SetCurSel(0);
}
else
((CListBox*)GetDlgItem(IDC_LIST1))->GetText(nCurSel, m_szSelectedScanner);
}
/////////////////////////////////////////////////////////////////////////////
// CSelectScanner::OnDblclkList
// User has Double clicked on the list box
void CSelectScanner::OnDblclkList()
{
OnSelchangeList();
OnOK();
}
/////////////////////////////////////////////////////////////////////////////
// CSelectScanner::OnHelpInfo
// User has clicked on Help
BOOL CSelectScanner::OnHelpInfo(HELPINFO* pHelpInfo)
{
// must be for a control
if (pHelpInfo->iContextType == HELPINFO_WINDOW)
{
::WinHelp ((HWND)pHelpInfo->hItemHandle, "WangOcx.hlp",
HELP_WM_HELP,
(DWORD)(LPVOID)MenuHelpIDs);
return TRUE;
}
else
return CDialog::OnHelpInfo(pHelpInfo);
}
/////////////////////////////////////////////////////////////////////////////
// CSelectScanner::OnContextMenu
// User has clicked on Help
void CSelectScanner::OnContextMenu(CWnd* pWnd, CPoint point)
{
::WinHelp(pWnd->GetSafeHwnd(),"WangOcx.hlp", HELP_CONTEXTMENU,
(DWORD)(LPVOID)MenuHelpIDs);
}