#pragma once #include "CursorBase.h" #include "dbCursor.h" #include "MBAMDBConnect.h" #include "MsgFolder.h" #include "MsgOwner.h" #include "MsgAttachment.h" #include "MsgProperty.h" // CMsg command target class AFX_EXT_CLASS CMsgItem : public CCursorBase { DECLARE_DYNAMIC(CMsgItem) public: CMsgItem(); virtual ~CMsgItem(); void operator =( const CMsgItem& item ); // Attributes public: CString m_strID; CString m_strSourceID; CString m_strSubject; CString m_strSender; CString m_strSenderName; // Sender Name COleDateTime m_tmDate; // Send Date long m_nType; // Message Type, È磺ÆÕͨÏûÏ¢£¬ÌáÐÑ£¬ÈÎÎñ long m_nMsgFolder; // ÏûÏ¢ËùÔÚλÖà CString m_strFolderName; long m_nNeedConfirm; CString m_strMsgExtType; // ÏûÏ¢À©Õ¹ÀàÐÍ£¬È磺AM£¬ADOC long m_nReadState; // ¶ÁÏûÏ¢µÄ״̬£¬Ä¬ÈÏΪûÓÐ long m_nAttachCount; // CString m_strAttitudeset; // ½ÓÊÕÕßÉ趨¶ÔÏûÏ¢µÄ̬¶È long m_nMsgFlag; long m_nPropertyCount; // ÏûÏ¢À©Õ¹ÊôÐԵĸöÊý long m_nMsgExtState; // ÏûÏ¢µÄ״̬£¬ÈçÑÓ³Ù´¦Àí£¬×Ô¶¯»Ø¸´µÈ£¬ÓÃÓëÏûÏ¢¹ÜÀíÆ÷À©Õ¹ long m_nCharset; // ×Ö·û¼¯ long m_nIsGroupSend; CString m_strAppType; //Ó¦ÓóÌÐòÏûÏ¢£¬Èç STK CString m_strContentType; // È磺Text long m_nContentSize; // ÏûÏ¢ÄÚÈÝ´óС CString m_strContent; //ÏûÏ¢ÄÚÈÝ CString m_strContentText; //ÏûÏ¢ÄÚÈÝÎı¾ÄÚÈÝ bool m_bDownLoaded; CString m_strReceivers; //½ÓÊÜÕß CString m_strReceiverNames; //½ÓÊÕÕßÃû³Æ COleDateTime m_tmOpenDate; // Date of Open Message CString m_strReceiverAttitude; // CStringArray m_asResertData; // ÖØÖð´Å¥µÄȡֵ CStringArray m_asResertName; // ÖØÖð´Å¥µÄÃû³Æ LeftSide RightSide CArray m_arMsgOwners; // Message Receiver CArray m_arMsgAttachments; // Message Attachments CArray m_arMsgPropertys; // Message Propertys // Operations public: void Clear(); virtual BOOL GetItemValue( CString strName, CString &strValue ) { return CCursorBase::GetItemValue( strName, strValue ); } virtual BOOL GetItemValue( CString strName, COleVariant &varData ); BOOL InsertRecord( CDBConnect *pAConnect,bool bInsertUnRead); BOOL UpdateRecord(CDBConnect *pAConnect ); CString GetUpdateRecordSQL( ); BOOL InsertUnreadMsg(CDBConnect *pAConnect); BOOL UpdateUserAttitude( CDBConnect *pAConnect, CString strAttitude); BOOL CheckOwnerAllOpen( CDBConnect *pAConnect); public: int FindMsgOwnerr( CString strLoginName,int nOwnerType = 0 ); void LoadNtyNewMsgData( CComPtr IMessagePtr, long nFlag ) ; BOOL LoadData(CComPtr IMessagePtr); BOOL CapyDataTo(CComPtr IMessagePtr); CString GetContentType( int AMContentType ); int GetContentType( CString strContentType ); int GetMsgEnType( ); BOOL IHaveOpened(); BOOL IsAttitudeOk( CString strRightButton ); BOOL IsHaveCCUser( ); BOOL IsHaveMulRecLim( ); void GetProp( CString strName, CString &strData ); void SetProp( CString strName, CString strData ); CString GetUserInfo(); CString GetUserInfoPro(); CString GetUsersPro( ); CString GetReceivers(); // µÃµ½½ÓÊÕÓû§µÇ¼ÃûÁÐ±í´® CString GetReceiverTypes(); // µÃµ½½ÓÊÕÓû§µÇ¼ÃûÁÐ±í´® CString GetReceiversName(); // µÃµ½½ÓÊÕÓû§ÃûÁÐ±í´® CString GetOnlyReceiversName(); // Ö»µÃµ½½ÓÊÜÕßÓû§ÃûÁÐ±í´® CString FormatReceiversName(); // ¸ñʽ»¯½ÓÊÕÓû§Ãû£¬È磺Óû§1;... CString GetReplyUsers( CString strLogin ); CString GetReplyUsers2( CString strLogin ); CString GetReplyUsersPro( CString strLogin ); CString GetReplyCCUsers( CString strLogin ); CString GetReceiversPro( ); CString GetCCReceivers( ); CString GetCCReceiverTypes( ); void GetCCReceivers( CStringArray &asCCReceivers ); void GetCCReceiverTypes( CUIntArray &anCCReceiverTypes ); CString GetReceiversNamePro( ); CString GetCCReceiversName( ); CString GetReceiverName( CString strReceiver ); bool IsExistUnread( ); int AddData( CString strName, CString strValue ); BOOL GetData( CString strName, CString &strValue ); int FindData( CString strName ); int FindAttachment( CString strFileID ); }; class AFX_EXT_CLASS CMsgs : public CdbCursor, public CMsgItem { public: CMsgs(CMBAMDBConnect *pAConnect); virtual ~CMsgs(); void operator =( const CMsgs& item ); // Attributes public: // ¹ýÂËÌõ¼þ COleDateTime m_tmStartDate; // ¹ýÂËÌõ¼þ¿ªÊ¼ÈÕÆÚ COleDateTime m_tmEndDate; // ¹ýÂËÌõ¼þ½áÊøÈÕÆÚ int m_nReaded; // ¹ýÂËÌõ¼þÊÇ·ñÒѶÁ -1 ²»ÉèÌõ¼þ >0 ÒѶÁµÄ =0 δ¶ÁµÄ int m_nListMsgType; // ÏÔʾÏûÏ¢ÐÅÏ¢µÄÀàÐÍ // Operations public: void InitFilter( ); int ListSpMsgID( LPCTSTR lpszMsgID ); int ListTalking3( CString strLogin,CString strUser2,long nLimitCount, BOOL bTimeAsc = FALSE ); int ListTalking2( CString strLogin,CString strUser2,long nLimitCount, BOOL bTimeAsc = FALSE ); int ListTalking( CString strLogin,CString strUser2,bool bOnlyAttachmentMsg = false, bool bGroupSend = false, BOOL bTimeAsc = FALSE ); int ListUnreadMsg( LPCTSTR lpszOwner ); long ListRecordCount( ); int ListReceiveBoxMsg( CString strUser,CString strUserName, CString strContentKey, int nAttach ); int ListSendBoxMsg( CString strUser,CString strUserName, CString strContentKey, int nAttach ); int ListFavBoxMsg( CString strUser,CString strUserName, CString strContentKey, int nFavFolder ); int ListSyncBoxMsg( CString strSynchDate ); int ListSysBoxMsg( ); int ListSearchingTalkingMsg( CString strLogin,CString strUser2,CString strKey, BOOL bTimeAsc = FALSE ); bool RemoveMsg( LPCTSTR lpszMsgID ); bool MoveMsg( LPCTSTR lpszMsgID, long nNewFolderID ); int GetMsgOwnersLength(); bool GetMsgOwner( int nIndex, CMsgOwners &msgOwner ); int GetAttachmentCount(); bool GetAttachment( int nIndex, CMsgAttachments &msgAttachment ); bool RemoveOutboxTimeMsg( LPCTSTR lpszOwner, COleDateTime tmStartDate, COleDateTime tmEndDate ); bool RemoveReadedTimeMsg( LPCTSTR lpszOwner, COleDateTime tmStartDate, COleDateTime tmEndDate ); int ListSearchingTalking(CString strLogin, CString strUser2,CString strKey,bool bOnlyAttachmentMsg,bool bGroupSend = false,BOOL bTimeAsc = FALSE ); int ListTalkingAllMsg( CString strLogin, CString strUser2, BOOL bTimeAsc = FALSE ); int ListSearchingTalkingAllMsg( CString strLogin, CString strUser2,CString strKey,BOOL bTimeAsc = FALSE ); public: virtual bool GetData( ); void InitMsgData( ); bool GetMsgOwnerDataSimple( ); bool GetMsgDataSimple( ); bool GetMsgOwnerData( ); bool GetMsgAttachmentData( ); bool GetMsgPropertyData( ); bool GetMsgData( ); bool GetMsgChatData( ); bool GetMsgAdminData( ); BOOL DoSaveSyncMsg( CMsgItem *pMsg,bool bIsSendMsg, bool bNeedConfirm); BOOL DoSaveMsg( CMsgItem *pMsg,bool bIsSendMsg, bool bNeedConfirm); BOOL DoSaveSendMulMsg(CMsgItem *pMsg ); public: BOOL UpdateMsgOwnerAttitude( CMsgItem *pMsg ); BOOL UpldateLastContactDate( CString strID, CString strName, CString strLastDate, CString strSubject); BOOL UpdateMsg( CMsgItem *pMsg,bool bIsSendMsg ); };