15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


C++ класс для работы со сканером.

Автор: Rajiv Ramachandran

  • Скачать демонстрашку - 11 Kb
  • Скачать исходник - 56 Kb

    Компилятор: Visual C++

    ВНИМАНИЕ: Для запуска демонстрационного примера, необходимо, чтобы в системе была установлена TWAIN_32.DLL.

    Ниже приводится описание основных методов класса CTwain.

     

    CTwain(HWND hWnd= NULL)

  • Конструктор

    hwnd не обязателен. Если всё-таки будет использовано не нулевое значение, то интерфейс Twain будет инициализирован с этим хэндлом.

  • ~CTwain()

  • Деструктор
  • InitTwain(HWND hWnd)

  • Инициализация TWAIN

    Этот метод вызывается конструктором, если в него был передан хэндл. Иначе он будет вызван позже. Основная его задача, это загрузить Twain Dll и инициализировать её.

  • ReleaseTwain()

  • Завершение работы с интерфейсом Twain

     

  • GetIdentity()

  • Идентификация приложения

    Этот метод вызывается функцией InitTwain, чтобы заполнить структуру TW_IDENTITY. Эта структура описана в twain.h, а пример её заполнения можно посмотреть в CTwain::GetIdentity.

  • IsValidDriver()

  • Возвращает true, если драйвер был загружен успешно
  • SourceSelected()

  • Возвращает true в случае успешного выбора источника
  • SourceEnabled()

  • Возвращает true, если источник доступен

    В понятии TWAIN это значит, что в данный момент идёт сканирование.

  • SelectDefaultSource()

  • Выбирает дефолтовый источник для данной машины
  • SelectSource()

  • Показывает диалоговое окошко выбора источника
  • Acquire(int numImages=1)

  • Запускает процесс получения картинки

    Обычно при этом открывается диалоговое окошко с параметрами сканирования. Обычно процесс сканирования запускается из этого окна. numImages это количество изображений, которые необходимо получить приложению. Так же в качестве этого параметра можно задать TWCPP_ANYCOUNT для любого количества.

  • ProcessMessage(MSG msg)

  • Обрабатывает сообщения от Twain

    Этот метод необходимо вызывать из цикла сообщений окна, который изначально передаётся в класс.

    ВНИМАНИЕ: В эту процедуру можно передавать все сообщения, однако, пока источник доступен, она будет игнорировать все не твэйновские сообщения.

  • ShouldTransfer(TW_IMAGEINFO& info)

    Эта функция вызывается каждый раз, когда изображение отсканировано. Функция возвращает одно из следующих значений:

    TWCPP_CANCELTHIS
    Передача этой картинки прекращена
    TWCPP_CANCELALL
    Все передачи прекращены
    TWCPP_DOTRANSFER
    Можно продолжать передачу следующей картинки

    По умолчанию возвращается TWCPP_DOTRANSFER.

    CopyImage(HANDLE hBitmap,TW_IMAGEINFO& info)

    Это чисто виртуальный метод, который вызывается каждый раз, когда картинка передана из TWAIN. How the image is to be used is upto the application.