00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00017 #ifndef __winscard_h__
00018 #define __winscard_h__
00019
00020 #include <pcsclite.h>
00021
00022 #ifdef __cplusplus
00023 extern "C"
00024 {
00025 #endif
00026
00027 #ifndef PCSC_API
00028 #define PCSC_API
00029 #endif
00030
00031 PCSC_API LONG SCardEstablishContext(DWORD dwScope,
00032 LPCVOID pvReserved1, LPCVOID pvReserved2,
00033 LPSCARDCONTEXT phContext);
00034
00035 PCSC_API LONG SCardReleaseContext(SCARDCONTEXT hContext);
00036
00037 PCSC_API LONG SCardIsValidContext(SCARDCONTEXT hContext);
00038
00039 PCSC_API LONG SCardSetTimeout(SCARDCONTEXT hContext, DWORD dwTimeout);
00040
00041 PCSC_API LONG SCardConnect(SCARDCONTEXT hContext,
00042 LPCSTR szReader,
00043 DWORD dwShareMode,
00044 DWORD dwPreferredProtocols,
00045 LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol);
00046
00047 PCSC_API LONG SCardReconnect(SCARDHANDLE hCard,
00048 DWORD dwShareMode,
00049 DWORD dwPreferredProtocols,
00050 DWORD dwInitialization, LPDWORD pdwActiveProtocol);
00051
00052 PCSC_API LONG SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition);
00053
00054 PCSC_API LONG SCardBeginTransaction(SCARDHANDLE hCard);
00055
00056 PCSC_API LONG SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition);
00057
00058 PCSC_API LONG SCardCancelTransaction(SCARDHANDLE hCard);
00059
00060 PCSC_API LONG SCardStatus(SCARDHANDLE hCard,
00061 LPSTR mszReaderName,
00062 LPDWORD pcchReaderLen,
00063 LPDWORD pdwState,
00064 LPDWORD pdwProtocol,
00065 LPBYTE pbAtr,
00066 LPDWORD pcbAtrLen);
00067
00068 PCSC_API LONG SCardGetStatusChange(SCARDCONTEXT hContext,
00069 DWORD dwTimeout,
00070 LPSCARD_READERSTATE_A rgReaderStates, DWORD cReaders);
00071
00072 PCSC_API LONG SCardControl(SCARDHANDLE hCard, DWORD dwControlCode,
00073 LPCVOID pbSendBuffer, DWORD cbSendLength,
00074 LPVOID pbRecvBuffer, DWORD cbRecvLength,
00075 LPDWORD lpBytesReturned);
00076
00077 PCSC_API LONG SCardTransmit(SCARDHANDLE hCard,
00078 LPCSCARD_IO_REQUEST pioSendPci,
00079 LPCBYTE pbSendBuffer, DWORD cbSendLength,
00080 LPSCARD_IO_REQUEST pioRecvPci,
00081 LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength);
00082
00083 PCSC_API LONG SCardListReaderGroups(SCARDCONTEXT hContext,
00084 LPSTR mszGroups, LPDWORD pcchGroups);
00085
00086 PCSC_API LONG SCardListReaders(SCARDCONTEXT hContext,
00087 LPCSTR mszGroups,
00088 LPSTR mszReaders,
00089 LPDWORD pcchReaders);
00090
00091 PCSC_API LONG SCardFreeMemory(SCARDCONTEXT hContext, LPCVOID pvMem);
00092
00093 PCSC_API LONG SCardCancel(SCARDCONTEXT hContext);
00094
00095 PCSC_API LONG SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId,
00096 LPBYTE pbAttr, LPDWORD pcbAttrLen);
00097
00098 PCSC_API LONG SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId,
00099 LPCBYTE pbAttr, DWORD cbAttrLen);
00100
00101 #ifdef __cplusplus
00102 }
00103 #endif
00104
00105 #endif
00106