1
0

dataAddress.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "./dataAddress.h"
  2. #include "./common.h"
  3. #include <strsafe.h>
  4. LoginDataAddress::LoginDataAddress(const GUID *pRealm, HWND hPage, HWND hLoginbox, LPCWSTR pszAddress)
  5. : LoginData(pRealm, hPage, hLoginbox), address(NULL)
  6. {
  7. address = LoginBox_CopyString(pszAddress);
  8. }
  9. LoginDataAddress::~LoginDataAddress()
  10. {
  11. LoginBox_FreeString(address);
  12. }
  13. HRESULT LoginDataAddress::CreateInstance(const GUID *pRealm, HWND hPage, HWND hLoginbox, LPCWSTR pszAddress, LoginDataAddress **instance)
  14. {
  15. if (NULL == instance) return E_POINTER;
  16. if (NULL == hPage || NULL == hLoginbox) return E_INVALIDARG;
  17. *instance = new LoginDataAddress(pRealm, hPage, hLoginbox, pszAddress);
  18. if (NULL == *instance) return E_OUTOFMEMORY;
  19. return S_OK;
  20. }
  21. HRESULT LoginDataAddress::QueryInterface(REFIID riid, void** ppObject)
  22. {
  23. if (NULL == ppObject)
  24. return E_POINTER;
  25. if (IsEqualIID(riid, IID_LoginDataAddress))
  26. {
  27. *ppObject = static_cast<LoginDataAddress*>(this);
  28. if (NULL == *ppObject) return E_UNEXPECTED;
  29. AddRef();
  30. return S_OK;
  31. }
  32. return __super::QueryInterface(riid, ppObject);
  33. }
  34. LPCWSTR LoginDataAddress::GetAddress()
  35. {
  36. return address;
  37. }