code_app/modules/twain_user/HGTwain.h

209 lines
5.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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 (*HGDSEventFunc)(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,
HGDSEventFunc 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,
HGDSEventFunc 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__ */