トップ «前の日記(2006-04-24) 最新 次の日記(2006-04-26)» 編集

かにの泡ぶく


2006-04-25 縦横無尽なイベントハンドリング。

_ ややこしいTWAIN(その2)。

最近また、TWAINを扱うコードを書いている。

前回は、Native転送だけでよかったので、まだなんとかなっていたが今回は、16bit画像や48bit画像を取り込まねばならず、そうなると、最低でもMemory転送が必要になる。

たんにMemory転送をサポートするだけであれば、そう大変では無いのであるが問題は、TWAINをコールし、先方(データソース)に処理を渡すとき、どっちの転送方式になるのかアプリ側(クライアント側)では予想できないという点。

例えばGUI出すモードでスキャナを駆動することを想定しよう。

GUI上でユーザーが例えば24bitRGBでスキャン指定すればそのときはNative転送でOKだが、48bitRGBでスキャン指定されたらMemory転送にしないといけない。GUI閉じられて実際にスキャン開始されるまで、アプリ側ではどっちになるのかわかんないのだ。

処理をディスパッチするとロジックが綺麗じゃなくなるので、全部Memory転送に統一しちまうということも検討してみたが、TWAINの規格として、Native転送は最低限度サポートせよということだし、万一、Native転送しかサポートしていない機器があったら困るしで、やっぱNative転送は外せない。

Native転送とMemory転送では、データを受けるための仕組みが違うため、アプリ側ではそれぞれに応じて処理の切換が必要なのだ。内部構造的には、TWAINというのはアプリのいちIFにすぎなくしたいので、できれば独立性を高めて実装したいのだけど、アプリのメッセージループにまで食い込んでくるTWAINのイベントハンドリングは、どんなに綺麗に実装しようとしてもアプリ側の実装が汚くなってしまう。

それがさらに、データ転送直前でのモード切替を余儀なくされるとなると、アプリ側の構造はもう、TWAINにかなり依存した設計にせざるを得なくなってしまう。

う〜〜〜〜〜〜〜ん、なんとかならんものか、この入り組みかた。


もっと読みたい奇特なかたは、↓の読みたい月をクリックしてね。
2000|04|
2005|01|02|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|03|04|12|
2015|09|12|
2016|04|05|12|
2017|12|
2018|09|12|
2019|02|03|10|12|
2020|04|12|
2021|12|
2022|12|
2023|03|12|
2006年
4月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30


最新ツッコミ

  1. 青木@管理人 (10-09)
  2. こいち (10-09)
  3. 万年初心者 (04-01)
  4. 青木@管理人 (03-31)
  5. 万年初心者 (03-31)



  • 12月31日
    永劫回帰?!
  • 03月14日
    ランチに超高級カップ麺を食す。
  • 12月31日
    無為自然。
  • 12月31日
    今年もあと少し・・・
  • 12月31日
    大晦日。
  • 04月29日
    PCR検査陽性者数っていつの陽性者数?
    • 1. 日々の陽性者数はほぼほぼ意味無い。
  • 04月23日
    コロナ禍に思うこと。
    • 1. よんどころない話です。軽く読み飛ばしてください。
  • 04月22日
    買うとおカネが貰える?!
    • 1. 原油の価格がマイナスってナニソレ?!
  • 04月20日
    コロナ禍に思うこと。
    • 1. せめてもの報い。
  • 12月31日
    生きるということ。