aboutsummaryrefslogtreecommitdiff
path: root/Src/Winamp/setup/sjob_register.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Winamp/setup/sjob_register.cpp')
-rw-r--r--Src/Winamp/setup/sjob_register.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/Src/Winamp/setup/sjob_register.cpp b/Src/Winamp/setup/sjob_register.cpp
new file mode 100644
index 00000000..9754b2d4
--- /dev/null
+++ b/Src/Winamp/setup/sjob_register.cpp
@@ -0,0 +1,84 @@
+#include "main.h"
+#include "../nu/AutoChar.h"
+#include "./sjob_register.h"
+#include "./httpgrab.h"
+
+setup_job_register::setup_job_register() : ref(1), hwndHttp(NULL)
+{
+}
+
+setup_job_register::~setup_job_register()
+{
+}
+
+size_t setup_job_register::AddRef()
+{
+ return ++ref;
+}
+
+size_t setup_job_register::Release()
+{
+ if (1 == ref)
+ {
+ delete(this);
+ return 0;
+ }
+ return --ref;
+}
+
+HRESULT setup_job_register::Execute(HWND hwndText)
+{
+ if (!isInetAvailable()) return S_OK;
+ if (!config_newverchk2) return S_OK;
+
+ // TODO re-enable at some point as needed
+#if 0
+ char data[8192] = {0};
+ SecureZeroMemory(data, sizeof(data));
+
+ INT s = GetPrivateProfileInt("WinampReg", "RegDataLen", 0, INI_FILEA);
+ if (s> 0)
+ {
+ if (GetPrivateProfileStruct("WinampReg", "RegData2", data, s, INI_FILEA))
+ {
+ wchar_t szEmail[256] = {0};
+ GetMetricsValueW(data, MAKEINTRESOURCEA(METRICS_EMAIL), szEmail, sizeof(szEmail));
+ }
+ // if (!*szEmail) return S_OK;
+ }
+
+ HWND hwndHost = BeginGrabHTTPText(hwndText, HTTPGRAB_USEWINDOWTEXT, &hwndHttp);
+ HRESULT hr = (SendMetrics(data, hwndHost)) ? S_OK : S_FALSE;
+ hwndHttp = NULL;
+ EndGrabHTTPText(hwndHost);
+ return hr;
+#else
+ return S_OK;
+#endif
+}
+
+HRESULT setup_job_register::Cancel(HWND hwndText)
+{
+ if (hwndHttp) SendMessageW(hwndHttp, WM_COMMAND, MAKEWPARAM(IDCANCEL, BN_CLICKED),
+ (LPARAM)GetDlgItem(hwndHttp, IDCANCEL));
+ return S_OK;
+}
+
+HRESULT setup_job_register::IsCancelSupported()
+{
+ return S_OK;
+}
+
+#ifdef CBCLASS
+#undef CBCLASS
+#endif
+
+#define CBCLASS setup_job_register
+START_DISPATCH
+CB(ADDREF, AddRef)
+CB(RELEASE, Release)
+CB(API_SETUPJOB_EXECUTE, Execute)
+CB(API_SETUPJOB_CANCEL, Cancel)
+CB(API_SETUPJOB_ISCANCELSUPPORTED, IsCancelSupported)
+END_DISPATCH
+#undef CBCLASS \ No newline at end of file