|  | /* | 
|  | * Copyright 2000 Corel Corporation | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | #ifndef _TWAIN32_H | 
|  | #define _TWAIN32_H | 
|  |  | 
|  | #ifndef __WINE_CONFIG_H | 
|  | # error You must include config.h first | 
|  | #endif | 
|  |  | 
|  | #ifdef SONAME_LIBSANE | 
|  | # include <sane/sane.h> | 
|  |  | 
|  | #define MAKE_FUNCPTR(f) typeof(f) * p##f; | 
|  | MAKE_FUNCPTR(sane_init) | 
|  | MAKE_FUNCPTR(sane_exit) | 
|  | MAKE_FUNCPTR(sane_get_devices) | 
|  | MAKE_FUNCPTR(sane_open) | 
|  | MAKE_FUNCPTR(sane_close) | 
|  | MAKE_FUNCPTR(sane_get_option_descriptor) | 
|  | MAKE_FUNCPTR(sane_control_option) | 
|  | MAKE_FUNCPTR(sane_get_parameters) | 
|  | MAKE_FUNCPTR(sane_start) | 
|  | MAKE_FUNCPTR(sane_read) | 
|  | MAKE_FUNCPTR(sane_cancel) | 
|  | MAKE_FUNCPTR(sane_set_io_mode) | 
|  | MAKE_FUNCPTR(sane_get_select_fd) | 
|  | MAKE_FUNCPTR(sane_strstatus) | 
|  | #undef MAKE_FUNCPTR | 
|  |  | 
|  | #endif | 
|  | #include <stdarg.h> | 
|  |  | 
|  | #include "windef.h" | 
|  | #include "winbase.h" | 
|  | #include "twain.h" | 
|  |  | 
|  | extern HINSTANCE SANE_instance; | 
|  |  | 
|  | /* internal information about an active data source */ | 
|  | struct tagActiveDS | 
|  | { | 
|  | struct tagActiveDS	*next;			/* next active DS */ | 
|  | TW_IDENTITY		identity;		/* identity */ | 
|  | TW_UINT16		currentState;		/* current state */ | 
|  | TW_EVENT		pendingEvent;		/* pending event to be sent to | 
|  | application */ | 
|  | TW_UINT16		twCC;			/* condition code */ | 
|  | HWND		hwndOwner;		/* window handle of the app */ | 
|  | HWND		progressWnd;		/* window handle of the scanning window */ | 
|  | #ifdef SONAME_LIBSANE | 
|  | SANE_Handle		deviceHandle;		/* device handle */ | 
|  | SANE_Parameters     sane_param;             /* parameters about the image | 
|  | transferred */ | 
|  | BOOL                sane_param_valid;  /* true if valid sane_param*/ | 
|  | INT                 deviceIndex;    /* index of the current device */ | 
|  | #endif | 
|  | /* Capabilities */ | 
|  | TW_UINT16		capXferMech;		/* ICAP_XFERMECH */ | 
|  | } activeDS; | 
|  |  | 
|  | /* Helper functions */ | 
|  | extern TW_UINT16 SANE_SaneCapability (pTW_CAPABILITY pCapability, TW_UINT16 action); | 
|  |  | 
|  | /* Implementation of operation triplets | 
|  | * From Application to Source (Control Information) */ | 
|  | TW_UINT16 SANE_CapabilityGet (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_CapabilityGetCurrent | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_CapabilityGetDefault | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_CapabilityQuerySupport | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_CapabilityReset | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_CapabilitySet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_CustomDSDataGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_CustomDSDataSet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_AutomaticCaptureDirectory | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_ChangeDirectory | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_FileSystemCopy | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_CreateDirectory | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_FileSystemDelete | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_FormatMedia | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_FileSystemGetClose | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_FileSystemGetFirstFile | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_FileSystemGetInfo | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_FileSystemGetNextFile | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_FileSystemRename | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_ProcessEvent | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_PassThrough | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_PendingXfersEndXfer | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_PendingXfersGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_PendingXfersReset | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_PendingXfersStopFeeder | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_SetupFileXferGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_SetupFileXferGetDefault | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_SetupFileXferReset | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_SetupFileXferSet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_SetupFileXfer2Get | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_SetupFileXfer2GetDefault | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_SetupFileXfer2Reset | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_SetupFileXfer2Set | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_SetupMemXferGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_GetDSStatus | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_DisableDSUserInterface | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_EnableDSUserInterface | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_EnableDSUIOnly | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_XferGroupGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_XferGroupSet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  |  | 
|  | /* Implementation of operation triplets | 
|  | * From Application to Source (Image Information) */ | 
|  | TW_UINT16 SANE_CIEColorGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_ExtImageInfoGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_GrayResponseReset | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_GrayResponseSet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_ImageFileXferGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_ImageInfoGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_ImageLayoutGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_ImageLayoutGetDefault | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_ImageLayoutReset | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_ImageLayoutSet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_ImageMemXferGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_ImageNativeXferGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_JPEGCompressionGet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_JPEGCompressionGetDefault | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_JPEGCompressionReset | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_JPEGCompressionSet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_Palette8Get | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_Palette8GetDefault | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_Palette8Reset | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_Palette8Set | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_RGBResponseReset | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  | TW_UINT16 SANE_RGBResponseSet | 
|  | (pTW_IDENTITY pOrigin, TW_MEMREF pData); | 
|  |  | 
|  | /* UI function */ | 
|  | BOOL DoScannerUI(void); | 
|  | HWND ScanningDialogBox(HWND dialog, LONG progress); | 
|  |  | 
|  | #endif |