Advertisement
Guest User

Untitled

a guest
Dec 19th, 2014
973
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.37 KB | None | 0 0
  1. @@ -188,19 +188,37 @@
  2.    {
  3.      return SCARD_S_SUCCESS;
  4.    }
  5. -  LONG WINAPI SCardGetStatusChangeA_ (SCARDCONTEXT, DWORD,
  6. +  LONG WINAPI SCardGetStatusChangeA_ (SCARDCONTEXT, DWORD dwTimeout,
  7.                       LPSCARD_READERSTATEA rgReaderStates,
  8.                       DWORD)
  9.    {
  10. -    rgReaderStates->dwEventState = SCARD_STATE_PRESENT;
  11. -    return SCARD_S_SUCCESS;
  12. +    if (rgReaderStates->dwCurrentState == SCARD_STATE_UNAWARE)
  13. +      {
  14. +   rgReaderStates->dwEventState = SCARD_STATE_PRESENT;
  15. +   return SCARD_S_SUCCESS;
  16. +      }
  17. +    else if (dwTimeout == INFINITE)
  18. +      {
  19. +   return SCARD_E_INVALID_PARAMETER;
  20. +      }
  21. +    Sleep (dwTimeout);
  22. +    return SCARD_E_TIMEOUT;
  23.    }
  24. -  LONG WINAPI SCardGetStatusChangeW_ (SCARDCONTEXT, DWORD,
  25. -                     LPSCARD_READERSTATEA rgReaderStates,
  26. +  LONG WINAPI SCardGetStatusChangeW_ (SCARDCONTEXT, DWORD dwTimeout,
  27. +                     LPSCARD_READERSTATEW rgReaderStates,
  28.                       DWORD)
  29.    {
  30. -    rgReaderStates->dwEventState = SCARD_STATE_PRESENT;
  31. -    return SCARD_S_SUCCESS;
  32. +    if (rgReaderStates->dwCurrentState == SCARD_STATE_UNAWARE)
  33. +      {
  34. +   rgReaderStates->dwEventState = SCARD_STATE_PRESENT;
  35. +   return SCARD_S_SUCCESS;
  36. +      }
  37. +    else if (dwTimeout == INFINITE)
  38. +      {
  39. +   return SCARD_E_INVALID_PARAMETER;
  40. +      }
  41. +    Sleep (dwTimeout);
  42. +    return SCARD_E_TIMEOUT;
  43.    }
  44.    LONG WINAPI SCardReleaseContext_ (SCARDCONTEXT)
  45.    {
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement