update.h 860 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef NULLSOFT_AUTH_LOGIN_UPDATE_HEADER
  2. #define NULLSOFT_AUTH_LOGIN_UPDATE_HEADER
  3. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  4. #pragma once
  5. #endif
  6. #include <wtypes.h>
  7. #include "../../nu/ptrlist.h"
  8. class LoginDownloadResult;
  9. class LoginStatus;
  10. class LoginUpdate
  11. {
  12. protected:
  13. LoginUpdate(HWND hLoginbox);
  14. ~LoginUpdate();
  15. public:
  16. static HRESULT CreateInstance(HWND hLoginbox, LoginUpdate **instance);
  17. public:
  18. ULONG AddRef();
  19. ULONG Release();
  20. HRESULT Start();
  21. HRESULT Abort();
  22. protected:
  23. void DownloadCompleted(LoginDownloadResult *result);
  24. protected:
  25. typedef nu::PtrList<LoginDownloadResult> DownloadList;
  26. friend static void CALLBACK LoginUpdate_DownloadCompleted(LoginDownloadResult *result, void *data);
  27. protected:
  28. ULONG ref;
  29. HWND hwnd;
  30. DownloadList downloads;
  31. CRITICAL_SECTION lock;
  32. };
  33. #endif //NULLSOFT_AUTH_LOGIN_UPDATE_HEADER