|
|
/*******************************************************************************
* * (C) COPYRIGHT MICROSOFT CORPORATION, 1998 * * TITLE: SCANPROC.H * * VERSION: 1.0 * * AUTHOR: ShaunIv * * DATE: 10/7/1999 * * DESCRIPTION: Scan threads * *******************************************************************************/ #ifndef __SCANPROC_H_INCLUDED
#define __SCANPROC_H_INCLUDED
#include "scanntfy.h" // Registered windows messages names
#include "memdib.h"
#include "simevent.h"
#include "itranhlp.h"
#include "wiadevdp.h"
class CScanPreviewThread : public IWiaDataCallback { private: DWORD m_dwIWiaItemCookie; HWND m_hwndPreview; HWND m_hwndNotify; POINT m_ptOrigin; SIZE m_sizeResolution; SIZE m_sizeExtent; UINT m_nMsgBegin; UINT m_nMsgEnd; UINT m_nMsgProgress; CMemoryDib m_sImageData; CSimpleEvent m_sCancelEvent;
bool m_bFirstTransfer; UINT m_nImageSize;
private: // No implementation
CScanPreviewThread( const CScanPreviewThread & ); CScanPreviewThread(void); CScanPreviewThread &operator=( const CScanPreviewThread & ); private:
// These interfaces are all private to make sure that nobody tries to instantiate this class directly
// Constructor
CScanPreviewThread( DWORD dwIWiaItemCookie, // specifies the entry in the global interface table
HWND hwndPreview, // handle to the preview window
HWND hwndNotify, // handle to the window that receives notifications
const POINT &ptOrigin, // Origin
const SIZE &sizeResolution, // Resolution
const SIZE &sizeExtent, // Extent
const CSimpleEvent &CancelEvent // Cancel event
); // Destructor
~CScanPreviewThread(void);
static DWORD ThreadProc( LPVOID pParam ); bool Scan(void); HRESULT ScanBandedTransfer( IWiaItem *pIWiaItem ); public: static HANDLE Scan( DWORD dwIWiaItemCookie, // specifies the entry in the global interface table
HWND hwndPreview, // handle to the preview window
HWND hwndNotify, // handle to the window that receives notifications
const POINT &ptOrigin, // Origin
const SIZE &sizeResolution, // Resolution
const SIZE &sizeExtent, // Extent
const CSimpleEvent &CancelEvent // Cancel event name
);
public: // IUnknown
STDMETHODIMP QueryInterface( REFIID riid, LPVOID *ppvObject ); STDMETHODIMP_(ULONG) AddRef(void); STDMETHODIMP_(ULONG) Release(void);
// IWiaDataCallback
STDMETHODIMP BandedDataCallback( LONG, LONG, LONG, LONG, LONG, LONG, LONG, PBYTE ); };
class CScanToFileThread { private: DWORD m_dwIWiaItemCookie; HWND m_hwndNotify; UINT m_nMsgBegin, m_nMsgEnd, m_nMsgProgress; GUID m_guidFormat; CSimpleStringWide m_strFilename;
private: // No implementation
CScanToFileThread( const CScanToFileThread & ); CScanToFileThread(void); CScanToFileThread &operator=( const CScanToFileThread & ); private: // These interfaces are all private to make sure that nobody tries to instantiate this class directly
CScanToFileThread( DWORD dwIWiaItemCookie, // specifies the entry in the global interface table
HWND hwndNotify, // handle to the window that receives notifications
GUID guidFormat, // Image format
const CSimpleStringWide &strFilename // Filename to save to
); ~CScanToFileThread(void);
static DWORD ThreadProc( LPVOID pParam ); bool Scan(void); public: static HANDLE Scan( DWORD dwIWiaItemCookie, // specifies the entry in the global interface table
HWND hwndNotify, // handle to the window that receives notifications
GUID guidFormat, // Image format
const CSimpleStringWide &strFilename // Filename to save to
); };
#endif
|