TWAIN规范的第四章(3)
如果应用程序对当前性能施加了限制,那么数据源将根据这些限制来响应此消息。否则将以将所有源支持的值作为响应。当然,响应中能够包含的值的数量要受到容器的限制。 MSG_SET
第7章有关此三联码的描述:
“当容器为TW_ONEVALUE或TW_ARRAY时设置当前值,当容器为TW_ENUMERATION或TW_RANGE时设置可用值以及当前值”
为进一步说明此操作,必须先声明一点:当应用程序施加一个限制时,源必须考虑所支持的值以及要求的限制。结果应为即支持又被限定使用的值的集合。
施加限制后会产生一种情况,即默认值不再在支持的值集合当中时。使用TW_ENUMERATION时,报告的的默认值索引应被数据源设置为限制集合中的某个值。这是一个确保索引有效的预防措施。在这种情况下,TW_ENUMERATION中的默认值不再有意义,应用程序可将其忽略,直至限制被MSG_RESET操作取消。
4.1.5 代码中的性能容器
性能信息在应用程序和源之间通过一种称为容器的结构进行传递:TW_ARRAY,
TW_ENUMERATION,TW_ONEVALUE以及TW_RANGE。创建和读取容器所需的操作用下
列代码段说明。容器可灵活地定义用于包含许多种数据之一。请参考工具包以了解容器可用的所有封装和拆包功能。
4.1.6 延迟协商-在状态4之后进行性能协商
应用程序可能在会话期间的任何时刻向源询问性能数据。但是,一个原则是应用程序只能在状态4下请求设置性能。此限制背后的基本原因与源启用时源用户界面的显示有关。许多源需要更改其用户界面的内容以响应应用程序的设置请求。这些更改可预防用户选择与应用程序要求不一致的选项。源用户界面不会在状态4下显示因而可以在用户不查觉的情况下改变。而用户界面在状态5至7时则会显示。
一些性能对用户界面没有影响并且应用程序可能希望在状态4之后进行设置。为了允许延迟协商,应用程序必须在状态4下请求特定的性能能够在稍后进行设置(状态5至6),源可以同意或拒绝此请求。此请求通过在CAP_EXTENDEDCAPS上使用DG_CONTROL/DAT_CAPABILITY操作来协商。
在CAP_EXTENDEDCAPS性能上的DG_CONTROL / DAT_CAPABILITY操作: MSG_GET
指示源希望在状态5至6下进行协商的所有性能。 MSG_SET
指定应用程序希望在状态5至6下协商哪些性能。 MSG_GETCURRENT
指示源和应用程序均同意在状态5至6下协商的所有性能。
与其它性能一样,若源不支持CAP_EXTENDEDCAPS,它将返回返回码TWRC_FAILURE和状态码TWCC_CAPUNSUPPORTED。
若应用程序尝试在状态5或6下设置性能但源没有事先同意此安排,此操作将失败,其返回码为TWRC_FAILURE,状态码为TWCC_SEQERROR。
若应用程序不使用源用户界面,则应用程序将控制源的状态。若应用程序想设置性能的值,它可以使源返回状态4再进行此操作。因此使用自己的用户界面的应用程序无需使用CAP_EXTENDEDCAPS。
4.2 数据传送选项
之前已经讨论过,TWAIN为数据传送定义了三种模式:本地、文件和缓存模式。 源被要求支持本地和缓存传送模式。
4.2.1 本地传输模式
此模式的使用在第3章中已介绍。本地模式的一个潜在的局限是可能没有足够大的RAM块可用于保存图像。这种情况直到应用程序发送DG_IMAGE / DAT_IMAGENATIVEXFER / MSG_GET操作尝试进行传输时才会被发现。 当出现内存不足的情况下,源可能的响应方式有多种: ? 简单地使操作失败。
? 裁剪图像使其能够置入可用的内存。源应通知用户由于内存限制而进行了此操作。裁剪应保持图像和外观比例和起点(左上角)。
? 和用户进行沟通以允许变更图像尺寸或取消操作。
DG_IMAGE / DAT_IMAGENATIVEXFER / MSG_GET返回的返回码/状态码可指示发生了哪种动作:
TWRC_XFERDONE:
表示传输已完成并且会话状态为7。但这不能保证源没有裁剪图像。即使应用程序在传输前使用DG_IMAGE/DAT_IMAGEINFO/MSG_GET来确定图像尺寸,也不能认为返回的
ImageWidth和ImageHeight适用于最终传输过来的图像。如果图像尺寸对应用程序很重要,则应在传输完成后却检查最终的图像尺寸,如下:
? 调用DG_CONTROL / DAT_PENDINGXFERS / MSG_ENDXFER操作使会话状态从7变更为6(或5)。
? 判断传输的真实的图像的尺寸: Windows —— 读取DIB头信息;Macintosh—— 检查图像的PicFrame。 TWRC_CANCEL:
获取操作被用户取消,会话状态为7。执行DG_CONTROL / DAT_PENDINGXFERS / MSG_ENDXFER操作以使会话状态从7变更为6(或5)。 TWRC_FAILURE:
…… 此处隐藏:439字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [基础教育]2016-2022年中国钢芯铝绞线市场现状调
- [基础教育]语文部编版初一语文下册练习题 句式变
- [基础教育]南京继续教育参考答案--深入学习贯彻习
- [基础教育]国旗下讲话稿——珍惜时间好读书
- [基础教育]北师大版六年级数学下册圆锥的体积教学
- [基础教育]人教版-音乐-四年级下册-四年级下册音
- [基础教育]乔布斯2019年斯坦福大学毕业典礼致辞.d
- [基础教育]2015年加油站安全知识竞赛试题及答案
- [基础教育]2020年教师年度考核个人工作总结
- [基础教育]2019年中考历史试题-2019年大庆市初中
- [基础教育]初三仁爱英语第一轮总复习教案
- [基础教育]SG-A094电气配管安装工程隐蔽验收记录
- [基础教育]冀教版小学数学三年级下册第六单元教材
- [基础教育]青岛版(五制)小学科学二年级下册16《制
- [基础教育]2018-2019年初中科学初一中考真卷测试
- [基础教育]幼儿园大班期末简短评语精选
- [基础教育]2018云南临沧公务员考试申论技巧:这样
- [基础教育]学校食堂经营管理方案
- [基础教育]新中国砥砺奋进的七十年原文
- [基础教育]真空泵的选型及常用计算公式
- 高职田径课程教学现状与对策
- 全髋关节置换术在老年股骨颈骨折患者中
- 青人社厅函〔2016〕576号(附件)工资
- cp101-07砂子检验作业指导书 - secret
- 微观经济学 第八章 博弈论 习题
- 2014高考真题(词语运用)汇编及答案
- 2018年人教版七年级语文下册《第三单元
- 苏教版数学四年级上册第一单元试题 - M
- 四川大学新闻与传播考研2000-2010年真
- 浙江万里学院英语专业四年制本科教学计
- 最新2018马年事业祝福语-范文word版(2
- 最全模具行业术语英文翻译
- 皮亚杰的发展心理学理论
- 64篇高考情景式默写 练习题及答案
- 仿写(学生稿)
- 《SQL Server数据库技术》试卷A
- 第七章作业答案
- 江苏省赣榆县海头高级中学高中语文必修
- 浙江省2001年10月自考正常人体解剖学答
- 2012英语重点短语




