2022-05-03 10:25:52 +00:00
|
|
|
|
#ifndef __HGTWAINIMPL_HPP__
|
|
|
|
|
#define __HGTWAINIMPL_HPP__
|
|
|
|
|
|
|
|
|
|
#include "HGTwain.h"
|
|
|
|
|
#include "../base/HGDll.h"
|
|
|
|
|
#include "twain.h"
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
|
|
struct HGTwainDSImpl
|
|
|
|
|
{
|
|
|
|
|
HGTwainDSImpl(class HGTwainDSMImpl *dsm)
|
|
|
|
|
{
|
|
|
|
|
dsmImpl = dsm;
|
|
|
|
|
memset(&ds, 0, sizeof(TW_IDENTITY));
|
|
|
|
|
open = HGFALSE;
|
|
|
|
|
showUI = HGFALSE;
|
|
|
|
|
parent = NULL;
|
|
|
|
|
func = NULL;
|
|
|
|
|
param = NULL;
|
|
|
|
|
enable = HGFALSE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class HGTwainDSMImpl* dsmImpl;
|
|
|
|
|
TW_IDENTITY ds;
|
|
|
|
|
HGBool open;
|
|
|
|
|
HGBool showUI;
|
|
|
|
|
HWND parent;
|
2022-05-23 02:35:42 +00:00
|
|
|
|
HGDSEventFunc func;
|
2022-05-03 10:25:52 +00:00
|
|
|
|
HGPointer param;
|
|
|
|
|
HGBool enable;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class HGTwainDSMImpl
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
HGTwainDSMImpl();
|
|
|
|
|
~HGTwainDSMImpl();
|
|
|
|
|
|
|
|
|
|
HGResult LoadDSM();
|
|
|
|
|
HGResult UnloadDSM();
|
|
|
|
|
HGResult OpenDSM();
|
|
|
|
|
HGResult CloseDSM();
|
|
|
|
|
|
|
|
|
|
HGResult GetDSList(HGTwainDSImpl** ds, HGUInt* size);
|
|
|
|
|
HGResult GetDefaultDS(HGTwainDSImpl** ds);
|
|
|
|
|
HGResult SelectDS(HGTwainDSImpl** ds);
|
|
|
|
|
HGResult GetDSName(HGTwainDSImpl* ds, HGChar* name, HGUInt maxLen);
|
|
|
|
|
HGResult OpenDS(HGTwainDSImpl* ds);
|
|
|
|
|
HGResult CloseDS(HGTwainDSImpl* ds);
|
|
|
|
|
HGResult SetCapability(HGTwainDSImpl* ds, HGUInt cap, HGInt value);
|
|
|
|
|
HGResult GetCapability(HGTwainDSImpl* ds, HGUInt cap, HGInt* value);
|
|
|
|
|
|
2022-05-23 02:35:42 +00:00
|
|
|
|
HGResult EnableDSUIOnly(HGTwainDSImpl* ds, HGBool showUI, HWND parent, HGDSEventFunc func, HGPointer param);
|
|
|
|
|
HGResult EnableDS(HGTwainDSImpl* ds, HGBool showUI, HWND parent, HGDSEventFunc func, HGPointer param);
|
2022-05-03 10:25:52 +00:00
|
|
|
|
HGResult DisableDS(HGTwainDSImpl* ds);
|
|
|
|
|
HGResult ImageNativeXfer(HGTwainDSImpl* ds, HGUInt type, HGUInt origin, HGImage* image);
|
|
|
|
|
HGResult EndXfer(HGTwainDSImpl* ds, HGUInt* count);
|
|
|
|
|
HGResult Reset(HGTwainDSImpl* ds);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
void GetIdentity();
|
|
|
|
|
static LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
static ULONG m_nRefCount;
|
|
|
|
|
HGDll m_hDll;
|
|
|
|
|
DSMENTRYPROC m_pDSMProc;
|
|
|
|
|
TW_IDENTITY m_AppId;
|
|
|
|
|
HWND m_hWnd;
|
|
|
|
|
HGBool m_DSMOpen;
|
|
|
|
|
std::vector<HGTwainDSImpl> m_DSList;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif /* __HGTWAINIMPL_HPP__ */
|