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.
 
 
 
 
 
 

706 lines
22 KiB

//=============================================================================
// (c) Copyright Wang Laboratories, Inc. 1995 All rights reserved.
//-----------------------------------------------------------------------------
//
// Project: Norway
//
// Component: ScanOCX
//
// File Name: ImagePPG.cpp
//
// Class: CImagePropertyPage
//
// Description:
// Implementation of the CImagePropertyPage property page class.
//
//-----------------------------------------------------------------------------
// Maintenance Log:
/*
$Header: S:\products\wangview\norway\scanocx\imageppg.cpv 1.10 14 Feb 1996 10:01:34 RWR $
$Log: S:\products\wangview\norway\scanocx\imageppg.cpv $
Rev 1.10 14 Feb 1996 10:01:34 RWR
Rename "scan.h" to "ocxscan.h" to fix header file name conflict
Rev 1.9 09 Feb 1996 10:13:10 PAJ
Added AWD support flag.
Rev 1.8 05 Oct 1995 11:43:52 PAJ
Change default compression info to compress LTR from expand LTR.
Rev 1.7 14 Aug 1995 16:03:58 PAJ
Improve the property handling.
Rev 1.6 10 Aug 1995 12:03:44 PAJ
Change the mapping of filetypes to compression options.
Rev 1.5 21 Jul 1995 10:41:40 PAJ
Use string resources for combobox defaults.
Rev 1.4 30 Jun 1995 14:48:00 MFH
Changed call to showpagetypedlg to call CPagePropSheet class
Rev 1.3 19 Jun 1995 10:35:46 PAJ
Remove the SetCmpInfo() routine and replaced with SetDlgItemInt(),
which the int is now 32 bits.
Rev 1.2 14 Jun 1995 09:17:16 PAJ
Made changes to support multiByte character sets.
Rev 1.1 01 Jun 1995 09:07:00 PAJ
Changes to reflect the removal and changes to the properties.
Rev 1.0 04 May 1995 08:56:06 PAJ
Initial entry
*/
// ----------------------------> Includes <-------------------------------
#include "stdafx.h"
#include "imagscan.h"
#include "imageppg.h"
#include "pagedll.h"
#include "ocxscan.h"
extern BOOL g_bSupportAWD; // Flag to specify AWD support
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
/****************************************************************************
Compression Types vs. Coding Options
Certain options are not allowed, depending upon the compression type
selected. The following table represents what is done:
Packed Lines (Not Byte Align) codes
| EOL codes
| | Begin with EOL
| | | Left to Right
| | | | Compression/Quality
| | | | | Compression Group Box
| | | | | |
| | | | | | | Negate
-------------------------------------------
Unknown | G | G | G | G | G N | G N | G |
Uncompressed | G | G | G | | G N | N | |
CCITT 1D | X | G X | G X | | G N | N | |
TIFF CCITT 1D | G | G | G | | G N | N | |
CCITT 2D | G X | G | G | | G N | N | |
Packbits | G | G | G | | G N | N | |
JPEG | G | G | G | G | N | N | G |
-------------------------------------------
G = grayed out
X = checked
N = Not Available
****************************************************************************/
static struct
{
unsigned PackLines : 1;
unsigned EndOfLine : 1;
unsigned BeginWithEOL : 1;
unsigned LeftToRight : 1;
unsigned JPEGCmpInfo : 1;
unsigned CmpInfoGroup : 1;
unsigned Negate : 1;
} Active[7] =
{
{ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE }, /* Unknown */
{ FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE }, /* Uncompressed */
{ TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE }, /* CCITT 1D */
{ FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE }, /* TIFF CCITT 1D */
{ FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE }, /* PackBits */
{ FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE }, /* CCITT 2D */
{ FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE } /* JPEG */
};
static struct
{
unsigned PackLines : 1;
unsigned EndOfLine : 1;
unsigned BeginWithEOL : 1;
unsigned LeftToRight : 1;
unsigned Negate : 1;
} Checked[7] =
{
{ FALSE, FALSE, FALSE, FALSE }, /* Unknown */
{ FALSE, FALSE, FALSE, FALSE }, /* Uncompressed */
{ TRUE, TRUE, TRUE, FALSE }, /* CCITT 1D */
{ FALSE, FALSE, FALSE, FALSE }, /* TIFF CCITT 1D */
{ FALSE, FALSE, FALSE, FALSE }, /* PackBits */
{ TRUE, FALSE, FALSE, FALSE }, /* CCITT 2D */
{ FALSE, FALSE, FALSE, FALSE } /* JPEG */
};
/////////////////////////////////////////////////////////////////////////////
// CImagePropertyPage dialog
IMPLEMENT_DYNCREATE(CImagePropertyPage, COlePropertyPage)
/////////////////////////////////////////////////////////////////////////////
// Message map
BEGIN_MESSAGE_MAP(CImagePropertyPage, COlePropertyPage)
//{{AFX_MSG_MAP(CImagePropertyPage)
ON_CBN_SELCHANGE(IDC_COMPRESSIONTYPE, OnSelchangeCompressiontype)
ON_CBN_SELCHANGE(IDC_FILETYPE, OnSelchangeFiletype)
ON_BN_CLICKED(IDC_OPTIONSBUTTON, OnOptionsbutton)
ON_CBN_SELCHANGE(IDC_PAGETYPE, OnSelchangePagetype)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Initialize class factory and guid
IMPLEMENT_OLECREATE_EX(CImagePropertyPage, "CImagePropertyPage0.CImagePropertyPage",
0x64455860, 0x5153, 0x101c, 0x81, 0x6f, 0xe, 0x60, 0x13, 0x11, 0x4b, 0x7f)
/////////////////////////////////////////////////////////////////////////////
// CImagePropertyPage::CImagePropertyPageFactory::UpdateRegistry -
// Adds or removes system registry entries for CImagePropertyPage
BOOL CImagePropertyPage::CImagePropertyPageFactory::UpdateRegistry(BOOL bRegister)
{
// TODO: Define string resource for page type; replace '0' below with ID.
if (bRegister)
return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
m_clsid, IDS_IMAGEPPG);
else
return AfxOleUnregisterClass(m_clsid, NULL);
}
/////////////////////////////////////////////////////////////////////////////
// CImagePropertyPage::CImagePropertyPage - Constructor
// TODO: Define string resource for page caption; replace '0' below with ID.
CImagePropertyPage::CImagePropertyPage() :
COlePropertyPage(IDD, IDS_IMAGEPPG_CAPTION)
{
//{{AFX_DATA_INIT(CImagePropertyPage)
m_nCmpType = CTL_SCAN_CMPTYPE_G31DMODHUFF-1;
m_nFileType = CTL_SCAN_FILETYPE_TIFF-1;
m_nPageType = CTL_SCAN_PAGETYPE_BLACKANDWHITE-1;
m_lCompressionInfo = CTL_SCAN_CMPINFO_CMPLTR;
m_nCmpTypeStore = CTL_SCAN_CMPTYPE_G31DMODHUFF-1;
//}}AFX_DATA_INIT
m_nTempCmpInfoJPEG = CTL_SCAN_CMPINFO_JPEGMEDMED;
m_nTempCmpType = CTL_SCAN_CMPTYPE_G31DMODHUFF-1;
m_lTempCmpInfoTIFF = CTL_SCAN_CMPINFO_CMPLTR;
}
/////////////////////////////////////////////////////////////////////////////
// CImagePropertyPage::DoDataExchange - Moves data between page and properties
void CImagePropertyPage::DoDataExchange(CDataExchange* pDX)
{
int nFileIndex = 0;
int nFileIndex1 = 0;
int nPageIndex = 0;
if ( ::IsWindow(m_FileType.m_hWnd) )
{
if ( m_FileType.GetCount() == 0 )
{
WORD wString;
CString szTemp;
for (wString=IDS_TIFF; wString<=IDS_BMP; wString++)
{
if ( (g_bSupportAWD) || (wString != IDS_AWD) )
{
szTemp.LoadString(wString);
m_FileType.AddString(szTemp);
}
}
}
nFileIndex = m_FileType.AddString(_T(""));
nFileIndex1 = m_FileType.AddString(_T(""));
}
if ( ::IsWindow(m_PageType.m_hWnd) )
{
if ( m_PageType.GetCount() == 0 )
{
WORD wString;
CString szTemp;
for (wString=IDS_BLACKANDWHITE; wString<=IDS_TRUECOLOR; wString++)
{
szTemp.LoadString(wString);
m_PageType.AddString(szTemp);
}
}
nPageIndex = m_PageType.AddString(_T(""));
}
if ( pDX->m_bSaveAndValidate )
{
int nFileType = m_FileType.GetCurSel()+1;
if ( (!g_bSupportAWD) && (nFileType >= CTL_SCAN_FILETYPE_AWD) ) nFileType++;
m_FileType.SetCurSel(nFileType);
m_PageType.SetCurSel(m_PageType.GetCurSel()+1);
}
// NOTE: ClassWizard will add DDP, DDX, and DDV calls here
// DO NOT EDIT what you see in these blocks of generated code !
//{{AFX_DATA_MAP(CImagePropertyPage)
DDX_Control(pDX, IDC_STATIC_PAGETYPE, m_PageTypeStatic);
DDX_Control(pDX, IDC_COMPRESSIONTYPE_STORE, m_CmpTypeStore);
DDX_Control(pDX, IDC_CMPINFO_STORE, m_CmpInfoStore);
DDX_Control(pDX, IDC_COMPRESSION, m_CmpGroup);
DDX_Control(pDX, IDC_COMPRESSIONINFO, m_CmpInfo);
DDX_Control(pDX, IDC_PAGETYPE, m_PageType);
DDX_Control(pDX, IDC_STATIC_COMPRESSIONTYPE, m_CmpTypeText);
DDX_Control(pDX, IDC_FILETYPE, m_FileType);
DDX_Control(pDX, IDC_COMPRESSIONTYPE, m_CmpType);
DDX_CBIndex(pDX, IDC_COMPRESSIONTYPE, m_nCmpType);
DDP_CBIndex(pDX, IDC_FILETYPE, m_nFileType, _T("FileType") );
DDX_CBIndex(pDX, IDC_FILETYPE, m_nFileType);
DDP_CBIndex(pDX, IDC_PAGETYPE, m_nPageType, _T("PageType") );
DDX_CBIndex(pDX, IDC_PAGETYPE, m_nPageType);
DDP_Text(pDX, IDC_CMPINFO_STORE, m_lCompressionInfo, _T("CompressionInfo") );
DDX_Text(pDX, IDC_CMPINFO_STORE, m_lCompressionInfo);
DDP_Text(pDX, IDC_COMPRESSIONTYPE_STORE, m_nCmpTypeStore, _T("CompressionType") );
DDX_Text(pDX, IDC_COMPRESSIONTYPE_STORE, m_nCmpTypeStore);
//}}AFX_DATA_MAP
DDP_PostProcessing(pDX);
if ( ::IsWindow(m_FileType.m_hWnd) )
{
int nFileType = m_FileType.GetCurSel()-1;
if ( (!g_bSupportAWD) && (nFileType >= CTL_SCAN_FILETYPE_AWD) ) nFileType--;
m_FileType.SetCurSel(nFileType);
if (nFileIndex1) m_FileType.DeleteString(nFileIndex1);
if (nFileIndex) m_FileType.DeleteString(nFileIndex);
}
if ( ::IsWindow(m_PageType.m_hWnd) )
{
m_PageType.SetCurSel(m_PageType.GetCurSel()-1);
if (nPageIndex) m_PageType.DeleteString(nPageIndex);
}
if ( pDX->m_bSaveAndValidate == FALSE )
{
for (int i=0; i<9; i++)
{
if ( m_lCompressionInfo == (CTL_SCAN_CMPINFO_JPEG << i) )
{
m_nTempCmpInfoJPEG = i;
break;
}
}
if ( (m_nFileType == CTL_SCAN_FILETYPE_TIFF) &&
(m_nPageType == CTL_SCAN_PAGETYPE_BLACKANDWHITE) )
{
m_nTempCmpType = m_nCmpTypeStore-1;
m_lTempCmpInfoTIFF = m_lCompressionInfo;
}
if ( ::IsWindow(m_FileType.m_hWnd) )
OnSelchangeFiletype();
}
}
/////////////////////////////////////////////////////////////////////////////
// CImagePropertyPage message handlers
//
// OnSelchangeCompressiontype
//
// Description - Make changes based on compression type selection.
// Remark - Keep the index in temp variable and set compression options.
// Parameters
// None.
// Return
// None.
//
void CImagePropertyPage::OnSelchangeCompressiontype()
{
WORD wOptions = CTL_SCAN_CMPTYPE_UNKNOWN;
int nTempCmpIndex = m_CmpType.GetCurSel();
int nPageType = m_PageType.GetCurSel()+1;
int nFileType = m_FileType.GetCurSel()+1;
if ( (!g_bSupportAWD) && (nFileType >= CTL_SCAN_FILETYPE_AWD) ) nFileType++;
switch ( nFileType )
{
case CTL_SCAN_FILETYPE_TIFF:
if ( nPageType == CTL_SCAN_PAGETYPE_BLACKANDWHITE )
{
wOptions = nTempCmpIndex+1;
m_nTempCmpType = nTempCmpIndex;
}
else
{
if ( nTempCmpIndex == (CTL_SCAN_CMPTYPE_UNCOMPRESSED-1) )
{
m_CmpInfo.EnableWindow(FALSE);
m_CmpInfoStore.EnableWindow(FALSE);
}
else
{
nTempCmpIndex = CTL_SCAN_CMPTYPE_JPEG-1;
wOptions = CTL_SCAN_CMPTYPE_JPEG;
m_CmpInfo.EnableWindow(TRUE);
m_CmpInfoStore.EnableWindow(TRUE);
}
}
break;
// case CTL_SCAN_FILETYPE_JPEG:
// case CTL_SCAN_FILETYPE_PCX:
// case CTL_SCAN_FILETYPE_DCX:
case CTL_SCAN_FILETYPE_AWD:
case CTL_SCAN_FILETYPE_BMP:
default:
break;
}
SetDlgItemInt(IDC_COMPRESSIONTYPE_STORE, nTempCmpIndex+1);
SetOptions(wOptions);
if ( (nFileType == CTL_SCAN_FILETYPE_TIFF) &&
(nPageType == CTL_SCAN_PAGETYPE_BLACKANDWHITE) )
{
m_lTempCmpInfoTIFF = GetDlgItemInt(IDC_CMPINFO_STORE);
}
}
//
// SetOptions
//
// Description - Set the compression options based on the compression type.
// Remark - These settings use the tables at the beginning.
// Parameters
// WORD - Compression Type index to base the compression info on.
// Return
// None.
//
void CImagePropertyPage::SetOptions (WORD wIndex)
{
long lCompressionInfo = 0;
if ( Checked[wIndex].PackLines )
lCompressionInfo |= CTL_SCAN_CMPINFO_PACKLINES;
else
lCompressionInfo &= ~CTL_SCAN_CMPINFO_PACKLINES;
if ( Checked[wIndex].EndOfLine )
lCompressionInfo |= CTL_SCAN_CMPINFO_EOLS;
else
lCompressionInfo &= ~CTL_SCAN_CMPINFO_EOLS;
if ( Checked[wIndex].BeginWithEOL )
lCompressionInfo |= CTL_SCAN_CMPINFO_PREEOLS;
else
lCompressionInfo &= ~CTL_SCAN_CMPINFO_PREEOLS;
if ( Checked[wIndex].LeftToRight )
{
lCompressionInfo |= CTL_SCAN_CMPINFO_CMPLTR;
lCompressionInfo &= ~CTL_SCAN_CMPINFO_EXPLTR;
}
else
{
lCompressionInfo &= ~CTL_SCAN_CMPINFO_CMPLTR;
lCompressionInfo |= CTL_SCAN_CMPINFO_EXPLTR;
}
if ( Checked[wIndex].Negate )
lCompressionInfo |= CTL_SCAN_CMPINFO_NEGATE;
else
lCompressionInfo &= ~CTL_SCAN_CMPINFO_NEGATE;
// Check if JPEG or other compression type
if ( wIndex == CTL_SCAN_CMPTYPE_JPEG )
{
lCompressionInfo = (CTL_SCAN_CMPINFO_JPEG << m_nTempCmpInfoJPEG);
}
else
{
if ( wIndex == CTL_SCAN_CMPTYPE_UNKNOWN )
lCompressionInfo = CTL_SCAN_CMPINFO_UNKNOWN;
else
lCompressionInfo &= CTL_SCAN_CMPINFO_MASK;
}
SetDlgItemInt(IDC_CMPINFO_STORE, lCompressionInfo);
return;
}
//
// OnSelchangeFiletype
//
// Description - Make dialog changes based on the file type selected.
// Remark - Handle Selchange message.
// Parameters
// None.
// Return
// None.
//
void CImagePropertyPage::OnSelchangeFiletype()
{
CString szTemp;
m_CmpType.ResetContent();
BOOL bPageType, bOtherTypes, bCmpInfo;
int nIndex;
int nPageType = m_PageType.GetCurSel()+1;
int nTempCmpType = GetDlgItemInt(IDC_COMPRESSIONTYPE_STORE);
long nTempCmpInfo;
// Check the Filetype
int nFileType = m_FileType.GetCurSel()+1;
if ( (!g_bSupportAWD) && (nFileType >= CTL_SCAN_FILETYPE_AWD) ) nFileType++;
switch ( nFileType )
{
case CTL_SCAN_FILETYPE_TIFF:
bPageType = TRUE;
bOtherTypes = TRUE;
bCmpInfo = TRUE;
// Check if b\w is set
if ( nPageType == CTL_SCAN_PAGETYPE_BLACKANDWHITE )
{
// Yes, Add b/w options
WORD wString;
for (wString=IDS_UNCOMPRESSED; wString<IDS_JPEG; wString++)
{
szTemp.LoadString(wString);
m_CmpType.AddString(szTemp);
}
nIndex = m_nTempCmpType;
nTempCmpInfo = m_lTempCmpInfoTIFF;
}
else
{
// Other page types have uncompressed and sometimes JPEG
szTemp.LoadString(IDS_UNCOMPRESSED);
m_CmpType.AddString(szTemp);
// Check if JPEG supported and if so add it
if ( (nPageType == CTL_SCAN_PAGETYPE_GRAY8) ||
(nPageType == CTL_SCAN_PAGETYPE_RGB24) )
{
szTemp.LoadString(IDS_JPEG);
nIndex = m_CmpType.AddString(szTemp);
// JPEG just reset CmpInfo
if ( nTempCmpType == CTL_SCAN_CMPTYPE_JPEG )
nTempCmpInfo = (CTL_SCAN_CMPINFO_JPEG << m_nTempCmpInfoJPEG);
else
{
// Only other choice is Uncompressed
if ( nTempCmpType == CTL_SCAN_CMPTYPE_UNCOMPRESSED )
{
nIndex = CTL_SCAN_CMPTYPE_UNCOMPRESSED-1;
nTempCmpType = CTL_SCAN_CMPTYPE_UNCOMPRESSED;
nTempCmpInfo = CTL_SCAN_CMPINFO_UNKNOWN;
bCmpInfo = FALSE;
}
else
{
// Not Uncompressed, default these to JPEG
nTempCmpType = CTL_SCAN_CMPTYPE_JPEG;
m_nTempCmpInfoJPEG = 0;
nTempCmpInfo = (CTL_SCAN_CMPINFO_JPEG << m_nTempCmpInfoJPEG);
}
}
}
else
{
// Not a JPEG page type; Only Uncompressed available...
nIndex = CTL_SCAN_CMPTYPE_UNCOMPRESSED-1;
nTempCmpType = CTL_SCAN_CMPTYPE_UNCOMPRESSED;
nTempCmpInfo = CTL_SCAN_CMPINFO_UNKNOWN;
bOtherTypes = FALSE;
bCmpInfo = FALSE;
}
}
m_CmpType.SetCurSel(nIndex);
SetDlgItemInt(IDC_COMPRESSIONTYPE_STORE, nTempCmpType);
SetDlgItemInt(IDC_CMPINFO_STORE, nTempCmpInfo);
break;
case CTL_SCAN_FILETYPE_AWD:
szTemp.LoadString(IDS_UNCOMPRESSED);
m_CmpType.AddString(szTemp);
m_CmpType.SetCurSel(CTL_SCAN_CMPTYPE_UNCOMPRESSED-1);
SetDlgItemInt(IDC_COMPRESSIONTYPE_STORE, CTL_SCAN_CMPTYPE_UNCOMPRESSED);
SetDlgItemInt(IDC_CMPINFO_STORE, CTL_SCAN_CMPINFO_UNKNOWN);
m_PageType.SetCurSel(CTL_SCAN_PAGETYPE_BLACKANDWHITE-1);
bPageType = FALSE;
bOtherTypes = FALSE;
bCmpInfo = FALSE;
break;
case CTL_SCAN_FILETYPE_BMP:
szTemp.LoadString(IDS_UNCOMPRESSED);
m_CmpType.AddString(szTemp);
m_CmpType.SetCurSel(CTL_SCAN_CMPTYPE_UNCOMPRESSED-1);
SetDlgItemInt(IDC_COMPRESSIONTYPE_STORE, CTL_SCAN_CMPTYPE_UNCOMPRESSED);
SetDlgItemInt(IDC_CMPINFO_STORE, CTL_SCAN_CMPINFO_UNKNOWN);
bPageType = TRUE;
bOtherTypes = FALSE;
bCmpInfo = FALSE;
break;
// case CTL_SCAN_FILETYPE_JPEG:
// case CTL_SCAN_FILETYPE_PCX:
// case CTL_SCAN_FILETYPE_DCX:
default:
bPageType = FALSE;
bOtherTypes = FALSE;
bCmpInfo = FALSE;
break;
}
m_PageType.EnableWindow(bPageType);
m_PageTypeStatic.EnableWindow(bPageType);
m_CmpType.EnableWindow(bOtherTypes);
m_CmpTypeText.EnableWindow(bOtherTypes);
m_CmpGroup.EnableWindow(bOtherTypes);
m_CmpInfo.EnableWindow(bCmpInfo);
m_CmpInfoStore.EnableWindow(bCmpInfo);
}
//
// OnOptionsbutton
//
// Description - Display the pagedll dialog with filetype, pagetype and Compressiontype.
// Remark - Use the current settings to initialize the dialog.
// Reset the values on TRUE exit from the dialog.
// Parameters
// None.
// Return
// None.
//
void CImagePropertyPage::OnOptionsbutton()
{
CString szTitle;
szTitle.LoadString(IDS_SCANDLG_PAGEOPTIONS);
CPagePropSheet CPageSheet(szTitle, this);
CPageSheet.AddFileTypePage();
CPageSheet.AddColorPage();
CPageSheet.AddCompressionPage();
int nFileType = m_FileType.GetCurSel()+1;
if ( (!g_bSupportAWD) && (nFileType >= CTL_SCAN_FILETYPE_AWD) ) nFileType++;
CPageSheet.SetDefaultFileType(nFileType);
CPageSheet.SetDefaultColor(m_PageType.GetCurSel()+1);
int nTempCmpType = GetDlgItemInt(IDC_COMPRESSIONTYPE_STORE);
CPageSheet.SetDefaultCompType(nTempCmpType);
long lCompInfo = GetDlgItemInt(IDC_CMPINFO_STORE);
CPageSheet.SetDefaultCompOpts(lCompInfo);
if ( CPageSheet.DoModal() == IDOK )
{
int nFileType = CPageSheet.GetFileType();
if ( (!g_bSupportAWD) && (nFileType >= CTL_SCAN_FILETYPE_AWD) ) nFileType--;
m_FileType.SetCurSel(nFileType-1);
int nPageType = CPageSheet.GetColor();
m_PageType.SetCurSel(nPageType-1);
////******** Check return from pagedll!! **************
// JPEG is equal and others are one more.......
nTempCmpType = CPageSheet.GetCompType();
SetDlgItemInt(IDC_COMPRESSIONTYPE_STORE, nTempCmpType);
////******** Check return from pagedll!! **************
lCompInfo = CPageSheet.GetCompOpts();
if ( nFileType == CTL_SCAN_FILETYPE_TIFF )
{
if ( nPageType == CTL_SCAN_PAGETYPE_BLACKANDWHITE )
{
lCompInfo &= CTL_SCAN_CMPINFO_MASK;
m_nTempCmpType = nTempCmpType;
m_lTempCmpInfoTIFF = lCompInfo;
}
else
{
if ( (nPageType == CTL_SCAN_PAGETYPE_GRAY8) ||
(nPageType == CTL_SCAN_PAGETYPE_RGB24) )
{
lCompInfo &= ~CTL_SCAN_CMPINFO_MASK;
for (int i=0; i<9; i++)
{
if ( lCompInfo == (CTL_SCAN_CMPINFO_JPEG << i) )
{
m_nTempCmpInfoJPEG = i;
break;
}
}
}
else
lCompInfo &= CTL_SCAN_CMPINFO_MASK;
}
}
SetDlgItemInt(IDC_CMPINFO_STORE, lCompInfo);
OnSelchangeFiletype();
}
}
//
// OnSelchangePagetype
//
// Description - Make changes based on page type selection.
// Remark - Use the current index to set compression options.
// Parameters
// None.
// Return
// None.
//
void CImagePropertyPage::OnSelchangePagetype()
{
OnSelchangeFiletype();
}