国产系统增加进程占用提示

This commit is contained in:
yangjiaxuan 2024-09-06 18:19:40 +08:00
parent 57a2b30755
commit 5440f484be
5 changed files with 48 additions and 9 deletions

View File

@ -260,7 +260,14 @@ HGResult DeviceUser::Open()
}
else
{
return HGSane_OpenSelectedDevice(m_source, m_wnd, &m_saneDev);
HGChar errInfo[256];
HGResult ret = HGSane_OpenSelectedDevice(m_source, m_wnd, &m_saneDev, errInfo, 256);
if (HGBASE_ERR_OK != ret)
{
QMessageBox::information(m_wnd, tr("Prompt"), errInfo);
}
return ret;
}
}
@ -281,7 +288,13 @@ HGResult DeviceUser::OpenDefault()
else
{
HGChar errInfo[256];
return HGSane_OpenDevice(m_source, 0, &m_saneDev, errInfo, 256);
HGResult ret = HGSane_OpenDevice(m_source, 0, &m_saneDev, errInfo, 256);
if (HGBASE_ERR_OK != ret)
{
QMessageBox::information(m_wnd, tr("Prompt"), errInfo);
}
return ret;
}
}

View File

@ -180,7 +180,7 @@ HGResult HGAPI HGSane_OpenDevice(HGSaneSource source, HGUInt index, HGSaneDevice
return HGBASE_ERR_OK;
}
HGResult HGAPI HGSane_OpenSelectedDevice(HGSaneSource source, HGWindow parent, HGSaneDevice* dev)
HGResult HGAPI HGSane_OpenSelectedDevice(HGSaneSource source, HGWindow parent, HGSaneDevice* dev, HGChar* errInfo, HGUInt errInfoLen)
{
if (NULL == source)
{
@ -189,7 +189,7 @@ HGResult HGAPI HGSane_OpenSelectedDevice(HGSaneSource source, HGWindow parent, H
HGSaneSourceImpl* saneSourceImpl = (HGSaneSourceImpl*)source;
class HGSaneDeviceImpl* saneDeviceImpl = NULL;
HGResult ret = saneSourceImpl->OpenSelectedDevice(parent, &saneDeviceImpl);
HGResult ret = saneSourceImpl->OpenSelectedDevice(parent, &saneDeviceImpl, errInfo, errInfoLen);
if (HGBASE_ERR_OK != ret)
{
return ret;

View File

@ -71,7 +71,7 @@ HGEXPORT HGResult HGAPI HGSane_GetDeviceNameWithIndex(HGSaneSource source, HGUIn
HGEXPORT HGResult HGAPI HGSane_OpenDevice(HGSaneSource source, HGUInt index, HGSaneDevice *dev, HGChar *errInfo, HGUInt errInfoLen);
HGEXPORT HGResult HGAPI HGSane_OpenSelectedDevice(HGSaneSource source, HGWindow parent, HGSaneDevice* dev);
HGEXPORT HGResult HGAPI HGSane_OpenSelectedDevice(HGSaneSource source, HGWindow parent, HGSaneDevice* dev, HGChar* errInfo, HGUInt errInfoLen);
HGEXPORT HGResult HGAPI HGSane_CloseDevice(HGSaneDevice dev);

View File

@ -507,7 +507,7 @@ HGResult HGSaneSourceImpl::OpenDevice(HGUInt index, HGSaneDeviceImpl** deviceImp
return HGBASE_ERR_OK;
}
HGResult HGSaneSourceImpl::OpenSelectedDevice(HGWindow parent, class HGSaneDeviceImpl** deviceImpl)
HGResult HGSaneSourceImpl::OpenSelectedDevice(HGWindow parent, class HGSaneDeviceImpl** deviceImpl, HGChar* errInfo, HGUInt errInfoLen)
{
if (NULL == deviceImpl)
{
@ -524,7 +524,22 @@ HGResult HGSaneSourceImpl::OpenSelectedDevice(HGWindow parent, class HGSaneDevic
GetDeviceName(i, name, 256);
SANE_Handle handle = NULL;
m_saneApi.sane_open_api(name, &handle);
SANE_Status stat = m_saneApi.sane_open_api(name, &handle);
if (SANE_STATUS_GOOD != stat)
{
if (NULL != errInfo)
{
const char* err = m_saneApi.sane_strstatus_api(stat);
if (NULL != err && errInfoLen >= strlen(err) + 1)
{
strcpy(errInfo, err);
}
}
if (1 == count)
return HGBASE_ERR_FAIL;
}
if (NULL != handle)
{
HGChar sn[256] = {0};
@ -553,7 +568,18 @@ HGResult HGSaneSourceImpl::OpenSelectedDevice(HGWindow parent, class HGSaneDevic
if (devs[i].id == id)
{
strcpy(devName, devs[i].name.c_str());
m_saneApi.sane_open_api(devs[i].name.c_str(), &handle);
SANE_Status stat = m_saneApi.sane_open_api(devs[i].name.c_str(), &handle);
if (SANE_STATUS_GOOD != stat)
{
if (NULL != errInfo)
{
const char* err = m_saneApi.sane_strstatus_api(stat);
if (NULL != err && errInfoLen >= strlen(err) + 1)
{
strcpy(errInfo, err);
}
}
}
break;
}
}

View File

@ -51,7 +51,7 @@ public:
HGResult GetDeviceCount(HGUInt *count);
HGResult GetDeviceName(HGUInt index, HGChar* name, HGUInt maxLen);
HGResult OpenDevice(HGUInt index, class HGSaneDeviceImpl **deviceImpl, HGChar* errInfo, HGUInt errInfoLen);
HGResult OpenSelectedDevice(HGWindow parent, class HGSaneDeviceImpl** deviceImpl);
HGResult OpenSelectedDevice(HGWindow parent, class HGSaneDeviceImpl** deviceImpl, HGChar* errInfo, HGUInt errInfoLen);
private:
static HGResult FindFunctions(HGDll dll, const HGChar* saneManu, SANEAPI *saneAPI);