#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) { if (NULL == dsm) { return HGBASE_ERR_INVALIDARG; } HGTwainDSMImpl* twainDSMImpl = (HGTwainDSMImpl*)dsm; return twainDSMImpl->OpenDSM(); } 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->dsmImpl->GetDSName(twainDSImpl, name, maxLen); } HGResult HGAPI HGTwain_OpenDS(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->dsmImpl->OpenDS(twainDSImpl); } HGResult HGAPI HGTwain_CloseDS(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->dsmImpl->CloseDS(twainDSImpl); } HGResult HGAPI HGTwain_SetCapability(HGTwainDS ds, HGUInt cap, HGInt value) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->dsmImpl->SetCapability(twainDSImpl, 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->dsmImpl->GetCapability(twainDSImpl, 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->dsmImpl->EnableDSUIOnly(twainDSImpl, 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->dsmImpl->EnableDS(twainDSImpl, showUI, parent, func, param); } HGResult HGAPI HGTwain_DisableDS(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->dsmImpl->DisableDS(twainDSImpl); } 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->dsmImpl->ImageNativeXfer(twainDSImpl, type, origin, image); } HGResult HGAPI HGTwain_EndXfer(HGTwainDS ds, HGUInt* count) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->dsmImpl->EndXfer(twainDSImpl, count); } HGResult HGAPI HGTwain_Reset(HGTwainDS ds) { if (NULL == ds) { return HGBASE_ERR_INVALIDARG; } HGTwainDSImpl* twainDSImpl = (HGTwainDSImpl*)ds; return twainDSImpl->dsmImpl->Reset(twainDSImpl); }