2006-05-08 20:05:42 +02:00
|
|
|
/*
|
|
|
|
* 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
|
2006-05-18 14:49:52 +02:00
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
2006-05-08 20:05:42 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _TWAIN32_H
|
|
|
|
#define _TWAIN32_H
|
|
|
|
|
|
|
|
#ifndef __WINE_CONFIG_H
|
|
|
|
# error You must include config.h first
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_SANE
|
|
|
|
# include <sane/sane.h>
|
2007-03-14 19:10:03 +01:00
|
|
|
|
|
|
|
#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
|
|
|
|
|
2006-05-08 20:05:42 +02:00
|
|
|
#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 HAVE_SANE
|
|
|
|
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
|
|
|
|
/* Capabiblities */
|
|
|
|
TW_UINT16 capXferMech; /* ICAP_XFERMECH */
|
|
|
|
} activeDS;
|
|
|
|
|
|
|
|
/* Helper functions */
|
|
|
|
extern TW_UINT16 SANE_SaneCapability (pTW_CAPABILITY pCapability, TW_UINT16 action);
|
|
|
|
|
|
|
|
/* */
|
|
|
|
extern TW_UINT16 SANE_ControlGroupHandler (
|
|
|
|
pTW_IDENTITY pOrigin, TW_UINT16 DAT, TW_UINT16 MSG, TW_MEMREF pData);
|
|
|
|
extern TW_UINT16 SANE_ImageGroupHandler (
|
|
|
|
pTW_IDENTITY pOrigin, TW_UINT16 DAT, TW_UINT16 MSG, TW_MEMREF pData);
|
|
|
|
extern TW_UINT16 SANE_SourceManagerHandler (
|
|
|
|
pTW_IDENTITY pOrigin, TW_UINT16 DAT, TW_UINT16 MSG, TW_MEMREF pData);
|
|
|
|
|
|
|
|
/* 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);
|
|
|
|
|
|
|
|
/* Implementation of TWAIN capabilities */
|
|
|
|
TW_UINT16 SANE_ICAPXferMech (pTW_CAPABILITY pCapability, TW_UINT16 action);
|
|
|
|
|
|
|
|
/* UI function */
|
|
|
|
BOOL DoScannerUI(void);
|
|
|
|
HWND ScanningDialogBox(HWND dialog, LONG progress);
|
|
|
|
|
|
|
|
#endif
|