diff --git a/build/windows/HGScannerLib/HGScannerLib.def b/build/windows/HGScannerLib/HGScannerLib.def index 86ae3f6e..e98ff05f 100644 --- a/build/windows/HGScannerLib/HGScannerLib.def +++ b/build/windows/HGScannerLib/HGScannerLib.def @@ -23,4 +23,5 @@ HGLib_DeviceIsPaperOn HGLib_DeviceRestart HGLib_DeviceShutDown HGLib_StartDeviceScan -HGLib_StopDeviceScan \ No newline at end of file +HGLib_StopDeviceScan +HGLib_StopDeviceScanAsyn \ No newline at end of file diff --git a/sdk/scannerlib/HGLibDeviceImpl.cpp b/sdk/scannerlib/HGLibDeviceImpl.cpp index 2f4ab045..83f9ca29 100644 --- a/sdk/scannerlib/HGLibDeviceImpl.cpp +++ b/sdk/scannerlib/HGLibDeviceImpl.cpp @@ -1027,6 +1027,21 @@ HGBool HGLibDeviceImpl::StopScan() return ret; } +HGBool HGLibDeviceImpl::StopScanAsyn() +{ + HGBool ret = HGFALSE; + + HGBase_EnterLock(m_lock); + if (m_scanning) + { + sane_cancel(m_devHandle); + ret = HGTRUE; + } + HGBase_LeaveLock(m_lock); + + return ret; +} + const char* HGLibDeviceImpl::GetGroupName(HGUInt group) { if (group > HGLIB_GROUP_NAME_PAPERFEEDING) diff --git a/sdk/scannerlib/HGLibDeviceImpl.hpp b/sdk/scannerlib/HGLibDeviceImpl.hpp index 9aa88b8f..6fc92e02 100644 --- a/sdk/scannerlib/HGLibDeviceImpl.hpp +++ b/sdk/scannerlib/HGLibDeviceImpl.hpp @@ -37,6 +37,7 @@ public: HGBool StartScan(HGLibDeviceScanEventFunc eventFunc, HGPointer eventParam, HGLibDeviceScanImageFunc imageFunc, HGPointer imageParam); HGBool StopScan(); + HGBool StopScanAsyn(); private: static const char* GetGroupName(HGUInt group); diff --git a/sdk/scannerlib/HGScannerLib.cpp b/sdk/scannerlib/HGScannerLib.cpp index 1d269c33..d53497b7 100644 --- a/sdk/scannerlib/HGScannerLib.cpp +++ b/sdk/scannerlib/HGScannerLib.cpp @@ -263,3 +263,14 @@ HGBool HGAPI HGLib_StopDeviceScan(HGLibDevice device) HGLibDeviceImpl* deviceImpl = (HGLibDeviceImpl*)device; return deviceImpl->StopScan(); } + +HGBool HGAPI HGLib_StopDeviceScanAsyn(HGLibDevice device) +{ + if (NULL == device) + { + return HGFALSE; + } + + HGLibDeviceImpl* deviceImpl = (HGLibDeviceImpl*)device; + return deviceImpl->StopScanAsyn(); +} diff --git a/sdk/scannerlib/HGScannerLib.h b/sdk/scannerlib/HGScannerLib.h index f89acd8f..1e850d94 100644 --- a/sdk/scannerlib/HGScannerLib.h +++ b/sdk/scannerlib/HGScannerLib.h @@ -507,4 +507,7 @@ HGEXPORT HGBool HGAPI HGLib_StartDeviceScan(HGLibDevice device, HGLibDeviceScanE /* ֹͣɨÃè */ HGEXPORT HGBool HGAPI HGLib_StopDeviceScan(HGLibDevice device); +/* ֹͣɨÃè-Òì²½ */ +HGEXPORT HGBool HGAPI HGLib_StopDeviceScanAsyn(HGLibDevice device); + #endif /* __HGSCANNERLIB_H__ */ \ No newline at end of file