イメージの取得をできるようにする

概要
メニューの”イメージの取得”から、スキャナでスキャンできるようにします。
ここでシマッタ!!って感じですが、SDIで作ったのでスキャンしても一つしかイメージを表示できません。
ま、動くってことを優先するので、一枚しかスキャンできない(新しくスキャンしたら前のは忘れてしまう)ってことにしておきます。
とりあえず、ADFもサポートしません。一枚読んだら読み取り終了ということで・・・。
また、転送方法はとりあえず、ネイティブ転送のみです。メモリ転送、ファイル転送はそのうちにということで・・・。
そのうちに、何とかしようとは思います。
ソース
まず、ドライバをオープンします。
State 3 to 4
BOOL CMainFrame::OpenDS()
{
TW_UINT16 twRC;
if(theApp.m_DSID.Id != 0){ //Select Source された
twRC = (*theApp.m_pDSM_ENTRY)(&theApp.m_AppID,NULL,DG_CONTROL,DAT_IDENTITY,MSG_OPENDS,(TW_MEMREF)&theApp.m_DSID);
}
else{ //Select Source されてない
theApp.m_DSID.Id = 0;
lstrcpy(theApp.m_DSID.ProductName,'\0');
twRC = (*theApp.m_pDSM_ENTRY)(&theApp.m_AppID,NULL,DG_CONTROL,DAT_IDENTITY,MSG_OPENDS,(TW_MEMREF)&theApp.m_DSID);
}
return TRUE;
}
ソースが選択されていたら、選択されたソースでオープンします。
ソースの選択が行われていなかったら、デフォルトのソースをオープンします。
次に、State 4でCapabilityのNegociationを行います。
が、はしょります。(よく分からないので・・・。)
ドライバのUIを表示させるし、とりあえずネイティブ転送なので特にやることがないような・・・???
ドライバがネイティブ転送をサポートしているか調べて、サポートしていない場合にエラー処理をするくらいでしょうか???
とりあえず省略ということで、ソースをEnableします。
State 4 to 5
BOOL CMainFrame::EnableDS()
{
TW_USERINTERFACE ui;
ui.ShowUI = TRUE;
ui.ModalUI = TRUE;
ui.hParent = theApp.m_pMainWnd->m_hWnd;
TW_UINT16 twRC;
twRC = (*theApp.m_pDSM_ENTRY)(&theApp.m_AppID,&theApp.m_DSID,DG_CONTROL,DAT_USERINTERFACE,MSG_ENABLEDS,(TW_MEMREF)&ui);
m_bEnableDS = TRUE;
return TRUE;
}
やっと、ドライバのUIが表示されるようになります。
これらの関数は、”デバイスの選択”メニューのメッセージハンドらから呼べば良い感じでしょう。
でも、まだスキャンできません。ドライバのUIが表示されるだけで、ドライバUIのスキャンボタンを押しても何も起きません。

Last Update:2000/08/20