Release History
Download latest version
here
What's new in Secwin 
6?
Getting compile errors after upgrading? Check the
Compile Errors Section.
NOTE: When you upgrade NetTalk to version 6.38 (for NTWS controlled access 
control), in your Secwin_ScreenAccess table, you must change your SessionID from 
a long to a string(30) (see FAQ 0.10 for 
details).
Version 6.16 (8 January 2013)
	- Template tweak - copy the Secwin dll to the app directory in Multi-DLL 
	applications (that aren't the EXE app).
- Template tweak - multiproj support for Clarion 7 and up. Inserts the 
	secwin dll into the cwproj and copies the secwin dll (if compiled in dll 
	mode).
Version 6.15 (21 November 2012)
	- Template fix - Allow legacy EXEs (in a multi-dll application) to set the 
	encryption code from the template.
- Template tweak - cater for CPCS reports (legacy code) in an ABC 
	application.
- In GlobalSetAccess window, don't suffix 'Group' to groups.
- ds_UserQueueEx contains workgroup in the reserved field (returned by 
	ds_UsersEx).
- Counter Limits are loaded correctly when MaxLevel and MinLevel are set 
	(and stored correctly in MSSQL).
- Optimization for updating users (internally temporarily disable the 
	callback and set CRC manually).
- ds_GetProperty returns un-encrypted login for usergroups (if the user is 
	a usergroup).
- MSSQL - returns usergroups in ds_GetUsers
Version 6.14 (27 August 2012)
	- Template fix - In the SecwinWebSetAccess window, set the filter to 
	include quotes for the ds_Scr:SessionID field.
Version 6.13 (16 August 2012)
	- DLL Change - randomize the lic file to use (for each user that opens a 
	file).
- Template fix - If the licence fails, don't proceed with access control 
	checks for menu controls
- Template tweak - added an embed point to change the displayed details in 
	the web SetAccess browse.
- Change the txds to include the correct file structure for NTWS 
	applications in the Secwin temporary tables (the SessionID field in the 
	Secwin_ScreenAccess)
Version 6.12 (1 August 2012)
	- DLL Fix - when owner reset (with second owner - i.e. driver options), 
	then reset the internal driver options variable.
- New function - 
	ds_UserInUserGroup() - checks if the user is in a usergroup (number).
- ds_UpdateUserEx fix - when deleting a user, delete all the access points 
	(was just deleting positive access points in TPS)
- TPL change - define GLOSec:DefaultUsergroup whether Secwin for is used 
	or not (support for multi-dll where web is used in one of the lower dlls), 
	export from data dll, and define as external in lower dlls.
- TPL change - if secwin is disabled locally, disable the template 
	prompts.
- TPL change - embed point in SecwinWebUserAccess extension template.
Version 6.11 (4 May 2012)
	- NTWS support Template tweak - RememberCookie used rather than remember 
	to control the cookie value .
- NTWS support Template tweak - Password and Login session values deleted 
	when loading the login form (the saved fields are correctly stored or not 
	depending on whether the remember checkbox has been selected).
- NTWS support Template tweak - Tabs are correctly assigned to Tab 0 when 
	returning to the login window.
- NTWS support Template tweak - After setting a new password, this 
	password is saved where necessary (for remember function).
- NTWS support Template fix - Appnum correctly saved after login 
	(regression from 6.10).
Version 6.10 (1 May 2012)
	- Template fix - fix for Demo Length period (was only allowing one day for 
	demo period).
- NTWS support - fix in TXA (regression in 6.08) allowing user to set 
	password from the URL link.
- NTWS support - template code to create the basic user group. (Must 
	assign the user group number to the user's usergroup). 
Version 6.09 (5 March 2012)
	- NTWS support - tweak to TXA to support login by login (not login by email). 
	If you require login by login (not email address), re-import the secwin web 
	windows.
-  Template change - if datadir selected for the file directory, and 
	data dir is not specified, assume current path (i.e. default to 'HERE').
- Secwin User Login Here template for NTWS apps - remove ds_Logout from 
	win 32 code.
- Template change - if self-create first login, then ds_Logout after login 
	creation.
- Template change - better support for login and password different on 
	first login creation.
- Template change - does not abort webserver procedure if win32 login 
	fails.
Version 6.08 (22 February 2012)
	- NTWS support - better support for login by login (not login by email). 
	ds_GetTempPassword can accept a login instead of an email address. (If Login 
	and Email are the same (as set in the template) then attempts to locate user 
	by email.
- Template fix - fix for default user to have a password that is not the 
	same as a login.
- Template change - if Data directory is selected (for datafiles) and no 
	path specified, default to 'HERE'.
- NTWS fix - don't logout (from desktop app) - not applicable. Also don't 
	return if Can't register for access control (access control will fail).
Version 6.07 (20 February 2012)
	- DLL work-around. Force firstname and lastname to login if neither set 
	(fix for failed insert user in NTWS).
Version 6.06 (17 February 2012)
	- Tweaked TXA (Nettalk web server procedures) to allow a user to be 
	created with a login that does not match the email address.
- TPL change - Embed points around the SecwinLoginScreen call.
- TPL change - force http:// onto ServerAddress for SOS GetWebActivation 
	template.
Version 6.05 (2 February 2012)
	- Fix GPF in ds_UpdateUserEx function
- Fix for SOS template problem where occassionaly the request would not be 
	received.
Version 6.04 (17 January 2012)
	- ds_ChangeUserEmailAddress - fix - ds_CannotBeBlank option when testing 
	EmailAddress by default.
- ds_LoginIsEmail option - allows a login that is not an email address 
	(for NTWS).
- ds_ChangeUserPassword - returns the errorcode of the put (was returning 
	0 in some circumstances).
- ds_UpdateUserEx - added EmailAddress as parameter (future use)
- ds_SetProperty and ds_SetUserProperty - for setting a permitted user's 
	property.
- Fix for Btrieve: Various fields shortened to accommodate the 255 char 
	limit in a unique key in Btrieve. Name attributes added to the Keys.
- SecEqu60 file changed to accommodate for where other equates are 
	specified.
- Template change - only allow encryption set in Data DLL or single exe) - 
	accommodate for Legacy apps needing to set in the EXE.
- NTWS support - Option to change Local vars prefix (for storing login, 
	password, etc cookies). This means you can make it unique for your 
	application.
- NTWS support - more embed points in the tpl code.
- Better refresh support for memory table.
Version 6.03 (21 October 2011)
	- Callback function introduced 
	(at present for failure to open Secwin files). Useful when using a different 
	file driver to upgrade from the old TPS.
- Fix - legacy not always had the SecLOG group defined in the registration 
	window.
- SQL error reported with full fileerror and error when run in debug mode.
- New procedure: ds_SetSecwinSetting - in future will handle all global 
	Secwin settings (at present just the callback function address).
- Import filename set to SecwinSecurityFile.bin by default.
- NTWS application fix - returns the DefaultAccess correctly in the Users 
	and UserGroups browses and forms.
- Included updated TXA for NTWS procedures.
Version 6.02 (22 September 2011)
	- Fix for ds_ChangeUserPassword (calling function as procedure warning) in the 
	template.
- Fix for duplicate export function in slatps.dll (for Clarion8 and 7.3 
	TPS DLL)
Version 6.01 (15 September 2011)
	- Includes missing C8 dlls, and ip server dll.
- Fix for ds_LoginUser (calling function as procedure warning) in the 
	template.
Version 6.00 (9 September 2011)
Version 4.99 (20 July 2011) (No TXA import required if 
upgrading from 4.58 or up)
	- LoadUser was not always functioning correctly (occasionally affected 
	Change password, load user, etc).
- ds_ChangeUserPassword applies case sensitive password correctly.
- IPDriver fix - was getting stuck in endless loop in some situations 
	(when adding an access record).
- Fix for changing path - was not allowing the path to be reset from code 
	to a different location.
Version 4.98 (15 April 2011) (No TXA import required if 
upgrading from 4.58 or up)
	- LoadUser was not always functioning correctly (occasionally affected 
	Change password, load user, etc).
- Template fix for Clarion 7.3 IPD applications - includes the slaipds dll 
	for the connection.
Version 4.97 (23 February 2011) (No TXA import required if 
upgrading from 4.58 or up)
	- ds_ChangeUserPassword (and ds_ChangePasswordEx()) was not always 
	functioning correctly (internal var not bound in some cases)
Version 4.96 (9 February 2011) (No TXA import required if 
upgrading from 4.58 or up)
	- ds_Cresec() called from legacy EXE in multi-dll apps.
- %noscrsec variable was out of context sometimes - checks for existance 
	before using.
- ds_ChangeUserPassword returns the errorcode of the file put (MSSQL fix 
	for changing password, was not saving the pwd change on login).
- ds_LoginUser fix - was not logging in with case-sensitivity off (when 
	case did not match).
- Fix for when multiple counters are used, ensure that the counters are 
	CRCed in the same order internally (was generating failed licence when 
	multiple counters were used where the register app had the counters in a 
	different order to the program).
- ds_CloseTables forces the files closed (does not just decrement internal 
	file used vars and close if required). Fix for IPDriver where connection was 
	left open.
Version 4.95 (10 January 2011) (No TXA import required if 
upgrading from 4.58 or up)
	- Internal tweaks for more secure DLL.
- Fix for NoDemo (in some circumstances was allowing a one day demo).
Version 4.94 (7 December 2010) (No TXA import required if 
upgrading from 4.58 or up)
	- Template tweak for C7.3 support
Version 4.93 (19 November 2010) (No TXA import required if 
upgrading from 4.58 or up)
	- Optimize internal LoadUserByNumber method - which intern optimizes 
	ds_ChangeUserPassword, ds_ChangeUserEmailAddress, ds_GetProperty, 
	ds_UpdateUser, ds_LoginUser, ds_LoginText
- If EmailAddress is blank, don't returned encoded email address.
- ds_UpdateUser - when a usergroup gets deleted, remove the links in the 
	OperatorUserGroups table.
- ds_UsersUserGroupsQType - Return the site field of the UserGroup in the 
	queue.
- ds_GetUserPassword - deprecated. ds_GetUserPasswordEx requires the 
	supervisor to be logged in.
- ds_AddUserToUserGroup and ds_RemoveUserFromUserGroup functions added to 
	the map file.
- Fix - compile errors when Secwin for ODBC is compiled in localmode.
Version 4.92 (22 October 2010) (No TXA import required if 
upgrading from 4.58 or up)
	- ds_GetUsers - pass ds_GetUserGroupsToo in the options, and you get the 
	users and the usergroups.
- internal function Secwin_AddAccessRecord - opens and closes the file (webserver 
	support in some cases was denying access because of closed files).
- Internal function OpeRecordToGroup - assigns the usergroup flag (UserGroups 
	in ds_GetUsers support).
- Template change - 'Don't generate extra project defines' - you can check 
	this if you're getting the 'Too many Pragmas' error when compiling.
- Template change - for C7, only project the driver libraries in 
	Stand-alone mode.
- New extension template - Secwin_WebUserAccessSecurity - to place code in 
	the Secwin Access Assigning in a webserver application.
- New utility template to import the Secwin windows into a WebServer 
	application - requires NetTalk 5.02 or later - documentation to follow once 
	NetTalk 5.02 has been released.
- ds_UsersUserGroups fix - populates the site field correctly in the queue 
	returned.
- Procedures exported - ds_AddUserToUserGroup and 
	ds_RemoveUserFromUserGroup.
- ds_UpdateUser(DeleteReocrd) fix - when the user being deleted is a 
	usergroup, then all the relating records to the operators are dropped.
Version 4.91 (6 September 2010) (No TXA import required if 
upgrading from 4.58 or up)
	- IPDriver DLL - Support for Clarion 7. Includes the IPServer dll for C7 
	versions (S70IPDS.dll).
Version 4.90 (23 August 2010) (No TXA import required if 
upgrading from 4.58 or up)
	- IPDriver DLL - allows customizable Secwin IPDLL server name.
Version 4.89 (14 July 2010) (No TXA import required if 
upgrading from 4.58 or up)
	- Template change - GetActivation template uses NetWebClient (rather than 
	NetSimple). This allows for improved handling of the send request and 
	receive request through proxy servers.
- Template change - GetActivation template: Added embed points at send and 
	receive procedures.
- Template change - GetActivation template sets SSL options, 
Version 4.88 (4 June 2010) (No TXA import required if 
upgrading from 4.58 or up)
	- Clarion 7.2 compliant binaries included.
- CPCS reports support (for access control).
- IPDriver - workaround for failed rec0rds() in a file. New internal 
	function Secwin_AddAccessRecord
Version 4.87 (20 April 2010) (No TXA import required if 
upgrading from 4.58 or up)
Summary: Fix GPF in ds_SaveLicenceToXMLEx, Fix IPDriver Access assigning 
	- Fix GPF in ds_SaveLicenceToXMLEx
- IPDriver - work around for Records() which does not work in the IPDriver.
Version 4.86 (14 April 2010) (No TXA import required if 
upgrading from 4.58 or up)
Summary: See below. Also see 
Translating Secwin Windows on changed translation requirements for Secwin4.
	- Fix regression in 4.85 for C55 users (was not including the correct dlls).
- Debug can log to a DOS file (so DOS driver is added to the libs).
- Translation fix - if lang file contained path, then was doubling up on 
	the path in the filename.
- SetPin fix - was not setting the application name soon enough.
- SOS - Fix client side to receive response through restrictive proxy 
	servers.
- Assert if ChangePasswordFunction is not set in the global extension 
	template (when required by the SecwinLoginScreen).
- Prompt to allow a window's prompts to not be added to the AccessPointsQ.
Version 4.85 (8 February 2010) (No TXA import required if 
upgrading from 4.58 or up)
Summary: Clarion 7.1 duplicate compile error fix, fix for long passwords 
required, fix for corrupt licence (may require an initial re-activation).
	- Template change - does not force password change (if optional login, and no 
login is required, and long password is selected)
- Template change - control template (for Login Window). If long password 
	required, and user's password is not long, then forces changepassword.
- Internal Encrypt class (DESObject) renamed - Clarion 7.1 work-around 
	(was giving duplicate compile errors where Secwin and NetTalk where in the 
	same local mode application).
- DLL - new function ds_CheckBigPassword() checks a string for a valid 
	alpha(6) numeric (3) password.
- DLL change - on insert user, clear superuser bit between additions 
	(possible carry-over from a previous add?)
- DLL change - internal function to setregistry was not opening the file (casuing 
	mis-matched registry date after registration in some cases).
- DLL change - Set big password only overrides if BigPassword is required 
	(internal flag was being cleared in some cases).
Version 4.84 (25 January 2010) (No TXA import required if 
upgrading from 4.58 or up)
	- Removed 'Cehcking access for' stop in MSSQL apps.
- 
	ds_CheckRegistry - was not checking access table early enough in the app (in 
some cases).
- 
	ds_CheckRegistry - check for old Secwin3 registry entry (if registry entry is 
not there) - date checking support (licence). 
Version 4.83 (22 January 2010) (No TXA import required if 
upgrading from 4.58 or up)
Version 4.82 (19 January 2010) (No TXA import required if 
upgrading from 4.58 or up)
	- C7.1 support - exclude Driver libs from the lib mode libs, set ABCLinkMode to 0 
in the lib mode libs - add name attribute to some procedures that still required 
the name attribute.
- 
	Use %WindowManager, and not the constant ThisWindow in calling window class 
methods.
- 
	Internal (for c7.1 support) Move the SQLQueryFile declaration into the csSQL.clw 
file
Version 4.81 (13 January 2010) (No TXA import required if 
upgrading from 4.58 or up)
Fix regression in 4.80 - was not displaying the UserGroups in SQL versions.
	- Template tweak - use %L% in projecting the dll. This means that for C7 - 
	the project can be change to lib/dll mode (not in the application)
- DLL Change - fix for file declaration moved to inc file (regression in 
	4.80 for C7.1 support) - caused UserGroups to not display.
- internal DLL Change - moved record declaration to an equ file to cater 
	for queue declaration and moving File decl into the clw file for C71 
	compatibility.
Version 4.80 (31 December 2009) (No TXA import required if 
upgrading from 4.58 or up)
Clarion 7.1 compatible build
	- Internally renamed classes, and added name attributes to procedures and 
	global variables.
- Removed driver libs from the lib projects.
- Template change - add driver libs to the project (where necessary).
- Template change - additional embed points for Operator Form template 
	(code can be added before and after a user is deleted, changed or inserted). 
	Also embed points added to the SecwinSetAllAccess control template (to put 
	code in before modifying access).
Version 4.79 (8 December 2009) (No TXA import required if 
upgrading from 4.58 or up)
Some optimization - especially for Oracle.
	- Template tweak - In Create Secwin Menu template, store value of 
	ds_CountUsers  for hide/unhiding controls.
- Template tweak - don't call ds_countUsers twice (in some cases).
- Template tweak (and new function call) - only call ds_UserAllowed and 
	not old Secwin 3 ds_Allowed as well. Call conversion function rather (new 
	function ds_GetOldAllowed)
- Oracle project - use prop sql for queries.
- SQL queries - don't use 'as' (not supported by all backends) - use full 
	table name.
Version 4.78 (24 November 2009) (No TXA import required if 
upgrading from 4.58 or up)
	- DLL fix - Optimisation removed for SQL versions other than MSSQL. (Prop 
	SQL statements not compliant). Each version will require it's own 
	optimisation where necessary.
- DLL - new function  ds_SaveLicenceToXMLEx. Includes an additional 
	options group parameter. In this case, specifically to force the URL 
	encoding of a XML packet to 'ISO-8859-1' where need be.
- DLL - Only call prop:SQL names check, if no name is found in the initial 
	Secwin names table search (regression in 4.66).
- Template change - add project define switch which is set according to 
	the global template switch to disable Secwin (_NoSecwin_).
- Template change - embed points added between ds_CountUsers and 
	SecwinFirstUser procedure; also in the GetAccess routine loop (for 
	overriding a displayed operator).
- RegisterABC application changed, to allow old registration codes using 
	'ISO-8859-1' format to be issued.
- Template change - SecWin's Operator Form Control template requires the 
	Secwin global Template (disables code generation when Secwin is disabled).
Version 4.77 (9 October 2009) (No TXA import required if 
upgrading from 4.58 or up)
	- Tpl fix - Regression in 4.73. File owner must be set in all dlls.
- Map fix - ds_SaveLicenceToXML was not including the proc attribute.
- Ds_GetProperty fix - was not returning the ExtraLong property for a 
	user.
- TPL feature - IPDriver apps can have security files local (rather than 
	on the IP server).
- TPL change - C7 seems to intermittently not have the %cwversion set 
	correctly - use %cwtemplateversion where this is the case.
- TPL change - when a control is deleted from the window, remove it from 
	the security level and module controls lists.
- TPL change - embed point added after failed registration attempt.
Version 4.76 (3 September 2009) (No TXA import required if 
upgrading from 4.58 or up)
	- Tpl fix - Don't assert on external ChangeLoginProc and SetUserAccess (Secwin 
	create MenuItems template).
- Tpl change (template utility) - allow external SecwinRegisterProduct 
	window import.
- DLL fix (regression in 4.xx) - allows for encrypted login to log in.
Version 4.75 (23 July 2009) (No TXA import required if 
upgrading from 4.58 or up)
	- DLL change - Fix for firebird 1.5 (was not creating the primary key in 
	the QueryTable because the field was > 245 chars.
- Template Change - shows the File options tab in legacy SQL Multi-DLL exe 
	apps. The Files and Options tabs must be setup as they are in the data dll.
- Template change - embed point in the SecwinSetAccess control template 
	(allow handcode in the template routines).
- Template change - the SecwinSetAccess window includes the usergroup flag 
	- allowing sortability and formatting of the list for user groups.
- Template fix - for SOS applications - was not getting the length of the 
	xml string correct (setting too early).
- Template fix - don't sort AccessPoints queue if "In template order" is 
	selected (for the sorting in the queue).
Version 4.74 (10 July 2009) (No TXA import required if 
upgrading from 4.58 or up)
	- DLL change - ds_SaveLicenceToXML does not alter the filename sent, 
	rather it returns an error if invalid filename is passed. 
- Template change - IPDriver use is optional (for the dssw4 file). 'My 
	Security files are not on the IP server' switch on the Template can allow 
	the dssw4 to be located locally.
- DLL fix - when encryption used, was opening the security file in access 
	denied mode, which was pervading the security superfile (inspite of that 
	table being closed and re-opened in access all mode). Note to self - don't 
	open superfiles in access denied mode, unless all the superfiles opened are 
	closed, and then re-opened.
Version 4.73 (3 July 2009) (No TXA import required if 
upgrading from 4.58 or up)
	- DLL change - ds_SaveLicenceToXML makes a valid filename to store the 
	licence in (if an invalid filename is passed). 
- DLL change - new exported function: ds_MakeValidFileName allows you to 
	create a valid filename before calling the ds_SaveLicenceToXML function.
Version 4.72 (1 July 2009) (No TXA import required if 
upgrading from 4.58 or up)
	- Template change - hide template prompts for non-data dll apps in a 
	multi-dll application. Also only does the necessary in the data dll - which 
	means Pin, EmailAddress, etc are setup only in the data dll.
- Dll Change - registry changed to using URLEncoded values. This means 
	that reserved chars can be used in SOS and other http packets. XML 
	registration files will all be URLEncoded - but old XML files will still be 
	supported.
Version 4.71 (18 June 2009) (No TXA import required if 
upgrading from 4.58 or up)
	- Fix for Licence Failure - was not always halting.
- ds_UseLicenceEx - check whole file for licence (was case sensitive in 
	some cases).
- Template change - only allow encryption code to be set in the data dll 
	(or exe for single exe apps).
- Template change - fix priority for late login (was not always being 
	generated because of a clash in priority levels)
- Template change - new embed and embed button on the user screen security 
	template to add addition code when controls are restricted.
- Template fix - if items (in a menu) need to be disabled for licence 
	failure - all items in a enabled menu were being enabled.
- c7 Template fix - Call_GetLicenceDetails code template had a unsupported 
	template language use in c7.
Version 4.70 (5 May 2009) (No TXA import required if 
upgrading from 4.58 or up)
	- Fix for C7 - projects correct lib file when using secwin ODBC. 
- Fix thread lock in ChangeUserPassword (causing app to hang when changing 
	a password).
- Fix for encryption - was not displaying users logged in correctly. Also 
	was not logging in some cases when security file is encrypted.
- Fix for ds_CurrentLyLoggedInEx - was including the name of the user 
	querying in the list twice.
Version 4.68 (16 April 2009) (No TXA import required if 
upgrading from 4.58 or up)
	- Fix GPF if ds_SetPath() called with a blank first parameter
Version 4.67 (25 February 2009) (No TXA import required if 
upgrading from 4.58 or up)
        Summary: A couple of minor tweaks. Affects programmers using AppPin, 
		Super Users, and/or UserGroups.
	- Template Change - Clarion 7 workaround. Was not always getting the Class 
	declaration embed point correct.
- Template Change - allow disable of refresh on GainFocus (local extension 
	template). This means that the access is not checked on every gainfocus 
	event (for that particular procedure).
- Template Change - allow userID field to be stored in a global variable.
- Template fix - Don't add user-level access points to  the 
	SetAllAccess queue (was throwing up a compile error in some circumstances - 
	as well as being superfluous).
- DLL fix - MSSQL workaround: Don't create the file if there's a 
	NoFileError on open. Bug in MSSQL driver that creates a blank table. Note: 
	only for the MSSQLDriver, not when connecting to SQLServer via ODBC. 
	ds_LoginText uses Create procedure, rather than direct Create()
- DLL Fix - critical section error in change password caused a hang when 
	an invalid user was selected.
- DLL Fix - ChangePassword (when in case-insensitive mode) was allowing 
	users in when a force-change-password (without changing the password).
- DLL Change - /SecwinNoAccessDelete command line means no access entries 
	are deleted (and logged instead). Useful for debugging MSSQLDriver.
Version 4.67 (25 February 2009) (No TXA import required if 
upgrading from 4.58 or up)
        Summary: A couple of minor tweaks. Affects programmers using AppPin, 
		Super Users, and/or UserGroups.
	- Template Change - only call setpin if AppPin is not 0.
- Template change - new feature: Super User doesn't use a licence.
- DLL Fix - If UserGroup is added as Operator, with default Access as 
	noaccess, then the usergroup really has default no access (previously had 
	default access to all either way)
Version 4.66 (22 January 2009) (No TXA import required if 
upgrading from 4.58 or up)
        Summary: Optimization for SQL (mostly - but also TPS), some template tweaks. A 
        TXA import is recommended for speed improvement.
	- Template Change - only calls GetAccess once on open window (was calling twice).
- Fix CriticalSection error - causing hangs in certain circumstances.
- Optimize non-SQL when deleting a user.
- Fix - not all users were associated with their usergroups in some 
	circumstances.
- Fix - when upgrading from dssw2 - old operators file was not being 
	closed in some circumstances.
Version 4.65 (24 December 2008) (No TXA import required if 
upgrading from 4.58 or up)
Summary: Optimization for SQL (mostly - but also TPS), some template tweaks. A 
TXA import is recommended for speed improvement.
	- Template Fix (fix for incorrect C7 lib assignment if MultiProj apps): 
	Centralise secwin dll and lib name generation.
- Template Change: Call ds_UsersEx with 0 in the first parameter (so that 
	no user groups are fetched) - in Secwin windows. The first parameter is only 
	for Secwin 3 apps. Optimized for large numbers of userGroups and Users 
	(especially SQL).
- Template Fix: Clear login for usergroups (in the SetAllAccess control 
	template) - so that usergroups are displayed without a login.
- Template Change: in SetAccess and SetAllAccess templates, change to 
	using a combination of ds_GetUsers and ds_UsersEx (Optimization for SQL) to 
	get the users.
- TXA change: BrowseUsers and BrowseUserGroups call ds_UsersEx with 0 - 
	optimization.
- ds_GetUsers - In SQL close files if they were opened in this function. 
	TPS mimicks SQL functionality (supporting additional options previously only 
	supported in SQL)
Version 4.64 (26 November 2008) (No TXA import required if 
upgrading from 4.58 or up)
	- ds_LockScreen Fix: Was allowing a blank password to activate the screen 
	- and erroring on the correct password.
Version 4.63 (21 November 2008) (No TXA import required if 
upgrading from 4.58 or up)
	- ds_ResetUserPasswordDLL Fix: ds_GetUserPassword, 
	ds_ResetUserPassword - allows blank user site to be passed.
- Fix - in ds_SetPath for IPDriver apps. Provides support for subfolder 
	support (which was removed from 4.62 due to a regression when ds_SetPath was 
	not used). Now supports both sub-folder support and default folder support.
- Template Change - split Secwin Initialize into 2 - to allow additional 
	code after init, but before creating the tables.
Version 4.62 (4 November 2008) (No TXA import required if 
upgrading from 4.58 or up)
Summary: Optimization for SQL - particularly for UserGroups, Encryption Code.
	- Clarion 7 compatible install.
- New functions: ds_ResetUserPassword, ds_GetUserPassword, 
	ds_SetEncryptionKey. ds_ResetUserPassword, ds_GetUserPassword can only be 
	used if ds_SetEncryptionKey is first called with an encryption key. These 
	functions are not available when using the default secwin encryption.
- Encrypting Tables with a unique key. This permits you to use the 
	ds_ResetUserPassword, ds_GetUserPassword - as the Operators table is unique 
	to your application.
- Conversion from default encrypted to encrypted, as well as import from 
	encrypted or default encrypted to encrypted. Export from encrypted.
- Fix - change user password (not functioning correctly).
- Optimize for SQL - ds_UsersUserGroups, ds_NumberOfUsers , Delete User, 
	internal: UserInUserGroup
- Fix ds_CountUsers (for SQL) - Was only checking the noaccess users, and 
	not adding operators and supervisors to check if all existing users had 
	access record (noaccess, operator or supervisor).
- Fix - upgrading Secwin tables (from Secwin 3). Logout was not 
	functioning correctly in SQL, so only the first 2000 access records were 
	upgraded.
- TPL change: Windows Font settings moved to the 'Old' tab.
- Encryption key template entry prompt in the global extension template.
- Tpl fix - incorrect spelling for importing the planejane template 
	windows.
- Template fix - legacy - was calling an abc method in the template (INIMgr).
- Template fix - don't reject the UserSecurityTemplate on source and 
	report templates. Disable automatically for these if populated by the 
	AutoPopulateUserSecurityTemplate - but allow enabling.
- Template fix - disable UserScreenSecurity template in the FM3 connect 
	window template (typo in previous attempt at this).
- IPDriver Fix - regression in 4.58 - when introducing sub-folder support 
	(sub-folder support is disabled at present).
Version 4.61 (23 October 2008)   
(Minor release)
Summary: Template change for Clarion7 support.
Version 4.60 (17 October 2008)   
(Minor release)
Summary: Release 4.59 did not include all the dlls for all the backends.
Version 4.59 (15 October 2008)   
(Minor release)
Summary: Fix for UserNumbers > 32767
	- Secwin DLL - fix internal functions: ds_SetWorkGroup, ds_PutAccess to 
	take long parameters (rather than shorts).
- Secwin DLL - fix - only upgrades 399 licence structure for TPS files. 
	This will only effect those who implemented Secwin 4.00 licence in a tps 
	environment.
- Secwin DLL - fix for logout and re-login. Was not clearing internal 
	variables after logout.
Version 4.58 (16 September 2008)    
(TXA import recommended)
Summary: Some startup optimization for SQL, IPDriver support for separate 
datapath, better UserGroup support (editing) in the TXAs.
	- Secwin DLL - optimize ds_UsersEx function. Does not check user groups if 
	no appnumber is passed to the function.
- Secwin DLL - optimize ds_CountUsers for SQL - use prop:sql rather than a 
	view to return the available users. Also deletes superfluous Access records 
	(of old deleted users)
- Secwin DLL - fix ds_getUsers was not returning the NoAccess users.
- Secwin DLL - if languagefile includes the path, then don't add the path 
	to the language file.
- Secwin DLL - use the IPDriver procedures to set the filenames (allows 
	the files to be in a different path to the Secwin dll on the DataServer)
- Secwin TXAs - UserGroup editing improved - shows InitialAccess. Disables 
	initialAccess on changerecord, when UserGroup is switched between Operator 
	and NoAccess.
Version 4.57 (3 September 2008)    
(No TXA import required if upgrading from a version greater than 4.55)
	- Secwin DLL - Work-around for licences implemented with version 4.00 (was 
	storing as case-insensitive product name).
- Secwin Template fix - If forcechange every 30 days, then don't allow the 
	user to cancel from the changepassword screen.
- Secwin Template Change - include the name of the screen from which the 
	SecwinSetAccess window is called (in the window text
- Secwin Template Change - Store the window size in the ABC resizer for 
	the SecwinSetAccess window for each different window from which it is 
	called.
Version 4.56 (22 August 2008)    
(AccessControl windows TXA import recommended)
	- Secwin DLL - Disable change in Level for UserGroups.
- Secwin DLL - Optimize User deletion: uses prop:sql to delete operator 
	usergroup associations.
- Secwin DLL - Don't get a user's level by the level of the highest 
	usergroup he belongs to.
- Secwin TXAs - disable the InitialAccess option controls when a user is 
	changed. See FAQ 3.17 for details
- Secwin DLL - can store activation codes to prevent re-use (new function 
	to replace superannuated one:
	
	ds_CheckEncryptedActivationCodeEx)
- Secwin DLL - fix for relative counters (adds correctly - instead of 
	replacing existing ones)
- Secwin DLL - don't store licence when type < current licence type.
- Secwin DLL - don't allow a activation code with a counter to be reset 
	with the same activation code.
- Secwin Template and DLL - make WrongProduct warning optional (for 
	debugging purposes only)
Version 4.55 (13 August 2008)    
(No TXA import required if upgrading from a version greater than 4.54)
	- DLL fix - only set the GUID (on adding) if the GUID is not set (fix for 
	the import/export routine).
- DLL change - ds_GetProperty - 
	allows IsSuperUser functionality to test if a particular user is a superuser 
	or not.
- DLL fix - import/export between different backends. TPS to SQL 
	export/import was not working correctly. Requires a new export if user 
	groups are used (were not correctly formatted in the export file).
- DLL change - Improved the 'Call to ds_LicenceOk, but License Not Loaded 
	by ds_UseLicence' message to 'Contact your Supplier: The security licence is 
	used before it is loaded (i.e ds_LicenceOk is called before ds_UseLicence)'
- DLL Change - include the Dealer in the import/export of the licence file.
- DLL Fix - UserGroup first user found (with no other operators 
	thereafter) - was causing an infinite loop.
- Template change - TXAs include a "Plain Jane" option for windows import.
Version 4.54 (5 August 2008)    
(AccessControl windows TXA import recommended)
	- Secwin Equates - change CounterDescription to Description field (to 
	match the template queue). Handcoders using the LimitsQueueType will need to 
	change the reference to this variable to the correct one in their source.
- DLL fix - don't show previously assigned user groups to a user that is 
	changed from an operator to a supervisor (in the BrowseOperators 
	UpdateOperators windows).
- DLL fix - was not assigning user groups correctly sometimes.
- Dll optimization - ds_GetUsers is 20% faster in SQL. Also the queue is 
	sorted correctly by FirstName/LastName.
- DLL fix - the Error storing licence message was not showing the file 
	error correctly.
- TXA change - disables the UserGroups queue in the SecwinBrowseOperators 
	and SecwinOperatorsForm windows for supervisors.
Version 4.53 (29 July 2008)    
(No TXA import required if upgrading from a version greater than 4.43)
	- New equate (ds_NoMessages) - which can be added to the Request parameter 
	of the ds_UpdateUser function to suppress error 
	messages.
- DLL Fix (ds_GetProperty) - returns blank 
	(or 0) property when a user does not exist. (was returning incoherent values 
	for non-existant users).
- DLL Change (ds_UpdateUsersUserGroups) 
	- the DLL changes the Active icon to correspond with a completed change 
	required (indicated by a user-changed ActiveIcon flag). This means that if 
	the ds_UpdateUsersUserGroups function fails with a particular change, the 
	failed change can be verified by the mismatched Active flag in a particular 
	row.
- Template Change - improved compile error messages for missing procedure 
	prompts in the global and/or Create Menu Extension templates.
Version 4.52 (11 July 2008)    
(No TXA import required if upgrading from a version greater than 4.43)
	- Fix regression in Template (version 4.51). If SecwinSetAccess was 
	declared externally, then a blank procedure name was used.
Version 4.51 (10 July 2008)    
(No TXA import required if upgrading from a version greater than 4.43)
Summary: Firebird support, support for a large number of Access Control groups 
on one window (where the access control group string compiles to > 1024)
	- DLL Change - Implement Firebird support. This requires a different DLL 
	to the standard ODBC DLL. This is because a lot of the files contain unique 
	keys made of >250 bytes which Firebird does not support. Important Note for 
	Firebird users: Some of the string fields (used in unique keys) have been 
	shortened to accommodate for this limitation in Firebird. Particularly: 
	Firstname and Lastname
	(80 instead of 252), Product
- Template change - workaround for Clarion IDE limitation, which does not 
	permit more than 1024 chars in a parameter on one line. Split the function 
	call over to multiple lines if this is the case.
Version 4.50 (27 June 2008)   
(No TXA import required if upgrading from a version greater than 4.43)
	- DLL Change - Don't allow Hook1 to be set (in the ds_UpdateUser) - this 
	is used internally.
- DLL Change - ds_SetOwner, allows the second 
	parameter (Owner2) to be used for a DriverString set (for SQL tables). This 
	means that additional driver strings can be used in Secwin tables. you may 
	not use /CLIPSTRING though.
- Template Change - Support for additional driver strings (used in 
	ds_SetOwner).
- Template Change - Support for Multi-Proj - allows manual inclusion of 
	the Secwin Driver DLL - instead of using the Secwin Global Extension setting 
	(better support for Driver Substitution - particularly the IPDriver).
Version 4.49 (11 June 2008)   
(No TXA import required if upgrading from a version greater than 4.43)
	- Template Change - improved Multi-DLL implementation. TXAs included for 
	external procedures.
- Improved Multi-DLL examples (includes an IPDriver Multi-DLL 
	application).
- Template Change - if 'Generate Access points everytime' is unchecked, 
	then don't force the addition of the sac points file into the 
	Secwin_SetGlobalAccessControls control template's include file list.
Version 4.48 (5 June 2008)   
(No TXA import required if upgrading from a version greater than 4.43)
	- DLL fix - suppress CRC check during internal view transactions. In SQL - 
	this was doing an incorrect CRC check - resulting in a corrupt security 
	files warning.
- DLL fix - Change Login function was displaying the old Secwin DLL window 
	if no password was sent to the procedure
- DLL fix - ds_LockScreen - don't allow the window to close unless 
	legitimate closure issued.
- Template Change - display the login in the UsersList (SecwinSetAllAccess 
	window)
Version 4.47 (6 May 2008)   
(No TXA import required if upgrading from a version greater than 4.43)
	- DLL change - increase field length of the login names and passwords in 
	the deprecated dll window procedures (ds_LoginText, ds_ChangeUser, 
	ds_ChangePassword).
- DLL change - new procedure 
	ds_GetUserProperty. Users the Login name to get the property. If the 
	property was numeric, then ds_GetProperty was not returning the correct 
	user's details. Also, ds_GetProperty can accept a numeric login preceded by 
	'####'
- DLL change - IPDriver workaround - IPDriver was returning an incorrect 
	error code (errorcode 45).
- DLL Change - when upgrading from Secwin3 tables, store the original 
	login case-sensitively in the case sensitive field, and the login as 
	uppercase (for optimized login searching).
- Template Change - Secwin Menu extension template - allow all or some of 
	the procedures to be started in a new thread (requires some procedures to 
	change their parameter from a long to a string)
- TXAs change - calls the new ds_GetUserProperty where applicable.
Version 4.46 (21 April 2008)   
(No TXA import required if upgrading from a version greater than 4.43)
	- DLL change - Fix - returns the case-sensitive 
	name in the functions returning the current login (like ds_CurrentLogin and 
	ds_GetProperty).
- Rebuilt installs (Corrupt installs for some of the patch installs).
Version 4.45 (9 April 2008)   
(No TXA import required if upgrading from a version greater than 4.43)
	- DLL change - Lock window password screen centred.
- DLL Change - allow translation of 'Access' and 'Group' used in the 
	SecwinSetAllAccess window.
- Template change - 'Disable Licence file registry check' is moved to the 
	global extension template (instead of the User Login Here template). This 
	was called 'Allow multiple security files'
- Template change - req() not always working when req is associated with a 
	local extension template - so changed to using restrict instead.
- Template change - new prompt 'Dont check access in list box filters'. To 
	optimize list box filters if access control is not applied to records in the browse.
- Template fix - ds_MultiData is included in the call to the ds_LicenceOK 
	function if the global extension template is checked.
- Template fix - Fixed where statement in UpdateWindow derived code into 
	ABC mbrowse class. A call to RestrictAccess was being called at every method.
- Template fix - TearOff support implemented (regression in previous 
	TearOff support implementation).
- Template change - don't call RestrictAccess if the routine is empty.
Version 4.44 (21 February 2008)
 (Recommend Access Control windows TXA import to 
optimize the BrowseUsers)
	- Optimize DLL (ds_GetUsers) - makes OperatorBrowse faster.
- Template change - force '' into email address 
	template field if non-existent.
- Template change - a switch on the Create_Secwin_Menu 
	template allows quick disabling of AccessControl menu items.
- Template change - if a blank file exists in the Files 
	to Include (on the SecwinSetGlobalAccess window), ignore it.
- TXA change - remove the LoadQueue after Insert, 
	Change and Delete (already done in the ResetWindow method).
- TXA Change - don't disable the UserGroups list when 
	inserting a user (now updating a users user groups is supported during user insertion).
- TXA Change - remove example sac files from the Files 
	To Include list (on the SecwinSetGlobalAccess window).
Version 4.43 (6 February 2008)
	- Template Change - allow access points (for the Set 
	Global Access window) to be sorted by Template list order, REstriction Name or Bit ID.
- Template Change - don't use Default login , if it's not set.
- Template Change - an additional embed point prior to 
	logintext if no users found (allows custom code to provide additional 
	options if no users exist).
- Template Change - if Licence date 0 (not failed) - 
	then licence is non-expiring (set to 9999/12/31)
- DLL fix - Secwin3 operator browse was not sorting or scrolling correctly. 
- DLL change - optimise the deletion of an Operator for 
	SQL. Deletes access records with a prop:sql statement, instead of manually.
- DLL Fix - don't display encrypted blank email address 
	(if email address is blank). Affected ODBC applications.
- DLL change - returns FingerPrint1,2, ExtraLong, 
	ExtraString, Site, SiteLow, SiteHi from ds_GetProperty function.
- DLL Change - immediate return from the internal ds_About function.
- DLL Fix - allow VScrolling on the UserGroup list boxes.
Version 4.42 (30 January 2008)
	- DLL Change - stores a case-sensitive login for 
	reference purposes (in insert user, and when upgrading from dssw2.tps 
	files).
- DLL Change - when logging in, first tries a get for 
	the operator (before a set/next) - optimized for SQL. Also in the 
	ds_ChangeLoginEx function. ds_LoginUser and ds_ChangeLoginEx now internally 
	use the same function to load the user.
- DLL fix - ChangeLogin and ChangePassword was not 
	case-insensitive (if set to case-insensitive in the UserLoginHere template).
- DLL fix - was storing in the initial password in 
	uppercase when adding using the old ds_InsertUserEx function.
- DLL change - allows a ds_SecwinFirstDate to be set 
	for the expiry date for the licence (and the shelf life for the Activation 
	Code) to create non-expiring dates (expires 9999/12/31).
- DLL Change - OperatorForm DLL window entry string 
	pictures changed to @s252.
- DLL Change - WorkGroup fields on OperatorForm unhidden.
- DLL Change - VSCROLL added to the OperatorFrom and 
	OperatorBrowse UserGroups list box.
- DLL Change - ds_UpdateUser: Hook2 is reserved for 
	casedlogin storage of the login.
- Template Change - License name, Default login and 
	password, Restriction Name, RunAnotherEXE and Command line parameters, 
	Application Name and Application Pin (in the SetPin template) increased to 
	252 chars.
- Template Change - BrowseUsers procedure template 
	prompt moved to global extension.
- Template Change - after changelogin, do GetAccess and 
	set access rights from the calling window.
- Template Change - Call_OperatorBrowse code template 
	now dependant on the Secwin Global Extension template (to cal lthe 
	BrowseOperators procedure set there).
- Template Change - C55 - Work around for doing a 
	straight case on the returned value of ds_CheckEncryptedActivationCode. Use 
	a temporary variable to store the value, and compare it.
- Template Change - verifies that 0 is a valid licence 
	date (was reporting this as an old expired licence)
- TXA change - when returning from the 
	SecwinOperatorForm, the User's UserGroups are immediately displayed.
- TXA change - Access increased to 247 allowable columns.
- TXA Change - ChangePassword Cancel button activated.
Version 4.41 (25 January 2008)
	- Template fix - regression in 4.39 - when making login 
	option (and no users added) the program was immediately exiting.
- DLL Fix - regression in 4.39. When adding a superuser, 
	sometimes all users were seen as superusers (and deletion of users was 
	essentially disabled).
- TXAs - login, password, user name and user lastname 
	fields pictures changed to @s252. (Requires re-importing of the txas)
- TXA - AccessControl window columns reduced to 247 to 
	cater for limitation in the size of the format string.
- TXA - added a Select File button to the 
	RegisterProduct window (ABC) for XML file selection.
Version 4.40 (24 January 2008)
	- Template fix - regression in 4.39 - new apps were not 
	using the imported login procedure.
Version 4.39 (22 January 2008)
	- DLL fix - was able to delete superuser.
- DLL change - DatePicture defaults to @d17 (not @d6)
- DLL change - Default expired licence text changed to: 
	'The licence for this product has expired.|Consult your application supplier 
	for a new activation code|to continue using this application.'
- Template change - Login and FirstUser procedure 
	template prompts moved to the Global Extention template.
- New Extension template - 
	Create_Secwin_Menu. For ease 
	of adding the necessary security menu items to your application.
- Template fix - if Secwin is disabled, don't generate 
	Outlookpanel code.
- Template fix - Procedures where User Screen Security 
	was disabled was still appearing on the Global Set AllAccess Control window.
- Template fix - Tearoff support was not being disabled 
	if Secwin was disabled (locally or globally).
- Template change - additional embed between the login 
	user function and the invalid user login message.
Version 4.38 (11 December 2007)
	- DLL fix - login sometimes required case sensitivity 
	(on the login name) - now completely case-insensitive. Login converted to 
	uppercase (to optimise login - so that login does not have to be "searched" for)
- DLL fix - Browse User screen was not always 
	displaying the Default Access correctly.
- Template fix - Secwin:AfterLogin embed point ID duplicated.
- DLL change - Login uppercased on user insert (to 
	optimize future logins). initial password remains the case that the login was entered.
Version 4.37 (5 December 2007)
	- DLL fix (regression introduced in 4.33 for SQL 
	upgrade tables). Only one record was upgraded in the names table.
- Fix GPF in RegisterABC app
Version 4.36 (3 December 2007)
	- DLL fix - If ChangeLogin is selected (with an invalid 
	user entered) then a different user was "logged in" to the one that should 
	be currently logged in.
- DLL fix - version number equate used in the version 
	number display (rather than a constant)
Version 4.35 (29 November 2007)
	- Template fix - %BitValue - invalid template variable (regression in 4.33)
Version 4.34 (26 November 2007)
	- Dll fix - remove stop from the DLL (when going to the AccessControl window)
Version 4.33 (22 November 2007)
	- Template Change: User Screen Security group ID - 
	verified with a queue of existing IDs.
- Template change: User Screen Security: Allow 250 
	control groups (template now uses ds_UserAllowed, 
	ds_ModifyAccessEx and ds_GetAccess4 
	functions).
- ds_UsersEx function now 
	returns the UserSite for each user in the queue (used to be reserved2 field).
- ds_DisplayUsersQueue type (used in the AccessControl 
	windows) - name changed to String(252), and a UserSite is added (to contain 
	the user's site id).
- Fix - ds_UserAllowed 
	function prototyped to return a string (replaces the ds_UserAllowed function).
- New functions mapped: 
	ds_ModifyAccessEx (includes the site id of the user) and 
	ds_GetAccess4
- Internal function: ds_PutAccessEx includes the user 
	site id (instead of using the glosite, searches for the user with the user's 
	site id). Also allows -1 to change a particular bit position access only.
- ds_UserAllowed - if 
	pUser is 0, then loads the current user.
- Prettified Upgrading window.
- Optimized upgrade function - logout and commit for 
	bulk file reads. New security files opened in deny read/write mode.
- Obscure 'File Error 2 Names :' replaced with a 
	translatable intelligible message.
Version 4.31 (15 November 2007)
	- Template fix: For Multi-DLL applications - allows 
	Secwin windows to be external (New checkbox - Functions In another app) - 
	also provides a mechanism to automatically map those windows (if MultiProj 
	is not used in this application set).
- Template fix: Also for the Login and FirstUser 
	procedures (in the User Login Here extension template).
- Template change: Change to the feature introduced in 
	4.29 - to permit a control in a group to deviate from the default (for 
	Control Restrictions). The default is now re-introduced and may be 
	overridden for each control (otherwise assumed to be the default).
- Template fix: Displays the control group where the 
	group is a "To User Type" group. This was not displaying anything in the 
	Control Restrictions base list.
- TXAs - procedures requiring NAMEs, named (to enable 
	exporting). NOEXPORT added to those procedures which won't be exported.
Version 4.30 (14 November 2007)
	- Template fix: If Default Login is selected - was not 
	auto-logging in without showing the window.
- Includes a exe to generate Security codes to allow 
	authorization of Security File repair (see
	
	Your_Security_file_has_become_corrupted._Consult_your_application_supplier_for_a_new_activation_code 
	for more details).
- Removed omit statement from the GlobalClass.
- DLL fix - if the AutoLogin and Default login was 
	selected, then was not performing a Default login.
- Expanded the Security Files Corruption Fixer window 
	to include a Email request generator, as well as being translatable. Email 
	is not required, but strongly recommended. This property is set in the 
	Secwin Global Extension template (on the Options tab).
Version 4.29 (6 November 2007)
	- Template change: ControlRestrictions - removed 
	control equate, and combined into one list (not one control and additional 
	list of other controls).
- Template addition: Control restrictions to a user 
	type (i.e. supervisor, operator or all).
- Template change: Each control in a control group can 
	be assigned individually to Disable|ReadOnly|Hide, etc.
- Template change: Action to take on failed licence: 
	changed to drop down, and controls that still work changed to an inline 
	list. If "Call a Procedure" is selected, then "return after" checkbox is 
	default to on.
- Template change: various cosmetic improvements.
Version 4.28 (5 November 2007)
	- Fix Counter checking - was not cancelling the licence 
	if Counter tampering occurred.
- Additional text translation (for expiredcode, 
	failedcode, wrongproduct and usedbefore messages).
- Additional functions: ds_SetEmailAddress and 
	ds_SetAppName used for forthcoming functionality.
- Fix - when a user accesses a previously unaccessed 
	screen, the access record is cleared (was getting some ghost data from a 
	previous record in the access file). Similarly with the namecodes file.
- Template change - when using the IPDriver, force the 
	SecFilePos to the 'Data Directory' (only valid position).
- Template change - new EmailAddress (for support) 
	defaults to the GPFReporter setting.
- Template fix - Where a counter restriction only 
	pertains to certain levels, don't check the counter for levels outside that 
	range.
- Template fix - use the correct template message 
	prompt in the correct place (was using ExpiredActivation message in place of 
	Failure message).
- Template change - if a valid expired licence code is 
	issued, then don't display 'licence successful' message. Display Expired 
	LIcence message.
Version 4.27 (26 October 2007)
	- Fix for upgrading Operator's table - was deleting the 
	file after upgrading in some unusual circumstances. This fixes where folks 
	cannot login after upgrading. Internal - call ConvertSecwinTables direct for 
	no file error.
- Fix (regression in 4.23) - for generating licence 
	activation codes. Internal method change caused invalid codes to be issued.
Version 4.26 (24 October 2007)
	- Fix for AutoLogin in a Multi-EXE setup (when using 
	the new AccessControl windows in your application - was not permitting 
	AutoLogin from another application, when activated). Template fix, and 
	GetCurrentUser function added internally in the DLL.
Version 4.25 (23 October 2007)
	- Fix user upgrade for Secwin3 file. Secwin 3 allowed a blank user in the 
	file - whereas Secwin4 does not allow blank Logins. A blank login will 
	simply be omitted from the upgrade of the user file.
- Fix for Licence concurrent checking file. Was coming up with an Error 47.
- Fix for Counters - was not always loading all the counters into the 
	internal CounterQ.
- Fix for Counters - was not always returning the Counter value correctly 
	from ds_CheckCounter
Version 4.24 (18 October 2007)
	- ds_UseLicenceEx - fix concurrent copy checking.
- Template change - new embed point before ds_UseLicence call.
- Template change - organise Secwin embeds into a single Secwin Tree 
	(rather than each individual item in the embed tree)
Version 4.23 (17 October 2007)
	- ds_CheckCounter function included in the map file - enabling the new 
	Counter features to be used.
- New function - ds_CheckHashCode - and EnterHashCode (for allowing 
	controlled repairing of corrupted SecurityFiles) - this feature is not 
	available yet, but coming soon.
- ds_CheckCounter function parameters corrected, and checks the required 
	counter correctly (saving a decremented counter where required)
- ds_DecrementCounterEx calls ds_CheckCounter correctly.
Version 4.22 (12 October 2007)
	- ds_GetUsers function optimized (was taking a long time to load the 
	operators due to a sub-optimal VIEW).
- Call_ChangePassword code template requires Secwin Global Extension 
	template, and detects the status of the 'Allow Case-Insensitive password' 
	set in the User Login Here template.
Version 4.21 (9 October 2007)
	- Secwin ODBC now supports PostgreSQL.
- DLL fix - supervisor "switched" to user after editing that user's 
	details.
- Internal DLL Change - Operators file, Access file and NameCodes file 
	primary key changed to the GUID key - will only affect new databases.
- Internal DLL Change - External names of Operator file's LoginKey and 
	Key; Namecodes file's Key changed - allows Secwin3 tables and Secwin4 tables 
	to co-exist in the same database (where databases require database wide 
	unique key names) - in order to allow upgrading from Secwin 3 to Secwin 4.
- Internal DLL Change - Access table GUID key and the Counters table 
	LicenceGUIDKey made case-sensitive (Conversion routine created to handle 
	existing Secwin 4 tables).
- Internal DLL Change - CreateSecwinTables procedure to create tables via 
	SQL script for those not being created by the create() command.
Version 4.20 (1 October 2007)
	- Include map to  ds_SetSkipCRCCheck so that Security files CRC check 
	can be skipped if required.
- Include ip_s4tps6.dll (was not being included in the install).
Version 4.19 (21 September 2007)
	- Corrupt Security file work around (allows Security file checking to be 
	bypassed - only recommended where access control is not used).
Version 4.18 (20 September 2007)
Note: Although support for the IPDriver is 
fixed, upgrading from the Secwin 3 tables is still not possible yet.
	- CLIPSTRING = FALSE driver string added to the SQL driver strings. This 
	is to ensure that the CRC is stamped correctly - in correlation to the CRC 
	returned from the database on a read.
- Regression fix - if CRC test fails, then recheck CRC (removing spaces 
	from the string) - if correct, then redo CRC in database. Caters for strings 
	being sent differently to what was returned in SQL (because clipstring was 
	true by default).
- Regression fix (introduced in 4.17) - if no Secwin 3 tables to upgrade, 
	the ds_cresec was not creating the names table.
Version 4.17 (18 September 2007)
Note: Although support for the IPDriver is 
fixed, upgrading from the Secwin 3 tables is still not possible yet.
	- Internal Change - createnames table superannuated (create attribute 
	added to the names table).
- IPDriver - owner set correctly in IPDriver tables.
- IP Driver DLL name changed to IP_S4tps6.dll - this means that the Secwin 
	3 DLL can co-exist on the same server as the Secwin 4 DLL (if required).
- DLL Fix - when a user is deleted, delete the association with any 
	usergroups that the user group is associated.
- Template Fix - If Secwin is disabled from the application, then the 
	secequ15.clw file is still included (for variable equates and types).
Version 4.16 (14 September 2007)
Note: If you are not using SOS to issue 
registration codes (you are using the register application) - then you will need 
to recompile your application from the example shipped with Secwin. If you do 
not do this, then your registration codes will fail if you are not currently 
including the Dealer string in your registration codes.
	- IPServer DLL compiled - note, the IPDriver files are not yet upgraded 
	from the S3 structure to the S4 structure, so only use the IPDriver for new 
	applications (not existing applications upgraded from Secwin3).
- Optimize callback - use arrays to contain size variables, rather than a queue.
- Uses thread locking in the FileCallback while priming CRC values.
- Implement CRC check in the FileCallBack for all tables (check for 
	corruptions/unauthorized alterations in all tables).
- Template Change - Dealer in XML file - an option to detect the existence 
	of the Dealer in the XML - so Dealer inclusion is dictated by the 
	registration server - rather than this setting being required to match at 
	the child and server.
- Template fix - clears the licence details from the licence group, before 
	loading from XML (incase fields are omitted in the XML file).
Version 4.15 (29 August 2007)
	- Control template for the SetAccess windows. Handles toggling and setting 
	access rights for users.
- Legacy Access Control windows - Correctly named windows and built 
	missing windows (Login, FirstUser, ChangePassword, ChangeLogin, and 
	SetAccess) - uses SecwinAL.clw
- Default ABC SetAccess window uses the control template.
- Template fix - when checking parameters required for a procedure- don't 
	infinite loop if no parameters exist for the procedure.
- Template change - get procedure parameter names (rather than using 
	hardcoded ones).
- TXAs use short filenames (8.3) - very occasionally Clarion has compile 
	issues with modules using longfilenames.
Version 4.14 (23 August 2007)
	- DLL Fix - Changed ds_LoginUser type if not required to return the user 
	number (User number handle is optional).
Version 4.13 (16 August 2007)
	- Fix - ds_ChangeUserPassword 
	parameters changed (in the include file, not the DLL) to include user's site 
	(for replicate compatibility). May be omitted for non-replicate sites.
- Fix - ds_ChangeUserEmailAddress 
	had incorrect parameters (in the include file) - also changed the site 
	parameter to optional (for non-Replicate sites).
- Fix - SQL was not importing user's usergroups when converting tables 
	from Secwin 3 to Secwin 4 format.
Version 4.12 (10 August 2007)
	- Fix - Export/Import of tables (was not using a large enough buffer to 
	export the necessary data that Secwin4 uses). Also exports and imports all 
	data used in the tables (invalid file message if attempted to import a 
	previous S4 exported file).
- Fix in deprecated ds_LoginText function - Created user's email address 
	was not being encoded correctly.
- Optimize BrowseUser screen (actually anything that used the 
	ds_GetProperty function) - was repeatedly reloading the user from disk - 
	especially slow in SQL.
- Renamed the AccessControlWindows template utilities.
Version 4.11 (8 August 2007)
Note: If you have an existing Login Window, 
			then you will need to change it (documented in the
			Creating Your Own Login Window 
			section)
	- Fix - Imported windows use 8.3 names (very occasionally Clarion gets 
	confused using longfilenames).
- Feature - changes GUID generation mechanism, to use printable characters 
	(so that char can be used for GUID field).
- Template - force generation of AccessPoints file from SecwinSetAllAccess 
	control template (prevents a compile error when SecwinSetAllAccess window is 
	added for the first time).
- Template - add Accesspoints include file to the list when 
	SecwinSetAllAccess window is added.
- Template assert - force set of backend used (if not set).
- Fix - prevent GPF in old ds_GetActivationCode (set level and copies to 1 
	if non-existant - prevents divide by 0 from occuring).
Version 4.10 ( July 2007)
	- Feature - new 
	AutoPopulateUserScreenSecurity template.
- Fix -Table Limits (now supported in C55 and legacy). Note: C55 requires 
	a unthreaded class for the filecallback method. C6 uses a threaded or 
	unthreaded, depending on whether the table is loaded as threaded or 
	unthreaded.
- Deprecated the ds_SetMaxTableRecords function.
- Fix - Counter is not case dependant.
- Allows a translatable table limit warning message.
- Fix - when table limit is reached (warning is displayed).
- Fix (for legacy) - was not detecting the %ProcedureCategory (must use %ProcedureTemplate) 
	for display table limit warning template option.
- Fix - added req attribute to Secwin extension templates (so that only if 
	the global extension is added, the local extensions will be able to be added).
- Fix - RegisterProduct Control template, was not loading counters 
	correctly (if MaxLevel was set to None in the template)
- Fix - legacy support for the SecwinRegisterProduct template utility.
- Fix - warning: duplicate name variable - in the AccessControlWindows 
	imported by the template utility.
Version 4.09 (26 July 2007)
	- Fix - When using Table limits, was not saving the limit record 
	(internally) correctly (GUID was not being populated).
Version 4.08 (26 July 2007)
	- New Secwin datatype: ds_UserLoginOptions group (used for passing 
	parameters to the ds_LoginUser function and the 
	Login window (when using your own windows for access control)).
- ds_LoginUser function's parameters changed.
- ds_UpdateUser changed - allows the last supervisor's details (except 
	level) to be changed.
- Allows case in-sensitive login (and password where specified).
- ds_LoginText Returns 0 when user not found (instead of the incorrect 
	ds_InvalidUser).
- Template - don't clear procs when de-selecting use own windows for login.
- Secwin_LoginControls template - changed to show (translatable) invalid 
	login message - where user is invalid.
- SecwinAccessControlWindows changed (recommended re-import).
Version 4.07 (25 July 2007)
Note: If you are using your own windows (for AccessControl) - 
then you need to re-import the windows using the template utility (because the 
OwnLogin method has changed).
	- Fix - user login error (AddUserToMemory function fixed).
- Change - ds_GetLicenceLevelText (replaces ds_GetLevelText) and 
	ds_GetAccessLevelText - 2 functions for translation purposes (to translate 
	the level text used throughout Secwin).
- Change - ds_GetUsers replaces ds_UsersEx with a comprehensive set of 
	user details.
- ds_LoginUser returns 0 when not successful and the appnumber when login 
	is successful (in keeping with ds_LoginText)
- Internal - OpeRecordToGroup decrypts the user info needing decrypting 
	(instead of returning encrypted).
- Improved AccessControl windows - SecwinSplashLogin, SecwinChangePassword, 
	SecwinBrowseOperators, SecwinOperatorForm.
- Template - Activate Licencing support only set on the Global Extension 
	template (setting superannuated in the UserLoginHere template)
- Template - Default Licence issued is set correctly.
- New control Template - Secwin_LoginControls (required when using your 
	own login screen).
- Template - when using the GlobalSetAllAccess window, if the checkbox is 
	checked on the global extension template, then force the access points file 
	into the list on the GlobalSetAllAccess window.
- Template generated compile error - when a file is attempted to be 
	included (for access points) that is non-existant, then display a comment to 
	show where to delete the obsolete access points include file.
Version 4.06 (23 July 2007)
Note: Because of a required file structure change to the 
Licence security file, your licences issued after the release of Secwin 4 will 
not work, your customers will need to re-activate their licences.
	- Fix - security leak allowed licence tampering without detecting. The 
	upgraded licence file requires abandonment (to a new structure).
- Fix - Licence table was not being created in SQL due to duplicate 
	primary key.
- Change - new ds_LoginUser function changed to exclude a window (which 
	allows better integration for using your own login window).
- Change - equates returned from ds_LoginUser changed to negative when 
	error occurs.
- GUID generation changed - use printable chars only in the GUID.
- OperatorForm - only show the UserGroups list if the user is an operator.
- Fix - if Licence name mismatched, then was failing to add licence 
	(generating correctly), but generating a Success message.
- Fix - registry stamp (was not stamping registry on a StoreLicence, so 
	new licences could be corrupted).
Version 4.05 (19 July 2007)
	- Fix for SQL (was not setting the owner string correctly)
- Fix - could not delete usergroups in the SecwinDLL windows.
Version 4.04 (18 July 2007)
	- Examples in C55.
- Connects to SQL (MSSQL and MySQL tested) database and creates tables 
	correctly.
- Upgrades SQL tables correctly.
- Removed Makeover from Secwin - Secwin 4 now supports improved 
	AccessControl windows. 
Version 4.03 (17 July 2007)
	- Change functions - ds_GetProperty, ds_ChangeUserEmailAddress, 
	ds_UserAllowed, ds_UsersUserGroups (and other internal functions) - now 
	includes site field to correctly identify the user where associated with a 
	replicate site.
- Fix - SetAccessWindow now sets the access correctly.
- Fix - UserGroups can be deleted - was warning on last supervisor before 
	loading the record.
- Fix - version number from Lib file removed.
- Template fix - size of template prompt for control field (Control 
	Restrictions).
- New SetAccessWindow - new import of AccessControlWindows required
- Secwin GroupType change - ds_UsersUserGroupsQType and ds_UserDetailsType 
	includes the site field.
- New function - 
	ds_UpdateUsersUserGroups
- Fix - ability to change user details correctly.
- Fix - in UsersUserGroups, ability to assign and read a user that has 
	been added at a site, into a usergroup from a different site.
Version 4.02 (16 July 2007)
	- Fix - template calls ds_SetPin function correctly.
- Include CreateSecurityTables example.
- Fix - warn on no Default Password and Login (if own login window is 
	used). Will resolve this in a later build to not force this.
- TXAs - include Access Control for windows in your application.
- Include CreateSecurityTables example (and application in bin directory).
- Included Outlookbar support.
Version 4.01 (12 July 2007)
	- Fix - When Converting tables check for existing UserGroup (if a user was 
	previously assigned to a UserGroup) - before assigning the user group. 
- Fix - in ds_UsersEx, was not populating the queue correctly (after 
	finding a usergroup).
Version 4.00 (12 July 2007)
	- Show stopper (introduced in 3.99) - conversion was not setting the 
	LicenceType correctly (to permanent by default). If you upgraded from 
	Secwin3 during the alpha phase, you need to 
	delete your upgraded dssw4.tps file, to enforce a re-upgrade of the Secwin tables.
- Support for Secwin Online Server (for online registrations - the Secwin 4 way).
Version 3.99e (10 July 2007)
	- Expanded ds_SaveLicenceToXML and ds_LoadLicenceFromXML to load from and 
	save to an XML string.
- Auto-register XML details when XML file dropped (template option).
Version 3.99e (10 July 2007)
	- Expanded ds_SaveLicenceToXML and ds_LoadLicenceFromXML to load from and 
	save to a XML string.
- Auto-register XML details when XML file dropped (template option).
Version 3.99d (6 July 2007)
	- Compiled in versions c6.2 9049 to c6.3 9056.
- xFiles included in the DLL (rather than the application) - this means 
	that xml comes standard and no additional products are required. TXA 
	including xFiles support, now becomes deprecated.
- Template fix for including database support.
- Re-labelled additional licence fields (to AdditionalString1, 
	AdditionalString2, AdditionalString3, AdditionalLong1, AdditionalLong2).
Version 3.99c (3 July 2007)
	- Implemented other database support (untested as yet).
- Removed requirement for NetTalk when importing the RegisterProduct window.
- 2 RegisterProduct txas - one for xFiles, and one without.
- Rehashed product registration window - for better future compatibility.
- included CRCandLen function for RegisterProduct window (for determining 
	length and CRC of user-enterable fields - particularly helpful for non-XML 
	registration applications).
- Included drag-and-drop support for XML RegisterProduct window.
- Allow command-line security file creation (for install script running).
- Dealer string allows a licence to be tied to a particular dealer.
Version 3.99b (29 June 2007)
	- Removed stops :( from DLL
- Included RegisterABC.app with the correct dct structures required for 
	XML export.
Version 3.99a (28 June 2007)
	- New Dealer field in the Licence file - will cause:
  
 You need to delete your dssw4.tps file , and let Secwin re-upgrade your 
	Secwin3 file (for upgrading Secwin users).
- Limit Queues include the Relative switch (relative is not supported at 
	this stage, but will be supported later).
- Included XML file support for registration (requires xFiles version 1.23 
	or later).
Version 3.99 (26 June 2007)
New Features:
	Fixes:
  - Fix - CopyAccess was not operating correctly.
- Fix - When deleting a user, their access was not deleted.
- Fix - Users not limited to < 32000 (who's going to have more than 32000
	users anyway?).
Version 3.47 (19 June 2007)
	- Fix - different products using the same dssw2.tps file (and different 
	OS's accessing the same dssw2.tps file) - allows valid checking of the 
	Security file with the registry.
- Include latest Makeover in Secwin.
Version 3.46 (6 June 2007)
	- Ability to disable Makeover in Secwin.
Version 3.45 (11 May 2007)
	
	* Include latest Makeover classes into Secwin.
	
	Version 3.44 (18 April 2007)
	
	* Include latest Makeover classes into Secwin.
	
	Version 3.43 (14 March 2006)
	
	* Include latest Makeover classes into Secwin.
Version 3.42 (13 December 2006)
  - New function - ds_ModifyAccess - allows modification of access rights
	(without having to pass all the existing rights to the function)
Version 3.41 (29 August 2006)
  - Message indicates when import is complete.
Version 3.40 (27 July 2006)
  - Fix - Exports and imports all tables (was not importing the names table -
	so no access rights were being carried over).
Version 3.39 (29 June 2006)
  - Fix - for Firebird database support (regression when Ingress support was
    implemented). If using Ingress, then you must set the Database Type to
    Ingress (Secwin Global Extension template setting).
Version 3.38 (15 June 2006)
  - Supports alternative data subdirectory for the security files for the
    IPDriver (for more infor see the IPDriver Compatibility
    section of this document).
Version 3.37 (10 May 2006)
  - Fix - exports the ds_ImportTables and ds_ExportTables functions. These now
    take a parameter as to whether you want to select a path to export to/import
    from or (by default) export to the current directory without popping open a
    select file dialog.
- Template change - tweaks to support SecwinOnlineServer generated code (now
    100% control template generated code):
    Calls the NetSimpleProcess, iunique changed to a string, implemented Serial
    Number send and receive.
- Fix for MySQL operators create in C55 and c5 (regression in 3.36)
Version 3.36  (27 April 2006)
  - Fix - workaround for MySQL5 support. MySQL 5 does not allow 0 DATEs (NULLs
    are cool - but not zeros). When initializing the LastPasswordChangeDate
    (LONG) - it's set to 0, which MySQL 5 was complaining about.
    LastPasswordChangeDate is now created as an integer rather than a DATE on
    the MySQL backend. In previous versions of MySQL this will also be created
    as an integer, but existing DATE types (in previous versions of MySQL) will
    still work.
Version 3.35  (27 April 2006)
  - Template change - Updated Secwin Online Server control template to support using the HTTP protocol.
- Fix - created a secequ60.clw file which is only included for Clarion6.1
    users and earlier (users on Clarion 6.2 9046 will need to check the manual
    include checkbox on the global extension template as the requirement for
    this include cannot be detected automatically between in 9046) 
Version 3.34  (21 April 2006)
  - Change to Login window - buttons made transparent, which means that
    manifest files will be applied to the login window.
Version 3.33 (21 April 2006)
  - Fix - IPDriver - was not detecting the status of the enable checkbox on
    the IPDriver client template.
Version 3.32 (18 April 2006)
  - Fix - MySQL driver was not creating the licence table correctly.
Version 3.31 (24 Feb 2006)
  - Added ds_CloseFiles() function for when a program exits. This was
    affecting the IPDriver build of Secwin, because not all the files were being
    closed (by the IPDriver DLL) on program exit
Version 3.30 (1June 2005)
  - Added ds_ExportTables and
  ds_ImportTables functions.
- Added support for Clarion 6.2
- Added support for Ingress, using the ODBC driver
- Added "Secwin : After Login" embed point
- Cosmetic : Small tweak to AllOver utility template
- Fix : Clarion chain template code if no users exist
- Fix : Secwin items are not generated into Multi-Proj projects if Secwin is
  disabled.
- Fix : Code added to GrantAccess routine to activate controls if Modules exist.
Version 3.28(22 December 2004)
  - Added support for new
  IP Driver
  from SoftVelocity. (Clarion 6.1
  only)
- Minor fix to LoginText function
- Updated About screen
- Added new Control Template (GetWebActivation) for use with
  Secwin-Online-Server
Version 3.27 (26 October 2004)
  - Updated template to new CapeSoft look
- minor fixes for 5.5H, 6.1 support and so on.
Version 3.26 (22 January 2004)
  - Fixed Sync bug in ds_CurrentLogin in C6
Version 3.25 (12 January 2004)
  - Some changes for Clarion 6 compatibility
- Added support for Postgress in the ODBC version
- Added "Allover" template utility for generating all SetAccess names
Version 3.22 (14 July 2003)
  - Added ds_DecrementCounterEx function.
- Documentation improved.  
 Version 3.21 
  - Changed all examples to compile in 32 bit
- Added ability to change date picture used on "Messages".
- Fixed problem on Operator Form when "Level" was translated.
Version 3.20
  - Added support for Makeover 2.5. If you are using Makeover version 2.5 (or
    later) then you MUST use Secwin version 3.2 (or later).  You can download
    the latest Makeover from 
	here.
- Dropped support for 16 bit. (If this is a problem for you let me know, but
    as far as I know no-one is actually using 16 bit, so it bloats the install
    for no good reason.)
- Clarion 4 Support Dropped : This version makes use of Clarion 5 language
    features. With the imminent release of Clarion 6, support of Clarion 4 is
    being phased out.
Version 3.19
  - Added ds_GetWorkGroupEx function. (returns
    a long, not a short)
- Added ds_CurrentWorkGroupEx function.
    (returns a long, not a short)
- Corrected docs - 30 controls allowed, not 31
- Set MySQL to create UpperCase table names
Version 3.16d beta 6
  - Added ds_CurrentlyLoggedInEx function
- Fixed message where too many users logged in - now correctly displays names
    of people already logged in.
Version 3.16c beta 5
  - fixed problem with translations on the SetAccess window
- fixed problem with messages being suppressed immediately after registering
- lengthened column headers from 9 to 20 characters
Version 3.16 beta 4
  - Fixed problem with InterBase support
- Added support for Pervasive.SQL driver
- Added ds_CurrentLastPasswordChange
    function
- Fixed problem with generating Login Screens to display after the Frame
Version 3.15 beta 3
  - Extended number of optional modules supported from 15 to 30.
- Support for MsSql, Oracle and ODBC (MySql / Interbase)  drivers completed.
    Examples included. See Security-File Driver
Version 3.1 beta 1
   Version 3.11 beta 2
  - Fixed some bugs in Splash, and SplashABC examples. Specifically a missing
    "do LoadQueue" from myBrowseOperators in SplashABC, and some code
    to both myBrowseOperators and mySetAcess to limit access to these screens
    to supervisors. Also ticked on the Password attribute for all password fields.
- Extended the Change Login Code template
    quite a bit. The menu item should now use this template, and not call ChangeLogin
    directly. Even if you are calling your own Change Login, you should still
    use this template from the menu.
- Changed the  Login template (internally)
    to support "only 3 tries" even if a myLogin screen is used.
- Changed the  Login template (internally)
    so that if a myLogin window is used, then it allows repeat attempts. This
    makes it consistent with the built-in Secwin login screen.
- Changed the  Login template (internally)
    to support Automatic Logins from other EXE's, even if a myLogin window is used.
- Added a new option to the Login template
    to allow you to specify the name of your MyFirstUser procedure.
- ds_CountUsers function added. 
    ds_InsertFirstUser function added. These are both necessary to take care
    of the case where no users exist in the system.
- Fixed bug in  ds_InsertUserEx function.
- Added myFirstUser procedure to Splash and SplashABC examples.
Version 3.0 Beta 5 :
SPECIAL NOTE : If you used Beta 3, or Beta 4, with any of the SQL driver
packs (MsSql, SQLAnywhere, Oracle, ODBC etc) then you will most likely need to
Drop all the DSSW
n Tables and let Secwin re-create them. This is due to
some changes which were required by SQL in order for Secwin to work properly.
  - New : Automatic Impending Expiry Date warning. See UserScreenSecurity
    extension.
-  New : Restrict Controls based on License Level. See UserScreenSecurity
    extension. 
-  New : Restrict Controls based on Optional Modules in License. See UserScreenSecurity
    extension.
-  New : Stores MDI Logo thread number in MdiLogoThread# in case you want
    to send it an event from the Frame.
- New : ds_SecwinMessage function.
- New :  The License file is now encrypted using triple DES. This prevents
    the license being changed by data file browsers.
-  Changed : AccessRestricted message moved from Template to DLL (to allow
    translating) by using ds_SecwinMessage.
- Improved : translation support, especially on SetAccess screen.
- Fixed : SQL support - now appears to be all working except for Concurrent
    copies checking
- Fixed : Disable Secwin now disables all CODE templates as required
- Fixed : User Group Form 'wot got broke in beta 4 like'.
- Fixed : Bug in Registration procedure which caused non-displayed optional
    modules to be set ON. When generating codes, non-visible optional modules
    are assumed to be OFF.
Version 3.0 Beta 4 :
  - Fixed bug in registration Code activations
- Fixed SQL support. Tested with MsSql - other tests hopefully coming soon
- Fixed bug in Btrieve, not allowing any operators.
- Fixed bug in Login window after frame opens. 
- Fixed bug in Translate feature on Set Access screen.
- Fixed problem where the Change and Delete buttons are not properly disabled
    in ABC.
- New : Multi-Set example - Demonstates Secwin in a Multi-Dataset application.
- New : Supports Template Driver setting of <nothing>
- New : Added option to set the Level of the Demo License. See Login
    Extension, Licensing Tab.
- New : MsSQL example included in the MsSQL driver pack.