2011-08-31 91 views
1

我想通過TWAIN界面獲取掃描儀支持的文件格式。有一個example如何獲得支持格式:如何檢查掃描儀支持的圖像格式?

GetCapability(ICAP_IMAGEFILEFORMAT, unTest); 
CString strType; 
strType.Format("Type Supported %d\n", unTest); 

但我想有什麼錯在這裏,因爲ICAP_IMAGEFILEFORMAT成員不是一個位掩碼:

#define TWFF_TIFF  0 /* Tagged Image File Format  */ 
#define TWFF_PICT  1 /* Macintosh PICT    */ 
#define TWFF_BMP   2 /* Windows Bitmap    */ 
#define TWFF_XBM   3 
#define TWFF_JFIF  4 /* JPEG File Interchange Format */ 
#define TWFF_FPX   5 /* Flash Pix     */ 
... 

所以,如果掃描儀支持TIFF,PICT,BMP & JFIF在一次通話中不可能返回這樣的信息。

如何獲取掃描儀支持的格式列表?

回答

1

我相信你必須查詢DS(例如,試着設置你想要的值),看看你想要的格式是否被支持,然後根據結果你可以建立列表或支持的格式。我認爲這是作爲msgget容器的方式,

TW_ONEVALUE - 當前值和默認值爲 一致的單個值。這種類型的 能力的可用值範圍就是這個單一值。例如,指示存在文檔 饋線的 能力可以是這種類型。

,並從規範的ICAP_IMAGEFILEFORMAT部分的描述似乎表明,你只能夠設置一個值,或取回單個值:

應用

使用此ICAP來確定哪些格式可用於文件傳輸,並設置其他功能協商的上下文,例如ICAP_COMPRESSION。 請務必使用DG_CONTROL/DAT_SETUPFILEXFER/MSG_SET操作來指定要用於特定採集的 格式。

來源

如果不支持,返回TWRC_FAILURE/TWCC_CAPUNSUPPORTED。 如果操作不受支持,則返回TWRC_FAILURE,TWCC_CAPBADOPERATION。 (請參閱 DG_CONTROL/DAT_CAPABILITY/MSG_QUERYSUPPORT)

無論如何,我可能是錯誤的解釋,但這就是我所看到的。

1

我認爲在一次調用中獲得所有支持的文件格式是可行的,因爲「MSG_GET容器」和「MSG_SET容器」都支持TW_ENUMERATION。

+0

是的,你說得對。爲了返回枚舉值,我不得不深入GetCapability實現。 –