1
0

forceUrl.cpp 766 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "main.h"
  2. #include "./forceUrl.h"
  3. ForceUrl::ForceUrl() : id((UINT)-1), url(NULL)
  4. {
  5. }
  6. ForceUrl::~ForceUrl()
  7. {
  8. Plugin_FreeString(url);
  9. }
  10. HRESULT ForceUrl::Set(UINT serviceId, LPCWSTR pszUrl)
  11. {
  12. Plugin_FreeString(url);
  13. id = serviceId;
  14. url = Plugin_CopyString(pszUrl);
  15. return S_OK;
  16. }
  17. HRESULT ForceUrl::Peek(UINT serviceId, LPWSTR *pszUrl)
  18. {
  19. if (NULL == pszUrl) return E_POINTER;
  20. if (serviceId == id && NULL != url)
  21. {
  22. *pszUrl = url;
  23. url = NULL;
  24. id = ((UINT)-1);
  25. return S_OK;
  26. }
  27. return S_FALSE;
  28. }
  29. HRESULT ForceUrl::Remove(UINT serviceId)
  30. {
  31. if (id == serviceId)
  32. {
  33. Plugin_FreeString(url);
  34. url = NULL;
  35. id = ((UINT)-1);
  36. return S_OK;
  37. }
  38. return S_FALSE;
  39. }
  40. void ForceUrl::FreeString(LPWSTR pszValue)
  41. {
  42. Plugin_FreeString(pszValue);
  43. }