twain / twain-cs

A C# interface for TWAIN
165 stars 66 forks source link

Twain cs sample MacOS [sf#16] #20

Closed kolomiets closed 4 years ago

kolomiets commented 7 years ago

Reported by arykst on 2015-10-19 08:36 UTC Hi there!

I am trying to make twain cs samples work on mac os 10.8.5, using mono and Epson DS-560. I managed to make it work on windows, but merely the same steps don't work out for Mac. twain lifecycle seems to be fine . I am going open DSM -> open DS -> Enable DS. Enable DS returns success status and literally nothing happens. By this point on win machine i get scanner feeder work, and document gets scanned, but on mac it doesn't. And another thing is if i send enableds with show ui flag being true, i am seeing native epson scan window and if click scan button on this window, feeder is starting. I am really stuck at this point, i was trying to follow call stack and stoped at native call to twain.framework still returning success status. Am i doing something wrong?

kolomiets commented 7 years ago

Commented by chenar-kostya on 2015-10-19 11:50 UTC I faced this issue too. And I have the c++ code which 100% worked. Do the same steps on mac in c#, and no success.

kolomiets commented 7 years ago

Commented by mlmcl on 2015-10-20 00:09 UTC The TWAIN DSM on the Mac, which Apple installs, appears to have a bug when it comes to support for the DAT_CALLBACK/DAT_CALLBACK2 operations. Basically, the DSM refuses to deliver them to the application. I've gotten around this for my own drivers with a DSM patch, but I'm in a situation right now where I need a more robust solution, myself. I'll update here when I figure something out.

kolomiets commented 7 years ago

Commented by arykst on 2015-10-20 13:28 UTC Did some investigation today in comparing cpp sample we have with twaincstst. All I do is precisely the same thing i do in cpp. The only difference is that callback in c# is not being called. Registercall is doing the same thing, returning success. But how does it manage to invoke callbacks from cpp code?

kolomiets commented 7 years ago

Commented by chenar-kostya on 2015-10-20 18:07 UTC Hello all. In 1.9 specification on page 28 there is instruction how to handle events from dsm. Why does mac version uses Register_Callback instead of passing the null events and filtering the results?

mlmcl62 commented 4 years ago

Mac never used a message pump the same way as windows, originally it relied on polling, the callback system was added to support OS X...