Version History
Download latest version
here
Version 3.36 (9 October 2012)
	
		- Change: Implemented Cape.Tpw object generation template.
Version 3.35 (19 September 2012)
	
		- Fix: Template was not being suppressed correctly when "Disable Self 
		Service" options was on.
Version 3.34 (20 July 2011)
	- New property: TerminalServiceUsesGlobalMutex. Services running in a 
	terminal service environment can either use a local mutex, or a global mutex, 
	depending on whether the service must be unique to the machine or the 
	terminal service instance. There's an option on the global template of your 
	application that you can use to set this property.
Version 3.33 (7 May 2010)
	- Added better stop-service support for apps that don't 
	have a single procedure on the main thread.
Version 3.32 (29 April 2010)
	- Template Fix for Clarion 7 (Sheet without tab removed).
Version 3.31 (7 January 2010)
	- Service state set to SERVICE_START_PENDING when 
	object is constructed to avoid possibly returning 0 if a GetState is done 
	before the program has finished starting up.
Version 3.30 (5 January 2010)
	- Executable property primed with double-quotes (for 
	long path support).
- New ErrorControl property - property defaults to SS_SERVICE_ERROR_NORMAL 
	(but can be changed to an alternative value).
Version 3.29 (25 August 2009)
	- Changed return type of GetState from SS_LONGX to 
	Long.
- Added test for gMyServicePointer being null in _ServiceHandler 
	method.
Version 3.27 Gold (10 November 2008)
	- Clarion 7 compatible install.
- Template change
Version 3.26 Gold (28 October 2008)
	- Better support for Legacy apps.
Version 3.25 Gold (30 September 2008)
	- Fix template generation bug if last procedure in app is a Source procedure.
Version 3.24 Gold (25 September 2008)
	- Support for Multi-Proj corrected.
Version 3.23 Gold (24 September 2008)
	- fixes template problem %dMethodsSSV has no instance
- General object handling template update
Version 3.21 Gold (16 September 2008)
	- Fixed problem with methods getting lost.
- Documentation updates.  
- NOTE: When opening 
	an existing app, which has an older version of SelfService in it, you may 
	encounter some errors. Press ESC to close the error window, and then save 
	the app. These should only appear the first time the app is opened after the update.
Version 3.20 Gold (22 July 2008)
	- Documentation overhauled.
- Examples overhauled.
- Management example for Vista included 
- Template updated to allow for the Management Control 
	template to work in an app other than the actual service app. (Thanks to Casey Rippon of
    Madrigal Soft Tools for suggesting this approach).
Version 3.19 Gold (19 February 2008)
	- Updated FAQ question D2 to explain how permanent 
	command line parameters can be set.
- Tweaked template to avoid occasional "Procedure does not belong to 
	module" error.
Version 3.18 Gold (21 September 2007)
  - Includes an example for Vista compliant service, as well as documenting 
	how to implement a vista compliant Client/Server application pair (one to 
	contain the user interface and the other to contain the service).
Version 3.17 Gold (19 September 2007)
  - Template fix - fix for legacy class generation regression introduced in 
	3.16 (includes SelfService.tpw 1.55)
Version 3.16 Gold (31 August 2007)
  - Template - fix for legacy class generation (includes SelfService.tpw 1.54)
- Template - check that Command Line pars (template prompt) are not blank, 
	before trying to use them.
Version 3.15 Gold (25 October 2006)
  - Fix - tweak to allow variable ServiceName and description. These should be
	set in the 'SelfService - Initialize variables' embed point (if a variable
	is used).
Version 3.14 Gold (24 July 2006)
  - Fix - tweak to template (another fix for the method headers not being
    generated (as in 3.13)). 
Version 3.13 Gold (12 July 2006)
  - Fix - in some cases the method headers were not being generated (caused by
    Read classes every generate being checked - this is an obsolete function
    that is no longer required). 
- Included the new SelfService.tpw (1.53) - contains a fix for case
    sensitivity in derived methods from a base class. 
Version 3.12 Gold (7 June 2006)
  - Re-labeled the Global Extension template. 
Version 3.11 Gold (5 June 2006)
  - SelfService.tpw (version 1.51 - was 1.49) - fix for interference with other templates (using the Object01.tpw template) 
