增加设备打开失败提示;改变启动扫描失败的提示方式
This commit is contained in:
parent
5dbba10ee1
commit
fc8ca14ec5
|
@ -293,6 +293,11 @@ int scanner::open(void)
|
||||||
load_config((cfg_path_ + scanner_name_).c_str());
|
load_config((cfg_path_ + scanner_name_).c_str());
|
||||||
// apply_config();
|
// apply_config();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::wstring msg(local_trans::a2u(hg_scanner_err_description(ret), CP_UTF8));
|
||||||
|
MessageBoxW(NULL, msg.c_str(), L"\u6253\u5F00\u5931\u8D25", MB_OK | MB_ICONERROR);
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1689,9 +1694,16 @@ COM_API_IMPLEMENT(scanner, int, start(void))
|
||||||
img_fmt_.img_format = SANE_IMAGE_TYPE_BMP;
|
img_fmt_.img_format = SANE_IMAGE_TYPE_BMP;
|
||||||
img_fmt_.compress.compression = cmprsn;
|
img_fmt_.compress.compression = cmprsn;
|
||||||
}
|
}
|
||||||
else if (indicator_.get())
|
//else if (indicator_.get())
|
||||||
|
//{
|
||||||
|
// indicator_->notify_scan_over(hg_scanner_err_description(ret), true);
|
||||||
|
//}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
indicator_->notify_scan_over(hg_scanner_err_description(ret), true);
|
std::wstring msg(local_trans::a2u(hg_scanner_err_description(ret), CP_UTF8));
|
||||||
|
if (indicator_.get())
|
||||||
|
indicator_.reset();
|
||||||
|
MessageBoxW(NULL, msg.c_str(), L"\u542F\u52A8\u5931\u8D25", MB_OK | MB_ICONERROR);
|
||||||
}
|
}
|
||||||
prev_start_result_ = ret;
|
prev_start_result_ = ret;
|
||||||
is_scanning_ = ret == SANE_STATUS_GOOD;
|
is_scanning_ = ret == SANE_STATUS_GOOD;
|
||||||
|
@ -2237,7 +2249,10 @@ int scanner::handle_device_event(int ev_code, void* data, unsigned int* len)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
int scanner::last_error(void)
|
||||||
|
{
|
||||||
|
return err_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2337,9 +2352,21 @@ int __stdcall open_scanner(SCANNERID scanner_id, ISaneInvoker** invoker)
|
||||||
return SCANNER_ERR_DEVICE_NOT_FOUND;
|
return SCANNER_ERR_DEVICE_NOT_FOUND;
|
||||||
|
|
||||||
scanner* scn = new scanner(scanner_id);
|
scanner* scn = new scanner(scanner_id);
|
||||||
|
if (scn->last_error() == SCANNER_ERR_OK)
|
||||||
|
{
|
||||||
*invoker = dynamic_cast<ISaneInvoker*>(scn);
|
*invoker = dynamic_cast<ISaneInvoker*>(scn);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int ret = scn->last_error();
|
||||||
|
|
||||||
|
scn->release();
|
||||||
|
*invoker = NULL;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#ifdef EXPORT_SANE_API
|
#ifdef EXPORT_SANE_API
|
||||||
__declspec(dllexport)
|
__declspec(dllexport)
|
||||||
|
|
|
@ -325,4 +325,5 @@ public:
|
||||||
// methods:
|
// methods:
|
||||||
public:
|
public:
|
||||||
int handle_device_event(int ev_code, void* data, unsigned int* len);
|
int handle_device_event(int ev_code, void* data, unsigned int* len);
|
||||||
|
int last_error(void);
|
||||||
};
|
};
|
|
@ -679,6 +679,8 @@ Twpp::ConditionCode huagao_ds::condition_code_from_hg_error(int hgerr)
|
||||||
return Twpp::ConditionCode::DamagedCorner;
|
return Twpp::ConditionCode::DamagedCorner;
|
||||||
if (hgerr == SCANNER_ERR_DEVICE_NO_PAPER)
|
if (hgerr == SCANNER_ERR_DEVICE_NO_PAPER)
|
||||||
return Twpp::ConditionCode::NoMedia;
|
return Twpp::ConditionCode::NoMedia;
|
||||||
|
if (hgerr == SCANNER_ERR_OPENED_BY_OTHER_PROCESS)
|
||||||
|
return Twpp::ConditionCode::MaxConnections;
|
||||||
|
|
||||||
return (Twpp::ConditionCode)((int)Twpp::ConditionCode::CustomBase + hgerr);
|
return (Twpp::ConditionCode)((int)Twpp::ConditionCode::CustomBase + hgerr);
|
||||||
}
|
}
|
||||||
|
@ -921,13 +923,16 @@ Result huagao_ds::userInterfaceEnable(const Identity&, UserInterface& ui)
|
||||||
return seqError();
|
return seqError();
|
||||||
|
|
||||||
scanner_->twain_set_transfer((twain_xfer)m_capXferMech);
|
scanner_->twain_set_transfer((twain_xfer)m_capXferMech);
|
||||||
|
int err = scanner_->start();
|
||||||
if (scanner_->start() == SCANNER_ERR_OK)
|
if (err == SCANNER_ERR_OK)
|
||||||
{
|
{
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (err == SCANNER_ERR_DEVICE_NO_PAPER)
|
||||||
|
return { ReturnCode::Failure, ConditionCode::NoMedia };
|
||||||
|
|
||||||
return bummer();
|
return bummer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue