我想通过TWAIN界面获得扫描仪支持的文件格式。有example如何获得支持的格式:
GetCapability(ICAP_IMAGEFILEFORMAT, unTest);
CString strType;
strType.Format("Type Supported %d\n", unTest);
但我觉得这里有问题因为ICAP_IMAGEFILEFORMAT成员没有一点掩饰:
#define TWFF_TIFF 0 /* Tagged Image File Format */
#define TWFF_PICT 1 /* Macintosh PICT */
#define TWFF_BMP 2 /* Windows Bitmap */
#define TWFF_XBM 3
#define TWFF_JFIF 4 /* JPEG File Interchange Format */
#define TWFF_FPX 5 /* Flash Pix */
...
因此,如果扫描仪支持TIFF,PICT,BMP& JFIF在一次通话中无法返回此类信息。
如何通过扫描仪获取支持的格式列表?
答案 0 :(得分:1)
我相信你必须查询DS(例如尝试设置你想要的值)以查看是否支持你想要的格式,然后根据你可以构建列表或支持格式的结果。我认为这是msgget容器的方式,
TW_ONEVALUE - 当前值和默认值为的单个值 一致。此类型的可用值范围 能力就是这个单一的价值。例如,a 表示文档存在的功能 馈线可以是这种类型。
并且规范中ICAP_IMAGEFILEFORMAT部分的描述似乎暗示您只能设置为单个值,或者返回单个值:
应用
使用此ICAP确定哪些格式可用于文件传输,并为其设置上下文 其他能力谈判,如ICAP_COMPRESSION。 请务必使用DG_CONTROL / DAT_SETUPFILEXFER / MSG_SET操作来指定 用于特定收购的格式。
来源
如果不支持,请返回TWRC_FAILURE / TWCC_CAPUNSUPPORTED。 如果不支持Operation,则返回TWRC_FAILURE,TWCC_CAPBADOPERATION。 (看到 DG_CONTROL / DAT_CAPABILITY / MSG_QUERYSUPPORT)
无论如何,我可能会误解,但这对我来说似乎是这样。
答案 1 :(得分:1)
我认为在一次调用中获取所有支持的文件格式是可行的,因为“Container for MSG_GET”和“Container for MSG_SET”都支持TW_ENUMERATION。