code_app/modules/twain_user/HGTwainImpl.hpp

71 lines
1.7 KiB
C++
Raw Normal View History

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>
2022-07-21 08:20:51 +00:00
#include <map>
2022-05-03 10:25:52 +00:00
class HGTwainDSMImpl
{
2023-03-25 10:03:47 +00:00
friend class HGTwainDSImpl;
2022-05-03 10:25:52 +00:00
public:
HGTwainDSMImpl();
~HGTwainDSMImpl();
HGResult LoadDSM();
HGResult UnloadDSM();
2023-03-25 10:03:47 +00:00
HGResult OpenDSM(HWND hwnd);
2022-05-03 10:25:52 +00:00
HGResult CloseDSM();
2023-03-25 10:03:47 +00:00
HGResult GetDSList(class HGTwainDSImpl** dsImpl, HGUInt* size);
HGResult GetDefaultDS(class HGTwainDSImpl** dsImpl);
HGResult SelectDS(class HGTwainDSImpl** dsImpl);
2022-05-03 10:25:52 +00:00
private:
void GetIdentity();
2022-07-21 08:20:51 +00:00
static LRESULT CALLBACK NewWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
2022-05-03 10:25:52 +00:00
private:
HGDll m_hDll;
DSMENTRYPROC m_pDSMProc;
TW_IDENTITY m_AppId;
HWND m_hWnd;
2022-07-21 08:20:51 +00:00
static std::map<HWND, HGTwainDSMImpl*> m_mapWnd;
WNDPROC m_oldWndProc;
2022-05-03 10:25:52 +00:00
HGBool m_DSMOpen;
2023-03-25 10:03:47 +00:00
std::vector<class HGTwainDSImpl *> m_vpDSImpl;
};
class HGTwainDSImpl
{
friend class HGTwainDSMImpl;
public:
HGTwainDSImpl(HGTwainDSMImpl* dsmImpl, const TW_IDENTITY *iden);
~HGTwainDSImpl();
public:
HGResult GetName(HGChar* name, HGUInt maxLen);
HGResult Open();
HGResult Close();
HGResult SetCap(HGUInt cap, HGInt value);
HGResult GetCap(HGUInt cap, HGInt* value);
HGResult EnableUIOnly(HGBool showUI, HWND parent, HGDSEventFunc func, HGPointer param);
HGResult Enable(HGBool showUI, HWND parent, HGDSEventFunc func, HGPointer param);
HGResult Disable();
HGResult ImageNativeXfer(HGUInt type, HGUInt origin, HGImage* image);
HGResult EndXfer(HGUInt* count);
HGResult Reset();
private:
HGTwainDSMImpl* m_dsmImpl;
TW_IDENTITY m_iden;
HGBool m_open;
HGBool m_showUI;
HWND m_parent;
HGDSEventFunc m_eventFunc;
HGPointer m_eventParam;
HGBool m_enable;
2022-05-03 10:25:52 +00:00
};
#endif /* __HGTWAINIMPL_HPP__ */