⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scardcl.pas

📁 unit 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 + -