// 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;
|
}
|