使用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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#pragma once
 
// CCrowdDataMgr command target
#include "CrowdMessengerPro.h"
 
//
// CmdIndex
#define CPN_CKLC_LOGINANME        ( 0 )
 
 
#define CPN_MLUC_LOGINNAME        ( 1 )
 
#define CPN_CKCC_LOGINNAME        ( 0 )
#define CPN_CKCC_CROWDID        ( 1 )
#define CPN_CKCC_DATE            ( 2 )
 
#define CPN_CSCC_LOGINNAME        ( 0 )
#define CPN_CSCC_CROWDID        ( 1 )
#define CPN_CSCC_DATE            ( 2 )
 
#define CPN_MSMG_ID                ( 0 )
#define CPN_MSMG_CROWDID        ( 1 )
#define CPN_MSMG_DATE            ( 2 )
 
#define CPN_MLMC_CROWDID        ( 1 )
 
#define CPN_MSSF_ID                ( 0 )
#define CPN_MSSF_CROWDID        ( 1 )
#define CPN_MSSF_DATE            ( 2 )
 
#define CPN_MLSF_CROWDID        ( 0 )
 
#define CPN_MDSF_ID                ( 0 )
#define CPN_MDSF_CROWDID        ( 1 )
#define CPN_MDSF_FILESFLAG        ( 2 )
#define CPN_MDSF_FILEID            ( 3 )
 
#define CPN_MGSF_ID                ( 0 )
#define CPN_MGSF_CROWDID        ( 1 )
#define CPN_MGSF_FILESFLAG        ( 2 )
#define CPN_MGSF_FILEID            ( 3 )
 
#define CPN_MSDF_ID                ( 0 )
#define CPN_MSDF_CROWDID        ( 1 )
// NtyType
#define NTYTYPE_MSG        ( _T("MSG") )
#define NTYTYPE_SSF        ( _T("SSF") )    // Í¨ÖªÐÂÎļþ
#define NTYTYPE_DSF        ( _T("DSF") )    // Í¨ÖªÉ¾³ýÎļþ
#define NTYTYPE_CDC        ( _T("CDC") )    // Í¨ÖªÈº±»É¾³ý
#define NTYTYPE_CMC        ( _T("CMC") )    // Í¨ÖªÈº±»ÐÞ¸Ä
#define NTYTYPE_IAC        ( _T("IAC") )    // ÑûÇëÈËÔ±¼ÓÈëȺ Èôµ±Ç°Óû§²»ÔÚÏߣ¬ÐèÒª±£´æAMLÎļþ
 
#define        MAX_COUNT_ADDUSER        ( 100 )
#define        MAX_COUNT_REMOVEUSER    ( 100 )
 
typedef CMap<CString, LPCTSTR, CCrowdMessengerPro*, CCrowdMessengerPro*&>CMapCrowdMessengerPro;
typedef CMap<CString, LPCTSTR, CString, LPCTSTR>CMapStrToStr;
 
typedef CMap<CString, LPCTSTR, REQLOAD_ITEM, REQLOAD_ITEM&>CMapCrowdUserTreeInfo;
 
typedef CMap<CString, LPCTSTR, CCrowdItem*, CCrowdItem*&>CMapCrowdItem;
 
class CCrowdDataMgr : public CObject
{
public:
    CCrowdDataMgr();
    virtual ~CCrowdDataMgr();
// Attributes
public:
    void                    *m_pOwner;
    CString                    m_strLoginName;
    CString                    m_strUserName;
    CString                    m_strPassword;
    int                        m_nUserSex;
    CString                    m_strMainCrowdServer;
    int                        m_nMainCrowdPort;
    bool                    m_bInited;
    bool                    m_bLogined;
    CString                    m_strLastErrInfo;
    CCrowdMessengerPro        m_MainMessengerPro;    // Ö÷·þÎñ
    CMapCrowdMessengerPro    m_mapMessengerPro;
    CMapStrToStr            m_mapCrowdServerInfo;
    CMapStrToStr            m_mapCrowdServerName;
    CMapCrowdItem            m_mapCrowd;
    CObList                    m_listCrowdServer;
    CMapOrgUserItem            m_mapCrowdUser;
    CMapStrToStr            m_mapCrowdInviteUsers;
    CString                    m_strSignInErrorInfo;
private:
    CMapCrowdUserTreeInfo    m_mapCrowdUserTree;
// Operations
public:    
 
