|
METHODS
CalcUserId()
function CalcUserID(Uname:string):word;
This method takes a string parameter that may be the user name and return a number based in this parameter. Is used into the GetIcode() method to calculate the part of the InstallCode corresponding to the Use_Name source when this source is active into the InstallCodeSources property.
CheckKey()
function checkkey(m,v,a:word;ic,RKey:string):boolean;
This method does a verification of the key "RKey" passed as parameter. Call internally to the DecodeRegKey() method, then if the error code returned is zero (no error) return true else return false.
DecodeRegKey()
function DecodeRegKey(m,v,a:word;ic,RKey:string;var app_id, icod_ver,begindate,days:word;
var modul,users, instances, keytype:byte; var values:string):integer;
This method takes the following input parameters. The first ones (m,v,a,ic) with the purpose of verify the registration key comparing these values with the existing into the key.
m : (word) module number. (if 9999 this value will be not verified)
v : (word) version, valid for generic keys. (if 0 this value will be not verified)
a : (word) AppID. (if 0 this value will be not verified)
ic : (string) InstallCode. (if '' this value will be not verified)
RKey : (string) Registration Key.
The "RKey" Registration Key is decrypted and decoded into its component fields and returned into the following output parameters:
app_id : (word) AppID property
icod_ver : (word) ICode property. Version if the key is generic.
begindate : (word) StartDate. where start the authorized period for trial and temporary keys.
days : (word) Days of the authorized period for trial and temporary keys.
modul : (byte) Module number (0..254)
users : (byte) Number of users to share the key through the OLM.
One record for each user. the first primary and the others secondary.
instances : (byte) Number of instances allowed to run at once into the computer.
keytype : (byte) Type of Key (0=Trial, 1=Temporal, 2=Permanente, 3=Unregister, 4=UnregisterAll)
values : (string) Three hexadecimal digits to control several options into your application.
Return a integer value with the following meaning:
0: No error
1: Key length mismatch
2: Installcode mismatch
3: Validation error
4: AppID mismatch
5: Version mismatch
6: Module mismatch
DecodeAppData()
function DecodeAppData(appdata:string; var icsources:TInstallCodeSources;
var UsrNam,Comp,Eml,AppNam,AppVer,icsrc:string; var RanCod,OtherCod:word):boolean;
This method takes as input a string parameter with the application data read from the local disk, then decrypt, verify it with a internal checsum and decode this string into the following output parameters:
icsources: (TInstallCodeSources) InstallCodeSources property calculated from the below icsrc value.
UsrNam : (string) User name.
Comp : (string) User company.
Eml : (string) User email.
AppNam : (string) Application Name.
AppVer : (string) Application version.
icsrc : (string) string representation of the InstallCodeSources property (e.g.'11000')
RanCod : (word) RandomCode property.
OtherCod : (word) Propiedad OtherCode
Return True if the data is valid.
DecodeIcode()
function decodeicode(icode:string; var cod_name, cod_cpu, cod_hd, cod_rand, cod_other,checksum:word):boolean;
This method takes as input a string parameter "icode" with the InstallCode to be decoded. This input parameter must be in the following formatt: XXXXXX-XXXXXX-XXXXXX-XXXXXX. Then decrypt and decode this parameter into the following output parameters:
cod_name : (word)
cod_cpu : (word)
cod_hd : (word)
cod_rand : (word)
cod_other : (word)
checksum : (word)
If the calculated checksum match with the decoded checksum then return True else return False.
For more information see the InstallCode and InstallCodeSources properties.
EraseMod()
function TAVLockSimple.EraseMod(modul:byte):boolean;
Removes the local registration data for the given module.
EraseReg()
function EraseReg:boolean;
This method removes all modules and local application data from the local disk.
GenRegKey()
function GenRegKey(Values, AICode:string; Abegindate:tdate; Adays,AAppID:word;
AUsers, AInstances, Amodule, AKeyKind:byte):string;
This method returns a registration key calculated in basis to the given parameters. Not used directly. The methods GenGenericKey() and GenRegularKey() uses it internally.
GenGenericKey()
function GenGenericKey(AiCode, Values:string; Abegindate:tdate; Adays,
AVersionID,AAppID:word; AUsers, AInstances, Amodule, keytype:byte):string;
This method returns a generic registration key calculated in basis to the given parameters.
Values : (string) Three hexadecimal chars to control options into the application.
AICode : (string) Sumarized code (Checksum) from the Installcode.
Abegindate : (tdate) StartDate, date where start the authorized period for trial and temporary keys.
Adays : (word) Days of the authorized period for trial and temporary keys.
AVersionID : (word) VersionID. Value calculated from the version number.
AAppID : (word) AppID property.
AUsers : (byte) Number of users to share the key through the OLM.
AInstances : (byte) Number of instances allowed to run at once into the computer.
Amodule : (byte) Module number (0..254)
KeyType : (byte) Type of Key (0=Trial, 1=Temporal, 2=Permanente, 3=Unregister, 4=UnregisterAll)
This method is only used into the KeyGen and RegMonitor utilities.
GenRegularKey()
function GenRegularKey(AIcode, Values:string; Abegindate:tdate; Adays,
AAppID:word; AUsers, AInstances, Amodule, keytype:byte):string;
This method returns a regular registration key calculated in basis to the given parameters.
AICode : (string) Sumarized code (Checksum) from the Installcode.
Values : (string) Three hexadecimal chars to control options into the application.
Abegindate : (tdate) StartDate, date where start the authorized period for trial and temporary keys.
Adays : (word) Days of the authorizad period for trial and temporary keys.
AAppID : (word) AppID property.
AUsers : (byte) Number of users to share the key through the OLM.
AInstances : (byte) Number of instances allowed to run at once into the computer.
Amodule : (byte) Module number (0..254)
KeyType : (byte) Type of Key (0=Trial, 1=Temporal, 2=Permanente, 3=Unregister, 4=UnregisterAll)
GetKeyType()
function GetKeytype(Key:string):byte;
Return the key type from the geven "Key" parameter.
(0=Trial, 1=Temporal, 2=Permanent, 3=Unregister, 4=UnregisterAll).
GetICode()
procedure GetICode(var icode, installcode:string);
This method calculates the InstallCode Property from several sources coming from the hard and others according with the value for the InstallCodeSources property. Also return the ICode value as a checksum of all fields into the Installcode value. Below the figure outline it.