- Template fix: %SSClassName defined correctly (was coming up with error when viewing embeds). 
Version 3.10 Gold (18 May 2006)
  - Template: Added new Control Template - "Service Buttons Controls" -
  This adds an "Install and Start Service" button to your window. 
- Template: Updated Control Template - "Service Buttons Controls" -
  so that the Close button works with WinEvent.
- Documentation - added the Control Templates
  section to this documentation.
Version 3.09 Gold (10 May 2006)
  - Template: Changed %ClassName to %SSClassName - #prepare was getting confused with
    multiple variable definitions of the same name (across different templates).
    This could result in initially getting the wrong class into the template (if
    you have xFiles or HotDates present in your application). In this case, go
    to the class tab and set the Base Class to MyService and the ClassHeader
    file to SelfService.inc.
- Requires GPFReporter 2.05 (if used in conjunction with GPFReporter).
Version 3.08 Gold (1 May 2006)
  - Fixed missing SelfService:Version equate (regression in 3.07).
Version 3.07 Gold (24 April 2006)
  - Changed 'Re-read class option' to default to 0.
- Template fix - changed control template to pick up the correct buttons
    placed by the template.
Version 3.06 Gold (13 April 2006)
  - Updated Jump Start Documentation. 
- Corrected assert regression (introduced in 3.04)
Version 3.05 Gold (12 April 2006)
  - Template Fix for Regression introduced in 3.04 (for fix with GPFReporter). 
Version 3.04 Gold (10 April 2006)
  - Template Fix - when used with GPF Reporter, sometimes the class was being
    switched to use the GPF Reporter class instead (and visa-versa). 
- Template Fix - removed Tahoma font setting from all template prompts
    (except the General tab) - means that entry prompts are legible in PCs with
    Clear-Type fonts turned off.
Version 3.03 Gold (22 March 2006)
  - Changed Thread32First and Thread32Next API calls load
  dynamically, so that it works on NT 4.0 systems.
Version 3.02 Gold (16 March 2006)
  - Tweaked Jump Start and included these changes in the Docs. This makes it
  clearer on what to do so that the Taskbar Icon is displayed as a service.
Version 3.01 Gold (1 March 2006)
  - Slight tweak to the template, so that it works with NetTalk v3.xx. (Was
  previously only working with NetTalk 4.xx).
Version 3.00 Gold (27 February 2006)
  - New methods to setting and getting the thread and process priority as well
  as window information.
- New Control Template and Template Utility for adding buttons that will
  Install & Start, Install, Remove or open the Windows Service Manager.
- New Example using Process and Threads methods.
- Added NetTalk support so that the NetTalk DLL does not close itself
  down when you Log Off. This will work best with NetTalk v4.00 and above
- New Fix in WinEvent v3.35 which ensures the Task Icon is displayed. You'll
  need a timer on your window, and use a IconHandle (long) in the Settings tab
  of the WinEvent: Add Icon to System Tray window extension. See FAQ C2
  for more details.
Version 2.05 Gold (10 May 2005)
  - New method self.InstallAndStartService()
- New method self.RestartService()
- Silent options turned on by default (except from command line). So if you
  want InstallService() and RemoveService() to be non-silent please call then
  like this: InstallService(0) and RemoveService(0)
- Added functionality to work with
  GPF Reporter v2.05 so that GPF Reporter
  can restart services.
- Updated examples accordingly.
Version 2.04 Gold (15 November 2004)
  - Fixed Example Connection Checker, that had a OS_ShellExecute clash with NetTalk.
Version 2.03 Gold (26 October 2004)
  - New Property: DependenciesQueue - new property added. You
  can specify one dependency on the template now, or multiple dependencies using 
  hand code. This is very useful if you want to load say SQL Server before your service loads.
- New Property: LoadGroupOrder. New property for building kernel services.
- Updated Example: Updates the TCP/IP Connection Checker Example
- Update Template to the new CapeSoft look and feel.
Version 2.02 Gold (13 September 2004)
  - New Example: Connection Checker - This example demonstrates
  using a Web Server in a service to manage the configuration. The example will
  check a TCP/IP connection. Which can be useful for checking (a) Network route
  reachable, (b) if a machine is running, or (c) if a TCP/IP application is
  running. This example will be show-cased at the Florida DevCon 2004 in the
  session that Jono Woodhouse will be presenting
  on Services.
