20#if defined(WIN32) || defined(__MINGW32__) || defined(__MINGW64__)
25#ifndef SCARD_PROTOCOL_ANY
26#define SCARD_PROTOCOL_ANY (SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1)
34#if defined(WIN32) || defined(__MINGW32__) || defined(__MINGW64__)
48pcsc_stringify_error(uint64_t rv)
52 switch (
static_cast<LONG
>(rv)) {
53 case SCARD_S_SUCCESS: name =
"SCARD_S_SUCCESS";
break;
54 case SCARD_E_CANCELLED: name =
"SCARD_E_CANCELLED";
break;
55 case SCARD_E_INVALID_HANDLE: name =
"SCARD_E_INVALID_HANDLE";
break;
56 case SCARD_E_INVALID_PARAMETER: name =
"SCARD_E_INVALID_PARAMETER";
break;
57 case SCARD_E_NO_MEMORY: name =
"SCARD_E_NO_MEMORY";
break;
58 case SCARD_E_TIMEOUT: name =
"SCARD_E_TIMEOUT";
break;
59 case SCARD_E_SHARING_VIOLATION: name =
"SCARD_E_SHARING_VIOLATION";
break;
60 case SCARD_E_NO_SMARTCARD: name =
"SCARD_E_NO_SMARTCARD";
break;
61 case SCARD_E_PROTO_MISMATCH: name =
"SCARD_E_PROTO_MISMATCH";
break;
62 case SCARD_E_NOT_READY: name =
"SCARD_E_NOT_READY";
break;
63 case SCARD_E_READER_UNAVAILABLE: name =
"SCARD_E_READER_UNAVAILABLE";
break;
64 case SCARD_E_NO_SERVICE: name =
"SCARD_E_NO_SERVICE";
break;
65 case SCARD_E_SERVICE_STOPPED: name =
"SCARD_E_SERVICE_STOPPED";
break;
66 case SCARD_E_NO_READERS_AVAILABLE:
67 name =
"SCARD_E_NO_READERS_AVAILABLE";
69 case SCARD_E_NOT_TRANSACTED: name =
"SCARD_E_NOT_TRANSACTED";
break;
70 case SCARD_E_COMM_DATA_LOST: name =
"SCARD_E_COMM_DATA_LOST";
break;
71 case SCARD_E_UNKNOWN_READER: name =
"SCARD_E_UNKNOWN_READER";
break;
72 case SCARD_F_COMM_ERROR: name =
"SCARD_F_COMM_ERROR";
break;
73 case SCARD_F_INTERNAL_ERROR: name =
"SCARD_F_INTERNAL_ERROR";
break;
74 case SCARD_F_UNKNOWN_ERROR: name =
"SCARD_F_UNKNOWN_ERROR";
break;
75 case SCARD_W_UNPOWERED_CARD: name =
"SCARD_W_UNPOWERED_CARD";
break;
76 case SCARD_W_UNRESPONSIVE_CARD: name =
"SCARD_W_UNRESPONSIVE_CARD";
break;
77 case SCARD_W_RESET_CARD: name =
"SCARD_W_RESET_CARD";
break;
78 case SCARD_W_REMOVED_CARD: name =
"SCARD_W_REMOVED_CARD";
break;
79 default: name =
nullptr;
break;
83 sprintf_s(code,
sizeof(code),
"0x%08X",
static_cast<unsigned int>(rv));
85 return name !=
nullptr ? std::string(name) +
" (" + code +
")"
97 return rv ==
static_cast<uint64_t
>(SCARD_W_REMOVED_CARD)
98 || rv ==
static_cast<uint64_t
>(SCARD_W_RESET_CARD)
99 || rv ==
static_cast<uint64_t
>(SCARD_W_UNPOWERED_CARD)
100 || rv ==
static_cast<uint64_t
>(SCARD_W_UNRESPONSIVE_CARD)
101 || rv ==
static_cast<uint64_t
>(SCARD_E_NO_SMARTCARD)
102 || rv ==
static_cast<uint64_t
>(SCARD_E_NOT_TRANSACTED)
103 || rv ==
static_cast<uint64_t
>(SCARD_E_COMM_DATA_LOST)
bool isCardCommunicationError(uint64_t rv)