1 #pragma once 2 3 #ifndef __TTWAIN_H__ 4 #define __TTWAIN_H__ 5 6 #ifdef _WIN32 7 #include <windows.h> 8 #else 9 #ifndef _UNIX_ 10 #define _UNIX_ 11 #endif 12 #endif 13 14 #include "twain.h" 15 16 #include "tnztypes.h" 17 18 #ifndef TRUE 19 #define TRUE 1 20 #endif 21 22 #ifndef FALSE 23 #define FALSE 0 24 #endif 25 26 #ifndef UCHAR 27 #define UCHAR unsigned char 28 #endif 29 30 #ifndef USHORT 31 #define USHORT unsigned short 32 #endif 33 34 #ifdef __cplusplus 35 extern "C" { 36 #endif 37 38 typedef enum TTWAIN_PIXTYPE { 39 TTWAIN_BW, /* 1-bit per pixel, B&W */ 40 TTWAIN_WB, /* 1-bit per pixel, W&B */ 41 TTWAIN_GRAY8, /* 1,4, or 8-bit grayscale */ 42 TTWAIN_RGB24, /* 24-bit RGB color */ 43 TTWAIN_PIXTYPE_HOWMANY, 44 TTWAIN_PIXUNKNOWN = -1, 45 } TTWAIN_PIXTYPE; 46 47 typedef enum TTWAIN_BITORDER { 48 TTWAIN_LSBFIRST = TWBO_LSBFIRST, 49 TTWAIN_MSBFIRST = TWBO_MSBFIRST 50 } TTWAIN_BITORDER; 51 52 typedef enum TWAINAVAILABLE { 53 AVAIABLE_DONTKNOW = -1, 54 AVAIABLE_YES, 55 AVAIABLE_NO 56 } TWAINAVAILABLE; 57 58 typedef enum TTWAIN_TRANSFER_MECH { 59 TTWAIN_TRANSFERMODE_NATIVE = TWSX_NATIVE, 60 TTWAIN_TRANSFERMODE_MEMORY = TWSX_MEMORY, 61 TTWAIN_TRANSFERMODE_FILE = TWSX_FILE 62 } TTWAIN_TRANSFER_MECH; 63 64 typedef enum TTWAIN_USAGE_MODE { 65 TTWAIN_MODE_LEASHED, 66 TTWAIN_MODE_UNLEASHED 67 } TTWAIN_USAGE_MODE; 68 69 /* application should return 0 to stop the scanning process, any other value 70 * elsewhere */ 71 typedef int TTWAIN_ONDONE_CB(UCHAR *buffer, TTWAIN_PIXTYPE pixelType, int lx, 72 int ly, int wrap, float xdpi, float ydpi, 73 void *usrData); 74 75 typedef void TTWAIN_ONERROR_CB(void *usrData, void *alwaysZero); 76 77 int TTWAIN_IsAvailable(void); 78 void TTWAIN_RegisterApp( 79 int majorNum, int minorNum, /* app. revision*/ 80 int nLanguage, /* (human) language (use TWLG_xxx from TWAIN.H) */ 81 int nCountry, /* country (use TWCY_xxx from TWAIN.H) */ 82 char *version, /* version info string */ 83 char *manufacter, /* name of manufacter */ 84 char *family, /* product family */ 85 char *product); /* specific product */ 86 int TTWAIN_SelectImageSource(void *hwnd); 87 /*---------------------------------------------------------------------------*/ 88 void *TTWAIN_AcquireNative(void *hwnd); 89 int TTWAIN_AcquireMemory(void *hwnd); 90 void TTWAIN_StopAcquire(void); 91 92 /* 93 nb. AcquireMemory returns: an upside-down bitmap :) 94 nb. AcquireNative returns: 95 under Windows an HBITMAP 96 under Mac a PICT 97 */ 98 /*---------------------------------------------------------------------------*/ 99 void TTWAIN_SetTwainUsage(TTWAIN_USAGE_MODE um); 100 101 void TTWAIN_FreeMemory(void *hMem); 102 int TTWAIN_CloseAll(void *hwnd); 103 int TTWAIN_OpenSourceManager(void *hwnd); 104 int TTWAIN_OpenDefaultSource(void); 105 106 int TTWAIN_GetHideUI(void); 107 void TTWAIN_SetHideUI(int flag); 108 109 void TTWAIN_SetOnDoneCallback(TTWAIN_ONDONE_CB *proc, void *arg); 110 void TTWAIN_SetOnErrorCallback(TTWAIN_ONERROR_CB *proc, void *arg); 111 112 #ifdef __cplusplus 113 } 114 #endif 115 116 #endif 117