atcheck/lsscanner/new_ubuntu/node_modules/pcsclite/src/common.h

61 lines
1.4 KiB
C
Raw Normal View History

2019-12-16 18:42:21 +01:00
#ifndef COMMON_H
#define COMMON_H
#define ERR_MSG_MAX_LEN 512
#ifdef _WIN32
#include <windows.h>
#else
#include <unistd.h>
#define Sleep(x) usleep((x)*1000)
#endif
#ifdef _WIN32
#define snprintf _snprintf
#endif
namespace {
std::string error_msg(const char* method, LONG result) {
char msg[ERR_MSG_MAX_LEN];
#ifdef _WIN32
LPVOID lpMsgBuf;
FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
result,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
1,
NULL);
snprintf(msg,
ERR_MSG_MAX_LEN,
"%s error: %s(0x%.8lx)",
method,
lpMsgBuf,
result);
LocalFree(lpMsgBuf);
#elif __APPLE__
snprintf(msg,
ERR_MSG_MAX_LEN,
"%s error: %s(0x%.8x)",
method,
pcsc_stringify_error(result),
result);
#else
snprintf(msg,
ERR_MSG_MAX_LEN,
"%s error: %s(0x%.8lx)",
method,
pcsc_stringify_error(result),
result);
#endif
return msg;
}
}
#endif /* COMMON_H */