1 //////////////////////////////////////////////////////
\r
3 // Declaration of the CMyTreeView class
\r
9 #include "ShellWrapper.h"
\r
11 using namespace ShellWrapper;
\r
14 class CMyTreeView : public CTreeView
\r
18 virtual ~CMyTreeView();
\r
19 HIMAGELIST GetImageList(BOOL bLarge);
\r
20 BOOL GetRootItems();
\r
21 BOOL SelectFromListView(Cpidl& CpidlFull);
\r
24 virtual void OnInitialUpdate();
\r
25 virtual LRESULT OnNotifyReflect(WPARAM wParam, LPARAM lParam);
\r
26 virtual void PreCreate(CREATESTRUCT &cs);
\r
27 virtual LRESULT WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
\r
30 class TreeItemData //A nested class inside CMyTreeView
\r
33 TreeItemData(Cpidl& cpidlParent, Cpidl& cpidlRel, CShellFolder& cParentFolder);
\r
34 TreeItemData(Cpidl& cpidl);
\r
37 CShellFolder& GetParentFolder() {return m_cParentFolder;}
\r
38 Cpidl& GetFullCpidl() {return m_cpidlFull;}
\r
39 Cpidl& GetRelCpidl() {return m_cpidlRel;}
\r
42 Cpidl m_cpidlFull; //Fully Qualified PIDL
\r
43 Cpidl m_cpidlRel; //Relative PIDL
\r
44 CShellFolder m_cParentFolder; //Parent Folder
\r
46 }; //class TreeItemData
\r
48 typedef Shared_Ptr<TreeItemData> TreeItemDataPtr;
\r
50 static int CALLBACK CompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
\r
52 void DoItemMenu(HTREEITEM hItem, CPoint& ptScreen);
\r
53 void DoContextMenu(CPoint& ptScreen);
\r
54 void EnumObjects(HTREEITEM hParentItem, CShellFolder& cParentFolder, Cpidl& cpidlParent);
\r
55 BOOL GetChildItems(HTREEITEM hParentItem);
\r
57 void SetImageLists();
\r
59 HIMAGELIST m_hLargeImageList;
\r
60 HIMAGELIST m_hSmallImageList;
\r
61 CContextMenu2 m_ccm2;
\r
62 std::vector <TreeItemDataPtr> m_pItems;
\r
68 #endif // MYTREEVIEW_H
\r