FreeRDP/winpr/libwinpr/smartcard/test/TestSmartCardListReaders.c
Norbert Federa f71b6b46e8 fix string format specifiers
- fixed invalid, missing or additional arguments
- removed all type casts from arguments
- added missing (void*) typecasts for %p arguments
- use inttypes defines where appropriate
2016-12-16 13:48:43 +01:00

52 lines
1001 B
C

#include <winpr/crt.h>
#include <winpr/smartcard.h>
int TestSmartCardListReaders(int argc, char* argv[])
{
LONG lStatus;
LPSTR pReader;
SCARDCONTEXT hSC;
LPSTR mszReaders = NULL;
DWORD cchReaders = SCARD_AUTOALLOCATE;
lStatus = SCardEstablishContext(SCARD_SCOPE_USER, NULL, NULL, &hSC);
if (lStatus != SCARD_S_SUCCESS)
{
printf("SCardEstablishContext failure: %s (0x%08"PRIX32")\n",
SCardGetErrorString(lStatus), lStatus);
return 0;
}
lStatus = SCardListReadersA(hSC, NULL, (LPSTR) &mszReaders, &cchReaders);
if (lStatus != SCARD_S_SUCCESS)
{
if (lStatus == SCARD_E_NO_READERS_AVAILABLE)
printf("SCARD_E_NO_READERS_AVAILABLE\n");
else
return -1;
}
else
{
pReader = mszReaders;
while (*pReader)
{
printf("Reader: %s\n", pReader);
pReader = pReader + strlen((CHAR*) pReader) + 1;
}
lStatus = SCardFreeMemory(hSC, mszReaders);
if (lStatus != SCARD_S_SUCCESS)
printf("Failed SCardFreeMemory\n");
}
SCardReleaseContext(hSC);
return 0;
}