added some development tools
[windows-sources.git] / developer / VC / WTL80 / Samples / Wizard97Test / Wizard / TestWizardFilePreviewPage.h
blob743fba82209231e3f0379f63e6c52fb703e49d1c
2 #ifndef __TestWizardFilePreviewPage_h__
3 #define __TestWizardFilePreviewPage_h__
5 #include "TestWizardInfo.h"
7 ///////////////////////////////////////////////////////////////////////////////
8 // CFileListViewCtrl - a sortable list view of the resulting files
10 typedef CWinTraits<
11 WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN |
12 LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS,
13 WS_EX_CLIENTEDGE> CFileListViewCtrlWinTraits;
15 class CFileListViewCtrl :
16 public CSortListViewCtrlImpl<CFileListViewCtrl, CListViewCtrl, CFileListViewCtrlWinTraits>,
17 public ITestWizardFindFileCB
19 protected:
20 // Typedefs
21 typedef CFileListViewCtrl thisClass;
22 typedef CSortListViewCtrlImpl<CFileListViewCtrl, CListViewCtrl, CFileListViewCtrlWinTraits> baseClass;
24 public:
25 // Enumerations
26 enum ListColumnIndex
28 ListColumn_Name = 0,
29 ListColumn_Folder = 1,
30 ListColumn_LastModified = 2,
31 ListColumn_Size = 3,
32 ListColumn_SizeBytes = 4,
33 ListColumn_FullPath = 5,
36 // Message Handling
37 DECLARE_WND_SUPERCLASS(_T("FileListView"), CListViewCtrl::GetWndClassName())
39 BEGIN_MSG_MAP(thisClass)
40 MESSAGE_HANDLER(WM_CREATE, OnCreate)
41 MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
42 MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu)
44 CHAIN_MSG_MAP(baseClass)
45 DEFAULT_REFLECTION_HANDLER()
46 END_MSG_MAP()
48 LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
49 LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
50 LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
52 // Helpers
53 void Initialize(void);
54 void InitializeListColumns(void);
55 void Uninitialize(void);
57 // Overrides for CWindowImpl
58 BOOL SubclassWindow(HWND hWnd);
59 HWND UnsubclassWindow(BOOL bForce = FALSE);
61 // Overrides for CSortListViewImpl
62 int CompareItemsCustom(LVCompareParam* pItem1, LVCompareParam* pItem2, int iSortCol);
64 // ITestWizardFindFileCB
65 virtual bool OnBeginFindFiles(void) { return true; }
66 virtual void OnEndFindFiles(void) { }
67 virtual bool OnBeginDirectorySearch(LPCTSTR /*directory*/) { return true; }
68 virtual void OnEndDirectorySearch(LPCTSTR /*directory*/) { }
69 virtual void OnFileFound(LPCTSTR directory, LPWIN32_FIND_DATA findFileData);
71 // Methods
72 int AddFile(LPCTSTR fileFullPath);
73 int AddFile(LPCTSTR directory, LPCTSTR fileSpec, LPCTSTR fileFullPath, FILETIME lastWriteTimeUTC, ULONGLONG fileSize);
74 void AutoResizeColumns(void);
75 void ClearSortHeaderBitmap(void);
79 ///////////////////////////////////////////////////////////////////////////////
80 // CTestWizardFilePreviewPage - Wizard page to preview the files located by the path/filter
82 class CTestWizardFilePreviewPage :
83 public CWizard97InteriorPageImpl<CTestWizardFilePreviewPage>,
84 public CTestWizardInfoRef
86 protected:
87 // Typedefs
88 typedef CTestWizardFilePreviewPage thisClass;
89 typedef CWizard97InteriorPageImpl<CTestWizardFilePreviewPage> baseClass;
91 // Data members
92 CFileListViewCtrl m_listFiles;
94 CButton m_buttonPreview;
96 public:
97 // Constructor
98 CTestWizardFilePreviewPage(_U_STRINGorID title = (LPCTSTR)NULL) :
99 baseClass(title)
101 baseClass::SetHeaderTitle(_T("Preview File List"));
102 baseClass::SetHeaderSubTitle(_T("Preview the list of files identified by the path and filter."));
105 // Message Handlers
106 enum { IDD = IDD_WIZ97_FILEPREVIEW };
107 BEGIN_MSG_MAP(thisClass)
108 MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
109 MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
111 COMMAND_HANDLER(IDC_BTN_PREVIEW, BN_CLICKED, OnClickPreview)
113 CHAIN_MSG_MAP(baseClass)
114 REFLECT_NOTIFICATIONS_ID_FILTERED(IDC_LIST_FILES)
115 END_MSG_MAP()
117 LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
118 LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
120 LRESULT OnClickPreview(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
122 // Helpers
123 void InitializeControls(void);
124 //void InitializeControlSizes(void);
125 void UninitializeControls(void);
126 void InitializeValues(void);
127 bool StoreValues(void);
129 void UpdateFileList();
131 // Overrides from base class
132 int OnSetActive();
133 int OnWizardNext();
134 int OnWizardBack();
135 void OnHelp();
139 #endif // __TestWizardFilePreviewPage_h__