SerialPort v1.0
This tool is specifically designed for the Window 95 lineage to allow you to redirect stdout to a serial port. (This feature is built into the Windows NT shell.) It was written with serial-port-to-network adapters in mind.

ZIP [75 K]  Manual   |  Source [498 K]  GitHub Repo  Debug [143 K] 
Farm Monitor v0.9
This is a simple GUI based monitoring and admin tool for Windows servers. It allows you to configure a set of hosts and monitor them using a number of custom WMI based queries.

MSI: 32-bit  ZIP: 32-bit 64-bit  |  Screenshot  Manual  Changelog  |  Source: ZIP GitHub  |  Debug
vdproj2wix v1.0
This is a PowerShell script to convert a Visual Studio setup project (.vdproj) into a WiX project (.wxs). The resulting WiX file only contains the folders and files for deployment, it does not attempt to deal with any UI aspects.

Download [6 K]  Manual   |  GitHub Repo 
WMI Command v1.1
This command line tool allows you to run WMI select queries. It can run the query against multiple hosts and has a switch to format WMI dates more naturally.

Download [299 K]  Screenshot  Manual   |  Source [455 K]  GitHub Repo  Debug [384 K] 
XML Editor v0.5 [Alpha]
This is a simple editor for XML format files. It currently only contains the viewing functionality.

Download [730 K]  Screenshot   |  GitHub Repo 
Visual C++ Project Compare v1.0
This tool allows you to find inconsistencies between project settings in your Visual C++ based projects. It can compare either a specific pair of projects or many project files under a folder and can intelligently handle settings that are marked build dependent or filter out those which are deemed project specific.

Download [277 K]  Screenshot  Manual   |  Source [427 K]  GitHub Repo  Debug [504 K] 
DDE Command v1.6
This is a command line (aka console) based tool for querying text data from DDE servers. It is the counterpart to my much older GUI based tool below - DDE Query. It supports all the major DDE command types, such as XTYP_REQUEST, XTYP_ADVSTART, XTYP_POKE & XTYP_EXECUTE. It can also act as a DDE server for testing DDE clients.

Chocolatey  MSI  ZIP   |  Screenshot  Manual  Changelog   |  Source  GitHub  Debug 
DDE COM Client v1.1.2
This COM component is an Automation Server (i.e. IDispatch based) for querying DDE Servers. It was designed to allow scripting languages such as VBScript to make simple DDE queries. The component provides two basic COM classes, one for the DDE Client that allows querying of running servers and ad-hoc DDE requests for text values, and the other is for a DDE Conversation which avoids the overhead of creating conversations on-the-fly, if you need to request many values. A HelpFile is included that documents the API and provides some examples.

ZIP   |  Manual  Release Notes   |  Source  GitHub Repo  Debug 
DDE Query v1.5
This is a utility for querying DDE servers. It supports all the transaction types such as request, advise, poke and execute for both standard and custom clipboard formats. It has an ASCII and binary viewer for looking in detail at the data sent from the DDE server and you can set-up and monitor a bunch of hot-links from a file.

Download [148 K]  Screenshot   |  Source [311 K]  GitHub Repo  Debug [337 K] 
UT Cache Manager v2.5
This is a utility for Unreal Tournament, UT2003, UT2004 and all their mods, such as Tactical Ops and Frag Ops which allows you to manage the cache where files are downloaded when you play online. It can move/copy files into your main folders so that you can play the maps offline, copy files from another user's cache to save downloading over slow connections, remove failed downloads and old entries from the cache index and restore files back to the cache if a conflict occurs. It can also install map packs and import directly into the cache from another one.

Download [259 K]  Screenshot   |  Source [431 K]  GitHub Repo  Debug [405 K] 
Setup v1.2
This is the installer that I wrote and used before the MSI installer was ubiquitous. It is driven by a simple config (.ini) file that supplies the default folder name, program group, list of files to be copied, shortcuts to create etc. It also includes a GUI tool for creating the scripts but has no support for uninstalling applications.

This application is no longer being actively maintained.

Download [207 K]  Screenshot   |  Source [303 K]  GitHub Repo  Debug [306 K] 
UT Server Browser v1.0 [Alpha]
This utility for Unreal Tournament (and all its mods) allows you to find and monitor UT servers and to add/remove them from your favourites. It has a number of filtering options (mod, players, ping, partial name etc) to help you reduce the noise. It comes with configs for the most popular mods.

This is dependent on the unreal.epicgames.com master server which has been known to go offline every now and then.

This application is no longer being actively maintained.

Download [103 K]  Screenshot   |  Source [407 K]  GitHub Repo  Debug [191 K] 
Socket Tracer v1.5
This is a kind of TCP/UDP proxy that allows you to capture the traffic sent and received by a client and server. You point the client to the tool and direct the tool to forward to the server and it writes any data sent between the two to a file. I wrote it to sniff the traffic between Unreal Tournament and the HTTP, master and game servers used in on-line play.

Download [130 K]   |  Source [305 K]  GitHub Repo  Debug [268 K] 
HTTP Query Tool v1.1
This is a simple tool for formatting and executing HTTP queries against a web server. It allows you to specify and view the request and response headers, much as you can with 'telnet', but does it a little friendlier. I wrote it as a diagnostic tool to sort out issues with proxies and firewalls.