See also the ICode, InstallCode and InstallCodeSources properties.
GetModule()
function GetModule(nmod:byte; var ModData:TModuleData):boolean;
This method takes two parameters. You pass as input parameter the module number and as output parameter a record variable of type TModuleData which receive the fields retrieved from the module data into the local registration Data. Then return True if the operation has success.
Below is the definition for the type TModuleData. For more information see THE MODULES from the topic "How does AVLock SIMPLE Work?".
TRegStatus = (Unregistered, Moved, Expired, Registered);
TKeyType = (Trial, Temporal, Permanent, Unregister, UnregisterAll);
TModuleData = record
Status : TRegStatus;
KeyType : TKeyType;
Startdate : TDate;
EndDate : TDate;
Days : word;
Users : byte;
Instances : byte;
Primary : boolean;
DateBacked : boolean;
TooManyInstances : boolean;
Values : string;
Key : string;
//For secondary registrations
ICodeP : string;
InstallCodep : string;
end;
Understanding these fields
Status:
Unregistered : Data do not exists for the given module.
Expired : The authorized period finished. For trial and temporary keys. (not active)
Moved : The module is marked to be moved to another computer. (not active)
Registered : The module is registered and active.
KeyType:
Trial : The module is registered as trial.
Temporal : The module is registered as temporal.
Permanent : The module is registered at definitive way.
Unregister : The key will remove the registration data for the given module.
UnregisterAll : The key will remove all registration data for the application including all registered modules.
StartDate : date where start the authorized period for trial and temporary keys.
EndDate : Date where finishes the authorized period for a trial or temporal key
Days : Days of the authorized period for trial and temporary keys.
Users : Number of users to share the key through the OLM.
Instances : Number of instances allowed to run at once into the computer.
Primary : True for a primary registration and False for a secondary registration.
DateBacked : True if the system date was turned back.
TooManyInstances: True when the number of instances running on the computer exceed
the number of authorized instances.
Values : Three hexadecimal chars to control options into the application.
Key : Registration Key registered for the module.
ICodeP : Checksum from the Primary InstallCode. Only usable for secondary registrations.
InstllCodeP : InstallCode from the primary registration. Only usable for secondary registrations.
In the version 3.0 the RegStatus type was split into the two types TKeyType and TRegStatus defined above. Not all combinations are valid, below is a table for these possible combinations:
TKeyType TRegStatus Meanings
Trial Unregistered N/A (Unregistered mean the lack of registration)
Trial Moved Registration marked to be moved to another computer
(not functional) not usual for Trial Keys
Trial Expired Trial period expired
Trial Registered The key is saved and functional
Temporal Unregistered N/A (Unregistered mean the lack of registration)
Temporal Moved Registration marked to be moved to another computer
(not functional)
Temporal Expired Temporal period expired
Temporal Registered The key is saved and functional
Permanent Unregistered N/A (Unregistered mean the lack of registration)
Permanant Moved Registration marked to be moved to another computer
(not functional)
Permanent Expired N/A (permanent do not expire)
Permanent Registered The key is saved and functional
Unregister N/A The key is intended to delete the corresponding module
UnregisterAll N/A The key is intended to delete all modules and app data
IcodeSources2Str()
function IcodeSources2Str:string;
This method convert the InstallCodeSources property as a string of 8 binary digits (0/1). e.g. the property InstallCodeSources [CPU_ID, HD_SN] is converted to '11000'. This method is used internally to save the this property into the registration data. The methods Start() and WriteAppData() uses it internally.
IsLocal()
Function IsLocal:boolean;
Return True if the application is running at local way and return False if is executed from a remote location into the network.
MakeTrial()
procedure TAVLockSimple.MakeTrial(nmod,instances:byte; startdate:tdate; days:word);
This method generates a key of type trial and register it into the registration data according with the given parameters:
nmod = module number.
instances = max concurrent instances allowed.
startdate = date from where start the trial period.
days = days for the trial period.
ReadAppData()
function ReadAppData(update:boolean):boolean;
This method read the local registration data from the local disk. For more information see the section Local Registration Data from the "How does AVLock SIMPLE work".
The read data will be applied totally or partially to the component properties, depending of the 'update' parameter. By example if you call ReadAppData(True); all fields read will be applied to the component properties, else if you call ReadAppData(False); only the UserName, Company and Email properties will be updated. Internally the component uses this method, even as ReadAppData(False) to avoid overwrite needlessly identical values. Only into the RegMonitor utility we use True for the update parameter.
ReadLastDate()
procedure ReadLastDate;
This method read from the local registration data a date value saved previously the last time that the application runs. If this date is greater than the actual system date (with one day of tolerance to avoid problems with the timezone) the DateBAcked property is set to True. Also is read another value (Y/N) and assigned to the DateWarning property. This property is set to True when the date was moved, forward or backward more than 2 days. This may warn you when the date is manipulated perhaps with the intention of use the application illegally. Later you can test these values to execute the OnlineCheckDate() method in order to verify online the date. See the Demo1 sample.
ReadModule()
function ReadModule(nmod:byte):string;
This method read the registration data for the given module into the 'nmod' parameter. Decrypt the data and return a string of 87 characters with 5 concatenated fields. namely:
[Registration Key(31)]+[Moved(1)]+[Primary(1)]+[Primary InstallCode(27)]+[LocalInstallCode(27)]
This method is used internally for these methods: GetModule(), SetModuleMoved(), OnlineMoveReg() and OnlineCheckMoved(). See more information in the THE MODULES section into the "How AVLock SIMPLE works" topic.
RegisterKey()
function RegisterKey(Key:String):integer;
This method register a module using the key passed as parameter. Saves the key into the local disk together with another data concatenated as is explained in the previous section ReadModule(). For more information see the THE MODULES section into the "How AVLock SIMPLE works" topic.
ReStart()
procedure ReStart;
This method is used to call again the Start() method. This may be needed to refresh the values for some properties e.g. when the UserName and Company has been changed. (see Demo1).
Str2IcodeSources()
function Str2IcodeSources(s:string; var icsources:TInstallCodeSources):boolean;
This method is the counterpart of the ICodeSources2Str() method. Takes as input parameter a string of 5 binary values (0/1) e.g. '11000' and translates it to the output icsources parameter of type TInstallCodeSources. By example: for the input value '11000' return the output value [CPU_ID, HD_SN] with the two first sources checked. Return true if the operation has success. Is used internally by the DecodeAppData() method.
Start()
procedure Start;
This method is called only once when the application starts and is used to set up at runtime the values for some properties like InstallCode, ICode, DateBacked, UserName, Company, Email, etc.
UserNameFromWindows()
Function UserNameFromWindows: string;
Get and return the current registered user name from Windows.
WriteAppData()
procedure WriteAppData;
Saves some registration data shared by the whole application into a data file into the local disk. For more information see the
The Local Registration Data section into the "How AVLock SIMPLE works" topic.
WriteModule()
function WriteModule(RKey:string):boolean;
Saves a key into the local module data into the local disk. This must not be used directly into your application. Is used internally into the component for the methods that saves the registration key into the module data, namely: RegisterKey(), OnLineSynch(), OnlineStartTrial(), OnlineExtendTrial(), OnlineRegisterKey, etc.
WriteLastDate()
procedure WriteLastDate;
If the actual system date is greater than the LastDate property then this property is updated with the actual system date and saved into the local registration data. At this way the date value for LastDate will be equal to the highest system date ever reached. This value is saved in order to avoid the user move back the system date with the purpose to reutilize an expired trial period. See the DateBacked property.
METHODS FOR INTERNET ACCESS
Connected()
function Connected:boolean;
Return True if an internet connection is available.
OnlineCheckDate()
function OnlineCheckDate:boolean;
Access to the OLM into your web site and execute the script 'checkdate.php'. This script compares the system date with the internet date. If the difference is not greater than 1 day then set FDateWarning:=False; and FDAteBAcked:=False; and return True, otherwise return False. Is used to verify the current system date to avoid system date manipulations in order to use illegally your application. See into the Demo1 a sample using this method:
if AVLockS31.DateWarning or AVLockS31.DateBacked then begin
if not AVLockS31.OnlineCheckDate
then begin
showmessage('Your system data seems to be incorrect. Please review it, '+
'check your internet connection and try again.');
application.Terminate;
end;
end;
OnlineRequest()
function OnlineRequest(target:string; postdata, enkey2:AnsiString; web:string):AnsiString;
Do no use this function directly into your application. It is used for all function with access to the OLM.
OnlineRegisterKey()
function OnlineRegisterKey(Key:String):string;
Call the OLM using the advancedkeymanager.php script. The Key parameter is the registration key to be registered. Tis key and other related data is saved into the local registration data and also into the proper record into the OLM. Return a string with a code for the operation result, '00' if succeed. See the Demo1 sample.
For more information see the related section HOW TO REGISTER THE APPLICATION USING A REGISTRATION KEY into the "How AVLock SIMPLE Works" topic.
OnlineStartTrial()
function OnlineStartTrial(nmod:word):string;
This function start the trial period for the given module passed as parameter. Access to the OLM using the advancedkeymanager.php script. Return a string with a code for the operation result, '00' if succeed. See the Demo1 sample. For more information see the related section HOW TO START THE TRIAL PERIOD into the "How AVLock SIMPLE Works" topic.
OnlineExtendTrial()
function OnlineExtendTrial(nmod:word):string;
This function extend the trial period for the module passed as parameter.Access to the OLM using the advancedkeymanager.php script. Return a string with a code for the operation result, '00' if succeed. See the Demo1 sample. For more information see the related section HOW TO EXTEND THE TRIAL PERIOD into the "How AVLock SIMPLE Works" topic.
OnlineGetKeyB()
function OnlineGetKeyB(values:string; kind, nmod, days, inst:word):string;
This function start the trial period for the given module using the basic set of php scripts (basic OLM). Call the basickeymanager.php script which calculates a key based in the parameters passed and saves it into a file into the server. If this file already exists then read it and uses the existing key, this key is returned and saved into the local registration data, then return a string with a code for the operation result, '00' if succeed. See the Demo1 sample. For more information see the related section HOW TO START THE TRIAL PERIOD into the "How AVLock SIMPLE Works" topic.
OnlineGetKeyA()
function OnlineGetKeyA(values:string; kind, nmod, days, startdate, usrs, inst:word):string;
This function generates a registration key as the OnlineGetKeyB() does, but using the Advanced OLM, advancedkeymanager.php script. The key is generated using the given parameters but do not modify any data into the OLM or locally. We do not use it into the samples. Is available for you to be used under your own criteria, perhaps to create some kind of key generator.
OnlineMovePrimary1()
function OnlineMovePrimary1(nmod:word):string;
This function is used to mark a primary registration to be moved to another computer. Using the advancedkeymanager.php script (Adv.OLM), access to all records with the same given module number whose Primary InstallCode is equal to the local InstallCode coming from the computer, then set Moved=Y. It will deactivate the license for the primary registration and all associated secondary that shares the same license. Return a string with a code for the operation result, '00' if succeed. See the Demo1 sample.
OnlineMovePrimary2()
function OnlineMovePrimary2(OldIcode:string; nmod:word):string;
This function accomplish the second step for the process to move a primary registration from a computer to another. Using the advancedkeymanager.php script (Adv.OLM) generates a new Key based on the new Installcode coming from the new machine and using the same existing values (users, instances, startdate, days, kind and values). Then saves this new Key and InstallCode into the proper primary record and changes the secondary records with the new primary Installcode then set Moved=N to all involved records. Finally saves the new registration data into the local disk. If you will use this option for your application and also you set users greater than 1, allowing secondary registrations, also you would use the OnlineSynch() method to update the local registration data for secondary computers. Returns a string with a code for the operation result, '00' if succeed. See the Demo1 sample.
OnlineMoveSecondary1()
function OnlineMoveSecondary1(nmod:word):string;
This function marks a secondary registration to be moved to another computer. Using the advancedkeymanager.php script (Adv.OLM), access to the record for the given module 'nmod' and with its InstallCode matching with the local one coming from the computer and set Moved=Y. The record must be of type secondary. Return a string with a code for the operation result, '00' if succeed. See the Demo1 sample.
OnlineMoveSecondary2()
function OnlineMoveSecondary2(OldIcode:string; nmod:word):string;
This function accomplish the second step for the process to move a secondary registration from a computer to another. This function needs the InstallCode coming from the old computer to be passed into the OldIcode parameter. Using the advancedkeymanager.php script (Adv.OLM), access to the record for the given module 'nmod' and with the InstallCode matching with the OldIcode value and set Moved=Y. The record must be of type secondary. Return a string with a code for the operation result, '00' if succeed. See the Demo1 sample.
OnlineRestorePrimary()
function OnlineRestorePrimary(nmod:word):string;
After a call to OnlineMovePrimary1() you can undo it using this method OnlineRestorePrimary(). This function restores a primary registration to its previous status. Using the advancedkeymanager.php script (Adv.OLM), from the moved computer access to all involved records into the OLM then changes from Moved=Y to Moved=N. Returns a string with a code for the operation result, '00' if succeed. See the Demo1 sample.
OnlineRestoreSecondary()
function OnlineRestoreSecondary(nmod:word):string;
After a call to OnlineMoveSecondary1() you can undo it using this method OnlineRestoreSecondary(). This function restores a secondary registration to its previous status. Using the advancedkeymanager.php script (Adv.OLM), from the moved computer access to proper record into the OLM then changes from Moved=Y to Moved=N. Returns a string with a code for the operation result, '00' if succeed. See the Demo1 sample.
OnlineSynch()
function OnlineSynch(nmod:word):string;
This function restores the local registration data for the given module from the OLM using the advancedkeymanager.php script (Adv.OLM). Returns a string with a code for the operation result, '00' if succeed. See the Demo1 sample.
OnlineRenew()
function OnlineRenew(nmod:word):string;
This function using the advancedkeymanager.php script (Adv.OLM), generates a new Key according with the current values for the proper record in the OLM then saves it into the same record and return it to the application where is saved into the local registration data for the module. Returns a string with a code for the operation result, '00' if succeed. See the Demo1 sample.
For more information see the related section HOW TO REGISTER THE APPLICATION USING A REGISTRATION KEY into the "How AVLock SIMPLE Works" topic.
OnlineStartSecondary()
function OnLineStartSecondary(icodep:string; nmod:word):string;
This function uses the advancedkeymanager.php script (Adv.OLM) to generate a secondary registration for the given module 'nmod'. Also is pased the primary Installcode coming from the primary computer into the 'icodep' parameter. The allowed number of secondary registrations depends of the 'users' field included into the registered Key. By example, for users=4 only will be allowed 3 secondary records. Returns a string with a code for the operation result, '00' if succeed. See the Demo1 sample.
OnlineRemoveReg()
function OnlineRemoveReg(nmod:word):string;
This function uses the advancedkeymanager.php script (Adv.OLM) to remove the existing registration for the given module from both, the OLM and the local registration data. No matter if it is primary or secondary. Returns a string with a code for the operation result, '00' if succeed. See the Demo1 sample.
OnlineGetRegData()
function OnlineGetRegData(nmod:word):string;
Read the corresponding record from the OLM using the advancedkeymanager.php script (Adv.OLM) and return all fields into a string using '|' as separator as follow: (username |company |email |exten |paid1 |lastkey |days |keydate |move |instances |users |icsum |icodep |primar |vals |kind |startdate).
This function is used into the RegMonitor utility in order to implement the "Online Registration" tabsheet.
OnlineSaveUserData()
function OnlineSaveUserData(name,company,email:String; nmod:word):string;
This method takes the given data into the parameters name, company and email and saves it either, into the local application data and into the OLM using the advancedkeymanager.php script (Adv.OLM).
OnlineFullSynch()
function OnlineFullSynch(nmod:word):string;
This function uses the advancedkeymanager.php script (Adv.OLM) to access to the proper record into the OLM, if record exists the local registration data will be sinchronized from the OLM. Otherwise a new trial primary record will be added into the OLM. This method is used to full automate the most common tasks related to the OLM. See the Demo1 sample.
Useful methods added in v3.2
These are some useful methods added in this version in order to facilitate some common tasks dealing with error messages and the Values field.
These two methods deals with the Values field. The Values field takes three nibbles 1.5 byte (e.g. '000', 'ABF', etc). This field could be used to control several things into the application. By example you could use a nibble expressed as a binary representation (four 1/0 or True/False values) to enable/disable up to four features into your application. So the IsValueOn() method return one of these four values True/False from the given parameters. Also you could use other nibble converted into a integer value (0..15), or all three nibbles as a whole integer value (0..4095) in order to control other kind of feature e.g. to control the level of access into a database, see the Values2Num() method and demo1.
IsValueOn()
function IsValueOn(Values:string; nibble, digit:byte):boolean;
Takes three parameters; the Values field, the nibble (1..3) and the digit (0..3) and return True or False according with the status of the implied bit into the Values field.
Values2Num()
function Values2Num(Values:string; nibble:byte):integer;
Takes two parameters; the Values field and the selected nibble. If nibble is 0 then return the three nibbles as a whole integer value.
In the image below you can see some samples using these two methods.