    bool        OnInit();
    void        LayOut();
    void        OffLine( );                // ÀëÏß
    void        DetachCrowdList();
    void        ReLoginedCorwdServer(  bool bForceLogin = false);
    void        SetLoginInfo( CString strLoginName, CString strUserName, CString strPassword, int nSex );
    void        SetCrowdServerInfo( CString strServer, long nPort );
    bool        CheckCorwdServerLogined(  );
    CCrowdMessengerPro*    GetCrowdMessengerPro(CString strCrowdID );
    CCrowdMessengerPro*    CreateCrowdMessengerPro(CString strCrowdSName = _T(""), CString strCrowdServerIp = _T(""), int nCrowdServerPort = DEFAULTPORT_CROWD);
    CCrowdMessengerPro*    GetMainMessengerPro( );
    void        AddCrowdMessengerProInfo(CString strCrowdID, CString strCrowdSName = _T(""), CString strCrowdServerIp = _T(""), int nCrowdServerPort = DEFAULTPORT_CROWD);
    void        Logined( );
    void        SetSignInErrorInfo(CString strErrorInfo );
    CString            GetSignInErrorInfo( );
    CString        GetLastErrInfo( );
    void        OnCrowdReceive( CCrowdMessengerPro *pMessengerPro, CQLSysMsg *pSMsg, CString &strCrowdID, CString &strParam  );
    BOOL        CreateCrowd(HWND hWnd, CCrowdItem *pCrowdItem , CString strIviteUserInfo = _T("") );
    BOOL        DeleteCrowd(HWND hWnd, CString strCrowdID );
    BOOL        ModifyCrowd(HWND hWnd, CCrowdItem *pCrowdItem);
    BOOL        ChangeCrowdAdmin(HWND hWnd,CString strCrowdID, CString strLoginName,CString strUserName, long nSex );
    BOOL        GetCrowdInfo(HWND hWnd, CString strCrowdID,CCrowdMessengerPro *pMessengerPro = NULL );
 
    BOOL        LoadCrowdServerList(HWND hWnd);
    BOOL        LoadCrowdList(HWND hWnd, CString strCrowdID);
    BOOL        LoadCrowdList(HWND hWnd, CCrowdMessengerPro *pMessengerPro);
    BOOL        ListCrowdMember(HWND hWnd, CString strCrowdID );
    BOOL        AddCrowdUser(HWND hWnd, CString strCrowdID, CString strUserInfos);
    BOOL        RemoveCrowdUser(HWND hWnd, CString strCrowdID, CString strUserInfos);
    BOOL        ExitCrowd(HWND hWnd, CString strCrowdID);
 
    long        SendMsg(HWND hWnd, CString strCrowdID, CString strMsg);
    BOOL        DoLoadShareFileList(HWND hWnd,  CString strCrowdID, CString strFileGroup, CString strUserParam );
    BOOL        DoSendShareFile(HWND hWnd,  CString strCrowdID, long nFileType, _int64 nFileSize, long nFileEnType, CString strFileName, 
                        CString strFileSFlag, CString strFileID, CString strFileMD5, CString strFileGroup, CString strUserParam);
    BOOL        DoDeleteShareFile(HWND hWnd,  CString strCrowdID, CString strID, CString strUserParam );
    BOOL        DoDownloadShareFileBegin(HWND hWnd,  CString strCrowdID, CString strID, CString strUserParam );
    BOOL        DoDownloadShareFileEnd(HWND hWnd,  CString strCrowdID, CString strID, CString strUserParam );
    //Crowd
    BOOL        LookupCrowdItem(CString strCrowdID,CCrowdItem*& pItem);
    void        RemoveCrowdItem(CString strCrowdID, bool bDelete = true);
    void        AddCrowdItem(CString strCrowdID , CString strName);
    void        ChangeCrowdCreator(CString strCrowdID, CString strLoginName,CString strUserName);
    BOOL        CheckHaveCrowdType(int    nType);
    int            GetCrowdType(CString strCrowdID);
    //CrowdUser
    void        DetachCrowdUserList();
    BOOL        LookupUser( CString strLoginName,CMBOrgUser*& pItem);
    CString        GetUserName( CString strLoginName );
    void        AddUser( CString strLoginName, CString strUserName, CString strSex = 0 );
    BOOL        SetUserStatus( CString strLoginName, int nUserStatus );
    int            GetUserStatus( const CString strLoginName );
    void        OffLineAllUser( );
    bool        CrowdIsLogined( CString strCrowdID );
    bool        MainCrowdIsLogined(  );
    bool        GetOffLineCorwdServer( CString &strServer, int &nPort );
    int            GetCreateCrowdCount( );
    void        InviteCrowdUsers(  CString strCrowdID);
    void        OffLineAllCrowdUsers();
    void        AddDeaultCrowdMessengerPro();
private:
    BOOL LoadCrowdItemList( IXMLDOMElementPtr ptrItem, CCrowdItem    *pItem );
    BOOL LoadCrowdServerInfo( IXMLDOMElementPtr ptrItem );
    BOOL LoadCrowdServerItem( IXMLDOMElementPtr ptrItem, CString &strServerSName, CString &strServerIP, int &nServerPort );
    BOOL LoadCrowdMemberList( IXMLDOMElementPtr ptrItem, CCrowdItem    *pItem );
    BOOL        ParserCrowdItemData(CCrowdMessengerPro *pMessengerPro, CString strBody);
    BOOL        ParserCrowdServerData(CString strBody);
    BOOL        ParserCrowdMemberData(CCrowdItem *pItem,  CString strBody);
    BOOL        LoadCrowdFileItemList( IXMLDOMElementPtr ptrItem, CCrowdItem    *pItem, CString strFileGroup );
    BOOL        ParserCrowdFileData(CString strCrowdID, CString strFileGroup, CString strBody);
};