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

概要

メニューの”イメージの取得”から、スキャナでスキャンできるようにします。

ここでシマッタ!!って感じですが、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