?? scardcl.pas
字號:
unit ScardCL;
{**************************************************************************}
{ }
{ 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: 07.04.2009 }
{ Generated Time: 05:10:54 }
{ }
{**************************************************************************}
interface
uses
{$IFDEF WIN32}
Windows, WinSCard;
{$ELSE}
Wintypes, WinProcs;
{$ENDIF}
{=> c:\omnikey\include\SCARDCL.H <=}
{+//**************************************************************************** }
{-@doc INT EXT }
{-****************************************************************************** }
{-* $ProjectName: $ }
{-* $ProjectRevision: $ }
{-*----------------------------------------------------------------------------- }
{-* $Source: z:/pr/cmsync/sw/scardcl/rcs/scardcl.h $ }
{-* $Revision: 2 $ }
{-*----------------------------------------------------------------------------- }
{-* $Author: tb $ }
{-*----------------------------------------------------------------------------- }
{-* History: see EOF }
{-*---------------------------------------------------------------------------- }
{-* Copyright (c) 2000 - 2006 OMNIKEY }
{=**************************************************************************** }
{$IFNDEF _INC_SCARD_CL}
{$DEFINE _INC_SCARD_CL}
const MIFARE_STD1K = $0001;
const MIFARE_STD4K = $0002;
const MIFARE_ULTRALIGHT = $0003;
const ICLASS_16KS = $001A;
const ICLASS_2KS = $0018;
const ICLASS_8x2KS = $001C;
const UNKNOWN_CARD = $0000;
{+// @consts MIFARE AUTHENTICATION Mode | Indicates <b ucMifareAuthMode> in <f SCardCLMifareStdAuthent> and <b ucMifareAuthModeForNewBlock> in <f SCardCLMifareStdRestoreVal>.*/ }
const MIFARE_AUTHENT1A = $60; {/* @cnst for authentication with Mifare key A*/}
const MIFARE_AUTHENT1B = $61; {/* @cnst for authentication with Mifare key B*/}
{+// @consts MIFARE KEY PROVIDING WAY | Indicates <b ucMifareAccessType> in <f SCardCLMifareStdAuthent> and <b ucMifareAccessTypeForNewBlock> in <f SCardCLMifareStdRestoreVal>.*/ }
const MIFARE_KEY_INPUT = $00; {/* @cnst If key is provided*/}
const MIFARE_KEYNR_INPUT = $01; {/* @cnst If key is taken from the reader Mifare key storage*/}
{$IFDEF __cplusplus}
{$ENDIF}
var
SCardCLWriteMifareKeyToReader: function(ulHandleCard: SCARDHANDLE;
hContext: SCARDCONTEXT;
pcCardReader: LPCTSTR;
ulMifareKeyNr: ULONG;
ulMifareKeyLen: ULONG;
pucMifareKey: PUCHAR;
fSecuredTransmission: BOOLEAN;
ulEncryptionKeyNr: ULONG
) : ULONG stdcall ;
var
SCardCLGetUID: function(ulHandleCard: SCARDHANDLE;
var pucUID: POINTER;
ulUIDBufLen: ULONG;
var pulnByteUID: LONGINT): ULONG stdcall ;
var
SCardCLMifareStdAuthent: function(ulHandleCard: SCARDHANDLE;
ulMifareBlockNr: ULONG;
ucMifareAuthMode: UCHAR;
ucMifareAccessType: UCHAR;
ucMifareKeyNr: UCHAR;
pucMifareKey: PUCHAR;
ulMifareKeyLen: ULONG): ULONG stdcall ;
var
SCardCLMifareStdRead: function(ulHandleCard: SCARDHANDLE;
ulMifareBlockNr: ULONG;
var pucMifareDataRead: PUCHAR;
ulMifareDataReadBufLen: ULONG;
var pulMifareNumOfDataRead: PULONG): ULONG stdcall ;
var
SCardCLMifareStdWrite: function(ulHandleCard: SCARDHANDLE;
ulMifareBlockNr: ULONG;
pucMifareDataWrite: PUCHAR;
ulMifareDataWriteBufLen: ULONG): ULONG stdcall ;
var
SCardCLMifareLightWrite: function(ulHandleCard: SCARDHANDLE;
ulMifareBlockNr: ULONG;
pucMifareDataWrite: PUCHAR;
ulMifareDataWriteBufLen: ULONG): ULONG stdcall ;
var
SCardCLMifareStdIncrementVal: function(ulHandleCard: SCARDHANDLE;
ulMifareBlockNr: ULONG;
pucMifareIncrementValue: PUCHAR;
ulMifareIncrementValueBufLen: ULONG): ULONG stdcall ;
var
SCardCLMifareStdDecrementVal: function(ulHandleCard: SCARDHANDLE;
ulMifareBlockNr: ULONG;
pucMifareDecrementValue: PUCHAR;
ulMifareDecrementValueBufLen: ULONG): ULONG stdcall ;
var
SCardCLMifareStdRestoreVal: function(ulHandleCard: SCARDHANDLE;
ulMifareOldBlockNr: ULONG;
ulMifareNewBlockNr: ULONG;
fMifareSameSector: BOOLEAN;
ucMifareAuthModeForNewBlock: UCHAR;
ucMifareAccessTypeForNewBlock: UCHAR;
ucMifareKeyN: UCHAR ) : ULONG stdcall ;
var
SCardCLICCTransmit: function(ulHandleCard: SCARDHANDLE;
pucSendData: PUCHAR;
ulSendDataBufLen: ULONG;
var pucReceivedData: PUCHAR;
var pulReceivedDataBufLen: PULONG): ULONG stdcall ;
{$IFDEF __cplusplus}
{$ENDIF}
{$ENDIF /* _INC_SCARD_CL*/}
{+//**************************************************************************** }
{-* History: }
{-* $Log: scardcl.h $ }
{-* Revision 1.10 2006/02/16 12:20:13 TBruendl }
{-* No comment given }
{-* }
{-* Revision 1.9 2005/09/07 11:22:48 TBruendl }
{-* No comment given }
{-* }
{-* Revision 1.5 2004/12/23 07:46:31 TBruendl }
{-* No comment given }
{-* }
{-* Revision 1.3 2004/07/09 07:45:21 TBruendl }
{-* No comment given }
{-* }
{-* Revision 1.1 2004/02/26 09:47:44 TBruendl }
{-* No comment given }
{-* }
{=***************************************************************************** }
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('scardsyn.dll');
if DLLHandle >= 32 then
begin
DLLLoaded := True;
SaveExit := ExitProc;
ExitProc := @NewExit;
@SCardCLWriteMifareKeyToReader := GetProcAddress(DLLHandle,'SCardCLWriteMifareKeyToReader');
{$IFDEF WIN32}
Assert(@SCardCLWriteMifareKeyToReader <> nil);
{$ENDIF}
@SCardCLGetUID := GetProcAddress(DLLHandle,'SCardCLGetUID');
{$IFDEF WIN32}
Assert(@SCardCLGetUID <> nil);
{$ENDIF}
@SCardCLMifareStdAuthent := GetProcAddress(DLLHandle,'SCardCLMifareStdAuthent');
{$IFDEF WIN32}
Assert(@SCardCLMifareStdAuthent <> nil);
{$ENDIF}
@SCardCLMifareStdRead := GetProcAddress(DLLHandle,'SCardCLMifareStdRead');
{$IFDEF WIN32}
Assert(@SCardCLMifareStdRead <> nil);
{$ENDIF}
@SCardCLMifareStdWrite := GetProcAddress(DLLHandle,'SCardCLMifareStdWrite');
{$IFDEF WIN32}
Assert(@SCardCLMifareStdWrite <> nil);
{$ENDIF}
@SCardCLMifareLightWrite := GetProcAddress(DLLHandle,'SCardCLMifareLightWrite');
{$IFDEF WIN32}
Assert(@SCardCLMifareLightWrite <> nil);
{$ENDIF}
@SCardCLMifareStdIncrementVal := GetProcAddress(DLLHandle,'SCardCLMifareStdIncrementVal');
{$IFDEF WIN32}
Assert(@SCardCLMifareStdIncrementVal <> nil);
{$ENDIF}
@SCardCLMifareStdDecrementVal := GetProcAddress(DLLHandle,'SCardCLMifareStdDecrementVal');
{$IFDEF WIN32}
Assert(@SCardCLMifareStdDecrementVal <> nil);
{$ENDIF}
@SCardCLMifareStdRestoreVal := GetProcAddress(DLLHandle,'SCardCLMifareStdRestoreVal');
{$IFDEF WIN32}
Assert(@SCardCLMifareStdRestoreVal <> nil);
{$ENDIF}
@SCardCLICCTransmit := GetProcAddress(DLLHandle,'SCardCLICCTransmit');
{$IFDEF WIN32}
Assert(@SCardCLICCTransmit <> nil);
{$ENDIF}
end
else
begin
DLLLoaded := False;
{ Error: scardsyn.dll could not be loaded !! }
end;
{$IFNDEF MSDOS}
SetErrorMode(ErrorMode)
{$ENDIF}
end {LoadDLL};
begin
LoadDLL;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -