SHERIFF SDK VERSION 3.0

This file updated: 13 April 2007

=============================================================================

WELCOME TO SHERIFF!

END USER LICENCE AGREEMENT
Use of Sheriff is subject to the terms & conditions of the
Sheriff User Agreement (EULA) shown in the documentation.

DOCUMENTATION
Run file Sheriff 3.0.chm or read Sheriff 3.0.pdf
Also available on-line at www.sheriff-software.com (Web help)

CONTACT
Web: http://www.sheriff-software.com
Email: support@sheriff-software.com

=============================================================================

WHAT'S NEW IN VERSION 3.0 (released 13 April 2007)

NEW FEATURES
-----------------------

Sheriff 3 utilises client/server architecture, which has been defined as "a computational architecture
that involves client processes requesting service from server processes". This differs from Sheriff 2
where a shared file was located on the server. In other words, with Sheriff 3 there are separate
Sheriff client/server applications whereas in Sheriff 2 the Sheriff applications only ran on the client.
Please read Sheriff Help topics 3.4 & 6.11 for further details.

=============================================================================

WHAT'S NEW IN VERSION 2.8.7 (released 8 December 2005)

BUG FIXES
---------------

1.	Under certain circumstances, such as when DirectX was involved, 
	Sheriff incorrectly reported "File Signature" error.

2.	In a network deployment with a large number of simultaneous users, 
	"File Locking" error could be generated.


NEW FEATURES
-----------------------

1.	SLS_GetVersion

	SLS_Version used to return the Major and Minor version number, 
	such as MajorVersion=2 and MinorVersion=8. From version 2.8.7, 
	the MinorVersion includes the Build version. For instance, 
	version 2.8.7 will be represented as MajorVersion=2, MinorVersion=87

2.	SLS_SetPermissions

	Sheriff requires write permission to its registry keys and licence files. 
	This new API function SLS_SetPermissions helps developers to set the 
	write access permission to all relevant registry keys and files. 
	SLS_SetPermissions must be called in the admin account, but only once for all. 
	Typically, it is called at installation.

3.	SLS_IsAdminAccount, SLS_IsLimitedAccount

	These two functions help developers to check whether the current
	user account is an admin or limited account.

4.	SLS_RemoveEx

	SLS_RemoveEx is an extended version of SLS_Remove. It works in the same way
	as the "Remove" function in the SlsAdmin application i.e. the user must generate
	a verifiable reference code prior to removal.

5.	SLS_GenerateRemoveReference (in SlsApiEx.h)

	Those using SLS_RemoveEx will need to call SLS_GenerateRemoveReference to
	create a remove reference. 

6.	SLS_SetSessionOptions

	Sheriff is very rigorous in locking the licence to its hosting machine. 
	Some locking mechanisms include Machine ID, Machine Signature, Disk Signature 
	and File Signature. Developers wish to relax some locks under certain circumstances. 
	This new API function SLS_SetSessionOptions can be called to temporarily bypass
	some of the locks within a session.

	The following locks can be bypassed with SLS_SetSessionOptions:

	#define SLS_BYPASS_MACHINE_ID			0x0001
	#define SLS_BYPASS_MACHINE_SIGNATURE		0x0002
	#define SLS_BYPASS_DISK_SIGNATURE		0x0004
	#define SLS_BYPASS_FILE_SIGNATURE		0x0008



WHAT'S NEW IN VERSION 2.8.6 (released 17 August 2005)

With the release of Sheriff 2.8 the time coordinate was changed from local to UTC -- 
the pupose of this was to permit a laptop to travel through time zones.  Prior to 2.8
codes were used to compensate for time zones but in 2.8 these codes were removed.  UTC
should be the same regardless time zones but it appears that it is not always the case
- UTC does seem to change.  With 2.8.6 the old codes have been restored.


WHAT'S NEW IN VERSION 2.8.5 (released 13 July 2005)

Bug fix: now compatible with licence files that were created with 2.8.1, 2.8.3

Files updated:

SlsAdmin.exe
SlsApi.dll
SlsApiEx.dll
Sheriff.dll
SlsLib.lib
SlsLibD.lib
SlsLibMFC.lib
SlsLibDMFC.lib


WHAT'S NEW IN VERSION 2.8.4 (c) (released 27 May 2005)

Updated file: Lictype.h


WHAT'S NEW IN VERSION 2.8.4 (b) (released 17 May 2005)

Three new functions to support SLS_Register:

1. SLS_SetPermissions
2. SLS_IsLimitedAccount
3. SLS_IsAdminAccount

See Sheriff Help topic 4.2.3.24 for further information.


WHAT'S NEW IN VERSION 2.8.4 (a) (released 12 May 2005)

- SlsService included in System Apps.  Enables SlsClock to be run as a service.  See Sheriff Help topic 5.5.1 for further information.
- Security bug fix.


WHAT'S NEW IN VERSION 2.8.3 (released 20 November 2004)

Fix for a bug in IsProductLicensed API function in 2.8.2

