Webster Source Code Notes

Last updated June 5, 1996


I've noticed a few missing bits of information in the source code distribed by MSJ:

The directory structure has been lost. To reconstruct it:

Here's a little procedure to do it for you.

For readability in the article, I set the tabs to 3 columns in the source code. You need to either set your tabs to 3 in order to make sense of the indentation, or reformat the code back to the default tab setting of 4.

The article makes references to "Dave Cook Consulting" as the registry key, tag, and version strings. I changed these at the last moment to "MSJ" and/or "Microsoft Systems Journal". When customizing this code for your own use, these are the strings you should search for.

The article refers to "LiveScript", which has since been remonikered to "JavaScript". (Big deal, eh?)

This was all built using MSVC 4.0. It should work fine under MSVC 2.1 or 2.2, but you'll need to construct your own makefile. MSVC 2.0 did not have the Sockets classes yet, so you must have at least MSVC 2.1 to build Webster. Thanks to Jerome (Quien sabe?) for bringing this up.

Michael Kilgore found the following bug. I'd missed initializing m_nSanityTime in CMainFrame. To correct this, modify mainfrm.cpp thusly:

// create a sanity timer
m_nSanityTime = theApp.m_nSanityTime ; // <--- add this line
SetTimer ( IDT_SANITY_TIME, m_nSanityTime*1000, NULL ) ;

Thanks to Scott Cousins who found the following bug. In the module Service.cpp and the member function CClient::SendReplyHeader(), there are two instances where I had:

FormatGmt("%a, %d %b %Y %H:%M:%S %Z")
These should both be changed to:
FormatGmt("%a, %d %b %Y %H:%M:%S GMT")

I've received numerous requests for a 16 bit version of Webster. Alas, its not worth my time to do it, but it does seem possible. The biggest issue is that I've wired in property page and taskbar tray support, which are not available in the MSVC 1.52 build environment. Porting to 16 bits would involve commenting and/or modifying these sections of code to build under MSVC 1.52. The good news is that the CAsyncSocket class is available under MSVC 1.52. But again, I don't have the time or the need to do this port. Sorry...