LucEngelen
asked on
How do I deal with an Interface type returned by a function in a Type Libary
I've got a vendor supplied DLL that implements an interface to an external hardware device.
My problem is that this type library contains functions that return interfaces rather than instantiated objects that I can manipulate. I'm trying to set and read the time on the device in question, and in order to do so, I need to call 3 functions;
1. RetrieveMAConfig() - Returns an interface to other functions which I need to call
2. SetDateTimeConf() to set the time
3. GetParam() to read the time
The following code compiles, but it results in an access violation if I do anything further with options:
procedure DoSomething;
var
terminal : TMATerminal;
result : integer;
options : IMAOptions;
begin
terminal := TMATerminal.Create(nil);
terminal.SetParam('IPADRES S', '192.168.73.244');
terminal.SetParam('PORTNUM BER', 11010);
result := terminal.RetrieveMAConfig( options, 5000, 1);
// Access violation follows
options.SetDateTimeConf('0 1011012100 0');
end;
My question is, how do I deal with this interface returned by RetrieveMAConfig()? I'm fairly new to COM programming, and I've never come across a DLL that returns an interface like this.
Specifically, how do I call options.SetDateTimeConf('0 1011012100 0') so that I don't get an access violation?
Function declarations:
-------------------------- -
RetrieveMAConfig(const MAOpt: IMAOptions; TIMEOUT: Integer; WiegandOrDC: Integer): Smallint;
SetDateTimeConf(const DateTime: WideString); safecall;
GetParam(const ParamName: WideString; var Value: OleVariant); safecall;
I've attached the delphi generated TLB file below:
My problem is that this type library contains functions that return interfaces rather than instantiated objects that I can manipulate. I'm trying to set and read the time on the device in question, and in order to do so, I need to call 3 functions;
1. RetrieveMAConfig() - Returns an interface to other functions which I need to call
2. SetDateTimeConf() to set the time
3. GetParam() to read the time
The following code compiles, but it results in an access violation if I do anything further with options:
procedure DoSomething;
var
terminal : TMATerminal;
result : integer;
options : IMAOptions;
begin
terminal := TMATerminal.Create(nil);
terminal.SetParam('IPADRES
terminal.SetParam('PORTNUM
result := terminal.RetrieveMAConfig(
// Access violation follows
options.SetDateTimeConf('0
end;
My question is, how do I deal with this interface returned by RetrieveMAConfig()? I'm fairly new to COM programming, and I've never come across a DLL that returns an interface like this.
Specifically, how do I call options.SetDateTimeConf('0
Function declarations:
--------------------------
RetrieveMAConfig(const MAOpt: IMAOptions; TIMEOUT: Integer; WiegandOrDC: Integer): Smallint;
SetDateTimeConf(const DateTime: WideString); safecall;
GetParam(const ParamName: WideString; var Value: OleVariant); safecall;
I've attached the delphi generated TLB file below:
unit ACTIVE_MACILib_TLB;
// ************************************************************************ //
// WARNING
// -------
// The types declared in this file were generated from data read from a
// Type Library. If this type library is explicitly or indirectly (via
// another type library referring to this type library) re-imported, or the
// 'Refresh' command of the Type Library Editor activated while editing the
// Type Library, the contents of this file will be regenerated and all
// manual modifications will be lost.
// ************************************************************************ //
// $Rev: 8291 $
// File generated on 16/03/2009 3:47:18 p.m. from Type Library described below.
// ************************************************************************ //
// Type Lib: C:\SAGEM\Morpho Components\Active_MACI\lib\Active_MACI.dll (1)
// LIBID: {F2165BA4-8A7F-4438-B48B-C3C921ADD904}
// LCID: 0
// Helpfile:
// HelpString: Active_MACI 1.0 Type Library
// DepndLst:
// (1) v2.0 stdole, (C:\WINDOWS\system32\stdole2.tlb)
// Errors:
// Hint: Parameter 'Private' of IMADB.AddField changed to 'Private_'
// Hint: Parameter 'Record' of IMATerminal.AddRecord changed to 'Record_'
// Hint: Parameter 'Record' of IMATerminal.RemoveRecord changed to 'Record_'
// ************************************************************************ //
// *************************************************************************//
// NOTE:
// Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties
// which return objects that may need to be explicitly created via a function
// call prior to any access via the property. These items have been disabled
// in order to prevent accidental use from within the object inspector. You
// may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively
// removing them from the $IFDEF blocks. However, such items must still be
// programmatically created via a method of the appropriate CoClass before
// they can be used.
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{$VARPROPSETTER ON}
interface
uses Windows, ActiveX, Classes, Graphics, OleServer, StdVCL, Variants;
// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:
// Type Libraries : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces: IID_xxxx
// *********************************************************************//
const
// TypeLibrary Major and minor versions
ACTIVE_MACILibMajorVersion = 1;
ACTIVE_MACILibMinorVersion = 0;
LIBID_ACTIVE_MACILib: TGUID = '{F2165BA4-8A7F-4438-B48B-C3C921ADD904}';
IID_IMADB: TGUID = '{09EC1A0D-110F-43F0-B239-D381239BF3EC}';
CLASS_MADB: TGUID = '{2E9D2D26-C23F-41DA-BB63-E3E24CB09452}';
IID_IMARecord: TGUID = '{72888AD7-0605-496D-9F8C-E7D79A3F8CEA}';
IID_IMADBReport: TGUID = '{E960E9B1-5CA8-4266-AFCD-4A508A461F5E}';
CLASS_MADBReport: TGUID = '{43EAB047-00AD-4756-AA04-9D47F4EE9E1C}';
IID_IMALogReport: TGUID = '{BD2B4865-41B5-4F22-AEA3-25B492B66313}';
CLASS_MALogReport: TGUID = '{483523F4-6F55-4342-9879-D319643555E4}';
IID_IMALogs: TGUID = '{E5A8DA50-ED4A-4892-8183-4A2C31C12BCE}';
CLASS_MALogs: TGUID = '{83D74537-6A08-4A5E-970C-DB2FA859F068}';
IID_IMAOptions: TGUID = '{486F39E1-E6E8-4A6C-AC2C-2C936FA58A7E}';
CLASS_MAOptions: TGUID = '{AA8522E7-E4DF-4C8B-8FB3-595EBDD3F951}';
CLASS_MARecord: TGUID = '{BD7E3E65-7D36-45A5-B86E-2FA853A9A738}';
IID_IMATerminal: TGUID = '{D92A279C-46AA-4908-9F4D-8BE4F6D2256A}';
CLASS_MATerminal: TGUID = '{5960999D-2C1D-4781-8815-D1A363F0F5AA}';
// *********************************************************************//
// Declaration of Enumerations defined in Type Library
// *********************************************************************//
// Constants for enum MATYPES
type
MATYPES = TOleEnum;
const
MAUNKNOWN = $00000000;
MA100 = $00000064;
MA110 = $0000006E;
MA120 = $00000078;
MA121 = $00000079;
MA200 = $000000C8;
MA201 = $000000C9;
MA220 = $000000DC;
MA221 = $000000DD;
MA300 = $0000012C;
MA301 = $0000012D;
MA320 = $00000140;
MA321 = $00000141;
MA5xx = $000001F4;
MA500 = $000001F4;
MA520 = $00000208;
MA521 = $00000209;
// Constants for enum HOSTCOM
type
HOSTCOM = TOleEnum;
const
HC_STANDALONE = $00000000;
HC_COM1 = $00000001;
HC_COM2 = $00000002;
HC_ETHERNET = $00000003;
// Constants for enum MODE
type
MODE = TOleEnum;
const
MODE_IDENT = $00000000;
MODE_AUTHENT = $00000001;
MODE_PROXY = $00000002;
MODE_CNTLWODB = $00000003;
MODE_CNTLWDB = $00000004;
MODE_FUSION = $00000005;
// Constants for enum READER
type
READER = TOleEnum;
const
NOREADER = $00000000;
DEISTER = $00000001;
ACG = $00000002;
KEYA = $00000001;
KEYB = $00000002;
// Constants for enum PORTID
type
PORTID = TOleEnum;
const
IDCOM1 = $00000006;
IDCOM2 = $00000007;
IDWIEGAND = $00000009;
IDDATACLOCK = $0000001B;
// Constants for enum COMSPEED
type
COMSPEED = TOleEnum;
const
_1200BDS = $00000000;
_2400BDS = $00000001;
_4800BDS = $00000002;
_9600BDS = $00000003;
_19200BDS = $00000004;
_28800BDS = $00000005;
_38400BDS = $00000006;
_57600BDS = $00000007;
_115200BDS = $00000008;
// Constants for enum COMPARITY
type
COMPARITY = TOleEnum;
const
PARITYNO = $00000000;
PARITYODD = $00000001;
PARITYEVEN = $00000002;
// Constants for enum COMFLOWCTRL
type
COMFLOWCTRL = TOleEnum;
const
FLOWCTRLNO = $00000000;
FLOWCTRLRTSCTS = $00000001;
FLOWCTRLXONOFF = $00000002;
// Constants for enum ComFormat
type
ComFormat = TOleEnum;
const
ASCIIFORMAT = $00000000;
BINFORMAT = $00000001;
BCDFORMAT = $00000002;
// Constants for enum DCLEVEL
type
DCLEVEL = TOleEnum;
const
DCLEVELNOINVERT = $00000000;
DCLEVELSTROBEINVERT = $00000001;
DCLEVELDATAINVERT = $00000002;
DCLEVELALLINVERT = $00000003;
// Constants for enum WDCCONF
type
WDCCONF = TOleEnum;
const
WIEGANDCONF = $00000001;
DATACLOCKCONF = $00000000;
// Constants for enum LANG
type
LANG = TOleEnum;
const
ENGLISH = $00000000;
SPANISH = $00000001;
FRENCH = $00000002;
CUSTOMLANG = $00000003;
// Constants for enum BIOSTATUS
type
BIOSTATUS = TOleEnum;
const
BIO_OK = $00000000;
BIO_NOT_OK = $00000001;
LATENT_DETECTED = $00000002;
FAKE_FINGER_DETECTED = $00000022;
// Constants for enum MAERROR
type
MAERROR = TOleEnum;
const
ILVOK = $00000000;
WAIT_BIO = $00000001;
BAD_IP_OR_PORT = $00000002;
NO_CONNECTION = $00000003;
NO_SENT = $00000004;
BAD_RESPONSE_SIZE = $00000005;
BAD_RESPONSE_TYPE = $00000006;
MA_DESFIRE = $00000007;
DOWNLOAD_STOP = $00000008;
CALL_GETVERS = $00000009;
ILVERROR = $FFFFFFFF;
BADPARAM = $FFFFFFFE;
INVALID_PK = $FFFFFFFD;
INVALID_USER_ID = $FFFFFFFC;
INVALID_USER_DATA = $FFFFFFFB;
TIMEOUT = $FFFFFFFA;
INVALID_ID_PROT = $FFFFFFF9;
ALREADY_ENR = $FFFFFFF8;
BASE_NOT_FOUND = $FFFFFFF7;
BASE_ALREADY_EXISTS = $FFFFFFF6;
BIO_PROGRESS = $FFFFFFF5;
CMD_PROGRESS = $FFFFFFF4;
FLASH_INVALID = $FFFFFFF3;
NO_SPACE_LEFT = $FFFFFFF2;
ADMIN_EXEC = $FFFFFFF1;
BAD_SIGNATURE = $FFFFFFF0;
CARD_PB = $FFFFFFEF;
ERROR_SL = $FFFFFFEE;
ERROR_WIEGAND = $FFFFFFED;
ERROR_NETWORK = $FFFFFFEC;
OUT_OF_FIELD = $FFFFFFEB;
INVALID_ACCESS = $FFFFFFEA;
FIELD_NOT_FOUND = $FFFFFFE9;
FIELD_INVALID = $FFFFFFE8;
SECURITY_MODE = $FFFFFFE7;
ILV_NOT_IMPLEMENT = $FFFFFF9D;
type
// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// *********************************************************************//
IMADB = interface;
IMADBDisp = dispinterface;
IMARecord = interface;
IMARecordDisp = dispinterface;
IMADBReport = interface;
IMADBReportDisp = dispinterface;
IMALogReport = interface;
IMALogReportDisp = dispinterface;
IMALogs = interface;
IMALogsDisp = dispinterface;
IMAOptions = interface;
IMAOptionsDisp = dispinterface;
IMATerminal = interface;
IMATerminalDisp = dispinterface;
// *********************************************************************//
// Declaration of CoClasses defined in Type Library
// (NOTE: Here we map each CoClass to its Default Interface)
// *********************************************************************//
MADB = IMADB;
MADBReport = IMADBReport;
MALogReport = IMALogReport;
MALogs = IMALogs;
MAOptions = IMAOptions;
MARecord = IMARecord;
MATerminal = IMATerminal;
// *********************************************************************//
// Declaration of structures, unions and aliases.
// *********************************************************************//
POleVariant1 = ^OleVariant; {*}
PWideString1 = ^WideString; {*}
PSmallint1 = ^Smallint; {*}
PInteger1 = ^Integer; {*}
PSYSINT1 = ^SYSINT; {*}
PUINT1 = ^LongWord; {*}
// *********************************************************************//
// Interface: IMADB
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {09EC1A0D-110F-43F0-B239-D381239BF3EC}
// *********************************************************************//
IMADB = interface(IDispatch)
['{09EC1A0D-110F-43F0-B239-D381239BF3EC}']
procedure AddField(const FieldName: WideString; FieldSize: Smallint; Private_: Integer); safecall;
procedure Create; safecall;
procedure Reset; safecall;
procedure Save; safecall;
procedure GetParam(const ParamName: WideString; var Value: OleVariant); safecall;
procedure AddRecord(const PersonRec: IMARecord); safecall;
procedure GetDataBaseField(FieldIndex: Smallint; var FieldName: WideString;
var FieldSize: Smallint); safecall;
procedure SetAllParam(DBID: Smallint; NBFinger: Smallint; MAType: Smallint;
NBPersonInBase: SYSINT; MAVersion: SYSINT); safecall;
procedure SaveToFile(const MBBioPath: WideString); safecall;
procedure SaveToFileAndMA(const MBBioPath: WideString); safecall;
procedure GetMADB(o_MADB: LongWord); safecall;
end;
// *********************************************************************//
// DispIntf: IMADBDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {09EC1A0D-110F-43F0-B239-D381239BF3EC}
// *********************************************************************//
IMADBDisp = dispinterface
['{09EC1A0D-110F-43F0-B239-D381239BF3EC}']
procedure AddField(const FieldName: WideString; FieldSize: Smallint; Private_: Integer); dispid 1;
procedure Create; dispid 2;
procedure Reset; dispid 3;
procedure Save; dispid 4;
procedure GetParam(const ParamName: WideString; var Value: OleVariant); dispid 5;
procedure AddRecord(const PersonRec: IMARecord); dispid 6;
procedure GetDataBaseField(FieldIndex: Smallint; var FieldName: WideString;
var FieldSize: Smallint); dispid 7;
procedure SetAllParam(DBID: Smallint; NBFinger: Smallint; MAType: Smallint;
NBPersonInBase: SYSINT; MAVersion: SYSINT); dispid 8;
procedure SaveToFile(const MBBioPath: WideString); dispid 9;
procedure SaveToFileAndMA(const MBBioPath: WideString); dispid 10;
procedure GetMADB(o_MADB: LongWord); dispid 11;
end;
// *********************************************************************//
// Interface: IMARecord
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {72888AD7-0605-496D-9F8C-E7D79A3F8CEA}
// *********************************************************************//
IMARecord = interface(IDispatch)
['{72888AD7-0605-496D-9F8C-E7D79A3F8CEA}']
procedure AddFinger(PK: OleVariant; Position: Smallint); safecall;
procedure RemoveFinger(Position: Smallint); safecall;
procedure AddUserData(const FieldName: WideString; Data: OleVariant); safecall;
procedure GetParam(const ParamName: WideString; var Value: OleVariant); safecall;
procedure SetParam(const ParamName: WideString; Value: OleVariant); safecall;
procedure GetUserData(DataIndex: Smallint; var FieldName: WideString; var Value: OleVariant); safecall;
procedure Clean; safecall;
end;
// *********************************************************************//
// DispIntf: IMARecordDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {72888AD7-0605-496D-9F8C-E7D79A3F8CEA}
// *********************************************************************//
IMARecordDisp = dispinterface
['{72888AD7-0605-496D-9F8C-E7D79A3F8CEA}']
procedure AddFinger(PK: OleVariant; Position: Smallint); dispid 1;
procedure RemoveFinger(Position: Smallint); dispid 2;
procedure AddUserData(const FieldName: WideString; Data: OleVariant); dispid 3;
procedure GetParam(const ParamName: WideString; var Value: OleVariant); dispid 4;
procedure SetParam(const ParamName: WideString; Value: OleVariant); dispid 5;
procedure GetUserData(DataIndex: Smallint; var FieldName: WideString; var Value: OleVariant); dispid 6;
procedure Clean; dispid 7;
end;
// *********************************************************************//
// Interface: IMADBReport
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {E960E9B1-5CA8-4266-AFCD-4A508A461F5E}
// *********************************************************************//
IMADBReport = interface(IDispatch)
['{E960E9B1-5CA8-4266-AFCD-4A508A461F5E}']
procedure GetParam(const ParamName: WideString; var Value: OleVariant); safecall;
procedure SetParam(const ParamName: WideString; Value: OleVariant); safecall;
end;
// *********************************************************************//
// DispIntf: IMADBReportDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {E960E9B1-5CA8-4266-AFCD-4A508A461F5E}
// *********************************************************************//
IMADBReportDisp = dispinterface
['{E960E9B1-5CA8-4266-AFCD-4A508A461F5E}']
procedure GetParam(const ParamName: WideString; var Value: OleVariant); dispid 1;
procedure SetParam(const ParamName: WideString; Value: OleVariant); dispid 2;
end;
// *********************************************************************//
// Interface: IMALogReport
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {BD2B4865-41B5-4F22-AEA3-25B492B66313}
// *********************************************************************//
IMALogReport = interface(IDispatch)
['{BD2B4865-41B5-4F22-AEA3-25B492B66313}']
procedure GetParam(const ParamName: WideString; var Value: OleVariant); safecall;
procedure SetParam(const UserParamName: WideString; Value: OleVariant); safecall;
end;
// *********************************************************************//
// DispIntf: IMALogReportDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {BD2B4865-41B5-4F22-AEA3-25B492B66313}
// *********************************************************************//
IMALogReportDisp = dispinterface
['{BD2B4865-41B5-4F22-AEA3-25B492B66313}']
procedure GetParam(const ParamName: WideString; var Value: OleVariant); dispid 1;
procedure SetParam(const UserParamName: WideString; Value: OleVariant); dispid 2;
end;
// *********************************************************************//
// Interface: IMALogs
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {E5A8DA50-ED4A-4892-8183-4A2C31C12BCE}
// *********************************************************************//
IMALogs = interface(IDispatch)
['{E5A8DA50-ED4A-4892-8183-4A2C31C12BCE}']
procedure SaveBinaryLogs(const FileName: WideString; Concat: Integer); safecall;
procedure SaveTextLogs(const FileName: WideString; Concat: Integer); safecall;
procedure GetParam(const ParamName: WideString; var Value: OleVariant); safecall;
procedure SetParam(const ParamName: WideString; Value: OleVariant); safecall;
end;
// *********************************************************************//
// DispIntf: IMALogsDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {E5A8DA50-ED4A-4892-8183-4A2C31C12BCE}
// *********************************************************************//
IMALogsDisp = dispinterface
['{E5A8DA50-ED4A-4892-8183-4A2C31C12BCE}']
procedure SaveBinaryLogs(const FileName: WideString; Concat: Integer); dispid 1;
procedure SaveTextLogs(const FileName: WideString; Concat: Integer); dispid 2;
procedure GetParam(const ParamName: WideString; var Value: OleVariant); dispid 3;
procedure SetParam(const ParamName: WideString; Value: OleVariant); dispid 4;
end;
// *********************************************************************//
// Interface: IMAOptions
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {486F39E1-E6E8-4A6C-AC2C-2C936FA58A7E}
// *********************************************************************//
IMAOptions = interface(IDispatch)
['{486F39E1-E6E8-4A6C-AC2C-2C936FA58A7E}']
procedure SetAppConf(HOSTCOM: Smallint; MODE: Smallint; LogFile: Integer; AdminIdent: Integer;
TimeMask: Integer); safecall;
procedure SetCntlCardConf(ReaderType: Smallint; B: Smallint; N: Smallint; C: Smallint;
MODE: Smallint); safecall;
procedure SetDateTimeConf(const DateTime: WideString); safecall;
procedure SetGUIConf(ChangeLanguage: Integer; DisplayHour: Integer; WelcomeField1: Smallint;
WelcomeField2: Smallint; IdleTime: Smallint); safecall;
procedure SetLanguageConf(Language: Smallint); safecall;
procedure SetNetWorkConf(const IpAdress: WideString; const Subnet: WideString;
const Gateway: WideString); safecall;
procedure SetRelayConf(MODE: Integer; TIMEOUT: Integer); safecall;
procedure SetSerialLinkConf(IdPort: Smallint; speed: Smallint; databits: Smallint;
stopbits: Smallint; parity: Smallint; flowcontrol: Smallint;
send: Integer; format: Smallint); safecall;
procedure SetWiDCConf(ID: Smallint; send: Integer); safecall;
procedure SetWiDCOptionsConf(FacilityCode: Smallint; DataClockLevel: Smallint; LedIn: Integer;
LedOutCardPresent: Integer); safecall;
procedure Reset; safecall;
procedure GetParam(const ParamName: WideString; var Value: OleVariant); safecall;
procedure SetFFDConf(LogEvents: Smallint; SendID: Smallint; Delay: Integer;
PresDetect: Smallint; WDCId: Smallint; SecureLevel: Smallint); safecall;
end;
// *********************************************************************//
// DispIntf: IMAOptionsDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {486F39E1-E6E8-4A6C-AC2C-2C936FA58A7E}
// *********************************************************************//
IMAOptionsDisp = dispinterface
['{486F39E1-E6E8-4A6C-AC2C-2C936FA58A7E}']
procedure SetAppConf(HOSTCOM: Smallint; MODE: Smallint; LogFile: Integer; AdminIdent: Integer;
TimeMask: Integer); dispid 1;
procedure SetCntlCardConf(ReaderType: Smallint; B: Smallint; N: Smallint; C: Smallint;
MODE: Smallint); dispid 2;
procedure SetDateTimeConf(const DateTime: WideString); dispid 3;
procedure SetGUIConf(ChangeLanguage: Integer; DisplayHour: Integer; WelcomeField1: Smallint;
WelcomeField2: Smallint; IdleTime: Smallint); dispid 4;
procedure SetLanguageConf(Language: Smallint); dispid 5;
procedure SetNetWorkConf(const IpAdress: WideString; const Subnet: WideString;
const Gateway: WideString); dispid 6;
procedure SetRelayConf(MODE: Integer; TIMEOUT: Integer); dispid 7;
procedure SetSerialLinkConf(IdPort: Smallint; speed: Smallint; databits: Smallint;
stopbits: Smallint; parity: Smallint; flowcontrol: Smallint;
send: Integer; format: Smallint); dispid 8;
procedure SetWiDCConf(ID: Smallint; send: Integer); dispid 9;
procedure SetWiDCOptionsConf(FacilityCode: Smallint; DataClockLevel: Smallint; LedIn: Integer;
LedOutCardPresent: Integer); dispid 10;
procedure Reset; dispid 11;
procedure GetParam(const ParamName: WideString; var Value: OleVariant); dispid 12;
procedure SetFFDConf(LogEvents: Smallint; SendID: Smallint; Delay: Integer;
PresDetect: Smallint; WDCId: Smallint; SecureLevel: Smallint); dispid 13;
end;
// *********************************************************************//
// Interface: IMATerminal
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {D92A279C-46AA-4908-9F4D-8BE4F6D2256A}
// *********************************************************************//
IMATerminal = interface(IDispatch)
['{D92A279C-46AA-4908-9F4D-8BE4F6D2256A}']
function AccessOK(TIMEOUT: Integer; GreenLigth: Integer): Smallint; safecall;
function Authenticate(const IRec: IMARecord; MatchThreshold: Smallint; qualThreshold: Smallint;
var Result: Smallint; TIMEOUT: Integer; ConnectionTimeOut: Integer;
AuthentTimeOut: Integer): Smallint; safecall;
function DefaultInit(TIMEOUT: Integer; KeepSettings: Integer): Smallint; safecall;
function EraseAllDBs(TIMEOUT: Integer): Smallint; safecall;
function GarbageCollector(TIMEOUT: Integer; DBID: Smallint): Smallint; safecall;
function RetrieveVersion(TIMEOUT: Integer): Smallint; safecall;
function Identify(DBID: Smallint; MatchThreshold: Smallint; TIMEOUT: Integer;
var Result: Smallint; var UserIndex: Integer; var UserId: WideString;
ConnectionTimeOut: Integer): Smallint; safecall;
function Ping(TIMEOUT: Integer): Smallint; safecall;
function PrintScreen(PositionX: Smallint; PositionY: Smallint; const Message: WideString;
TIMEOUT: Integer): Smallint; safecall;
function ReadFromKeyBoard(InputTime: Integer; const Prompt: WideString; var Rep: WideString;
TIMEOUT: Integer): Smallint; safecall;
function Reboot(TIMEOUT: Integer): Smallint; safecall;
procedure GetParam(const ParamName: WideString; var Value: OleVariant); safecall;
procedure SetParam(const ParamName: WideString; Value: OleVariant); safecall;
function Enrol(const IRec: IMARecord; DBID: Smallint; EnrolType: Integer; NBFinger: Smallint;
SaveRec: Integer; ExportPK: Smallint; var EnrolStatus: Smallint;
var UserDBIndex: Integer; TIMEOUT: Integer; ConnectionTimeOut: Integer): Smallint; safecall;
function CreateDB(const DataBase: IMADB; TIMEOUT: Integer): Smallint; safecall;
function EraseDB(const DataBase: IMADB; TIMEOUT: Integer): Smallint; safecall;
function DownloadDB(const DataBase: IMADB; NbRetry: Smallint; var Stop: Integer;
TIMEOUT: Integer): Smallint; safecall;
function AddRecord(const DataBase: IMADB; const Record_: IMARecord; var Status: Smallint;
var UserIndex: Integer; TIMEOUT: Integer): Smallint; safecall;
function RemoveRecord(const DataBase: IMADB; const Record_: IMARecord; TIMEOUT: Integer): Smallint; safecall;
function RetrieveMAConfig(const MAOpt: IMAOptions; TIMEOUT: Integer; WiegandOrDC: Integer): Smallint; safecall;
function SendMAConfig(const MAOpt: IMAOptions; TIMEOUT: Integer): Smallint; safecall;
function RetrieveLogConfig(DBID: Smallint; const LogConfig: IMALogReport; TIMEOUT: Integer;
NbRetry: Smallint): Smallint; safecall;
function RetrieveLogs(DBID: Smallint; const Logs: IMALogs; TIMEOUT: Integer; NbRetry: Smallint): Smallint; safecall;
function RetrieveAllDBReports(TabDBReport: PSafeArray; var NbBase: Smallint; TIMEOUT: Integer): Smallint; safecall;
function EraseLogs(DBID: Smallint; TIMEOUT: Integer): Smallint; safecall;
function RetrieveMADBReport(DBID: Smallint; const Ireport: IMADBReport; TIMEOUT: Integer): Smallint; safecall;
function OpenDistantSession(TIMEOUT: Integer): Smallint; safecall;
function CloseDistantSession(TIMEOUT: Integer): Smallint; safecall;
function SetContactlessKey(TIMEOUT: Integer; KeyNumber: Smallint; SectorNum: Smallint;
KeySector: OleVariant): Smallint; safecall;
function RetrieveKeyVersion(KeyNumber: Smallint; KeyStatus: Smallint; TIMEOUT: Integer;
var response: Smallint; var KeyVersion: Smallint;
var OperationDate: WideString; var KeyPeriod: Smallint): Smallint; safecall;
function EraseAllKeys(TIMEOUT: Integer; var response: Smallint): Smallint; safecall;
function EraseKey(KeyNumber: Smallint; KeyVersion: Smallint; TIMEOUT: Integer;
var response: Smallint): Smallint; safecall;
function SetRegistryKey(const KeyName: WideString; const KeyValue: WideString; TIMEOUT: Integer): Smallint; safecall;
function RetrieveRegistryKey(const KeyName: WideString; var KeyValue: OleVariant;
TIMEOUT: Integer): Smallint; safecall;
function UpdateMASoftware(const SoftPath: WideString; TIMEOUT: Integer): Smallint; safecall;
function SendExtendedCommand(const ExtCmd: WideString; TIMEOUT: Integer): Smallint; safecall;
function FindUser(DBID: Smallint; FieldIndex: Integer; RecOffset: Integer;
UserData: OleVariant; var RecIndex: Integer; TIMEOUT: Integer): Smallint; safecall;
function GetData(DBID: Smallint; FieldIndex: Integer; UserId: OleVariant;
var ReturnData: OleVariant; TIMEOUT: Integer): Smallint; safecall;
function GetPublicField(DBID: Smallint; FieldIndex: Integer; ReturnData: PSafeArray;
TIMEOUT: Integer): Smallint; safecall;
function UpdatePublicData(BDID: Smallint; ListOfField: PSafeArray; TIMEOUT: Integer): Smallint; safecall;
function ChangePwd(PwdID: Smallint; const OldPwd: WideString; const NewPwd: WideString;
TIMEOUT: Integer): Smallint; safecall;
function RetrieveRegistryFile(const RegPath: WideString; TIMEOUT: Integer): Smallint; safecall;
function RetrieveVersionEtendue(TIMEOUT: Integer): Smallint; safecall;
function DisplayScreen(imageId: Smallint; attrib_1: Smallint; const line_1: WideString;
attrib_2: Smallint; const line_2: WideString; attrib_3: Smallint;
const line_3: WideString; i_TimeOut: Integer): Smallint; safecall;
function SetTerminalKey(const maKey: WideString; TIMEOUT: Integer): Smallint; safecall;
function ReadInput(var o_inputContent: OleVariant; cmdId: Smallint; maxInputChar: Smallint;
imageId: Smallint; attrib_1: Smallint; line_1: OleVariant; lineId: Smallint;
TIMEOUT: Integer): Smallint; safecall;
function DataSend(line_1: OleVariant; TIMEOUT: Integer): Smallint; safecall;
function EraseLanguageFile(line_1: OleVariant; listIndex: Integer; TIMEOUT: Integer): Smallint; safecall;
function LoadLanguageFile(FileName: OleVariant; NbRetry: SYSINT; TIMEOUT: Integer): Smallint; safecall;
function AddSeveralRecords(const DataBase: IMADB; NbRetry: Smallint; var Stop: Integer;
TIMEOUT: Integer): Smallint; safecall;
function setComMode(i_e_comMode: SYSINT): SYSINT; safecall;
function getComMode: SYSINT; safecall;
function initSSL(const i_bstr_passphrase: WideString): SYSINT; safecall;
function executeRequestFile(const i_cs_REQfilename: WideString;
const i_cs_REPfilename: WideString; i_i_timeout: SYSINT): SYSINT; safecall;
function cmdDir(const i_pc_diskName: WideString; var o_pv_data: OleVariant;
var o_pi_length: SYSINT): SYSINT; safecall;
function SetMultipleRegistryKey(i_i_numberOfKeys: SYSINT; i_px_keys: PSafeArray;
i_i_timeout: SYSINT): SYSINT; safecall;
function SetMIFAREKey(TIMEOUT: Integer; KeyNumber: Smallint; SectorNum: Smallint;
KeySector: OleVariant): Smallint; safecall;
function SendCustomCommand(const i_cs_RequestString: WideString;
var o_cs_ReplyString: WideString; var i_replyLength: LongWord;
i_i_timeout: Integer): Smallint; safecall;
procedure SpecialRequest(i_i_RequestType: SYSINT; var i_pv_DataIn: OleVariant;
i_i_DataInLength: SYSINT; var o_pv_DataOut: OleVariant;
var i_pi_DataOutLength: SYSINT); safecall;
procedure GetLicenseStatus(var o_hLicenseStatus: SYSINT); safecall;
end;
// *********************************************************************//
// DispIntf: IMATerminalDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {D92A279C-46AA-4908-9F4D-8BE4F6D2256A}
// *********************************************************************//
IMATerminalDisp = dispinterface
['{D92A279C-46AA-4908-9F4D-8BE4F6D2256A}']
function AccessOK(TIMEOUT: Integer; GreenLigth: Integer): Smallint; dispid 1;
function Authenticate(const IRec: IMARecord; MatchThreshold: Smallint; qualThreshold: Smallint;
var Result: Smallint; TIMEOUT: Integer; ConnectionTimeOut: Integer;
AuthentTimeOut: Integer): Smallint; dispid 2;
function DefaultInit(TIMEOUT: Integer; KeepSettings: Integer): Smallint; dispid 3;
function EraseAllDBs(TIMEOUT: Integer): Smallint; dispid 4;
function GarbageCollector(TIMEOUT: Integer; DBID: Smallint): Smallint; dispid 5;
function RetrieveVersion(TIMEOUT: Integer): Smallint; dispid 6;
function Identify(DBID: Smallint; MatchThreshold: Smallint; TIMEOUT: Integer;
var Result: Smallint; var UserIndex: Integer; var UserId: WideString;
ConnectionTimeOut: Integer): Smallint; dispid 7;
function Ping(TIMEOUT: Integer): Smallint; dispid 8;
function PrintScreen(PositionX: Smallint; PositionY: Smallint; const Message: WideString;
TIMEOUT: Integer): Smallint; dispid 9;
function ReadFromKeyBoard(InputTime: Integer; const Prompt: WideString; var Rep: WideString;
TIMEOUT: Integer): Smallint; dispid 10;
function Reboot(TIMEOUT: Integer): Smallint; dispid 11;
procedure GetParam(const ParamName: WideString; var Value: OleVariant); dispid 12;
procedure SetParam(const ParamName: WideString; Value: OleVariant); dispid 13;
function Enrol(const IRec: IMARecord; DBID: Smallint; EnrolType: Integer; NBFinger: Smallint;
SaveRec: Integer; ExportPK: Smallint; var EnrolStatus: Smallint;
var UserDBIndex: Integer; TIMEOUT: Integer; ConnectionTimeOut: Integer): Smallint; dispid 14;
function CreateDB(const DataBase: IMADB; TIMEOUT: Integer): Smallint; dispid 15;
function EraseDB(const DataBase: IMADB; TIMEOUT: Integer): Smallint; dispid 16;
function DownloadDB(const DataBase: IMADB; NbRetry: Smallint; var Stop: Integer;
TIMEOUT: Integer): Smallint; dispid 17;
function AddRecord(const DataBase: IMADB; const Record_: IMARecord; var Status: Smallint;
var UserIndex: Integer; TIMEOUT: Integer): Smallint; dispid 18;
function RemoveRecord(const DataBase: IMADB; const Record_: IMARecord; TIMEOUT: Integer): Smallint; dispid 19;
function RetrieveMAConfig(const MAOpt: IMAOptions; TIMEOUT: Integer; WiegandOrDC: Integer): Smallint; dispid 20;
function SendMAConfig(const MAOpt: IMAOptions; TIMEOUT: Integer): Smallint; dispid 21;
function RetrieveLogConfig(DBID: Smallint; const LogConfig: IMALogReport; TIMEOUT: Integer;
NbRetry: Smallint): Smallint; dispid 22;
function RetrieveLogs(DBID: Smallint; const Logs: IMALogs; TIMEOUT: Integer; NbRetry: Smallint): Smallint; dispid 23;
function RetrieveAllDBReports(TabDBReport: {??PSafeArray}OleVariant; var NbBase: Smallint;
TIMEOUT: Integer): Smallint; dispid 24;
function EraseLogs(DBID: Smallint; TIMEOUT: Integer): Smallint; dispid 25;
function RetrieveMADBReport(DBID: Smallint; const Ireport: IMADBReport; TIMEOUT: Integer): Smallint; dispid 26;
function OpenDistantSession(TIMEOUT: Integer): Smallint; dispid 27;
function CloseDistantSession(TIMEOUT: Integer): Smallint; dispid 28;
function SetContactlessKey(TIMEOUT: Integer; KeyNumber: Smallint; SectorNum: Smallint;
KeySector: OleVariant): Smallint; dispid 29;
function RetrieveKeyVersion(KeyNumber: Smallint; KeyStatus: Smallint; TIMEOUT: Integer;
var response: Smallint; var KeyVersion: Smallint;
var OperationDate: WideString; var KeyPeriod: Smallint): Smallint; dispid 30;
function EraseAllKeys(TIMEOUT: Integer; var response: Smallint): Smallint; dispid 31;
function EraseKey(KeyNumber: Smallint; KeyVersion: Smallint; TIMEOUT: Integer;
var response: Smallint): Smallint; dispid 32;
function SetRegistryKey(const KeyName: WideString; const KeyValue: WideString; TIMEOUT: Integer): Smallint; dispid 33;
function RetrieveRegistryKey(const KeyName: WideString; var KeyValue: OleVariant;
TIMEOUT: Integer): Smallint; dispid 34;
function UpdateMASoftware(const SoftPath: WideString; TIMEOUT: Integer): Smallint; dispid 35;
function SendExtendedCommand(const ExtCmd: WideString; TIMEOUT: Integer): Smallint; dispid 36;
function FindUser(DBID: Smallint; FieldIndex: Integer; RecOffset: Integer;
UserData: OleVariant; var RecIndex: Integer; TIMEOUT: Integer): Smallint; dispid 37;
function GetData(DBID: Smallint; FieldIndex: Integer; UserId: OleVariant;
var ReturnData: OleVariant; TIMEOUT: Integer): Smallint; dispid 38;
function GetPublicField(DBID: Smallint; FieldIndex: Integer;
ReturnData: {??PSafeArray}OleVariant; TIMEOUT: Integer): Smallint; dispid 39;
function UpdatePublicData(BDID: Smallint; ListOfField: {??PSafeArray}OleVariant;
TIMEOUT: Integer): Smallint; dispid 40;
function ChangePwd(PwdID: Smallint; const OldPwd: WideString; const NewPwd: WideString;
TIMEOUT: Integer): Smallint; dispid 41;
function RetrieveRegistryFile(const RegPath: WideString; TIMEOUT: Integer): Smallint; dispid 42;
function RetrieveVersionEtendue(TIMEOUT: Integer): Smallint; dispid 43;
function DisplayScreen(imageId: Smallint; attrib_1: Smallint; const line_1: WideString;
attrib_2: Smallint; const line_2: WideString; attrib_3: Smallint;
const line_3: WideString; i_TimeOut: Integer): Smallint; dispid 44;
function SetTerminalKey(const maKey: WideString; TIMEOUT: Integer): Smallint; dispid 45;
function ReadInput(var o_inputContent: OleVariant; cmdId: Smallint; maxInputChar: Smallint;
imageId: Smallint; attrib_1: Smallint; line_1: OleVariant; lineId: Smallint;
TIMEOUT: Integer): Smallint; dispid 46;
function DataSend(line_1: OleVariant; TIMEOUT: Integer): Smallint; dispid 47;
function EraseLanguageFile(line_1: OleVariant; listIndex: Integer; TIMEOUT: Integer): Smallint; dispid 48;
function LoadLanguageFile(FileName: OleVariant; NbRetry: SYSINT; TIMEOUT: Integer): Smallint; dispid 49;
function AddSeveralRecords(const DataBase: IMADB; NbRetry: Smallint; var Stop: Integer;
TIMEOUT: Integer): Smallint; dispid 50;
function setComMode(i_e_comMode: SYSINT): SYSINT; dispid 51;
function getComMode: SYSINT; dispid 52;
function initSSL(const i_bstr_passphrase: WideString): SYSINT; dispid 56;
function executeRequestFile(const i_cs_REQfilename: WideString;
const i_cs_REPfilename: WideString; i_i_timeout: SYSINT): SYSINT; dispid 57;
function cmdDir(const i_pc_diskName: WideString; var o_pv_data: OleVariant;
var o_pi_length: SYSINT): SYSINT; dispid 53;
function SetMultipleRegistryKey(i_i_numberOfKeys: SYSINT; i_px_keys: {??PSafeArray}OleVariant;
i_i_timeout: SYSINT): SYSINT; dispid 54;
function SetMIFAREKey(TIMEOUT: Integer; KeyNumber: Smallint; SectorNum: Smallint;
KeySector: OleVariant): Smallint; dispid 55;
function SendCustomCommand(const i_cs_RequestString: WideString;
var o_cs_ReplyString: WideString; var i_replyLength: LongWord;
i_i_timeout: Integer): Smallint; dispid 58;
procedure SpecialRequest(i_i_RequestType: SYSINT; var i_pv_DataIn: OleVariant;
i_i_DataInLength: SYSINT; var o_pv_DataOut: OleVariant;
var i_pi_DataOutLength: SYSINT); dispid 59;
procedure GetLicenseStatus(var o_hLicenseStatus: SYSINT); dispid 60;
end;
// *********************************************************************//
// The Class CoMADB provides a Create and CreateRemote method to
// create instances of the default interface IMADB exposed by
// the CoClass MADB. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoMADB = class
class function Create: IMADB;
class function CreateRemote(const MachineName: string): IMADB;
end;
// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TMADB
// Help String : MADB Class
// Default Interface: IMADB
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TMADBProperties= class;
{$ENDIF}
TMADB = class(TOleServer)
private
FIntf: IMADB;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TMADBProperties;
function GetServerProperties: TMADBProperties;
{$ENDIF}
function GetDefaultInterface: IMADB;
protected
procedure InitServerData; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: IMADB);
procedure Disconnect; override;
procedure AddField(const FieldName: WideString; FieldSize: Smallint; Private_: Integer);
procedure Create1;
procedure Reset;
procedure Save;
procedure GetParam(const ParamName: WideString; var Value: OleVariant);
procedure AddRecord(const PersonRec: IMARecord);
procedure GetDataBaseField(FieldIndex: Smallint; var FieldName: WideString;
var FieldSize: Smallint);
procedure SetAllParam(DBID: Smallint; NBFinger: Smallint; MAType: Smallint;
NBPersonInBase: SYSINT; MAVersion: SYSINT);
procedure SaveToFile(const MBBioPath: WideString);
procedure SaveToFileAndMA(const MBBioPath: WideString);
procedure GetMADB(o_MADB: LongWord);
property DefaultInterface: IMADB read GetDefaultInterface;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TMADBProperties read GetServerProperties;
{$ENDIF}
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TMADB
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TMADBProperties = class(TPersistent)
private
FServer: TMADB;
function GetDefaultInterface: IMADB;
constructor Create(AServer: TMADB);
protected
public
property DefaultInterface: IMADB read GetDefaultInterface;
published
end;
{$ENDIF}
// *********************************************************************//
// The Class CoMADBReport provides a Create and CreateRemote method to
// create instances of the default interface IMADBReport exposed by
// the CoClass MADBReport. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoMADBReport = class
class function Create: IMADBReport;
class function CreateRemote(const MachineName: string): IMADBReport;
end;
// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TMADBReport
// Help String : MADBReport Class
// Default Interface: IMADBReport
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TMADBReportProperties= class;
{$ENDIF}
TMADBReport = class(TOleServer)
private
FIntf: IMADBReport;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TMADBReportProperties;
function GetServerProperties: TMADBReportProperties;
{$ENDIF}
function GetDefaultInterface: IMADBReport;
protected
procedure InitServerData; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: IMADBReport);
procedure Disconnect; override;
procedure GetParam(const ParamName: WideString; var Value: OleVariant);
procedure SetParam(const ParamName: WideString; Value: OleVariant);
property DefaultInterface: IMADBReport read GetDefaultInterface;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TMADBReportProperties read GetServerProperties;
{$ENDIF}
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TMADBReport
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TMADBReportProperties = class(TPersistent)
private
FServer: TMADBReport;
function GetDefaultInterface: IMADBReport;
constructor Create(AServer: TMADBReport);
protected
public
property DefaultInterface: IMADBReport read GetDefaultInterface;
published
end;
{$ENDIF}
// *********************************************************************//
// The Class CoMALogReport provides a Create and CreateRemote method to
// create instances of the default interface IMALogReport exposed by
// the CoClass MALogReport. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoMALogReport = class
class function Create: IMALogReport;
class function CreateRemote(const MachineName: string): IMALogReport;
end;
// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TMALogReport
// Help String : MALogReport Class
// Default Interface: IMALogReport
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TMALogReportProperties= class;
{$ENDIF}
TMALogReport = class(TOleServer)
private
FIntf: IMALogReport;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TMALogReportProperties;
function GetServerProperties: TMALogReportProperties;
{$ENDIF}
function GetDefaultInterface: IMALogReport;
protected
procedure InitServerData; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: IMALogReport);
procedure Disconnect; override;
procedure GetParam(const ParamName: WideString; var Value: OleVariant);
procedure SetParam(const UserParamName: WideString; Value: OleVariant);
property DefaultInterface: IMALogReport read GetDefaultInterface;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TMALogReportProperties read GetServerProperties;
{$ENDIF}
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TMALogReport
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TMALogReportProperties = class(TPersistent)
private
FServer: TMALogReport;
function GetDefaultInterface: IMALogReport;
constructor Create(AServer: TMALogReport);
protected
public
property DefaultInterface: IMALogReport read GetDefaultInterface;
published
end;
{$ENDIF}
// *********************************************************************//
// The Class CoMALogs provides a Create and CreateRemote method to
// create instances of the default interface IMALogs exposed by
// the CoClass MALogs. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoMALogs = class
class function Create: IMALogs;
class function CreateRemote(const MachineName: string): IMALogs;
end;
// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TMALogs
// Help String : MALogs Class
// Default Interface: IMALogs
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TMALogsProperties= class;
{$ENDIF}
TMALogs = class(TOleServer)
private
FIntf: IMALogs;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TMALogsProperties;
function GetServerProperties: TMALogsProperties;
{$ENDIF}
function GetDefaultInterface: IMALogs;
protected
procedure InitServerData; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: IMALogs);
procedure Disconnect; override;
procedure SaveBinaryLogs(const FileName: WideString; Concat: Integer);
procedure SaveTextLogs(const FileName: WideString; Concat: Integer);
procedure GetParam(const ParamName: WideString; var Value: OleVariant);
procedure SetParam(const ParamName: WideString; Value: OleVariant);
property DefaultInterface: IMALogs read GetDefaultInterface;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TMALogsProperties read GetServerProperties;
{$ENDIF}
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TMALogs
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TMALogsProperties = class(TPersistent)
private
FServer: TMALogs;
function GetDefaultInterface: IMALogs;
constructor Create(AServer: TMALogs);
protected
public
property DefaultInterface: IMALogs read GetDefaultInterface;
published
end;
{$ENDIF}
// *********************************************************************//
// The Class CoMAOptions provides a Create and CreateRemote method to
// create instances of the default interface IMAOptions exposed by
// the CoClass MAOptions. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoMAOptions = class
class function Create: IMAOptions;
class function CreateRemote(const MachineName: string): IMAOptions;
end;
// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TMAOptions
// Help String : MAOptions Class
// Default Interface: IMAOptions
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TMAOptionsProperties= class;
{$ENDIF}
TMAOptions = class(TOleServer)
private
FIntf: IMAOptions;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TMAOptionsProperties;
function GetServerProperties: TMAOptionsProperties;
{$ENDIF}
function GetDefaultInterface: IMAOptions;
protected
procedure InitServerData; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: IMAOptions);
procedure Disconnect; override;
procedure SetAppConf(HOSTCOM: Smallint; MODE: Smallint; LogFile: Integer; AdminIdent: Integer;
TimeMask: Integer);
procedure SetCntlCardConf(ReaderType: Smallint; B: Smallint; N: Smallint; C: Smallint;
MODE: Smallint);
procedure SetDateTimeConf(const DateTime: WideString);
procedure SetGUIConf(ChangeLanguage: Integer; DisplayHour: Integer; WelcomeField1: Smallint;
WelcomeField2: Smallint; IdleTime: Smallint);
procedure SetLanguageConf(Language: Smallint);
procedure SetNetWorkConf(const IpAdress: WideString; const Subnet: WideString;
const Gateway: WideString);
procedure SetRelayConf(MODE: Integer; TIMEOUT: Integer);
procedure SetSerialLinkConf(IdPort: Smallint; speed: Smallint; databits: Smallint;
stopbits: Smallint; parity: Smallint; flowcontrol: Smallint;
send: Integer; format: Smallint);
procedure SetWiDCConf(ID: Smallint; send: Integer);
procedure SetWiDCOptionsConf(FacilityCode: Smallint; DataClockLevel: Smallint; LedIn: Integer;
LedOutCardPresent: Integer);
procedure Reset;
procedure GetParam(const ParamName: WideString; var Value: OleVariant);
procedure SetFFDConf(LogEvents: Smallint; SendID: Smallint; Delay: Integer;
PresDetect: Smallint; WDCId: Smallint; SecureLevel: Smallint);
property DefaultInterface: IMAOptions read GetDefaultInterface;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TMAOptionsProperties read GetServerProperties;
{$ENDIF}
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TMAOptions
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TMAOptionsProperties = class(TPersistent)
private
FServer: TMAOptions;
function GetDefaultInterface: IMAOptions;
constructor Create(AServer: TMAOptions);
protected
public
property DefaultInterface: IMAOptions read GetDefaultInterface;
published
end;
{$ENDIF}
// *********************************************************************//
// The Class CoMARecord provides a Create and CreateRemote method to
// create instances of the default interface IMARecord exposed by
// the CoClass MARecord. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoMARecord = class
class function Create: IMARecord;
class function CreateRemote(const MachineName: string): IMARecord;
end;
// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TMARecord
// Help String : MARecord Class
// Default Interface: IMARecord
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TMARecordProperties= class;
{$ENDIF}
TMARecord = class(TOleServer)
private
FIntf: IMARecord;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TMARecordProperties;
function GetServerProperties: TMARecordProperties;
{$ENDIF}
function GetDefaultInterface: IMARecord;
protected
procedure InitServerData; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: IMARecord);
procedure Disconnect; override;
procedure AddFinger(PK: OleVariant; Position: Smallint);
procedure RemoveFinger(Position: Smallint);
procedure AddUserData(const FieldName: WideString; Data: OleVariant);
procedure GetParam(const ParamName: WideString; var Value: OleVariant);
procedure SetParam(const ParamName: WideString; Value: OleVariant);
procedure GetUserData(DataIndex: Smallint; var FieldName: WideString; var Value: OleVariant);
procedure Clean;
property DefaultInterface: IMARecord read GetDefaultInterface;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TMARecordProperties read GetServerProperties;
{$ENDIF}
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TMARecord
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TMARecordProperties = class(TPersistent)
private
FServer: TMARecord;
function GetDefaultInterface: IMARecord;
constructor Create(AServer: TMARecord);
protected
public
property DefaultInterface: IMARecord read GetDefaultInterface;
published
end;
{$ENDIF}
// *********************************************************************//
// The Class CoMATerminal provides a Create and CreateRemote method to
// create instances of the default interface IMATerminal exposed by
// the CoClass MATerminal. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoMATerminal = class
class function Create: IMATerminal;
class function CreateRemote(const MachineName: string): IMATerminal;
end;
// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TMATerminal
// Help String : MATerminal Class
// Default Interface: IMATerminal
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TMATerminalProperties= class;
{$ENDIF}
TMATerminal = class(TOleServer)
private
FIntf: IMATerminal;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TMATerminalProperties;
function GetServerProperties: TMATerminalProperties;
{$ENDIF}
function GetDefaultInterface: IMATerminal;
protected
procedure InitServerData; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: IMATerminal);
procedure Disconnect; override;
function AccessOK(TIMEOUT: Integer; GreenLigth: Integer): Smallint;
function Authenticate(const IRec: IMARecord; MatchThreshold: Smallint; qualThreshold: Smallint;
var iResult: Smallint; TIMEOUT: Integer; ConnectionTimeOut: Integer;
AuthentTimeOut: Integer): Smallint;
function DefaultInit(TIMEOUT: Integer; KeepSettings: Integer): Smallint;
function EraseAllDBs(TIMEOUT: Integer): Smallint;
function GarbageCollector(TIMEOUT: Integer; DBID: Smallint): Smallint;
function RetrieveVersion(TIMEOUT: Integer): Smallint;
function Identify(DBID: Smallint; MatchThreshold: Smallint; TIMEOUT: Integer;
var iResult: Smallint; var UserIndex: Integer; var UserId: WideString;
ConnectionTimeOut: Integer): Smallint;
function Ping(TIMEOUT: Integer): Smallint;
function PrintScreen(PositionX: Smallint; PositionY: Smallint; const Message: WideString;
TIMEOUT: Integer): Smallint;
function ReadFromKeyBoard(InputTime: Integer; const Prompt: WideString; var Rep: WideString;
TIMEOUT: Integer): Smallint;
function Reboot(TIMEOUT: Integer): Smallint;
procedure GetParam(const ParamName: WideString; var Value: OleVariant);
procedure SetParam(const ParamName: WideString; Value: OleVariant);
function Enrol(const IRec: IMARecord; DBID: Smallint; EnrolType: Integer; NBFinger: Smallint;
SaveRec: Integer; ExportPK: Smallint; var EnrolStatus: Smallint;
var UserDBIndex: Integer; TIMEOUT: Integer; ConnectionTimeOut: Integer): Smallint;
function CreateDB(const DataBase: IMADB; TIMEOUT: Integer): Smallint;
function EraseDB(const DataBase: IMADB; TIMEOUT: Integer): Smallint;
function DownloadDB(const DataBase: IMADB; NbRetry: Smallint; var Stop: Integer;
TIMEOUT: Integer): Smallint;
function AddRecord(const DataBase: IMADB; const Record_: IMARecord; var Status: Smallint;
var UserIndex: Integer; TIMEOUT: Integer): Smallint;
function RemoveRecord(const DataBase: IMADB; const Record_: IMARecord; TIMEOUT: Integer): Smallint;
function RetrieveMAConfig(const MAOpt: IMAOptions; TIMEOUT: Integer; WiegandOrDC: Integer): Smallint;
function SendMAConfig(const MAOpt: IMAOptions; TIMEOUT: Integer): Smallint;
function RetrieveLogConfig(DBID: Smallint; const LogConfig: IMALogReport; TIMEOUT: Integer;
NbRetry: Smallint): Smallint;
function RetrieveLogs(DBID: Smallint; const Logs: IMALogs; TIMEOUT: Integer; NbRetry: Smallint): Smallint;
function RetrieveAllDBReports(TabDBReport: PSafeArray; var NbBase: Smallint; TIMEOUT: Integer): Smallint;
function EraseLogs(DBID: Smallint; TIMEOUT: Integer): Smallint;
function RetrieveMADBReport(DBID: Smallint; const Ireport: IMADBReport; TIMEOUT: Integer): Smallint;
function OpenDistantSession(TIMEOUT: Integer): Smallint;
function CloseDistantSession(TIMEOUT: Integer): Smallint;
function SetContactlessKey(TIMEOUT: Integer; KeyNumber: Smallint; SectorNum: Smallint;
KeySector: OleVariant): Smallint;
function RetrieveKeyVersion(KeyNumber: Smallint; KeyStatus: Smallint; TIMEOUT: Integer;
var response: Smallint; var KeyVersion: Smallint;
var OperationDate: WideString; var KeyPeriod: Smallint): Smallint;
function EraseAllKeys(TIMEOUT: Integer; var response: Smallint): Smallint;
function EraseKey(KeyNumber: Smallint; KeyVersion: Smallint; TIMEOUT: Integer;
var response: Smallint): Smallint;
function SetRegistryKey(const KeyName: WideString; const KeyValue: WideString; TIMEOUT: Integer): Smallint;
function RetrieveRegistryKey(const KeyName: WideString; var KeyValue: OleVariant;
TIMEOUT: Integer): Smallint;
function UpdateMASoftware(const SoftPath: WideString; TIMEOUT: Integer): Smallint;
function SendExtendedCommand(const ExtCmd: WideString; TIMEOUT: Integer): Smallint;
function FindUser(DBID: Smallint; FieldIndex: Integer; RecOffset: Integer;
UserData: OleVariant; var RecIndex: Integer; TIMEOUT: Integer): Smallint;
function GetData(DBID: Smallint; FieldIndex: Integer; UserId: OleVariant;
var ReturnData: OleVariant; TIMEOUT: Integer): Smallint;
function GetPublicField(DBID: Smallint; FieldIndex: Integer; ReturnData: PSafeArray;
TIMEOUT: Integer): Smallint;
function UpdatePublicData(BDID: Smallint; ListOfField: PSafeArray; TIMEOUT: Integer): Smallint;
function ChangePwd(PwdID: Smallint; const OldPwd: WideString; const NewPwd: WideString;
TIMEOUT: Integer): Smallint;
function RetrieveRegistryFile(const RegPath: WideString; TIMEOUT: Integer): Smallint;
function RetrieveVersionEtendue(TIMEOUT: Integer): Smallint;
function DisplayScreen(imageId: Smallint; attrib_1: Smallint; const line_1: WideString;
attrib_2: Smallint; const line_2: WideString; attrib_3: Smallint;
const line_3: WideString; i_TimeOut: Integer): Smallint;
function SetTerminalKey(const maKey: WideString; TIMEOUT: Integer): Smallint;
function ReadInput(var o_inputContent: OleVariant; cmdId: Smallint; maxInputChar: Smallint;
imageId: Smallint; attrib_1: Smallint; line_1: OleVariant; lineId: Smallint;
TIMEOUT: Integer): Smallint;
function DataSend(line_1: OleVariant; TIMEOUT: Integer): Smallint;
function EraseLanguageFile(line_1: OleVariant; listIndex: Integer; TIMEOUT: Integer): Smallint;
function LoadLanguageFile(FileName: OleVariant; NbRetry: SYSINT; TIMEOUT: Integer): Smallint;
function AddSeveralRecords(const DataBase: IMADB; NbRetry: Smallint; var Stop: Integer;
TIMEOUT: Integer): Smallint;
function setComMode(i_e_comMode: SYSINT): SYSINT;
function getComMode: SYSINT;
function initSSL(const i_bstr_passphrase: WideString): SYSINT;
function executeRequestFile(const i_cs_REQfilename: WideString;
const i_cs_REPfilename: WideString; i_i_timeout: SYSINT): SYSINT;
function cmdDir(const i_pc_diskName: WideString; var o_pv_data: OleVariant;
var o_pi_length: SYSINT): SYSINT;
function SetMultipleRegistryKey(i_i_numberOfKeys: SYSINT; i_px_keys: PSafeArray;
i_i_timeout: SYSINT): SYSINT;
function SetMIFAREKey(TIMEOUT: Integer; KeyNumber: Smallint; SectorNum: Smallint;
KeySector: OleVariant): Smallint;
function SendCustomCommand(const i_cs_RequestString: WideString;
var o_cs_ReplyString: WideString; var i_replyLength: LongWord;
i_i_timeout: Integer): Smallint;
procedure SpecialRequest(i_i_RequestType: SYSINT; var i_pv_DataIn: OleVariant;
i_i_DataInLength: SYSINT; var o_pv_DataOut: OleVariant;
var i_pi_DataOutLength: SYSINT);
procedure GetLicenseStatus(var o_hLicenseStatus: SYSINT);
property DefaultInterface: IMATerminal read GetDefaultInterface;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TMATerminalProperties read GetServerProperties;
{$ENDIF}
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TMATerminal
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TMATerminalProperties = class(TPersistent)
private
FServer: TMATerminal;
function GetDefaultInterface: IMATerminal;
constructor Create(AServer: TMATerminal);
protected
public
property DefaultInterface: IMATerminal read GetDefaultInterface;
published
end;
{$ENDIF}
procedure Register;
resourcestring
dtlServerPage = 'ActiveX';
dtlOcxPage = 'ActiveX';
implementation
uses ComObj;
class function CoMADB.Create: IMADB;
begin
Result := CreateComObject(CLASS_MADB) as IMADB;
end;
class function CoMADB.CreateRemote(const MachineName: string): IMADB;
begin
Result := CreateRemoteComObject(MachineName, CLASS_MADB) as IMADB;
end;
procedure TMADB.InitServerData;
const
CServerData: TServerData = (
ClassID: '{2E9D2D26-C23F-41DA-BB63-E3E24CB09452}';
IntfIID: '{09EC1A0D-110F-43F0-B239-D381239BF3EC}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;
procedure TMADB.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as IMADB;
end;
end;
procedure TMADB.ConnectTo(svrIntf: IMADB);
begin
Disconnect;
FIntf := svrIntf;
end;
procedure TMADB.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;
function TMADB.GetDefaultInterface: IMADB;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call "Connect" or "ConnectTo" before this operation');
Result := FIntf;
end;
constructor TMADB.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TMADBProperties.Create(Self);
{$ENDIF}
end;
destructor TMADB.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TMADB.GetServerProperties: TMADBProperties;
begin
Result := FProps;
end;
{$ENDIF}
procedure TMADB.AddField(const FieldName: WideString; FieldSize: Smallint; Private_: Integer);
begin
DefaultInterface.AddField(FieldName, FieldSize, Private_);
end;
procedure TMADB.Create1;
begin
DefaultInterface.Create;
end;
procedure TMADB.Reset;
begin
DefaultInterface.Reset;
end;
procedure TMADB.Save;
begin
DefaultInterface.Save;
end;
procedure TMADB.GetParam(const ParamName: WideString; var Value: OleVariant);
begin
DefaultInterface.GetParam(ParamName, Value);
end;
procedure TMADB.AddRecord(const PersonRec: IMARecord);
begin
DefaultInterface.AddRecord(PersonRec);
end;
procedure TMADB.GetDataBaseField(FieldIndex: Smallint; var FieldName: WideString;
var FieldSize: Smallint);
begin
DefaultInterface.GetDataBaseField(FieldIndex, FieldName, FieldSize);
end;
procedure TMADB.SetAllParam(DBID: Smallint; NBFinger: Smallint; MAType: Smallint;
NBPersonInBase: SYSINT; MAVersion: SYSINT);
begin
DefaultInterface.SetAllParam(DBID, NBFinger, MAType, NBPersonInBase, MAVersion);
end;
procedure TMADB.SaveToFile(const MBBioPath: WideString);
begin
DefaultInterface.SaveToFile(MBBioPath);
end;
procedure TMADB.SaveToFileAndMA(const MBBioPath: WideString);
begin
DefaultInterface.SaveToFileAndMA(MBBioPath);
end;
procedure TMADB.GetMADB(o_MADB: LongWord);
begin
DefaultInterface.GetMADB(o_MADB);
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TMADBProperties.Create(AServer: TMADB);
begin
inherited Create;
FServer := AServer;
end;
function TMADBProperties.GetDefaultInterface: IMADB;
begin
Result := FServer.DefaultInterface;
end;
{$ENDIF}
class function CoMADBReport.Create: IMADBReport;
begin
Result := CreateComObject(CLASS_MADBReport) as IMADBReport;
end;
class function CoMADBReport.CreateRemote(const MachineName: string): IMADBReport;
begin
Result := CreateRemoteComObject(MachineName, CLASS_MADBReport) as IMADBReport;
end;
procedure TMADBReport.InitServerData;
const
CServerData: TServerData = (
ClassID: '{43EAB047-00AD-4756-AA04-9D47F4EE9E1C}';
IntfIID: '{E960E9B1-5CA8-4266-AFCD-4A508A461F5E}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;
procedure TMADBReport.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as IMADBReport;
end;
end;
procedure TMADBReport.ConnectTo(svrIntf: IMADBReport);
begin
Disconnect;
FIntf := svrIntf;
end;
procedure TMADBReport.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;
function TMADBReport.GetDefaultInterface: IMADBReport;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call "Connect" or "ConnectTo" before this operation');
Result := FIntf;
end;
constructor TMADBReport.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TMADBReportProperties.Create(Self);
{$ENDIF}
end;
destructor TMADBReport.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TMADBReport.GetServerProperties: TMADBReportProperties;
begin
Result := FProps;
end;
{$ENDIF}
procedure TMADBReport.GetParam(const ParamName: WideString; var Value: OleVariant);
begin
DefaultInterface.GetParam(ParamName, Value);
end;
procedure TMADBReport.SetParam(const ParamName: WideString; Value: OleVariant);
begin
DefaultInterface.SetParam(ParamName, Value);
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TMADBReportProperties.Create(AServer: TMADBReport);
begin
inherited Create;
FServer := AServer;
end;
function TMADBReportProperties.GetDefaultInterface: IMADBReport;
begin
Result := FServer.DefaultInterface;
end;
{$ENDIF}
class function CoMALogReport.Create: IMALogReport;
begin
Result := CreateComObject(CLASS_MALogReport) as IMALogReport;
end;
class function CoMALogReport.CreateRemote(const MachineName: string): IMALogReport;
begin
Result := CreateRemoteComObject(MachineName, CLASS_MALogReport) as IMALogReport;
end;
procedure TMALogReport.InitServerData;
const
CServerData: TServerData = (
ClassID: '{483523F4-6F55-4342-9879-D319643555E4}';
IntfIID: '{BD2B4865-41B5-4F22-AEA3-25B492B66313}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;
procedure TMALogReport.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as IMALogReport;
end;
end;
procedure TMALogReport.ConnectTo(svrIntf: IMALogReport);
begin
Disconnect;
FIntf := svrIntf;
end;
procedure TMALogReport.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;
function TMALogReport.GetDefaultInterface: IMALogReport;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call "Connect" or "ConnectTo" before this operation');
Result := FIntf;
end;
constructor TMALogReport.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TMALogReportProperties.Create(Self);
{$ENDIF}
end;
destructor TMALogReport.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TMALogReport.GetServerProperties: TMALogReportProperties;
begin
Result := FProps;
end;
{$ENDIF}
procedure TMALogReport.GetParam(const ParamName: WideString; var Value: OleVariant);
begin
DefaultInterface.GetParam(ParamName, Value);
end;
procedure TMALogReport.SetParam(const UserParamName: WideString; Value: OleVariant);
begin
DefaultInterface.SetParam(UserParamName, Value);
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TMALogReportProperties.Create(AServer: TMALogReport);
begin
inherited Create;
FServer := AServer;
end;
function TMALogReportProperties.GetDefaultInterface: IMALogReport;
begin
Result := FServer.DefaultInterface;
end;
{$ENDIF}
class function CoMALogs.Create: IMALogs;
begin
Result := CreateComObject(CLASS_MALogs) as IMALogs;
end;
class function CoMALogs.CreateRemote(const MachineName: string): IMALogs;
begin
Result := CreateRemoteComObject(MachineName, CLASS_MALogs) as IMALogs;
end;
procedure TMALogs.InitServerData;
const
CServerData: TServerData = (
ClassID: '{83D74537-6A08-4A5E-970C-DB2FA859F068}';
IntfIID: '{E5A8DA50-ED4A-4892-8183-4A2C31C12BCE}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;
procedure TMALogs.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as IMALogs;
end;
end;
procedure TMALogs.ConnectTo(svrIntf: IMALogs);
begin
Disconnect;
FIntf := svrIntf;
end;
procedure TMALogs.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;
function TMALogs.GetDefaultInterface: IMALogs;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call "Connect" or "ConnectTo" before this operation');
Result := FIntf;
end;
constructor TMALogs.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TMALogsProperties.Create(Self);
{$ENDIF}
end;
destructor TMALogs.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TMALogs.GetServerProperties: TMALogsProperties;
begin
Result := FProps;
end;
{$ENDIF}
procedure TMALogs.SaveBinaryLogs(const FileName: WideString; Concat: Integer);
begin
DefaultInterface.SaveBinaryLogs(FileName, Concat);
end;
procedure TMALogs.SaveTextLogs(const FileName: WideString; Concat: Integer);
begin
DefaultInterface.SaveTextLogs(FileName, Concat);
end;
procedure TMALogs.GetParam(const ParamName: WideString; var Value: OleVariant);
begin
DefaultInterface.GetParam(ParamName, Value);
end;
procedure TMALogs.SetParam(const ParamName: WideString; Value: OleVariant);
begin
DefaultInterface.SetParam(ParamName, Value);
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TMALogsProperties.Create(AServer: TMALogs);
begin
inherited Create;
FServer := AServer;
end;
function TMALogsProperties.GetDefaultInterface: IMALogs;
begin
Result := FServer.DefaultInterface;
end;
{$ENDIF}
class function CoMAOptions.Create: IMAOptions;
begin
Result := CreateComObject(CLASS_MAOptions) as IMAOptions;
end;
class function CoMAOptions.CreateRemote(const MachineName: string): IMAOptions;
begin
Result := CreateRemoteComObject(MachineName, CLASS_MAOptions) as IMAOptions;
end;
procedure TMAOptions.InitServerData;
const
CServerData: TServerData = (
ClassID: '{AA8522E7-E4DF-4C8B-8FB3-595EBDD3F951}';
IntfIID: '{486F39E1-E6E8-4A6C-AC2C-2C936FA58A7E}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;
procedure TMAOptions.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as IMAOptions;
end;
end;
procedure TMAOptions.ConnectTo(svrIntf: IMAOptions);
begin
Disconnect;
FIntf := svrIntf;
end;
procedure TMAOptions.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;
function TMAOptions.GetDefaultInterface: IMAOptions;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call "Connect" or "ConnectTo" before this operation');
Result := FIntf;
end;
constructor TMAOptions.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TMAOptionsProperties.Create(Self);
{$ENDIF}
end;
destructor TMAOptions.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TMAOptions.GetServerProperties: TMAOptionsProperties;
begin
Result := FProps;
end;
{$ENDIF}
procedure TMAOptions.SetAppConf(HOSTCOM: Smallint; MODE: Smallint; LogFile: Integer;
AdminIdent: Integer; TimeMask: Integer);
begin
DefaultInterface.SetAppConf(HOSTCOM, MODE, LogFile, AdminIdent, TimeMask);
end;
procedure TMAOptions.SetCntlCardConf(ReaderType: Smallint; B: Smallint; N: Smallint; C: Smallint;
MODE: Smallint);
begin
DefaultInterface.SetCntlCardConf(ReaderType, B, N, C, MODE);
end;
procedure TMAOptions.SetDateTimeConf(const DateTime: WideString);
begin
DefaultInterface.SetDateTimeConf(DateTime);
end;
procedure TMAOptions.SetGUIConf(ChangeLanguage: Integer; DisplayHour: Integer;
WelcomeField1: Smallint; WelcomeField2: Smallint; IdleTime: Smallint);
begin
DefaultInterface.SetGUIConf(ChangeLanguage, DisplayHour, WelcomeField1, WelcomeField2, IdleTime);
end;
procedure TMAOptions.SetLanguageConf(Language: Smallint);
begin
DefaultInterface.SetLanguageConf(Language);
end;
procedure TMAOptions.SetNetWorkConf(const IpAdress: WideString; const Subnet: WideString;
const Gateway: WideString);
begin
DefaultInterface.SetNetWorkConf(IpAdress, Subnet, Gateway);
end;
procedure TMAOptions.SetRelayConf(MODE: Integer; TIMEOUT: Integer);
begin
DefaultInterface.SetRelayConf(MODE, TIMEOUT);
end;
procedure TMAOptions.SetSerialLinkConf(IdPort: Smallint; speed: Smallint; databits: Smallint;
stopbits: Smallint; parity: Smallint; flowcontrol: Smallint;
send: Integer; format: Smallint);
begin
DefaultInterface.SetSerialLinkConf(IdPort, speed, databits, stopbits, parity, flowcontrol, send,
format);
end;
procedure TMAOptions.SetWiDCConf(ID: Smallint; send: Integer);
begin
DefaultInterface.SetWiDCConf(ID, send);
end;
procedure TMAOptions.SetWiDCOptionsConf(FacilityCode: Smallint; DataClockLevel: Smallint;
LedIn: Integer; LedOutCardPresent: Integer);
begin
DefaultInterface.SetWiDCOptionsConf(FacilityCode, DataClockLevel, LedIn, LedOutCardPresent);
end;
procedure TMAOptions.Reset;
begin
DefaultInterface.Reset;
end;
procedure TMAOptions.GetParam(const ParamName: WideString; var Value: OleVariant);
begin
DefaultInterface.GetParam(ParamName, Value);
end;
procedure TMAOptions.SetFFDConf(LogEvents: Smallint; SendID: Smallint; Delay: Integer;
PresDetect: Smallint; WDCId: Smallint; SecureLevel: Smallint);
begin
DefaultInterface.SetFFDConf(LogEvents, SendID, Delay, PresDetect, WDCId, SecureLevel);
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TMAOptionsProperties.Create(AServer: TMAOptions);
begin
inherited Create;
FServer := AServer;
end;
function TMAOptionsProperties.GetDefaultInterface: IMAOptions;
begin
Result := FServer.DefaultInterface;
end;
{$ENDIF}
class function CoMARecord.Create: IMARecord;
begin
Result := CreateComObject(CLASS_MARecord) as IMARecord;
end;
class function CoMARecord.CreateRemote(const MachineName: string): IMARecord;
begin
Result := CreateRemoteComObject(MachineName, CLASS_MARecord) as IMARecord;
end;
procedure TMARecord.InitServerData;
const
CServerData: TServerData = (
ClassID: '{BD7E3E65-7D36-45A5-B86E-2FA853A9A738}';
IntfIID: '{72888AD7-0605-496D-9F8C-E7D79A3F8CEA}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;
procedure TMARecord.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as IMARecord;
end;
end;
procedure TMARecord.ConnectTo(svrIntf: IMARecord);
begin
Disconnect;
FIntf := svrIntf;
end;
procedure TMARecord.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;
function TMARecord.GetDefaultInterface: IMARecord;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call "Connect" or "ConnectTo" before this operation');
Result := FIntf;
end;
constructor TMARecord.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TMARecordProperties.Create(Self);
{$ENDIF}
end;
destructor TMARecord.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TMARecord.GetServerProperties: TMARecordProperties;
begin
Result := FProps;
end;
{$ENDIF}
procedure TMARecord.AddFinger(PK: OleVariant; Position: Smallint);
begin
DefaultInterface.AddFinger(PK, Position);
end;
procedure TMARecord.RemoveFinger(Position: Smallint);
begin
DefaultInterface.RemoveFinger(Position);
end;
procedure TMARecord.AddUserData(const FieldName: WideString; Data: OleVariant);
begin
DefaultInterface.AddUserData(FieldName, Data);
end;
procedure TMARecord.GetParam(const ParamName: WideString; var Value: OleVariant);
begin
DefaultInterface.GetParam(ParamName, Value);
end;
procedure TMARecord.SetParam(const ParamName: WideString; Value: OleVariant);
begin
DefaultInterface.SetParam(ParamName, Value);
end;
procedure TMARecord.GetUserData(DataIndex: Smallint; var FieldName: WideString;
var Value: OleVariant);
begin
DefaultInterface.GetUserData(DataIndex, FieldName, Value);
end;
procedure TMARecord.Clean;
begin
DefaultInterface.Clean;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TMARecordProperties.Create(AServer: TMARecord);
begin
inherited Create;
FServer := AServer;
end;
function TMARecordProperties.GetDefaultInterface: IMARecord;
begin
Result := FServer.DefaultInterface;
end;
{$ENDIF}
class function CoMATerminal.Create: IMATerminal;
begin
Result := CreateComObject(CLASS_MATerminal) as IMATerminal;
end;
class function CoMATerminal.CreateRemote(const MachineName: string): IMATerminal;
begin
Result := CreateRemoteComObject(MachineName, CLASS_MATerminal) as IMATerminal;
end;
procedure TMATerminal.InitServerData;
const
CServerData: TServerData = (
ClassID: '{5960999D-2C1D-4781-8815-D1A363F0F5AA}';
IntfIID: '{D92A279C-46AA-4908-9F4D-8BE4F6D2256A}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;
procedure TMATerminal.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as IMATerminal;
end;
end;
procedure TMATerminal.ConnectTo(svrIntf: IMATerminal);
begin
Disconnect;
FIntf := svrIntf;
end;
procedure TMATerminal.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;
function TMATerminal.GetDefaultInterface: IMATerminal;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call "Connect" or "ConnectTo" before this operation');
Result := FIntf;
end;
constructor TMATerminal.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TMATerminalProperties.Create(Self);
{$ENDIF}
end;
destructor TMATerminal.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TMATerminal.GetServerProperties: TMATerminalProperties;
begin
Result := FProps;
end;
{$ENDIF}
function TMATerminal.AccessOK(TIMEOUT: Integer; GreenLigth: Integer): Smallint;
begin
Result := DefaultInterface.AccessOK(TIMEOUT, GreenLigth);
end;
function TMATerminal.Authenticate(const IRec: IMARecord; MatchThreshold: Smallint;
qualThreshold: Smallint; var iResult: Smallint; TIMEOUT: Integer;
ConnectionTimeOut: Integer; AuthentTimeOut: Integer): Smallint;
begin
Result := DefaultInterface.Authenticate(IRec, MatchThreshold, qualThreshold, iResult, TIMEOUT,
ConnectionTimeOut, AuthentTimeOut);
end;
function TMATerminal.DefaultInit(TIMEOUT: Integer; KeepSettings: Integer): Smallint;
begin
Result := DefaultInterface.DefaultInit(TIMEOUT, KeepSettings);
end;
function TMATerminal.EraseAllDBs(TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.EraseAllDBs(TIMEOUT);
end;
function TMATerminal.GarbageCollector(TIMEOUT: Integer; DBID: Smallint): Smallint;
begin
Result := DefaultInterface.GarbageCollector(TIMEOUT, DBID);
end;
function TMATerminal.RetrieveVersion(TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.RetrieveVersion(TIMEOUT);
end;
function TMATerminal.Identify(DBID: Smallint; MatchThreshold: Smallint; TIMEOUT: Integer;
var iResult: Smallint; var UserIndex: Integer; var UserId: WideString;
ConnectionTimeOut: Integer): Smallint;
begin
Result := DefaultInterface.Identify(DBID, MatchThreshold, TIMEOUT, iResult, UserIndex, UserId,
ConnectionTimeOut);
end;
function TMATerminal.Ping(TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.Ping(TIMEOUT);
end;
function TMATerminal.PrintScreen(PositionX: Smallint; PositionY: Smallint;
const Message: WideString; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.PrintScreen(PositionX, PositionY, Message, TIMEOUT);
end;
function TMATerminal.ReadFromKeyBoard(InputTime: Integer; const Prompt: WideString;
var Rep: WideString; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.ReadFromKeyBoard(InputTime, Prompt, Rep, TIMEOUT);
end;
function TMATerminal.Reboot(TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.Reboot(TIMEOUT);
end;
procedure TMATerminal.GetParam(const ParamName: WideString; var Value: OleVariant);
begin
DefaultInterface.GetParam(ParamName, Value);
end;
procedure TMATerminal.SetParam(const ParamName: WideString; Value: OleVariant);
begin
DefaultInterface.SetParam(ParamName, Value);
end;
function TMATerminal.Enrol(const IRec: IMARecord; DBID: Smallint; EnrolType: Integer;
NBFinger: Smallint; SaveRec: Integer; ExportPK: Smallint;
var EnrolStatus: Smallint; var UserDBIndex: Integer; TIMEOUT: Integer;
ConnectionTimeOut: Integer): Smallint;
begin
Result := DefaultInterface.Enrol(IRec, DBID, EnrolType, NBFinger, SaveRec, ExportPK, EnrolStatus,
UserDBIndex, TIMEOUT, ConnectionTimeOut);
end;
function TMATerminal.CreateDB(const DataBase: IMADB; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.CreateDB(DataBase, TIMEOUT);
end;
function TMATerminal.EraseDB(const DataBase: IMADB; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.EraseDB(DataBase, TIMEOUT);
end;
function TMATerminal.DownloadDB(const DataBase: IMADB; NbRetry: Smallint; var Stop: Integer;
TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.DownloadDB(DataBase, NbRetry, Stop, TIMEOUT);
end;
function TMATerminal.AddRecord(const DataBase: IMADB; const Record_: IMARecord;
var Status: Smallint; var UserIndex: Integer; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.AddRecord(DataBase, Record_, Status, UserIndex, TIMEOUT);
end;
function TMATerminal.RemoveRecord(const DataBase: IMADB; const Record_: IMARecord; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.RemoveRecord(DataBase, Record_, TIMEOUT);
end;
function TMATerminal.RetrieveMAConfig(const MAOpt: IMAOptions; TIMEOUT: Integer;
WiegandOrDC: Integer): Smallint;
begin
Result := DefaultInterface.RetrieveMAConfig(MAOpt, TIMEOUT, WiegandOrDC);
end;
function TMATerminal.SendMAConfig(const MAOpt: IMAOptions; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.SendMAConfig(MAOpt, TIMEOUT);
end;
function TMATerminal.RetrieveLogConfig(DBID: Smallint; const LogConfig: IMALogReport;
TIMEOUT: Integer; NbRetry: Smallint): Smallint;
begin
Result := DefaultInterface.RetrieveLogConfig(DBID, LogConfig, TIMEOUT, NbRetry);
end;
function TMATerminal.RetrieveLogs(DBID: Smallint; const Logs: IMALogs; TIMEOUT: Integer;
NbRetry: Smallint): Smallint;
begin
Result := DefaultInterface.RetrieveLogs(DBID, Logs, TIMEOUT, NbRetry);
end;
function TMATerminal.RetrieveAllDBReports(TabDBReport: PSafeArray; var NbBase: Smallint;
TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.RetrieveAllDBReports(TabDBReport, NbBase, TIMEOUT);
end;
function TMATerminal.EraseLogs(DBID: Smallint; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.EraseLogs(DBID, TIMEOUT);
end;
function TMATerminal.RetrieveMADBReport(DBID: Smallint; const Ireport: IMADBReport; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.RetrieveMADBReport(DBID, Ireport, TIMEOUT);
end;
function TMATerminal.OpenDistantSession(TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.OpenDistantSession(TIMEOUT);
end;
function TMATerminal.CloseDistantSession(TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.CloseDistantSession(TIMEOUT);
end;
function TMATerminal.SetContactlessKey(TIMEOUT: Integer; KeyNumber: Smallint; SectorNum: Smallint;
KeySector: OleVariant): Smallint;
begin
Result := DefaultInterface.SetContactlessKey(TIMEOUT, KeyNumber, SectorNum, KeySector);
end;
function TMATerminal.RetrieveKeyVersion(KeyNumber: Smallint; KeyStatus: Smallint; TIMEOUT: Integer;
var response: Smallint; var KeyVersion: Smallint;
var OperationDate: WideString; var KeyPeriod: Smallint): Smallint;
begin
Result := DefaultInterface.RetrieveKeyVersion(KeyNumber, KeyStatus, TIMEOUT, response,
KeyVersion, OperationDate, KeyPeriod);
end;
function TMATerminal.EraseAllKeys(TIMEOUT: Integer; var response: Smallint): Smallint;
begin
Result := DefaultInterface.EraseAllKeys(TIMEOUT, response);
end;
function TMATerminal.EraseKey(KeyNumber: Smallint; KeyVersion: Smallint; TIMEOUT: Integer;
var response: Smallint): Smallint;
begin
Result := DefaultInterface.EraseKey(KeyNumber, KeyVersion, TIMEOUT, response);
end;
function TMATerminal.SetRegistryKey(const KeyName: WideString; const KeyValue: WideString;
TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.SetRegistryKey(KeyName, KeyValue, TIMEOUT);
end;
function TMATerminal.RetrieveRegistryKey(const KeyName: WideString; var KeyValue: OleVariant;
TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.RetrieveRegistryKey(KeyName, KeyValue, TIMEOUT);
end;
function TMATerminal.UpdateMASoftware(const SoftPath: WideString; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.UpdateMASoftware(SoftPath, TIMEOUT);
end;
function TMATerminal.SendExtendedCommand(const ExtCmd: WideString; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.SendExtendedCommand(ExtCmd, TIMEOUT);
end;
function TMATerminal.FindUser(DBID: Smallint; FieldIndex: Integer; RecOffset: Integer;
UserData: OleVariant; var RecIndex: Integer; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.FindUser(DBID, FieldIndex, RecOffset, UserData, RecIndex, TIMEOUT);
end;
function TMATerminal.GetData(DBID: Smallint; FieldIndex: Integer; UserId: OleVariant;
var ReturnData: OleVariant; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.GetData(DBID, FieldIndex, UserId, ReturnData, TIMEOUT);
end;
function TMATerminal.GetPublicField(DBID: Smallint; FieldIndex: Integer; ReturnData: PSafeArray;
TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.GetPublicField(DBID, FieldIndex, ReturnData, TIMEOUT);
end;
function TMATerminal.UpdatePublicData(BDID: Smallint; ListOfField: PSafeArray; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.UpdatePublicData(BDID, ListOfField, TIMEOUT);
end;
function TMATerminal.ChangePwd(PwdID: Smallint; const OldPwd: WideString; const NewPwd: WideString;
TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.ChangePwd(PwdID, OldPwd, NewPwd, TIMEOUT);
end;
function TMATerminal.RetrieveRegistryFile(const RegPath: WideString; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.RetrieveRegistryFile(RegPath, TIMEOUT);
end;
function TMATerminal.RetrieveVersionEtendue(TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.RetrieveVersionEtendue(TIMEOUT);
end;
function TMATerminal.DisplayScreen(imageId: Smallint; attrib_1: Smallint; const line_1: WideString;
attrib_2: Smallint; const line_2: WideString;
attrib_3: Smallint; const line_3: WideString; i_TimeOut: Integer): Smallint;
begin
Result := DefaultInterface.DisplayScreen(imageId, attrib_1, line_1, attrib_2, line_2, attrib_3,
line_3, i_TimeOut);
end;
function TMATerminal.SetTerminalKey(const maKey: WideString; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.SetTerminalKey(maKey, TIMEOUT);
end;
function TMATerminal.ReadInput(var o_inputContent: OleVariant; cmdId: Smallint;
maxInputChar: Smallint; imageId: Smallint; attrib_1: Smallint;
line_1: OleVariant; lineId: Smallint; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.ReadInput(o_inputContent, cmdId, maxInputChar, imageId, attrib_1,
line_1, lineId, TIMEOUT);
end;
function TMATerminal.DataSend(line_1: OleVariant; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.DataSend(line_1, TIMEOUT);
end;
function TMATerminal.EraseLanguageFile(line_1: OleVariant; listIndex: Integer; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.EraseLanguageFile(line_1, listIndex, TIMEOUT);
end;
function TMATerminal.LoadLanguageFile(FileName: OleVariant; NbRetry: SYSINT; TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.LoadLanguageFile(FileName, NbRetry, TIMEOUT);
end;
function TMATerminal.AddSeveralRecords(const DataBase: IMADB; NbRetry: Smallint; var Stop: Integer;
TIMEOUT: Integer): Smallint;
begin
Result := DefaultInterface.AddSeveralRecords(DataBase, NbRetry, Stop, TIMEOUT);
end;
function TMATerminal.setComMode(i_e_comMode: SYSINT): SYSINT;
begin
Result := DefaultInterface.setComMode(i_e_comMode);
end;
function TMATerminal.getComMode: SYSINT;
begin
Result := DefaultInterface.getComMode;
end;
function TMATerminal.initSSL(const i_bstr_passphrase: WideString): SYSINT;
begin
Result := DefaultInterface.initSSL(i_bstr_passphrase);
end;
function TMATerminal.executeRequestFile(const i_cs_REQfilename: WideString;
const i_cs_REPfilename: WideString; i_i_timeout: SYSINT): SYSINT;
begin
Result := DefaultInterface.executeRequestFile(i_cs_REQfilename, i_cs_REPfilename, i_i_timeout);
end;
function TMATerminal.cmdDir(const i_pc_diskName: WideString; var o_pv_data: OleVariant;
var o_pi_length: SYSINT): SYSINT;
begin
Result := DefaultInterface.cmdDir(i_pc_diskName, o_pv_data, o_pi_length);
end;
function TMATerminal.SetMultipleRegistryKey(i_i_numberOfKeys: SYSINT; i_px_keys: PSafeArray;
i_i_timeout: SYSINT): SYSINT;
begin
Result := DefaultInterface.SetMultipleRegistryKey(i_i_numberOfKeys, i_px_keys, i_i_timeout);
end;
function TMATerminal.SetMIFAREKey(TIMEOUT: Integer; KeyNumber: Smallint; SectorNum: Smallint;
KeySector: OleVariant): Smallint;
begin
Result := DefaultInterface.SetMIFAREKey(TIMEOUT, KeyNumber, SectorNum, KeySector);
end;
function TMATerminal.SendCustomCommand(const i_cs_RequestString: WideString;
var o_cs_ReplyString: WideString;
var i_replyLength: LongWord; i_i_timeout: Integer): Smallint;
begin
Result := DefaultInterface.SendCustomCommand(i_cs_RequestString, o_cs_ReplyString, i_replyLength,
i_i_timeout);
end;
procedure TMATerminal.SpecialRequest(i_i_RequestType: SYSINT; var i_pv_DataIn: OleVariant;
i_i_DataInLength: SYSINT; var o_pv_DataOut: OleVariant;
var i_pi_DataOutLength: SYSINT);
begin
DefaultInterface.SpecialRequest(i_i_RequestType, i_pv_DataIn, i_i_DataInLength, o_pv_DataOut,
i_pi_DataOutLength);
end;
procedure TMATerminal.GetLicenseStatus(var o_hLicenseStatus: SYSINT);
begin
DefaultInterface.GetLicenseStatus(o_hLicenseStatus);
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TMATerminalProperties.Create(AServer: TMATerminal);
begin
inherited Create;
FServer := AServer;
end;
function TMATerminalProperties.GetDefaultInterface: IMATerminal;
begin
Result := FServer.DefaultInterface;
end;
{$ENDIF}
procedure Register;
begin
RegisterComponents(dtlServerPage, [TMADB, TMADBReport, TMALogReport, TMALogs,
TMAOptions, TMARecord, TMATerminal]);
end;
end.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Glad to help and thank you for the points!
Delphi is tricky when working with interfaces. If you have programmed before with C++ or Java, you know you can cast an interface to the underlying object. In fact, in Java and C++, the variable points to the same memory address and it only makes a difference for the compiler. In Delphi, an interface is a different "entity" than the underlying class. In fact, the interface is a group of pointers to the functions of the implementing class. Don't treat interfaces as abstract classes (when casting and such): though the concept is similar, they are managed quite differently.
Delphi is tricky when working with interfaces. If you have programmed before with C++ or Java, you know you can cast an interface to the underlying object. In fact, in Java and C++, the variable points to the same memory address and it only makes a difference for the compiler. In Delphi, an interface is a different "entity" than the underlying class. In fact, the interface is a group of pointers to the functions of the implementing class. Don't treat interfaces as abstract classes (when casting and such): though the concept is similar, they are managed quite differently.
ASKER
With your hint though, I've at least been able to set the time on the device, so I'll give you the points. I'll see how much further I can muddle from here ;)
function SetTime : integer;
var
terminal : TMATerminal;
i : integer;
options : IMAOptions;
begin
terminal := TMATerminal.Create(nil);
options := CoMAOptions.Create;
options.Reset;
options.SetDateTimeConf(Fo
terminal.SetParam('IPADRES
terminal.SetParam('PORTNUM
terminal.GetParam('SERIALN
result := terminal.SendMAConfig(opti
terminal.Free;
end;