Compare commits
2 Commits
ee65c9fd17
...
f57b75e92e
Author | SHA1 | Date |
---|---|---|
luoliangyi | f57b75e92e | |
luoliangyi | 7813ceed1f |
|
@ -0,0 +1,125 @@
|
|||
#include "device_user.h"
|
||||
#include "dialog_device_select.h"
|
||||
#include "dialog_device_scan.h"
|
||||
#include <QMessageBox>
|
||||
|
||||
#if 0
|
||||
|
||||
DeviceUserMgr::DeviceUserMgr(QWidget *wnd)
|
||||
{
|
||||
m_wnd = wnd;
|
||||
m_twainDSM = nullptr;
|
||||
HGTwain_CreateDSM((HWND)m_wnd->winId(), &m_twainDSM);
|
||||
}
|
||||
|
||||
DeviceUserMgr::~DeviceUserMgr()
|
||||
{
|
||||
HGTwain_DestroyDSM(m_twainDSM);
|
||||
m_twainDSM = nullptr;
|
||||
}
|
||||
|
||||
class DeviceUser* DeviceUserMgr::OpenDeviceUser()
|
||||
{
|
||||
HGTwainDS ds = nullptr;
|
||||
HGTwain_OpenSelectedDS(m_twainDSM, &ds);
|
||||
if (nullptr == ds)
|
||||
return nullptr;
|
||||
return new DeviceUser(m_wnd, ds);
|
||||
}
|
||||
|
||||
DeviceUser::DeviceUser(QWidget *wnd, HGTwainDS ds)
|
||||
{
|
||||
m_wnd = wnd;
|
||||
m_twainDS = ds;
|
||||
}
|
||||
|
||||
DeviceUser::~DeviceUser()
|
||||
{
|
||||
HGTwain_CloseDS(m_twainDS);
|
||||
m_twainDS = nullptr;
|
||||
}
|
||||
|
||||
HGResult DeviceUser::ShowSettingDlg()
|
||||
{
|
||||
return HGTwain_EnableDSUIOnly(m_twainDS, (HWND)m_wnd->winId(), DSCloseReqFunc, this);
|
||||
}
|
||||
|
||||
HGResult DeviceUser::StartScan()
|
||||
{
|
||||
return HGTwain_EnableDS(m_twainDS, HGFALSE, nullptr, DSCloseReqFunc, this, DSImageFunc, this);
|
||||
}
|
||||
|
||||
void HGAPI DeviceUser::DSCloseReqFunc(HGTwainDS ds, HGPointer param)
|
||||
{
|
||||
DeviceUser* p = (DeviceUser*)param;
|
||||
HGTwain_DisableDS(p->m_twainDS);
|
||||
}
|
||||
|
||||
void HGAPI DeviceUser::DSImageFunc(HGTwainDS ds, HGImage image, HGPointer param)
|
||||
{
|
||||
DeviceUser* p = (DeviceUser*)param;
|
||||
HGImage image2 = nullptr;
|
||||
HGBase_CloneImage(image, 0, 0, &image2);
|
||||
if (nullptr != image2)
|
||||
{
|
||||
emit p->newImage(image2);
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
DeviceUserMgr::DeviceUserMgr(QWidget *wnd)
|
||||
{
|
||||
m_wnd = wnd;
|
||||
m_saneMgr = nullptr;
|
||||
HGSane_CreateManager("sane.dll", &m_saneMgr);
|
||||
}
|
||||
|
||||
DeviceUserMgr::~DeviceUserMgr()
|
||||
{
|
||||
HGSane_DestroyManager(m_saneMgr);
|
||||
m_saneMgr = nullptr;
|
||||
}
|
||||
|
||||
class DeviceUser* DeviceUserMgr::OpenDeviceUser()
|
||||
{
|
||||
Dialog_Device_Select dlg(m_saneMgr, m_wnd);
|
||||
if (!dlg.exec())
|
||||
return nullptr;
|
||||
|
||||
return new DeviceUser(m_wnd, dlg.getSaneDevice());
|
||||
}
|
||||
|
||||
DeviceUser::DeviceUser(QWidget *wnd, HGSaneDevice dev)
|
||||
{
|
||||
m_wnd = wnd;
|
||||
m_saneDev = dev;
|
||||
}
|
||||
|
||||
DeviceUser::~DeviceUser()
|
||||
{
|
||||
HGSane_CloseDevice(m_saneDev);
|
||||
m_saneDev = nullptr;
|
||||
}
|
||||
|
||||
HGResult DeviceUser::ShowSettingDlg()
|
||||
{
|
||||
// 弹出配置对话框
|
||||
return HGBASE_ERR_OK;
|
||||
}
|
||||
|
||||
HGResult DeviceUser::StartScan()
|
||||
{
|
||||
Dialog_Device_Scan dlg(m_saneDev, m_wnd);
|
||||
connect(&dlg, SIGNAL(newImage(void *)), this, SLOT(on_newImage(void *)), Qt::QueuedConnection);
|
||||
dlg.exec();
|
||||
disconnect(&dlg, SIGNAL(newImage(void *)), this, SLOT(on_newImage(void *)));
|
||||
return HGBASE_ERR_OK;
|
||||
}
|
||||
|
||||
void DeviceUser::on_newImage(void *image)
|
||||
{
|
||||
emit newImage(image);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -0,0 +1,99 @@
|
|||
#ifndef __DEVICE_USER_H__
|
||||
#define __DEVICE_USER_H__
|
||||
|
||||
#include "base/HGDef.h"
|
||||
#include <QDialog>
|
||||
|
||||
#if 0
|
||||
#include "twain_user/HGTwain.h"
|
||||
|
||||
class DeviceUserMgr : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DeviceUserMgr(QWidget *wnd);
|
||||
~DeviceUserMgr();
|
||||
|
||||
// 弹出设备选择对话框,sane选择设备,twain选择twain源
|
||||
class DeviceUser* OpenDeviceUser();
|
||||
|
||||
private:
|
||||
QWidget *m_wnd;
|
||||
HGTwainDSM m_twainDSM;
|
||||
};
|
||||
|
||||
class DeviceUser : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
friend class DeviceUserMgr;
|
||||
DeviceUser(QWidget *wnd, HGTwainDS ds);
|
||||
public:
|
||||
~DeviceUser();
|
||||
|
||||
// 弹出配置对话框
|
||||
HGResult ShowSettingDlg();
|
||||
// 弹出扫描对话框
|
||||
HGResult StartScan();
|
||||
|
||||
private:
|
||||
static void HGAPI DSCloseReqFunc(HGTwainDS ds, HGPointer param);
|
||||
static void HGAPI DSImageFunc(HGTwainDS ds, HGImage image, HGPointer param);
|
||||
|
||||
signals:
|
||||
void newImage(void *image);
|
||||
|
||||
private:
|
||||
QWidget *m_wnd;
|
||||
HGTwainDS m_twainDS;
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
#include "sane_user/HGSane.h"
|
||||
|
||||
class DeviceUserMgr : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DeviceUserMgr(QWidget *wnd);
|
||||
~DeviceUserMgr();
|
||||
|
||||
// 弹出设备选择对话框,sane选择设备,twain选择twain源
|
||||
class DeviceUser* OpenDeviceUser();
|
||||
|
||||
private:
|
||||
QWidget *m_wnd;
|
||||
HGSaneManager m_saneMgr;
|
||||
};
|
||||
|
||||
class DeviceUser : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
friend class DeviceUserMgr;
|
||||
DeviceUser(QWidget *wnd, HGSaneDevice dev);
|
||||
public:
|
||||
~DeviceUser();
|
||||
|
||||
// 弹出配置对话框
|
||||
HGResult ShowSettingDlg();
|
||||
// 弹出扫描对话框
|
||||
HGResult StartScan();
|
||||
|
||||
signals:
|
||||
void newImage(void *image);
|
||||
|
||||
private slots:
|
||||
void on_newImage(void *image);
|
||||
|
||||
private:
|
||||
QWidget *m_wnd;
|
||||
HGSaneDevice m_saneDev;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* __DEVICE_USER_H__ */
|
|
@ -0,0 +1,90 @@
|
|||
#include "dialog_device_scan.h"
|
||||
#include "ui_dialog_device_scan.h"
|
||||
|
||||
Dialog_Device_Scan::Dialog_Device_Scan(HGSaneDevice dev, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::Dialog_Device_Scan)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_saneDev = dev;
|
||||
|
||||
connect(this, SIGNAL(eventFunc(unsigned int, QString)), this, SLOT(on_eventFunc(unsigned int, QString)), Qt::QueuedConnection);
|
||||
|
||||
ui->pushButton_Continue->setEnabled(false);
|
||||
ui->pushButton_Cancel->setEnabled(false);
|
||||
ui->pushButton_Complete->setEnabled(false);
|
||||
|
||||
on_pushButton_Continue_clicked();
|
||||
}
|
||||
|
||||
Dialog_Device_Scan::~Dialog_Device_Scan()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void HGAPI Dialog_Device_Scan::DeviceEventFunc(HGSaneDevice dev, HGUInt error, const HGChar *errInfo, HGPointer param)
|
||||
{
|
||||
Dialog_Device_Scan *p = (Dialog_Device_Scan*)param;
|
||||
emit p->eventFunc(error, tr(errInfo));
|
||||
}
|
||||
|
||||
void HGAPI Dialog_Device_Scan::DeviceImageFunc(HGSaneDevice dev, HGImage image, HGPointer param)
|
||||
{
|
||||
Dialog_Device_Scan *p = (Dialog_Device_Scan*)param;
|
||||
HGImage image2 = nullptr;
|
||||
HGBase_CloneImage(image, 0, 0, &image2);
|
||||
if (nullptr != image2)
|
||||
{
|
||||
emit p->newImage(image2);
|
||||
}
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_eventFunc(HGUInt error, QString errInfo)
|
||||
{
|
||||
if (HGBASE_ERR_OK == error)
|
||||
ui->label->setText("扫描完成");
|
||||
else
|
||||
ui->label->setText(errInfo);
|
||||
|
||||
HGSane_StopDevice(m_saneDev);
|
||||
|
||||
ui->pushButton_Continue->setEnabled(true);
|
||||
ui->pushButton_Cancel->setEnabled(false);
|
||||
ui->pushButton_Complete->setEnabled(true);
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_pushButton_Cancel_clicked()
|
||||
{
|
||||
HGSane_StopDevice(m_saneDev);
|
||||
|
||||
ui->pushButton_Continue->setEnabled(true);
|
||||
ui->pushButton_Cancel->setEnabled(false);
|
||||
ui->pushButton_Complete->setEnabled(true);
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_pushButton_Complete_clicked()
|
||||
{
|
||||
accept();
|
||||
}
|
||||
|
||||
void Dialog_Device_Scan::on_pushButton_Continue_clicked()
|
||||
{
|
||||
HGChar errInfo[256];
|
||||
HGResult ret = HGSane_StartDevice(m_saneDev, DeviceEventFunc, this, DeviceImageFunc, this, errInfo, 256);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
ui->pushButton_Continue->setEnabled(true);
|
||||
ui->pushButton_Cancel->setEnabled(false);
|
||||
ui->pushButton_Complete->setEnabled(true);
|
||||
|
||||
ui->label->setText(tr(errInfo));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->pushButton_Continue->setEnabled(false);
|
||||
ui->pushButton_Cancel->setEnabled(true);
|
||||
ui->pushButton_Complete->setEnabled(false);
|
||||
|
||||
ui->label->setText("扫描中...");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
#ifndef DIALOG_DEVICE_SCAN_H
|
||||
#define DIALOG_DEVICE_SCAN_H
|
||||
|
||||
#include "base/HGDef.h"
|
||||
#include "sane_user/HGSane.h"
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class Dialog_Device_Scan;
|
||||
}
|
||||
|
||||
class Dialog_Device_Scan : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Dialog_Device_Scan(HGSaneDevice dev, QWidget *parent = nullptr);
|
||||
~Dialog_Device_Scan();
|
||||
|
||||
signals:
|
||||
void eventFunc(HGUInt error, QString errInfo);
|
||||
void newImage(void *image);
|
||||
|
||||
private slots:
|
||||
void on_eventFunc(HGUInt error, QString errInfo);
|
||||
|
||||
void on_pushButton_Cancel_clicked();
|
||||
|
||||
void on_pushButton_Complete_clicked();
|
||||
|
||||
void on_pushButton_Continue_clicked();
|
||||
|
||||
private:
|
||||
static void HGAPI DeviceEventFunc(HGSaneDevice dev, HGUInt error, const HGChar *errInfo, HGPointer param);
|
||||
static void HGAPI DeviceImageFunc(HGSaneDevice dev, HGImage image, HGPointer param);
|
||||
|
||||
private:
|
||||
Ui::Dialog_Device_Scan *ui;
|
||||
HGSaneDevice m_saneDev;
|
||||
};
|
||||
|
||||
#endif // DIALOG_DEVICE_SCAN_H
|
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Dialog_Device_Scan</class>
|
||||
<widget class="QDialog" name="Dialog_Device_Scan">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>402</width>
|
||||
<height>303</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>120</y>
|
||||
<width>361</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton_Cancel">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>250</y>
|
||||
<width>91</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>取消扫描</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton_Continue">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>110</x>
|
||||
<y>250</y>
|
||||
<width>81</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>继续扫描</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton_Complete">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>300</x>
|
||||
<y>250</y>
|
||||
<width>81</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>完成扫描</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -0,0 +1,51 @@
|
|||
#include "dialog_device_select.h"
|
||||
#include "ui_dialog_device_select.h"
|
||||
#include <QMessageBox>
|
||||
|
||||
Dialog_Device_Select::Dialog_Device_Select(HGSaneManager saneMgr, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::Dialog_Device_Select)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_saneMgr = saneMgr;
|
||||
m_saneDev = nullptr;
|
||||
|
||||
HGUInt count = 0;
|
||||
HGSane_GetDeviceCount(m_saneMgr, &count);
|
||||
for (HGUInt i = 0; i < count; ++i)
|
||||
{
|
||||
HGChar name[256];
|
||||
HGSane_GetDeviceName(m_saneMgr, i, name, 256);
|
||||
ui->listWidget->addItem(name);
|
||||
}
|
||||
}
|
||||
|
||||
Dialog_Device_Select::~Dialog_Device_Select()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
HGSaneDevice Dialog_Device_Select::getSaneDevice()
|
||||
{
|
||||
return m_saneDev;
|
||||
}
|
||||
|
||||
void Dialog_Device_Select::on_buttonBox_accepted()
|
||||
{
|
||||
int index = ui->listWidget->currentRow();
|
||||
if (index >= 0)
|
||||
{
|
||||
HGSaneDevice dev = nullptr;
|
||||
HGChar errInfo[256];
|
||||
HGSane_OpenDevice(m_saneMgr, index, &dev, errInfo, 256);
|
||||
if (nullptr == dev)
|
||||
{
|
||||
QMessageBox msg(QMessageBox::Information, tr("tips"), tr(errInfo), QMessageBox::Ok, this);
|
||||
msg.exec();
|
||||
return;
|
||||
}
|
||||
|
||||
m_saneDev = dev;
|
||||
accept();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
#ifndef DIALOG_DEVICE_SELECT_H
|
||||
#define DIALOG_DEVICE_SELECT_H
|
||||
|
||||
#include "base/HGDef.h"
|
||||
#include "sane_user/HGSane.h"
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class Dialog_Device_Select;
|
||||
}
|
||||
|
||||
class Dialog_Device_Select : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Dialog_Device_Select(HGSaneManager saneMgr, QWidget *parent = nullptr);
|
||||
~Dialog_Device_Select();
|
||||
|
||||
HGSaneDevice getSaneDevice();
|
||||
|
||||
private slots:
|
||||
void on_buttonBox_accepted();
|
||||
|
||||
private:
|
||||
Ui::Dialog_Device_Select *ui;
|
||||
HGSaneManager m_saneMgr;
|
||||
HGSaneDevice m_saneDev;
|
||||
};
|
||||
|
||||
#endif // DIALOG_DEVICE_SELECT_H
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Dialog_Device_Select</class>
|
||||
<widget class="QDialog" name="Dialog_Device_Select">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QListWidget" name="listWidget"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>Dialog_Device_Select</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>Dialog_Device_Select</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
|
@ -319,8 +319,10 @@
|
|||
<AdditionalDependencies>../Release/HGBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)HGSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)HGSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)HGSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='HWRelease|Win32'">
|
||||
|
@ -348,8 +350,10 @@
|
|||
<AdditionalDependencies>../HWRelease/HWBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)HWSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)HWSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)HWSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZGRelease|Win32'">
|
||||
|
@ -377,8 +381,10 @@
|
|||
<AdditionalDependencies>../ZGRelease/ZGBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)ZGSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)ZGSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)ZGSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZJRelease|Win32'">
|
||||
|
@ -406,8 +412,10 @@
|
|||
<AdditionalDependencies>../ZJRelease/ZJBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)ZJSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)ZJSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)ZJSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='LSCRelease|Win32'">
|
||||
|
@ -435,8 +443,10 @@
|
|||
<AdditionalDependencies>../LSCRelease/LSCBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)LSCSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)LSCSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)LSCSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CTSRelease|Win32'">
|
||||
|
@ -464,8 +474,10 @@
|
|||
<AdditionalDependencies>../CTSRelease/CTSBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)CTSSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)CTSSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)CTSSaneUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
|
@ -513,8 +525,10 @@
|
|||
<AdditionalDependencies>../x64/Release/HGBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)HGSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)HGSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)HGSaneUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='HWRelease|x64'">
|
||||
|
@ -542,8 +556,10 @@
|
|||
<AdditionalDependencies>../x64/HWRelease/HWBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)HWSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)HWSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)HWSaneUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZGRelease|x64'">
|
||||
|
@ -571,8 +587,10 @@
|
|||
<AdditionalDependencies>../x64/ZGRelease/ZGBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)ZGSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)ZGSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)ZGSaneUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZJRelease|x64'">
|
||||
|
@ -600,8 +618,10 @@
|
|||
<AdditionalDependencies>../x64/ZJRelease/ZJBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)ZJSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)ZJSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)ZJSaneUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='LSCRelease|x64'">
|
||||
|
@ -629,8 +649,10 @@
|
|||
<AdditionalDependencies>../x64/LSCRelease/LSCBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)LSCSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)LSCSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)LSCSaneUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CTSRelease|x64'">
|
||||
|
@ -658,8 +680,10 @@
|
|||
<AdditionalDependencies>../x64/CTSRelease/CTSBase.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)CTSSaneUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)CTSSaneUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\sane_user\*.h $(SolutionDir)..\..\..\sdk\include\sane_user\
|
||||
copy $(OutDir)CTSSaneUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
|
|
|
@ -196,7 +196,7 @@ void CHGTestDlg::OnBnClickedButton1()
|
|||
HGSane_OpenDevice(m_saneMgr, 0, &m_saneDev, errInfo, 256);
|
||||
if (NULL != m_saneDev)
|
||||
{
|
||||
HGResult ret = HGSane_StartDevice(m_saneDev, DeviceEventCallback, this, DeviceImageCallback, this, errInfo, 256);
|
||||
HGResult ret = HGSane_StartDevice(m_saneDev, DeviceEventFunc, this, DeviceImageFunc, this, errInfo, 256);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
HGSane_CloseDevice(m_saneDev);
|
||||
|
@ -212,7 +212,7 @@ void CHGTestDlg::OnBnClickedButton1()
|
|||
HGTwain_OpenSelectedDS(m_dsm, &m_ds);
|
||||
if (NULL != m_ds)
|
||||
{
|
||||
HGResult ret = HGTwain_EnableDSUIOnly(m_ds, m_hWnd, DSEventCallback, this);
|
||||
HGResult ret = HGTwain_EnableDSUIOnly(m_ds, m_hWnd, DSCloseReqFunc, this);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
HGTwain_CloseDS(m_ds);
|
||||
|
@ -235,12 +235,12 @@ void CHGTestDlg::OnBnClickedButton2()
|
|||
}
|
||||
|
||||
#ifdef USE_SANE
|
||||
void HGAPI CHGTestDlg::DeviceEventCallback(HGSaneDevice dev, HGUInt error, const HGChar* errInfo, HGPointer param)
|
||||
void HGAPI CHGTestDlg::DeviceEventFunc(HGSaneDevice dev, HGUInt error, const HGChar* errInfo, HGPointer param)
|
||||
{
|
||||
CHGTestDlg* p = (CHGTestDlg*)param;
|
||||
::PostMessage(p->m_hWnd, 2000, 0, 0);
|
||||
}
|
||||
void HGAPI CHGTestDlg::DeviceImageCallback(HGSaneDevice dev, HGImage image, HGPointer param)
|
||||
void HGAPI CHGTestDlg::DeviceImageFunc(HGSaneDevice dev, HGImage image, HGPointer param)
|
||||
{
|
||||
CHGTestDlg* p = (CHGTestDlg*)param;
|
||||
HGImage image2 = NULL;
|
||||
|
@ -248,24 +248,24 @@ void HGAPI CHGTestDlg::DeviceImageCallback(HGSaneDevice dev, HGImage image, HGPo
|
|||
::PostMessage(p->m_hWnd, 2001, (WPARAM)image2, 0);
|
||||
}
|
||||
#else
|
||||
void CHGTestDlg::DSEventCallback(HGTwainDS ds, HGUInt error, const HGChar* errInfo, HGPointer param)
|
||||
void CHGTestDlg::DSCloseReqFunc(HGTwainDS ds, HGPointer param)
|
||||
{
|
||||
CHGTestDlg* p = (CHGTestDlg*)param;
|
||||
HGTwain_DisableDS(p->m_ds);
|
||||
HGResult ret = HGTwain_EnableDS(p->m_ds, HGFALSE, NULL, DSEvent2Callback, p, DSImageCallback, p);
|
||||
HGResult ret = HGTwain_EnableDS(p->m_ds, HGFALSE, NULL, DSCloseReqFunc2, p, DSImageFunc, p);
|
||||
if (HGBASE_ERR_OK != ret)
|
||||
{
|
||||
HGTwain_CloseDS(p->m_ds);
|
||||
p->m_ds = NULL;
|
||||
}
|
||||
}
|
||||
void CHGTestDlg::DSEvent2Callback(HGTwainDS ds, HGUInt error, const HGChar* errInfo, HGPointer param)
|
||||
void CHGTestDlg::DSCloseReqFunc2(HGTwainDS ds, HGPointer param)
|
||||
{
|
||||
CHGTestDlg* p = (CHGTestDlg*)param;
|
||||
HGTwain_CloseDS(p->m_ds);
|
||||
p->m_ds = NULL;
|
||||
}
|
||||
void HGAPI CHGTestDlg::DSImageCallback(HGTwainDS ds, HGImage image, HGPointer param)
|
||||
void HGAPI CHGTestDlg::DSImageFunc(HGTwainDS ds, HGImage image, HGPointer param)
|
||||
{
|
||||
CHGTestDlg* p = (CHGTestDlg*)param;
|
||||
CStringA strName;
|
||||
|
|
|
@ -25,14 +25,14 @@ protected:
|
|||
#ifdef USE_SANE
|
||||
HGSaneManager m_saneMgr;
|
||||
HGSaneDevice m_saneDev;
|
||||
static void HGAPI DeviceEventCallback(HGSaneDevice dev, HGUInt error, const HGChar* errInfo, HGPointer param);
|
||||
static void HGAPI DeviceImageCallback(HGSaneDevice dev, HGImage image, HGPointer param);
|
||||
static void HGAPI DeviceEventFunc(HGSaneDevice dev, HGUInt error, const HGChar* errInfo, HGPointer param);
|
||||
static void HGAPI DeviceImageFunc(HGSaneDevice dev, HGImage image, HGPointer param);
|
||||
#else
|
||||
HGTwainDSM m_dsm;
|
||||
HGTwainDS m_ds;
|
||||
static void HGAPI DSEventCallback(HGTwainDS ds, HGUInt error, const HGChar* errInfo, HGPointer param);
|
||||
static void HGAPI DSEvent2Callback(HGTwainDS ds, HGUInt error, const HGChar* errInfo, HGPointer param);
|
||||
static void HGAPI DSImageCallback(HGTwainDS ds, HGImage image, HGPointer param);
|
||||
static void HGAPI DSCloseReqFunc(HGTwainDS ds, HGPointer param);
|
||||
static void HGAPI DSCloseReqFunc2(HGTwainDS ds, HGPointer param);
|
||||
static void HGAPI DSImageFunc(HGTwainDS ds, HGImage image, HGPointer param);
|
||||
#endif
|
||||
|
||||
// 实现
|
||||
|
|
|
@ -320,8 +320,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)HGTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)HGTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)HGTwainUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='HWRelease|Win32'">
|
||||
|
@ -349,8 +351,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)HWTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)HWTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)HWTwainUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZGRelease|Win32'">
|
||||
|
@ -378,8 +382,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)ZGTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)ZGTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)ZGTwainUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZJRelease|Win32'">
|
||||
|
@ -407,8 +413,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)ZJTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)ZJTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)ZJTwainUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='LSCRelease|Win32'">
|
||||
|
@ -436,8 +444,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)LSCTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)LSCTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)LSCTwainUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CTSRelease|Win32'">
|
||||
|
@ -465,8 +475,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)CTSTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(OutDir)CTSTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x86\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)CTSTwainUser.dll $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
|
@ -514,8 +526,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)HGTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)HGTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)HGTwainUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='HWRelease|x64'">
|
||||
|
@ -543,8 +557,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)HWTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)HWTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)HWTwainUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZGRelease|x64'">
|
||||
|
@ -572,8 +588,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)ZGTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)ZGTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)ZGTwainUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZJRelease|x64'">
|
||||
|
@ -601,8 +619,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)ZJTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)ZJTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)ZJTwainUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='LSCRelease|x64'">
|
||||
|
@ -630,8 +650,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)LSCTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)LSCTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)LSCTwainUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CTSRelease|x64'">
|
||||
|
@ -659,8 +681,10 @@
|
|||
<AdditionalOptions>/LTCG %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
<Command>copy $(OutDir)CTSTwainUser.lib $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(OutDir)CTSTwainUser.pdb $(SolutionDir)..\..\..\sdk\lib\win\x64\Release\
|
||||
copy $(SolutionDir)..\..\modules\twain_user\*.h $(SolutionDir)..\..\..\sdk\include\twain_user\
|
||||
copy $(OutDir)CTSTwainUser.dll $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
|
|
|
@ -128,7 +128,7 @@ HGResult HGAPI HGTwain_CloseDS(HGTwainDS ds)
|
|||
return twainDSImpl->Close();
|
||||
}
|
||||
|
||||
HGResult HGAPI HGTwain_EnableDSUIOnly(HGTwainDS ds, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam)
|
||||
HGResult HGAPI HGTwain_EnableDSUIOnly(HGTwainDS ds, HWND parent, HGDSCloseReqFunc eventFunc, HGPointer eventParam)
|
||||
{
|
||||
if (NULL == ds)
|
||||
{
|
||||
|
@ -139,7 +139,7 @@ HGResult HGAPI HGTwain_EnableDSUIOnly(HGTwainDS ds, HWND parent, HGDSEventFunc e
|
|||
return twainDSImpl->EnableUIOnly(parent, eventFunc, eventParam);
|
||||
}
|
||||
|
||||
HGResult HGAPI HGTwain_EnableDS(HGTwainDS ds, HGBool showUI, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||
HGResult HGAPI HGTwain_EnableDS(HGTwainDS ds, HGBool showUI, HWND parent, HGDSCloseReqFunc eventFunc, HGPointer eventParam,
|
||||
HGDSImageFunc imageFunc, HGPointer imageParam)
|
||||
{
|
||||
if (NULL == ds)
|
||||
|
|
|
@ -11,7 +11,7 @@ HG_DECLARE_HANDLE(HGTwainDS);
|
|||
|
||||
/* ds回调
|
||||
*/
|
||||
typedef void (HGAPI *HGDSEventFunc)(HGTwainDS ds, HGUInt error, const HGChar* errInfo, HGPointer param);
|
||||
typedef void (HGAPI *HGDSCloseReqFunc)(HGTwainDS ds, HGPointer param);
|
||||
typedef void (HGAPI* HGDSImageFunc)(HGTwainDS ds, HGImage image, HGPointer param);
|
||||
|
||||
HGEXPORT HGResult HGAPI HGTwain_CreateDSM(HWND hwnd, HGTwainDSM *dsm);
|
||||
|
@ -30,9 +30,9 @@ HGEXPORT HGResult HGAPI HGTwain_OpenSelectedDS(HGTwainDSM dsm, HGTwainDS* ds);
|
|||
|
||||
HGEXPORT HGResult HGAPI HGTwain_CloseDS(HGTwainDS ds);
|
||||
|
||||
HGEXPORT HGResult HGAPI HGTwain_EnableDSUIOnly(HGTwainDS ds, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam);
|
||||
HGEXPORT HGResult HGAPI HGTwain_EnableDSUIOnly(HGTwainDS ds, HWND parent, HGDSCloseReqFunc eventFunc, HGPointer eventParam);
|
||||
|
||||
HGEXPORT HGResult HGAPI HGTwain_EnableDS(HGTwainDS ds, HGBool showUI, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||
HGEXPORT HGResult HGAPI HGTwain_EnableDS(HGTwainDS ds, HGBool showUI, HWND parent, HGDSCloseReqFunc eventFunc, HGPointer eventParam,
|
||||
HGDSImageFunc imageFunc, HGPointer imageParam);
|
||||
|
||||
HGEXPORT HGResult HGAPI HGTwain_DisableDS(HGTwainDS ds);
|
||||
|
|
|
@ -294,10 +294,10 @@ LRESULT CALLBACK HGTwainDSMImpl::NewWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
|
||||
p->m_listDSImpl[i]->Reset();
|
||||
}
|
||||
else if (MSG_CLOSEDSREQ == twEvent.TWMessage/* || MSG_CLOSEDSOK == twEvent.TWMessage*/)
|
||||
else if (MSG_CLOSEDSREQ == twEvent.TWMessage)
|
||||
{
|
||||
if (NULL != p->m_listDSImpl[i]->m_eventFunc)
|
||||
p->m_listDSImpl[i]->m_eventFunc((HGTwainDS)p->m_listDSImpl[i], HGBASE_ERR_OK, NULL, p->m_listDSImpl[i]->m_eventParam);
|
||||
p->m_listDSImpl[i]->m_eventFunc((HGTwainDS)p->m_listDSImpl[i], p->m_listDSImpl[i]->m_eventParam);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -352,7 +352,7 @@ HGResult HGTwainDSImpl::Close()
|
|||
return HGBASE_ERR_OK;
|
||||
}
|
||||
|
||||
HGResult HGTwainDSImpl::EnableUIOnly(HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam)
|
||||
HGResult HGTwainDSImpl::EnableUIOnly(HWND parent, HGDSCloseReqFunc eventFunc, HGPointer eventParam)
|
||||
{
|
||||
if (m_enable)
|
||||
{
|
||||
|
@ -378,7 +378,7 @@ HGResult HGTwainDSImpl::EnableUIOnly(HWND parent, HGDSEventFunc eventFunc, HGPoi
|
|||
return HGBASE_ERR_OK;
|
||||
}
|
||||
|
||||
HGResult HGTwainDSImpl::Enable(HGBool showUI, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||
HGResult HGTwainDSImpl::Enable(HGBool showUI, HWND parent, HGDSCloseReqFunc eventFunc, HGPointer eventParam,
|
||||
HGDSImageFunc imageFunc, HGPointer imageParam)
|
||||
{
|
||||
if (m_enable)
|
||||
|
|
|
@ -46,8 +46,8 @@ public:
|
|||
public:
|
||||
HGResult Open(const TW_IDENTITY* iden);
|
||||
HGResult Close();
|
||||
HGResult EnableUIOnly(HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam);
|
||||
HGResult Enable(HGBool showUI, HWND parent, HGDSEventFunc eventFunc, HGPointer eventParam,
|
||||
HGResult EnableUIOnly(HWND parent, HGDSCloseReqFunc eventFunc, HGPointer eventParam);
|
||||
HGResult Enable(HGBool showUI, HWND parent, HGDSCloseReqFunc eventFunc, HGPointer eventParam,
|
||||
HGDSImageFunc imageFunc, HGPointer imageParam);
|
||||
HGResult Disable();
|
||||
|
||||
|
@ -64,7 +64,7 @@ private:
|
|||
HGBool m_open;
|
||||
HGBool m_showUI;
|
||||
HWND m_parent;
|
||||
HGDSEventFunc m_eventFunc;
|
||||
HGDSCloseReqFunc m_eventFunc;
|
||||
HGPointer m_eventParam;
|
||||
HGDSImageFunc m_imageFunc;
|
||||
HGPointer m_imageParam;
|
||||
|
|
Loading…
Reference in New Issue