|
|
/******************************************************************************
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 <windows.h>
#include <sti.h> // Still Image services
#include "ntlog.h" // ntlogging APIs
#include "resource.h" // resource defines
#include <stdio.h>
#include <stdlib.h> // rand()
#include <string.h> // strcat
#include <time.h> // 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);
|