This file has been updated:

SlsApi.dll


WHAT'S NEW IN VERSION 2.8.2 (released 14 November 2004)

Fix for a bug in 2.8 that caused "Signature Error on Disk" when a Windows 9x PC is connecting to a network licence located on a remote NFTS disk.

These files have been updated:

Sheriff.dll
SheriffEx.dll
SheriffNet.dll
SlsAdmin.exe
SlsApi.dll
SlsApiEx.dll

SlsLib.lib
SlsLibD.lib
SlsLibEx.lib
SlsLibExD.lib

SlsLibDMFC.lib
SlsLibExDMFC.lib
SlsLibExMFC.lib
SlsLibMFC.lib


WHAT'S NEW IN VERSION 2.8 (released 28 September 2004)

- Enhancement -

Sheriff 2.8 includes a new API function SLS_QueryProductInfo, which returns the licence path of a registered product.

- Bug Fix -

A bug fix for the occasional Signature Error in file problem (which was caused by a Microsoft bug).

The following files have been updated:

SlsAdmin.exe

SlsApi.dll
SlsApiEx.dll
Sheriff.dll
SheriffEx.dll
SheriffNet.dll

SlsLibDMFC.lib
SlsLibExDMFC.lib
SlsLibExMFC.lib
SlsLibMFC.lib

SlsLib.lib
SlsLibD.lib
SlsLibEx.lib
SlsLibExD.lib

sheriff 2.8.chm


WHAT'S NEW IN VERSION 2.7 (released 25 March 2004)

Sheriff 2.7 which features improved stability in a networked environment.  Previously several instances of concurrent access to the licence database could corrupt the licence; the library now features an improved file locking mechanism.

The following files have been updated:

SlsAdmin.exe

SlsApi.dll
SlsApiEx.dll
Sheriff.dll
SheriffEx.dll
SheriffNet.dll

SlsLibDMFC.lib
SlsLibExDMFC.lib
SlsLibExMFC.lib
SlsLibMFC.lib

SlsLib.lib
SlsLibD.lib
SlsLibEx.lib
SlsLibExD.lib


WHAT'S NEW IN VERSION 2.6 (released 30 July 2003)

Bug Fix

Problems with import/export E.g when a licence is exported
and imported back to source machine.


WHAT'S NEW IN VERSION 2.5 (released 30 December 2002)

Bug Fixes

1. Fixes problems with "Invalid Machine Code" on machines running Windows98
   esp. on FAT32 partitions (common on networked drives).

2. Fixes daylight savings problem (rare).

3. A number of other small bug fixes.


DELPHI DEMO UPDATE (2 August 2001)

The Delphi demo files SlsApi.pas, CSheriff.pas and SlsDemo.dpr were
updated for compatibility with Delphi 5 and later versions.


WHAT'S NEW IN VERSION 2.43 (released 22 October 2000)

Bug in 2.41 causing "invalid machine code" has been fixed.


WHAT'S NEW IN VERSION 2.41 (released 13 October 2000)

(1) Variable CPU speed (such as Intel "SpeedStep") no longer a problem.

(2) "File Signature Error" with network licence in a mixed Windows O/S,
such as Windows 95/98, Windows NT/2000 has been fixed.


WHAT'S NEW IN VERSION 2.4 (released 10 September 2000)

Improvements

1. Sheriff Clock (SlsClock.exe) application added. Automatically synchronises the
   Sheriff internal clock over a network.  Application runs on network server.

2. Table of Contents page and Keyword tab added to Sheriff Help (sheriff.chm).

Bug Fixes

A number of small bug fixes have been implemented.  It is recommended that existing
users upgrade to 2.4 (there is no charge for upgrading and 2.4 is backward compatible
with earlier Sheriff 2 versions).


WHAT'S NEW IN VERSION 2.3 (released 9 January 2000)

Improvements

1. A new API function "GetVersion" is added to return the current version of
   the libraries.

2. A new option "Extend Existing Licence" is added to SlsGen to enable publishers
   to extend rather than replace an existing licence.

Bug Fixes

1. A minor bug in Sheriff Extended Library and ActiveX control is fixed.

2. A bug in "Move Licence" is fixed.


WHAT'S NEW IN VERSION 2.2 (released 21 November 1999)

1. Move Licence function enables licence file to be permanently relocated
   to another machine.

2. ActiveX version of Sheriff Extended API includes three new functions:

	GetRemovePassword
	VerifyStatusCode
	VerifyTerminationCode

3. Visual C++ standard libraries are now archived as a separate download.

4. User Guide (sheriff.chm) now lists all functions as separate topics.

5. Bug fix: "Invalid Machine Code" error appearing when daylight saving
   has been implemented on machines running NTFS.


WHAT'S NEW IN VERSION 2.1 (released 30 September 1999)

1. Sheriff ISR included in SDK.  Enables fully automatic and semi automatic
   distribution of licence keys from a web site using ASP or ISAPI (requires
   an NT web server).

