📄 twain32_main.c
字号:
else
twRC = TWRC_FAILURE;
break;
case DAT_USERINTERFACE:
switch (MSG)
{
case MSG_DISABLEDS:
twRC = TWAIN_DisableDSUserInterface
(pOrigin, pDest, pData);
break;
case MSG_ENABLEDS:
twRC = TWAIN_EnableDSUserInterface
(pOrigin, pDest, pData);
break;
case MSG_ENABLEDSUIONLY:
twRC = TWAIN_EnableDSUIOnly (pOrigin, pDest, pData);
break;
default:
twRC = TWRC_FAILURE;
break;
}
break;
case DAT_XFERGROUP:
switch (MSG)
{
case MSG_GET:
twRC = TWAIN_XferGroupGet (pOrigin, pDest, pData);
break;
case MSG_SET:
twRC = TWAIN_XferGroupSet (pOrigin, pDest, pData);
break;
default:
twRC = TWRC_FAILURE;
break;
}
break;
default:
twRC = TWRC_FAILURE;
break;
}
return twRC;
}
TW_UINT16 TWAIN_ControlGroupHandler (
pTW_IDENTITY pOrigin,
pTW_IDENTITY pDest,
TW_UINT16 DAT,
TW_UINT16 MSG,
TW_MEMREF pData)
{
TW_UINT16 twRC = TWRC_SUCCESS;
if (pDest)
{
/* This operation's destination is a source */
twRC = TWAIN_SourceControlHandler (pOrigin, pDest, DAT, MSG, pData);
}
else
{
/* This operation's destination is the Source Manager */
twRC = TWAIN_SourceManagerHandler (pOrigin, DAT, MSG, pData);
}
return twRC;
}
TW_UINT16 TWAIN_ImageGroupHandler (
pTW_IDENTITY pOrigin,
pTW_IDENTITY pDest,
TW_UINT16 DAT,
TW_UINT16 MSG,
TW_MEMREF pData)
{
TW_UINT16 twRC = TWRC_SUCCESS;
if (pDest == NULL)
{
DSM_twCC = TWCC_BADDEST;
return TWRC_FAILURE;
}
switch (DAT)
{
case DAT_CIECOLOR:
if (MSG == MSG_GET)
twRC = TWAIN_CIEColorGet (pOrigin, pDest, pData);
else
twRC = TWRC_FAILURE;
break;
case DAT_EXTIMAGEINFO:
if (MSG == MSG_GET)
twRC = TWAIN_ExtImageInfoGet (pOrigin, pDest, pData);
else
twRC = TWRC_FAILURE;
break;
case DAT_GRAYRESPONSE:
switch (MSG)
{
case MSG_RESET:
twRC = TWAIN_GrayResponseReset (pOrigin, pDest, pData);
break;
case MSG_SET:
twRC = TWAIN_GrayResponseSet (pOrigin, pDest, pData);
break;
default:
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADPROTOCOL;
WARN("unrecognized operation triplet\n");
break;
}
break;
case DAT_IMAGEFILEXFER:
if (MSG == MSG_GET)
twRC = TWAIN_ImageFileXferGet (pOrigin, pDest, pData);
else
twRC = TWRC_FAILURE;
break;
case DAT_IMAGEINFO:
if (MSG == MSG_GET)
twRC = TWAIN_ImageInfoGet (pOrigin, pDest, pData);
else
twRC = TWRC_FAILURE;
break;
case DAT_IMAGELAYOUT:
switch (MSG)
{
case MSG_GET:
twRC = TWAIN_ImageLayoutGet (pOrigin, pDest, pData);
break;
case MSG_GETDEFAULT:
twRC = TWAIN_ImageLayoutGetDefault (pOrigin, pDest, pData);
break;
case MSG_RESET:
twRC = TWAIN_ImageLayoutReset (pOrigin, pDest, pData);
break;
case MSG_SET:
twRC = TWAIN_ImageLayoutSet (pOrigin, pDest, pData);
break;
default:
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADPROTOCOL;
WARN("unrecognized operation triplet\n");
break;
}
break;
case DAT_IMAGEMEMXFER:
if (MSG == MSG_GET)
twRC = TWAIN_ImageMemXferGet (pOrigin, pDest, pData);
else
twRC = TWRC_FAILURE;
break;
case DAT_IMAGENATIVEXFER:
if (MSG == MSG_GET)
twRC = TWAIN_ImageNativeXferGet (pOrigin, pDest, pData);
else
twRC = TWRC_FAILURE;
break;
case DAT_JPEGCOMPRESSION:
switch (MSG)
{
case MSG_GET:
twRC = TWAIN_JPEGCompressionGet (pOrigin, pDest, pData);
break;
case MSG_GETDEFAULT:
twRC = TWAIN_JPEGCompressionGetDefault
(pOrigin, pDest, pData);
break;
case MSG_RESET:
twRC = TWAIN_JPEGCompressionReset (pOrigin, pDest, pData);
break;
case MSG_SET:
twRC = TWAIN_JPEGCompressionSet (pOrigin, pDest, pData);
break;
default:
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADPROTOCOL;
WARN("unrecognized operation triplet\n");
break;
}
break;
case DAT_PALETTE8:
switch (MSG)
{
case MSG_GET:
twRC = TWAIN_Palette8Get (pOrigin, pDest, pData);
break;
case MSG_GETDEFAULT:
twRC = TWAIN_Palette8GetDefault (pOrigin, pDest, pData);
break;
case MSG_RESET:
twRC = TWAIN_Palette8Reset (pOrigin, pDest, pData);
break;
case MSG_SET:
twRC = TWAIN_Palette8Set (pOrigin, pDest, pData);
break;
default:
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADPROTOCOL;
WARN("unrecognized operation triplet\n");
}
break;
case DAT_RGBRESPONSE:
switch (MSG)
{
case MSG_RESET:
twRC = TWAIN_RGBResponseReset (pOrigin, pDest, pData);
break;
case MSG_SET:
twRC = TWAIN_RGBResponseSet (pOrigin, pDest, pData);
break;
default:
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADPROTOCOL;
WARN("unrecognized operation triplet\n");
break;
}
break;
default:
twRC = TWRC_FAILURE;
DSM_twCC = TWCC_BADPROTOCOL;
WARN("unrecognized operation triplet\n");
}
return twRC;
}
TW_UINT16 TWAIN_AudioGroupHandler (
pTW_IDENTITY pOrigin,
pTW_IDENTITY pDest,
TW_UINT16 DAT,
TW_UINT16 MSG,
TW_MEMREF pData)
{
TW_UINT16 twRC = TWRC_FAILURE;
switch (DAT)
{
case DAT_AUDIOFILEXFER:
if (MSG == MSG_GET)
twRC = TWAIN_AudioFileXferGet (pOrigin, pDest, pData);
break;
case DAT_AUDIOINFO:
if (MSG == MSG_GET)
twRC = TWAIN_AudioInfoGet (pOrigin, pDest, pData);
break;
case DAT_AUDIONATIVEXFER:
if (MSG == MSG_GET)
twRC = TWAIN_AudioNativeXferGet (pOrigin, pDest, pData);
break;
default:
DSM_twCC = TWCC_BADPROTOCOL;
twRC = TWRC_FAILURE;
break;
}
return twRC;
}
/* Main entry point for the TWAIN library */
TW_UINT16 WINAPI
DSM_Entry (pTW_IDENTITY pOrigin,
pTW_IDENTITY pDest,
TW_UINT32 DG,
TW_UINT16 DAT,
TW_UINT16 MSG,
TW_MEMREF pData)
{
TW_UINT16 twRC = TWRC_SUCCESS; /* Return Code */
TRACE("(DG=%ld DAT=%d MSG=%d)\n", DG, DAT, MSG);
switch (DG)
{
case DG_CONTROL:
twRC = TWAIN_ControlGroupHandler (pOrigin,pDest,DAT,MSG,pData);
break;
case DG_IMAGE:
twRC = TWAIN_ImageGroupHandler (pOrigin,pDest,DAT,MSG,pData);
break;
case DG_AUDIO:
twRC = TWAIN_AudioGroupHandler (pOrigin,pDest,DAT,MSG,pData);
break;
default:
DSM_twCC = TWCC_BADPROTOCOL;
twRC = TWRC_FAILURE;
}
return twRC;
}
/* A helper function that looks up a destination identity in the active
source list */
activeDS *TWAIN_LookupSource (pTW_IDENTITY pDest)
{
activeDS *pSource;
for (pSource = activeSources; pSource; pSource = pSource->next)
if (pSource->identity.Id == pDest->Id)
break;
return pSource;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -