#include "HGTwain.h" #include "HGTwainImpl.hpp" HGResult HGAPI HGTwain_CreateDSM(HWND hwnd, HGTwainDSM* dsm) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = new HGTwainDSMImpl; HGResult ret = twainDSMImpl->Create(hwnd); if (HGBASE_ERR_OK != ret) { delete twainDSMImpl; return ret; } *dsm = (HGTwainDSM)twainDSMImpl; return HGBASE_ERR_OK; } HGResult HGAPI HGTwain_DestroyDSM(HGTwainDSM dsm) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; HGResult ret = twainDSMImpl->Destroy(); if (HGBASE_ERR_OK != ret) { return ret; } delete twainDSMImpl; return HGBASE_ERR_OK; } HGResult HGAPI HGTwain_GetDSCount(HGTwainDSM dsm, HGUInt* count) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; return twainDSMImpl->GetDSCount(count); } HGResult HGAPI HGTwain_GetDSNameWithIndex(HGTwainDSM dsm, HGUInt index, HGChar* name, HGUInt maxLen) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; return twainDSMImpl->GetDSName(index, name, maxLen); } HGResult HGAPI HGTwain_OpenDS(HGTwainDSM dsm, HGUInt index, HGTwainDS* ds) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; class HGTwainDSImpl* dsImpl = NULL; HGResult ret = twainDSMImpl->OpenDS(index, &dsImpl); if (HGBASE_ERR_OK != ret) { return ret; } *ds = (HGTwainDS)dsImpl; return HGBASE_ERR_OK; } HGResult HGAPI HGTwain_OpenDefaultDS(HGTwainDSM dsm, HGTwainDS* ds) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; class HGTwainDSImpl* dsImpl = NULL; HGResult ret = twainDSMImpl->OpenDefaultDS(&dsImpl); if (HGBASE_ERR_OK != ret) { return ret; } *ds = (HGTwainDS)dsImpl; return HGBASE_ERR_OK; } HGResult HGAPI HGTwain_OpenSelectedDS(HGTwainDSM dsm, HGTwainDS* ds) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; class HGTwainDSImpl* dsImpl = NULL; HGResult ret = twainDSMImpl->OpenSelectedDS(&dsImpl); if (HGBASE_ERR_OK != ret) { return ret; } *ds = (HGTwainDS)dsImpl; return HGBASE_ERR_OK; } HGResult HGAPI HGTwain_OpenSelectedDSEx(HGTwainDSM dsm, HGTwainDS* ds) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; class HGTwainDSImpl* dsImpl = NULL; HGResult ret = twainDSMImpl->OpenSelectedDSEx(&dsImpl); if (HGBASE_ERR_OK != ret) { return ret; } *ds = (HGTwainDS)dsImpl; return HGBASE_ERR_OK; } HGResult HGAPI HGTwain_CloseDS(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->Close(); } HGResult HGAPI HGTwain_GetDSName(HGTwainDS ds, HGChar* name, HGUInt maxLen) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->GetName(name, maxLen); } HGResult HGAPI HGTwain_GetDSDeviceName(HGTwainDS ds, HGChar* name, HGUInt maxLen) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->GetDeviceName(name, maxLen); } HGResult HGAPI HGTwain_GetDSDeviceCustomInfo(HGTwainDS ds, HGTwainDeviceCustomInfo *info) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->GetDeviceCustomInfo(info); } HGResult HGAPI HGTwain_LoginDS(HGTwainDS ds, const HGChar *user, const HGChar *pwd) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->Login(user, pwd); } HGResult HGAPI HGTwain_LogoutDS(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->Logout(); } HGResult HGAPI HGTwain_ClearDSRollerCount(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->ClearRollerCount(); } HGResult HGAPI HGTwain_GetDSDriverLog(HGTwainDS ds, const HGChar *fileName) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->GetDriverLog(fileName); } HGResult HGAPI HGTwain_ClearDSDriverLog(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->ClearDriverLog(); } HGResult HGAPI HGTwain_GetDSDeviceLog(HGTwainDS ds, const HGChar *fileName) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->GetDeviceLog(fileName); } HGResult HGAPI HGTwain_ClearDSDeviceLog(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->ClearDeviceLog(); } HGResult HGAPI HGTwain_EnableDSUIOnly(HGTwainDS ds, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->EnableUIOnly(parent, eventFunc, eventParam); } HGResult HGAPI HGTwain_EnableDS(HGTwainDS ds, HGBool showUI, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam, HGDSImageFunc imageFunc, HGPointer imageParam) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->Enable(showUI, parent, eventFunc, eventParam, imageFunc, imageParam); } HGResult HGAPI HGTwain_EnableDSWithSingleScan(HGTwainDS ds, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam, HGDSImageFunc imageFunc, HGPointer imageParam) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->EnableWithSingleScan(parent, eventFunc, eventParam, imageFunc, imageParam); } HGResult HGAPI HGTwain_DisableDS(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->Disable(); }