VERSION 2.0.0.0 - 2/23/2005 Incorporated the changes from LAFcommon 8.0.0.0. Changed the license from the LAF GPL to the GNU GPL. VERSION 1.2.1.0 - 7/31/2001 Added a copyright block to the top of all the source files and packaged LAFitup for distribution as free software! Added the "Win32 Release MinDependency" build configuration. VERSION 1.2.0.0 - 5/10/2001 Fixed spawn_process() to always correctly close any file handles it opened. Changed VersionInfo() in CConfiguration, CProcess, CProcesses, CProfile, CService and CState to accept VARIANT* parameters instead of short* parameters. ASP correctly sees short* parameters as "ByRef Integer", but it turns out to be impossible to pass a parameter in a way that does not generate a type mismatch error. Fixed _tWinMain() so it would not try to open the SCM just before exiting. This is not possible during system shutdown and was causing a message box to appear before the system rebooted. Added get_LastResult() to CConfiguration, CProcesses, CProcess, CProfile, CService and CState to provide a way for the COM callers to get the result of an operation with a property. Created an ASP-based admin tool to configure LAFitup, check its status and change its state. VERSION 1.1.0.0 - 4/19/2001 Fixed _tWinMain() to set target_state to an initial value so it would not use its value to act on the service after StartServiceCtrlDispatcher() returns when the process is started as a service. This was making it difficult to stop the service through the SCM. Fixed spawn_process() to correctly append to a file opened for stderr output. Removed throw_errors from the global namespace and added it as a member variable in each class that exposes a COM interface. The value of throw_errors now inherits across objects whenever an object is returned by a member function of another. When an interface is instantiated directly, throw_errors is set to VARIANT_FALSE. This was done because surrounding throw_errors with a mutex was far too costly. Added fault tolerance as a profile-level setting. spawn_process() will now ignore bad stdin, stdout and stderr files if the fault tolerance includes LAFITUP_fault_tolerance_ignore_bad_files. It will also ignore bad working directories if the fault tolerance includes LAFITUP_fault_tolerance_ignore_bad_working_directory. Fixed a few miscellaneous race conditions surrounding the ordering of signals from the SCM: pausing the service before the 10 second delay expired produced an unstoppable service, stopping the service from a paused state was not possible and stopping the service before the 10 second delay expired was not possible. Added LAFITUP_error_not_implemented to EnumReturnCodes, even though it is not needed yet. Finished the documentation and fixed a few errors in the previous version; the COM interface is now completely documented. VERSION 1.0.0.0 - 4/11/2001 Initial version.