windows-nt/Source/XPSP1/NT/printscan/wia/test/msqscan/msqscandlg.h

178 lines
4.7 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
// MSQSCANDlg.h : header file
//
#ifndef _MSQSCANDLG_H
#define _MSQSCANDLG_H
#include "Preview.h"
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define PREVIEW_RES 100
#include "datatypes.h"
#define ID_WIAEVENT_CONNECT 0
#define ID_WIAEVENT_DISCONNECT 1
/////////////////////////////////////////////////////////////////////////////
// CEventCallback
class CEventCallback : public IWiaEventCallback
{
private:
ULONG m_cRef; // Object reference count.
int m_EventID; // What kind of event is this callback for?
public:
IUnknown *m_pIUnkRelease; // release server registration
public:
// Constructor, initialization and destructor methods.
CEventCallback();
~CEventCallback();
// IUnknown members that delegate to m_pUnkRef.
HRESULT _stdcall QueryInterface(const IID&,void**);
ULONG _stdcall AddRef();
ULONG _stdcall Release();
HRESULT _stdcall Initialize(int EventID);
HRESULT _stdcall ImageEventCallback(
const GUID *pEventGUID,
BSTR bstrEventDescription,
BSTR bstrDeviceID,
BSTR bstrDeviceDescription,
DWORD dwDeviceType,
BSTR bstrFullItemName,
ULONG *plEventType,
ULONG ulReserved);
};
/////////////////////////////////////////////////////////////////////////////
// CMSQSCANDlg dialog
class CMSQSCANDlg : public CDialog
{
// Construction
public:
CMSQSCANDlg(CWnd* pParent = NULL); // standard constructor
//
// events callback
//
CEventCallback* m_pConnectEventCB;
//
// scanner preview window
//
CPreview m_PreviewWindow;
//
// WIA components, WIA device manager, and WIA Wrapper object
//
IWiaDevMgr *m_pIWiaDevMgr;
CWIA m_WIA;
//
// Data transfer, thread information structure
//
DATA_ACQUIRE_INFO m_DataAcquireInfo;
ADF_SETTINGS m_ADFSettings;
//
// UI <--> device settings helpers
//
BOOL InitDialogSettings();
BOOL InitResolutionEditBoxes();
BOOL InitDataTypeComboBox();
BOOL InitContrastSlider();
BOOL InitBrightnessSlider();
BOOL InitFileTypeComboBox();
BOOL ResetWindowExtents();
BOOL ReadADFSettings(ADF_SETTINGS *pADFSettings);
BOOL WriteADFSettings(ADF_SETTINGS *pADFSettings);
BOOL WriteScannerSettingsToDevice(BOOL bPreview = FALSE);
//
// UI helpers
//
INT GetIDAndStringFromGUID(GUID guidFormat, TCHAR *pszguidString);
GUID GetGuidFromID(INT iID);
INT GetIDAndStringFromDataType(LONG lDataType, TCHAR *pszguidString);
LONG GetDataTypeFromID(INT iID);
BOOL SetDeviceNameToWindowTitle(BSTR bstrDeviceName);
//
// Image (clipboard manipulation) helpers
//
BOOL PutDataOnClipboard();
VOID VerticalFlip(BYTE *pBuf);
// Dialog Data
//{{AFX_DATA(CMSQSCANDlg)
enum { IDD = IDD_MSQSCAN_DIALOG };
CButton m_ChangeBothResolutionsCheckBox;
CSpinButtonCtrl m_YResolutionBuddy;
CSpinButtonCtrl m_XResolutionBuddy;
CButton m_ScanButton;
CButton m_PreviewButton;
CComboBox m_FileTypeComboBox;
CComboBox m_DataTypeComboBox;
CSliderCtrl m_ContrastSlider;
CSliderCtrl m_BrightnessSlider;
CStatic m_PreviewRect;
CString m_MAX_Brightness;
CString m_MAX_Contrast;
CString m_MIN_Brightness;
CString m_MIN_Contrast;
long m_XResolution;
long m_YResolution;
CButton m_DataToFile;
CButton m_DataToClipboard;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMSQSCANDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CMSQSCANDlg)
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnDeltaposEditXresSpinBuddy(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDeltaposEditYresSpinBuddy(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSetfocusEditXres();
afx_msg void OnKillfocusEditXres();
afx_msg void OnKillfocusEditYres();
afx_msg void OnSetfocusEditYres();
afx_msg void OnScanButton();
afx_msg void OnPreviewButton();
afx_msg void OnFileClose();
afx_msg void OnFileSelectDevice();
afx_msg void OnAdfSettings();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MSQSCANDLG_H__E1A2B3DB_C967_47EF_8487_C4F243D0BC58__INCLUDED_)