Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygends_ctrl.c
Go to the documentation of this file.
00001 /* 00002 * Copyright 2000 Corel Corporation 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00017 */ 00018 00019 //#include "config.h" 00020 00021 #ifdef HAVE_UNISTD_H 00022 # include <unistd.h> 00023 #endif 00024 #include <stdlib.h> 00025 #include "twain.h" 00026 #include "twain_i.h" 00027 #include "wine/debug.h" 00028 00029 WINE_DEFAULT_DEBUG_CHANNEL(twain); 00030 00031 /* DG_CONTROL/DAT_CAPABILITY/MSG_GET */ 00032 TW_UINT16 TWAIN_CapabilityGet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00033 TW_MEMREF pData) 00034 { 00035 TW_UINT16 twRC = TWRC_SUCCESS, twCC = TWCC_SUCCESS; 00036 pTW_CAPABILITY pCapability = (pTW_CAPABILITY) pData; 00037 activeDS *pSource = TWAIN_LookupSource (pDest); 00038 00039 TRACE("DG_CONTROL/DAT_CAPABILITY/MSG_GET\n"); 00040 00041 if (!pDest) 00042 { 00043 twRC = TWRC_FAILURE; 00044 DSM_twCC = TWCC_BADDEST; 00045 } 00046 else if (pSource->currentState < 4 || pSource->currentState > 7) 00047 { 00048 twRC = TWRC_FAILURE; 00049 pSource->twCC = TWCC_SEQERROR; 00050 } 00051 else 00052 { 00053 twCC = TWAIN_SaneCapability (pSource, pCapability, MSG_GET); 00054 twRC = (twCC == TWCC_SUCCESS)?TWRC_SUCCESS:TWRC_FAILURE; 00055 pSource->twCC = twCC; 00056 } 00057 00058 return twRC; 00059 } 00060 00061 /* DG_CONTROL/DAT_CAPABILITY/MSG_GETCURRENT */ 00062 TW_UINT16 TWAIN_CapabilityGetCurrent (pTW_IDENTITY pOrigin, 00063 pTW_IDENTITY pDest,TW_MEMREF pData) 00064 { 00065 TW_UINT16 twRC = TWRC_SUCCESS, twCC = TWCC_SUCCESS; 00066 pTW_CAPABILITY pCapability = (pTW_CAPABILITY) pData; 00067 activeDS *pSource = TWAIN_LookupSource (pDest); 00068 00069 TRACE("DG_CONTROL/DAT_CAPABILITY/MSG_GETCURRENT\n"); 00070 00071 if (!pSource) 00072 { 00073 twRC = TWRC_FAILURE; 00074 DSM_twCC = TWCC_BADDEST; 00075 } 00076 else if (pSource->currentState < 4 || pSource->currentState > 7) 00077 { 00078 twRC = TWRC_FAILURE; 00079 pSource->twCC = TWCC_SEQERROR; 00080 } 00081 else 00082 { 00083 twCC = TWAIN_SaneCapability (pSource, pCapability, MSG_GETCURRENT); 00084 twRC = (twCC == TWCC_SUCCESS)?TWRC_SUCCESS:TWRC_FAILURE; 00085 pSource->twCC = twCC; 00086 } 00087 00088 return twRC; 00089 } 00090 00091 /* DG_CONTROL/DAT_CAPABILITY/MSG_GETDEFAULT */ 00092 TW_UINT16 TWAIN_CapabilityGetDefault (pTW_IDENTITY pOrigin, 00093 pTW_IDENTITY pDest, TW_MEMREF pData) 00094 { 00095 TW_UINT16 twRC = TWRC_SUCCESS, twCC = TWCC_SUCCESS; 00096 pTW_CAPABILITY pCapability = (pTW_CAPABILITY) pData; 00097 activeDS *pSource = TWAIN_LookupSource (pDest); 00098 00099 TRACE("DG_CONTROL/DAT_CAPABILITY/MSG_GETDEFAULT\n"); 00100 00101 if (!pDest) 00102 { 00103 twRC = TWRC_FAILURE; 00104 DSM_twCC = TWCC_BADDEST; 00105 } 00106 else if (pSource->currentState < 4 || pSource->currentState > 7) 00107 { 00108 twRC = TWRC_FAILURE; 00109 pSource->twCC = TWCC_SEQERROR; 00110 } 00111 else 00112 { 00113 twCC = TWAIN_SaneCapability (pSource, pCapability, MSG_GETDEFAULT); 00114 twRC = (twCC == TWCC_SUCCESS)?TWRC_SUCCESS:TWRC_FAILURE; 00115 pSource->twCC = twCC; 00116 } 00117 00118 return twRC; 00119 } 00120 00121 /* DG_CONTROL/DAT_CAPABILITY/MSG_QUERYSUPPORT */ 00122 TW_UINT16 TWAIN_CapabilityQuerySupport (pTW_IDENTITY pOrigin, 00123 pTW_IDENTITY pDest, TW_MEMREF pData) 00124 { 00125 FIXME ("stub!\n"); 00126 00127 return TWRC_FAILURE; 00128 } 00129 00130 /* DG_CONTROL/DAT_CAPABILITY/MSG_RESET */ 00131 TW_UINT16 TWAIN_CapabilityReset (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00132 TW_MEMREF pData) 00133 { 00134 TW_UINT16 twRC = TWRC_SUCCESS, twCC = TWCC_SUCCESS; 00135 pTW_CAPABILITY pCapability = (pTW_CAPABILITY) pData; 00136 activeDS *pSource = TWAIN_LookupSource (pDest); 00137 00138 TRACE("DG_CONTROL/DAT_CAPABILITY/MSG_RESET\n"); 00139 00140 if (!pDest) 00141 { 00142 twRC = TWRC_FAILURE; 00143 DSM_twCC = TWCC_BADDEST; 00144 } 00145 else if (pSource->currentState < 4 || pSource->currentState > 7) 00146 { 00147 twRC = TWRC_FAILURE; 00148 pSource->twCC = TWCC_SEQERROR; 00149 } 00150 else 00151 { 00152 twCC = TWAIN_SaneCapability (pSource, pCapability, MSG_RESET); 00153 twRC = (twCC == TWCC_SUCCESS)?TWRC_SUCCESS:TWRC_FAILURE; 00154 pSource->twCC = twCC; 00155 } 00156 00157 return twRC; 00158 } 00159 00160 /* DG_CONTROL/DAT_CAPABILITY/MSG_SET */ 00161 TW_UINT16 TWAIN_CapabilitySet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00162 TW_MEMREF pData) 00163 { 00164 TW_UINT16 twRC = TWRC_SUCCESS, twCC = TWCC_SUCCESS; 00165 pTW_CAPABILITY pCapability = (pTW_CAPABILITY) pData; 00166 activeDS *pSource = TWAIN_LookupSource (pDest); 00167 00168 TRACE ("DG_CONTROL/DAT_CAPABILITY/MSG_SET\n"); 00169 00170 if (!pSource) 00171 { 00172 twRC = TWRC_FAILURE; 00173 DSM_twCC = TWCC_BADDEST; 00174 } 00175 else if (pSource->currentState != 4) 00176 { 00177 twRC = TWRC_FAILURE; 00178 pSource->twCC = TWCC_SEQERROR; 00179 } 00180 else 00181 { 00182 twCC = TWAIN_SaneCapability (pSource, pCapability, MSG_SET); 00183 twRC = (twCC == TWCC_SUCCESS)?TWRC_SUCCESS:TWRC_FAILURE; 00184 pSource->twCC = twCC; 00185 } 00186 return twRC; 00187 } 00188 00189 /* DG_CONTROL/DAT_CUSTOMDSDATA/MSG_GET */ 00190 TW_UINT16 TWAIN_CustomDSDataGet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00191 TW_MEMREF pData) 00192 { 00193 FIXME ("stub!\n"); 00194 00195 return TWRC_FAILURE; 00196 } 00197 00198 /* DG_CONTROL/DAT_CUSTOMDSDATA/MSG_SET */ 00199 TW_UINT16 TWAIN_CustomDSDataSet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00200 TW_MEMREF pData) 00201 { 00202 FIXME ("stub!\n"); 00203 00204 return TWRC_FAILURE; 00205 } 00206 00207 /* DG_CONTROL/DAT_FILESYSTEM/MSG_AUTOMATICCAPTUREDIRECTORY */ 00208 TW_UINT16 TWAIN_AutomaticCaptureDirectory (pTW_IDENTITY pOrigin, 00209 pTW_IDENTITY pDest, 00210 TW_MEMREF pData) 00211 { 00212 FIXME ("stub!\n"); 00213 00214 return TWRC_FAILURE; 00215 } 00216 00217 /* DG_CONTROL/DAT_FILESYSTEM/MSG_CHANGEDIRECTORY */ 00218 TW_UINT16 TWAIN_ChangeDirectory (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00219 TW_MEMREF pData) 00220 { 00221 FIXME ("stub!\n"); 00222 00223 return TWRC_FAILURE; 00224 } 00225 00226 /* DG_CONTROL/DAT_FILESYSTEM/MSG_COPY */ 00227 TW_UINT16 TWAIN_FileSystemCopy (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00228 TW_MEMREF pData) 00229 { 00230 FIXME ("stub!\n"); 00231 00232 return TWRC_FAILURE; 00233 } 00234 00235 /* DG_CONTROL/DAT_FILESYSTEM/MSG_CREATEDIRECTORY */ 00236 TW_UINT16 TWAIN_CreateDirectory (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00237 TW_MEMREF pData) 00238 { 00239 FIXME ("stub!\n"); 00240 00241 return TWRC_FAILURE; 00242 } 00243 00244 /* DG_CONTROL/DAT_FILESYSTEM/MSG_DELETE */ 00245 TW_UINT16 TWAIN_FileSystemDelete (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00246 TW_MEMREF pData) 00247 { 00248 FIXME ("stub!\n"); 00249 00250 return TWRC_FAILURE; 00251 } 00252 00253 /* DG_CONTROL/DAT_FILESYSTEM/MSG_FORMATMEDIA */ 00254 TW_UINT16 TWAIN_FormatMedia (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00255 TW_MEMREF pData) 00256 { 00257 FIXME ("stub!\n"); 00258 00259 return TWRC_FAILURE; 00260 } 00261 00262 /* DG_CONTROL/DAT_FILESYSTEM/MSG_GETCLOSE */ 00263 TW_UINT16 TWAIN_FileSystemGetClose (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00264 TW_MEMREF pData) 00265 { 00266 FIXME ("stub!\n"); 00267 00268 return TWRC_FAILURE; 00269 } 00270 00271 /* DG_CONTROL/DAT_FILESYSTEM/MSG_GETFIRSTFILE */ 00272 TW_UINT16 TWAIN_FileSystemGetFirstFile (pTW_IDENTITY pOrigin, 00273 pTW_IDENTITY pDest, 00274 TW_MEMREF pData) 00275 { 00276 FIXME ("stub!\n"); 00277 00278 return TWRC_FAILURE; 00279 } 00280 00281 /* DG_CONTROL/DAT_FILESYSTEM/MSG_GETINFO */ 00282 TW_UINT16 TWAIN_FileSystemGetInfo (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00283 TW_MEMREF pData) 00284 { 00285 FIXME ("stub!\n"); 00286 00287 return TWRC_FAILURE; 00288 } 00289 00290 /* DG_CONTROL/DAT_FILESYSTEM/MSG_GETNEXTFILE */ 00291 TW_UINT16 TWAIN_FileSystemGetNextFile (pTW_IDENTITY pOrigin, 00292 pTW_IDENTITY pDest, 00293 TW_MEMREF pData) 00294 { 00295 FIXME ("stub!\n"); 00296 00297 return TWRC_FAILURE; 00298 } 00299 00300 /* DG_CONTROL/DAT_FILESYSTEM/MSG_RENAME */ 00301 TW_UINT16 TWAIN_FileSystemRename (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00302 TW_MEMREF pData) 00303 { 00304 FIXME ("stub!\n"); 00305 00306 return TWRC_FAILURE; 00307 } 00308 00309 /* DG_CONTROL/DAT_EVENT/MSG_PROCESSEVENT */ 00310 TW_UINT16 TWAIN_ProcessEvent (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00311 TW_MEMREF pData) 00312 { 00313 TW_UINT16 twRC = TWRC_SUCCESS; 00314 pTW_EVENT pEvent = (pTW_EVENT) pData; 00315 activeDS *pSource = TWAIN_LookupSource (pDest); 00316 00317 TRACE("DG_CONTROL/DAT_EVENT/MSG_PROCESSEVENT\n"); 00318 00319 if (!pSource) 00320 { 00321 twRC = TWRC_FAILURE; 00322 DSM_twCC = TWCC_BADDEST; 00323 } 00324 else if (pSource->currentState < 5 || pSource->currentState > 7) 00325 { 00326 twRC = TWRC_FAILURE; 00327 pSource->twCC = TWCC_SEQERROR; 00328 } 00329 else 00330 { 00331 if (pSource->pendingEvent.TWMessage != MSG_NULL) 00332 { 00333 pEvent->TWMessage = pSource->pendingEvent.TWMessage; 00334 pSource->pendingEvent.TWMessage = MSG_NULL; 00335 twRC = TWRC_DSEVENT; 00336 } 00337 else 00338 { 00339 pEvent->TWMessage = MSG_NULL; /* no message to the application */ 00340 twRC = TWRC_NOTDSEVENT; 00341 } 00342 pSource->twCC = TWCC_SUCCESS; 00343 } 00344 00345 return twRC; 00346 } 00347 00348 /* DG_CONTROL/DAT_PASSTHRU/MSG_PASSTHRU */ 00349 TW_UINT16 TWAIN_PassThrough (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00350 TW_MEMREF pData) 00351 { 00352 FIXME ("stub!\n"); 00353 00354 return TWRC_FAILURE; 00355 } 00356 00357 /* DG_CONTROL/DAT_PENDINGXFERS/MSG_ENDXFER */ 00358 TW_UINT16 TWAIN_PendingXfersEndXfer (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00359 TW_MEMREF pData) 00360 { 00361 TW_UINT16 twRC = TWRC_SUCCESS; 00362 pTW_PENDINGXFERS pPendingXfers = (pTW_PENDINGXFERS) pData; 00363 activeDS *pSource = TWAIN_LookupSource (pData); 00364 00365 TRACE("DG_CONTROL/DAT_PENDINGXFERS/MSG_ENDXFER\n"); 00366 00367 if (!pSource) 00368 { 00369 twRC = TWRC_FAILURE; 00370 DSM_twCC = TWCC_BADDEST; 00371 } 00372 else if (pSource->currentState != 6 && pSource->currentState != 7) 00373 { 00374 twRC = TWRC_FAILURE; 00375 pSource->twCC = TWCC_SEQERROR; 00376 } 00377 else 00378 { 00379 if (pPendingXfers->Count != 0) 00380 { 00381 pPendingXfers->Count --; 00382 pSource->currentState = 6; 00383 } 00384 else 00385 { 00386 pSource->currentState = 5; 00387 /* Notify the application that it can close the data source */ 00388 pSource->pendingEvent.TWMessage = MSG_CLOSEDSREQ; 00389 } 00390 twRC = TWRC_SUCCESS; 00391 pSource->twCC = TWCC_SUCCESS; 00392 } 00393 00394 return twRC; 00395 } 00396 00397 /* DG_CONTROL/DAT_PENDINGXFERS/MSG_GET */ 00398 TW_UINT16 TWAIN_PendingXfersGet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00399 TW_MEMREF pData) 00400 { 00401 TW_UINT16 twRC = TWRC_SUCCESS; 00402 pTW_PENDINGXFERS pPendingXfers = (pTW_PENDINGXFERS) pData; 00403 activeDS *pSource = TWAIN_LookupSource (pDest); 00404 00405 TRACE("DG_CONTROL/DAT_PENDINGXFERS/MSG_GET\n"); 00406 00407 if (!pSource) 00408 { 00409 twRC = TWRC_FAILURE; 00410 DSM_twCC = TWCC_BADDEST; 00411 } 00412 else if (pSource->currentState < 4 || pSource->currentState > 7) 00413 { 00414 twRC = TWRC_FAILURE; 00415 DSM_twCC = TWCC_SEQERROR; 00416 } 00417 else 00418 { 00419 /* FIXME: we shouldn't return 1 here */ 00420 pPendingXfers->Count = 1; 00421 twRC = TWRC_SUCCESS; 00422 pSource->twCC = TWCC_SUCCESS; 00423 } 00424 00425 return twRC; 00426 } 00427 00428 /* DG_CONTROL/DAT_PENDINGXFERS/MSG_RESET */ 00429 TW_UINT16 TWAIN_PendingXfersReset (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00430 TW_MEMREF pData) 00431 { 00432 TW_UINT16 twRC = TWRC_SUCCESS; 00433 pTW_PENDINGXFERS pPendingXfers = (pTW_PENDINGXFERS) pData; 00434 activeDS *pSource = TWAIN_LookupSource (pDest); 00435 00436 TRACE("DG_CONTROL/DAT_PENDINGXFERS/MSG_RESET\n"); 00437 00438 if (!pSource) 00439 { 00440 twRC = TWRC_FAILURE; 00441 DSM_twCC = TWCC_BADDEST; 00442 } 00443 else if (pSource->currentState != 6) 00444 { 00445 twRC = TWRC_FAILURE; 00446 DSM_twCC = TWCC_SEQERROR; 00447 } 00448 else 00449 { 00450 pPendingXfers->Count = 0; 00451 pSource->currentState = 5; 00452 twRC = TWRC_SUCCESS; 00453 pSource->twCC = TWCC_SUCCESS; 00454 } 00455 00456 return twRC; 00457 } 00458 00459 /* DG_CONTROL/DAT_PENDINGXFERS/MSG_STOPFEEDER */ 00460 TW_UINT16 TWAIN_PendingXfersStopFeeder (pTW_IDENTITY pOrigin, 00461 pTW_IDENTITY pDest, TW_MEMREF pData) 00462 { 00463 FIXME ("stub!\n"); 00464 00465 return TWRC_FAILURE; 00466 } 00467 00468 /* DG_CONTROL/DAT_SETUPFILEXFER/MSG_GET */ 00469 TW_UINT16 TWAIN_SetupFileXferGet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00470 TW_MEMREF pData) 00471 { 00472 FIXME ("stub!\n"); 00473 00474 return TWRC_FAILURE; 00475 } 00476 00477 /* DG_CONTROL/DAT_SETUPXFER/MSG_GETDEFAULT */ 00478 TW_UINT16 TWAIN_SetupFileXferGetDefault (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00479 TW_MEMREF pData) 00480 { 00481 FIXME ("stub!\n"); 00482 00483 return TWRC_FAILURE; 00484 } 00485 00486 00487 /* DG_CONTROL/DAT_SETUPFILEXFER/MSG_RESET */ 00488 TW_UINT16 TWAIN_SetupFileXferReset (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00489 TW_MEMREF pData) 00490 { 00491 FIXME ("stub!\n"); 00492 00493 return TWRC_FAILURE; 00494 } 00495 00496 /* DG_CONTROL/DAT_SETUPFILEXFER/MSG_SET */ 00497 TW_UINT16 TWAIN_SetupFileXferSet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00498 TW_MEMREF pData) 00499 { 00500 FIXME ("stub!\n"); 00501 00502 return TWRC_FAILURE; 00503 } 00504 00505 /* DG_CONTROL/DAT_SETUPFILEXFER2/MSG_GET */ 00506 TW_UINT16 TWAIN_SetupFileXfer2Get (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00507 TW_MEMREF pData) 00508 { 00509 FIXME ("stub!\n"); 00510 00511 return TWRC_FAILURE; 00512 } 00513 00514 /* DG_CONTROL/DAT_SETUPFILEXFER2/MSG_GETDEFAULT */ 00515 TW_UINT16 TWAIN_SetupFileXfer2GetDefault (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00516 TW_MEMREF pData) 00517 { 00518 FIXME ("stub!\n"); 00519 00520 return TWRC_FAILURE; 00521 } 00522 00523 /* DG_CONTROL/DAT_SETUPFILEXFER2/MSG_RESET */ 00524 TW_UINT16 TWAIN_SetupFileXfer2Reset (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00525 TW_MEMREF pData) 00526 { 00527 FIXME ("stub!\n"); 00528 00529 return TWRC_FAILURE; 00530 } 00531 00532 /* DG_CONTROL/DAT_SETUPFILEXFER2/MSG_SET */ 00533 TW_UINT16 TWAIN_SetupFileXfer2Set (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00534 TW_MEMREF pData) 00535 { 00536 FIXME ("stub!\n"); 00537 00538 return TWRC_FAILURE; 00539 } 00540 00541 /* DG_CONTROL/DAT_SETUPMEMXFER/MSG_GET */ 00542 TW_UINT16 TWAIN_SetupMemXferGet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00543 TW_MEMREF pData) 00544 { 00545 FIXME ("stub!\n"); 00546 00547 return TWRC_FAILURE; 00548 } 00549 00550 /* DG_CONTROL/DAT_STATUS/MSG_GET */ 00551 TW_UINT16 TWAIN_GetDSStatus (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00552 TW_MEMREF pData) 00553 { 00554 TW_UINT16 twRC = TWRC_FAILURE; 00555 pTW_STATUS pSourceStatus = (pTW_STATUS) pData; 00556 activeDS *pSource = TWAIN_LookupSource (pDest); 00557 00558 TRACE ("DG_CONTROL/DAT_STATUS/MSG_GET\n"); 00559 00560 if (!pSource) 00561 { 00562 twRC = TWRC_FAILURE; 00563 DSM_twCC = TWCC_BADDEST; 00564 pSourceStatus->ConditionCode = TWCC_BADDEST; 00565 } 00566 else 00567 { 00568 twRC = TWRC_SUCCESS; 00569 pSourceStatus->ConditionCode = pSource->twCC; 00570 /* Reset the condition code */ 00571 pSource->twCC = TWCC_SUCCESS; 00572 } 00573 00574 return twRC; 00575 } 00576 00577 /* DG_CONTROL/DAT_USERINTERFACE/MSG_DISABLEDS */ 00578 TW_UINT16 TWAIN_DisableDSUserInterface (pTW_IDENTITY pOrigin, 00579 pTW_IDENTITY pDest, TW_MEMREF pData) 00580 { 00581 TW_UINT16 twRC = TWRC_SUCCESS; 00582 activeDS *pSource = TWAIN_LookupSource (pDest); 00583 00584 TRACE ("DG_CONTROL/DAT_USERINTERFACE/MSG_DISABLEDS\n"); 00585 00586 if (!pSource) 00587 { 00588 twRC = TWRC_FAILURE; 00589 DSM_twCC = TWCC_BADDEST; 00590 } 00591 else if (pSource->currentState != 5) 00592 { 00593 twRC = TWRC_FAILURE; 00594 pSource->twCC = TWCC_SEQERROR; 00595 } 00596 else 00597 { 00598 pSource->currentState = 4; 00599 twRC = TWRC_SUCCESS; 00600 pSource->twCC = TWCC_SUCCESS; 00601 } 00602 00603 return twRC; 00604 } 00605 00606 /* DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDS */ 00607 TW_UINT16 TWAIN_EnableDSUserInterface (pTW_IDENTITY pOrigin, 00608 pTW_IDENTITY pDest, TW_MEMREF pData) 00609 { 00610 TW_UINT16 twRC = TWRC_SUCCESS; 00611 pTW_USERINTERFACE pUserInterface = (pTW_USERINTERFACE) pData; 00612 activeDS *pSource = TWAIN_LookupSource (pDest); 00613 00614 TRACE ("DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDS\n"); 00615 00616 if (!pSource) 00617 { 00618 twRC = TWRC_FAILURE; 00619 DSM_twCC = TWCC_BADDEST; 00620 } 00621 else if (pSource->currentState != 4) 00622 { 00623 twRC = TWRC_FAILURE; 00624 pSource->twCC = TWCC_SEQERROR; 00625 } 00626 else 00627 { 00628 if (pUserInterface->ShowUI) 00629 { 00630 pSource->currentState = 5; /* Transitions to state 5 */ 00631 /* FIXME: we should replace xscanimage with our own device UI */ 00632 system ("xscanimage"); 00633 pSource->currentState = 6; 00634 pSource->pendingEvent.TWMessage = MSG_XFERREADY; 00635 } 00636 else 00637 { 00638 /* no UI will be displayed, so source is ready to transfer data */ 00639 pSource->pendingEvent.TWMessage = MSG_XFERREADY; 00640 pSource->currentState = 6; /* Transitions to state 6 directly */ 00641 } 00642 00643 pSource->hwndOwner = pUserInterface->hParent; 00644 twRC = TWRC_SUCCESS; 00645 pSource->twCC = TWCC_SUCCESS; 00646 } 00647 00648 return twRC; 00649 } 00650 00651 /* DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDSUIONLY */ 00652 TW_UINT16 TWAIN_EnableDSUIOnly (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00653 TW_MEMREF pData) 00654 { 00655 TW_UINT16 twRC = TWRC_SUCCESS; 00656 activeDS *pSource = TWAIN_LookupSource (pDest); 00657 00658 TRACE("DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDSUIONLY\n"); 00659 00660 if (!pSource) 00661 { 00662 twRC = TWRC_FAILURE; 00663 DSM_twCC = TWCC_BADDEST; 00664 } 00665 else if (pSource->currentState != 4) 00666 { 00667 twRC = TWRC_FAILURE; 00668 pSource->twCC = TWCC_SEQERROR; 00669 } 00670 else 00671 { 00672 /* FIXME: we should replace xscanimage with our own UI */ 00673 system ("xscanimage"); 00674 pSource->currentState = 5; 00675 twRC = TWRC_SUCCESS; 00676 pSource->twCC = TWCC_SUCCESS; 00677 } 00678 00679 return twRC; 00680 } 00681 00682 /* DG_CONTROL/DAT_XFERGROUP/MSG_GET */ 00683 TW_UINT16 TWAIN_XferGroupGet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00684 TW_MEMREF pData) 00685 { 00686 FIXME ("stub!\n"); 00687 00688 return TWRC_FAILURE; 00689 } 00690 00691 /* DG_CONTROL/DAT_XFERGROUP/MSG_SET */ 00692 TW_UINT16 TWAIN_XferGroupSet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest, 00693 TW_MEMREF pData) 00694 { 00695 FIXME ("stub!\n"); 00696 00697 return TWRC_FAILURE; 00698 } Generated on Thu May 24 2012 04:27:10 for ReactOS by
1.7.6.1
|