pid7823的设备,可修改debug.cfg文件name字段,选择对应的twain源才能打开该设备
This commit is contained in:
parent
e44b31b0c1
commit
710809cad1
|
@ -84,13 +84,13 @@ namespace callback
|
||||||
}SCNINST;
|
}SCNINST;
|
||||||
std::vector<SCNINST> g_scanner_instances;
|
std::vector<SCNINST> g_scanner_instances;
|
||||||
|
|
||||||
int sane_event_callback( // 濞夈劌é<EFBFBD>žä»‹å´¶é<EFBFBD><EFBFBD>å‰<EFBFBD>殶閻ㄥ嫬顕挒鈽呯礉闂団å<EFBFBD>“é<EFBFBD>Ÿæ›šæ¤’ç»»æ°±æ‹ æµ£ç‹åš‰é–¸ãƒ§å<EFBFBD> é<EFBFBD>¨ç†¼å¼°é¡–氼樋ç¼<EFBFBD>æ<EFBFBD><EFBFBD>法鈻肩€瑰é<EFBFBD>™å¿›æƒƒ?
|
int sane_event_callback( // 婵炲鍔岄崬浠嬪炊閻愬墎娈堕柣銊ュ椤曨喚鎸掗埥鍛闂傚洠鍋撻悷鏇氭缁绘氨鎷犳担绛嬪殙闁搞儳鍋犻惃鐔煎及椤栨凹妯嬬紒鎹愭硶閳昏偐鈧懓顦崣蹇涙儍?
|
||||||
SANE_Handle hdev // å¨´æº å‘®æ™¸å¨´æ»ƒîƒ„å¨†ãˆ¤æƒƒé<EFBFBD>•î‡…啎婢跺洤褰為å¼?
|
SANE_Handle hdev // 濞存籂鍛櫢濞存粌顑勫▎銏ゆ儍閸曨噮鍟庡璺烘搐瑜扮偤寮?
|
||||||
, int code // 閸ョå<EFBFBD> é<EFBFBD>¨ç†¸ç¦<EFBFBD>瀣╂娴狅絿é<EFBFBD>?
|
, int code // 闁搞儳鍋犻惃鐔哥鐎b晜顐藉ù鐙呯悼閻?
|
||||||
, void* data // 閸ョå<EFBFBD> é<EFBFBD>¨ç†¸ç¦<EFBFBD>瀣╂閺佺増宓侀æ•<EFBFBD>ç<EFBFBD>žå‰§å£Œé–¹è¯¡å–•ç»¨ã„¦ç¦’é<EFBFBD>ˆé<EFBFBD>›æ•©é–»î†»ç„¦å©€ä¾€å¹<EFBFBD>鈧î„<EFBFBD>稉宥呮倱閿涘苯寮悡è¤<EFBFBD>é<EFBFBD>™æŒŽæ‹…鎾茬皑娴犺泛é<EFBFBD>£ç‚¬ç¨Š?
|
, void* data // 闁搞儳鍋犻惃鐔哥鐎b晜顐介柡浣哄瀹撲線鏁嶇仦鍓у闁硅鍠曠花銊︾閺堥潧鏁╅柣顔荤劍濠€渚€骞嶉埀顒佺▔瀹ュ懏鍊遍柨娑樿嫰瀵剟鎮¤閸欐寧鎷呴幘鑼殤濞寸姾娉涢悾鐐▕?
|
||||||
, unsigned int* len // 閺佺増宓侀梹é<EFBFBD>¨î†¼î†Šé–¿æ¶˜ç‰†é<EFBFBD>¡Ñ‡æ‡žé<EFBFBD>Œï¸¾ç¤†é–¿æ¶˜æœ¬é<EFBFBD>¨ã„©æ‡“é<EFBFBD>—æ<EFBFBD>¦ent_data閻ㄥ嫮绱﹂崘鎻掑隘闂€é<EFBFBD>¨î†¼î†Šé–¿æ¶˜çŸ<EFBFBD>顕涚紒é<EFBFBD>¡æ°¼åšžé–»î<EFBFBD>„娴夋惔é<EFBFBD>ƒå‚›ç•±å¨´æ»ƒîƒ„娆㈡禒é”<EFBFBD>囩åž?
|
, unsigned int* len // 闁轰胶澧楀畵渚€姊归崹顔碱唺闁挎稑鐗嗛悺褔鎳為崒锔剧闁挎稑鏈崹銊╂嚀閸楁仸ent_data闁汇劌瀚槐锕傚礃閹绘帒闅橀梻鈧崹顔碱唺闁挎稑鐭侀娑氱磼閸℃凹鍤為柣顏勵儑濞村鎯旈弮鍌涚暠濞存粌顑勫▎銏$閿濆洨鍨?
|
||||||
, void* param // é–»î<EFBFBD>¬åŠ<EFBFBD>é<EFBFBD>©æ¶¢æ‡›é¡<EFBFBD>å‹æš°å¨‘斿é<EFBFBD>†ç†¼å¹‘顕嗙礉娑撳氦é<EFBFBD>¨ç†¼æ‚½éˆºç—‘ne_init_ex娴肩姴é<EFBFBD>™å—›å¼®é<EFBFBD>“佹畱娣囨繃瀵旀稉鈧懛?
|
, void* param // 闁活潿鍔嶉崺娑㈡嚊椤忓嫮鏆板☉鏂款槹閺嗙喖骞戦鍡欑濞戞挸姘﹂惃鐔兼偨閳虹棏ne_init_ex濞磋偐濮撮崣鍡涘籍閸撲焦鐣卞ǎ鍥ㄧ箖鐎垫梹绋夐埀顒勬嚊?
|
||||||
) // é<EFBFBD>‰â•‚柨娲æ å´<EFBFBD>闂寸贩娑撳秴鎮撻惃é<EFBFBD>•î<EFBFBD>†çš‘娴犳湹é<EFBFBD>žî„„æƒ<EFBFBD>浣解å<EFBFBD>“ç<EFBFBD>žç•Œæš°é–¿æ¶˜çŸ‚鈧î„<EFBFBD>艾é<EFBFBD>–舵稉ç<EFBFBD>›â™€å<EFBFBD>?é–?
|
) // 閺夆晜鏌ㄥú鏍磹闂傚璐╁☉鎾崇Т閹捇鎯冮崟顏嗙殤濞寸姵婀归崬顒勬儘娴hВ鍋撶仦鐣屾毎闁挎稑鐭傞埀顒佽壘閻栬埖绋夌悰鈾€鍋?闁?
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(cb_lock_);
|
std::lock_guard<std::mutex> lock(cb_lock_);
|
||||||
std::vector<SCNINST>::iterator it = std::find(g_scanner_instances.begin(), g_scanner_instances.end(), hdev);
|
std::vector<SCNINST>::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_COLOR_CORRECTION , OPTION_TITLE_SPJZ}
|
||||||
, {SANE_STD_OPT_NAME_DISCARDBLANK , OPTION_TITLE_TGKBY}
|
, {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"} // 姒涙垹娅ч崶鎯у剼閸æ¬<EFBFBD>秷澹婃æ½<EFBFBD>鎾冲毉閿涘牊顒滅敮鎼侇æ<EFBFBD>¹é–¼ç¡…弓ç’<EFBFBD>熼æ•?-姒涙垼澹婇æ•<C3A6>?-閻у€熷î—<C3AE>é–?
|
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"} // 閻忔澘瀹抽幋é<EFBFBD><EFBFBD>î… æ‹¨é–»Ñ†æ£„å¨´æ©€å´?- 闂勩倛澹?
|
, {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"} // 閼奉亜濮╅幖鎾å‰<EFBFBD>剨瀵æ<EFBFBD>«ç€?
|
, {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"} // " 閹兼挾é<EFBFBD>’婇梼é<EFBFBD>«æ¿ƒå<EFBFBD>?
|
, {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)
|
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
|
// SANE_EVENT_IMAGE_OK - void* unused, be NULL, flag - unused, be 0
|
||||||
static HMODULE hui = NULL;
|
static HMODULE hui = NULL;
|
||||||
int (*choose_scanner)(const std::vector<DEVQUEUI>& devs) = NULL; // blocked. return selected DEVQUE::id or -1 if user cancelled
|
int (*choose_scanner)(const std::vector<DEVQUEUI>& 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; // 鎼å˜æ¢»é<EFBFBD><EFBFBD>ょ拋鎯ь槵閻ㄥ嫬ç¼<EFBFBD>嬮崜宥夊帳閿?
|
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<void(ui_result)> callback) = NULL;
|
int (*show_setting_ui)(SANE_Handle device, HWND parent, LPSANEAPI api, const char* devname, bool with_scan, std::function<void(ui_result)> callback) = NULL;
|
||||||
int (*show_progress_ui)(HWND parent, std::function<void(ui_result)> callback, std::function<void(int/*event*/, void*/*msg*/, int/*flag*/)>* notify) = NULL;
|
int (*show_progress_ui)(HWND parent, std::function<void(ui_result)> callback, std::function<void(int/*event*/, void*/*msg*/, int/*flag*/)>* notify) = NULL;
|
||||||
int (*show_messagebox_ui)(HWND parent, int event, void* msg, int flag) = NULL;
|
int (*show_messagebox_ui)(HWND parent, int event, void* msg, int flag) = NULL;
|
||||||
int (*close_ui)(int) = NULL;
|
int (*close_ui)(int) = NULL;
|
||||||
int (*apply_given_config)(const char* content, SANE_Handle device, LPSANEAPI api) = NULL; // 鎼å˜æ¢»é<EFBFBD><EFBFBD>らå¹<EFBFBD>é<EFBFBD>¥Ñ…暰閻ㄥ嫰é<EFBFBD>˜ã‚‡ç´”顕嗙礉content娑撴椽é<EFBFBD>˜ã‚‡ç´”顔芥殶閹诡喗ç»?
|
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;
|
char* (*get_config_content)(const char* dev_name, const char* name) = NULL;
|
||||||
void (*twain_ui_free)(void* buf) = NULL;
|
void (*twain_ui_free)(void* buf) = NULL;
|
||||||
|
|
||||||
|
@ -555,6 +555,38 @@ scanner::~scanner()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string scanner::getDeviceType()
|
||||||
|
{
|
||||||
|
std::string cfgPath("");
|
||||||
|
std::string env("LOCALAPPDATA");
|
||||||
|
cfgPath = getenv(env.c_str());
|
||||||
|
cfgPath += "\\";
|
||||||
|
|
||||||
|
#ifdef OEM_HANWANG
|
||||||
|
cfgPath += "HanvonScan";
|
||||||
|
#elif defined(OEM_LISICHENG)
|
||||||
|
cfgPath += "LanxumScan";
|
||||||
|
#elif defined(OEM_CANGTIAN)
|
||||||
|
cfgPath += "CumTennScan";
|
||||||
|
#elif defined(OEM_ZHONGJING)
|
||||||
|
cfgPath += "MicrotekScan";
|
||||||
|
#elif defined(OEM_ZIGUANG)
|
||||||
|
cfgPath += "UniScan";
|
||||||
|
#elif defined(OEM_DELI)
|
||||||
|
cfgPath += "DeliScan";
|
||||||
|
#elif defined(OEM_NEUTRAL)
|
||||||
|
cfgPath += "NeuScan";
|
||||||
|
#else
|
||||||
|
cfgPath += "HuaGoScan";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
char devType[256] = { 0 };
|
||||||
|
cfgPath += "\\config\\debug.cfg";
|
||||||
|
GetPrivateProfileStringA("devs_name", "name", NULL, devType, 256, cfgPath.c_str());
|
||||||
|
|
||||||
|
return devType;
|
||||||
|
}
|
||||||
|
|
||||||
bool scanner::is_belong_serial(int vid, int pid, SCANNERID serial)
|
bool scanner::is_belong_serial(int vid, int pid, SCANNERID serial)
|
||||||
{
|
{
|
||||||
if (vid == PRODUCT_VENDOR_HG)
|
if (vid == PRODUCT_VENDOR_HG)
|
||||||
|
@ -588,7 +620,17 @@ bool scanner::is_belong_serial(int vid, int pid, SCANNERID serial)
|
||||||
}
|
}
|
||||||
else if (vid == PRODUCT_VENDOR_HG1)
|
else if (vid == PRODUCT_VENDOR_HG1)
|
||||||
{
|
{
|
||||||
return pid == 0x7823 && GET_SCANNER_VID(serial) == PRODUCT_VENDOR_HG && GET_SCANNER_PID(serial) == 0x200;
|
std::string devType = getDeviceType();
|
||||||
|
int devPid = 0x200;
|
||||||
|
if (!devType.empty())
|
||||||
|
{
|
||||||
|
if (devType == "G300")
|
||||||
|
devPid = 0x300;
|
||||||
|
else if (devType == "G400")
|
||||||
|
devPid = 0x400;
|
||||||
|
}
|
||||||
|
int a = GET_SCANNER_VID(serial);
|
||||||
|
return pid == 0x7823 && GET_SCANNER_VID(serial) == PRODUCT_VENDOR_HG && (GET_SCANNER_PID(serial) == devPid);
|
||||||
}
|
}
|
||||||
else if (vid == PRODUCT_VENDOR_HW)
|
else if (vid == PRODUCT_VENDOR_HW)
|
||||||
{
|
{
|
||||||
|
@ -991,7 +1033,7 @@ int scanner::open(void)
|
||||||
{
|
{
|
||||||
if (callback::show_messagebox_ui)
|
if (callback::show_messagebox_ui)
|
||||||
{
|
{
|
||||||
// ç¼<EFBFBD>炬瓕é<EFBFBD>¤å—›å¹–鎾å‰<EFBFBD>剨濞å—<EFBFBD>å‰<EFBFBD>é<EFBFBD>†ç†·î†<EFBFBD>鑼å‰<EFBFBD>Тé<EFBFBD>‰â•<EFBFBD>æ´©é¡”æ› æ‹‹éˆ¥æ<EFBFBD>’â–<EFBFBD>é–»î<EFBFBD>¬åŠ<EFBFBD>瀵æ å´¶æ<EFBFBD>ˆå‰§ç¤‰é–¹æ®¿å<EFBFBD>…寮挎潻é<EFBFBD>¥â”¾æŸ¤å¨‘擃厽鎮$痪绋裤亼é<EFBFBD> 愩儯鈧焦顒i弬婧库å<EFBFBD>“浣规å<EFBFBD>‚婢舵艾绱å‰<EFBFBD>粵澶婄磽é<EFBFBD>¢îˆ›æ‚‚顣跺▎鈥冲讲閼虫åž<EFBFBD>绱伴弰æ<EFBFBD>´ãˆ¡â–”婢хå<EFBFBD>›é¡¦å<EFBFBD>—æ•<EFBFBD>宀冾嚞濞夈åŠ<EFBFBD>é<EFBFBD>“ä¼´å´£æ¿ å†©î˜§æ¿žæ’³æ‡<EFBFBD>纾ラ妴浣æŒå«™é–¼è¾¨æ¢»é–®å¯¸æ‹‹éŽ¯ÑŒæ§µå¨“æ°ç¨‘绨查崯é<EFBFBD>¡æ°¬æž 娑旂増娴涢幑éŠ<EFBFBD>㈢剨é<EFBFBD>‰çƒ†å™¯ç»±?
|
// 缂佺偓鐡曢悿鍡涘箹閹惧墎鍓ㄦ繛鍡忓墲閺嗙喎顔忛懠鍓佇㈤弶鈺佹穿椤旀洜鎷嬮垾鎻掆枏闁活潿鍔忕€垫牠宕舵潏鍓х闁规鍋呭鎸庢交閸モ斁鏌ゅ☉鎿冨幗閹紕鐥粙瑁や杭閻犳劑鍎埀顑跨劍椤掞綁寮┃搴撳亾娴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::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));
|
std::string roller_msg(local_trans::u2a(roller_msgw.c_str(), CP_UTF8));
|
||||||
app_wnd_ = callback::find_main_wnd();
|
app_wnd_ = callback::find_main_wnd();
|
||||||
|
@ -1208,7 +1250,7 @@ int scanner::init_options_id(void)
|
||||||
|
|
||||||
if (is_erase_hole_id_ == -1)
|
if (is_erase_hole_id_ == -1)
|
||||||
{
|
{
|
||||||
// 閸忕厧顔愰懓浣烘畱闂勩倕é<EFBFBD>¡ç†ºç²»å¦¤ä½ºã€?
|
// 闁稿繒鍘ч鎰版嚀娴g儤鐣遍梻鍕╁€曢悺鐔虹不濡や胶銆?
|
||||||
EXAPI ea;
|
EXAPI ea;
|
||||||
|
|
||||||
ea.ind = is_erase_hole_id_ = ex_id_++;
|
ea.ind = is_erase_hole_id_ = ex_id_++;
|
||||||
|
@ -3562,13 +3604,13 @@ int scanner::handle_device_event(int ev_code, void* data, unsigned int* len)
|
||||||
log_info(msg, 1);
|
log_info(msg, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//else if (ev_code == SANE_EVENT_ERROR) // é<EFBFBD><EFBFBD>炲繗é<EFBFBD>‚€閿涘苯婀î<EFBFBD>ˆå´‘婊勵剾閹殿å<EFBFBD>…寮å<EFBFBD>—弮璺虹潔ç¼<EFBFBD>€æ<EFBFBD>žé¢<EFBFBD>繆閹?- 2023-05-30
|
//else if (ev_code == SANE_EVENT_ERROR) // 閻忕偛绻楅弬鈧柨娑樿嫰濠€顏堝磻濠婂嫷鍓鹃柟娈垮亝瀵潡寮捄铏规綌缂佲偓鏉為绻嗛柟?- 2023-05-30
|
||||||
//{
|
//{
|
||||||
// if (callback::show_messagebox_ui && *len)
|
// if (callback::show_messagebox_ui && *len)
|
||||||
// {
|
// {
|
||||||
// callback::show_messagebox_ui(app_wnd_, ev_code, (void*)data, 0);
|
// callback::show_messagebox_ui(app_wnd_, ev_code, (void*)data, 0);
|
||||||
// }
|
// }
|
||||||
// else if (*len) //é—<EFBFBD>挎瑨顕ゅé<EFBFBD>Ÿæ<EFBFBD>¿æ¯?
|
// else if (*len) //闂佹寧鐟ㄩ銈咁嚕閻熸澘姣?
|
||||||
// {
|
// {
|
||||||
// std::wstring msg(local_trans::a2u((char*)data, CP_UTF8));
|
// std::wstring msg(local_trans::a2u((char*)data, CP_UTF8));
|
||||||
// if (!IsWindow(app_wnd_))
|
// if (!IsWindow(app_wnd_))
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "scanned_img.h"
|
#include "scanned_img.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
@ -198,6 +198,7 @@ protected:
|
||||||
~scanner();
|
~scanner();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
static std::string getDeviceType();
|
||||||
static bool is_belong_serial(int vid, int pid, SCANNERID serial);
|
static bool is_belong_serial(int vid, int pid, SCANNERID serial);
|
||||||
static void get_scanner_name(SCANNERID id, std::vector<std::string>& names);
|
static void get_scanner_name(SCANNERID id, std::vector<std::string>& names);
|
||||||
static value_type from_sane_type(SANE_Value_Type type);
|
static value_type from_sane_type(SANE_Value_Type type);
|
||||||
|
|
Loading…
Reference in New Issue