If there is a task to provide interaction between communications application and your own program, there is no common solution to accomplish it. It is considered that communications applications are intended to work only with hardware serial devices connected to physical serial ports. Virtual Serial Port Activex is an ActiveX control which makes it possible to create virtual serial ports directly from your program and fully control them. At the same time virtual ports look like real hardware serial ports for all Windows applications. And any communications application can work with them as if they were physical ports. On the other hand, developer API provided by Virtual Serial Port Control allows your program to access data written to virtual serial port by communications application and to respond with your own data. The data will be read by communications application from virtual serial port as if they were read from a physical port. Event driven architecture is a snap to use. You don't have to check ports periodically in order to find if their state is changed or new data available for reading from a port. Simply define a function in your program that will be triggered automatically by the appropriate event and process the data.