Hvala, nisam ovako nesto radio, voleo bih neko od iskusnijih programera da prover ovaj kodi...
Unapred hvala jos jednom
unit CELIKAPI;
{**************************************************************************}
{ }
{ This C DLL header file first (automatic) conversion generated by: }
{ HeadConv 4.0 (c) 2000 by Bob Swart (aka Dr.Bob -
www.drbob42.com) }
{ Final Delphi-Jedi (Darth) command-line units edition }
{ }
{ Generated Date: 28.9.2010 }
{ Generated Time: 20:02:40 }
{ }
{**************************************************************************}
interface
uses
{$IFDEF WIN32}
Windows;
{$ELSE}
Wintypes, WinProcs;
{$ENDIF}
{=> c:\documents and settings\korisnik\desktop\CELIKAPI.H <=}
{ #pragma once }
{$IFDEF __cplusplus}
{$ENDIF}
{$IFNDEF WINAPI}
{$ENDIF}
{$IFNDEF EID_API}
{$DEFINE EID_API}
{$ENDIF}
const EID_MAX_DocRegNo = 9;
const EID_MAX_IssuingDate = 10;
const EID_MAX_ExpiryDate = 10;
const EID_MAX_IssuingAuthority = 30;
const EID_MAX_PersonalNumber = 13;
const EID_MAX_Surname = 60;
const EID_MAX_GivenName = 40;
const EID_MAX_ParentGivenName = 25;
const EID_MAX_Sex = 2;
const EID_MAX_PlaceOfBirth = 25;
const EID_MAX_StateOfBirth = 25;
const EID_MAX_DateOfBirth = 10;
const EID_MAX_CommunityOfBirth = 25;
const EID_MAX_State = 3;
const EID_MAX_Community = 25;
const EID_MAX_Place = 25;
const EID_MAX_Street = 36;
const EID_MAX_HouseNumber = 5;
const EID_MAX_HouseLetter = 2;
const EID_MAX_Entrance = 3;
const EID_MAX_Floor = 3;
const EID_MAX_ApartmentNumber = 6;
const EID_MAX_Portrait = 7700;
const EID_OK = 0;
const EID_E_GENERAL_ERROR = -1;
const EID_E_INVALID_PARAMETER = -2;
const EID_E_VERSION_NOT_SUPPORTED = -3;
const EID_E_NOT_INITIALIZED = -4;
const EID_E_UNABLE_TO_EXECUTE = -5;
const EID_E_READER_ERROR = -6;
const EID_E_CARD_MISSING = -7;
const EID_E_CARD_UNKNOWN = -8;
const EID_E_CARD_MISMATCH = -9;
const EID_E_UNABLE_TO_OPEN_SESSION = -10;
const EID_E_DATA_MISSING = -11;
const EID_E_CARD_SECFORMAT_CHECK_ERROR = -12;
const EID_E_SECFORMAT_CHECK_CERT_ERROR = -13;
type
EID_DOCUMENT_DATA = record
docRegNo: Array[0..EID_MAX_DocRegNo-1] of Char;
docRegNoSize: Integer;
issuingDate: Array[0..EID_MAX_IssuingDate-1] of Char;
issuingDateSize: Integer;
expiryDate: Array[0..EID_MAX_ExpiryDate-1] of Char;
expiryDateSize: Integer;
issuingAuthority: Array[0..EID_MAX_IssuingAuthority-1] of Char;
issuingAuthoritySize: Integer;
end {tagEID_DOCUMENT_DATA};
type
EID_FIXED_PERSONAL_DATA = record
personalNumber: Array[0..EID_MAX_PersonalNumber-1] of Integer;
personalNumberSize: Integer;
surname: Array[0..EID_MAX_Surname-1] of Char;
surnameSize: Integer;
givenName: Array[0..EID_MAX_GivenName-1] of Char;
givenNameSize: Integer;
parentGivenName: Array[0..EID_MAX_ParentGivenName-1] of Char;
parentGivenNameSize: Integer;
sex: Array[0..EID_MAX_Sex-1] of Char;
sexSize: Integer;
placeOfBirth: Array[0..EID_MAX_PlaceOfBirth-1] of Char;
placeOfBirthSize: Integer;
stateOfBirth: Array[0..EID_MAX_StateOfBirth-1] of Char;
stateOfBirthSize: Integer;
dateOfBirth: Array[0..EID_MAX_DateOfBirth-1] of Char;
dateOfBirthSize: Integer;
communityOfBirth: Array[0..EID_MAX_CommunityOfBirth-1] of Char;
communityOfBirthSize: Integer;
end {tagEID_FIXED_PERSONAL_DATA};
type
EID_VARIABLE_PERSONAL_DATA = record
state: Array[0..EID_MAX_State-1] of Char;
stateSize: Integer;
community: Array[0..EID_MAX_Community-1] of Char;
communitySize: Integer;
place: Array[0..EID_MAX_Place-1] of Char;
placeSize: Integer;
street: Array[0..EID_MAX_Street-1] of Char;
streetSize: Integer;
houseNumber: Array[0..EID_MAX_HouseNumber-1] of Char;
houseNumberSize: Integer;
houseLetter: Array[0..EID_MAX_HouseLetter-1] of Char;
houseLetterSize: Integer;
entrance: Array[0..EID_MAX_Entrance-1] of Char;
entranceSize: Integer;
floor: Array[0..EID_MAX_Floor-1] of Char;
floorSize: Integer;
apartmentNumber: Array[0..EID_MAX_ApartmentNumber-1] of Char;
apartmentNumberSize: Integer;
end {tagEID_VARIABLE_PERSONAL_DATA};
type
EID_PORTRAIT = record
portrait: Array[0..EID_MAX_Portrait-1] of BYTE;
portraitSize: Integer;
end {tagEID_PORTRAIT};
{/// }
{/// Functions }
{/// }
var
EidStartup: function(nApiVersion: Integer):integer; {$IFDEF WIN32} stdcall {$ENDIF};
var
EidCleanup: function: integer;{$IFDEF WIN32} stdcall {$ENDIF};
var
EidBeginRead: function(szReader: string):integer; {$IFDEF WIN32} stdcall {$ENDIF};
var
EidEndRead: function: integer; {$IFDEF WIN32} stdcall {$ENDIF};
var
EidReadDocumentData: function(var pData: EID_DOCUMENT_DATA):integer; {$IFDEF WIN32} stdcall {$ENDIF};
var
EidReadFixedPersonalData: function(var pData: EID_FIXED_PERSONAL_DATA): integer; {$IFDEF WIN32} stdcall {$ENDIF};
var
EidReadVariablePersonalData: function(var pData: EID_VARIABLE_PERSONAL_DATA): integer; {$IFDEF WIN32} stdcall {$ENDIF};
var
EidReadPortrait: function(var pData: EID_PORTRAIT): integer; {$IFDEF WIN32} stdcall {$ENDIF};
var
EidReadDocumentDataP: function(pchDocRegNo: PChar;
var pnDocRegNoSize: Integer;
pchIssuingDate: PChar;
var pnIssuingDateSize: Integer;
pchExpiryDate: PChar;
var pnExpiryDateSize: Integer;
pchIssuingAuthority: PChar;
var pnIssuingAuthoritySize: Integer): integer; {$IFDEF WIN32} stdcall {$ENDIF};
var
EidReadFixedPersonalDataP: function(pchPersonalNumber: PChar;
var pnPersonalNumberSize: Integer;
pchSurname: PChar;
var pnSurnameSize: Integer;
pchGivenName: PChar;
var pnGivenNameSize: Integer;
pchParentGivenName: PChar;
var pnParentGivenNameSize: Integer;
pchSex: PChar;
var pnSexSize: Integer;
_11: Char):integer; {$IFDEF WIN32} stdcall {$ENDIF};
var
EidReadVariablePersonalDataP: function(pchState: PChar;
var pnStateSize: Integer;
pchCommunity: PChar;
var pnCommunitySize: Integer;
pchPlace: PChar;
var pnPlaceSize: Integer;
pchStreet: PChar;
var pnStreetSize: Integer;
pchHouseNumber: PChar;
var pnHouseNumberSize: Integer;
pchHouseLetter: PChar;
var _12: Integer): integer; {$IFDEF WIN32} stdcall {$ENDIF};
var
EidReadPortraitP: function(var pchPortrait: BYTE;
var pnPortraitSize: Integer): integer; {$IFDEF WIN32} stdcall {$ENDIF};
procedure LoadDLL;
procedure NewExit; far;
{$IFDEF __cplusplus}
{$ENDIF}
var
DLLLoaded: Boolean { is DLL (dynamically) loaded already? }
{$IFDEF WIN32} = False; {$ENDIF}
implementation
var
SaveExit: pointer;
DLLHandle: THandle;
{$IFNDEF MSDOS}
ErrorMode: Integer;
{$ENDIF}
procedure NewExit; far;
begin
ExitProc := SaveExit;
FreeLibrary(DLLHandle)
end {NewExit};
procedure LoadDLL;
begin
if DLLLoaded then Exit;
{$IFNDEF MSDOS}
ErrorMode := SetErrorMode($8000{SEM_NoOpenFileErrorBox});
{$ENDIF}
DLLHandle := LoadLibrary('CelikApi.dll');
if DLLHandle >= 32 then
begin
DLLLoaded := True;
SaveExit := ExitProc;
ExitProc := @NewExit;
@EidStartup := GetProcAddress(DLLHandle,'EidStartup');
{$IFDEF WIN32}
Assert(@EidStartup <> nil);
{$ENDIF}
@EidCleanup := GetProcAddress(DLLHandle,'EidCleanup');
{$IFDEF WIN32}
Assert(@EidCleanup <> nil);
{$ENDIF}
@EidBeginRead := GetProcAddress(DLLHandle,'EidBeginRead');
{$IFDEF WIN32}
Assert(@EidBeginRead <> nil);
{$ENDIF}
@EidEndRead := GetProcAddress(DLLHandle,'EidEndRead');
{$IFDEF WIN32}
Assert(@EidEndRead <> nil);
{$ENDIF}
@EidReadDocumentData := GetProcAddress(DLLHandle,'EidReadDocumentData');
{$IFDEF WIN32}
Assert(@EidReadDocumentData <> nil);
{$ENDIF}
@EidReadFixedPersonalData := GetProcAddress(DLLHandle,'EidReadFixedPersonalData');
{$IFDEF WIN32}
Assert(@EidReadFixedPersonalData <> nil);
{$ENDIF}
@EidReadVariablePersonalData := GetProcAddress(DLLHandle,'EidReadVariablePersonalData');
{$IFDEF WIN32}
Assert(@EidReadVariablePersonalData <> nil);
{$ENDIF}
@EidReadPortrait := GetProcAddress(DLLHandle,'EidReadPortrait');
{$IFDEF WIN32}
Assert(@EidReadPortrait <> nil);
{$ENDIF}
@EidReadDocumentDataP := GetProcAddress(DLLHandle,'EidReadDocumentDataP');
{$IFDEF WIN32}
Assert(@EidReadDocumentDataP <> nil);
{$ENDIF}
@EidReadFixedPersonalDataP := GetProcAddress(DLLHandle,'EidReadFixedPersonalDataP');
{$IFDEF WIN32}
Assert(@EidReadFixedPersonalDataP <> nil);
{$ENDIF}
@EidReadVariablePersonalDataP := GetProcAddress(DLLHandle,'EidReadVariablePersonalDataP');
{$IFDEF WIN32}
Assert(@EidReadVariablePersonalDataP <> nil);
{$ENDIF}
@EidReadPortraitP := GetProcAddress(DLLHandle,'EidReadPortraitP');
{$IFDEF WIN32}
Assert(@EidReadPortraitP <> nil);
{$ENDIF}
end
else
begin
DLLLoaded := False;
{ Error: CELIKAPI.DLL could not be loaded !! }
end;
{$IFNDEF MSDOS}
SetErrorMode(ErrorMode)
{$ENDIF}
end {LoadDLL};
begin
LoadDLL;
end.