• TWain 在 Qt4 中的调用方法


    1、开发环境

    Windows7_sp1_x64   Qt4.7.4 + mingw32  twain_32.dll (1.7.1.3)

    2、常用缩写

    DSM: Data Source Manager  数据源管理器 

    DS: Data Source  数据源

    DSM_Entry: DSM调用入口 

    TW_UINT16 FAR PASCAL DSM_Entry(
      pTW_IDENTITY pOrigin,    // Source of message
      pTW_IDENTITY pDest,      // Destination of message
      TW_UINT32 DG,          // Data group ID: DG_xxxx; DG_CONTROL,DG_IMAGE,DG_AUDIO
      TW_UINT16 DAT,         // Data argument type: DAT_xxxx; DAT_IDENTITY ...
      TW_UINT16 MSG,         // Message ID: MSG_xxxx; MSG_GET,MSG_SET ...
      TW_MEMREF pData         // Pointer to data
    );

    3、调用实现

    3.0 加载 TWAIN_32.DLL,并获取 DSM_Entry

    HINSTANCE m_hTwainDLL = LoadLibrary(L"TWAIN_32.DLL");
    
    DSMENTRYPROC m_pDSMProc = (DSMENTRYPROC)GetProcAddress(m_hTwainDLL, "DSM_Entry");

    3.1 打开 DSM

    MSG_PROCESSEVENT

    HWND hWnd = this->WinId();
    TW_IDENTITY m_AppId;
    BOOL m_bDSMOpen = DSM_Entry(&m_AppId,NULL,DG_CONTROL,DAT_PARENT,MSG_OPENDSM,(TW_MEMREF)&hWnd);

    3.2 选择 DS

    TW_IDENTITY m_Source;
    BOOL m_bDSSelect = DSM_Entry(&m_AppId,NULL,DG_CONTROL,DAT_IDENTITY,MSG_USERSELECT,&m_Source);
    BOOL m_bDSSelect = DSM_Entry(&m_AppId,NULL,DG_CONTROL,DAT_IDENTITY,MSG_GETDEFAULT,&m_Source);

     

    3.3 打开 DS

    BOOL m_bDSOpen = DSM_Entry(&m_AppId,NULL,DG_CONTROL,DAT_IDENTITY,MSG_OPENDS,(TW_MEMREF)&m_Source);

     

    3.4 设置参数

    MSG_SET

    3.5 显示扫描界面

    MSG_ENABLEDS 

    3.6 获取图像

    MSG_XFERREADY

    DAT_SETUPFILEXFER 

    DAT_IMAGEFILEXFER 

    3.7 关闭扫描界面

    MSG_CLOSEDSREQ 

    MSG_CLOSEDSOK 

    MSG_DISABLEDS

    3.8 关闭 DS

    MSG_CLOSEDS

    3.9 关闭 DSM

    MSG_CLOSEDSM

     

  • 相关阅读:
    XAMPP配置8080端口
    Composer安装使用
    .Net商品管理(注释,百度,提问,对比,总结)
    .Net数据库操作
    VS链接数据库
    .Net中字典的使用
    一套解决方案,多个项目
    转化一下解决问题的思路,弯道超车
    灵活的运用Model类
    Razor数组数据
  • 原文地址:https://www.cnblogs.com/FindSelf/p/5033407.html
Copyright © 2020-2023  润新知