📄 winscard.pas
字号:
{$ENDIF}
{$ELSE}
function SCardListInterfacesA(hContext: LongInt; szCard: LPStr; var pguidInterfaces: GUID;
var pcguidInterfaces: LongInt): LongInt; stdcall;
{$EXTERNALSYM SCardListInterfacesA}
function SCardListInterfacesW(hContext: LongInt; szCard: LPWStr; var pguidInterfaces: GUID;
var pcguidInterfaces: LongInt): LongInt; stdcall;
{$EXTERNALSYM SCardListInterfacesW}
function SCardGetProviderIdA(hContext: LongInt; szCard: LPStr; var pguidProviderId: GUID): LongInt; stdcall;
{$EXTERNALSYM SCardGetProviderIdA}
function SCardGetProviderIdW(hContext: LongInt; szCard: LPWStr; var pguidProviderId: GUID): LongInt; stdcall;
{$EXTERNALSYM SCardGetProviderIdW}
{$ENDIF}
//
// NOTE: The routine SCardGetProviderId in this implementation uses GUIDs.
// The PC/SC definition uses BYTEs.
//
{$IFDEF WinSCard_DYNLINK}
type
TSCardGetCardTypeProviderNameA = function (hContext: LongInt; szCardName: LPStr; dwProviderId: LongInt;
szProvider: LPStr; var pcchProvider: LongInt): LongInt; stdcall;
TSCardGetCardTypeProviderNameW = function (hContext: LongInt; szCardName: LPWStr; dwProviderId: LongInt;
szProvider: LPWStr; var pcchProvider: LongInt): LongInt; stdcall;
{$IFDEF UNICODE}
TSCardGetCardTypeProviderName = TSCardGetCardTypeProviderNameW;
{$ELSE}
TSCardGetCardTypeProviderName = TSCardGetCardTypeProviderNameA;
{$ENDIF}
{$ELSE}
function SCardGetCardTypeProviderNameA(hContext: LongInt; szCardName: LPStr; dwProviderId: LongInt;
szProvider: LPStr; var pcchProvider: LongInt): LongInt; stdcall;
{$EXTERNALSYM SCardGetCardTypeProviderNameA}
function SCardGetCardTypeProviderNameW(hContext: LongInt; szCardName: LPWStr; dwProviderId: LongInt;
szProvider: LPWStr; var pcchProvider: LongInt): LongInt; stdcall;
{$EXTERNALSYM SCardGetCardTypeProviderNameW}
{$ENDIF}
//
// NOTE: This routine is an extension to the PC/SC definitions.
//
//
// Database Writer routines
//
{$IFDEF WinSCard_DYNLINK}
type
TSCardIntroduceReaderGroupA = function (hContext: LongInt; szGroupName: LPStr): LongInt; stdcall;
TSCardIntroduceReaderGroupW = function (hContext: LongInt; szGroupName: LPWStr): LongInt; stdcall;
{$IFDEF UNICODE}
TSCardIntroduceReaderGroup = TSCardIntroduceReaderGroupW;
{$ELSE}
TSCardIntroduceReaderGroup = TSCardIntroduceReaderGroupA;
{$ENDIF}
TSCardForgetReaderGroupA = function (hContext: LongInt; szGroupName: LPStr): LongInt; stdcall;
TSCardForgetReaderGroupW = function (hContext: LongInt; szGroupName: LPWStr): LongInt; stdcall;
{$IFDEF UNICODE}
TSCardForgetReaderGroup = TSCardForgetReaderGroupW;
{$ELSE}
TSCardForgetReaderGroup = TSCardForgetReaderGroupA;
{$ENDIF}
TSCardIntroduceReaderA = function (hContext: LongInt; szReadeName: LPStr; szDeviceName: LPStr): LongInt; stdcall;
TSCardIntroduceReaderW = function (hContext: LongInt; szReadeName: LPWStr; szDeviceName: LPWStr): LongInt; stdcall;
{$IFDEF UNICODE}
TSCardIntroduceReader = TSCardIntroduceReaderW;
{$ELSE}
TSCardIntroduceReader = TSCardIntroduceReaderA;
{$ENDIF}
TSCardForgetReaderA = function (hContext: LongInt; szReaderName: LPStr): LongInt; stdcall;
TSCardForgetReaderW = function (hContext: LongInt; szReaderName: LPWStr): LongInt; stdcall;
{$IFDEF UNICODE}
TSCardForgetReader = TSCardForgetReaderW;
{$ELSE}
TSCardForgetReader = TSCardForgetReaderA;
{$ENDIF}
TSCardAddReaderToGroupA = function (hContext: LongInt; szReaderName: LPStr; szGroupName: LPStr): LongInt; stdcall;
TSCardAddReaderToGroupW = function (hContext: LongInt; szReaderName: LPWStr; szGroupName: LPWStr): LongInt; stdcall;
{$IFDEF UNICODE}
TSCardAddReaderToGroup = TSCardAddReaderToGroupW;
{$ELSE}
TSCardAddReaderToGroup = TSCardAddReaderToGroupA;
{$ENDIF}
TSCardRemoveReaderFromGroupA = function (hContext: LongInt; szReaderName: LPStr; szGroupName: LPStr): LongInt; stdcall;
TSCardRemoveReaderFromGroupW = function (hContext: LongInt; szReaderName: LPWStr; szGroupName: LPWStr): LongInt; stdcall;
{$IFDEF UNICODE}
TSCardRemoveReaderFromGroup = TSCardRemoveReaderFromGroupW;
{$ELSE}
TSCardRemoveReaderFromGroup = TSCardRemoveReaderFromGroupA;
{$ENDIF}
TSCardIntroduceCardTypeA = function (hContext: LongInt; szCardName: LPStr; var pguidPrimaryProvider: GUID;
var pguidInterfaces: GUID; dwInterfaceCount: LongInt; pbAtr: LPStr;
pbAtrMask: LPStr; cbAtrLen: LongInt): LongInt; stdcall;
TSCardIntroduceCardTypeW = function (hContext: LongInt; szCardName: LPWStr; var pguidPrimaryProvider: GUID;
var pguidInterfaces: GUID; dwInterfaceCount: LongInt; pbAtr: LPWStr;
pbAtrMask: LPWStr; cbAtrLen: LongInt): LongInt; stdcall;
{$IFDEF UNICODE}
TSCardIntroduceCardType = TSCardIntroduceCardTypeW;
{$ELSE}
TSCardIntroduceCardType = TSCardIntroduceCardTypeA;
{$ENDIF}
TSCardSetCardTypeProviderNameA = function (hContext: LongInt; szCardName: LPStr; dwProviderId: LongInt;
szProvider: LPStr): LongInt; stdcall;
TSCardSetCardTypeProviderNameW = function (hContext: LongInt; szCardName: LPWStr; dwProviderId: LongInt;
szProvider: LPWStr): LongInt; stdcall;
{$IFDEF UNICODE}
TSCardSetCardTypeProviderName = TSCardSetCardTypeProviderNameW;
{$ELSE}
TSCardSetCardTypeProviderName = TSCardSetCardTypeProviderNameA;
{$ENDIF}
{$ELSE}
function SCardIntroduceReaderGroupA(hContext: LongInt; szGroupName: LPStr): LongInt; stdcall;
{$EXTERNALSYM SCardIntroduceReaderGroupA}
function SCardIntroduceReaderGroupW(hContext: LongInt; szGroupName: LPWStr): LongInt; stdcall;
{$EXTERNALSYM SCardIntroduceReaderGroupW}
function SCardForgetReaderGroupA(hContext: LongInt; szGroupName: LPStr): LongInt; stdcall;
{$EXTERNALSYM SCardForgetReaderGroupA}
function SCardForgetReaderGroupW(hContext: LongInt; szGroupName: LPWStr): LongInt; stdcall;
{$EXTERNALSYM SCardForgetReaderGroupW}
function SCardIntroduceReaderA(hContext: LongInt; szReadeName: LPStr; szDeviceName: LPStr): LongInt; stdcall;
{$EXTERNALSYM SCardIntroduceReaderA}
function SCardIntroduceReaderW(hContext: LongInt; szReadeName: LPWStr; szDeviceName: LPWStr): LongInt; stdcall;
{$EXTERNALSYM SCardIntroduceReaderW}
function SCardForgetReaderA(hContext: LongInt; szReaderName: LPStr): LongInt; stdcall;
{$EXTERNALSYM SCardForgetReaderA}
function SCardForgetReaderW(hContext: LongInt; szReaderName: LPWStr): LongInt; stdcall;
{$EXTERNALSYM SCardForgetReaderW}
function SCardAddReaderToGroupA(hContext: LongInt; szReaderName: LPStr; szGroupName: LPStr): LongInt; stdcall;
{$EXTERNALSYM SCardAddReaderToGroupA}
function SCardAddReaderToGroupW(hContext: LongInt; szReaderName: LPWStr; szGroupName: LPWStr): LongInt; stdcall;
{$EXTERNALSYM SCardAddReaderToGroupW}
function SCardRemoveReaderFromGroupA(hContext: LongInt; szReaderName: LPStr; szGroupName: LPStr): LongInt; stdcall;
{$EXTERNALSYM SCardRemoveReaderFromGroupA}
function SCardRemoveReaderFromGroupW(hContext: LongInt; szReaderName: LPWStr; szGroupName: LPWStr): LongInt; stdcall;
{$EXTERNALSYM SCardRemoveReaderFromGroupW}
function SCardIntroduceCardTypeA(hContext: LongInt; szCardName: LPStr; var pguidPrimaryProvider: GUID;
var pguidInterfaces: GUID; dwInterfaceCount: LongInt; pbAtr: LPStr;
pbAtrMask: LPStr; cbAtrLen: LongInt): LongInt; stdcall;
{$EXTERNALSYM SCardIntroduceCardTypeA}
function SCardIntroduceCardTypeW(hContext: LongInt; szCardName: LPWStr; var pguidPrimaryProvider: GUID;
var pguidInterfaces: GUID; dwInterfaceCount: LongInt; pbAtr: LPWStr;
pbAtrMask: LPWStr; cbAtrLen: LongInt): LongInt; stdcall;
{$EXTERNALSYM SCardIntroduceCardTypeW}
function SCardSetCardTypeProviderNameA(hContext: LongInt; szCardName: LPStr; dwProviderId: LongInt;
szProvider: LPStr): LongInt; stdcall;
{$EXTERNALSYM SCardSetCardTypeProviderNameA}
function SCardSetCardTypeProviderNameW(hContext: LongInt; szCardName: LPWStr; dwProviderId: LongInt;
szProvider: LPWStr): LongInt; stdcall;
{$EXTERNALSYM SCardSetCardTypeProviderNameW}
{$ENDIF}
//
// NOTE: This routine is an extention to the PC/SC specifications.
//
{$IFDEF WinSCard_DYNLINK}
type
TSCardForgetCardTypeA = function (hContext: LongInt; szCardName: LPStr): LongInt; stdcall;
TSCardForgetCardTypeW = function (hContext: LongInt; szCardName: LPWStr): LongInt; stdcall;
{$IFDEF UNICODE}
TSCardForgetCardType = TSCardForgetCardTypeW;
{$ELSE}
TSCardForgetCardType = TSCardForgetCardTypeA;
{$ENDIF}
{$ELSE}
function SCardForgetCardTypeA(hContext: LongInt; szCardName: LPStr): LongInt; stdcall;
{$EXTERNALSYM SCardForgetCardTypeA}
function SCardForgetCardTypeW(hContext: LongInt; szCardName: LPWStr): LongInt; stdcall;
{$EXTERNALSYM SCardForgetCardTypeW}
{$ENDIF}
//
////////////////////////////////////////////////////////////////////////////////
//
// Service Manager Support Routines
//
// The following services are supplied to simplify the use of the Service
// Manager API.
//
{$IFDEF WinSCard_DYNLINK}
type
TSCardFreeMemory = function (hContext: LongInt; pvMem: LongInt): LongInt; stdcall;
TSCardAccessStartedEvent = function: LongInt; stdcall;
TSCardReleaseStartedEvent = function: LongInt; stdcall;
{$ELSE}
function SCardFreeMemory(hContext: LongInt; pvMem: LongInt): LongInt; stdcall;
{$EXTERNALSYM SCardFreeMemory}
function SCardAccessStartedEvent: LongInt; stdcall;
{$EXTERNALSYM SCardAccessStartedEvent}
function SCardReleaseStartedEvent: LongInt; stdcall;
{$EXTERNALSYM SCardReleaseStartedEvent}
{$ENDIF}
//
////////////////////////////////////////////////////////////////////////////////
//
// Reader Services
//
// The following services supply means for tracking cards within readers.
//
type
LPSCARD_READERSTATEA = ^SCARD_READERSTATEA;
{$EXTERNALSYM LPSCARD_READERSTATEA}
PSCARD_READERSTATEA = ^SCARD_READERSTATEA;
{$EXTERNALSYM PSCARD_READERSTATEA}
SCARD_READERSTATEA = record
// CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED
// CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED
szReader: LPCSTR; { the reader name from SCardListReaders }
// CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED
// CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED CHANGED
pvUserData: Pointer; { user defined data }
dwCurrentState: LongInt; { current state of reader at time of call }
dwEventState: LongInt; { state of reader after state change }
cbAtr: LongInt; { Number of bytes in the returned ATR }
rgbAtr: array[0..35] of Byte; { Atr of inserted card, (extra alignment bytes) }
end;
{$EXTERNALSYM SCARD_READERSTATEA}
LPSCARD_READERSTATEW = ^SCARD_READERSTATEW;
{$EXTERNALSYM LPSCARD_READERSTATEW}
PSCARD_READERSTATEW = ^SCARD_READERSTATEW;
{$EXTERNALSYM PSCARD_READERSTATEW}
SCARD_READERSTATEW = record
szReader: LPCWStr; { reader name }
pvUserData: Pointer; { user defined data }
dwCurrentState: LongInt; { current state of reader at time of call }
dwEventState: LongInt; { state of reader after state change }
cbAtr: LongInt; { Number of bytes in the returned ATR }
rgbAtr: array[0..35] of Byte; { Atr of inserted card, (extra alignment bytes) }
end;
{$EXTERNALSYM SCARD_READERSTATEW}
{$IFDEF UNICODE}
SCARD_READERSTATE = SCARD_READERSTATEW;
PSCARD_READERSTATE = PSCARD_READERSTATEW;
LPSCARD_READERSTATE = LPSCARD_READERSTATEW;
{$ELSE}
SCARD_READERSTATE = SCARD_READERSTATEA;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -