|
|
@@ -0,0 +1,157 @@
|
|
|
+#include "VirtualDeviceClass.h"
|
|
|
+#include "libHSPSCannerLoader.h"
|
|
|
+
|
|
|
+static VirtualDeviceClassImpl* object = NULL;
|
|
|
+
|
|
|
+DEVICEBASE_API ErrorCodeEnum CreateDevComponent(DeviceBaseClass*& pOutDevAptObj)
|
|
|
+{
|
|
|
+ ErrorCodeEnum result(Error_Unexpect);
|
|
|
+ if (object == NULL) {
|
|
|
+ char* buf;
|
|
|
+ DWORD size;
|
|
|
+ const char* var = "INVOKE_VENDOR_ADAPTER_NAME";
|
|
|
+ size = GetEnvironmentVariableA(var, NULL, 0);
|
|
|
+ //ERROR_ENVVAR_NOT_FOUND
|
|
|
+ if (size <= 0) {
|
|
|
+ return Error_InvalidState;
|
|
|
+ }
|
|
|
+ buf = new char[size + 3];
|
|
|
+ if (buf == NULL) {
|
|
|
+ return Error_Resource;
|
|
|
+ }
|
|
|
+ memset(buf, 0, sizeof(char) * (size + 3));
|
|
|
+ size = GetEnvironmentVariableA(var, buf, size);
|
|
|
+ result = Bridge_LoadDevObject(buf);
|
|
|
+ if (result == Error_Succeed) {
|
|
|
+ object = new VirtualDeviceClassImpl();
|
|
|
+ }
|
|
|
+ delete[] buf;
|
|
|
+ }
|
|
|
+ pOutDevAptObj = object;
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+DEVICEBASE_API ErrorCodeEnum ReleaseDevComponent(DeviceBaseClass*& pInDevAptObj)
|
|
|
+{
|
|
|
+ ErrorCodeEnum result = Bridge_ReleaseDevObject();
|
|
|
+ if (result == Error_Succeed && pInDevAptObj != NULL) {
|
|
|
+ delete pInDevAptObj;
|
|
|
+ pInDevAptObj = NULL;
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+VirtualDeviceClassImpl::VirtualDeviceClassImpl()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+VirtualDeviceClassImpl::~VirtualDeviceClassImpl()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::GetDevCategory(DevCategoryInfo& devCategory)
|
|
|
+{
|
|
|
+ ErrorCodeEnum result;
|
|
|
+ DevCategoryInfo inner;
|
|
|
+ result = Bridge_GetDevCategory(&inner);
|
|
|
+ if (result == Error_Succeed) {
|
|
|
+ strcpy_s(devCategory.szType, MAX_DEV_TYPE_LEN, inner.szType);
|
|
|
+ strcpy_s(devCategory.szModel, MAX_DEV_MODEL_LEN, inner.szModel);
|
|
|
+ strcpy_s(devCategory.szVendor, MAX_DEV_VENDOR_LEN, inner.szVendor);
|
|
|
+ devCategory.eState = inner.eState;
|
|
|
+ devCategory.version.wMajor = inner.version.wMajor;
|
|
|
+ devCategory.version.wMinor = inner.version.wMinor;
|
|
|
+ devCategory.version.wRevision = inner.version.wRevision;
|
|
|
+ devCategory.version.wBuild = inner.version.wBuild;
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::Reset()
|
|
|
+{
|
|
|
+ return Bridge_Reset();
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::DevClose()
|
|
|
+{
|
|
|
+ ErrorCodeEnum result = Error_Succeed;
|
|
|
+ return (result = Bridge_DevClose());
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::GetLastErr(DevErrorInfo& devErrInfo)
|
|
|
+{
|
|
|
+ ErrorCodeEnum result = Error_Succeed;
|
|
|
+ DevErrorInfo inner;
|
|
|
+ result = Bridge_GetLastErr(&inner);
|
|
|
+ if (result == Error_Succeed) {
|
|
|
+ devErrInfo.dwErrMsgLen = inner.dwErrMsgLen;
|
|
|
+ strcpy_s(devErrInfo.szErrMsg, MAX_DEV_ERROR_MSG_LEN, inner.szErrMsg);
|
|
|
+ }
|
|
|
+ return (result);
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::DevOpen()
|
|
|
+{
|
|
|
+ ErrorCodeEnum result = Error_Succeed;
|
|
|
+ return (result = Bridge_DevOpen());
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::SetParam(ParamType type, ParamTypeValue value)
|
|
|
+{
|
|
|
+ ErrorCodeEnum result = Error_Succeed;
|
|
|
+ return (result = Bridge_SetParam(type, value));
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::SetPreview(short nValue)
|
|
|
+{
|
|
|
+ ErrorCodeEnum result = Error_Succeed;
|
|
|
+ return (result = Bridge_SetPreview(nValue));
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::ScanImage(const char* pszFileName)
|
|
|
+{
|
|
|
+ ErrorCodeEnum result = Error_Succeed;
|
|
|
+ return (result = Bridge_ScanImage(pszFileName));
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::ScanImageEx(BYTE* pBtImg, int& nBtLen, const char* pszFileName /*= ""*/)
|
|
|
+{
|
|
|
+ ErrorCodeEnum result = Error_Succeed;
|
|
|
+ int inner = nBtLen;
|
|
|
+ result = Bridge_ScanImageEx(pBtImg, &inner, pszFileName);
|
|
|
+ nBtLen = inner;
|
|
|
+
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::SetViewPos(int nX, int nY, int nWidth)
|
|
|
+{
|
|
|
+ ErrorCodeEnum result = Error_Succeed;
|
|
|
+ return (result = Bridge_SetViewPos(nX, nY, nWidth));
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::SetProperty()
|
|
|
+{
|
|
|
+ return Bridge_SetProperty();
|
|
|
+}
|
|
|
+
|
|
|
+ErrorCodeEnum VirtualDeviceClassImpl::GetDevStatus(HspsDevStatus& status)
|
|
|
+{
|
|
|
+ Bridge_HspsDevStatus inner;
|
|
|
+ ErrorCodeEnum result = Error_Succeed;
|
|
|
+ result = Bridge_GetDevStatus(&inner);
|
|
|
+ if (result == Error_Succeed) {
|
|
|
+ status.isConnected = inner.isConnected;
|
|
|
+ status.inPreview = inner.inPreview;
|
|
|
+ status.inShow = inner.inShow;
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+//SubClassStart
|
|
|
+
|
|
|
+
|
|
|
+
|