The following two methods are intended to deal with registration status messages and error messages. The source code is included, so if you like you can create your own functions in order to customize it.
Status2Str()
function Status2Str(Module:TModuleData):string;
Return a string with a message about the status of the module passed as parameter. Below is the source code.
function TAVLockS3.Status2Str(Module:TModuleData):string;
var s:string;
begin
s:='';
if Module.DateBacked then s:='Bad system date'
else
case Module.KeyType of
Trial: s:=s+'Trial';
Temporal: s:=s+'Temporary';
Permanent: s:=s+'Registered';
end;
case Module.Status of
Unregistered: s:='Unregistered';
Expired: s:=s+'-Expired';
Moved: s:=s+'-Moved';
Registered:
if (Module.KeyType in[Trial,Temporal])
then s:=s+', '+inttostr(Module.DaysLeft)+' days left';
end;
result:=s;
end;
Status2Str()
function OlmError2Str(err:string):string;
Return a string with the error message for the given err parameter which must take two decimal digits (e.g. '01', '02', etc).
When the value is between '00' and '11' then this is coming from the online method into the component (e.g. OnlineStartTrial(), OnlineRenew(), etc), but when the value is between '50' and '72' this is a response coming from the OLM. Below is the source code.
function TAVLockS3.OlmError2Str(err:string):string;
var n:integer;
ok:boolean;
s:string;
begin
result:=''; s:='';
ok:=((length(err)=2) and (err[1] in['0'..'9']) and (err[2] in['0'..'9']));
if ok then n:=strtoint(err);
if (n in[0,50]) then exit;
if (n in [1..10]) then result:='Error: '
else if (n in [51..72]) then result:= 'OLM ERROR: ';
case n of
0 : s:='No error';
1 : s:='Could not write module';
2 : s:='Bad response from OLM request';
3 : s:='Unregistered';
4 : s:='Invalid Registration Key';
5 : s:='Local Data not Primary or Moved';
6 : s:='Local Data not Primary or not Moved';
7 : s:='Local Data Primary or Moved';
8 : s:='Local Data Primary or not Moved';
9 : s:='Local Data is Primary';
10 : s:='Local Data is Secondary';
11 : s:='Could not delete local module';
50 : s:='NO ERROR';
51 : s:='VALUES_POSTED_COUNT_MISMATCH';
52 : s:='NO_DATA_POSTE';
53 : s:='ICODE_LENGTH_MISMATCH';
54 : s:='ICSUM_LENGTH_MISMATCH';
55 : s:='SECONDARY_LINKED_TO_SECONDARY';
56 : s:='PRIMARY_NOT_EXISTS';
57 : s:='KEY_LENGTH_MISMATCH';
58 : s:='COULD_NOT_UPDATE_RECORDS';
59 : s:='COULD_NOT_CONNECT_TO_DATABASE';
60 : s:='NOT_EXTENSION_ALLOWED';
61 : s:='NOT_MORE_USERS_ALLOWED';
62 : s:='COULD_NOT_CONNECT_TO_DATABASE';
63 : s:='NOT_PAID';
64 : s:='COULD_NOT_DELETE_RECORDS';
65 : s:='RECORD_ALREADY_EXISTS';
66 : s:='RECORD_NOT_EXISTS';
67 : s:='RECORD_NOT_SAVED';
68 : s:='RECORD_IS_NOT_PRIMARY';
69 : s:='RECORD_IS_NOT_SECONDARY';
70 : s:='RECORD_IS_NOT_MOVED';
71 : s:='RECORD_IS_MOVED';
72 : s:='COUNT_OF_RECORDS_IS_ZERO';
else s:='Unknown error';
end;
result:=result+s;
end;
I tried to make this help file clear, readable and complete, this is my goal, but it is possible that I leave behind some important things that you were expecting. So, if you miss something or have found bugs or have some idea to improve this help, please let me know.
|
Alcides Valega
Author of AVLock SIMPLE
|
|