winejoystick.drv: Use CP_UNIXCP instead of CP_ACP when converting a string that comes...
[wine] / dlls / sane.ds / sane_i.h
1 /*
2  * Copyright 2000 Corel Corporation
3  *
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.
8  *
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.
13  *
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #ifndef _TWAIN32_H
20 #define _TWAIN32_H
21
22 #ifndef __WINE_CONFIG_H
23 # error You must include config.h first
24 #endif
25
26 #ifdef SONAME_LIBSANE
27 # include <sane/sane.h>
28
29 #define MAKE_FUNCPTR(f) typeof(f) * p##f;
30 MAKE_FUNCPTR(sane_init)
31 MAKE_FUNCPTR(sane_exit)
32 MAKE_FUNCPTR(sane_get_devices)
33 MAKE_FUNCPTR(sane_open)
34 MAKE_FUNCPTR(sane_close)
35 MAKE_FUNCPTR(sane_get_option_descriptor)
36 MAKE_FUNCPTR(sane_control_option)
37 MAKE_FUNCPTR(sane_get_parameters)
38 MAKE_FUNCPTR(sane_start)
39 MAKE_FUNCPTR(sane_read)
40 MAKE_FUNCPTR(sane_cancel)
41 MAKE_FUNCPTR(sane_set_io_mode)
42 MAKE_FUNCPTR(sane_get_select_fd)
43 MAKE_FUNCPTR(sane_strstatus)
44 #undef MAKE_FUNCPTR
45
46 #endif
47 #include <stdarg.h>
48
49 #include "windef.h"
50 #include "winbase.h"
51 #include "winuser.h"
52 #include "twain.h"
53
54 extern HINSTANCE SANE_instance;
55
56 /* internal information about an active data source */
57 struct tagActiveDS
58 {
59     struct tagActiveDS  *next;                  /* next active DS */
60     TW_IDENTITY         identity;               /* identity */
61     TW_UINT16           currentState;           /* current state */
62     UINT                windowMessage;          /* message to use to send status */
63     TW_UINT16           twCC;                   /* condition code */
64     HWND                hwndOwner;              /* window handle of the app */
65     HWND                progressWnd;            /* window handle of the scanning window */
66 #ifdef SONAME_LIBSANE
67     SANE_Handle         deviceHandle;           /* device handle */
68     SANE_Parameters     sane_param;             /* parameters about the image
69                                                    transferred */
70     BOOL                sane_param_valid;  /* true if valid sane_param*/
71     INT                 deviceIndex;    /* index of the current device */
72 #endif
73     /* Capabilities */
74     TW_UINT16           capXferMech;            /* ICAP_XFERMECH */
75     TW_UINT16           capPixelType;           /* ICAP_PIXELTYPE */
76 } activeDS;
77
78 /* Helper functions */
79 extern TW_UINT16 SANE_SaneCapability (pTW_CAPABILITY pCapability, TW_UINT16 action);
80
81 /* Implementation of operation triplets
82  * From Application to Source (Control Information) */
83 TW_UINT16 SANE_CapabilityGet (pTW_IDENTITY pOrigin, TW_MEMREF pData);
84 TW_UINT16 SANE_CapabilityGetCurrent
85     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
86 TW_UINT16 SANE_CapabilityGetDefault
87     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
88 TW_UINT16 SANE_CapabilityQuerySupport
89     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
90 TW_UINT16 SANE_CapabilityReset
91     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
92 TW_UINT16 SANE_CapabilitySet
93     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
94 TW_UINT16 SANE_CustomDSDataGet
95     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
96 TW_UINT16 SANE_CustomDSDataSet
97     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
98 TW_UINT16 SANE_AutomaticCaptureDirectory
99     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
100 TW_UINT16 SANE_ChangeDirectory
101     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
102 TW_UINT16 SANE_FileSystemCopy
103     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
104 TW_UINT16 SANE_CreateDirectory
105     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
106 TW_UINT16 SANE_FileSystemDelete
107     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
108 TW_UINT16 SANE_FormatMedia
109     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
110 TW_UINT16 SANE_FileSystemGetClose
111     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
112 TW_UINT16 SANE_FileSystemGetFirstFile
113     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
114 TW_UINT16 SANE_FileSystemGetInfo
115     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
116 TW_UINT16 SANE_FileSystemGetNextFile
117     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
118 TW_UINT16 SANE_FileSystemRename
119     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
120 TW_UINT16 SANE_ProcessEvent
121     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
122 TW_UINT16 SANE_PassThrough
123     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
124 TW_UINT16 SANE_PendingXfersEndXfer
125     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
126 TW_UINT16 SANE_PendingXfersGet
127     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
128 TW_UINT16 SANE_PendingXfersReset
129     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
130 TW_UINT16 SANE_PendingXfersStopFeeder
131     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
132 TW_UINT16 SANE_SetupFileXferGet
133     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
134 TW_UINT16 SANE_SetupFileXferGetDefault
135     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
136 TW_UINT16 SANE_SetupFileXferReset
137     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
138 TW_UINT16 SANE_SetupFileXferSet
139     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
140 TW_UINT16 SANE_SetupFileXfer2Get
141     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
142 TW_UINT16 SANE_SetupFileXfer2GetDefault
143     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
144 TW_UINT16 SANE_SetupFileXfer2Reset
145     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
146 TW_UINT16 SANE_SetupFileXfer2Set
147     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
148 TW_UINT16 SANE_SetupMemXferGet
149     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
150 TW_UINT16 SANE_GetDSStatus
151     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
152 TW_UINT16 SANE_DisableDSUserInterface
153     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
154 TW_UINT16 SANE_EnableDSUserInterface
155     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
156 TW_UINT16 SANE_EnableDSUIOnly
157     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
158 TW_UINT16 SANE_XferGroupGet
159     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
160 TW_UINT16 SANE_XferGroupSet
161     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
162
163 /* Implementation of operation triplets
164  * From Application to Source (Image Information) */
165 TW_UINT16 SANE_CIEColorGet
166     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
167 TW_UINT16 SANE_ExtImageInfoGet
168     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
169 TW_UINT16 SANE_GrayResponseReset
170     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
171 TW_UINT16 SANE_GrayResponseSet
172     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
173 TW_UINT16 SANE_ImageFileXferGet
174     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
175 TW_UINT16 SANE_ImageInfoGet
176     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
177 TW_UINT16 SANE_ImageLayoutGet
178     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
179 TW_UINT16 SANE_ImageLayoutGetDefault
180     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
181 TW_UINT16 SANE_ImageLayoutReset
182     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
183 TW_UINT16 SANE_ImageLayoutSet
184     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
185 TW_UINT16 SANE_ImageMemXferGet
186     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
187 TW_UINT16 SANE_ImageNativeXferGet
188     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
189 TW_UINT16 SANE_JPEGCompressionGet
190     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
191 TW_UINT16 SANE_JPEGCompressionGetDefault
192     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
193 TW_UINT16 SANE_JPEGCompressionReset
194     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
195 TW_UINT16 SANE_JPEGCompressionSet
196     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
197 TW_UINT16 SANE_Palette8Get
198     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
199 TW_UINT16 SANE_Palette8GetDefault
200     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
201 TW_UINT16 SANE_Palette8Reset
202     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
203 TW_UINT16 SANE_Palette8Set
204     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
205 TW_UINT16 SANE_RGBResponseReset
206     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
207 TW_UINT16 SANE_RGBResponseSet
208     (pTW_IDENTITY pOrigin, TW_MEMREF pData);
209
210 /* UI function */
211 BOOL DoScannerUI(void);
212 HWND ScanningDialogBox(HWND dialog, LONG progress);
213
214 /* Option functions */
215 #ifdef SONAME_LIBSANE
216 SANE_Status sane_option_get_int(SANE_Handle h, const char *option_name, SANE_Int *val);
217 #endif
218
219
220 #endif