#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 CMapCMapCrowdMessengerPro; typedef CMapCMapStrToStr; typedef CMapCMapCrowdUserTreeInfo; typedef CMapCMapCrowdItem; 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); };