// DLG_BBS_See.cpp : implementation file
//

#include "stdafx.h"
#include "smsmanager.h"
#include "DLG_BBS_See.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// DLG_BBS_See dialog
#include "MainFrm.h"
#include "K_CM.h"

DLG_BBS_See::DLG_BBS_See(CWnd* pParent /*=NULL*/)
	: CDialog(DLG_BBS_See::IDD, pParent)
{
	//{{AFX_DATA_INIT(DLG_BBS_See)
	m_strEmail = _T("");
	m_strExpTime = _T("");
	m_strMsg = _T("");
	m_strName = _T("");
	m_strRecver = _T("");
	m_strSender = _T("");
	m_strSendTime = _T("");
	m_strStatus = _T("");
	m_strTel = _T("");
	m_strType = _T("");
	m_strAgent = _T("");
	//}}AFX_DATA_INIT
	memset(&m_See,0,sizeof(m_See));
	m_lType = 0;
	m_pParent = pParent;
}


void DLG_BBS_See::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DLG_BBS_See)
	DDX_Text(pDX, IDC_BBS_SEE_EMAIL, m_strEmail);
	DDX_Text(pDX, IDC_BBS_SEE_EXPTIME, m_strExpTime);
	DDX_Text(pDX, IDC_BBS_SEE_MSG, m_strMsg);
	DDX_Text(pDX, IDC_BBS_SEE_NAME, m_strName);
	DDX_Text(pDX, IDC_BBS_SEE_RECVER, m_strRecver);
	DDX_Text(pDX, IDC_BBS_SEE_SENDER, m_strSender);
	DDX_Text(pDX, IDC_BBS_SEE_SENDTIME, m_strSendTime);
	DDX_Text(pDX, IDC_BBS_SEE_STATUS, m_strStatus);
	DDX_Text(pDX, IDC_BBS_SEE_TEL, m_strTel);
	DDX_Text(pDX, IDC_BBS_SEE_TYPE, m_strType);
	DDX_Text(pDX, IDC_BBS_SEE_AGENT, m_strAgent);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(DLG_BBS_See, CDialog)
	//{{AFX_MSG_MAP(DLG_BBS_See)
	ON_BN_CLICKED(IDC_BBS_SEE_COPY, OnBbsSeeCopy)
	ON_BN_CLICKED(IDC_BBS_SEE_GETCM, OnBbsSeeGetcm)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DLG_BBS_See message handlers