2. Completely revised documentation (Sheriff.chm).

3. A number of minor bug fixes E.g. ability to use keyboard to copy & paste keys
   & reference codes.


WHAT'S NEW IN VERSION 2.00 (released 11 July 1999)

Sheriff protection can be implemented via ActiveX control.


WHAT'S NEW IN VERSION 1.70 (released 23 May 1999)

1. A new licence option "standalone licence" has been added. Standalone
   licence restricts the licence to a single machine i.e. cannot be shared
   over a network.

2. A new feature "publisher data" has been added, enabling publishers to
   extend the features of the basic licence.

3. A number of API functions has been added:

	SLS_ImportLicence		
	SLS_SetPublisherData	
	SLS_GetPublisherData	
	SLS_Remove		
	SLS_RequestEx		
	SLS_GetUserCount	
	SLS_QueryUserInfo	
	SLS_IsProductRegistered 
	SLS_IsProductLicensed	
	
   Please refer to documentation for details.

4. Check In/Check Out renamed to Import/Export and features have been
   substantially revised.

5. Lifetime Key/Reference Code renamed to Reusable Key/Reference Code.
6. Licence Generator application (SLSGEN.EXE) now features conventional
   drop-down menus.  Bug which restricted closing of Licence Generator to
   the 'Exit' button has been fixed.

7. The documentation format has changed from various MS Word docs to a single
   compiled HTML Help file (SHERIFF.CHM).  You will need MS Internet Explorer
   3.02 or above and the MS HTML Help viewer to view the contents.  Many systems
   already have these installed but if you do not have the viewer visit
   http://msdn.microsoft.com/workshop/author/htmlhelp/distrib.asp

8. On-line help for Sheriff applications is now in compiled HTML Help format -
   the files are SLSPSN.CHM, SLSGEN.CHM & SLSADMIN.CHM.  The source documents
   for SLSADMIN.CHM are included in the Apps\SlsAdmin Docs folder.


WHAT'S NEW IN VERSION 1.66 (released 20 April 1999)

1. New API functions SLS_GetStatusCode and SLS_ExportLicence are added. 
   SLS_GetStatusCode is called to get the latest licence status.
   SLS_ExportLicence is called to export licence.

2. "License Product" dialog box now shows the latest licence's status code 
   as well as the reference code. Publisher may ask for the status code 
   while the user is asking for licence renewal.

3. New feature "Remove" is added to the Administrator to remove a licence 
   completely from the PC. This facility is password protected. 
   The password required is generated from the "Licence Generator".

4. New features "Verify status code" and "Generate Remove Password" are 
   added to the Licence Generator.

5. Extended licence types are added, namely SLS_TYPE_LIFETIME_KEY, 
   SLS_TYPE_LIFETIME_REF and SLS_TYPE_UNEXPORTABLE.

6. A bug is fixed in the Administrator. The bug caused the "Generate" 
   button in the "Check Out" dialog box have to be hit multiple times.

7. Sheriff can now properly handle dockable laptop PCs.


WHAT'S NEW IN VERSION 1.65 (released 02 February 1999)

1. Addition of Visual FoxPro API Class & Demo

2. New API function SLS_SetOptions is added. SLS_SetOption is used for setting various
   licence options such as reclaim times. This function replaces SLS_SetReclaimTime.

3. New API function SLS_Terminate is added. SLS_Terminate terminatea the specified licence
   and returns a termination code which can be verified by the licence publisher.


WHAT'S NEW IN VERSION 1.64 (released 21 January 1999)

SlsGen amended to provide options to:

   (a) Generate a 'Lifetime' Reference Code when using the Expiry Date feature
       (enables publishers to issue new licence keys without asking user for
       a Reference Code - only applies when an Expiry Date has been set).

   (b) Disable the licence key check-in/check-out facility (enables publishers
       to issue a licence key that is bound to a specific machine and cannot be
       exported).


WHAT'S NEW IN VERSION 1.63 (released 29 December 1998)

1. SlsAdmin amended to show correct days left when using demo Product ID
   and to display same user twice if logged in twice.

2. API amended to provide compatibility with COM environment.


WHAT'S NEW IN VERSION 1.62 (released 18 November 1998)

1. The following data structures have been modified: SLS_DATE, SLS_LICENCE and 
   SLS_LICENCE_INFO. These are necessary because VB5 no longer supports user 
   specified data alignment.

2. Therefore the following files are updated: lictype.h, slsapi.bas and slsapi.pas 
   for VC, VB and Delphi respectively.

3. The following static link libraries are now provided for VC programmers who want 
   to link to the Sheriff API statically:

   SLSLIB.LIB	 	Sheriff API, Release build with multithread
   SLSLIBD.LIB	 	Sheriff API, Debug build with multithread
   SLSLIBEX.LIB	 	Sheriff Extended API, Release build with multithread
   SLSLIBEXD.LIB 	Sheriff Extended API, Debug build with multithread


=============================================================================

