/************************************************************************************** Copyright (C) 1999 by Socket Communications, All Rights Reserved. MODULE: ScanAPI.h PURPOSE: Include file for the Socket Scanner API. DESCRIPTION: Currently supports only one scanner. COMMENTS: Initial coding on 9/2/99 by Gary Cuevas Added SymbolType 8/5/01 tjn ****************************************************************************************/ #ifdef SCANAPI_EXPORTS #define SCANAPI_API __declspec(dllexport) #else #define SCANAPI_API __declspec(dllimport) #endif #ifdef __cplusplus # extern "C" { #endif // Types of Socket Scanner products cdef extern from "ScanAPI.h": #enum SCANNER_TYPE {SCANNER_NONE = 0, // no scanner # SCANNER_CFCARD, // Socket In-Hand Scan Card # SCANNER_WAND, // a wand # SCANNER_GUN, // a gun # SCANNER_ISCI}; // an ISCI ctypedef enum SCANNER_TYPE: SCANNER_NONE = 0 # no scanner SCANNER_CFCARD # Socket In-Hand Scan Card SCANNER_WAND # a wand SCANNER_GUN # a gun SCANNER_ISCI # an ISCI // Types of good-read soundsyr #enum GRS_TYPE {GRS_NONE = 0, // no good read sound # GRS_MESSAGEBEEP, // play MessageBeep(0) on good read # GRS_WAVFILE}; // play user-supplied .WAV file on good read ctypedef enum GRS_TYPE: GRS_NONE = 0 # no good read sound GRS_MESSAGEBEEP # play MessageBeep(0) on good read GRS_WAVFILE # play user-supplied .WAV on good read // Scanner device information structure typedef struct tagSCANDEVINFO{ DWORD StructSize; // size of the structure SCANNER_TYPE ScannerType; // gun, wand, or integrated card unsigned int fHardwareTrigger :1; // most likely a gun unsigned int fSoftwareTrigger :1; // most likely an integrated card unsigned int fSoftwareAbortTrigger :1; // most likely an integrated card unsigned int fGoodReadLight :1; // most likely a gun unsigned int fGoodReadSound :1; // most likely a gun TCHAR SymbolType; // Symbol type code from ISC scanner } SCANDEVINFO, *LPSCANDEVINFO; // API return codes enum SCAN_RESULT {SR_SUCCESS = 0, SR_INVALID_WMINSERTION, SR_INVALID_WMREMOVAL, SR_PLUG_THREAD_FAILURE, SR_DEVICE_THREAD_FAILURE, SR_INVALID_SCANNER_HANDLE, SR_OPEN_FAILURE, SR_INVALID_WMSCANNERDATA, SR_NO_DATA, SR_BUFFER_TOO_SMALL, SR_SCANNER_NOT_OPEN, SR_INVALID_SOUND_TYPE, SR_WAVFILE_NOT_FOUND, SR_MEMORY_FAILURE, SR_INVALID_ERR, SR_TOO_MANY_USERS, SR_NOT_INITIALIZED, SR_DEVICE_FAILURE, SR_INTERNAL_FAILURE, SR_INVALID_STRUCTURE, SR_SCANNER_REMOVED, SR_UNSUPPORTED_FEATURE}; // API function prototypes SCANAPI_API SCAN_RESULT ScanInit(HWND hWnd, UINT wmInsertion, UINT wmRemoval); SCANAPI_API SCAN_RESULT ScanOpenDevice(HANDLE hScanner); SCANAPI_API SCAN_RESULT ScanCloseDevice(HANDLE hScanner); SCANAPI_API SCAN_RESULT ScanGetDevInfo(HANDLE hScanner, LPSCANDEVINFO lpScanDevInfo); SCANAPI_API SCAN_RESULT ScanRequestDataEvents(HANDLE hScanner, HWND hWnd, UINT wmScannerData); SCANAPI_API SCAN_RESULT ScanTrigger(HANDLE hScanner); SCANAPI_API SCAN_RESULT ScanAbort(HANDLE hScanner); SCANAPI_API SCAN_RESULT ScanGetData(HANDLE hScanner, TCHAR * lpBuff, LPINT BufSize); SCANAPI_API SCAN_RESULT ScanGetStatus(HANDLE hScanner); SCANAPI_API SCAN_RESULT ScanSetGoodReadSound(HANDLE hScanner, GRS_TYPE Sound, LPCTSTR lpWavFile); SCANAPI_API SCAN_RESULT ScanDeinit(void); SCANAPI_API SCAN_RESULT ScanErrToText(SCAN_RESULT Err, LPTSTR lpBuff, LPINT BufSize); SCANAPI_API SCAN_RESULT ScanParamSend(HANDLE hScanner, PBYTE paramIn, UINT paramInLen, PBYTE paramVal, UINT paramValLen); SCANAPI_API SCAN_RESULT ScanParamRequest(HANDLE hScanner, PBYTE paramIn, UINT paramInLen, PBYTE paramOut, PUINT paramOutLen); SCANAPI_API SCAN_RESULT ScanSendCommand(HANDLE hScanner, IN OUT LPTSTR pCmd_CmdResponse, IN OUT int* piLength); #ifdef __cplusplus } #endif