diff --git a/sane/scanner.cpp b/sane/scanner.cpp index 700dffa..73fd089 100644 --- a/sane/scanner.cpp +++ b/sane/scanner.cpp @@ -84,13 +84,13 @@ namespace callback }SCNINST; std::vector g_scanner_instances; - int sane_event_callback( // 濠电偛顦崝宀勫船娴犲鐐婇柣鎰濞堝爼鏌i妸銉ヮ仼妞ゆ洦鍠氶幐鎺楀煡閸涱垳顦梻鍌氭礌閸嬫捇鎮烽弴姘樂缂佺粯姘ㄩ幏鐘虫媴缁涘娈欓梺鎼炲劤閸嬬娀鎯冮悢鐓庡強妞ゆ牗鍑瑰Ο瀣磼閹规劖纭堕柍鏄忓亹閳ь剛鎳撻ˇ顖炲矗韫囨稒鍎? - SANE_Handle hdev // 婵炲瓨绫傞崨顔芥婵炲瓨绮岄鍕枎閵忋倖鍎嶉柛鏇ㄥ櫘閸熷骸顭跨捄鐑樻悙鐟滄壆鍋ゅ? - , int code // 闂佹悶鍎抽崑鐘绘儍閻斿摜顩查悗锝傛櫆椤愯棄霉閻欏懐鎮奸柣? - , void* data // 闂佹悶鍎抽崑鐘绘儍閻斿摜顩查悗锝傛櫆椤愪粙鏌℃担鍝勵暭鐎规挷绶氶弫宥囦沪閸撗冾棏闂佺顕栭崰鏇犺姳閵婏妇顩烽柡鍫ユ涧閺佲晠鏌i鑽ゅ妽婵犫偓娓氣偓楠炲秹鍩€椤掍胶鈻旂€广儱鎳忛崐閬嶆煥濞戞瀚扮€殿噮鍓熼幃陇顦查柛娆愬閹峰懘骞橀懠顒傛婵炲濮惧▔娑㈡偩閻愵剛鈻? - , unsigned int* len // 闂佽桨鑳舵晶妤€鐣垫笟鈧褰掑垂椤旂⒈鍞洪梺鎸庣☉閻楀棝鎮鸿閹崇偤宕掗敂鍓ь槴闂佹寧绋戦張顒勫垂閵娾晜鍤€闁告浠竐nt_data闂佹眹鍔岀€氼喚妲愰敃鍌氱闁圭粯甯掗梾姗€姊婚埀顒勫垂椤旂⒈鍞洪梺鎸庣☉閻線顢氬☉姘辩<闁糕剝鍑归崵鐐烘煟椤忓嫷鍎戞繛鏉戭槹閹棃寮崒娑氭殸婵炲瓨绮岄鍕枎閵忥紕顩烽柨婵嗘川閸? - , void* param // 闂佹椿娼块崝宥夊春濞戙垺鍤婃い蹇撳閺嗘澘鈽夐弬娆炬Ч闁哄棛鍠栭獮鎴︻敋閸℃瑧顦繛鎴炴尭濮橈箓鎯冮悢鍏煎仺闁宠櫣妫弉e_init_ex婵炵鍋愭慨鎾矗閸℃稑绫嶉柛鎾茬劍閻e崬菐閸ャ劎绠栭悗鍨⒐缁嬪鍩€椤掑嫭鍤? - ) // 闁哄鏅滈弻銊ッ洪弽顓炵9闂傚倸顕拹鈺佲槈閹惧磭孝闁诡喗鎹囬幆鍐礋椤忓棛娈ゆ繛瀵稿У濠€褰掑船椤掑嫭鍎樺ù锝埿掗崑鎾朵沪閻e本姣庨梺鎸庣☉閻倿鍩€椤掍浇澹橀柣鏍煐缁嬪鎮伴埦鈧崑?闂? + int sane_event_callback( // 婵炲鍔岄崬浠嬪炊閻愬墎娈堕柣銊ュ椤曨喚鎸掗埥鍛闂傚洠鍋撻悷鏇氭缁绘氨鎷犳担绛嬪殙闁搞儳鍋犻惃鐔煎及椤栨凹妯嬬紒鎹愭硶閳昏偐鈧懓顦崣蹇涙? + SANE_Handle hdev // 濞存籂鍛櫢濞存粌顑勫▎銏ゆ儍閸曨噮鍟庡璺烘搐瑜扮偤寮? + , int code // 闁搞儳鍋犻惃鐔哥鐎b晜顐藉ù鐙呯悼閻? + , void* data // 闁搞儳鍋犻惃鐔哥鐎b晜顐介柡浣哄瀹撲線鏁嶇仦鍓у闁硅鍠曠花銊︾閺堥潧鏁╅柣顔荤劍濠€渚€骞嶉埀顒佺▔瀹ュ懏鍊遍柨娑樿嫰瀵剟鎮¤閸欐寧鎷呴幘鑼殤濞寸姾娉涢悾鐐? + , unsigned int* len // 闁轰胶澧楀畵渚€姊归崹顔碱唺闁挎稑鐗嗛悺褔鎳為崒锔剧闁挎稑鏈崹銊╂嚀閸楁仸ent_data闁汇劌瀚槐锕傚礃閹绘帒闅橀梻鈧崹顔碱唺闁挎稑鐭侀娑氱磼閸℃凹鍤為柣顏勵儑濞村鎯旈弮鍌涚暠濞存粌顑勫▎銏$閿濆洨? + , void* param // 闁活潿鍔嶉崺娑㈡嚊椤忓嫮鏆板☉鏂款槹閺嗙喖骞戦鍡欑濞戞挸姘﹂惃鐔兼偨閳虹棏ne_init_ex濞磋偐濮撮崣鍡涘籍閸撲焦鐣卞ǎ鍥ㄧ箖鐎垫梹绋夐埀顒勬? + ) // 閺夆晜鏌ㄥú鏍磹闂傚璐╁☉鎾崇Т閹捇鎯冮崟顏嗙殤濞寸姵婀归崬顒勬儘娴hВ鍋撶仦鐣屾毎闁挎稑鐭傞埀顒佽壘閻栬埖绋夌悰鈾€鍋?? { std::lock_guard lock(cb_lock_); std::vector::iterator it = std::find(g_scanner_instances.begin(), g_scanner_instances.end(), hdev); @@ -207,10 +207,10 @@ namespace callback , {SANE_STD_OPT_NAME_COLOR_CORRECTION , OPTION_TITLE_SPJZ} , {SANE_STD_OPT_NAME_DISCARDBLANK , OPTION_TITLE_TGKBY} }, - g_discard[] = { {SANE_STD_OPT_NAME_REVERSE_01 , "\351\273\221\347\231\275\345\233\276\345\203\217\345\217\215\350\211\262\350\276\223\345\207\272\357\274\210\346\255\243\345\270\270\351\242\234\350\211\262\344\270\272\357\274\2320-\351\273\221\350\211\262\357\274\2331-\347\231\275\350\211\262\357\274\211"} // 婵帗绋掗崹鐟扳枍瑜斿畷鍫曞箚瑜嶉崜濂告煕濞嗗繒啸濠㈢懓锕ュ蹇涘箻閸愬弶鐦旈梺鎸庣☉閻楀﹪顢楀鍛殰闁归棿绶¢弶褰掓煠绾懎绱﹂悹鎰枛閺?-婵帗绋掗崹鍏肩珶婵犲洦鏅?-闂佽皫鍐e亾閻斿妫岄梺? - , {SANE_STD_OPT_NAME_FILTER , "\347\201\260\345\272\246\346\210\226\351\273\221\347\231\275\345\233\276\345\203\217 - \351\231\244\350\211\262"} // 闂佽绻戝妯尖偓瑙勫▕楠炲寮介鐘冲闂佽皫鍡橆棄婵炲瓨锕㈠畷?- 闂傚倸瀚ㄩ崐娑欑珶? - , {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , "\350\207\252\345\212\250\346\220\223\347\272\270\345\274\272\345\272\246"} // 闂佺厧顨庢禍婊勬叏閳哄懎绠归柟鎯у閸撱劎鈧鍠栭幖顐も偓? - , {SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE , "\346\220\223\347\272\270\351\230\210\345\200\274"} // " 闂佺懓鍚嬮幐楣冩倿婵犲洦鈷撻柛顐g妇閸? + g_discard[] = { {SANE_STD_OPT_NAME_REVERSE_01 , "\351\273\221\347\231\275\345\233\276\345\203\217\345\217\215\350\211\262\350\276\223\345\207\272\357\274\210\346\255\243\345\270\270\351\242\234\350\211\262\344\270\272\357\274\2320-\351\273\221\350\211\262\357\274\2331-\347\231\275\350\211\262\357\274\211"} // 濮掓稒鍨瑰▍褔宕堕幆褍鍓奸柛娆忕Х婢瑰﹥娼忛幘鍐叉瘔闁挎稑鐗婇婊呮暜閹间緡鏉归柤纭呭紦鐠愮喖?-濮掓稒鍨兼竟濠囨?-闁谎冣偓鐔奉棌闁? + , {SANE_STD_OPT_NAME_FILTER , "\347\201\260\345\272\246\346\210\226\351\273\221\347\231\275\345\233\276\345\203\217 - \351\231\244\350\211\262"} // 闁诲繑婢樼€规娊骞嬮弽顓犳嫧闁谎嗘濞存﹢宕?- 闂傚嫨鍊涙竟? + , {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , "\350\207\252\345\212\250\346\220\223\347\272\270\345\274\272\345\272\246"} // 闁煎浜滄慨鈺呭箹閹惧墎鍓ㄧ€殿喖鎼€? + , {SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE , "\346\220\223\347\272\270\351\230\210\345\200\274"} // " 闁瑰吋鎸鹃悞濠囨⒓閸績? }; const char* option_title_2_name(const char* title) { @@ -347,12 +347,12 @@ namespace callback // SANE_EVENT_IMAGE_OK - void* unused, be NULL, flag - unused, be 0 static HMODULE hui = NULL; int (*choose_scanner)(const std::vector& devs) = NULL; // blocked. return selected DEVQUE::id or -1 if user cancelled - char* (*apply_current_config)(const char* dev_name, SANE_Handle device, LPSANEAPI api) = NULL; // 闁圭厧鐡ㄥ濠氬极閵堝洦濯奸柟顖嗗本校闂佹眹鍔岀€氼剛绱炵€n喖绀堢€广儱顦敮鎶芥煥? + char* (*apply_current_config)(const char* dev_name, SANE_Handle device, LPSANEAPI api) = NULL; // 閹煎瓨姊婚弫銈囨媼閹屾У闁汇劌瀚紞瀣礈瀹ュ甯抽柨? int (*show_setting_ui)(SANE_Handle device, HWND parent, LPSANEAPI api, const char* devname, bool with_scan, std::function callback) = NULL; int (*show_progress_ui)(HWND parent, std::function callback, std::function* notify) = NULL; int (*show_messagebox_ui)(HWND parent, int event, void* msg, int flag) = NULL; int (*close_ui)(int) = NULL; - int (*apply_given_config)(const char* content, SANE_Handle device, LPSANEAPI api) = NULL; // 闁圭厧鐡ㄥ濠氬极閵堝绠伴柛銉戝懏姣庨梺姹囧妼鐎氫即宕㈤妶鍥╃>妞ゆ洖妫涚粈濉﹐ntent婵炴垶鎸诲浠嬪储閵堝洨纾炬い鏃囧Г濞堝爼鏌熺拠鈥虫灍缂? + int (*apply_given_config)(const char* content, SANE_Handle device, LPSANEAPI api) = NULL; // 閹煎瓨姊婚弫銈夊箰閸パ呮毎闁汇劌瀚伴崢銈囩磾椤曞棛绀塩ontent濞戞挻妞介崢銈囩磾椤旇姤娈堕柟璇″枟? char* (*get_config_content)(const char* dev_name, const char* name) = NULL; void (*twain_ui_free)(void* buf) = NULL; void (*pump_ui_message)(void* reserved) = NULL; @@ -1091,7 +1091,7 @@ int scanner::open(void) { if (callback::show_messagebox_ui) { - // 缂備胶鍋撻悺鏇㈡偪閸℃稑绠归柟鎯у閸撱劍绻涢崱蹇撳⒉闁哄棛鍠庨蹇涙嚑閸撲絿銏ゅ级閳轰焦绌挎い鏃€娲滈幏瀣灳閹绘巻鏋忛梺娲绘娇閸斿繒鈧灚鐗犲畷鑸垫綇閸撗咁槷闂佽顔栭崑鍛嚕閹稿孩浜ら柛銉㈡杹閺屻倕鈽夐幙鍐ㄥ箺闁诡噯绱曢惀顏嗙矙鐟併倓鏉柣鐘冲姂閸庮垶鍩€椤戣法鍔嶆い鎺炵秮瀵剙鈹冩惔鎾充壕濞达綀顫夐崑鍌氼熆閼镐絻澹樼紒鍗炲缁灚寰勬繝鍕紳闁汇埄鍨遍幃鍌炪€傜捄琛℃瀻闁炽儱鍟跨拋鏌ユ煠閾忣偄鐏婄紒鍙樺嵆瀵増鎯旈姀鈾€鏋栨繝鈷€鍛粶妞わ箑娼¢弫宥呯暆閸愭儳娈插┑鐐差槶閸斿秹宕滄导鏉戠煑濠电姴鍟ˇ褎绻涢幘铏櫤缁句勘鍎垫俊瀛樻媴濮濆苯鐝梺鑹伴哺濮婂鏌堢€靛憡濯奸柟顖嗗本校婵炴挻纰嶇粙鎴犺姳閺屻儱鐤柛鈩冭壘閺嬬姴鈽夐弮鍌氼暭婵炲瓨鐩獮鎴﹀閵忋垹澧鹃柡澶屽剱閸n垳妲? + // 缂佺偓鐡曢悿鍡涘箹閹惧墎鍓ㄦ繛鍡忓墲閺嗙喎顔忛懠鍓佇㈤弶鈺佹穿椤旀洜鎷嬮垾鎻掆枏闁活潿鍔忕€垫牠宕舵潏鍓х闁规鍋呭鎸庢交閸モ斁鏌ゅ☉鎿冨幗閹紕鐥粙瑁や杭閻犳劑鍎埀顑跨劍椤掞綁寮┃搴撳亾娴h鍋傚鑸佃壘缁卞墎绮垫径濠勭=閻㈩垱鎮傞。璺衡枎閳ュ啿璁查柤铏灊缁变即寮版惔銏♀枖濠⒀呭仜椤﹀潡鏁嶅畝鍐惧殲婵炲鍔嶉崜浼村矗婵犲啯顦ф繛鎾虫噺绾俱儵濡存担姝屽珯闁艰鲸姊婚柈瀵告媼閹屾У濞撴碍绋戠花鏌ュ疮閸℃艾鏋犲☉鏃傚濞存盯骞戦姀銏㈠墾閺夌儐鍣? std::wstring roller_msgw(local_trans::lang_trans_between_hz936(L"\u7EB8\u8F6E\u6413\u7EB8\u6B21\u6570\u5DF2\u8D85\u8FC7\u8BBE\u8BA1\u4F7F\u7528\u8303\u56F4\uFF0C\u626B\u63CF\u8FC7\u7A0B\u4E2D\u6413\u7EB8\u5931\u8D25\u3001\u6B6A\u659C\u3001\u6413\u591A\u5F20\u7B49\u5F02\u5E38\u9891\u6B21\u53EF\u80FD\u4F1A\u660E\u663E\u589E\u591A\uFF0C\u8BF7\u6CE8\u610F\u53CA\u65F6\u6E05\u6D01\u3001\u5E76\u8054\u7CFB\u8BBE\u5907\u4F9B\u5E94\u5546\u8D2D\u4E70\u66FF\u6362\u7EB8\u8F6E\uFF01")); std::string roller_msg(local_trans::u2a(roller_msgw.c_str(), CP_UTF8)); app_wnd_ = callback::find_main_wnd(); @@ -1312,7 +1312,7 @@ int scanner::init_options_id(void) if (is_erase_hole_id_ == -1) { - // 闂佺绻掗崢褔顢欓幇鐗堝殌濞达絿鍎ら悾閬嶆⒒閸曗晛鈧洟鎮洪悢铏逛笉婵°倓鑳堕妴? + // 闁稿繒鍘ч鎰版嚀娴g儤鐣遍梻鍕╁€曢悺鐔虹不濡や胶銆? EXAPI ea; ea.ind = is_erase_hole_id_ = ex_id_++; @@ -3723,7 +3723,7 @@ int scanner::handle_device_event(int ev_code, void* data, unsigned int* len) else if (ui_notify) ui_notify(ev_code, data, img_ind_); - // notifyXferReady 改为有图片才通知,防止部分APP在imgGetInfo中返回错误不能退出的问题 - 22023-10-25 + // notifyXferReady ΪͼƬֹ֪ͨAPPimgGetInfoзش˳ - 22023-10-25 if (img_ind_ == 1) on_ui_event(SANE_EVENT_TWAIN_XFER_READY, nullptr); @@ -3774,13 +3774,13 @@ int scanner::handle_device_event(int ev_code, void* data, unsigned int* len) } } } - //else if (ev_code == SANE_EVENT_ERROR) // 闁诲繒鍋涚换妤呭棘閳ь剟鏌ㄥ☉妯垮婵犫偓椤忓牆纾绘繝濠傚閸撻箖鏌熷▓鍨簼鐎殿喖娼″顔炬崉閾忚缍岀紓浣插亾閺夌偤顣︾换鍡涙煙?- 2023-05-30 + //else if (ev_code == SANE_EVENT_ERROR) // 閻忕偛绻楅弬鈧柨娑樿嫰濠€顏堝磻濠婂嫷鍓鹃柟娈垮亝瀵潡寮捄铏规綌缂佲偓鏉為绻嗛柟?- 2023-05-30 //{ // if (callback::show_messagebox_ui && *len) // { // callback::show_messagebox_ui(app_wnd_, ev_code, (void*)data, 0); // } - // else if (*len) //闂備焦瀵ч悷銊╊敋閵堝拋鍤曢柣鐔告緲濮? + // else if (*len) //闂佹寧鐟ㄩ銈咁嚕閻熸澘? // { // std::wstring msg(local_trans::a2u((char*)data, CP_UTF8)); // if (!IsWindow(app_wnd_))