#ifndef __HGTWAIN_H__ #define __HGTWAIN_H__ #include "../base/HGDef.h" #include "../base/HGBaseErr.h" #include "HGTwainErr.h" #include "../base/HGImage.h" HG_DECLARE_HANDLE(HGTwainDSM); HG_DECLARE_HANDLE(HGTwainDS); #pragma pack(push) #pragma pack(4) /* TWAIN设备自定义信息 */ typedef struct { HGInt vid; // VID HGInt pid; // PID HGChar sn[32]; // 设备序列号 HGChar type[32]; // 设备型号 HGChar fwVer[32]; // 设备固件版本号 HGChar ip[32]; // 设备IP HGChar mac[32]; // 设备MAC HGChar driverVer[32]; // 驱动版本号 HGChar vendor[128]; // 制造商 HGChar copyright[64]; // 版权信息 HGChar comUrl[128]; // 公司网址 HGChar comTel[32]; // 公司电话 HGChar comAddr[256]; // 公司地址 HGChar comGps[256]; // 公司地图定位 HGInt rollerCount; // 滚轴计数 HGInt totalCount; // 历史张数 }HGTwainDeviceCustomInfo; typedef struct { HGUInt type; union { HGChar valueChar; HGByte valueByte; HGShort valueShort; HGUShort valueUShort; HGInt valueInt; HGUInt valueUInt; HGBool valueBool; HGFloat valueFloat; HGChar valueStr32[32]; HGChar valueStr64[64]; HGChar valueStr128[128]; HGChar valueStr255[255]; }; }HGCapValue; #pragma pack(pop) #define HGCAPVALUE_TYPE_CHAR 1 #define HGCAPVALUE_TYPE_BYTE 2 #define HGCAPVALUE_TYPE_SHORT 3 #define HGCAPVALUE_TYPE_USHORT 4 #define HGCAPVALUE_TYPE_INT 5 #define HGCAPVALUE_TYPE_UINT 6 #define HGCAPVALUE_TYPE_BOOL 7 #define HGCAPVALUE_TYPE_FLOAT 8 #define HGCAPVALUE_TYPE_STR32 9 #define HGCAPVALUE_TYPE_STR64 10 #define HGCAPVALUE_TYPE_STR128 11 #define HGCAPVALUE_TYPE_STR255 12 #define HGTWAIN_EVENT_TYPE_WORKING 1L #define HGTWAIN_EVENT_TYPE_SCANFINISHED 2L #define HGTWAIN_EVENT_TYPE_CLOSEDSREQ 3L #define HGTWAIN_IMAGE_TYPE_NORMAL 0L /* ds回调 */ typedef void (HGAPI *HGDSEventFunc)(HGTwainDS ds, HGUInt event, HGPointer param); typedef HGUInt (HGAPI* HGDSImageFunc)(HGTwainDS ds, HGImage image, HGUInt type, HGPointer param); HGEXPORT HGResult HGAPI HGTwain_CreateDSM(HWND hwnd, HGTwainDSM *dsm); HGEXPORT HGResult HGAPI HGTwain_DestroyDSM(HGTwainDSM dsm); HGEXPORT HGResult HGAPI HGTwain_GetDSCount(HGTwainDSM dsm, HGUInt* count); HGEXPORT HGResult HGAPI HGTwain_GetDSNameWithIndex(HGTwainDSM dsm, HGUInt index, HGChar* name, HGUInt maxLen); HGEXPORT HGResult HGAPI HGTwain_CreateDS(HGTwainDSM dsm, HGUInt index, HGTwainDS *ds); HGEXPORT HGResult HGAPI HGTwain_CreateDefaultDS(HGTwainDSM dsm, HGTwainDS* ds); HGEXPORT HGResult HGAPI HGTwain_CreateSelectedDS(HGTwainDSM dsm, HGTwainDS* ds); HGEXPORT HGResult HGAPI HGTwain_CreateSelectedDSEx(HGTwainDSM dsm, HGTwainDS* ds); HGEXPORT HGResult HGAPI HGTwain_DestroyDS(HGTwainDS ds); HGEXPORT HGResult HGAPI HGTwain_OpenDS(HGTwainDS ds); HGEXPORT HGResult HGAPI HGTwain_CloseDS(HGTwainDS ds); HGEXPORT HGResult HGAPI HGTwain_GetDSName(HGTwainDS ds, HGChar* name, HGUInt maxLen); HGEXPORT HGResult HGAPI HGTwain_GetDSDeviceName(HGTwainDS ds, HGChar* name, HGUInt maxLen); HGEXPORT HGResult HGAPI HGTwain_GetDSDeviceCustomInfo(HGTwainDS ds, HGTwainDeviceCustomInfo *info); HGEXPORT HGResult HGAPI HGTwain_LoginDS(HGTwainDS ds, const HGChar *user, const HGChar *pwd); HGEXPORT HGResult HGAPI HGTwain_LogoutDS(HGTwainDS ds); HGEXPORT HGResult HGAPI HGTwain_ClearDSRollerCount(HGTwainDS ds); HGEXPORT HGResult HGAPI HGTwain_GetDSDriverLog(HGTwainDS ds, const HGChar *fileName); HGEXPORT HGResult HGAPI HGTwain_ClearDSDriverLog(HGTwainDS ds); HGEXPORT HGResult HGAPI HGTwain_GetDSDeviceLog(HGTwainDS ds, const HGChar *fileName); HGEXPORT HGResult HGAPI HGTwain_ClearDSDeviceLog(HGTwainDS ds); HGEXPORT HGResult HGAPI HGTwain_EnableDSUIOnly(HGTwainDS ds, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam); HGEXPORT HGResult HGAPI HGTwain_EnableDS(HGTwainDS ds, HGBool showUI, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam, HGDSImageFunc imageFunc, HGPointer imageParam); HGEXPORT HGResult HGAPI HGTwain_EnableDSWithSingleScan(HGTwainDS ds, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam, HGDSImageFunc imageFunc, HGPointer imageParam); HGEXPORT HGResult HGAPI HGTwain_DisableDS(HGTwainDS ds); HGEXPORT HGResult HGAPI HGTwain_SetCapbility(HGTwainDS ds, HGUShort cap, const HGCapValue *value, HGBool reset); HGEXPORT HGResult HGAPI HGTwain_GetCapbility(HGTwainDS ds, HGUShort cap, HGCapValue *value); #endif /* __HGTWAIN_H__ */