Download [58 K]  Screenshot   |  Source [292 K]  GitHub Repo  Debug [129 K] 
DDE Network Bridge v2.5
This is a client/server application that allows you to access DDE sources across a network, just like the built-in NetDDE service, but this one has some clever options and caching to reduce round-trip delays. Also, it is transparent to the DDE client, so no changes to the DDE links are required.

MSI: 32-bit  ZIP: 32-bit 64-bit  |  Manual  Changelog  |  Source: ZIP GitHub  |  Debug: 32-bit 64-bit
Network Clock Checker v1.2
This is a utility to scan a network and compare the system clock times for all computers to the one on which the utility is being run.

This utility can only be run on a Windows NT/2K/XP/Vista machine and has only been tested in a Windows NT/2K environment.

Download [150 K]  Screenshot   |  Source [327 K]  GitHub Repo  Debug [331 K] 
Task Tracker v4.0
This is a simple tool for keeping track of the hours you spend at work on various projects. You clock in and out during the day and associate a short phrase with each block of work. At any time you can run a report which shows your hours grouped by week, month or task and it sums them up based on the grouping. The report can be viewed, printed or saved to a file or the clipboard. I wrote it whilst contracting.

Download [341 K]  Screenshot  Manual   |  Source [448 K]  GitHub Repo  Debug [453 K] 
Parametrized DB Query Tool v1.5
This support tool is designed to provide an alternative way to run parametrized queries without having to resort to writing stored procedures. You write your basic query and when it is correct you replace the hard-coded values with variable names, e.g. $Name$. Next time when you run the query it will prompt you for the variables values in a dialog and substitute them in the query. It also allows you to configure logical connections and associate script paths with them to make it quicker to find and run common scripts for a database.

Download [] Screenshot   |  Source [] GitHub Repo  Debug [519 K] 
Football Club Manager v0.3 [Alpha]
This is an application for Football Club Secretaries to help them manage their sides. It helps you keep track of club members, fixtures and monetary details such as accounts and player debts. You can also use it to hold the details of other club secretaries and referees in the league.

This application is no longer being actively maintained.

Download [134 K]  Screenshot   |  Source [440 K]  GitHub Repo  Debug [228 K] 
Class Generator v2.0
This is the class generator I use when adding new classes to my projects. It supports only a limited set of parameter tags and includes templates for various generic classes, dialogs, property sheets and property pages. It is included here only for completeness.

Download [200 K]  Screenshot  Manual   |  Source [365 K]  GitHub Repo  Debug [403 K] 
MDA Debug Monitor
A debugging tool that dumps all the Trace output from the OS and from calls to OutputDebugString() onto the secondary monochrome display. It was written because there was no Win32 version of DBWIN. It accesses the MDA through a Win16 .DLL, which in turn is accessed by a Win32 thunking .DLL. This requires the Thunk compiler from the DDK.

This application is no longer being actively maintained.

Source [60 K]  GitHub Repo 
Windows C++ Library
This is the core library that all my applications rely on to provide the basic C++ classes to wrap the WIN32 API. It is my equivalent of the MFC library. The library provides a basic set of application classes for dialog and SDI based apps - wrappers for most of the common controls and GDI objects - a basic set of container classes and some I/O classes. It is not a complete class library, it grows when requirements from my applications forces it to, which isn't much these days. Also because of its heritage there is virtually no use of the STL or Boost.

This library depends on: Core 

Source [306 K]  GitHub Repo  Documentation 
Core Class Library
The Windows C++ Library has historically provided the basic framework for all my Windows applications because they are naturally platform specific. This class library takes the platform agnostic aspects out of WCL (as much as possible) so that I can write more platform independent code were possible. Initially it only contains some smart pointers and utility classes, and the common functions and macros used to aid debugging.

Source [78 K]  GitHub Repo  Documentation 
Memory Database Library
This library provides classes to create an in-memory copy of a database. The data and table schema can be provided programmatically or derived from a query result set run on an actual database. Currently ODBC is the only DB library supported with ADO on the list. The database can also be serialized into a binary file. The library supports many data types and natural database features such as indexing, primary keys, foreign keys and triggers. It was designed with performance more in mind than features because I use it mostly for caching data.

This library depends on: Core  WCL 

The only aspect of this library being actively maintained is the ODBC facade.

Source [77 K]  GitHub Repo  Documentation 
Network & Comms Library
This is a library of classes for networking, communications and IPC. It currently contains classes for using Named Pipes, DDE & Sockets.

This library depends on: Core  WCL 

Source [70 K]  GitHub Repo  Documentation 
COM Class Library
This class library contains classes for writing COM servers. At the moment it contains support for Inproc Servers only but covers both custom, IDispatch & Dual style interfaces. It also provides IErrorInfo support by default.

This library depends on: Core  WCL 

Source [32 K]  GitHub Repo  Documentation 
XML Class Library
This is a class library for reading and writing XML format files. It also provides a very simple XPath evaluator.

This library depends on: Core 

Source [43 K]  GitHub Repo  Documentation 
WMI Class Library
This class library provides a C++ facade over the COM based WMI API. In particular it is intended to provide type-safe access to the CIM classes rather than dealing with VARIANTs everywhere.

This library depends on: Core  WCL 

Source [26 K]  GitHub Repo  Documentation 
Build Scripts
These are the .cmd scripts that I use when building via the command line, or when using STLport. It also contains other scripts to help with packaging an MSI, ZIP or Chocolatey package.

Scripts [15 K] GitHub Repo