#ifndef __HGSANE_H__ #define __HGSANE_H__ #include "../base/HGDef.h" #include "../base/HGBaseErr.h" #include "HGSaneErr.h" #include "../base/HGImage.h" HG_DECLARE_HANDLE(HGSaneManager); HG_DECLARE_HANDLE(HGSaneSource); HG_DECLARE_HANDLE(HGSaneDevice); #pragma pack(push) #pragma pack(4) /* SANE设备自定义信息 */ 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; // 历史张数 }HGSaneDeviceCustomInfo; #pragma pack(pop) #define HGSANE_EVENT_TYPE_WORKING 1L #define HGSANE_EVENT_TYPE_SCANFINISHED 2L /* Sane回调 */ typedef void (HGAPI* HGSane_DeviceEventFunc)(HGSaneDevice dev, HGUInt event, HGPointer param); typedef void (HGAPI* HGSane_DeviceImageFunc)(HGSaneDevice dev, HGImage image, HGPointer param); HGEXPORT HGResult HGAPI HGSane_CreateManager(HGSaneManager *manager); HGEXPORT HGResult HGAPI HGSane_DestroyManager(HGSaneManager manager); HGEXPORT HGResult HGAPI HGSane_GetSourceCount(HGSaneManager manager, HGUInt *count); HGEXPORT HGResult HGAPI HGSane_GetSourceNameWithIndex(HGSaneManager manager, HGUInt index, HGChar *name, HGUInt maxLen); HGEXPORT HGResult HGAPI HGSane_OpenSource(HGSaneManager manager, HGUInt index, HGSaneSource* source); HGEXPORT HGResult HGAPI HGSane_OpenDefaultSource(HGSaneManager manager, HGSaneSource* source); HGEXPORT HGResult HGAPI HGSane_OpenSelectedSource(HGSaneManager manager, HGWindow parent, HGSaneSource* source); HGEXPORT HGResult HGAPI HGSane_CloseSource(HGSaneSource source); HGEXPORT HGResult HGAPI HGSane_GetSourceName(HGSaneSource source, HGChar *name, HGUInt maxLen); HGEXPORT HGResult HGAPI HGSane_GetDeviceCount(HGSaneSource source, HGUInt *count); HGEXPORT HGResult HGAPI HGSane_GetDeviceNameWithIndex(HGSaneSource source, HGUInt index, HGChar *name, HGUInt maxLen); HGEXPORT HGResult HGAPI HGSane_OpenDevice(HGSaneSource source, HGUInt index, HGSaneDevice *dev, HGChar *errInfo, HGUInt errInfoLen); HGEXPORT HGResult HGAPI HGSane_OpenSelectedDevice(HGSaneSource source, HGWindow parent, HGSaneDevice* dev); HGEXPORT HGResult HGAPI HGSane_CloseDevice(HGSaneDevice dev); HGEXPORT HGResult HGAPI HGSane_GetDeviceName(HGSaneDevice dev, HGChar* name, HGUInt maxLen); HGEXPORT HGResult HGAPI HGSane_GetDeviceCustomInfo(HGSaneDevice dev, HGSaneDeviceCustomInfo *info); HGEXPORT HGResult HGAPI HGSane_ShowDeviceSettingDlg(HGSaneDevice dev, HGWindow parent); HGEXPORT HGResult HGAPI HGSane_Login(HGSaneDevice dev, const HGChar *user, const HGChar *pwd); HGEXPORT HGResult HGAPI HGSane_Logout(HGSaneDevice dev); HGEXPORT HGResult HGAPI HGSane_ClearRollerCount(HGSaneDevice dev); HGEXPORT HGResult HGAPI HGSane_GetDeviceRollerLife(HGSaneDevice dev, HGInt *rollerLife); HGEXPORT HGResult HGAPI HGSane_GetDriverLog(HGSaneDevice dev, const HGChar *fileName); HGEXPORT HGResult HGAPI HGSane_ClearDriverLog(HGSaneDevice dev); HGEXPORT HGResult HGAPI HGSane_GetDeviceLog(HGSaneDevice dev, const HGChar *fileName); HGEXPORT HGResult HGAPI HGSane_ClearDeviceLog(HGSaneDevice dev); HGEXPORT HGResult HGAPI HGSane_StartDevice(HGSaneDevice dev, HGWindow parent, HGSane_DeviceEventFunc eventFunc, HGPointer eventParam, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam); HGEXPORT HGResult HGAPI HGSane_StartDeviceWithSingleScan(HGSaneDevice dev, HGWindow parent, HGSane_DeviceEventFunc eventFunc, HGPointer eventParam, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam); #endif /* __HGSANE_H__ */