725 lines
18 KiB
C++
725 lines
18 KiB
C++
|
// DLG_Corp_File.cpp : implementation file
|
|||
|
//
|
|||
|
|
|||
|
#include "stdafx.h"
|
|||
|
#include "smsmanager.h"
|
|||
|
#include "DLG_Corp_File.h"
|
|||
|
|
|||
|
#ifdef _DEBUG
|
|||
|
#define new DEBUG_NEW
|
|||
|
#undef THIS_FILE
|
|||
|
static char THIS_FILE[] = __FILE__;
|
|||
|
#endif
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
// DLG_Corp_File dialog
|
|||
|
#include "MainFrm.h"
|
|||
|
#include "UserDlg.h"
|
|||
|
#include "K_Agent.h"
|
|||
|
#include "DLG_Corp_File_Add.h"
|
|||
|
#include "io.h"
|
|||
|
|
|||
|
DLG_Corp_File::DLG_Corp_File(CWnd* pParent /*=NULL*/)
|
|||
|
: CDialog(DLG_Corp_File::IDD, pParent)
|
|||
|
{
|
|||
|
//{{AFX_DATA_INIT(DLG_Corp_File)
|
|||
|
m_strCorpName = _T("");
|
|||
|
m_strCorpID = _T("");
|
|||
|
//}}AFX_DATA_INIT
|
|||
|
|
|||
|
m_pDlg = (CDialog *)pParent;
|
|||
|
m_lDlgType = 0;
|
|||
|
memset( &m_FileReq , 0 , sizeof(m_FileReq) );
|
|||
|
m_pFileData = NULL;
|
|||
|
m_lUpAllSize = 0;
|
|||
|
m_lUpUpSize = 0;
|
|||
|
m_lUpFileID =0;
|
|||
|
|
|||
|
m_lDownAllSize = 0;
|
|||
|
m_lDownUpSize = 0;
|
|||
|
m_lDownFileID =0;
|
|||
|
m_lFileType = 0;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void DLG_Corp_File::DoDataExchange(CDataExchange* pDX)
|
|||
|
{
|
|||
|
CDialog::DoDataExchange(pDX);
|
|||
|
//{{AFX_DATA_MAP(DLG_Corp_File)
|
|||
|
DDX_Control(pDX, IDC_CORP_FILE_GDT, m_P_GDT);
|
|||
|
DDX_Control(pDX, IDC_CORP_FILE_LIST, m_wndList);
|
|||
|
DDX_Text(pDX, IDC_CORP_FILE_CORPNAME, m_strCorpName);
|
|||
|
DDX_Text(pDX, IDC_CORP_FILE_CORPID, m_strCorpID);
|
|||
|
//}}AFX_DATA_MAP
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
BEGIN_MESSAGE_MAP(DLG_Corp_File, CDialog)
|
|||
|
//{{AFX_MSG_MAP(DLG_Corp_File)
|
|||
|
ON_BN_CLICKED(IDC_CORP_FILE_ADD, OnCorpFileAdd)
|
|||
|
ON_NOTIFY(NM_DBLCLK, IDC_CORP_FILE_LIST, OnDblclkCorpFileList)
|
|||
|
ON_BN_CLICKED(IDC_CORP_FILE_MODIFY, OnCorpFileModify)
|
|||
|
ON_BN_CLICKED(IDC_CORP_FILE_DEL, OnCorpFileDel)
|
|||
|
ON_BN_CLICKED(IDC_CORP_FILE_UPLOAD, OnCorpFileUpload)
|
|||
|
ON_BN_CLICKED(IDC_CORP_FILE_DOWNLOAD, OnCorpFileDownload)
|
|||
|
//}}AFX_MSG_MAP
|
|||
|
END_MESSAGE_MAP()
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
// DLG_Corp_File message handlers
|
|||
|
|
|||
|
BOOL DLG_Corp_File::OnInitDialog()
|
|||
|
{
|
|||
|
CDialog::OnInitDialog();
|
|||
|
|
|||
|
|
|||
|
m_strCorpName = m_FileReq.ret.szCorpName;
|
|||
|
m_strCorpID.Format( _T("%d") , m_FileReq.ret.lCorpID );
|
|||
|
this->UpdateData(false);
|
|||
|
|
|||
|
//<2F><>ʼ<EFBFBD><CABC>List
|
|||
|
m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
|
|||
|
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_CORP) );
|
|||
|
m_wndList.SubClassWindow2();
|
|||
|
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>,100; ǩ<><C7A9>ʱ<EFBFBD><CAB1>,90; <20>ϴ<EFBFBD>ʱ<EFBFBD><CAB1>,90; <20>ϴ<EFBFBD><CFB4>û<EFBFBD>,80;<3B><>С(K),70;<3B>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>,70;ԭʼ<D4AD>ļ<EFBFBD><C4BC><EFBFBD>,200;<3B><>ע,200;"));
|
|||
|
m_wndList.SetGridLines(true);
|
|||
|
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
|
|||
|
|
|||
|
for ( int i = 0 ; i< m_FileReq.lCount ; i++ )
|
|||
|
{
|
|||
|
SetListText(m_pFileData[i],-1); //-1Ϊ<31><CEAA><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
return TRUE; // return TRUE unless you set the focus to a control
|
|||
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|||
|
}
|
|||
|
|
|||
|
void DLG_Corp_File::SetParam(ANS_Corp_File File, ANS_Corp_FileData *pFileData,long lDlgType)
|
|||
|
{
|
|||
|
m_FileReq = File;
|
|||
|
m_pFileData = pFileData;
|
|||
|
m_lDlgType = lDlgType;
|
|||
|
}
|
|||
|
|
|||
|
BOOL DLG_Corp_File::ProcessSocket(Socket_Head *pHead)
|
|||
|
{
|
|||
|
//<2F>鿴<EFBFBD>û<EFBFBD><C3BB><EFBFBD>¼
|
|||
|
if (pHead->lFuncType == SMSFUNC_CORP_FILE)
|
|||
|
{
|
|||
|
ANS_Corp_File * pFile = (ANS_Corp_File *)pHead->pFrame;
|
|||
|
ANS_Corp_FileData * pFileData = (ANS_Corp_FileData *)(pHead->pFrame+sizeof(ANS_Corp_File));
|
|||
|
if ( pFile->lCount < 0 ) //Ȩ<><EFBFBD><DEB2>㣬<EFBFBD><E3A3AC><EFBFBD>ش<EFBFBD><D8B4><EFBFBD>
|
|||
|
return true;
|
|||
|
|
|||
|
if ( pFile->ret.lReqType == 1 ) //<2F><><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if ( pFile->bOK && pFile->lCount>0 )
|
|||
|
{
|
|||
|
SetListText(*pFileData , -1 ); //-1Ϊ<31><CEAA><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
if ( pFile->ret.lReqType == 2 ) //<2F><EFBFBD>
|
|||
|
{
|
|||
|
if ( pFile->bOK && pFile->lCount>0 )
|
|||
|
{
|
|||
|
SetListText(*pFileData , -2 ); //-1Ϊ<31><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
if ( pFile->ret.lReqType == 3 ) //ɾ<><C9BE>
|
|||
|
{
|
|||
|
if ( pFile->bOK && pFile->lCount>0 )
|
|||
|
{
|
|||
|
long lItem=0;
|
|||
|
long lCount=m_wndList.GetItemCount();
|
|||
|
for ( int i=0 ; i<lCount ; i++ )
|
|||
|
{
|
|||
|
if ( m_wndList.GetItemData(i) == pFileData->lFileID )
|
|||
|
{
|
|||
|
lItem = i;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if ( i>=lCount )
|
|||
|
return true;
|
|||
|
|
|||
|
m_wndList.DeleteItem(lItem);
|
|||
|
}
|
|||
|
}
|
|||
|
if ( pFile->ret.lReqType == 4 ) //<2F>ϴ<EFBFBD>
|
|||
|
{
|
|||
|
if ( pFile->bOK && pFile->lCount>0 )
|
|||
|
{
|
|||
|
if ( pFile->ret.lAllSize == pFile->ret.lUpSize ) //<2F><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
|
|||
|
m_P_GDT.SetRange(0,0); //<2F>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>رչ<D8B1><D5B9><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
m_UpFile.Close();
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
ANS_Corp_FileData FileData={0};
|
|||
|
FileData.lFileID = pFile->ret.lFileID;
|
|||
|
FileData.lFileSize=pFile->ret.lAllSize;
|
|||
|
FileData.lUploadSize=pFile->ret.lUpSize;
|
|||
|
_tcscpy(FileData.szFileName , pFile->ret.szCorpName );
|
|||
|
::GetLocalTime(&FileData.tUploadTime);
|
|||
|
SetListText(FileData , -3 ); //-3Ϊ<33><CEAA><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
MessageBox( _T("<EFBFBD>ļ<EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>") , _T("<EFBFBD><EFBFBD>Ϣ") , MB_ICONINFORMATION );
|
|||
|
EnableCtrl(true);
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_P_GDT.SetPos(pFile->ret.lUpSize);
|
|||
|
UpFileNext();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if ( pFile->ret.lReqType == 5 ) //<2F><><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
|
|||
|
|
|||
|
if ( pFile->bOK && pFile->lCount>0 )
|
|||
|
{
|
|||
|
#define MAXUPFILESIZE 32*1024 //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32K
|
|||
|
//if ( pFile->ret.lSize <= pFile->ret.lUpSize ) //<2F>յ<EFBFBD><D5B5><EFBFBD>һ֡
|
|||
|
if (pFile->ret.lUpSize <= MAXUPFILESIZE) //<2F>յ<EFBFBD><D5B5>ĵ<EFBFBD>һ֡
|
|||
|
{
|
|||
|
m_P_GDT.SetRange32(0,pFile->ret.lAllSize);
|
|||
|
|
|||
|
BYTE cRarHead[] = { 0x52,0x61,0x72,0x21,0x1A,0x07,0x00,0xCF,0x90,0x73,0x00,0x00,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
|
|||
|
long lRarHeadLen = sizeof(cRarHead);
|
|||
|
if (memcmp((BYTE*)pFileData, (BYTE*)cRarHead, lRarHeadLen) == 0)
|
|||
|
{
|
|||
|
m_lFileType = 0; //rar<61>ļ<EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_lFileType = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
m_DownFile.Write((BYTE*)pFileData ,pFile->ret.lSize ); //д<>ļ<EFBFBD>
|
|||
|
|
|||
|
if ( pFile->ret.lAllSize == pFile->ret.lUpSize ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
m_P_GDT.SetRange(0,0); //<2F>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>رչ<D8B1><D5B9><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
m_DownFile.Close();
|
|||
|
|
|||
|
EnableCtrl(true);
|
|||
|
CString strTemp=m_strDownFileName;
|
|||
|
strTemp.MakeUpper();
|
|||
|
//<2F><>ѹ<EFBFBD><D1B9><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ԭ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ļ<EFBFBD><C4BC>ģ<EFBFBD>ֱ<EFBFBD>ӽ<EFBFBD><D3BD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
if (m_lFileType==1 || strTemp.Find(_T(".RAR"))>0 || strTemp.Find(_T(".ZIP"))>0 ) //ԭ<><D4AD><EFBFBD>ϴ<EFBFBD><CFB4>ľ<EFBFBD><C4BE><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ٽ<EFBFBD>ѹ
|
|||
|
{
|
|||
|
if ( ! ::CopyFile(m_strDownRarFile,m_strDownFilePath +CString(_T("\\"))+ m_strDownFileName , false ) )
|
|||
|
{
|
|||
|
MessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//ȡ<><C8A1>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
TCHAR szPath[512]={0};
|
|||
|
GetCurrentPath(szPath);
|
|||
|
CString strRar;
|
|||
|
strRar.Format( _T("%srar.exe") , szPath );
|
|||
|
//<2F><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ѹ<EFBFBD><D1B9>Ŀ<EFBFBD><C4BF><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
STARTUPINFO si;
|
|||
|
PROCESS_INFORMATION pi;
|
|||
|
ZeroMemory( &si, sizeof(si) );
|
|||
|
si.cb = sizeof(si);
|
|||
|
ZeroMemory( &pi, sizeof(pi) );
|
|||
|
CString strCmd;
|
|||
|
strCmd.Format( _T("%s x -y \"%s\" \"%s\"") , strRar,m_strDownRarFile,m_strDownFilePath +CString(_T("\\")));
|
|||
|
|
|||
|
|
|||
|
BOOL b2=CreateProcess(NULL,strCmd.GetBuffer(),NULL,NULL,false,NULL,NULL,NULL,&si,&pi);
|
|||
|
if ( b2 )
|
|||
|
{
|
|||
|
if ( WaitForSingleObject( pi.hProcess, 50000 ) !=WAIT_TIMEOUT) //<2F>ȴ<EFBFBD>20<32><30>
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>ɾ<EFBFBD><C9BE>ԭ<EFBFBD>ļ<EFBFBD>
|
|||
|
//::DeleteFile( strFileName );
|
|||
|
}
|
|||
|
}
|
|||
|
Sleep(500); //<2F><>ʱһ<CAB1><D2BB>
|
|||
|
}
|
|||
|
long lRet = MessageBox(_T("<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"), _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON1);
|
|||
|
if (lRet == IDYES)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
ShellExecute(NULL, _T("open"), m_strDownFileName, NULL, m_strDownFilePath, SW_SHOWNORMAL);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_P_GDT.SetPos(pFile->ret.lUpSize);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
void DLG_Corp_File::OnCorpFileAdd()
|
|||
|
{
|
|||
|
ANS_Corp_FileData FileData={0};
|
|||
|
FileData.lCorpType = m_FileReq.ret.lCorpType;
|
|||
|
FileData.lCorpID = m_FileReq.ret.lCorpID;
|
|||
|
|
|||
|
DLG_Corp_File_Add dlg(this);
|
|||
|
dlg.SetParam( FileData , true );
|
|||
|
if ( dlg.DoModal() == IDOK )
|
|||
|
{
|
|||
|
FileData = dlg.GetParam();
|
|||
|
|
|||
|
long lSize = sizeof(REQ_Corp_File) + sizeof(ANS_Corp_FileData);
|
|||
|
BYTE * pData = new BYTE[lSize];memset(pData,0,lSize);
|
|||
|
REQ_Corp_File * pPayRet = (REQ_Corp_File *)pData;
|
|||
|
ANS_Corp_FileData * pPayDataRet = (ANS_Corp_FileData *)(pData+sizeof(REQ_Corp_File));
|
|||
|
|
|||
|
*pPayRet = m_FileReq.ret;
|
|||
|
pPayRet->lReqType = 1; //<2F><><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
*pPayDataRet = FileData;
|
|||
|
|
|||
|
SendFrame(SMSFUNC_CORP_FILE , pData , lSize );
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
void DLG_Corp_File::SetListText(ANS_Corp_FileData FileData, long lType)
|
|||
|
{
|
|||
|
CString str;
|
|||
|
long lItem=0;
|
|||
|
if ( lType==-1 )
|
|||
|
{
|
|||
|
lItem = m_wndList.GetItemCount();
|
|||
|
str.Format( _T("%d") , lItem+1 );
|
|||
|
m_wndList.InsertItem( lItem , str , 0 );
|
|||
|
}
|
|||
|
if ( lType==-2 || lType==-3)
|
|||
|
{
|
|||
|
long lCount=m_wndList.GetItemCount();
|
|||
|
for ( int i=0 ; i<lCount ; i++ )
|
|||
|
{
|
|||
|
if ( m_wndList.GetItemData(i) == FileData.lFileID )
|
|||
|
{
|
|||
|
lItem = i;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if ( i>=lCount )
|
|||
|
return ;
|
|||
|
}
|
|||
|
|
|||
|
int iTemp=1;
|
|||
|
if ( lType == -1 || lType == -2 )
|
|||
|
{
|
|||
|
m_wndList.SetItemText( lItem , iTemp++ , FileData.szFileType);
|
|||
|
str.Format( _T("%04d.%02d.%02d") , FileData.tFileTime.wYear,FileData.tFileTime.wMonth,FileData.tFileTime.wDay );
|
|||
|
m_wndList.SetItemText( lItem , iTemp++ , str );
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
iTemp += 2 ;
|
|||
|
}
|
|||
|
|
|||
|
if ( lType==-1 || lType == -3 )
|
|||
|
{
|
|||
|
str.Format( _T("%04d.%02d.%02d") , FileData.tUploadTime.wYear,FileData.tUploadTime.wMonth,FileData.tUploadTime.wDay );
|
|||
|
m_wndList.SetItemText( lItem , iTemp++ , str );
|
|||
|
m_wndList.SetItemText( lItem , iTemp++ , FileData.szUploadUser );
|
|||
|
if ( FileData.lFileSize>0 )
|
|||
|
str.Format( _T("%d") , FileData.lFileSize/1024 );
|
|||
|
else
|
|||
|
str = _T("0");
|
|||
|
m_wndList.SetItemText( lItem , iTemp++ , str );
|
|||
|
if ( FileData.lFileSize>0 )
|
|||
|
str = FileData.lFileSize == FileData.lUploadSize ? _T(" <20><>") : _T(" <20><>");
|
|||
|
else
|
|||
|
str = _T(" <20><>");
|
|||
|
m_wndList.SetItemText( lItem , iTemp++ , str );
|
|||
|
m_wndList.SetItemText( lItem , iTemp++ , FileData.szFileName );
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
iTemp += 5;
|
|||
|
}
|
|||
|
|
|||
|
if ( lType == -1 || lType == -2 )
|
|||
|
{
|
|||
|
m_wndList.SetItemText( lItem , iTemp++ , FileData.szBZ );
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
iTemp+=1;
|
|||
|
}
|
|||
|
|
|||
|
m_wndList.SetItemData( lItem , FileData.lFileID );
|
|||
|
}
|
|||
|
|
|||
|
long DLG_Corp_File::GetCurrentSelected()
|
|||
|
{
|
|||
|
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
|||
|
if ( pos )
|
|||
|
{
|
|||
|
return m_wndList.GetNextSelectedItem(pos);
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
void DLG_Corp_File::OnDblclkCorpFileList(NMHDR* pNMHDR, LRESULT* pResult)
|
|||
|
{
|
|||
|
*pResult = 0;
|
|||
|
|
|||
|
|
|||
|
OnCorpFileModify();
|
|||
|
}
|
|||
|
|
|||
|
void DLG_Corp_File::OnCorpFileModify()
|
|||
|
{
|
|||
|
long lItem = GetCurrentSelected();
|
|||
|
if ( lItem<0 )
|
|||
|
return ;
|
|||
|
|
|||
|
ANS_Corp_FileData FileData={0};
|
|||
|
FileData.lCorpType = m_FileReq.ret.lCorpType;
|
|||
|
FileData.lCorpID = m_FileReq.ret.lCorpID;
|
|||
|
|
|||
|
FileData.lFileID = m_wndList.GetItemData(lItem);
|
|||
|
|
|||
|
m_wndList.GetItemText(lItem , 1 , FileData.szFileType , sizeof(FileData.szFileType)-2 );
|
|||
|
m_wndList.GetItemText(lItem , 8 , FileData.szBZ , sizeof(FileData.szBZ)-2 );
|
|||
|
|
|||
|
CString str;
|
|||
|
str = m_wndList.GetItemText(lItem , 2 );
|
|||
|
COleDateTime t;
|
|||
|
str.Replace( _T(".") , _T("-") );
|
|||
|
BOOL btime = t.ParseDateTime(str,VAR_DATEVALUEONLY);
|
|||
|
if ( t.GetStatus() == COleDateTime::valid )
|
|||
|
{
|
|||
|
t.GetAsSystemTime(FileData.tFileTime);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
DLG_Corp_File_Add dlg(this);
|
|||
|
dlg.SetParam( FileData , false );
|
|||
|
if ( dlg.DoModal() == IDOK )
|
|||
|
{
|
|||
|
FileData = dlg.GetParam();
|
|||
|
|
|||
|
long lSize = sizeof(REQ_Corp_File) + sizeof(ANS_Corp_FileData);
|
|||
|
BYTE * pData = new BYTE[lSize];memset(pData,0,lSize);
|
|||
|
REQ_Corp_File * pPayRet = (REQ_Corp_File *)pData;
|
|||
|
ANS_Corp_FileData * pPayDataRet = (ANS_Corp_FileData *)(pData+sizeof(REQ_Corp_File));
|
|||
|
|
|||
|
*pPayRet = m_FileReq.ret;
|
|||
|
pPayRet->lReqType = 2; //<2F><EFBFBD>
|
|||
|
|
|||
|
*pPayDataRet = FileData;
|
|||
|
|
|||
|
SendFrame(SMSFUNC_CORP_FILE , pData , lSize );
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
void DLG_Corp_File::OnCorpFileDel()
|
|||
|
{
|
|||
|
long lItem = GetCurrentSelected();
|
|||
|
if ( lItem<0 )
|
|||
|
return ;
|
|||
|
|
|||
|
ANS_Corp_FileData FileData={0};
|
|||
|
FileData.lCorpType = m_FileReq.ret.lCorpType;
|
|||
|
FileData.lCorpID = m_FileReq.ret.lCorpID;
|
|||
|
|
|||
|
FileData.lFileID = m_wndList.GetItemData(lItem);
|
|||
|
CString str,str2;
|
|||
|
str = m_wndList.GetItemText(lItem , 1 );
|
|||
|
|
|||
|
str2.Format( _T("ȷ<EFBFBD><EFBFBD>Ҫɾ<EFBFBD><EFBFBD>(%s)<29>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>") , str );
|
|||
|
int iRet = MessageBox(str2 , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
|
|||
|
if ( iRet != IDYES )
|
|||
|
return ;
|
|||
|
|
|||
|
long lSize = sizeof(REQ_Corp_File) + sizeof(ANS_Corp_FileData);
|
|||
|
BYTE * pData = new BYTE[lSize];memset(pData,0,lSize);
|
|||
|
REQ_Corp_File * pPayRet = (REQ_Corp_File *)pData;
|
|||
|
ANS_Corp_FileData * pPayDataRet = (ANS_Corp_FileData *)(pData+sizeof(REQ_Corp_File));
|
|||
|
|
|||
|
*pPayRet = m_FileReq.ret;
|
|||
|
pPayRet->lReqType = 3; //ɾ<><C9BE>
|
|||
|
|
|||
|
*pPayDataRet = FileData;
|
|||
|
|
|||
|
SendFrame(SMSFUNC_CORP_FILE , pData , lSize );
|
|||
|
}
|
|||
|
|
|||
|
void DLG_Corp_File::OnCorpFileUpload()
|
|||
|
{
|
|||
|
long lItem = GetCurrentSelected();
|
|||
|
if ( lItem<0 )
|
|||
|
return ;
|
|||
|
|
|||
|
m_lUpFileID = m_wndList.GetItemData(lItem);
|
|||
|
CString str = m_wndList.GetItemText(lItem ,6 );
|
|||
|
if ( str == _T(" <20><>") )
|
|||
|
{
|
|||
|
int iRet =MessageBox( _T("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
|
|||
|
if ( iRet != IDYES )
|
|||
|
return ;
|
|||
|
}
|
|||
|
|
|||
|
#define FILE_FILTER_TEXT \
|
|||
|
TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> (*.*)\0*.*;\0\0")
|
|||
|
|
|||
|
TCHAR szFile[ 256 ];
|
|||
|
TCHAR szFileB[ 256 ];
|
|||
|
*szFileB = NULL;
|
|||
|
_stprintf( szFile , _T("*.*") );
|
|||
|
|
|||
|
OPENFILENAME sOpen;
|
|||
|
sOpen.lStructSize = sizeof( sOpen );
|
|||
|
sOpen.hwndOwner = this->m_hWnd ;
|
|||
|
sOpen.Flags = OFN_EXPLORER|OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY;
|
|||
|
sOpen.lpstrFilter = FILE_FILTER_TEXT;
|
|||
|
sOpen.lpstrDefExt = _T("*");
|
|||
|
sOpen.lpstrCustomFilter = NULL;
|
|||
|
sOpen.nMaxCustFilter = 0;
|
|||
|
sOpen.lpstrFile = szFile;
|
|||
|
sOpen.nMaxFile = sizeof( szFile );
|
|||
|
sOpen.lpstrFileTitle = szFileB;
|
|||
|
sOpen.nMaxFileTitle = sizeof( szFileB );
|
|||
|
sOpen.lpstrInitialDir = NULL;
|
|||
|
sOpen.lpstrTitle = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
|
|||
|
if ( ::GetOpenFileName( &sOpen ) )
|
|||
|
{
|
|||
|
CString strName = sOpen.lpstrFile;
|
|||
|
CString strTemp = strName;
|
|||
|
CString strName2= strName;
|
|||
|
strTemp.MakeUpper();
|
|||
|
if ( strTemp.Find(_T(".RAR"))>0 || strTemp.Find(_T(".ZIP"))>0 ) //<2F><><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ϴ<EFBFBD>
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//ѹ<><D1B9><EFBFBD>ļ<EFBFBD>
|
|||
|
//ȡ<><C8A1>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
TCHAR szPath[512]={0};
|
|||
|
GetCurrentPath(szPath);
|
|||
|
CString strRar;
|
|||
|
strRar.Format( _T("%srar.exe") , szPath );
|
|||
|
_tcscat(szPath , _T("Temp\\") );
|
|||
|
::CreateDirectory(szPath,NULL); //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
_tcscat(szPath , _T("UpLoad.rar") );
|
|||
|
if ( _taccess(szPath, 0) != -1 )
|
|||
|
{
|
|||
|
if ( !::DeleteFile(szPath) )
|
|||
|
{
|
|||
|
MessageBox( _T("<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
|
|||
|
return ;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
CString strRarName = szPath;
|
|||
|
|
|||
|
STARTUPINFO si;
|
|||
|
PROCESS_INFORMATION pi;
|
|||
|
ZeroMemory( &si, sizeof(si) );
|
|||
|
si.cb = sizeof(si);
|
|||
|
ZeroMemory( &pi, sizeof(pi) );
|
|||
|
CString strCmd;
|
|||
|
strCmd.Format( _T("%s a -ep1 \"%s\" \"%s\"") , strRar,strRarName,strName);
|
|||
|
|
|||
|
BOOL b2=CreateProcess(NULL,strCmd.GetBuffer(),NULL,NULL,false,NULL,NULL,NULL,&si,&pi);
|
|||
|
if ( b2 )
|
|||
|
{
|
|||
|
if ( WaitForSingleObject( pi.hProcess, 50000 ) !=WAIT_TIMEOUT) //<2F>ȴ<EFBFBD>20<32><30>
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>ɾ<EFBFBD><C9BE>ԭ<EFBFBD>ļ<EFBFBD>
|
|||
|
//::DeleteFile( strFileName );
|
|||
|
}
|
|||
|
}
|
|||
|
Sleep(500); //<2F><>ʱһ<CAB1><D2BB>
|
|||
|
|
|||
|
strName2 = strRarName;
|
|||
|
}
|
|||
|
//ȡԭʼ<D4AD>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
m_strUpFileName = strName;
|
|||
|
long lLen = strName.GetLength();
|
|||
|
for ( int i=lLen-1 ; i>=0 ; i-- )
|
|||
|
{
|
|||
|
if ( strName.GetAt(i) == '\\' || strName.GetAt(i) == '/' )
|
|||
|
{
|
|||
|
m_strUpFileName = strName.Right(lLen-i-1);
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//<2F><>ʼ<EFBFBD>ϴ<EFBFBD>
|
|||
|
if ( !m_UpFile.Open(strName2 , CFile::modeRead) )
|
|||
|
{
|
|||
|
MessageBox( _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
|
|||
|
return ;
|
|||
|
}
|
|||
|
m_lUpAllSize=m_UpFile.GetLength();
|
|||
|
if ( m_lUpAllSize>2*1024*1024 ) //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>2M
|
|||
|
{
|
|||
|
m_UpFile.Close();
|
|||
|
MessageBox( _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2M<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
|
|||
|
return ;
|
|||
|
}
|
|||
|
m_lUpUpSize=0;
|
|||
|
|
|||
|
EnableCtrl(false);
|
|||
|
m_P_GDT.SetRange32(0,m_lUpAllSize);
|
|||
|
UpFileNext();
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
BOOL DLG_Corp_File::UpFileNext()
|
|||
|
{
|
|||
|
#define MAXUPFILESIZE 32*1024 //ÿ<><C3BF><EFBFBD>ϴ<EFBFBD>32K
|
|||
|
|
|||
|
long lSize = sizeof(REQ_Corp_File) + MAXUPFILESIZE;
|
|||
|
BYTE * pData = new BYTE[lSize];
|
|||
|
memset(pData , 0 , lSize );
|
|||
|
REQ_Corp_File * pFile = (REQ_Corp_File * )pData;
|
|||
|
BYTE * pBuf = pData+sizeof(REQ_Corp_File);
|
|||
|
|
|||
|
pFile->lFileID = m_lUpFileID;
|
|||
|
pFile->lReqType= 4; //<2F>ϴ<EFBFBD>
|
|||
|
_tcscpy(pFile->szCorpName , m_strUpFileName );
|
|||
|
pFile->lAllSize = m_lUpAllSize;
|
|||
|
DWORD dwRead=0;
|
|||
|
dwRead = m_UpFile.Read(pBuf , MAXUPFILESIZE );
|
|||
|
if ( dwRead >0 )
|
|||
|
{
|
|||
|
m_lUpUpSize += dwRead;
|
|||
|
pFile->lUpSize= m_lUpUpSize;
|
|||
|
pFile->lSize = dwRead;
|
|||
|
SendFrame(SMSFUNC_CORP_FILE , pData , lSize );
|
|||
|
return true;
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
void DLG_Corp_File::OnCorpFileDownload()
|
|||
|
{
|
|||
|
long lItem = GetCurrentSelected();
|
|||
|
if ( lItem<0 )
|
|||
|
return ;
|
|||
|
|
|||
|
long lFileID = m_wndList.GetItemData(lItem);
|
|||
|
CString str = m_wndList.GetItemText(lItem ,6 );
|
|||
|
if ( str != _T(" <20><>") )
|
|||
|
{
|
|||
|
MessageBox( _T("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>δ<EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING);
|
|||
|
return ;
|
|||
|
}
|
|||
|
|
|||
|
//ѹ<><D1B9><EFBFBD>ļ<EFBFBD>
|
|||
|
//ȡ<><C8A1>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
TCHAR szPath[512]={0};
|
|||
|
GetCurrentPath(szPath);
|
|||
|
_tcscat(szPath , _T("Temp\\") );
|
|||
|
::CreateDirectory(szPath,NULL); //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
_tcscat(szPath , _T("DownLoad.rar") );
|
|||
|
if ( _taccess(szPath, 0) != -1 )
|
|||
|
{
|
|||
|
if ( !::DeleteFile(szPath) )
|
|||
|
{
|
|||
|
MessageBox( _T("<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
|
|||
|
return ;
|
|||
|
}
|
|||
|
}
|
|||
|
m_strDownRarFile = szPath;
|
|||
|
|
|||
|
BROWSEINFO BInfo={0};
|
|||
|
BInfo.hwndOwner = this->GetSafeHwnd();
|
|||
|
BInfo.pszDisplayName = szPath;
|
|||
|
BInfo.pidlRoot=0;
|
|||
|
BInfo.lpszTitle = _T("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
BInfo.ulFlags = BIF_RETURNONLYFSDIRS; //<2F>涨ֻ<E6B6A8><D6BB>ѡ<EFBFBD><D1A1><EFBFBD>ļ<EFBFBD><C4BC>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
LPCITEMIDLIST pid = SHBrowseForFolder(&BInfo);
|
|||
|
if ( pid && SHGetPathFromIDList(pid,szPath) )
|
|||
|
{
|
|||
|
|
|||
|
if ( !m_DownFile.Open(m_strDownRarFile , CFile::modeCreate|CFile::modeWrite) )
|
|||
|
{
|
|||
|
MessageBox( _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
|
|||
|
return ;
|
|||
|
}
|
|||
|
|
|||
|
EnableCtrl(false);
|
|||
|
|
|||
|
str = m_wndList.GetItemText(lItem,7); //ԭʼ<D4AD>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
m_strDownFilePath = szPath;
|
|||
|
//m_strDownFileName = m_strDownFilePath + _T("\\")+ str;
|
|||
|
m_strDownFileName = str; //ԭʼ<D4AD>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
m_lFileType = 0;// 0-rar<61>ļ<EFBFBD><C4BC><EFBFBD>1-<2D><>ͨ<EFBFBD>ļ<EFBFBD>
|
|||
|
|
|||
|
REQ_Corp_File * pFile = new REQ_Corp_File;
|
|||
|
memset(pFile , 0 , sizeof(REQ_Corp_File));
|
|||
|
pFile->lFileID = lFileID;
|
|||
|
pFile->lReqType= 5; //<2F><><EFBFBD><EFBFBD>
|
|||
|
_tcscpy(pFile->szCorpName , str );
|
|||
|
SendFrame(SMSFUNC_CORP_FILE , (BYTE*)pFile , sizeof(REQ_Corp_File) );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void DLG_Corp_File::EnableCtrl(BOOL b)
|
|||
|
{
|
|||
|
|
|||
|
GetDlgItem(IDC_CORP_FILE_LIST)->EnableWindow(b);
|
|||
|
GetDlgItem(IDC_CORP_FILE_ADD)->EnableWindow(b);
|
|||
|
GetDlgItem(IDC_CORP_FILE_MODIFY)->EnableWindow(b);
|
|||
|
GetDlgItem(IDC_CORP_FILE_DEL)->EnableWindow(b);
|
|||
|
GetDlgItem(IDC_CORP_FILE_UPLOAD)->EnableWindow(b);
|
|||
|
GetDlgItem(IDC_CORP_FILE_DOWNLOAD)->EnableWindow(b);
|
|||
|
}
|
|||
|
|
|||
|
void DLG_Corp_File::GetCurrentPath(TCHAR *pPath)
|
|||
|
{
|
|||
|
if ( m_lDlgType == 1 ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
((CK_Agent*)m_pDlg)->m_pMainFrame->GetCurrentPath(pPath);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
((CUserDlg*)m_pDlg)->m_pMainFrame->GetCurrentPath(pPath);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
BOOL DLG_Corp_File::SendFrame(unsigned char lFuncType, unsigned char *pFrame, unsigned long lFrameLen)
|
|||
|
{
|
|||
|
if ( m_lDlgType == 1 ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
return ((CK_Agent*)m_pDlg)->m_pMainFrame->SendFrame(lFuncType,pFrame,lFrameLen);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return ((CUserDlg*)m_pDlg)->m_pMainFrame->SendFrame(lFuncType,pFrame,lFrameLen);
|
|||
|
}
|
|||
|
|
|||
|
}
|