2015-06-03 55 views
0

我在使用HP Scanjet 200 TWAIN Protocol 1.9的應用程序中使用twain 2.3(TWAINDSM.DLL)。Twain總是返回TWRC_NOTDSEVENT

我TWAIIN電話是:

OpenDSM: DG_CONTROL, DAT_PARENT, MSG_OPENDSM 

OpenDS: DG_CONTROL, DAT_IDENTITY, MSG_OPENDS 

EnableDS: DG_CONTROL, DAT_USERINTERFACE, MSG_ENABLEDS 

ProcessDeviceEvent: DG_CONTROL, DAT_EVENT, MSG_PROCESSEVENT 

,並作爲最後調用的結果我得到百達代替TWRC_NOTDSEVENTTWRC_DSEVENT

可以請某人幫忙嗎?

回答

0

一旦使用DG_CONTROL/DAT_EVENT/MSG_PROCESSEVENT,應用程序消息循環中的所有消息都必須發送到數據源進行處理。接收TWRC_NOTDSEVENT表示轉發的消息不適用於源,因此應用程序應該按正常方式處理它。

繼續轉發所有郵件到源,直到您收到MSG_XFERREADY這意味着有數據要傳輸。一旦傳輸完成並且您發送了MSG_DISABLEDS即可停止將消息轉發到源。

0

吐溫是一個標準,當許多公司實施該標準時,並不是所有人都以相同的方式進行。在支持Twain的過程中,我們將學習並調整代碼以支持所有不同的實現。

我以前遇到過這種情況,這是我的解決辦法:
而不是放置(RC == TWRC_DSEVENT)在代碼開頭(之後會跳過以下MSG_XFERREADY處理),你可以移動到比較結束後, MSG_XFERREADY處理,因此始終檢查並處理MSG_XFERREADY。
(rc == TWRC_DSEVENT)僅用於確定是否應該轉發窗口消息。