ÁдúÂë¶Î˵Ã÷¡£ÈÝÆ÷¿ÉÁé»îµØ¶¨ÒåÓÃÓÚ°üº¬Ðí¶àÖÖÊý¾ÝÖ®Ò»¡£Çë²Î¿¼¹¤¾ß°üÒÔÁ˽âÈÝÆ÷¿ÉÓõÄËùÓзâ×°ºÍ²ð°ü¹¦ÄÜ¡£
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ÕÂÖÐÒѽéÉÜ¡£±¾µØÄ£Ê½µÄÒ»¸öDZÔڵľÖÏÞÊÇ¿ÉÄÜûÓÐ×ã¹»´óµÄ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£º
¼ì²é״̬ÂëÒÔÈ·¶¨Ê§°ÜµÄÔÒò¡£»á»°×´Ì¬Îª6¡£Ã»ÓÐΪDIB»òPICT·ÖÅäÈκÎÄڴ档ͼÏñÒÀÈ»´¦ÓÚ¹ÒÆð״̬¡£Èç¹ûÊÇÓÉÄÚ´æ²»×ãÒýÆð£¬¿ÉÒÔÑ¡ÔñÊͷŶîÍâµÄÄÚ´æ»òÖ´ÐÐDG_CONTROL / DAT_PENDINGXFERS / MSG_ENDXFERÒÔ¶ªÆú¹ÒÆðµÄͼÏñ¡£
4.2.2 ´ÅÅÌÎļþ´«Êäģʽ
´Ó°æ±¾1.9¿ªÊ¼£¬ÓÐÁ½ÖÖ¿ÉÓõÄÎļþ´«Êä»úÖÆ¡£Windows¿ª·¢Õ߿ɼÌÐøÊ¹ÓÃTWSX_FILEÑ¡ÏMacintosh¿ª·¢ÕßÔò±ØÐëʹÓÃTWSX_FILE2£¬ÒÔÔÚа汾µÄ²Ù×÷ϵͳÉÏÕýÈ·µØ¶¨Î»Í¼ÏñºÍÒôƵÎļþ¡£
ÅжÏÔ´ÊÇ·ñÖ§³Ö´ÅÅÌÎļþ´«Êäģʽ£º
? ʹÓÃDG_CONTROL / DAT_CAPABILITY / MSG_GET²Ù×÷¡£ ? ½«TW_CAPABILITY.CapÓòÉèÖÃΪICAP_XFERMECH¡£
? Դͨ¹ýTW_CAPABILITY.hContainer·µ»ØËüËùÖ§³ÖµÄ´«ÊäģʽÐÅÏ¢¡£´ÅÅÌÎļþģʽÓÃTWSX_FILE»òTWSX_FILE2±êʶ¡£Ô´Ã»Óб»Ç¿ÖÆÒªÇóÖ§³Ö´ÅÅÌÎļþ´«Êäģʽ£¬Òò´ËÑé֤ʮ·Ö±ØÒª¡£
4.2.2.1 È·¶¨Ö§³ÖÎļþ´«Êäģʽºó£¬Æô¶¯´«Êä
ÔÚ״̬4Ï£º
? ʹÓÃDG_CONTROL / DAT_CAPABILITY / MSG_SET²Ù×÷£¬ICAP_XFERMECHÉèÖÃΪTWSX_FILE »ò TWSX_FILE2¡£
? ½« TW_CAPABILITY. CapÉèÖÃΪICAP_IMAGEFILEFORMAT£¬Ê¹Óà DG_CONTROL / DAT_CAPABILITY / MSG_GET È·¶¨Ô´Ö§³ÖºÎÖÖÎļþ¸ñʽ¡£Ô´·µ»ØËùÖ§³ÖµÄ¸ñʽµÄ±êʶ·û£¬ÕâЩ±êʶ·ûÒÔ TWFF_ Ϊǰ׺£¬°üÀ¨ TWFF_PICT, TWFF_BMP, TWFF_TIFFµÈ¡£ ÔÚ״̬4¡¢5¡¢6Ï£º
¿ÉʹÓÃDG_CONTROL/ DAT_SETUPFILEXFER µÄ SG_GET, MSG_GETDEFAULT ºÍ MSG_SET ²Ù×÷¡£´Ë²Ù×÷Ïà¹ØµÄÊý¾Ý½á¹¹ÊÇTW_SETUPFILEXFER ¡£
Ó¦ÓóÌÐò¿ÉʹÓÃMSG_GETDEFAULT²Ù×÷À´È·¶¨Ä¬ÈÏÎļþ¸ñʽºÍÎļþÃû£¨TWAIN.TMP»òTWAIN.AUD£©¡£ÈôÒªÉèÖÃÎļþÃûºÍ¸ñʽ£º
1. ·ÖÅäÒ»¸öTW_SETUPFILEXFER½á¹¹£¬Ìî³äÊʵ±µÄÓò£º a. FileName - ÔÚWindowsÖÐÇëÈ·±£°üº¬ÍêÕûµÄ·¾¶¡£
b. Format - ÒÔTWFF_¿ªÊ¼µÄ³£Á¿£¬Èç¹ûÉèÖÃΪ²»Ö§³ÖµÄ¸ñʽ£¬Ôò²Ù×÷½«·µ»ØTWRC_FAILURE / TWCC_BADVALUE£¬²¢ÇÒÔ´½«ÖØÎ§ÎªÊä³öÊý¾Ýµ½Ä¬ÈÏÎļþ¡£ c. VrefNum - ÔÚMacintoshÖУ¬ÉèÖÃΪÎļþµÄ¾í±ê£»ÔÚWindowsÖÐÉèÖÃΪTWON_DONTCARE16¡£
2. µ÷ÓÃDG_CONTROL / DAT_SETUPFILEXFER / MSG_SET¡£ 4.2.2.2 ´«Êäµ½Îļþ
ÔÚÓ¦ÓóÌÐòÊÕµ½MSG_XFERREADY֪ͨ²¢·¢ËÍDG_CONTROL / DAT_SETUPFILEXFER / MSG_GETºó£ºÊ¹ÓÃDG_IMAGE / DAT_IMAGEFILEXFER / MSG_GET £¬´Ë²Ù×÷ûÓÐÓëÖ®¹ØÁªµÄÊý¾Ý½á¹¹£¬ÔÚDSM_Entryµ÷ÓÃÖÐpDataΪNULL¡£
? Èç¹ûÓ¦ÓóÌÐòδָ¶¨ÎļþÃû£¨ÔÚSet UpÖУ©£¬Ô´½«Ê¹ÓÃĬÈÏÎļþÃû»ò×îºóÒ»´ÎÖ¸¶¨µÄÎļþÐÅÏ¢¡£
? Èç¹ûÓ¦ÓóÌÐòÖ¸¶¨µÄÎļþ²»´æÔÚ£¬Ô´½«´´½¨¸ÃÎļþ¡£
? Èç¹ûÎļþ´æÔÚµ«ÒѰüº¬Êý¾Ý£¬Ô´½«¸²¸ÇÒÑÓÐÊý¾Ý¡£ËùÒÔÈô¶Ô¶à¸öÎļþ´«ÊäʹÓÃÏàͬµÄÎļþÃû£¬Ôò±ØÐëÔÚÁ½´Î´«ÊäÖ®¼ä½«ÎļþÊý¾Ý¸´ÖƵ½ÆäËüµØ·½¡£
×¢£ºÒ»µ©¿ªÊ¼£¬Ó¦ÓóÌÐò¾ÍÎÞ·¨È¡ÏûÎļþ´«Êä²Ù×÷¡£µ«ÊÇ£¬Ô´¿ÉÄÜͨ¹ýÆäÓû§½çÃæÏòÓû§ÌṩȡÏû´«ÊäµÄ¹¦ÄÜ¡£
Ôڴ˲Ù×÷ºó£¬È·±£¼ì²é·µ»ØÂ룺
TWRC_XFERDONE£ºÎļþ³É¹¦Ð´Èë¡£Ó¦ÓóÌÐòÓ¦µ÷ÓÃDG_CONTROL / DAT_PENDINGXFERS / MSG_ENDXFERʹ»á»°·µ»Ø×´Ì¬6£¨»ò5£©¡£ TWRC_CANCEL£ºÓû§È¡Ïû´«Êä¡£ÎļþÄÚÈÝ䶨Ò壬µ÷ÓÃDG_CONTROL / DAT_PENDINGXFERS / MSG_ENDXFERʹ»á»°·µ»Ø×´Ì¬6£¨»ò5£©¡£
TWRC_FAILURE£ºÔ´´¦ÓÚ״̬6£»ÎļþÄÚÈÝ䶨Ò壻ͼÏñÒÀÈ»´¦ÓÚ¹ÒÆð״̬¡£ÈôÒª·ÅÆúͼÏñ£¬¿ÉʹÓÃDG_CONTROL / DAT_PENDINGXFERS / MSG_ENDXFER¡£ ¼ì²é״̬ÒÔÈ·¶¨Ê§°ÜµÄÔÒò£º
TWCC_BADDEST¡ª¡ªÖ¸¶¨ÁËÎÞЧԴ¡£
TWCC_OPERATIONERROR¡ª¡ªÎļþ´æÔÚµ«ÎÞ·¨´æÈ¡»òÔÚдÈëʱ·¢Éúϵͳ´íÎó¡£ TWCC_SEQERROR¡ª¡ªÔÚÎÞЧ״̬ϲÙ×÷¡£
Ïà¹ØÍÆ¼ö£º