DXLab applications interoperate by sending each other messages, and by monitoring broadcasts. Commander, for example, will accept a message directing it to QSY the primary transceiver to a specified frequency; Commander also broadcasts the primary transceiver's current frequency, allowing applications like DXKeeper and WinWarbler to track frequency changes in real time. Any application can direct a DXLab application to perform operations by sending it appropriate messages; any application can also monitor a DXLab application's broadcasts. The primary mechanism used to implement both forms of interoperation -- message passing and broadcasting -- is Microsoft's Dynamic Data Exchange (DDE). DXLab applications are also beginning to accept command-bearing messages via the TCP/IP protocol.
Every DXLab application except the Launcher accepts messages; several DXLab applications also broadcast important items of state, e.g. the primary transceiver's current frequency, mode, selected VFO, S-meter, split, and model. The use of these messages and broadcasts is documented and illustrated in a pedagogical application called DXLabTest, which is provided in both source code (Visual Basic version 6) and executable form. DXLabTest's user interface consists of seven tabs, each of which illustrates the interoperational capabilities of a particular DXLab application. These capabilities can be explored by running DXLabTest's executable; they can be understood by reviewing DXLabTest's source code, from which Developers are free to extract code for use in their own applications. Similarly, an application called Sample illustrates control of Commander using Microsoft's C# language.
This open approach has encouraged the development of more than twenty applications that interoperate with DXLab applications. Some of these applications extend or complement DXLab; others provide access to alternative implementations of functionality provided by DXLab. In all cases, the DXLab user community gains access to more capability without sacrificing interoperability.
The use of DDE to interoperate with DXLab applications has been accomplished in applications written in Microsoft's Visual Basic, Microsoft's .net languages, and Borland/Codegear's C++ and Delphi languages.
DXLabTest - zip archive containing both source code and an executable illustrating control of seven DXLab applications via DDE and TCP/IP messages using Microsoft Visual Basic version 6
CSharp.NET Sample -- zip archive containing source code and an executable illustrating control of Commander via DDE messages using Microsoft C#.NET (tnx to Rich W3ZJ)
VB.NET Sample -- zip archive containing source code and an executable illustrating control of Commander via DDE messages using Microsoft VB.NET (tnx to Rich W3ZJ)