My current project involves implementing imaging functionality inside a .dll. I have used TWAIN for the imaging and gotten pretty used to it. However, the project also requires that functions be done asynchronously (ie. done in the background). TWAIN requires a message hook but since this is a dll module, the program 'steals' the app's message queue blocking all messages until the scan is finished.
Are there any other possible approaches here? (Others suggested that I create a separate .exe that is launched by the .dll, but I think that is way too complicated, for me, at least).