views:

3261

answers:

3

Hello,

I'm trying to set up a C# application which uses TWAIN example from http://www.codeproject.com/KB/dotnet/twaindotnet.aspx

This works fine except that I need to cast Form to IMessageFilter and call

IMessageFilter.PreFilterMessage()

to catch TWAIN callbacks. Also I need to start this filtering by calling

Application.AddMessageFilter();

Is there a way to do same thing in WPF Window? (To add message filter and catch TWAIN callbacks).

Another totally high level question: Does anybody know about alternative C# TWAIN libraries\wrappers?

Thank you.

A: 

I thought TWAIN is considered obsolete. Maybe take a look at WIA, that does this job since WinXP. There is also a sample at codeproject. About the WPF related question, no idea, I only used it in windows forms apps.

driAn
driAn, TWAIN is *older* but not obsolete. It has vast devices support.Also, my scanner does not (oddly) support WIA.
Valentin Vasiliev
Well, microsoft considers it being obsolete, they suggest using WIA instead.
driAn
Hmm... There's no causal relation between Microsoft opinions and consensus reality, in either direction. I work with TWAIN, and at least for document scanning, WIA is obsolete and has been since it was introduced. They introduced it during a brief phase when they were excited about clobbering Apple. Then the Burning Eye turned to other things, and it has languished ever since. I recommend it for digital cameras though.
Spike0xff
+2  A: 

You could try it with the ComponentDispatcher.ThreadFilterMessage event. As far as I understand it serves the same purpose in WPF as Application.AddMessageFilter() in WinForms.

csgero
+2  A: 

I've just wrapped up the code from Thomas Scheidegger's article (CodeProject: .NET TWAIN image scanning) into a Google code project: http://code.google.com/p/twaindotnet/

I've cleaned up the API a bit and added WPF support, so check it out. :)

It has a simple WPF application that shows how the message filtering works with WPF.

Luke Quinane
Excellent job, thanks
Valentin Vasiliev