// ShellListCtrl.cpp // // (c)1998-2025 Codejock Software, All Rights Reserved. // // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN // CONSENT OF CODEJOCK SOFTWARE. // // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A // SINGLE COMPUTER. // // CONTACT INFORMATION: // support@codejock.com // http://www.codejock.com // ///////////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "ShellListCtrl.h" #ifdef _DEBUG # define new DEBUG_NEW # undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CShellListCtrl CShellListCtrl::CShellListCtrl() { // SetIncludeExtensions(_T("*.exe")); } CShellListCtrl::~CShellListCtrl() { } BEGIN_MESSAGE_MAP(CShellListCtrl, CXTPShellListCtrl) //{{AFX_MSG_MAP(CShellListCtrl) // NOTE - the ClassWizard will add and remove mapping macros here. //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CShellListCtrl message handlers void CShellListCtrl::RefreshList() { if (!m_pTreeCtrl || !::IsWindow(m_pTreeCtrl->m_hWnd)) return; CTreeCtrl* pTreeCtrl = (CTreeCtrl*)m_pTreeCtrl; if (!pTreeCtrl->IsKindOf(RUNTIME_CLASS(CTreeCtrl))) return; HTREEITEM hItem = pTreeCtrl->GetSelectedItem(); if (!hItem) return; CObject* pObject = (CObject*)pTreeCtrl->GetItemData(hItem); if (!pObject) return; SendMessage(WM_XTP_SHELL_NOTIFY, (WPARAM)SHN_XTP_TREESELCHANGE, (LPARAM)pObject); } void CShellListCtrl::OnShowContextMenu(int idCmd, CMINVOKECOMMANDINFO& cmi) { UNREFERENCED_PARAMETER(idCmd); UNREFERENCED_PARAMETER(cmi); // Refresh list if items were deleted. if (idCmd == 17) { RefreshList(); } } BOOL CShellListCtrl::IsItemFiltered(LPCTSTR lpszItemName, ULONG ulItemAttrs) { if (ulItemAttrs & SFGAO_FOLDER) return FALSE; // Apply your filter here. return CXTPShellListCtrl::IsItemFiltered(lpszItemName, ulItemAttrs); }