How does overlapped I/O in Greenleaf CommLib and Comm++ work?
When you build a Windows application using either of these products, the normal Windows serial port driver is employed as is the Windows Communications API to a large extent. Our classes and functions wrap these and add value — additional functionality and help in understanding and using what is otherwise a problematic interface to work with (Windows Comm API / driver). We use the term “overlapped” to mean that different pieces of serial communications will (because of the Windows architecture) run in separate threads – in the same application or process but different threads. For instance, the Win32 communications software uses separate threads for transmit and receive – so that they appear to be “overlapped.” A better term that has largely replaced “overlapped” is “multithreaded.” Greenleaf code does not fire these threads, Windows does. But it is this plus the events that Windows fires – via the WaitForCommEvent mechanism in Win16 for example – that give the application the “overla