|
|
// WiaSimpleDocPg.cpp : implementation file
//
#include "stdafx.h"
#include "wiatest.h"
#include "WiaSimpleDocPg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
/////////////////////////////////////////////////////////////////////////////
// CWiaSimpleDocPg property page
IMPLEMENT_DYNCREATE(CWiaSimpleDocPg, CPropertyPage)
CWiaSimpleDocPg::CWiaSimpleDocPg() : CPropertyPage(CWiaSimpleDocPg::IDD) { //{{AFX_DATA_INIT(CWiaSimpleDocPg)
//}}AFX_DATA_INIT
}
CWiaSimpleDocPg::~CWiaSimpleDocPg() { }
void CWiaSimpleDocPg::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CWiaSimpleDocPg)
DDX_Control(pDX, IDC_NUMBEROF_PAGES_EDITBOX, m_lPages); DDX_Control(pDX, IDC_NUMBEROF_PAGES_EDITBOX_TEXT, m_lPagesText); DDX_Control(pDX, IDC_DOCUMENT_SOURCE_COMBOBOX, m_DocumentSourceComboBox); //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CWiaSimpleDocPg, CPropertyPage) //{{AFX_MSG_MAP(CWiaSimpleDocPg)
ON_CBN_SELCHANGE(IDC_DOCUMENT_SOURCE_COMBOBOX, OnSelchangeDocumentSourceCombobox) ON_EN_UPDATE(IDC_NUMBEROF_PAGES_EDITBOX, OnUpdateNumberofPagesEditbox) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWiaSimpleDocPg message handlers
BOOL CWiaSimpleDocPg::OnInitDialog() { CPropertyPage::OnInitDialog(); m_bFirstInit = TRUE; CWiahelper WIA; WIA.SetIWiaItem(m_pIRootItem); HRESULT hr = S_OK;
// set current settings
LONG lDocumentHandlingSelect = 0; hr = WIA.ReadPropertyLong(WIA_DPS_DOCUMENT_HANDLING_SELECT,&lDocumentHandlingSelect); if(FAILED(hr)){ ErrorMessageBox(IDS_WIATESTERROR_READINGDOCHANDLINGSELECT,hr); }
if(lDocumentHandlingSelect & FEEDER){ // default to feeder settings
m_DocumentSourceComboBox.SetCurSel(DOCUMENT_SOURCE_FEEDER); } else { // default to flatbed settings
m_DocumentSourceComboBox.SetCurSel(DOCUMENT_SOURCE_FLATBED); } LONG lPages = 0; hr = WIA.ReadPropertyLong(WIA_DPS_PAGES,&lPages); if(FAILED(hr)){ ErrorMessageBox(IDS_WIATESTERROR_READINGPAGES,hr); }
TCHAR szPages[MAX_PATH]; memset(szPages,0,sizeof(szPages)); TSPRINTF(szPages,TEXT("%d"),lPages); m_lPages.SetWindowText(szPages); // adjust UI
OnSelchangeDocumentSourceCombobox(); return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CWiaSimpleDocPg::OnSelchangeDocumentSourceCombobox() { if(m_bFirstInit){ m_bFirstInit = FALSE; } else { SetModified(); } if (m_pIRootItem) { INT iCurSel = DOCUMENT_SOURCE_FLATBED; iCurSel = m_DocumentSourceComboBox.GetCurSel(); switch (iCurSel) { case DOCUMENT_SOURCE_FLATBED: m_lPagesText.EnableWindow(FALSE); m_lPages.EnableWindow(FALSE); break; case DOCUMENT_SOURCE_FEEDER: m_lPagesText.EnableWindow(TRUE); m_lPages.EnableWindow(TRUE); break; default: break; } } }
BOOL CWiaSimpleDocPg::OnApply() { HRESULT hr = S_OK; CWiahelper WIA; WIA.SetIWiaItem(m_pIRootItem);
// set pages property
LONG lPages = 0; lPages = (LONG)GetNumberOfPagesToAcquire(); hr = WIA.WritePropertyLong(WIA_DPS_PAGES,lPages); if (FAILED(hr)) { ErrorMessageBox(IDS_WIATESTERROR_WRITINGPAGES,hr); }
// set Document Handling Select property
if(GetSelectedDocumentSource() == DOCUMENT_SOURCE_FLATBED){ hr = WIA.WritePropertyLong(WIA_DPS_DOCUMENT_HANDLING_SELECT,FLATBED); } else { hr = WIA.WritePropertyLong(WIA_DPS_DOCUMENT_HANDLING_SELECT,FEEDER); } if (FAILED(hr)) { ErrorMessageBox(IDS_WIATESTERROR_WRITINGDOCHANDLINGSELECT,hr); }
return CPropertyPage::OnApply(); }
int CWiaSimpleDocPg::GetSelectedDocumentSource() { return m_DocumentSourceComboBox.GetCurSel(); }
int CWiaSimpleDocPg::GetNumberOfPagesToAcquire() { int iPagesToAcquire = 1; TCHAR szPages[MAX_PATH]; memset(szPages,0,sizeof(szPages)); UpdateData(); m_lPages.GetWindowText(szPages,(sizeof(szPages)/sizeof(TCHAR))); TSSCANF(szPages,TEXT("%d"),&iPagesToAcquire); return iPagesToAcquire; }
void CWiaSimpleDocPg::OnUpdateNumberofPagesEditbox() { SetModified(); }
|