home *** CD-ROM | disk | FTP | other *** search
- unit SlsApi;
-
- {$ALIGN OFF}
-
- interface
-
- {Challenge protocol}
- Const SLS_NO_PROTOCOL = $0;
- Const SLS_BASIC_PROTOCOL = $1;
-
- {state of licence}
- Const SLS_STATE_UNDEFINED = $0; {Licence type and contents to be specified}
- Const SLS_STATE_BAD = $1; {Licence has being illegally modified}
- Const SLS_STATE_EXPIRED = $2; {Licence has expired}
- Const SLS_STATE_EXHAUSTED = $3; {Licence units has run out}
- Const SLS_STATE_OK = $8; {Licence is valid}
-
- {type of licence}
- Const SLS_TYPE_UNDEFINED = $0; {Undefined}
- Const SLS_TYPE_UNIT_METER = $1; {Unit Metering}
- Const SLS_TYPE_TIME_METER = $2; {Time Metering}
- Const SLS_TYPE_EXPIRATION = $4; {Expiry Control}
- Const SLS_TYPE_CONCURRENCY = $8; {Concurrency Control}
- Const SLS_TYPE_UNLIMITED = $10; {Unlimited/Unrestricted}
- Const SLS_TYPE_LIFETIME_KEY = $100; {lifetime key}
- Const SLS_TYPE_LIFETIME_REF = $200; {lifetime reference}
- Const SLS_TYPE_UNEXPORTABLE = $400; {lifetime key}
-
- {Everything is fine}
- Const SLS_SUCCESS = $0;
- {General Error (unknown error)}
- Const SLS_ERROR = $80041000;
-
- {Error Codes}
- {System Error}
- Const SLS_E_SYSTEM_ERROR = $80041001;
- {Invalid Product Code}
- Const SLS_E_PRODUCT_CODE = $80041002;
- {Invalid Reference Code}
- Const SLS_E_REFERENCE_CODE = $80041003;
- {Invalid Machine Code}
- Const SLS_E_MACHINE_CODE = $80041004;
- {Invalid System Time}
- Const SLS_E_SYSTEM_TIME = $80041005;
- {Not Enough Memory}
- Const SLS_E_OUT_OF_MEMORY = $80041006;
- {Not Enough Handle}
- Const SLS_E_OUT_OF_HANDLE = $80041007;
- {Illegal Challenge}
- Const SLS_E_CHALLENGE_ILLEGAL = $80041008;
- {Unsuported challenge}
- Const SLS_E_CHALLENGE_UNSUPORTED = $80041009;
- {Connction Sink ID invalid}
- Const SLS_E_CONNECTION_ID = $8004100A;
- {Invalid Queue Number}
- Const SLS_E_QUEUE_NUMBER = $8004100B;
- {Queue Too Long}
- Const SLS_E_QUEUE_TOO_LONG = $8004100C;
- {Failed To Locate Database Path}
- Const SLS_E_DATABASE_PATH = $8004100D;
- {Invalid SuitID}
- Const SLS_E_SUIT_ID = $8004100E;
- {Unregistered Suit}
- Const SLS_E_SUIT_UNREGISTERED = $8004100F;
- {Invalid Augument passed to function}
- Const SLS_E_AUGUMENT_INVALID = $80041010;
- {Invalid Handle}
- Const SLS_E_LICENCE_HANDLE = $80041011;
- {Unregistered product/licence}
- Const SLS_E_LICENCE_UNREGISTERED = $80041012;
- {Licence Undefined}
- Const SLS_E_LICENCE_UNDEFINED = $80041013;
- {Licence (run out of cocurrent users)}
- Const SLS_E_LICENCE_EXCEEDED = $80041014;
- {Licence Exhausted (run out of meter units)}
- Const SLS_E_LICENCE_EXHAUSTED = $80041015;
- {Licence Expired}
- Const SLS_E_LICENCE_EXPIRED = $80041016;
- {Licence Invalid (corrupted, tamped)}
- Const SLS_E_LICENCE_INVALID = $80041017;
- {Licence Suspended}
- Const SLS_E_LICENCE_SUSPENDED = $80041018;
- {Licence Terminated}
- Const SLS_E_LICENCE_TERMINATED = $80041019;
- {Licence Unavaliable}
- Const SLS_E_LICENCE_UNAVAILABLE = $8004101A;
- {Licence unit not defined}
- Const SLS_E_UNIT_UNDEFINED = $8004101B;
- {Licence unit shortage (units been reserved)}
- Const SLS_E_UNIT_EXCEEDED = $8004101C;
- {Index used to enumerate products}
- Const SLS_E_PRODUCT_INDEX = $8004101D;
- {Bad Secret}
- Const SLS_E_BAD_SECRET = $8004101E;
- {Bad MAC(Message Authentication Code)}
- Const SLS_E_BAD_MAC = $8004101F;
-
- {Licence File Error(used by Sheriff only)}
- {The file could not be located.}
- Const SLS_E_FILE_NOT_FOUND = $80041020;
- {All or part of the path is invalid.}
- Const SLS_E_FILE_BAD_PATH = $80041021;
- {The permitted number of open files was exceeded.}
- Const SLS_E_FILE_TOO_MANY = $80041022;
- {The file could not be accessed}
- Const SLS_E_FILE_ACCESS_DENIED = $80041023;
- {There was an attempt to use an invalid file handle.}
- Const SLS_E_FILE_BAD_HANDLE = $80041024;
- {There was an error trying to set the file pointer.}
- Const SLS_E_FILE_BAD_SEEK = $80041025;
- {There was a hardware error.}
- Const SLS_E_FILE_HARDIO = $80041026;
- {SHARE.EXE was not loaded, or a shared region was locked.}
- Const SLS_E_FILE_SHARING = $80041027;
- {There was an attempt to lock a region that was already locked.}
- Const SLS_E_FILE_LOCKING = $80041028;
- {The disk is full.}
- Const SLS_E_FILE_DISK_FULL = $80041029;
- {The end of file was reached.}
- Const SLS_E_FILE_EOF = $8004102A;
- {CRC error}
- Const SLS_E_FILE_BAD_CRC = $8004102B;
- {Signature error}
- Const SLS_E_FILE_BAD_SIGNATURE = $8004102C;
- {Corruption}
- Const SLS_E_FILE_BAD_DATA = $8004102D;
- {Disk Signature error}
- Const SLS_E_DISK_BAD_SIGNATURE = $8004102E;
-
- {Invalid Licence Path}
- Const SLS_E_PATH_INVALID = $80041030;
- {Failed to create licecne path}
- Const SLS_E_PATH_CREATE = $80041031;
- {Access(Read/Write) Denied}
- Const SLS_E_PATH_ACCESS_DENIED = $80041032;
- {Registery operation failure}
- Const SLS_E_REG_FAILURE = $80041033;
- {Licence File been tampered}
- Const SLS_E_BAD_LICENCE = $80041034;
- {Registry has been tampered}
- Const SLS_E_BAD_REGISTRY = $80041035;
- {Machine Signature is wrong}
- Const SLS_E_BAD_MACHINE = $80041036;
- {Failed to get machine code}
- Const SLS_E_OP_MACHINE_CODE = $80041037;
- {Failed to get machine signature}
- Const SLS_E_OP_MACHINE_SIGN = $80041038;
- {Failed to get file signature}
- Const SLS_E_OP_FILE_SIGN = $80041039;
- {Failed to get disk signature}
- Const SLS_E_OP_DISK_SIGN = $8004103A;
-
-
- type
- DWORD=LongInt;
- HRESULT=LongInt;
- SLS_HANDLE=DWORD;
-
- SLS_DATE = record
- Year: DWORD;
- Month: DWORD;
- Day: DWORD;
- end;
-
- SLS_LICENCE = record
- LicenceType:DWORD; {type of licence}
- Meter: DWORD; {for metering, e.g. Unit, Time mertering}
- EndDate: SLS_DATE; {for expiration date}
- CoUsers: DWORD; {Concurrent users}
- AccessKey: DWORD; {Access control key}
- end;
-
- SLS_REQUEST = record
- UnitsReserved:DWORD;
- end;
-
- SLS_PERMIT = record
- UnitsGranted:DWORD;
- AccessKey:DWORD;
- end;
-
- SLS_UPDATE = record
- UnitsReserved:DWORD;
- UnitsConsumed:DWORD;
- end;
-
- SLS_RELEASE = record
- UnitsConsumed:DWORD;
- end;
-
- {types for challenging}
- SLS_MSG_DIGEST = record
- MessageDigest: array[0..15] of char; {binary data}
- end;
-
- SLS_CHALLDATA = record
- SecretIndex:DWORD;
- Random:DWORD;
- MsgDigest:SLS_MSG_DIGEST;
- end;
-
- SLS_CHALLENGE = record
- Protocol:DWORD;
- Size:DWORD;
- ChallengeData:SLS_CHALLDATA;
- end;
-
- {Secret used for challenge}
- SLS_SECRET = record
- Secret:array[0..31] of char;
- end;
-
- SLS_LICENCE_INFO = record
- {Licence Part}
- LicenceType:DWORD; {type of licence}
- Meter: DWORD; {Units or Days limit}
- EndDate: SLS_DATE; {Expiration date}
- CoUsers: DWORD; {Concurrent users}
- AccessKey: DWORD; {Access control key}
- {Usage Part}
- State: DWORD; {State of licence}
- MeterUsage: DWORD; {for metering only(units used, days used)}
- StartDate: SLS_DATE; {Start date}
- ActiveUsers:DWORD; {Number of active users}
- end;
-
- SLS_OPTIONS = record
- MinReclaimTime:DWORD;
- MaxReclaimTime:DWORD;
- Reserved1:DWORD;
- Reserved2:DWORD;
- end;
-
- function SLS_Register( pszProductID:PChar;
- pszProductName:PChar;
- pszLicencePath:PChar):HRESULT; stdcall;
- function SLS_Licenses(pszProductID:PChar;
- var pLicence:SLS_LICENCE;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
-
- function SLS_Requests(pszProductID:PChar;
- pszUserName:PChar;
- var pRequest:SLS_REQUEST;
- var pPermit:SLS_PERMIT;
- var plLicenceHandle:SLS_HANDLE;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
-
- function SLS_Updates(pszProductID:PChar;
- lLicenceHandle:SLS_HANDLE;
- var pUpdate:SLS_UPDATE;
- var pPermit:SLS_PERMIT;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
-
- function SLS_Releases(pszProductID:PChar;
- lLicenceHandle:SLS_HANDLE;
- var pRelease:SLS_RELEASE;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
-
- function SLS_GetReference(pszProductID:PChar;
- var pszReference:array of char):HRESULT; stdcall;
-
- function SLS_SetLicence(pszProductID:PChar;
- pszReference:PChar;
- pszLicenceKey:PChar):HRESULT; stdcall;
-
- function SLS_QueryLicenceInfo(pszProductID:PChar;
- var pLicenceInfo:SLS_LICENCE_INFO):HRESULT; stdcall;
-
- //Challenge
- function SLS_CreateChallenge(
- SecretArray:Pointer;
- nSecrectSize:Integer;
- pbStream:Pointer;
- nStreamSize:Integer;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
-
- function SLS_VerifyChallenge(
- SecretArray:Pointer;
- nSecrectSize:Integer;
- pbStream:Pointer;
- nStreamSize:Integer;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
-
- {SLS_GetErrorMessage
- Get Error Mesaage. pszErrorMessage points to buffer allocated by caller,
- the minimum length of the buffer is 256 bytes}
- function SLS_GetErrorMessage(hr:HRESULT;pszErrorMessage:PChar):HRESULT; stdcall;
-
- {Others}
- function SLS_IsProductInstalled(pszProductID:PChar):HRESULT; stdcall;
- function SLS_SetReclaimTime(nMinutes:Integer):HRESULT; stdcall;
-
- implementation
- function SLS_Register( pszProductID:PChar;
- pszProductName:PChar;
- pszLicencePath:PChar):Longint; stdcall;
- external 'slsapi.dll';
-
- function SLS_Licenses(pszProductID:PChar;
- var pLicence:SLS_LICENCE;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
- external 'slsapi.dll' name 'SLS_License';
-
- function SLS_Requests(pszProductID:PChar;
- pszUserName:PChar;
- var pRequest:SLS_REQUEST;
- var pPermit:SLS_PERMIT;
- var plLicenceHandle:SLS_HANDLE;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
- external 'slsapi.dll' name 'SLS_Request';
-
- function SLS_Updates(pszProductID:PChar;
- lLicenceHandle:SLS_HANDLE;
- var pUpdate:SLS_UPDATE;
- var pPermit:SLS_PERMIT;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
- external 'slsapi.dll' name 'SLS_Update';
-
- function SLS_Releases(pszProductID:PChar;
- lLicenceHandle:SLS_HANDLE;
- var pRelease:SLS_RELEASE;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
- external 'slsapi.dll' name 'SLS_Release';
-
- function SLS_GetReference(pszProductID:PChar;
- var pszReference:array of char):HRESULT; stdcall;
- external 'slsapi.dll';
-
- function SLS_SetLicence(pszProductID:PChar;
- pszReference:PChar;
- pszLicenceKey:PChar):HRESULT; stdcall;
- external 'slsapi.dll';
-
- function SLS_QueryLicenceInfo(pszProductID:PChar;
- var pLicenceInfo:SLS_LICENCE_INFO):HRESULT; stdcall;
- external 'slsapi.dll';
-
- //Challenge
- function SLS_CreateChallenge(
- SecretArray:Pointer;
- nSecrectSize:Integer;
- pbStream:Pointer;
- nStreamSize:Integer;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
- external 'slsapi.dll';
-
- function SLS_VerifyChallenge(
- SecretArray:Pointer;
- nSecrectSize:Integer;
- pbStream:Pointer;
- nStreamSize:Integer;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
- external 'slsapi.dll';
-
- {SLS_GetErrorMessage
- Get Error Mesaage. pszErrorMessage points to buffer allocated by caller,
- the minimum length of the buffer is 256 bytes}
- function SLS_GetErrorMessage(hr:HRESULT;pszErrorMessage:PChar):HRESULT; stdcall;
- external 'slsapi.dll';
-
- {Others}
- function SLS_IsProductInstalled(pszProductID:PChar):HRESULT; stdcall;
- external 'slsapi.dll';
-
- function SLS_SetReclaimTime(nMinutes:Integer):HRESULT; stdcall;
- external 'slsapi.dll';
-
- function SLS_SetOptions(pszProductID:PChar;
- lLicenceHandle:SLS_HANDLE;
- var pOptions:SLS_OPTIONS;
- var pChallenge:SLS_CHALLENGE):HRESULT; stdcall;
- external 'slsapi.dll';
-
- function SLS_Terminate(pszProductID:PChar;
- var pszTerminationCode:array of char):HRESULT; stdcall;
- external 'slsapi.dll';
-
- end.
-
-