BOOL DLG_BBS_See::OnInitDialog() 
{
	CDialog::OnInitDialog();


	if ( m_See.lSCorpID == 0 )
		m_strSender.Format(_T("����Ա->%s") , m_See.szSLoginName);
	else
		if ( m_See.lSCorpID == -1 )
			m_strSender = _T("����");
		else
			if ( m_See.lSCorpID == -200 )
				m_strSender.Format(_T("%d(%s->%s)") ,m_See.lSUserID,m_See.szSCorpName,m_See.szSLoginName);
			else
				m_strSender.Format(_T("%d->%d(%s->%s)") ,m_See.lSCorpID,m_See.lSUserID,m_See.szSCorpName,m_See.szSLoginName);
			
	if ( m_See.lRCorpID == 0 )
		m_strRecver.Format( _T("����Ա->%d") , m_See.lRUserID);
	else
		if ( m_See.lRCorpID == -1 )
			m_strRecver = _T("����");
		else
			if ( m_See.lRCorpID )
				m_strRecver.Format(_T("%d") , m_See.lRUserID);
			else
				m_strRecver.Format(_T("%d->%d") , m_See.lRCorpID,m_See.lRUserID);

	//m_strAgent.Format( _T("%d") , m_See.lRAgentID );
	//.Format( _T("%d") , m_See.lAgentID );
	m_strAgent = m_strYWY;

	if ( m_See.lSCorpID != 0  )
	{
		m_strSendTime.Format( _T("%04d.%02d.%02d %02d:%02d/%04d.%02d.%02d %02d:%02d") , m_See.tSendTime.wYear,m_See.tSendTime.wMonth,m_See.tSendTime.wDay,m_See.tSendTime.wHour,m_See.tSendTime.wMinute,m_See.tExpTime.wYear,m_See.tExpTime.wMonth,m_See.tExpTime.wDay,m_See.tExpTime.wHour,m_See.tExpTime.wMinute);
	}
	else
	{
		m_strSendTime.Format( _T("%04d.%02d.%02d %02d:%02d") , m_See.tSendTime.wYear,m_See.tSendTime.wMonth,m_See.tSendTime.wDay,m_See.tSendTime.wHour,m_See.tSendTime.wMinute);
	}


	m_strExpTime.Format( _T("%04d.%02d.%02d %02d:%02d") , m_See.tExpTime.wYear,m_See.tExpTime.wMonth,m_See.tExpTime.wDay,m_See.tExpTime.wHour,m_See.tExpTime.wMinute);

	if ( m_See.lStatus ==0 )
		m_strStatus = _T("δ�鿴");
	else
		m_strStatus = _T("�Ѳ鿴");

	m_strMsg = m_See.szBZ;

	m_strName = m_See.szName;
	m_strTel = m_See.szTel;
	m_strType = m_See.szType;
	m_strEmail = m_See.szEmail;

	if ( m_lType == 1 )  //�鿴ǩ��
	{
		GetDlgItem(IDC_BBS_SEE_GETCM)->ShowWindow(SW_SHOW);
	}
	UpdateData(false);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void DLG_BBS_See::SetParam(ANS_BBS_SeeData See,CString strYWY,long lType)
{
	m_See = See;
	m_strYWY = strYWY;
	m_lType = lType;
}

ANS_BBS_SeeData DLG_BBS_See::GetParam()
{
	return m_See;
}

void DLG_BBS_See::OnBbsSeeCopy() 
{
	CString strTemp;

	strTemp = strTemp + _T("������:")+m_strSender + _T("\r\n");
	strTemp = strTemp +  _T("ʱ  ��:")+m_strSendTime + _T("\r\n");
	strTemp = strTemp +  _T("��  ��:")+m_strType + _T("\r\n");
	strTemp = strTemp +  _T("��ϵ��:")+m_strName + _T("\r\n");
	strTemp = strTemp +  _T("��  ��:")+m_strTel + _T("\r\n");
	strTemp = strTemp +  _T(" Email:")+m_strEmail + _T("\r\n");
	strTemp = strTemp +  _T("��  ��:\r\n")+m_strMsg + _T("\r\n");

	long lLen = (strTemp.GetLength()+1)*sizeof(TCHAR);

	HGLOBAL HMem = (TCHAR * )::GlobalAlloc( GMEM_MOVEABLE|GMEM_DDESHARE, lLen );
	if ( HMem == NULL )
		return;
	TCHAR * p = (TCHAR * )::GlobalLock( HMem );
	_tcscpy( p , strTemp );
	::GlobalUnlock( HMem );

	::OpenClipboard(NULL);
	::EmptyClipboard();
#ifdef _UNICODE
	SetClipboardData(CF_UNICODETEXT, (HANDLE)HMem); 
#else
	::SetClipboardData(CF_TEXT, (HANDLE)HMem);
#endif
	::CloseClipboard();
}

void DLG_BBS_See::OnBbsSeeGetcm() 
{
	if ( m_lType==1 )
	{
		CK_CM * pCM = (CK_CM *)m_pParent;
		if ( pCM )
		{
			REQ_Corp_GetCM * pGetCM = new REQ_Corp_GetCM;
			memset(pGetCM , 0 , sizeof(REQ_Corp_GetCM) );

			CString strBZ = m_See.szBZ;
			CString strTemp;
			long lBegin=0;
			long lEnd=0;
			//����ҵID
			lBegin = strBZ.Find( _T("��ҵID:") , lBegin );
			lEnd   = strBZ.Find( _T("\r") , lBegin );
			strTemp = strBZ.Mid(lBegin+_tcslen(_T("��ҵID:")),lEnd-lBegin-_tcslen(_T("��ҵID:")));
			pGetCM->lCorpID = _ttol(strTemp);
			//���û���
			lBegin = strBZ.Find( _T("�û���:") , lBegin );
			if ( lBegin>0 )
			{
				lEnd   = strBZ.Find( _T("\r") , lBegin );
				strTemp = strBZ.Mid(lBegin+_tcslen(_T("�û���:")),lEnd-lBegin-_tcslen(_T("�û���:")));
				_tcscpy(pGetCM->szLoginName , strTemp );
			}
			_stprintf( pGetCM->szAdd , _T("�������Ϣ:\r\n%s") , strBZ );
			pCM->m_pMainFrame->SendFrame( SMSFUNC_CORP_GETCM , (BYTE*)pGetCM , sizeof(REQ_Corp_GetCM)  );

		}
	}
}