Index: src/plugin/PluginDownloadDialog.cpp |
=================================================================== |
deleted file mode 100644 |
--- a/src/plugin/PluginDownloadDialog.cpp |
+++ /dev/null |
@@ -1,270 +0,0 @@ |
-#include "PluginStdAfx.h" |
- |
-#include "PluginDictionary.h" |
-#include "PluginDownloadDialog.h" |
-#include "PluginClient.h" |
- |
- |
-#define WM_USER_ENDDOWNLOAD (WM_USER + 1) |
-#define WM_USER_DISPLAYSTATUS (WM_USER + 2) |
- |
- |
-// Just a small helper to guarantee that PostMessage succeeded |
-inline void _PostMessage(CWindow& wnd, UINT message, WPARAM wParam = 0, LPARAM lParam = 0) |
-{ |
- while (!wnd.PostMessage(message, wParam, lParam)) |
- { |
- ::Sleep(11); |
- } |
-} |
- |
- |
-// CPluginDownloadDialog |
-LRESULT CPluginDownloadDialog::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) |
-{ |
- CAxDialogImpl<CPluginDownloadDialog>::OnInitDialog(uMsg, wParam, lParam, bHandled); |
- |
- this->CenterWindow(); |
- |
- SetTimer(IDT_TIMER, 30, NULL); |
- |
- try |
- { |
- CPluginDictionary* dictionary = CPluginDictionary::GetInstance(); |
- |
- CString text; |
- |
- text = dictionary->Lookup("DOWNLOAD_UPDATE_TITLE"); |
- this->SetWindowTextW(text); |
- |
- text = dictionary->Lookup("DOWNLOAD_PLEASE_WAIT"); |
- SetDlgItemText(IDC_INSTALLMSG, text); |
- |
- text = dictionary->Lookup("DOWNLOAD_UPDATE_BUTTON"); |
- SetDlgItemText(IDC_INSTALLBTN, text); |
- |
- text = dictionary->Lookup("GENERAL_CANCEL"); |
- SetDlgItemText(IDCANCEL, text); |
- |
- m_errorText = dictionary->Lookup("DOWNLOAD_UPDATE_ERROR_TEXT"); |
- m_postText = dictionary->Lookup("DOWNLOAD_UPDATE_SUCCESS_TEXT"); |
- } |
- catch(std::runtime_error&) |
- { |
- } |
- |
- CWindow& pBar = ATL::CWindow::GetDlgItem(IDC_PROGRESS1); |
- |
- _PostMessage(pBar, PBM_SETPOS, 0); |
- |
- THREADSTRUCT* param = new THREADSTRUCT; |
- |
- param->_this = this; |
- param->url = m_url; |
- param->path = m_path; |
- param->hEventStop = m_eventStop; |
- param->errortext = m_errorText; |
- param->postdownloadtext = m_postText; |
- param->pBar = ATL::CWindow::GetDlgItem(IDC_PROGRESS1); |
- |
- DWORD dwThreadId = 1; |
- HANDLE hThread = ::CreateThread( |
- NULL, // no security attributes |
- 0, // use default stack size |
- StartThread, // thread function |
- param, // argument to thread function |
- 0, // use default creation flags |
- &dwThreadId); // returns the thread identifier |
- |
- // Check the return value for success. |
- if (hThread) |
- { |
- ::CloseHandle(hThread); |
- } |
- |
- bHandled = TRUE; |
- |
- return TRUE; // return TRUE unless you set the focus to a control |
-} |
- |
- |
-DWORD WINAPI CPluginDownloadDialog::StartThread(LPVOID param) |
-{ |
- THREADSTRUCT* ts = (THREADSTRUCT*)param; |
- |
- DOWNLOADPARAM *const pDownloadParam = static_cast<DOWNLOADPARAM *>(param); |
- |
- CBSCallbackImpl bsc(pDownloadParam->hWnd, pDownloadParam->hEventStop, ts->pBar); |
- |
- HRESULT hr = ::URLDownloadToFile(NULL, ts->url, ts->path, 0, &bsc); |
- |
- pDownloadParam->strFileName.ReleaseBuffer(SUCCEEDED(hr) ? -1 : 0); |
- |
- HWND hWnd; |
- |
- try |
- { |
- if (hr != S_OK) |
- { |
- hWnd = ts->_this->GetDlgItem(IDC_INSTALLMSG); |
- ::SendMessage(hWnd, WM_SETTEXT, 0, (LPARAM)ts->errortext.GetBuffer()); |
- |
- DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UPDATER, PLUGIN_ERROR_UPDATER_DOWNLOAD_FILE, "DownloadDialog::StartThead - URLDownloadToFile") |
- } |
- else |
- { |
- hWnd = ts->_this->GetDlgItem(IDC_INSTALLBTN); |
- ::EnableWindow(hWnd, TRUE); |
- |
- hWnd = ts->_this->GetDlgItem(IDC_INSTALLMSG); |
- ::SendMessage(hWnd, WM_SETTEXT, 0, (LPARAM)ts->postdownloadtext.GetBuffer()); |
- |
- _PostMessage(ts->pBar, PBM_SETPOS, (LPARAM)100); |
- } |
- } |
- catch(std::runtime_error&) |
- { |
- } |
- |
- //you can also call AfxEndThread() here |
- delete ts; |
- |
- return TRUE; |
-} |
- |
- |
-void CPluginDownloadDialog::SetUrlAndPath(CString url, CString path) |
-{ |
- m_url = url; |
- m_path = path; |
-} |
- |
-LRESULT CPluginDownloadDialog::OnBnClickedInstallbtn(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) |
-{ |
- return 0; |
-} |
- |
- |
-CBSCallbackImpl::CBSCallbackImpl(HWND hWnd, HANDLE eventStop, CWindow pBar) |
-{ |
- m_hWnd = hWnd; // the window handle to display status |
- m_pBar = pBar; |
- m_hEventStop = eventStop; |
- m_ulObjRefCount = 1; |
-} |
- |
-STDMETHODIMP CBSCallbackImpl::QueryInterface(REFIID riid, void **ppvObject) |
-{ |
- *ppvObject = NULL; |
- |
- // IUnknown |
- if (::IsEqualIID(riid, __uuidof(IUnknown))) |
- { |
- *ppvObject = this; |
- } |
- // IBindStatusCallback |
- else if (::IsEqualIID(riid, __uuidof(IBindStatusCallback))) |
- { |
- *ppvObject = static_cast<IBindStatusCallback *>(this); |
- } |
- |
- if (*ppvObject) |
- { |
- (*reinterpret_cast<LPUNKNOWN *>(ppvObject))->AddRef(); |
- |
- return S_OK; |
- } |
- |
- return E_NOINTERFACE; |
-} |
- |
-STDMETHODIMP_(ULONG) CBSCallbackImpl::AddRef() |
-{ |
- return ++m_ulObjRefCount; |
-} |
- |
-STDMETHODIMP_(ULONG) CBSCallbackImpl::Release() |
-{ |
- return --m_ulObjRefCount; |
-} |
- |
-STDMETHODIMP CBSCallbackImpl::OnStartBinding(DWORD, IBinding *) |
-{ |
- return S_OK; |
-} |
- |
-STDMETHODIMP CBSCallbackImpl::GetPriority(LONG *) |
-{ |
- return E_NOTIMPL; |
-} |
- |
-STDMETHODIMP CBSCallbackImpl::OnLowResource(DWORD) |
-{ |
- return S_OK; |
-} |
- |
-STDMETHODIMP CBSCallbackImpl::OnProgress(ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText) |
-{ |
- if (m_hWnd != NULL && ::IsWindow(m_pBar)) |
- { |
- switch (ulStatusCode) |
- { |
- case 1: // url |
- break; |
- |
- case 2: //ip |
- break; |
- |
- case 4: // progress < 1; |
- _PostMessage(m_pBar, PBM_SETPOS, (LPARAM)0); |
- break; |
- |
- case 5: // progress > 0; |
- if (ulProgressMax > 0) |
- { |
- _PostMessage(m_pBar, PBM_SETPOS, (LPARAM)(ULONG)((FLOAT)(100*ulProgress) / (FLOAT)ulProgressMax)); |
- } |
- break; |
- |
- case 6: |
- _PostMessage(m_pBar, PBM_SETPOS, (LPARAM)100); |
- break; |
- |
- case 11: // not text |
- break; |
- |
- case 13: // MIME |
- break; |
- } |
- } |
- |
- if (m_hEventStop != NULL) |
- { |
- if (::WaitForSingleObject(m_hEventStop, 0) == WAIT_OBJECT_0) |
- { |
- return E_ABORT; // canceled by the user |
- } |
- } |
- |
- return S_OK; |
-} |
- |
-STDMETHODIMP CBSCallbackImpl::OnStopBinding(HRESULT, LPCWSTR) |
-{ |
- return S_OK; |
-} |
- |
-STDMETHODIMP CBSCallbackImpl::GetBindInfo(DWORD *, BINDINFO *) |
-{ |
- return S_OK; |
-} |
- |
-STDMETHODIMP CBSCallbackImpl::OnDataAvailable(DWORD, DWORD, FORMATETC *, STGMEDIUM *) |
-{ |
- return S_OK; |
-} |
- |
-STDMETHODIMP CBSCallbackImpl::OnObjectAvailable(REFIID, IUnknown *) |
-{ |
- return S_OK; |
-} |