// RemoteListCtrl.h : header file
//

#pragma once

#include "MainFrm.h"
#include "RLDropTarget.h"


/////////////////////////////////////////////////////////////////////////////
// CShellListCtrl window

class CRemoteListCtrl : public CListCtrl
{
// Construction
public:
	CRemoteListCtrl();

// Attributes
protected:
	CRLDropTarget m_dropTarget;

	int m_nStyle;

	CImageList m_ilSort;
	int m_nSortColumn;
	int m_nSortDirect;

	CString m_asHeader[4];
	int     m_anHeaderAlign[4];

	int m_iSelectedItem;

public:

// Operations
protected:
	static int CALLBACK SortProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);

	BOOL SetSysImageList();

	void SetClipboard(CLIPBOARD_STATE cbs);
	void PasteClipboard(CString sFolder = "");

public:
	BOOL SetItemText(int nItem, int nSubItem, LPCTSTR lpszText);

	void SetListStyle(int nStyle);

	void Sort(int nColumn = -1);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CRemoteListCtrl)
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CRemoteListCtrl();

protected:
	virtual BOOL PreTranslateMessage(MSG* pMsg);

protected:
	//{{AFX_MSG(CRemoteListCtrl)
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
public:
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnLButtonDblClk(UINT /*nFlags*/, CPoint /*point*/);
	afx_msg void OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/);
	afx_msg void OnBegindrag(NMHDR *pNMHDR, LRESULT *pResult);
	afx_msg void OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnListNewfolder();
	afx_msg void OnListRefresh();
	afx_msg void OnListType1();
	afx_msg void OnListType2();
	afx_msg void OnListType3();
	afx_msg void OnListType4();
	afx_msg void OnListSort1();
	afx_msg void OnListSort2();
	afx_msg void OnListSort3();
	afx_msg void OnListSort4();
	afx_msg void OnListPaste();
	afx_msg void OnListAll();
	afx_msg void OnListfileDownload();
	afx_msg void OnListfileSaveUrl();
	afx_msg void OnListfileCut();
	afx_msg void OnListfileCopy();
	afx_msg void OnListfilePaste();
	afx_msg void OnListfileDelete();
	afx_msg void OnListfileRename();
};
