// STKMsgRowSet.cpp : implementation file // #include "stdafx.h" #include "mbamdb.h" #include "STKMsgRowSet.h" #include "MBAMDBFun.h" // STKMsgRowSet CSTKMsgRowSet::CSTKMsgRowSet() { m_pDBConnect = NULL; m_nType = ROWTYPE_NONE; m_pMsgs = NULL; m_pMsgFolders = NULL; } CSTKMsgRowSet::~CSTKMsgRowSet() { CleanDataSet( ); } void CSTKMsgRowSet::operator = ( const CSTKMsgRowSet &Item ) { m_nType = Item.m_nType; m_strStartDate = Item.m_strStartDate; m_strEndDate = Item.m_strEndDate; m_pDBConnect = Item.m_pDBConnect; m_pMsgs = Item.m_pMsgs; m_pMsgFolders = Item.m_pMsgFolders; } void CSTKMsgRowSet::CleanDataSet( ) { switch ( m_nType ) { case ROWTYPE_MSG: if(m_pMsgs) delete m_pMsgs; m_pMsgs = NULL; break; case ROWTYPE_MSGFOLDER: if(m_pMsgFolders) delete m_pMsgFolders; m_pMsgFolders = NULL; break; case ROWTYPE_FOLDERMGR: delete m_pMsgAttachments; m_pMsgAttachments = NULL; break; } m_nType = ROWTYPE_NONE; } bool CSTKMsgRowSet::SetDBConnect( CMBAMDBConnect *pDBConnect ) { m_pDBConnect = pDBConnect; return true; } bool CSTKMsgRowSet::ListTalking3( CString strUser,long nLimitCount, long &nCount, BOOL bTimeAsc/* = FALSE */ ) { nCount = 0; if ( strUser.IsEmpty() ) return false; if ( !m_pDBConnect || !m_pDBConnect->IsOpenDB() ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgs->ListTalking3( m_pDBConnect->m_strLogin, strUser,nLimitCount, bTimeAsc ); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_nType = ROWTYPE_MSG; m_pMsgs->GetData( ); nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListTalking2( CString strUser,long nLimitCount, long &nCount, BOOL bTimeAsc/* = FALSE */ ) { nCount = 0; if ( strUser.IsEmpty() ) return false; if ( !m_pDBConnect || !m_pDBConnect->IsOpenDB() ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgs->ListTalking2( m_pDBConnect->m_strLogin, strUser,nLimitCount, bTimeAsc ); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_nType = ROWTYPE_MSG; m_pMsgs->GetData( ); nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListTalking( CString strUser, long &nCount,bool bOnlyAttachmentMsg, bool bGroupSend, BOOL bTimeAsc/* = FALSE */ ) { //CMBAMDBFun::WriteDBErrToFile(_T("CSTKMsgRowSet::ListTalking 1")); nCount = 0; if ( strUser.IsEmpty() ) return false; if ( !m_pDBConnect || !m_pDBConnect->IsOpenDB() ) return false; CleanDataSet(); // CMBAMDBFun::WriteDBErrToFile(_T("CSTKMsgRowSet::ListTalking 2")); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgs->ListTalking( m_pDBConnect->m_strLogin, strUser,bOnlyAttachmentMsg, bGroupSend, bTimeAsc ); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_nType = ROWTYPE_MSG; //CMBAMDBFun::WriteDBErrToFile(_T("CSTKMsgRowSet::ListTalking 3")); m_pMsgs->GetData( ); //CMBAMDBFun::WriteDBErrToFile(_T("CSTKMsgRowSet::ListTalking 4")); nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListRecordCount( long &nCount ) { nCount = 0; switch ( m_nType ) { case ROWTYPE_MSG: if ( m_pMsgs ) nCount = m_pMsgs->ListRecordCount(); break; case ROWTYPE_MSGFOLDER: if ( m_pMsgFolders ) nCount = m_pMsgFolders->ListRecordCount(); break; case ROWTYPE_FOLDERMGR: if ( m_pMsgAttachments ) nCount = m_pMsgAttachments->ListRecordCount(); break; default: return false; break; } return true; } bool CSTKMsgRowSet::Top( ) { switch ( m_nType ) { case ROWTYPE_MSG: if ( m_pMsgs && !m_pMsgs->MoveFirst() ) return false; break; case ROWTYPE_MSGFOLDER: if ( m_pMsgFolders && !m_pMsgFolders->MoveFirst() ) return false; break; case ROWTYPE_FOLDERMGR: if ( !m_pMsgAttachments->MoveFirst() ) return false; break; default: return false; break; } return true; } bool CSTKMsgRowSet::Prev() { switch ( m_nType ) { case ROWTYPE_MSG: if ( m_pMsgs && !m_pMsgs->MovePrev() ) return false; break; case ROWTYPE_MSGFOLDER: if ( m_pMsgFolders && !m_pMsgFolders->MovePrev() ) return false; break; case ROWTYPE_FOLDERMGR: if ( !m_pMsgAttachments->MovePrev() ) return false; break; default: return false; break; break; } return true; } bool CSTKMsgRowSet::Next( ) { switch ( m_nType ) { case ROWTYPE_MSG: if ( m_pMsgs && !m_pMsgs->MoveNext() ) return false; break; case ROWTYPE_MSGFOLDER: if ( m_pMsgFolders && !m_pMsgFolders->MoveNext() ) return false; break; case ROWTYPE_FOLDERMGR: if ( !m_pMsgAttachments->MoveNext() ) return false; break; default: return false; break; } return true; } bool CSTKMsgRowSet::MoveTo( long nPos ) { switch ( m_nType ) { case ROWTYPE_MSG: if ( m_pMsgs && !m_pMsgs->MoveTo( nPos ) ) return false; break; case ROWTYPE_MSGFOLDER: if ( m_pMsgFolders && !m_pMsgFolders->MoveTo( nPos ) ) return false; break; case ROWTYPE_FOLDERMGR: if ( !m_pMsgAttachments->MoveTo( nPos ) ) return false; break; default: return false; break; } return true; } bool CSTKMsgRowSet::GetRow( CSTKMsgRow *pSTKRow ) { if ( !pSTKRow ) return false; pSTKRow->m_pAConnect = m_pDBConnect; if ( m_nType == ROWTYPE_MSG ) pSTKRow->m_pCursor = m_pMsgs; else if ( m_nType == ROWTYPE_MSGFOLDER ) pSTKRow->m_pCursor = m_pMsgFolders; else if ( m_nType == ROWTYPE_FOLDERMGR ) pSTKRow->m_pCursor = m_pMsgAttachments; return true; } bool CSTKMsgRowSet::GetItemValueStr( CString strItemName, CString &strData ) { CString strValue = _T( "" ); CString strName = strItemName; if ( strName.IsEmpty() ) return false; switch ( m_nType ) { case ROWTYPE_MSG: { if ( !m_pMsgs ) return false; m_pMsgs->GetData( ); if ( !((*m_pMsgs).GetItemValue( strName, strValue )) ) return false; } break; case ROWTYPE_MSGFOLDER: { if ( !m_pMsgFolders ) return false; m_pMsgFolders->GetData( ); if ( !((*m_pMsgFolders).GetItemValue( strName, strValue )) ) return false; } break; case ROWTYPE_FOLDERMGR: { if ( !m_pMsgAttachments ) return false; m_pMsgAttachments->GetData( ); if ( !((*m_pMsgAttachments).GetItemValue( strName, strValue )) ) return false; } break; default: return false; break; } strData = strValue; return true; } bool CSTKMsgRowSet::GetItemValue( CString strItemName, VARIANT &vData ) { vData.vt = VT_EMPTY; CString strName = strItemName; if ( strName.IsEmpty() ) return false; COleVariant oleData; switch ( m_nType ) { case ROWTYPE_MSG: { if ( !m_pMsgs ) return false; m_pMsgs->GetData( ); if ( !((*m_pMsgs).GetItemValue( strName, oleData )) ) return false; } break; case ROWTYPE_MSGFOLDER: { if ( !m_pMsgFolders ) return false; m_pMsgFolders->GetData( ); if ( !((*m_pMsgFolders).GetItemValue( strName, oleData )) ) return false; } break; case ROWTYPE_FOLDERMGR: { if ( !m_pMsgAttachments ) return false; m_pMsgAttachments->GetData( ); if ( !((*m_pMsgAttachments).GetItemValue( strName, oleData )) ) return false; } break; default: return false; break; } vData = oleData; return true; } bool CSTKMsgRowSet::SetMsgFilterDate( CString strStartDate, CString strEndDate ) { m_strStartDate = strStartDate; m_strEndDate = strEndDate; return true; } bool CSTKMsgRowSet::ListSearchingTalking( CString strUser, CString strKey,bool bOnlyAttachmentMsg, long &nCount,bool bGroupSend, BOOL bTimeAsc ) { nCount = 0; if ( strUser.IsEmpty() ) return false; if ( !m_pDBConnect || !m_pDBConnect->m_bOpenDB ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect ); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgs->ListSearchingTalking( m_pDBConnect->m_strLogin, strUser,strKey,bOnlyAttachmentMsg,bGroupSend, bTimeAsc ); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_pMsgs->GetData( ); m_nType = ROWTYPE_MSG; nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListFolder( long nParentFolderID, long &nCount ) { nCount = 0; //if ( nParentFolderID < 0 ) // return false; if ( !m_pDBConnect || !m_pDBConnect->m_bOpenDB ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgFolders = new CMsgFolders(m_pDBConnect ); int nMsgCount(0); nMsgCount = m_pMsgFolders->ListFolder( nParentFolderID ); /*if ( nMsgCount <= 0 ) { delete m_pMsgFolders; m_pMsgFolders = NULL; return true; } m_pMsgFolders->GetData( )*/; m_nType = ROWTYPE_MSGFOLDER; nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListTalkingAllMsg( CString strUser, long &nCount, BOOL bTimeAsc/* = FALSE */ ) { nCount = 0; if ( strUser.IsEmpty() ) return false; if ( !m_pDBConnect || !m_pDBConnect->IsOpenDB() ) return false; CleanDataSet(); // CMBAMDBFun::WriteDBErrToFile(_T("CSTKMsgRowSet::ListTalking 2")); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgs->ListTalkingAllMsg( m_pDBConnect->m_strLogin, strUser, bTimeAsc ); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_nType = ROWTYPE_MSG; //CMBAMDBFun::WriteDBErrToFile(_T("CSTKMsgRowSet::ListTalking 3")); m_pMsgs->GetData( ); //CMBAMDBFun::WriteDBErrToFile(_T("CSTKMsgRowSet::ListTalking 4")); nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListSearchingTalkingAllMsg( CString strUser, CString strKey, long &nCount, BOOL bTimeAsc ) { nCount = 0; if ( strUser.IsEmpty() ) return false; if ( !m_pDBConnect || !m_pDBConnect->m_bOpenDB ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect ); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgs->ListSearchingTalkingAllMsg( m_pDBConnect->m_strLogin, strUser,strKey, bTimeAsc ); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_pMsgs->GetData( ); m_nType = ROWTYPE_MSG; nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListReceiveBoxMsg( CString strUser,CString strUserName, CString strContentKey, int nAttach,long &nCount ) { nCount = 0; if ( !m_pDBConnect || !m_pDBConnect->IsOpenDB() ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgs->ListReceiveBoxMsg( strUser,strUserName,strContentKey, nAttach ); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_nType = ROWTYPE_MSG; m_pMsgs->GetData( ); nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListSendBoxMsg( CString strUser,CString strUserName, CString strContentKey, int nAttach,long &nCount ) { nCount = 0; if ( !m_pDBConnect || !m_pDBConnect->IsOpenDB() ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgs->ListSendBoxMsg( strUser,strUserName,strContentKey, nAttach ); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_nType = ROWTYPE_MSG; m_pMsgs->GetData( ); nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListFavBoxMsg( CString strSender,CString strUserName, CString strContentKey, int nFavFolder,long &nCount ) { nCount = 0; if ( !m_pDBConnect || !m_pDBConnect->IsOpenDB() ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgs->ListFavBoxMsg(strSender,strUserName,strContentKey, nFavFolder ); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_nType = ROWTYPE_MSG; m_pMsgs->GetData( ); nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListSyncBoxMsg( CString strStartDate,long &nCount ) { nCount = 0; if ( !m_pDBConnect || !m_pDBConnect->IsOpenDB() ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect); CHighTime tmHigh; int nMsgCount(0); nMsgCount = m_pMsgs->ListSyncBoxMsg(strStartDate); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_nType = ROWTYPE_MSG; m_pMsgs->GetData( ); nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListSysBoxMsg( long &nCount) { nCount = 0; if ( !m_pDBConnect || !m_pDBConnect->IsOpenDB() ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgs->ListSysBoxMsg( ); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_nType = ROWTYPE_MSG; m_pMsgs->GetData( ); nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListAttachments( CString strUser,CString strUserName, CString strKey ,long &nCount ) { nCount = 0; if ( !m_pDBConnect || !m_pDBConnect->IsOpenDB() ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgAttachments = new CMsgAttachments( m_pDBConnect); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgAttachments->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgAttachments->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgAttachments->ListAttachments(strUser,strUserName,strKey); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_nType = ROWTYPE_FOLDERMGR; m_pMsgAttachments->GetData( ); nCount = nMsgCount; return true; } bool CSTKMsgRowSet::ListSearchingTalkingMsg( CString strUser, CString strKey, long &nCount, BOOL bTimeAsc ) { nCount = 0; if ( strUser.IsEmpty() ) return false; if ( !m_pDBConnect || !m_pDBConnect->m_bOpenDB ) return false; CleanDataSet(); m_pDBConnect->AddRef(); m_pMsgs = new CMsgs( m_pDBConnect ); CHighTime tmHigh; SYSTEMTIME tmSystem; // Set Filter if ( !m_strStartDate.IsEmpty() && tmHigh.ParseDateTime( m_strStartDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmStartDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } if ( !m_strEndDate.IsEmpty() && tmHigh.ParseDateTime( m_strEndDate ) ) { tmHigh.GetAsSystemTime( tmSystem ); if ( tmSystem.wSecond < 0 ) tmSystem.wSecond = 0; m_pMsgs->m_tmEndDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond ); } int nMsgCount(0); nMsgCount = m_pMsgs->ListSearchingTalkingMsg( m_pDBConnect->m_strLogin, strUser,strKey, bTimeAsc ); if ( nMsgCount <= 0 ) { delete m_pMsgs; m_pMsgs = NULL; return true; } m_pMsgs->GetData( ); m_nType = ROWTYPE_MSG; nCount = nMsgCount; return true; }