code_app/twain_user/HGTwain.h

209 lines
5.2 KiB
C
Raw Normal View History

2022-05-03 10:25:52 +00:00
#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);
/* 能力 */
#define HGTWAIN_DSCAP_DUPLEX 1L
#define HGTWAIN_DSCAP_DUPLEXENABLED 2L
#define HGTWAIN_DSCAP_XFERCOUNT 3L
/* 未知事件, 可能是该库未进行处理的事件 */
#define HGTWAIN_DSEVENT_UNKNOWN 0L
#define HGTWAIN_DSEVENT_XFERREADY 1L
#define HGTWAIN_DSEVENT_CLOSEDSREQ 2L
#define HGTWAIN_DSEVENT_CLOSEDSOK 3L
/* twain事件回调
* :
* 1) ds: in, DS句柄
* 2) event: in, , HGTWAIN_DSEVENT_*
* 3) param: in,
* :
* 1) event为HGTWAIN_EVENT_XFERREADY, TWAIN状态从5变为6
* 2) event为HGTWAIN_EVENT_CLOSEDSREQ, DS
*/
typedef void (HGAPI *HGTwain_DSEventCallback)(HGTwainDS ds, HGUInt event, HGPointer param);
/* 加载DSM
* :
* 1) dsm: out, DSM句柄
* :
* 1) TWAIN状态从1变为2
*/
HGEXPORT HGResult HGAPI HGTwain_LoadDSM(HGTwainDSM *dsm);
/* 卸载DSM
* :
* 1) dsm: in, DSM句柄
* :
* 1) TWAIN状态从2变为1
*/
HGEXPORT HGResult HGAPI HGTwain_UnloadDSM(HGTwainDSM dsm);
/* 打开DSM
* :
* 1) dsm: in, DSM句柄
* :
* 1) TWAIN状态从2变为3
* 2) 线
*/
HGEXPORT HGResult HGAPI HGTwain_OpenDSM(HGTwainDSM dsm);
/* 关闭DSM
* :
* 1) dsm: in, DSM句柄
* :
* 1) TWAIN状态从3变为2
*/
HGEXPORT HGResult HGAPI HGTwain_CloseDSM(HGTwainDSM dsm);
/* 获取DS列表
* :
* 1) dsm: in, DSM句柄
* 2) ds: out, DS句柄列表
* 3) size: in, out, DS句柄列表大小/DS句柄数量
* :
* 1) TWAIN状态为3
* 2) size既作为输入,
*/
HGEXPORT HGResult HGAPI HGTwain_GetDSList(HGTwainDSM dsm, HGTwainDS *ds, HGUInt *size);
/* 获取默认的DS
* :
* 1) dsm: in, DSM句柄
* 2) ds: out, DS句柄
* :
* 1) TWAIN状态为3
*/
HGEXPORT HGResult HGAPI HGTwain_GetDefaultDS(HGTwainDSM dsm, HGTwainDS* ds);
/* 弹出DS选择框并返回选择的DS
* :
* 1) dsm: in, DSM句柄
* 2) ds: out, DS句柄
* :
* 1) TWAIN状态为3
*/
HGEXPORT HGResult HGAPI HGTwain_SelectDS(HGTwainDSM dsm, HGTwainDS* ds);
/* 获取DS名称
* :
* 1) ds: in, DS句柄
* 2) name: out, DS名字数据区地址
* 3) maxLen: in, DS名字数据区长度
* :
* 1) TWAIN状态为3
* 2) size既作为输入, , size包括空字符
*/
HGEXPORT HGResult HGAPI HGTwain_GetDSName(HGTwainDS ds, HGChar *name, HGUInt maxLen);
/* 打开DS
* :
* 1) ds: in, DS句柄
* :
* 1) TWAIN状态从3变为4
*/
HGEXPORT HGResult HGAPI HGTwain_OpenDS(HGTwainDS ds);
/* 关闭DS
* :
* 1) ds: in, DS句柄
* :
* 1) TWAIN状态从4变为3
*/
HGEXPORT HGResult HGAPI HGTwain_CloseDS(HGTwainDS ds);
/* 设置DS的能力
* :
* 1) ds: in, DS句柄
* 2) cap: in,
* 3) value: in,
* :
* 1) TWAIN状态为4
*/
HGEXPORT HGResult HGAPI HGTwain_SetCapability(HGTwainDS ds, HGUInt cap, HGInt value);
/* 获取DS的能力
* :
* 1) ds: in, DS句柄
* 2) cap: in,
* 3) value: out,
* :
* 1) TWAIN状态为4-7
*/
HGEXPORT HGResult HGAPI HGTwain_GetCapability(HGTwainDS ds, HGUInt cap, HGInt* value);
/* 启动DS, 仅仅用作参数设置
* :
* 1) ds: in, DS句柄
* 2) showUI: in, UI
* 3) parent: in,
* 4) func: in,
* 5) param: in,
* :
* 1) TWAIN状态从4变为5
*/
HGEXPORT HGResult HGAPI HGTwain_EnableDSUIOnly(HGTwainDS ds, HGBool showUI, HWND parent,
HGTwain_DSEventCallback func, HGPointer param);
/* 启动DS
* :
* 1) ds: in, DS句柄
* 2) showUI: in, UI
* 3) parent: in,
* 4) func: in,
* 5) param: in,
* :
* 1) TWAIN状态从4变为5
*/
HGEXPORT HGResult HGAPI HGTwain_EnableDS(HGTwainDS ds, HGBool showUI, HWND parent,
HGTwain_DSEventCallback func, HGPointer param);
/* 停止DS
* :
* 1) ds: in, DS句柄
* :
* 1) TWAIN状态从5变为4
*/
HGEXPORT HGResult HGAPI HGTwain_DisableDS(HGTwainDS ds);
/* 本地传输图像
* :
* 1) ds: in, DS句柄
* 2) type: in,
* 3) origin: in,
* 4) image: out,
* :
* 1) 6
* 2) TWAIN状态从6变为7
* 3) image需要调用HGBase_DestroyImage销毁
*/
HGEXPORT HGResult HGAPI HGTwain_ImageNativeXfer(HGTwainDS ds, HGUInt type, HGUInt origin, HGImage *image);
/* 停止本次传输
* :
* 1) ds: in, DS句柄
* 2) count: out,
* :
* 1) TWAIN状态变为6
* 2) count为0时, DS
*/
HGEXPORT HGResult HGAPI HGTwain_EndXfer(HGTwainDS ds, HGUInt* count);
/* 停止所有传输
* :
* 1) ds: in, DS句柄
* :
* 1) TWAIN状态变为5
* 2) DS
*/
HGEXPORT HGResult HGAPI HGTwain_Reset(HGTwainDS ds);
#endif /* __HGTWAIN_H__ */