Good day everyone!
My problem is that my application doesn’t detect Kyocera scanner connected via network. But Twacker detects this scanner. My realisation uses it’s own selection dialog, that’s why I’m mageking DG_CONTROL / DAT_IDENTITY / MSG_GETFIRST + DG_CONTROL / DAT_IDENTITY / MSG_GETNEXT. But if Kyocera is the only connected scanner, my program gets TWCC_NODS after MSG_GETFIRST.
Am I right about that Twacker probably uses MSG_USERSELECT. If so, how built-in selection dialog detects scanners? Why I don’t get this source via MSG_GETFIRST + MSG_GETNEXT?
I didn’t find any specification or documentation for TWACKER that’s why I’m asking here.
P.S. this thread doesn’t look similar to my trouble because this scanner is not via-twain source.
It sounds like you’ve run into a badly behaving TWAIN Driver. Calls to DG_CONTROL / DAT_PARENT / MSG_GETFIRST and DG_CONTROL / DAT_PARENT / MSG_GETNEXT should only return a status of TWRC_SUCESS or TWRC_ENDOFLIST.
I recommend that you ignore the status and continue enumerating until you find your scanner, or until you reach TWRC_ENDOFLIST.
There is also the ugly possibility that your scanner is reporting TWRC_FAILURE / TWCC_NODS, but still returning valid TW_IDENTITY data, so you might need to check for that too.