/****************************************************************************** stillvue.h Copyright (C) Microsoft Corporation, 1997 - 1998 All rights reserved Notes: THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. ******************************************************************************/ #pragma warning (disable:4001) // ignore '//' comments #define _X86_ 1 #define WIN32_LEAN_AND_MEAN 1 #include #include // Still Image services #include "ntlog.h" // ntlogging APIs #include "resource.h" // resource defines #include #include // rand() #include // strcat #include // srand(time()) #include "winx.h" /***************************************************************************** global defines *****************************************************************************/ #define LONGSTRING 256 #define MEDSTRING 128 #define SHORTSTRING 32 /***************************************************************************** HWEnable states *****************************************************************************/ #define OFF 0 #define ON 1 #define PEEK 2 /***************************************************************************** events *****************************************************************************/ #define STIEVENTARG "StiEvent" #define STIDEVARG "StiDevice" /***************************************************************************** StiSelect contexts *****************************************************************************/ #define AUTO 1 #define EVENT 4 #define MANUAL 8 /***************************************************************************** ErrorLog structure *****************************************************************************/ typedef struct _ERRECORD { // index into current test suite int nIndex; // unique test ID int nTest; // total number of times this test failed int nCount; // TRUE = compliance test failure; FALSE = acceptable error BOOL bFatal; // the actual error returned DWORD dwError; // any associated error string WCHAR szErrorString[MEDSTRING]; // previous / next record _ERRECORD *pPrev; _ERRECORD *pNext; } ERRECORD, *PERRECORD; typedef struct _DEVLOG { // internal device name WCHAR szInternalName[STI_MAX_INTERNAL_NAME_LENGTH]; // friendly device name WCHAR szLocalName[STI_MAX_INTERNAL_NAME_LENGTH]; // pointer to error record structure PERRECORD pRecord; // error total int nError; // previous / next record _DEVLOG *pPrev; _DEVLOG *pNext; } DEVLOG, *PDEVLOG; /***************************************************************************** stillvue.cpp prototypes *****************************************************************************/ BOOL StartAutoTimer(HWND); BOOL ComplianceDialog(HWND); void LogOutput(int,LPSTR,...); VOID DisplayOutput(LPSTR,...); int EndTest(HWND,int); void FatalError(char *); BOOL FirstInstance(HANDLE); void Help(); HWND MakeWindow(HANDLE); BOOL ParseCmdLine(LPSTR); BOOL CommandParse(HWND,UINT,WPARAM,LPARAM); BOOL Creation(HWND,UINT,WPARAM,LPARAM); BOOL Destruction(HWND,UINT,WPARAM,LPARAM); BOOL HScroll(HWND,UINT,WPARAM,LPARAM); BOOL VScroll(HWND,UINT,WPARAM,LPARAM); BOOL NTLogInit(); BOOL NTLogEnd(); BOOL FAR PASCAL Compliance(HWND,UINT,WPARAM,LPARAM); BOOL FAR PASCAL Settings(HWND,UINT,WPARAM,LPARAM); long FAR PASCAL WiskProc(HWND,UINT,WPARAM,LPARAM); /***************************************************************************** wsti.cpp prototypes *****************************************************************************/ int ClosePrivateList(PDEVLOG *); void DisplayLogPassFail(BOOL); int InitPrivateList(PDEVLOG *,int *); int NextStiDevice(); void StiDisplayError(HRESULT,char *,BOOL); HRESULT StiEnumPrivate(PVOID *,DWORD *); int StiSelect(HWND,int,BOOL *); void IStillDeviceMenu(DWORD); void IStillImageMenu(DWORD); void IStillNameMenu(DWORD); void IStillScanMenu(DWORD); HRESULT StiClose(BOOL *); HRESULT StiCreateInstance(BOOL *); HRESULT StiDeviceRelease(BOOL *); HRESULT StiDiagnostic(BOOL *); HRESULT StiEnableHwNotification(LPWSTR,int *,BOOL *); HRESULT StiEnum(BOOL *); HRESULT StiEscape(DWORD,char *,BOOL *); HRESULT StiEvent(HWND); HRESULT StiGetCaps(BOOL *); HRESULT StiGetDeviceValue(LPWSTR,LPWSTR,LPBYTE,DWORD *,DWORD,BOOL *); HRESULT StiGetDeviceInfo(LPWSTR,BOOL *); HRESULT StiGetLastErrorInfo(BOOL *); HRESULT StiGetStatus(int,BOOL *); HRESULT StiImageRelease(BOOL *); HRESULT StiRawReadData(char *,LPDWORD,BOOL *); HRESULT StiRawWriteData(char *,DWORD,BOOL *); HRESULT StiRawReadCommand(char *,LPDWORD,BOOL *); HRESULT StiRawWriteCommand(char *,DWORD,BOOL *); HRESULT StiRefresh(LPWSTR,BOOL *); HRESULT StiRegister(HWND,HINSTANCE,int,BOOL *); HRESULT StiReset(BOOL *); HRESULT StiSetDeviceValue(LPWSTR,LPWSTR,LPBYTE,DWORD,DWORD,BOOL *); HRESULT StiSubscribe(BOOL *); HRESULT StiWriteErrLog(DWORD,LPCWSTR,BOOL *); BOOL FAR PASCAL SelectDevice(HWND,UINT,WPARAM,LPARAM); /***************************************************************************** acquire.cpp prototypes *****************************************************************************/ int IsScanDevice(PSTI_DEVICE_INFORMATION); void StiLamp(int); INT StiScan(HWND); INT CreateScanDIB(HWND); INT DeleteScanDIB(); INT DisplayScanDIB(HWND); HRESULT WINAPI SendDeviceCommandString(PSTIDEVICE,LPSTR,...); HRESULT WINAPI TransactDevice(PSTIDEVICE,LPSTR,UINT,LPSTR,...); /***************************************************************************** winx.cpp prototypes *****************************************************************************/ BOOL GetFinalWindow (HANDLE hInst,LPRECT lprRect,LPSTR lpzINI,LPSTR lpzSection); BOOL SaveFinalWindow (HANDLE hInst,HWND hWnd,LPSTR lpzINI,LPSTR lpzSection); BOOL LastError(BOOL bNewOnly); BOOL ErrorMsg(HWND hWnd, LPSTR lpzMsg, LPSTR lpzCaption, BOOL bFatal); int NextToken(char *pDest,char *pSrc);