Leaked source code of windows server 2003
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.
 
 
 
 
 
 

130 lines
3.5 KiB

/*****************************************************************************
*
* (C) COPYRIGHT MICROSOFT CORPORATION, 2000
*
* TITLE: StillPrc.h
*
* VERSION: 1.0
*
* AUTHOR: OrenR
*
* DATE: 2000/10/27
*
* DESCRIPTION: Handles the Still Image processing
*
*****************************************************************************/
#ifndef _STILLPRC_H_
#define _STILLPRC_H_
/////////////////////////////////////////////////////////////////////////////
// CStillProcessor
class CStillProcessor
{
public:
///////////////////////////////
// SnapshotCallbackParam_t
//
typedef struct tagSnapshotCallbackParam_t
{
class CStillProcessor *pStillProcessor;
} SnapshotCallbackParam_t;
///////////////////////////////
// Constructor
//
CStillProcessor();
///////////////////////////////
// Destructor
//
virtual ~CStillProcessor();
///////////////////////////////
// Init
//
HRESULT Init(class CPreviewGraph *pPreviewGraph);
///////////////////////////////
// Term
//
HRESULT Term();
///////////////////////////////
// CreateImageDir
//
HRESULT CreateImageDir(const CSimpleString *pstrImageDirectory);
///////////////////////////////
// RegisterStillProcessor
//
HRESULT RegisterStillProcessor(IStillSnapshot *pFilterOnCapturePin,
IStillSnapshot *pFilterOnStillPin);
///////////////////////////////
// WaitForNewImage
//
HRESULT WaitForNewImage(UINT uiTimeout,
CSimpleString *pstrNewImageFullPath);
///////////////////////////////
// ProcessImage
//
HRESULT ProcessImage(HGLOBAL hDIB);
///////////////////////////////
// SetTakePicturePending
//
HRESULT SetTakePicturePending(BOOL bPending);
///////////////////////////////
// IsTakePicturePending
//
BOOL IsTakePicturePending();
///////////////////////////////
// SnapshotCallback
//
// This function is called by the
// WIA StreamSnapshot Filter
// in wiasf.ax. It delivers to us
// the newly captured still image.
//
static BOOL SnapshotCallback(HGLOBAL hDIB, LPARAM lParam);
private:
HRESULT CreateFileName(CSimpleString *pstrJPEG,
CSimpleString *pstrBMP);
BOOL DoesDirectoryExist(LPCTSTR pszDirectoryName);
BOOL RecursiveCreateDirectory(const CSimpleString *pstrDirectoryName);
HRESULT ConvertToJPEG(LPCTSTR pszInputFilename,
LPCTSTR pszOutputFilename);
HRESULT SaveToFile(HGLOBAL hDib,
const CSimpleString *pstrJPEG,
const CSimpleString *pstrBMP);
SnapshotCallbackParam_t m_CaptureCallbackParams;
SnapshotCallbackParam_t m_StillCallbackParams;
CSimpleString m_strImageDir;
CSimpleString m_strLastSavedFile;
HANDLE m_hSnapshotReadyEvent;
class CPreviewGraph *m_pPreviewGraph;
// TRUE when caller calls TakePicture on CPreviewGraph
// If image appears asynchronously, as in the case of a hardware
// pushbutton event, this will be FALSE.
BOOL m_bTakePicturePending;
UINT m_uiFileNumStartPoint;
};
#endif // _STILLPRC_H_