Version 2.01 Gold (7 September 2004)
  - Fixed: Dictionary Class tweak so that your Service (which
  uses a Dictionary) doesn't GPF when you run it with the /is or /rs option or
  after the "cannot load as another instance is already running" warning.
Version 2.00 Gold (3 September 2004)
  - InstallService: Now will update the service details if it was
  already installed. (Previously it produced an error).
- Minor Changes: To the log method and also DWORD aligned the
  properties and method variables.
- Fixed: Dictionary Class changes in Clarion 6.1 were causing
  a GPF (and Assert error on line 227 of ABFile.clw if you had debugging on) when you had a service application with a dictionary. This has now been
  fixed. 
 (Incidentally, if you are still using Clarion 6.0 you will need to turn off
  the "Use Dictionary.Construct/Destruct Fix" checkbox in the template).
- Legacy: Fixed the templates so they work with Legacy apps again
Version 1.12 Beta (23 July 2004)
  - Template: Minor tweak for use with Multi-Prj
- Docs: Updated to use '~icon.ico' option with WinEvent
- Template: Fix to stop the following Syntax errors:
 Prototype is :_RUNAPPLICATION(MYSERVICE)
 Procedure doesn't belong to module: GSELFSERVICE._RUNAPPLICATION
- Template: Changed from using Cape01.tpw to using SelfService.tpw
  (so now there are two template files SelfService.tpl and SelfService.tpw).
  Synchronized to the same code in Object Writer's Object User v2.09
- Template: Changed the template variable for the Base Class Name in
  the Advanced Tab in SelfService. This means that the Base Class will revert
  back to MyService when you upgrade to v1.12.. This will only affect
  really advanced users, and you will understand what to do, if that's you.
Version 1.11 Beta (23 January 2004)
  - Template: Added a bit of code the the global application to check
  if you are using a compatible version of WinEvent.
- Object: New advanced method .HandleStopShutdown()
- New Example: New example - Machine status
  reporter, that reports when a machine boots and shuts down.
- Object Fix: Services now work in Windows 2000, previous version
  introduced some bugs that caused services not to load correctly in Windows 2000
- Object Fix: Fixed the .LoadWindowsServiceManager() method for Windows 2000.
- Template: Some tweaks and improvements.
Version 1.10 Beta (20 January 2004)
  - Template: Added Only allow One
  Instance to run at a time
  option.
- Template: Now includes a Service Description, which is displayed in
  the Windows 2000, XP, 2003 and Vista Service Manager.
- Example: Added the NetTalk DIP Server as an example.
- Object: Added code to prevent the 15 second delay from happening,
  when you start your application in non-service mode (i.e. From a shortcut).
  See FAQ C1
- Documentation: The documentation has been improved, and now
  includes an Object Property and an
  Object Method section
- Object: Added the .MapDrive() method for creating maps like Y: to
  \\pengun\y-drive (see the Object Methods).
Version 1.03 Beta (18 December 2003)
  - Template: Added Work with WinEvent
  option.
- WinEvent v3.04 fixes the problem with
  not being able to see the tasktray icon when you login.
- Template: Improvements to the
  template (thanks Geoff) regarding the way the
  object is generated into your application.
- Documents: Updated
- Object: Using HandlerEx for Windows XP/Vista
- Object: LoadWindowsServiceManager -
  now works for Windows NT as well.
Version 1.02 Beta (21 November 2003)
  - Template: Note:
  Please remove the single quotes around your
  Service Name and Service Description in your
  Global Extension to avoid a compile error.
- Template: Added an extra option to
  the template so that the path is set to the EXE
  folder when the application is started as a Service. 
- Template: Added an option to the
  template so that you can change the command line
  switches e.g. instead of using /is you could use -install 
  
    |   Important Notice: If you upgrading from
from v1.01 or v1.00 please read ensure you read
 the Version History for v1.02
otherwise you will get compile errors.
 
 | 
Version 1.01 Beta (18 November 2003)