使用soui开发的mbc,只支持windows版本
w1146869587
2022-01-24 0408576e9da10015ffa9da0079b8c985113ce4b3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#pragma once
 
// COIUpsUpdateProgressDlg dialog
#define    CMD_FILE_UPLOAD            _T( "ULF" )        // ÉÏ´«Îļþ
#define    CMD_FILE_DOWNLOAD        _T( "DLF" )        // ÏÂÔØÎļþ
#define    CMD_FILE_UPDATE            _T( "UPF" )        // ¸üÐÂÎļþ
#define    CMD_FILE_COPY            _T( "CPF" )        // ¸´ÖÆÎļþ
#define    CMD_FILE_DELETE            _T( "DTF" )        // É¾³ýÎļþ
#define    CMD_FILE_GETFILEINFO    _T( "GFI" )        // µÃµ½ÎļþÐÅÏ¢
 
class CTaskItemData;
 
 
class CUpdateProgressDlg : public SHostWnd
{
public:
public:
    CUpdateProgressDlg();
    virtual ~CUpdateProgressDlg();
// Attributes
public:
    SHostWnd            *m_pOwner;
    CString                m_strID;
    CString                m_strAppProcName;
    CTaskItemData        *m_pTaskItemData;
private:
     BOOL                        m_bLayoutInited;        // ³õʼ»¯±êʶ
    CString        m_strFileServer;
    int            m_nFileSPort;
    CString        m_strLoginName;
    CString        m_strUserName;
    CString        m_strFileID;
    CString        m_strFileName;
    CString        m_strSaveFileName;
    __int64        m_nFileSize;
    __int64        m_nTranferedSize;
    __int64        m_nLastTransferedSize;                //ÒÑ´«Êä´óС
    bool        m_bSetFlag;
    DWORD        m_dwLastUpdate;                        //ÉÏÒ»´Î¸üÐÂʱ¼ä
    BOOL        m_bIsForcible;
    BOOL        m_bDownloadFinish;
    long        m_nTrID;
    DWORD        m_dwLastTransfer;                    //ÉÏÒ»´ÎÊÕµ½´«Êä½ø¶ÈµÄʱ¼ä
    CFileClientAsynMgr     m_FileClientMgr;
    BOOL            m_bCloseDlg;
// Operations
public:
    void SetServerInfo(CString strFileServer, int  nFileSPort);
    void SetUserInfo(CString strLoginName, CString  strUserName);
    void SetFileInfo(CString strFileID, CString  strFileName);
    void SetForcible(BOOL bIsForcible = TRUE);
private:
    bool        DownloadFile( CString strMFileServer, long nMFilePort, CString strMFileID, 
                            CString strFileName, CString &strFilePath );
    CString        GetFileSize(__int64 lSize);
    CString        GetSpeedStr( __int64 nSpeed);
    CString        GetRemainTime( DWORD nRemainedTime );
    BOOL        ParseErrerInfo( CString strErrorInfo, long &nErrID, CString &strErr);
    BOOL        KillProcess( CString strProcess, CString &strErrInfo );
public:
    void OnClose();                //¹Ø±Õ
    BOOL OnInitDialog(HWND wndFocus, LPARAM lInitParam);
    int OnCreate(LPCREATESTRUCT lpCreateStruct);
    void OnTimer(UINT_PTR nIDEvent);
    void DoMessageLoop();
protected:
    virtual void OnFinalMessage(HWND hWnd) {
        __super::OnFinalMessage(hWnd);
        delete this;
    }
public:
protected:
    //°´Å¥Ê¼þ´¦ÀíÓ³Éä±í
    EVENT_MAP_BEGIN()
        EVENT_NAME_COMMAND(L"btn_close", OnClose)
    EVENT_MAP_END()    
 
    //´°¿ÚÏûÏ¢´¦ÀíÓ³Éä±í
    BEGIN_MSG_MAP_EX(CMBAMSettingWnd)
        MSG_WM_CREATE(OnCreate)
        MSG_WM_INITDIALOG(OnInitDialog)
        MSG_WM_CLOSE(OnClose)
        MSG_WM_TIMER(OnTimer)
        MESSAGE_HANDLER(WM_FILECLIENT_CONNECT_ERROR,OnMsgFileConnectError)
        MESSAGE_HANDLER(WM_FILECLIENT_RESPONSE_ERROR,OnMsgFileResError)
        MESSAGE_HANDLER(WM_FILECLIENT_RESPONSE_RECEIVE,OnMsgFileResReceive)
        CHAIN_MSG_MAP(SHostWnd)//×¢Ò⽫ûÓд¦ÀíµÄÏûÏ¢½»¸ø»ùÀà´¦Àí
        REFLECT_NOTIFICATIONS_EX()  
 
    END_MSG_MAP()  
public:
        //File
    afx_msg LRESULT OnMsgFileConnectError(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL & bHandled);
    afx_msg LRESULT OnMsgFileResError(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL & bHandled);
    afx_msg LRESULT OnMsgFileResReceive(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL & bHandled);
 
};