74 lines
1.9 KiB
C++
74 lines
1.9 KiB
C++
|
#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;
|
|||
|
HGTwain_DSEventCallback func;
|
|||
|
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);
|
|||
|
|
|||
|
HGResult EnableDSUIOnly(HGTwainDSImpl* ds, HGBool showUI, HWND parent, HGTwain_DSEventCallback func, HGPointer param);
|
|||
|
HGResult EnableDS(HGTwainDSImpl* ds, HGBool showUI, HWND parent, HGTwain_DSEventCallback func, HGPointer param);
|
|||
|
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__ */
|