📄 ds_ctrl.c
字号:
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_PENDINGXFERS/MSG_ENDXFER */
TW_UINT16 TWAIN_PendingXfersEndXfer (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
TW_UINT16 twRC = TWRC_SUCCESS;
pTW_PENDINGXFERS pPendingXfers = (pTW_PENDINGXFERS) pData;
activeDS *pSource = TWAIN_LookupSource (pData);
TRACE("DG_CONTROL/DAT_PENDINGXFERS/MSG_ENDXFER\n");
if (!pSource)
{
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADDEST;
}
else if (pSource->currentState != 6 && pSource->currentState != 7)
{
twRC = TWRC_FAILURE;
pSource->twCC = TWCC_SEQERROR;
}
else
{
if (pPendingXfers->Count != 0)
{
pPendingXfers->Count --;
pSource->currentState = 6;
}
else
{
pSource->currentState = 5;
/* Notify the application that it can close the data source */
pSource->pendingEvent.TWMessage = MSG_CLOSEDSREQ;
}
twRC = TWRC_SUCCESS;
pSource->twCC = TWCC_SUCCESS;
}
return twRC;
}
/* DG_CONTROL/DAT_PENDINGXFERS/MSG_GET */
TW_UINT16 TWAIN_PendingXfersGet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
TW_UINT16 twRC = TWRC_SUCCESS;
pTW_PENDINGXFERS pPendingXfers = (pTW_PENDINGXFERS) pData;
activeDS *pSource = TWAIN_LookupSource (pDest);
TRACE("DG_CONTROL/DAT_PENDINGXFERS/MSG_GET\n");
if (!pSource)
{
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADDEST;
}
else if (pSource->currentState < 4 || pSource->currentState > 7)
{
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_SEQERROR;
}
else
{
/* FIXME: we shouldn't return 1 here */
pPendingXfers->Count = 1;
twRC = TWRC_SUCCESS;
pSource->twCC = TWCC_SUCCESS;
}
return twRC;
}
/* DG_CONTROL/DAT_PENDINGXFERS/MSG_RESET */
TW_UINT16 TWAIN_PendingXfersReset (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
TW_UINT16 twRC = TWRC_SUCCESS;
pTW_PENDINGXFERS pPendingXfers = (pTW_PENDINGXFERS) pData;
activeDS *pSource = TWAIN_LookupSource (pDest);
TRACE("DG_CONTROL/DAT_PENDINGXFERS/MSG_RESET\n");
if (!pSource)
{
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADDEST;
}
else if (pSource->currentState != 6)
{
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_SEQERROR;
}
else
{
pPendingXfers->Count = 0;
pSource->currentState = 5;
twRC = TWRC_SUCCESS;
pSource->twCC = TWCC_SUCCESS;
}
return twRC;
}
/* DG_CONTROL/DAT_PENDINGXFERS/MSG_STOPFEEDER */
TW_UINT16 TWAIN_PendingXfersStopFeeder (pTW_IDENTITY pOrigin,
pTW_IDENTITY pDest, TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_SETUPFILEXFER/MSG_GET */
TW_UINT16 TWAIN_SetupFileXferGet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_SETUPXFER/MSG_GETDEFAULT */
TW_UINT16 TWAIN_SetupFileXferGetDefault (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_SETUPFILEXFER/MSG_RESET */
TW_UINT16 TWAIN_SetupFileXferReset (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_SETUPFILEXFER/MSG_SET */
TW_UINT16 TWAIN_SetupFileXferSet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_SETUPFILEXFER2/MSG_GET */
TW_UINT16 TWAIN_SetupFileXfer2Get (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_SETUPFILEXFER2/MSG_GETDEFAULT */
TW_UINT16 TWAIN_SetupFileXfer2GetDefault (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_SETUPFILEXFER2/MSG_RESET */
TW_UINT16 TWAIN_SetupFileXfer2Reset (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_SETUPFILEXFER2/MSG_SET */
TW_UINT16 TWAIN_SetupFileXfer2Set (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_SETUPMEMXFER/MSG_GET */
TW_UINT16 TWAIN_SetupMemXferGet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_STATUS/MSG_GET */
TW_UINT16 TWAIN_GetDSStatus (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
TW_UINT16 twRC = TWRC_FAILURE;
pTW_STATUS pSourceStatus = (pTW_STATUS) pData;
activeDS *pSource = TWAIN_LookupSource (pDest);
TRACE ("DG_CONTROL/DAT_STATUS/MSG_GET\n");
if (!pSource)
{
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADDEST;
pSourceStatus->ConditionCode = TWCC_BADDEST;
}
else
{
twRC = TWRC_SUCCESS;
pSourceStatus->ConditionCode = pSource->twCC;
/* Reset the condition code */
pSource->twCC = TWCC_SUCCESS;
}
return twRC;
}
/* DG_CONTROL/DAT_USERINTERFACE/MSG_DISABLEDS */
TW_UINT16 TWAIN_DisableDSUserInterface (pTW_IDENTITY pOrigin,
pTW_IDENTITY pDest, TW_MEMREF pData)
{
TW_UINT16 twRC = TWRC_SUCCESS;
activeDS *pSource = TWAIN_LookupSource (pDest);
TRACE ("DG_CONTROL/DAT_USERINTERFACE/MSG_DISABLEDS\n");
if (!pSource)
{
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADDEST;
}
else if (pSource->currentState != 5)
{
twRC = TWRC_FAILURE;
pSource->twCC = TWCC_SEQERROR;
}
else
{
pSource->currentState = 4;
twRC = TWRC_SUCCESS;
pSource->twCC = TWCC_SUCCESS;
}
return twRC;
}
/* DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDS */
TW_UINT16 TWAIN_EnableDSUserInterface (pTW_IDENTITY pOrigin,
pTW_IDENTITY pDest, TW_MEMREF pData)
{
TW_UINT16 twRC = TWRC_SUCCESS;
pTW_USERINTERFACE pUserInterface = (pTW_USERINTERFACE) pData;
activeDS *pSource = TWAIN_LookupSource (pDest);
TRACE ("DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDS\n");
if (!pSource)
{
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADDEST;
}
else if (pSource->currentState != 4)
{
twRC = TWRC_FAILURE;
pSource->twCC = TWCC_SEQERROR;
}
else
{
if (pUserInterface->ShowUI)
{
pSource->currentState = 5; /* Transitions to state 5 */
/* FIXME: we should replace xscanimage with our own device UI */
system ("xscanimage");
pSource->currentState = 6;
pSource->pendingEvent.TWMessage = MSG_XFERREADY;
}
else
{
/* no UI will be displayed, so source is ready to transfer data */
pSource->pendingEvent.TWMessage = MSG_XFERREADY;
pSource->currentState = 6; /* Transitions to state 6 directly */
}
pSource->hwndOwner = pUserInterface->hParent;
twRC = TWRC_SUCCESS;
pSource->twCC = TWCC_SUCCESS;
}
return twRC;
}
/* DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDSUIONLY */
TW_UINT16 TWAIN_EnableDSUIOnly (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
TW_UINT16 twRC = TWRC_SUCCESS;
activeDS *pSource = TWAIN_LookupSource (pDest);
TRACE("DG_CONTROL/DAT_USERINTERFACE/MSG_ENABLEDSUIONLY\n");
if (!pSource)
{
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADDEST;
}
else if (pSource->currentState != 4)
{
twRC = TWRC_FAILURE;
pSource->twCC = TWCC_SEQERROR;
}
else
{
/* FIXME: we should replace xscanimage with our own UI */
system ("xscanimage");
pSource->currentState = 5;
twRC = TWRC_SUCCESS;
pSource->twCC = TWCC_SUCCESS;
}
return twRC;
}
/* DG_CONTROL/DAT_XFERGROUP/MSG_GET */
TW_UINT16 TWAIN_XferGroupGet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
/* DG_CONTROL/DAT_XFERGROUP/MSG_SET */
TW_UINT16 TWAIN_XferGroupSet (pTW_IDENTITY pOrigin, pTW_IDENTITY pDest,
TW_MEMREF pData)
{
FIXME ("stub!\n");
return TWRC_FAILURE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -