| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #pragma once
- #include "../pch/pch.h"
- #include <curl/curl.h>
- class CUpdateWnd : public CWindowWnd, public INotifyUI, public IMessageFilterUI
- {
- public:
- LPCTSTR GetWindowClassName() const
- {
- return _T("UIUpdateFrame");
- };
- UINT GetClassStyle() const
- {
- return UI_CLASSSTYLE_DIALOG;
- };
- void OnFinalMessage(HWND /*hWnd*/)
- {
- //m_pm.RemovePreMessageFilter(this);
- delete this;
- };
- void InitData(std::string url, std::string dir)
- {
- m_url = url;
- m_dir = dir;
- }
- void Init();
- void Notify(TNotifyUI& msg);
- LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
- LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
- LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
- LRESULT OnNcActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
- LRESULT OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
- LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
- LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
- LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
- LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
- LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled);
- LRESULT OnRefresh(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
- LRESULT OnDownloadFinish(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
- std::string GetFileNameFormUrl(std::string url);
- static size_t nousecb(char* buffer, size_t x, size_t y, void* userdata);
- double getDownloadFileLength(std::string url);
- void Run();
- static size_t my_write_func(void* ptr, size_t size, size_t nmemb, FILE* stream);
- static int my_progress_func(void* progress_data,
- double t, /* dltotal */
- double d, /* dlnow */
- double ultotal,
- double ulnow);
- public:
- CPaintManagerUI m_pm;
- string m_dir;//目录名
- std::string m_filepath; //完成文件在本地的路径名
- CURL* m_curl;//libcurl句柄
- double m_downloadFileLength;//服务器文件长度
- int m_resumeByte;//本地已下载的文件长度
- FILE* m_outfile;//文件指针
- std::string m_url;//下载地址
- static double m_Percent;
- };
|