#include "HGTwain.h" #include "HGTwainImpl.hpp" HGResult HGAPI HGTwain_LoadDSM(HGTwainDSM* dsm) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = new HGTwainDSMImpl; HGResult ret = twainDSMImpl->LoadDSM(); if (HGBASE_ERR_OK != ret) { delete twainDSMImpl; return ret; } *dsm = (HGTwainDSM)twainDSMImpl; return HGBASE_ERR_OK; } HGResult HGAPI HGTwain_UnloadDSM(HGTwainDSM dsm) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; HGResult ret = twainDSMImpl->UnloadDSM(); if (HGBASE_ERR_OK != ret) { return ret; } delete twainDSMImpl; return HGBASE_ERR_OK; } HGResult HGAPI HGTwain_OpenDSM(HGTwainDSM dsm, HWND hwnd) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; return twainDSMImpl->OpenDSM(hwnd); } HGResult HGAPI HGTwain_CloseDSM(HGTwainDSM dsm) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; return twainDSMImpl->CloseDSM(); } HGResult HGAPI HGTwain_GetDSList(HGTwainDSM dsm, HGTwainDS* ds, HGUInt* size) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; return twainDSMImpl->GetDSList((HGTwainDSImpl**)ds, size); } HGResult HGAPI HGTwain_GetDefaultDS(HGTwainDSM dsm, HGTwainDS* ds) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; return twainDSMImpl->GetDefaultDS((HGTwainDSImpl**)ds); } HGResult HGAPI HGTwain_SelectDS(HGTwainDSM dsm, HGTwainDS* ds) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; return twainDSMImpl->SelectDS((HGTwainDSImpl**)ds); } 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_OpenDS(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->Open(); } HGResult HGAPI HGTwain_CloseDS(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->Close(); } HGResult HGAPI HGTwain_SetCapability(HGTwainDS ds, HGUInt cap, HGInt value) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->SetCap(cap, value); } HGResult HGAPI HGTwain_GetCapability(HGTwainDS ds, HGUInt cap, HGInt* value) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->GetCap(cap, value); } HGResult HGAPI HGTwain_EnableDSUIOnly(HGTwainDS ds, HGBool showUI, HWND parent, HGDSEventFunc func, HGPointer param) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->EnableUIOnly(showUI, parent, func, param); } HGResult HGAPI HGTwain_EnableDS(HGTwainDS ds, HGBool showUI, HWND parent, HGDSEventFunc func, HGPointer param) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->Enable(showUI, parent, func, param); } HGResult HGAPI HGTwain_DisableDS(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->Disable(); } HGResult HGAPI HGTwain_ImageNativeXfer(HGTwainDS ds, HGUInt type, HGUInt origin, HGImage* image) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->ImageNativeXfer(type, origin, image); } HGResult HGAPI HGTwain_EndXfer(HGTwainDS ds, HGUInt* count) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->EndXfer(count); } HGResult HGAPI HGTwain_Reset(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->Reset(); }