2 * Copyright 2000 Corel Corporation
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 #ifndef __WINE_CONFIG_H
23 # error You must include config.h first
27 # include <sane/sane.h>
35 /* internal information about an active data source */
36 typedef struct tagActiveDS
38 struct tagActiveDS
*next
; /* next active DS */
39 TW_IDENTITY identity
; /* identity */
40 TW_UINT16 currentState
; /* current state */
41 TW_EVENT pendingEvent
; /* pending event to be sent to
43 TW_UINT16 twCC
; /* condition code */
44 HWND hwndOwner
; /* window handle of the app */
46 SANE_Handle deviceHandle
; /* device handle */
47 SANE_Parameters sane_param
; /* parameters about the image
49 BOOL sane_param_valid
; /* true if valid sane_param*/
52 TW_UINT16 capXferMech
; /* ICAP_XFERMECH */
55 TW_UINT16 DSM_initialized
; /* whether Source Manager is initialized */
56 TW_UINT16 DSM_currentState
; /* current state of Source Manager */
57 TW_UINT16 DSM_twCC
; /* current condition code of Source Manager */
58 TW_HANDLE DSM_parentHWND
; /* window handle of the Source's "parent" */
59 TW_UINT32 DSM_sourceId
; /* source id generator */
60 TW_UINT16 DSM_currentDevice
; /* keep track of device during enumeration */
62 const SANE_Device
**device_list
;/* a list of all sane devices */
64 activeDS
*activeSources
; /* list of active data sources */
66 /* Helper functions */
67 extern activeDS
*TWAIN_LookupSource (pTW_IDENTITY pDest
);
68 extern TW_UINT16
TWAIN_SaneCapability (activeDS
*pSource
,
69 pTW_CAPABILITY pCapability
, TW_UINT16 action
);
72 extern TW_UINT16
TWAIN_ControlGroupHandler (
73 pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
,
74 TW_UINT16 DAT
, TW_UINT16 MSG
, TW_MEMREF pData
);
75 extern TW_UINT16
TWAIN_ImageGroupHandler (
76 pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
,
77 TW_UINT16 DAT
, TW_UINT16 MSG
, TW_MEMREF pData
);
78 extern TW_UINT16
TWAIN_AudioGroupHandler (
79 pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
,
80 TW_UINT16 DAT
, TW_UINT16 MSG
, TW_MEMREF pData
);
81 extern TW_UINT16
TWAIN_SourceManagerHandler (
82 pTW_IDENTITY pOrigin
, TW_UINT16 DAT
, TW_UINT16 MSG
, TW_MEMREF pData
);
84 /* Implementation of operation triplets (From Application to Source Manager) */
85 extern TW_UINT16 TWAIN_CloseDS
86 (pTW_IDENTITY pOrigin
, TW_MEMREF pData
);
87 extern TW_UINT16 TWAIN_IdentityGetDefault
88 (pTW_IDENTITY pOrigin
, TW_MEMREF pData
);
89 extern TW_UINT16 TWAIN_IdentityGetFirst
90 (pTW_IDENTITY pOrigin
, TW_MEMREF pData
);
91 extern TW_UINT16 TWAIN_IdentityGetNext
92 (pTW_IDENTITY pOrigin
, TW_MEMREF pData
);
93 extern TW_UINT16 TWAIN_OpenDS
94 (pTW_IDENTITY pOrigin
, TW_MEMREF pData
);
95 extern TW_UINT16 TWAIN_UserSelect
96 (pTW_IDENTITY pOrigin
, TW_MEMREF pData
);
97 extern TW_UINT16 TWAIN_CloseDSM
98 (pTW_IDENTITY pOrigin
, TW_MEMREF pData
);
99 extern TW_UINT16 TWAIN_OpenDSM
100 (pTW_IDENTITY pOrigin
, TW_MEMREF pData
);
101 extern TW_UINT16 TWAIN_GetDSMStatus
102 (pTW_IDENTITY pOrigin
, TW_MEMREF pData
);
104 /* Implementation of operation triplets
105 * From Application to Source (Control Information) */
106 TW_UINT16 TWAIN_CapabilityGet
107 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
108 TW_UINT16 TWAIN_CapabilityGetCurrent
109 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
,TW_MEMREF pData
);
110 TW_UINT16 TWAIN_CapabilityGetDefault
111 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
112 TW_UINT16 TWAIN_CapabilityQuerySupport
113 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
114 TW_UINT16 TWAIN_CapabilityReset
115 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
116 TW_UINT16 TWAIN_CapabilitySet
117 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
118 TW_UINT16 TWAIN_CustomDSDataGet
119 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
120 TW_UINT16 TWAIN_CustomDSDataSet
121 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
122 TW_UINT16 TWAIN_AutomaticCaptureDirectory
123 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
124 TW_UINT16 TWAIN_ChangeDirectory
125 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
126 TW_UINT16 TWAIN_FileSystemCopy
127 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
128 TW_UINT16 TWAIN_CreateDirectory
129 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
130 TW_UINT16 TWAIN_FileSystemDelete
131 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
132 TW_UINT16 TWAIN_FormatMedia
133 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
134 TW_UINT16 TWAIN_FileSystemGetClose
135 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
136 TW_UINT16 TWAIN_FileSystemGetFirstFile
137 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
138 TW_UINT16 TWAIN_FileSystemGetInfo
139 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
140 TW_UINT16 TWAIN_FileSystemGetNextFile
141 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
142 TW_UINT16 TWAIN_FileSystemRename
143 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
144 TW_UINT16 TWAIN_ProcessEvent
145 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
146 TW_UINT16 TWAIN_PassThrough
147 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
148 TW_UINT16 TWAIN_PendingXfersEndXfer
149 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
150 TW_UINT16 TWAIN_PendingXfersGet
151 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
152 TW_UINT16 TWAIN_PendingXfersReset
153 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
154 TW_UINT16 TWAIN_PendingXfersStopFeeder
155 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
156 TW_UINT16 TWAIN_SetupFileXferGet
157 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
158 TW_UINT16 TWAIN_SetupFileXferGetDefault
159 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
160 TW_UINT16 TWAIN_SetupFileXferReset
161 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
162 TW_UINT16 TWAIN_SetupFileXferSet
163 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
164 TW_UINT16 TWAIN_SetupFileXfer2Get
165 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
166 TW_UINT16 TWAIN_SetupFileXfer2GetDefault
167 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
168 TW_UINT16 TWAIN_SetupFileXfer2Reset
169 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
170 TW_UINT16 TWAIN_SetupFileXfer2Set
171 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
172 TW_UINT16 TWAIN_SetupMemXferGet
173 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
174 TW_UINT16 TWAIN_GetDSStatus
175 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
176 TW_UINT16 TWAIN_DisableDSUserInterface
177 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
178 TW_UINT16 TWAIN_EnableDSUserInterface
179 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
180 TW_UINT16 TWAIN_EnableDSUIOnly
181 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
182 TW_UINT16 TWAIN_XferGroupGet
183 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
184 TW_UINT16 TWAIN_XferGroupSet
185 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
187 /* Implementation of operation triplets
188 * From Application to Source (Image Information) */
189 TW_UINT16 TWAIN_CIEColorGet
190 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
191 TW_UINT16 TWAIN_ExtImageInfoGet
192 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
193 TW_UINT16 TWAIN_GrayResponseReset
194 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
195 TW_UINT16 TWAIN_GrayResponseSet
196 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
197 TW_UINT16 TWAIN_ImageFileXferGet
198 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
199 TW_UINT16 TWAIN_ImageInfoGet
200 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
201 TW_UINT16 TWAIN_ImageLayoutGet
202 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
203 TW_UINT16 TWAIN_ImageLayoutGetDefault
204 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
205 TW_UINT16 TWAIN_ImageLayoutReset
206 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
207 TW_UINT16 TWAIN_ImageLayoutSet
208 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
209 TW_UINT16 TWAIN_ImageMemXferGet
210 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
211 TW_UINT16 TWAIN_ImageNativeXferGet
212 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
213 TW_UINT16 TWAIN_JPEGCompressionGet
214 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
215 TW_UINT16 TWAIN_JPEGCompressionGetDefault
216 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
217 TW_UINT16 TWAIN_JPEGCompressionReset
218 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
219 TW_UINT16 TWAIN_JPEGCompressionSet
220 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
221 TW_UINT16 TWAIN_Palette8Get
222 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
223 TW_UINT16 TWAIN_Palette8GetDefault
224 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
225 TW_UINT16 TWAIN_Palette8Reset
226 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
227 TW_UINT16 TWAIN_Palette8Set
228 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
229 TW_UINT16 TWAIN_RGBResponseReset
230 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
231 TW_UINT16 TWAIN_RGBResponseSet
232 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
234 /* Implementation of operation triplets
235 * From Application to Source (Audio Information) */
236 TW_UINT16 TWAIN_AudioFileXferGet
237 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
238 TW_UINT16 TWAIN_AudioInfoGet
239 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
240 TW_UINT16 TWAIN_AudioNativeXferGet
241 (pTW_IDENTITY pOrigin
, pTW_IDENTITY pDest
, TW_MEMREF pData
);
243 /* Implementation of TWAIN capabilities */
244 TW_UINT16 TWAIN_ICAPXferMech
245 (activeDS
*pSource
, pTW_CAPABILITY pCapability
, TW_UINT16 action
);