~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/dlls/capi2032/cap20wxx.c

Version: ~ [ wine-1.1.40 ] ~ [ wine-1.1.39 ] ~ [ wine-1.1.38 ] ~ [ wine-1.1.37 ] ~ [ wine-1.1.36 ] ~ [ wine-1.1.35 ] ~ [ wine-1.1.34 ] ~ [ wine-1.1.33 ] ~ [ wine-1.1.32 ] ~ [ wine-1.1.31 ] ~ [ wine-1.1.30 ] ~ [ wine-1.1.29 ] ~ [ wine-1.1.28 ] ~ [ wine-1.1.27 ] ~ [ wine-1.1.26 ] ~ [ wine-1.1.25 ] ~ [ wine-1.1.24 ] ~ [ wine-1.1.23 ] ~ [ wine-1.1.22 ] ~ [ wine-1.1.21 ] ~ [ wine-1.1.20 ] ~ [ wine-1.1.19 ] ~ [ wine-1.1.18 ] ~ [ wine-1.1.17 ] ~ [ wine-1.1.16 ] ~ [ wine-1.1.15 ] ~ [ wine-1.1.14 ] ~ [ wine-1.1.13 ] ~ [ wine-1.1.12 ] ~ [ wine-1.1.11 ] ~ [ wine-1.1.10 ] ~ [ wine-1.1.9 ] ~ [ wine-1.1.8 ] ~ [ wine-1.1.7 ] ~ [ wine-1.0.1 ] ~ [ wine-1.1.6 ] ~ [ wine-1.1.5 ] ~ [ wine-1.1.4 ] ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~

  1 /*
  2  * cap20wxx.c
  3  *
  4  * Copyright 2002-2003 AVM Computersysteme Vertriebs GmbH
  5  *
  6  * This library is free software; you can redistribute it and/or
  7  * modify it under the terms of the GNU Lesser General Public
  8  * License as published by the Free Software Foundation; either
  9  * version 2.1 of the License, or (at your option) any later version.
 10  *
 11  * This library is distributed in the hope that it will be useful,
 12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 14  * Lesser General Public License for more details.
 15  *
 16  * You should have received a copy of the GNU Lesser General Public
 17  * License along with this library; if not, write to the Free Software
 18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 19  *
 20  */
 21 
 22 #define __NO_CAPIUTILS__
 23 
 24 #include "config.h"
 25 #include "wine/port.h"
 26 
 27 #include <stdio.h>
 28 #include <sys/types.h>
 29 #ifdef HAVE_UNISTD_H
 30 # include <unistd.h>
 31 #endif
 32 
 33 #define __user
 34 #ifdef HAVE_LINUX_CAPI_H
 35 # include <linux/capi.h>
 36 #endif
 37 #ifdef HAVE_CAPI20_H
 38 # include <capi20.h>
 39 #endif
 40 #include "wine/library.h"
 41 #include "wine/debug.h"
 42 #include "cap20wxx.h"
 43 
 44 WINE_DEFAULT_DEBUG_CHANNEL(capi);
 45 
 46 #ifdef SONAME_LIBCAPI20
 47 
 48 static unsigned (*pcapi20_register)(unsigned, unsigned, unsigned, unsigned *) = NULL;
 49 static unsigned (*pcapi20_release)(unsigned) = NULL;
 50 static unsigned (*pcapi20_put_message)(unsigned, unsigned char *) = NULL;
 51 static unsigned (*pcapi20_get_message)(unsigned, unsigned char **) = NULL;
 52 static unsigned (*pcapi20_waitformessage)(unsigned, struct timeval *) = NULL;
 53 static unsigned (*pcapi20_isinstalled)(void) = NULL;
 54 static unsigned (*pcapi20_get_profile)(unsigned, unsigned char *) = NULL;
 55 static unsigned char *(*pcapi20_get_manufacturer)(unsigned, unsigned char *) = NULL;
 56 static unsigned char *(*pcapi20_get_serial_number)(unsigned, unsigned char *) = NULL;
 57 static unsigned char *(*pcapi20_get_version)(unsigned, unsigned char *) = NULL;
 58 
 59 static void load_functions(void) {
 60     void *capi_handle = NULL;
 61 
 62     if (pcapi20_register) /* loaded already */
 63         return;
 64     capi_handle = wine_dlopen(SONAME_LIBCAPI20, RTLD_NOW, NULL, 0);
 65     if(!capi_handle) {
 66         FIXME("Wine cannot find the library %s, capi2032.dll not working.\n", SONAME_LIBCAPI20);
 67         return;
 68     }
 69 #define LOAD_FUNCPTR(f) if((p##f = wine_dlsym(capi_handle, #f, NULL, 0)) == NULL){WARN("Can't find symbol %s\n", #f); return;}
 70 LOAD_FUNCPTR(capi20_register);
 71 LOAD_FUNCPTR(capi20_release);
 72 LOAD_FUNCPTR(capi20_put_message);
 73 LOAD_FUNCPTR(capi20_get_message);
 74 LOAD_FUNCPTR(capi20_waitformessage);
 75 LOAD_FUNCPTR(capi20_isinstalled);
 76 LOAD_FUNCPTR(capi20_get_profile);
 77 LOAD_FUNCPTR(capi20_get_manufacturer);
 78 LOAD_FUNCPTR(capi20_get_serial_number);
 79 LOAD_FUNCPTR(capi20_get_version);
 80 #undef LOAD_FUNCPTR
 81 }
 82 
 83 #endif
 84 
 85 /*===========================================================================*\
 86 \*===========================================================================*/
 87 
 88 DWORD WINAPI wrapCAPI_REGISTER (DWORD MessageBufferSize, DWORD maxLogicalConnection, DWORD maxBDataBlocks, DWORD maxBDataLen, DWORD *pApplID) {
 89 #ifdef SONAME_LIBCAPI20
 90     unsigned aid = 0;
 91     DWORD fret;
 92 
 93     load_functions();
 94     if (!pcapi20_register)
 95         return 0x1009;
 96     fret = pcapi20_register (maxLogicalConnection, maxBDataBlocks, maxBDataLen, &aid);
 97     *pApplID   = aid;
 98     TRACE ( "(%x) -> %x\n", *pApplID, fret);
 99     return fret;
100 #else
101     FIXME ( "(), no CAPI4LINUX support compiled into WINE.\n" );
102     return 0x1009;
103 #endif
104 }
105 
106 /*---------------------------------------------------------------------------*\
107 \*---------------------------------------------------------------------------*/
108 DWORD WINAPI wrapCAPI_RELEASE (DWORD ApplID) {
109 #ifdef SONAME_LIBCAPI20
110     DWORD fret;
111 
112     load_functions();
113     if (!pcapi20_release)
114         return 0x1109;
115     fret = pcapi20_release (ApplID);
116     TRACE ("(%x) -> %x\n", ApplID, fret);
117     return fret;
118 #else
119     return 0x1109;
120 #endif
121 }
122 
123 /*---------------------------------------------------------------------------*\
124 \*---------------------------------------------------------------------------*/
125 DWORD WINAPI wrapCAPI_PUT_MESSAGE (DWORD ApplID, PVOID pCAPIMessage) {
126 #ifdef SONAME_LIBCAPI20
127     DWORD fret;
128 
129     load_functions();
130     if (!pcapi20_put_message)
131         return 0x1109;
132     fret = pcapi20_put_message (ApplID, pCAPIMessage);
133     TRACE ("(%x) -> %x\n", ApplID, fret);
134     return fret;
135 #else
136     return 0x1109;
137 #endif
138 }
139 
140 /*---------------------------------------------------------------------------*\
141 \*---------------------------------------------------------------------------*/
142 DWORD WINAPI wrapCAPI_GET_MESSAGE (DWORD ApplID, PVOID *ppCAPIMessage) {
143 #ifdef SONAME_LIBCAPI20
144     DWORD fret;
145 
146     load_functions();
147     if (!pcapi20_get_message)
148         return 0x1109;
149     fret = pcapi20_get_message (ApplID, (unsigned char **)ppCAPIMessage);
150     TRACE ("(%x) -> %x\n", ApplID, fret);
151     return fret;
152 #else
153     return 0x1109;
154 #endif
155 }
156 
157 /*---------------------------------------------------------------------------*\
158 \*---------------------------------------------------------------------------*/
159 DWORD WINAPI wrapCAPI_WAIT_FOR_SIGNAL (DWORD ApplID) {
160 #ifdef SONAME_LIBCAPI20
161     TRACE ("(%x)\n", ApplID);
162 
163     load_functions();
164     if (!pcapi20_waitformessage)
165         return 0x1109;
166 
167     return pcapi20_waitformessage (ApplID, NULL);
168 #else
169     return 0x1109;
170 #endif
171 }
172 
173 /*---------------------------------------------------------------------------*\
174 \*---------------------------------------------------------------------------*/
175 DWORD WINAPI wrapCAPI_GET_MANUFACTURER (char *SzBuffer) {
176 #ifdef SONAME_LIBCAPI20
177     DWORD fret;
178 
179     load_functions();
180     if (!pcapi20_get_manufacturer)
181         return 0x1109;
182 
183     fret = (pcapi20_get_manufacturer (0, (unsigned char *) SzBuffer) != 0) ? 0 : 0x1108;
184     if (!strncmp (SzBuffer, "AVM", 3)) {
185         strcpy (SzBuffer, "AVM-GmbH");
186     }
187     TRACE ("(%s) -> %x\n", SzBuffer, fret);
188     return fret;
189 #else
190     return 0x1109;
191 #endif
192 }
193 
194 /*---------------------------------------------------------------------------*\
195 \*---------------------------------------------------------------------------*/
196 DWORD WINAPI wrapCAPI_GET_VERSION (DWORD *pCAPIMajor, DWORD *pCAPIMinor, DWORD *pManufacturerMajor, DWORD *pManufacturerMinor) {
197 #ifdef SONAME_LIBCAPI20
198     unsigned char version[4 * sizeof (unsigned)];
199     DWORD fret;
200 
201     load_functions();
202     if (!pcapi20_get_version)
203         return 0x1109;
204     fret = (pcapi20_get_version (0, version) != 0) ? 0 : 0x1108;
205     *pCAPIMajor         = *(unsigned *)(version + 0 * sizeof (unsigned));
206     *pCAPIMinor         = *(unsigned *)(version + 1 * sizeof (unsigned));
207     *pManufacturerMajor = *(unsigned *)(version + 2 * sizeof (unsigned));
208     *pManufacturerMinor = *(unsigned *)(version + 3 * sizeof (unsigned));
209     TRACE ("(%x.%x,%x.%x) -> %x\n", *pCAPIMajor, *pCAPIMinor, *pManufacturerMajor,
210              *pManufacturerMinor, fret);
211     return fret;
212 #else
213     return 0x1109;
214 #endif
215 }
216 
217 /*---------------------------------------------------------------------------*\
218 \*---------------------------------------------------------------------------*/
219 DWORD WINAPI wrapCAPI_GET_SERIAL_NUMBER (char *SzBuffer) {
220 #ifdef SONAME_LIBCAPI20
221     DWORD fret;
222 
223     load_functions();
224     if (!pcapi20_get_serial_number)
225         return 0x1109;
226     fret = (pcapi20_get_serial_number (0, (unsigned char*) SzBuffer) != 0) ? 0 : 0x1108;
227     TRACE ("(%s) -> %x\n", SzBuffer, fret);
228     return fret;
229 #else
230     return 0x1109;
231 #endif
232 }
233 
234 /*---------------------------------------------------------------------------*\
235 \*---------------------------------------------------------------------------*/
236 DWORD WINAPI wrapCAPI_GET_PROFILE (PVOID SzBuffer, DWORD CtlrNr) {
237 #ifdef SONAME_LIBCAPI20
238     DWORD fret;
239 
240     load_functions();
241     if (!pcapi20_get_profile)
242         return 0x1109;
243 
244     fret = pcapi20_get_profile (CtlrNr, SzBuffer);
245     TRACE ("(%x,%x) -> %x\n", CtlrNr, *(unsigned short *)SzBuffer, fret);
246     return fret;
247 #else
248     return 0x1109;
249 #endif
250 }
251 
252 /*---------------------------------------------------------------------------*\
253 \*---------------------------------------------------------------------------*/
254 DWORD WINAPI wrapCAPI_INSTALLED (void) {
255 #ifdef SONAME_LIBCAPI20
256     DWORD fret;
257 
258     load_functions();
259     if (!pcapi20_isinstalled)
260         return 0x1109;
261     fret = pcapi20_isinstalled();
262     TRACE ("() -> %x\n", fret);
263     return fret;
264 #else
265     return 0x1109;
266 #endif
267 }
268 
269 /*---------------------------------------------------------------------------*\
270 \*---------------------------------------------------------------------------*/
271 DWORD WINAPI wrapCAPI_MANUFACTURER (DWORD Class, DWORD Function, DWORD Ctlr, PVOID pParams, DWORD ParamsLen) {
272     FIXME ("(), not supported!\n");
273     return 0x1109;
274 }
275 
276 /*---------------------------------------------------------------------------*\
277 \*---------------------------------------------------------------------------*/
278 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.